diff --git a/ci/shell.nix b/ci/shell.nix index 7f8566609..d74e2f2e8 100644 --- a/ci/shell.nix +++ b/ci/shell.nix @@ -115,6 +115,8 @@ stdenvNoCC.mkDerivation ({ (mkBinOnlyWrapper rustNightly) wget zlib + cmake + ninja moreutils ] ++ lib.optionals (!stdenv.isDarwin) [ autoPatchelfHook diff --git a/core/.gitignore b/core/.gitignore index 25c2107f2..308e7a63c 100644 --- a/core/.gitignore +++ b/core/.gitignore @@ -8,6 +8,6 @@ tests/trezor_monero_tests* .coverage.* htmlcov/ mypy_report -/CMakeLists.txt -/cmake-build-debug/ +/cmake-build*/ +/cmake_build*/ tools/gdb_scripts/*.log diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt new file mode 100644 index 000000000..d17355050 --- /dev/null +++ b/core/CMakeLists.txt @@ -0,0 +1,99 @@ +cmake_minimum_required(VERSION 3.13) +#cmake_policy(SET CMP0079 NEW) + +project(trezor VERSION 1.0 LANGUAGES C CXX ASM) + + +set(CMAKE_C_COMPILER arm-none-eabi-gcc) +set(CMAKE_CXX_COMPILER arm-none-eabi-g++) +set(CMAKE_ASM_COMPILER arm-none-eabi-gcc) +set(CMAKE_LINKER arm-none-abi-ld) + + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED True) + +add_compile_definitions(STM32_HAL_H=) +add_compile_definitions(STM32F427xx) +add_compile_definitions(USE_HAL_DRIVER) +add_compile_definitions(TREZOR_MODEL_T) +add_compile_definitions(UI_LAYOUT_TT) +add_compile_definitions(HW_MODEL=827601492) +add_compile_definitions(HW_REVISION=0) +add_compile_definitions(TREZOR_BOARD="boards/trezor_t.h") +add_compile_definitions(USE_DMA2D) +add_compile_definitions(PRODUCTION=0) +add_compile_definitions(BITCOIN_ONLY=0) +add_compile_definitions(BOOTLOADER_QA=0) +add_compile_definitions(USE_SVC_SHUTDOWN) +add_compile_definitions(RDI) + + +add_compile_definitions(USE_BIP32_CACHE=0) +add_compile_definitions(USE_KECCAK=1) +add_compile_definitions(USE_ETHEREUM=1) +add_compile_definitions(USE_MONERO=1) +add_compile_definitions(USE_CARDANO=1) +add_compile_definitions(USE_NEM=1) +add_compile_definitions(USE_EOS=1) + +add_compile_definitions(AES_128) +add_compile_definitions(AES_192) + +add_compile_definitions(SCM_REVISION="11") + +add_compile_definitions(TREZOR_UI2) + + +add_compile_definitions(USE_ASM_ARM) +add_compile_definitions(USE_EXTERNAL_ASM) +add_compile_definitions(USE_EXTERNAL_DEFAULT_CALLBACKS) +add_compile_definitions(ECMULT_GEN_PREC_BITS=2) +add_compile_definitions(ECMULT_WINDOW_SIZE=8) +add_compile_definitions(ENABLE_MODULE_GENERATOR) +add_compile_definitions(ENABLE_MODULE_RECOVERY) +add_compile_definitions(ENABLE_MODULE_SCHNORRSIG) +add_compile_definitions(ENABLE_MODULE_EXTRAKEYS) +add_compile_definitions(FANCY_FATAL_ERROR) + + + +add_compile_definitions(TREZOR_FONT_NORMAL_ENABLE=Font_TTHoves_Regular_21) +add_compile_definitions(TREZOR_FONT_NORMAL_INCLUDE="font_tthoves_regular_21.h") +add_compile_definitions(TREZOR_FONT_BOLD_ENABLE=Font_TTHoves_Bold_17) +add_compile_definitions(TREZOR_FONT_BOLD_INCLUDE="font_tthoves_bold_17.h") +add_compile_definitions(TREZOR_FONT_DEMIBOLD_ENABLE=Font_TTHoves_DemiBold_21) +add_compile_definitions(TREZOR_FONT_DEMIBOLD_INCLUDE="font_tthoves_demibold_21.h") +add_compile_definitions(TREZOR_FONT_MONO_ENABLE=Font_RobotoMono_Medium_20) +add_compile_definitions(TREZOR_FONT_MONO_INCLUDE="font_robotomono_medium_20.h") + + +set(Rust_CARGO_TARGET thumbv7em-none-eabihf) + + +Set(ENV{RUST_INCLUDES} "-I../trezorhal/stm32f4;-I../../vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Inc; +-I../../vendor/micropython/lib/stm32lib/CMSIS/STM32F4xx/Include; +-DSTM32_HAL_H=") + + + +add_compile_options(-mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mtune=cortex-m4) +add_compile_options(-Os -g3 -std=gnu11 -fno-common -fsingle-precision-constant + -fdata-sections -ffunction-sections -ffreestanding -fstack-protector-all) +#add_compile_options(-Wall -Werror -Wdouble-promotion -Wpointer-arith) +add_compile_options( -Wno-missing-braces -Wno-sequence-point) +add_compile_options(-ffreestanding -fstack-protector-all) + + +add_link_options(-nostdlib -Wl,--gc-sections -Wl,--warn-common) +add_link_options(-mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mtune=cortex-m4) + +include_directories(embed/extmod/modtrezorconfig) +include_directories(${CMAKE_BINARY_DIR}) + +add_subdirectory(embed) +add_subdirectory(vendor) +add_subdirectory(src) +add_subdirectory(genhdr) + + diff --git a/core/embed/CMakeLists.txt b/core/embed/CMakeLists.txt new file mode 100644 index 000000000..c256ad582 --- /dev/null +++ b/core/embed/CMakeLists.txt @@ -0,0 +1,9 @@ +add_subdirectory(models) +add_subdirectory(lib) +add_subdirectory(trezorhal) +add_subdirectory(rust) +add_subdirectory(extmod) + +#add_subdirectory(boardloader) +#add_subdirectory(bootloader) +add_subdirectory(firmware) diff --git a/core/embed/boardloader/CMakeLists.txt b/core/embed/boardloader/CMakeLists.txt new file mode 100644 index 000000000..e468a337b --- /dev/null +++ b/core/embed/boardloader/CMakeLists.txt @@ -0,0 +1,8 @@ +add_executable(boardloader main.c startup.s ../trezorhal/stm32f4/util.s) # !@ utils.s !!!! to je divne + +target_link_options(boardloader PRIVATE -T ${CMAKE_SOURCE_DIR}/embed/boardloader/memory.ld) + +target_link_libraries(boardloader stm32cube-f4) +target_link_libraries(boardloader trezor-hal) +target_link_libraries(boardloader trezor-crypto trezor-storage models) + diff --git a/core/embed/bootloader/CMakeLists.txt b/core/embed/bootloader/CMakeLists.txt new file mode 100644 index 000000000..b9cc69bd6 --- /dev/null +++ b/core/embed/bootloader/CMakeLists.txt @@ -0,0 +1,16 @@ +add_executable(bootloader bootui.c header.S main.c messages.c startup.s + ../trezorhal/stm32f4/util.s protob/messages.pb.c + ../lib/fonts/font_tthoves_regular_21.c + ) + +target_compile_definitions(bootloader PRIVATE TREZOR_FONT_NORMAL_ENABLE=Font_TTHoves_Regular_21) +target_compile_definitions(bootloader PRIVATE TREZOR_FONT_NORMAL_INCLUDE="font_tthoves_regular_21.h") + +target_include_directories(bootloader PRIVATE protob) +target_include_directories(bootloader PRIVATE ../rust) + +target_link_options(bootloader PRIVATE -T ${CMAKE_SOURCE_DIR}/embed/bootloader/memory.ld) + +target_link_libraries(bootloader stm32cube-f4 trezor-hal) +target_link_libraries(bootloader trezor-crypto trezor-storage models nanopb trezor_lib) + diff --git a/core/embed/extmod/CMakeLists.txt b/core/embed/extmod/CMakeLists.txt new file mode 100644 index 000000000..b3d438e87 --- /dev/null +++ b/core/embed/extmod/CMakeLists.txt @@ -0,0 +1,28 @@ +add_library(extmod + modtrezorconfig/modtrezorconfig.c + modtrezorcrypto/crc.c + modtrezorcrypto/modtrezorcrypto.c + modtrezorcrypto/rand.c + modtrezorio/modtrezorio.c + modtrezorui/modtrezorui.c + modtrezorutils/modtrezorutils.c + modtrezorio/ff.c + modtrezorio/ffunicode.c + rustmods.c + modutime.c +) + +target_include_directories(extmod PRIVATE ../firmware ../rust ${CMAKE_SOURCE_DIR}) + +target_link_libraries(extmod micropython trezor-hal trezor-lib trezor-crypto stm32cube-f4) + + +add_library(extmod2 + trezorobj.c +) + +target_include_directories(extmod2 PRIVATE ../firmware ../rust ${CMAKE_SOURCE_DIR}) + +target_link_libraries(extmod2 micropython trezor-hal trezor-lib trezor-crypto stm32cube-f4) + +add_dependencies(extmod2 qstr) \ No newline at end of file diff --git a/core/embed/firmware/CMakeLists.txt b/core/embed/firmware/CMakeLists.txt new file mode 100644 index 000000000..3f55fc0d6 --- /dev/null +++ b/core/embed/firmware/CMakeLists.txt @@ -0,0 +1,11 @@ +add_executable(firmware bl_check.c delay.c header.S main.c mphalport.c nlrthumb.c startup.S) + +target_link_options(firmware PRIVATE -T ${CMAKE_SOURCE_DIR}/embed/firmware/memory_T.ld -Wl,--print-memory-usage) + +target_include_directories(firmware PRIVATE .) + +target_link_libraries(firmware extmod2 stm32cube-f4 trezor-hal trezor-crypto trezor-storage models trezor_lib micropython extmod extmod2 frozen_mpy) + + + + diff --git a/core/embed/firmware/frozen_mpy.c b/core/embed/firmware/frozen_mpy.c new file mode 100644 index 000000000..bb06d284b --- /dev/null +++ b/core/embed/firmware/frozen_mpy.c @@ -0,0 +1,285866 @@ +#include "py/mpconfig.h" +#include "py/objint.h" +#include "py/objstr.h" +#include "py/emitglue.h" +#include "py/nativeglue.h" + +#if MICROPY_LONGINT_IMPL != 2 +#error "incompatible MICROPY_LONGINT_IMPL" +#endif + +#if MPZ_DIG_SIZE != 16 +#error "incompatible MPZ_DIG_SIZE" +#endif + +#if MICROPY_PY_BUILTINS_FLOAT +typedef struct _mp_obj_float_t { + mp_obj_base_t base; + mp_float_t value; +} mp_obj_float_t; +#endif + +#if MICROPY_PY_BUILTINS_COMPLEX +typedef struct _mp_obj_complex_t { + mp_obj_base_t base; + mp_float_t real; + mp_float_t imag; +} mp_obj_complex_t; +#endif + +enum { + MP_QSTR_all_modules_dot_py = MP_QSTRnumber_of, + MP_QSTR_trezor_dot_utils, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_all_modules, + MP_QSTR_boot, + MP_QSTR_session, + MP_QSTR_usb, + MP_QSTR_storage, + MP_QSTR_cache, + MP_QSTR_storage_dot_cache, + MP_QSTR_storage_dot_common, + MP_QSTR_debug, + MP_QSTR_storage_dot_debug, + MP_QSTR_device, + MP_QSTR_storage_dot_device, + MP_QSTR_fido2, + MP_QSTR_storage_dot_fido2, + MP_QSTR_recovery, + MP_QSTR_storage_dot_recovery, + MP_QSTR_recovery_shares, + MP_QSTR_storage_dot_recovery_shares, + MP_QSTR_resident_credentials, + MP_QSTR_storage_dot_resident_credentials, + MP_QSTR_sd_salt, + MP_QSTR_storage_dot_sd_salt, + MP_QSTR_crypto, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_base32, + MP_QSTR_trezor_dot_crypto_dot_base32, + MP_QSTR_base58, + MP_QSTR_trezor_dot_crypto_dot_base58, + MP_QSTR_trezor_dot_crypto_dot_bech32, + MP_QSTR_cashaddr, + MP_QSTR_trezor_dot_crypto_dot_cashaddr, + MP_QSTR_cosi, + MP_QSTR_trezor_dot_crypto_dot_cosi, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_der, + MP_QSTR_trezor_dot_crypto_dot_der, + MP_QSTR_hashlib, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_rlp, + MP_QSTR_trezor_dot_crypto_dot_rlp, + MP_QSTR_trezor_dot_crypto_dot_scripts, + MP_QSTR_trezor_dot_crypto_dot_slip39, + MP_QSTR_enums, + MP_QSTR_AmountUnit, + MP_QSTR_trezor_dot_enums_dot_AmountUnit, + MP_QSTR_BackupType, + MP_QSTR_trezor_dot_enums_dot_BackupType, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums_dot_ButtonRequestType, + MP_QSTR_Capability, + MP_QSTR_trezor_dot_enums_dot_Capability, + MP_QSTR_DebugButton, + MP_QSTR_trezor_dot_enums_dot_DebugButton, + MP_QSTR_DebugPhysicalButton, + MP_QSTR_trezor_dot_enums_dot_DebugPhysicalButton, + MP_QSTR_DebugSwipeDirection, + MP_QSTR_trezor_dot_enums_dot_DebugSwipeDirection, + MP_QSTR_DecredStakingSpendType, + MP_QSTR_trezor_dot_enums_dot_DecredStakingSpendType, + MP_QSTR_FailureType, + MP_QSTR_trezor_dot_enums_dot_FailureType, + MP_QSTR_HomescreenFormat, + MP_QSTR_trezor_dot_enums_dot_HomescreenFormat, + MP_QSTR_InputScriptType, + MP_QSTR_trezor_dot_enums_dot_InputScriptType, + MP_QSTR_MessageType, + MP_QSTR_trezor_dot_enums_dot_MessageType, + MP_QSTR_OutputScriptType, + MP_QSTR_trezor_dot_enums_dot_OutputScriptType, + MP_QSTR_PinMatrixRequestType, + MP_QSTR_trezor_dot_enums_dot_PinMatrixRequestType, + MP_QSTR_RecoveryDeviceType, + MP_QSTR_trezor_dot_enums_dot_RecoveryDeviceType, + MP_QSTR_RequestType, + MP_QSTR_trezor_dot_enums_dot_RequestType, + MP_QSTR_SafetyCheckLevel, + MP_QSTR_trezor_dot_enums_dot_SafetyCheckLevel, + MP_QSTR_SdProtectOperationType, + MP_QSTR_trezor_dot_enums_dot_SdProtectOperationType, + MP_QSTR_WordRequestType, + MP_QSTR_trezor_dot_enums_dot_WordRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_errors, + MP_QSTR_trezor_dot_errors, + MP_QSTR_trezor_dot_log, + MP_QSTR_loop, + MP_QSTR_trezor_dot_loop, + MP_QSTR_messages, + MP_QSTR_trezor_dot_messages, + MP_QSTR_trezor_dot_pin, + MP_QSTR_protobuf, + MP_QSTR_trezor_dot_protobuf, + MP_QSTR_trezor_dot_sdcard, + MP_QSTR_strings, + MP_QSTR_trezor_dot_strings, + MP_QSTR_ui, + MP_QSTR_trezor_dot_ui, + MP_QSTR_layouts, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_common, + MP_QSTR_fido, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_fido, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_homescreen, + MP_QSTR_progress, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_progress, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_recovery, + MP_QSTR_reset, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_reset, + MP_QSTR_tr, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tr, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tr_dot_fido, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tr_dot_homescreen, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tr_dot_progress, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tr_dot_recovery, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tr_dot_reset, + MP_QSTR_tt, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tt, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tt_dot_fido, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tt_dot_homescreen, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tt_dot_progress, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tt_dot_recovery, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tt_dot_reset, + MP_QSTR_style, + MP_QSTR_trezor_dot_ui_dot_style, + MP_QSTR_wire, + MP_QSTR_trezor_dot_wire, + MP_QSTR_codec_v1, + MP_QSTR_trezor_dot_wire_dot_codec_v1, + MP_QSTR_context, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_trezor_dot_wire_dot_errors, + MP_QSTR_workflow, + MP_QSTR_trezor_dot_workflow, + MP_QSTR_apps, + MP_QSTR_base, + MP_QSTR_apps_dot_base, + MP_QSTR_bitcoin, + MP_QSTR_apps_dot_bitcoin, + MP_QSTR_addresses, + MP_QSTR_apps_dot_bitcoin_dot_addresses, + MP_QSTR_apps_dot_bitcoin_dot_authorization, + MP_QSTR_authorize_coinjoin, + MP_QSTR_apps_dot_bitcoin_dot_authorize_coinjoin, + MP_QSTR_apps_dot_bitcoin_dot_common, + MP_QSTR_get_address, + MP_QSTR_apps_dot_bitcoin_dot_get_address, + MP_QSTR_get_ownership_id, + MP_QSTR_apps_dot_bitcoin_dot_get_ownership_id, + MP_QSTR_get_ownership_proof, + MP_QSTR_apps_dot_bitcoin_dot_get_ownership_proof, + MP_QSTR_get_public_key, + MP_QSTR_apps_dot_bitcoin_dot_get_public_key, + MP_QSTR_keychain, + MP_QSTR_apps_dot_bitcoin_dot_keychain, + MP_QSTR_apps_dot_bitcoin_dot_multisig, + MP_QSTR_ownership, + MP_QSTR_apps_dot_bitcoin_dot_ownership, + MP_QSTR_readers, + MP_QSTR_apps_dot_bitcoin_dot_readers, + MP_QSTR_apps_dot_bitcoin_dot_scripts, + MP_QSTR_scripts_decred, + MP_QSTR_apps_dot_bitcoin_dot_scripts_decred, + MP_QSTR_sign_message, + MP_QSTR_apps_dot_bitcoin_dot_sign_message, + MP_QSTR_sign_tx, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx, + MP_QSTR_approvers, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_approvers, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_bitcoin, + MP_QSTR_bitcoinlike, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_bitcoinlike, + MP_QSTR_decred, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_decred, + MP_QSTR_helpers, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_helpers, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_layout, + MP_QSTR_matchcheck, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_matchcheck, + MP_QSTR_omni, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_omni, + MP_QSTR_payment_request, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_payment_request, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_progress, + MP_QSTR_sig_hasher, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_sig_hasher, + MP_QSTR_tx_info, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_tx_info, + MP_QSTR_tx_weight, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_tx_weight, + MP_QSTR_verification, + MP_QSTR_apps_dot_bitcoin_dot_verification, + MP_QSTR_verify_message, + MP_QSTR_apps_dot_bitcoin_dot_verify_message, + MP_QSTR_writers, + MP_QSTR_apps_dot_bitcoin_dot_writers, + MP_QSTR_apps_dot_common, + MP_QSTR_address_mac, + MP_QSTR_apps_dot_common_dot_address_mac, + MP_QSTR_apps_dot_common_dot_address_type, + MP_QSTR_apps_dot_common_dot_authorization, + MP_QSTR_cbor, + MP_QSTR_apps_dot_common_dot_cbor, + MP_QSTR_coininfo, + MP_QSTR_apps_dot_common_dot_coininfo, + MP_QSTR_apps_dot_common_dot_coins, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_apps_dot_common_dot_passphrase, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_apps_dot_common_dot_readers, + MP_QSTR_apps_dot_common_dot_request_pin, + MP_QSTR_apps_dot_common_dot_safety_checks, + MP_QSTR_apps_dot_common_dot_sdcard, + MP_QSTR_apps_dot_common_dot_seed, + MP_QSTR_signverify, + MP_QSTR_apps_dot_common_dot_signverify, + MP_QSTR_apps_dot_common_dot_writers, + MP_QSTR_apps_dot_debug, + MP_QSTR_load_device, + MP_QSTR_apps_dot_debug_dot_load_device, + MP_QSTR_apps_dot_homescreen, + MP_QSTR_management, + MP_QSTR_apply_flags, + MP_QSTR_apps_dot_management_dot_apply_flags, + MP_QSTR_apply_settings, + MP_QSTR_apps_dot_management_dot_apply_settings, + MP_QSTR_authenticate_device, + MP_QSTR_apps_dot_management_dot_authenticate_device, + MP_QSTR_backup_device, + MP_QSTR_apps_dot_management_dot_backup_device, + MP_QSTR_backup_types, + MP_QSTR_apps_dot_management_dot_backup_types, + MP_QSTR_apps_dot_management_dot_change_pin, + MP_QSTR_apps_dot_management_dot_change_wipe_code, + MP_QSTR_get_next_u2f_counter, + MP_QSTR_apps_dot_management_dot_get_next_u2f_counter, + MP_QSTR_get_nonce, + MP_QSTR_apps_dot_management_dot_get_nonce, + MP_QSTR_apps_dot_management_dot_reboot_to_bootloader, + MP_QSTR_recovery_device, + MP_QSTR_apps_dot_management_dot_recovery_device, + MP_QSTR_apps_dot_management_dot_recovery_device_dot_homescreen, + MP_QSTR_apps_dot_management_dot_recovery_device_dot_layout, + MP_QSTR_recover, + MP_QSTR_apps_dot_management_dot_recovery_device_dot_recover, + MP_QSTR_word_validity, + MP_QSTR_apps_dot_management_dot_recovery_device_dot_word_validity, + MP_QSTR_reset_device, + MP_QSTR_apps_dot_management_dot_reset_device, + MP_QSTR_apps_dot_management_dot_reset_device_dot_layout, + MP_QSTR_sd_protect, + MP_QSTR_apps_dot_management_dot_sd_protect, + MP_QSTR_set_u2f_counter, + MP_QSTR_apps_dot_management_dot_set_u2f_counter, + MP_QSTR_show_tutorial, + MP_QSTR_apps_dot_management_dot_show_tutorial, + MP_QSTR_wipe_device, + MP_QSTR_apps_dot_management_dot_wipe_device, + MP_QSTR_misc, + MP_QSTR_apps_dot_misc, + MP_QSTR_cipher_key_value, + MP_QSTR_apps_dot_misc_dot_cipher_key_value, + MP_QSTR_apps_dot_misc_dot_cosi_commit, + MP_QSTR_get_ecdh_session_key, + MP_QSTR_apps_dot_misc_dot_get_ecdh_session_key, + MP_QSTR_get_entropy, + MP_QSTR_apps_dot_misc_dot_get_entropy, + MP_QSTR_get_firmware_hash, + MP_QSTR_apps_dot_misc_dot_get_firmware_hash, + MP_QSTR_sign_identity, + MP_QSTR_apps_dot_misc_dot_sign_identity, + MP_QSTR_workflow_handlers, + MP_QSTR_apps_dot_workflow_handlers, + MP_QSTR_BinanceOrderSide, + MP_QSTR_trezor_dot_enums_dot_BinanceOrderSide, + MP_QSTR_BinanceOrderType, + MP_QSTR_trezor_dot_enums_dot_BinanceOrderType, + MP_QSTR_BinanceTimeInForce, + MP_QSTR_trezor_dot_enums_dot_BinanceTimeInForce, + MP_QSTR_CardanoAddressType, + MP_QSTR_trezor_dot_enums_dot_CardanoAddressType, + MP_QSTR_CardanoCVoteRegistrationFormat, + MP_QSTR_trezor_dot_enums_dot_CardanoCVoteRegistrationFormat, + MP_QSTR_CardanoCertificateType, + MP_QSTR_trezor_dot_enums_dot_CardanoCertificateType, + MP_QSTR_CardanoDerivationType, + MP_QSTR_trezor_dot_enums_dot_CardanoDerivationType, + MP_QSTR_CardanoNativeScriptHashDisplayFormat, + MP_QSTR_trezor_dot_enums_dot_CardanoNativeScriptHashDisplayFormat, + MP_QSTR_CardanoNativeScriptType, + MP_QSTR_trezor_dot_enums_dot_CardanoNativeScriptType, + MP_QSTR_CardanoPoolRelayType, + MP_QSTR_trezor_dot_enums_dot_CardanoPoolRelayType, + MP_QSTR_CardanoTxAuxiliaryDataSupplementType, + MP_QSTR_trezor_dot_enums_dot_CardanoTxAuxiliaryDataSupplementType, + MP_QSTR_CardanoTxOutputSerializationFormat, + MP_QSTR_trezor_dot_enums_dot_CardanoTxOutputSerializationFormat, + MP_QSTR_CardanoTxSigningMode, + MP_QSTR_trezor_dot_enums_dot_CardanoTxSigningMode, + MP_QSTR_CardanoTxWitnessType, + MP_QSTR_trezor_dot_enums_dot_CardanoTxWitnessType, + MP_QSTR_EthereumDataType, + MP_QSTR_trezor_dot_enums_dot_EthereumDataType, + MP_QSTR_EthereumDefinitionType, + MP_QSTR_trezor_dot_enums_dot_EthereumDefinitionType, + MP_QSTR_MoneroNetworkType, + MP_QSTR_trezor_dot_enums_dot_MoneroNetworkType, + MP_QSTR_NEMImportanceTransferMode, + MP_QSTR_trezor_dot_enums_dot_NEMImportanceTransferMode, + MP_QSTR_NEMModificationType, + MP_QSTR_trezor_dot_enums_dot_NEMModificationType, + MP_QSTR_NEMMosaicLevy, + MP_QSTR_trezor_dot_enums_dot_NEMMosaicLevy, + MP_QSTR_NEMSupplyChangeType, + MP_QSTR_trezor_dot_enums_dot_NEMSupplyChangeType, + MP_QSTR_StellarAssetType, + MP_QSTR_trezor_dot_enums_dot_StellarAssetType, + MP_QSTR_StellarMemoType, + MP_QSTR_trezor_dot_enums_dot_StellarMemoType, + MP_QSTR_StellarSignerType, + MP_QSTR_trezor_dot_enums_dot_StellarSignerType, + MP_QSTR_TezosBallotType, + MP_QSTR_trezor_dot_enums_dot_TezosBallotType, + MP_QSTR_TezosContractType, + MP_QSTR_trezor_dot_enums_dot_TezosContractType, + MP_QSTR_binance, + MP_QSTR_apps_dot_binance, + MP_QSTR_apps_dot_binance_dot_get_address, + MP_QSTR_apps_dot_binance_dot_get_public_key, + MP_QSTR_apps_dot_binance_dot_helpers, + MP_QSTR_apps_dot_binance_dot_layout, + MP_QSTR_apps_dot_binance_dot_sign_tx, + MP_QSTR_zcash_v4, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_zcash_v4, + MP_QSTR_apps_dot_cardano, + MP_QSTR_apps_dot_cardano_dot_addresses, + MP_QSTR_auxiliary_data, + MP_QSTR_apps_dot_cardano_dot_auxiliary_data, + MP_QSTR_byron_addresses, + MP_QSTR_apps_dot_cardano_dot_byron_addresses, + MP_QSTR_apps_dot_cardano_dot_certificates, + MP_QSTR_apps_dot_cardano_dot_get_address, + MP_QSTR_get_native_script_hash, + MP_QSTR_apps_dot_cardano_dot_get_native_script_hash, + MP_QSTR_apps_dot_cardano_dot_get_public_key, + MP_QSTR_apps_dot_cardano_dot_helpers, + MP_QSTR_account_path_check, + MP_QSTR_apps_dot_cardano_dot_helpers_dot_account_path_check, + MP_QSTR_apps_dot_cardano_dot_helpers_dot_bech32, + MP_QSTR_credential, + MP_QSTR_apps_dot_cardano_dot_helpers_dot_credential, + MP_QSTR_hash_builder_collection, + MP_QSTR_apps_dot_cardano_dot_helpers_dot_hash_builder_collection, + MP_QSTR_network_ids, + MP_QSTR_apps_dot_cardano_dot_helpers_dot_network_ids, + MP_QSTR_apps_dot_cardano_dot_helpers_dot_paths, + MP_QSTR_protocol_magics, + MP_QSTR_apps_dot_cardano_dot_helpers_dot_protocol_magics, + MP_QSTR_apps_dot_cardano_dot_helpers_dot_utils, + MP_QSTR_apps_dot_cardano_dot_layout, + MP_QSTR_native_script, + MP_QSTR_apps_dot_cardano_dot_native_script, + MP_QSTR_apps_dot_cardano_dot_seed, + MP_QSTR_apps_dot_cardano_dot_sign_tx, + MP_QSTR_multisig_signer, + MP_QSTR_apps_dot_cardano_dot_sign_tx_dot_multisig_signer, + MP_QSTR_ordinary_signer, + MP_QSTR_apps_dot_cardano_dot_sign_tx_dot_ordinary_signer, + MP_QSTR_plutus_signer, + MP_QSTR_apps_dot_cardano_dot_sign_tx_dot_plutus_signer, + MP_QSTR_pool_owner_signer, + MP_QSTR_apps_dot_cardano_dot_sign_tx_dot_pool_owner_signer, + MP_QSTR_apps_dot_cardano_dot_sign_tx_dot_signer, + MP_QSTR_mnemonic, + MP_QSTR_apps_dot_common_dot_mnemonic, + MP_QSTR_eos, + MP_QSTR_apps_dot_eos, + MP_QSTR_actions, + MP_QSTR_apps_dot_eos_dot_actions, + MP_QSTR_apps_dot_eos_dot_actions_dot_layout, + MP_QSTR_apps_dot_eos_dot_get_public_key, + MP_QSTR_apps_dot_eos_dot_helpers, + MP_QSTR_apps_dot_eos_dot_layout, + MP_QSTR_apps_dot_eos_dot_sign_tx, + MP_QSTR_apps_dot_eos_dot_writers, + MP_QSTR_ethereum, + MP_QSTR_apps_dot_ethereum, + MP_QSTR_apps_dot_ethereum_dot_definitions, + MP_QSTR_definitions_constants, + MP_QSTR_apps_dot_ethereum_dot_definitions_constants, + MP_QSTR_apps_dot_ethereum_dot_get_address, + MP_QSTR_apps_dot_ethereum_dot_get_public_key, + MP_QSTR_apps_dot_ethereum_dot_helpers, + MP_QSTR_apps_dot_ethereum_dot_keychain, + MP_QSTR_apps_dot_ethereum_dot_layout, + MP_QSTR_apps_dot_ethereum_dot_networks, + MP_QSTR_apps_dot_ethereum_dot_sign_message, + MP_QSTR_apps_dot_ethereum_dot_sign_tx, + MP_QSTR_sign_tx_eip1559, + MP_QSTR_apps_dot_ethereum_dot_sign_tx_eip1559, + MP_QSTR_sign_typed_data, + MP_QSTR_apps_dot_ethereum_dot_sign_typed_data, + MP_QSTR_apps_dot_ethereum_dot_tokens, + MP_QSTR_apps_dot_ethereum_dot_verify_message, + MP_QSTR_apps_dot_monero, + MP_QSTR_diag, + MP_QSTR_apps_dot_monero_dot_diag, + MP_QSTR_apps_dot_monero_dot_get_address, + MP_QSTR_get_tx_keys, + MP_QSTR_apps_dot_monero_dot_get_tx_keys, + MP_QSTR_get_watch_only, + MP_QSTR_apps_dot_monero_dot_get_watch_only, + MP_QSTR_key_image_sync, + MP_QSTR_apps_dot_monero_dot_key_image_sync, + MP_QSTR_apps_dot_monero_dot_layout, + MP_QSTR_live_refresh, + MP_QSTR_apps_dot_monero_dot_live_refresh, + MP_QSTR_apps_dot_monero_dot_misc, + MP_QSTR_apps_dot_monero_dot_sign_tx, + MP_QSTR_signing, + MP_QSTR_apps_dot_monero_dot_signing, + MP_QSTR_offloading_keys, + MP_QSTR_apps_dot_monero_dot_signing_dot_offloading_keys, + MP_QSTR_state, + MP_QSTR_apps_dot_monero_dot_signing_dot_state, + MP_QSTR_step_01_init_transaction, + MP_QSTR_apps_dot_monero_dot_signing_dot_step_01_init_transaction, + MP_QSTR_step_02_set_input, + MP_QSTR_apps_dot_monero_dot_signing_dot_step_02_set_input, + MP_QSTR_step_04_input_vini, + MP_QSTR_apps_dot_monero_dot_signing_dot_step_04_input_vini, + MP_QSTR_step_05_all_inputs_set, + MP_QSTR_apps_dot_monero_dot_signing_dot_step_05_all_inputs_set, + MP_QSTR_step_06_set_output, + MP_QSTR_apps_dot_monero_dot_signing_dot_step_06_set_output, + MP_QSTR_step_07_all_outputs_set, + MP_QSTR_apps_dot_monero_dot_signing_dot_step_07_all_outputs_set, + MP_QSTR_step_09_sign_input, + MP_QSTR_apps_dot_monero_dot_signing_dot_step_09_sign_input, + MP_QSTR_step_10_sign_final, + MP_QSTR_apps_dot_monero_dot_signing_dot_step_10_sign_final, + MP_QSTR_xmr, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_apps_dot_monero_dot_xmr_dot_addresses, + MP_QSTR_bulletproof, + MP_QSTR_apps_dot_monero_dot_xmr_dot_bulletproof, + MP_QSTR_chacha_poly, + MP_QSTR_apps_dot_monero_dot_xmr_dot_chacha_poly, + MP_QSTR_clsag, + MP_QSTR_apps_dot_monero_dot_xmr_dot_clsag, + MP_QSTR_apps_dot_monero_dot_xmr_dot_credentials, + MP_QSTR_crypto_helpers, + MP_QSTR_apps_dot_monero_dot_xmr_dot_crypto_helpers, + MP_QSTR_keccak_hasher, + MP_QSTR_apps_dot_monero_dot_xmr_dot_keccak_hasher, + MP_QSTR_apps_dot_monero_dot_xmr_dot_key_image, + MP_QSTR_mlsag_hasher, + MP_QSTR_apps_dot_monero_dot_xmr_dot_mlsag_hasher, + MP_QSTR_apps_dot_monero_dot_xmr_dot_monero, + MP_QSTR_apps_dot_monero_dot_xmr_dot_networks, + MP_QSTR_range_signatures, + MP_QSTR_apps_dot_monero_dot_xmr_dot_range_signatures, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize, + MP_QSTR_base_types, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_dot_base_types, + MP_QSTR_int_serialize, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_dot_int_serialize, + MP_QSTR_message_types, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_dot_message_types, + MP_QSTR_readwriter, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_dot_readwriter, + MP_QSTR_serialize_messages, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_messages_dot_base, + MP_QSTR_tx_ct_key, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_messages_dot_tx_ct_key, + MP_QSTR_tx_ecdh, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_messages_dot_tx_ecdh, + MP_QSTR_tx_prefix, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_messages_dot_tx_prefix, + MP_QSTR_tx_rsig_bulletproof, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_messages_dot_tx_rsig_bulletproof, + MP_QSTR_apps_dot_nem, + MP_QSTR_apps_dot_nem_dot_get_address, + MP_QSTR_apps_dot_nem_dot_helpers, + MP_QSTR_apps_dot_nem_dot_layout, + MP_QSTR_apps_dot_nem_dot_mosaic, + MP_QSTR_apps_dot_nem_dot_mosaic_dot_helpers, + MP_QSTR_apps_dot_nem_dot_mosaic_dot_layout, + MP_QSTR_nem_mosaics, + MP_QSTR_apps_dot_nem_dot_mosaic_dot_nem_mosaics, + MP_QSTR_apps_dot_nem_dot_mosaic_dot_serialize, + MP_QSTR_apps_dot_nem_dot_multisig, + MP_QSTR_apps_dot_nem_dot_multisig_dot_layout, + MP_QSTR_apps_dot_nem_dot_multisig_dot_serialize, + MP_QSTR_apps_dot_nem_dot_namespace, + MP_QSTR_apps_dot_nem_dot_namespace_dot_layout, + MP_QSTR_apps_dot_nem_dot_namespace_dot_serialize, + MP_QSTR_apps_dot_nem_dot_sign_tx, + MP_QSTR_apps_dot_nem_dot_transfer, + MP_QSTR_apps_dot_nem_dot_transfer_dot_layout, + MP_QSTR_apps_dot_nem_dot_transfer_dot_serialize, + MP_QSTR_validators, + MP_QSTR_apps_dot_nem_dot_validators, + MP_QSTR_apps_dot_nem_dot_writers, + MP_QSTR_ripple, + MP_QSTR_apps_dot_ripple, + MP_QSTR_base58_ripple, + MP_QSTR_apps_dot_ripple_dot_base58_ripple, + MP_QSTR_apps_dot_ripple_dot_get_address, + MP_QSTR_apps_dot_ripple_dot_helpers, + MP_QSTR_apps_dot_ripple_dot_layout, + MP_QSTR_apps_dot_ripple_dot_serialize, + MP_QSTR_apps_dot_ripple_dot_sign_tx, + MP_QSTR_stellar, + MP_QSTR_apps_dot_stellar, + MP_QSTR_consts, + MP_QSTR_apps_dot_stellar_dot_consts, + MP_QSTR_apps_dot_stellar_dot_get_address, + MP_QSTR_apps_dot_stellar_dot_helpers, + MP_QSTR_apps_dot_stellar_dot_layout, + MP_QSTR_operations, + MP_QSTR_apps_dot_stellar_dot_operations, + MP_QSTR_apps_dot_stellar_dot_operations_dot_layout, + MP_QSTR_apps_dot_stellar_dot_operations_dot_serialize, + MP_QSTR_apps_dot_stellar_dot_sign_tx, + MP_QSTR_apps_dot_stellar_dot_writers, + MP_QSTR_tezos, + MP_QSTR_apps_dot_tezos, + MP_QSTR_apps_dot_tezos_dot_get_address, + MP_QSTR_apps_dot_tezos_dot_get_public_key, + MP_QSTR_apps_dot_tezos_dot_helpers, + MP_QSTR_apps_dot_tezos_dot_layout, + MP_QSTR_apps_dot_tezos_dot_sign_tx, + MP_QSTR_webauthn, + MP_QSTR_apps_dot_webauthn, + MP_QSTR_add_resident_credential, + MP_QSTR_apps_dot_webauthn_dot_add_resident_credential, + MP_QSTR_apps_dot_webauthn_dot_common, + MP_QSTR_apps_dot_webauthn_dot_credential, + MP_QSTR_apps_dot_webauthn_dot_fido2, + MP_QSTR_knownapps, + MP_QSTR_apps_dot_webauthn_dot_knownapps, + MP_QSTR_list_resident_credentials, + MP_QSTR_apps_dot_webauthn_dot_list_resident_credentials, + MP_QSTR_remove_resident_credential, + MP_QSTR_apps_dot_webauthn_dot_remove_resident_credential, + MP_QSTR_apps_dot_webauthn_dot_resident_credentials, + MP_QSTR_zcash, + MP_QSTR_apps_dot_zcash, + MP_QSTR_f4jumble, + MP_QSTR_apps_dot_zcash_dot_f4jumble, + MP_QSTR_apps_dot_zcash_dot_hasher, + MP_QSTR_apps_dot_zcash_dot_signer, + MP_QSTR_unified_addresses, + MP_QSTR_apps_dot_zcash_dot_unified_addresses, + MP_QSTR_typing, + MP_QSTR_a, + MP_QSTR_A, + MP_QSTR_b, + MP_QSTR_B, + MP_QSTR_c, + MP_QSTR_C, + MP_QSTR_d, + MP_QSTR_D, + MP_QSTR_E, + MP_QSTR_f, + MP_QSTR_F, + MP_QSTR_g, + MP_QSTR_G, + MP_QSTR_h, + MP_QSTR_H, + MP_QSTR_i, + MP_QSTR_I, + MP_QSTR_j, + MP_QSTR_J, + MP_QSTR_k, + MP_QSTR_l, + MP_QSTR_M, + MP_QSTR_n, + MP_QSTR_N, + MP_QSTR_o, + MP_QSTR_O, + MP_QSTR_p, + MP_QSTR_P, + MP_QSTR_q, + MP_QSTR_Q, + MP_QSTR_r, + MP_QSTR_s, + MP_QSTR_S, + MP_QSTR_t, + MP_QSTR_u, + MP_QSTR_U, + MP_QSTR_v, + MP_QSTR_V, + MP_QSTR_w, + MP_QSTR_W, + MP_QSTR_X, + MP_QSTR_Y, + MP_QSTR_z, + MP_QSTR_Z, + MP_QSTR_boot_dot_py, + MP_QSTR_config, + MP_QSTR_allow_all_loader_messages, + MP_QSTR_ignore_nonpin_loader_messages, + MP_QSTR_show_pin_timeout, + MP_QSTR_Lockscreen, + MP_QSTR_can_lock_device, + MP_QSTR_verify_user_pin, + MP_QSTR_schedule, + MP_QSTR_run, + MP_QSTR_get_label, + MP_QSTR_display, + MP_QSTR_get_rotation, + MP_QSTR_init_unlocked, + MP_QSTR_PinCancelled, + MP_QSTR_main_dot_py, + MP_QSTR_presize_module, + MP_QSTR_unimport, + MP_QSTR_bus, + MP_QSTR_get_device_id, + MP_QSTR_unimport_manager, + MP_QSTR_session_dot_py, + MP_QSTR_ENABLE_IFACE_WEBAUTHN, + MP_QSTR_set_homescreen, + MP_QSTR_start_default, + MP_QSTR_setup, + MP_QSTR_iface_wire, + MP_QSTR_typing_dot_py, + MP_QSTR__GenericTypingObject, + MP_QSTR_TYPE_CHECKING, + MP_QSTR__TYPING_OBJECT, + MP_QSTR_usb_dot_py, + MP_QSTR_io, + MP_QSTR_TREZOR, + MP_QSTR_uos, + MP_QSTR_getenv, + MP_QSTR_21324, + MP_QSTR_UDP_PORT, + MP_QSTR__iface_iter, + MP_QSTR_ENABLE_IFACE_DEBUG, + MP_QSTR_ENABLE_IFACE_VCP, + MP_QSTR_id_wire, + MP_QSTR_id_webauthn, + MP_QSTR_iface_webauthn, + MP_QSTR_SatoshiLabs, + MP_QSTR_TREZOR_space_Interface, + MP_QSTR_TREZOR_UDP_PORT, + MP_QSTR_trezor_slash___init___dot_py, + MP_QSTR_trezor_slash_errors_dot_py, + MP_QSTR_MnemonicError, + MP_QSTR_trezor_slash_log_dot_py, + MP_QSTR__log, + MP_QSTR_info, + MP_QSTR_error, + MP_QSTR_exception, + MP_QSTR_Result, + MP_QSTR_Cancelled, + MP_QSTR_exception_colon_, + MP_QSTR__leveldict, + MP_QSTR_color, + MP_QSTR_mlevel, + MP_QSTR_msg, + MP_QSTR_exc, + MP_QSTR_DEBUG, + MP_QSTR_32, + MP_QSTR_36, + MP_QSTR_WARNING, + MP_QSTR_33, + MP_QSTR_ERROR, + MP_QSTR_31, + MP_QSTR_CRITICAL, + MP_QSTR_1_semicolon_31, + MP_QSTR_ui_dot_Result_colon__space__percent_s, + MP_QSTR_ui_dot_Cancelled, + MP_QSTR_trezor_slash_loop_dot_py, + MP_QSTR_TaskClosed, + MP_QSTR_Syscall, + MP_QSTR_race, + MP_QSTR_chan, + MP_QSTR_spawn, + MP_QSTR_Timer, + MP_QSTR_pause, + MP_QSTR_finalize, + MP_QSTR__step, + MP_QSTR_handle, + MP_QSTR_exit_others, + MP_QSTR_Put, + MP_QSTR_Take, + MP_QSTR_delay_ms, + MP_QSTR_msg_iface, + MP_QSTR_children, + MP_QSTR_finished, + MP_QSTR_scheduled, + MP_QSTR__finish, + MP_QSTR_callback, + MP_QSTR_exit, + MP_QSTR_putters, + MP_QSTR_takers, + MP_QSTR_put, + MP_QSTR_task, + MP_QSTR_take, + MP_QSTR_publish, + MP_QSTR__schedule_put, + MP_QSTR__schedule_take, + MP_QSTR_finalizer_callback, + MP_QSTR_return_value, + MP_QSTR_finalizer, + MP_QSTR__finalize, + MP_QSTR_set_finalizer, + MP_QSTR_is_running, + MP_QSTR_before_task, + MP_QSTR_ch, + MP_QSTR_after_step_hook, + MP_QSTR__queue, + MP_QSTR__paused, + MP_QSTR__finalizers, + MP_QSTR_this_task, + MP_QSTR_TASK_CLOSED, + MP_QSTR__type_gen, + MP_QSTR_reschedule, + MP_QSTR_iface, + MP_QSTR_except_for, + MP_QSTR_result, + MP_QSTR_putter, + MP_QSTR_taker, + MP_QSTR_caller, + MP_QSTR_trezor_slash_messages_dot_py, + MP_QSTR_trezor_slash_pin_dot_py, + MP_QSTR_render_empty_loader, + MP_QSTR_pin_progress, + MP_QSTR_report, + MP_QSTR_Done, + MP_QSTR__previous_seconds, + MP_QSTR__previous_remaining, + MP_QSTR__progress_layout, + MP_QSTR__started_with_empty_loader, + MP_QSTR_keepalive_callback, + MP_QSTR__ignore_loader_messages, + MP_QSTR_seconds, + MP_QSTR_Processing, + MP_QSTR_Starting_space_up, + MP_QSTR_1_space_second_space_left, + MP_QSTR__brace_open__brace_close__space_seconds_space_left, + MP_QSTR_trezor_slash_protobuf_dot_py, + MP_QSTR_load_message_buffer, + MP_QSTR_dump_message_buffer, + MP_QSTR_buffer, + MP_QSTR_msg_wire_type, + MP_QSTR_experimental_enabled, + MP_QSTR_trezor_slash_sdcard_dot_py, + MP_QSTR_FilesystemWrapper, + MP_QSTR_filesystem, + MP_QSTR_get_instance, + MP_QSTR_mounted, + MP_QSTR_with_filesystem, + MP_QSTR__INSTANCE, + MP_QSTR__deinit_instance, + MP_QSTR_wrapped_func, + MP_QSTR_HAVE_SDCARD, + MP_QSTR_func, + MP_QSTR_cls, + MP_QSTR_exc_type, + MP_QSTR_exc_val, + MP_QSTR_tb, + MP_QSTR_trezor_slash_strings_dot_py, + MP_QSTR_format_amount, + MP_QSTR__hyphen_, + MP_QSTR__brace_open__colon__comma__brace_close_, + MP_QSTR__comma_, + MP_QSTR_0, + MP_QSTR__dot_, + MP_QSTR_format_ordinal, + MP_QSTR_st, + MP_QSTR_nd, + MP_QSTR_rd, + MP_QSTR_th, + MP_QSTR_format_plural, + MP_QSTR_aeiouy, + MP_QSTR_ies, + MP_QSTR_hsxz, + MP_QSTR_es, + MP_QSTR_plural, + MP_QSTR_format_duration_ms, + MP_QSTR_format_timestamp, + MP_QSTR_number, + MP_QSTR_string, + MP_QSTR_milliseconds, + MP_QSTR__brace_open__brace_close__brace_open__brace_close__dot__brace_open__colon_0_brace_open__brace_close__brace_close_, + MP_QSTR__brace_open_count_brace_close_, + MP_QSTR__brace_open_plural_brace_close_, + MP_QSTR_hour, + MP_QSTR_minute, + MP_QSTR_second, + MP_QSTR_millisecond, + MP_QSTR__brace_open_count_brace_close__space__brace_open_plural_brace_close_, + MP_QSTR_trezor_slash_utils_dot_py, + MP_QSTR_T2B1, + MP_QSTR_HashWriter, + MP_QSTR_BufferReader, + MP_QSTR_unimport_begin, + MP_QSTR_unimport_end, + MP_QSTR_ensure, + MP_QSTR_chunks, + MP_QSTR_obj_eq, + MP_QSTR_obj_repr, + MP_QSTR__lt__brace_open__brace_close__colon__space__brace_open__brace_close__gt_, + MP_QSTR_truncate_utf8, + MP_QSTR_is_empty_iterator, + MP_QSTR_empty_bytearray, + MP_QSTR_mods, + MP_QSTR_ctx, + MP_QSTR_buf, + MP_QSTR_get_digest, + MP_QSTR_offset, + MP_QSTR_read_memoryview, + MP_QSTR_remaining_count, + MP_QSTR_peek, + MP_QSTR_MODEL_IS_T2B1, + MP_QSTR_DISABLE_ANIMATION, + MP_QSTR_modname, + MP_QSTR_cond, + MP_QSTR___o, + MP_QSTR_max_bytes, + MP_QSTR_preallocate, + MP_QSTR__exc_type, + MP_QSTR__exc_value, + MP_QSTR__tb, + MP_QSTR_dst, + MP_QSTR____PRESIZE_MODULE__brace_open__brace_close_, + MP_QSTR_trezor_slash_workflow_dot_py, + MP_QSTR_IdleTimer, + MP_QSTR__on_start, + MP_QSTR__on_close, + MP_QSTR_set_default, + MP_QSTR_close_others, + MP_QSTR_homescreen_shown, + MP_QSTR__finalize_default, + MP_QSTR_timeouts, + MP_QSTR_tasks, + MP_QSTR__timeout_task, + MP_QSTR_touch, + MP_QSTR_autolock_last_touch, + MP_QSTR__restore_from_cache, + MP_QSTR_ALLOW_WHILE_LOCKED, + MP_QSTR_default_task, + MP_QSTR_default_constructor, + MP_QSTR_autolock_interrupts_workflow, + MP_QSTR_idle_timer, + MP_QSTR_constructor, + MP_QSTR_timeout_ms, + MP_QSTR_trezor_slash_crypto_slash___init___dot_py, + MP_QSTR_trezor_slash_crypto_slash_base32_dot_py, + MP_QSTR__bang_HHB, + MP_QSTR__brace_open__colon_010x_brace_close_, + MP_QSTR_ascii, + MP_QSTR__b32alphabet, + MP_QSTR__b32tab, + MP_QSTR__b32rev, + MP_QSTR_Incorrect_space_padding, + MP_QSTR_Non_hyphen_base32_space_digit_space_found, + MP_QSTR_trezor_slash_crypto_slash_base58_dot_py, + MP_QSTR_sha256d_32, + MP_QSTR_groestl512d_32, + MP_QSTR_blake256d_32, + MP_QSTR_keccak_32, + MP_QSTR_ripemd160_32, + MP_QSTR_encode_check, + MP_QSTR_decode_check, + MP_QSTR_verify_checksum, + MP_QSTR__alphabet, + MP_QSTR_alphabet, + MP_QSTR_digestfunc, + MP_QSTR_Invalid_space_checksum, + MP_QSTR_trezor_slash_crypto_slash_bech32_dot_py, + MP_QSTR_Encoding, + MP_QSTR_bech32_polymod, + MP_QSTR_bech32_hrp_expand, + MP_QSTR__bech32_create_checksum, + MP_QSTR_bech32_encode, + MP_QSTR_1, + MP_QSTR_convertbits, + MP_QSTR_bech32_decode, + MP_QSTR_IntEnum, + MP_QSTR_CHARSET, + MP_QSTR_hrp, + MP_QSTR_spec, + MP_QSTR_frombits, + MP_QSTR_tobits, + MP_QSTR_arbitrary_input, + MP_QSTR_witver, + MP_QSTR_witprog, + MP_QSTR_trezor_slash_crypto_slash_cashaddr_dot_py, + MP_QSTR_cashaddr_polymod, + MP_QSTR_prefix_expand, + MP_QSTR__calculate_checksum, + MP_QSTR__b32decode, + MP_QSTR__b32encode, + MP_QSTR__colon_, + MP_QSTR_ADDRESS_TYPE_P2KH, + MP_QSTR_ADDRESS_TYPE_P2SH, + MP_QSTR_prefix, + MP_QSTR_payload_bytes, + MP_QSTR_Bad_space_cashaddr_space_checksum, + MP_QSTR_trezor_slash_crypto_slash_cosi_dot_py, + MP_QSTR_select_keys, + MP_QSTR_commit, + MP_QSTR_combine_publickeys, + MP_QSTR_combine_signatures, + MP_QSTR_sigmask, + MP_QSTR_trezor_slash_crypto_slash_curve_dot_py, + MP_QSTR_trezor_slash_crypto_slash_der_dot_py, + MP_QSTR_encode_length, + MP_QSTR_read_length, + MP_QSTR__write_int, + MP_QSTR__read_int, + MP_QSTR_encode_seq, + MP_QSTR_decode_seq, + MP_QSTR_seq, + MP_QSTR_trezor_slash_crypto_slash_hashlib_dot_py, + MP_QSTR_trezor_slash_crypto_slash_rlp_dot_py, + MP_QSTR__byte_size, + MP_QSTR_int_to_bytes, + MP_QSTR_big, + MP_QSTR_write_header, + MP_QSTR_header_length, + MP_QSTR__write_string, + MP_QSTR__write_list, + MP_QSTR_STRING_HEADER_BYTE, + MP_QSTR_LIST_HEADER_BYTE, + MP_QSTR_header_byte, + MP_QSTR_data_start, + MP_QSTR_item, + MP_QSTR_lst, + MP_QSTR_trezor_slash_crypto_slash_scripts_dot_py, + MP_QSTR_sha256_ripemd160, + MP_QSTR_blake256_ripemd160, + MP_QSTR_trezor_slash_crypto_slash_slip39_dot_py, + MP_QSTR_Share, + MP_QSTR__bits_to_bytes, + MP_QSTR__bits_to_words, + MP_QSTR__xor, + MP_QSTR_generate_random_identifier, + MP_QSTR_split_ems, + MP_QSTR_recover_ems, + MP_QSTR_decode_mnemonic, + MP_QSTR__int_from_indices, + MP_QSTR__int_to_indices, + MP_QSTR__mnemonic_from_indices, + MP_QSTR__mnemonic_to_indices, + MP_QSTR__rs1024_create_checksum, + MP_QSTR__rs1024_polymod, + MP_QSTR__rs1024_verify_checksum, + MP_QSTR__round_function, + MP_QSTR__get_salt, + MP_QSTR__create_digest, + MP_QSTR__split_secret, + MP_QSTR__recover_secret, + MP_QSTR__group_prefix, + MP_QSTR__encode_mnemonic, + MP_QSTR__decode_mnemonics, + MP_QSTR_identifier, + MP_QSTR_iteration_exponent, + MP_QSTR_group_threshold, + MP_QSTR_group_count, + MP_QSTR_group_index, + MP_QSTR_share_value, + MP_QSTR__ID_EXP_LENGTH_WORDS, + MP_QSTR__CUSTOMIZATION_STRING, + MP_QSTR__METADATA_LENGTH_WORDS, + MP_QSTR__MIN_MNEMONIC_LENGTH_WORDS, + MP_QSTR_MAX_SHARE_COUNT, + MP_QSTR_MAX_GROUP_COUNT, + MP_QSTR_DEFAULT_ITERATION_EXPONENT, + MP_QSTR_encrypted_master_secret, + MP_QSTR_progress_callback, + MP_QSTR_groups, + MP_QSTR_indices, + MP_QSTR_bits, + MP_QSTR_random_data, + MP_QSTR_shared_secret, + MP_QSTR_share_count, + MP_QSTR_shares, + MP_QSTR_member_index, + MP_QSTR_member_threshold, + MP_QSTR_Invalid_space_mnemonic_space_length_dot_, + MP_QSTR_Invalid_space_mnemonic_space_padding, + MP_QSTR_trezor_slash_ui_slash___init___dot_py, + MP_QSTR_Component, + MP_QSTR__alert, + MP_QSTR_BACKLIGHT_MAX, + MP_QSTR_BACKLIGHT_DIM, + MP_QSTR_BACKLIGHT_NORMAL, + MP_QSTR_alert, + MP_QSTR_backlight_fade, + MP_QSTR_wait_until_layout_is_running, + MP_QSTR_repaint, + MP_QSTR_dispatch, + MP_QSTR_on_render, + MP_QSTR_on_touch_start, + MP_QSTR_on_touch_move, + MP_QSTR_on_touch_end, + MP_QSTR_BUTTON_PRESSED, + MP_QSTR_on_button_pressed, + MP_QSTR_BUTTON_RELEASED, + MP_QSTR_on_button_released, + MP_QSTR_create_tasks, + MP_QSTR_handle_input, + MP_QSTR_handle_rendering, + MP_QSTR_BUTTON, + MP_QSTR__before_render, + MP_QSTR_BACKLIGHT_NONE, + MP_QSTR_BACKLIGHT_LEVEL, + MP_QSTR_RENDER_SLEEP, + MP_QSTR_NORMAL, + MP_QSTR_BOLD, + MP_QSTR_DEMIBOLD, + MP_QSTR_MONO, + MP_QSTR_layout_chan, + MP_QSTR__alert_in_progress, + MP_QSTR_RENDER, + MP_QSTR_REPAINT, + MP_QSTR_val, + MP_QSTR_delay, + MP_QSTR___await__, + MP_QSTR_event, + MP_QSTR_button_number, + MP_QSTR_T1B1, + MP_QSTR_D001, + MP_QSTR_Unknown_space_Trezor_space_model, + MP_QSTR_trezor_slash_ui_slash_style_dot_py, + MP_QSTR_BACKLIGHT_LOW, + MP_QSTR_trezor_slash_ui_slash_layouts_slash___init___dot_py, + MP_QSTR_trezor_slash_ui_slash_layouts_slash_common_dot_py, + MP_QSTR_Other, + MP_QSTR_button_request, + MP_QSTR_maybe_call, + MP_QSTR_interact, + MP_QSTR_br_type, + MP_QSTR_br_code, + MP_QSTR_trezor_slash_ui_slash_layouts_slash_fido_dot_py, + MP_QSTR_tt_dot_fido, + MP_QSTR_trezor_slash_ui_slash_layouts_slash_homescreen_dot_py, + MP_QSTR_tt_dot_homescreen, + MP_QSTR_trezor_slash_ui_slash_layouts_slash_progress_dot_py, + MP_QSTR_tt_dot_progress, + MP_QSTR_trezor_slash_ui_slash_layouts_slash_recovery_dot_py, + MP_QSTR_tt_dot_recovery, + MP_QSTR_trezor_slash_ui_slash_layouts_slash_reset_dot_py, + MP_QSTR_tt_dot_reset, + MP_QSTR_trezor_slash_ui_slash_layouts_slash_tt_slash___init___dot_py, + MP_QSTR_ActionCancelled, + MP_QSTR_RustLayout, + MP_QSTR_address_qr, + MP_QSTR_multisig_index, + MP_QSTR_mismatch_title, + MP_QSTR_show_address, + MP_QSTR_Public_space_key, + MP_QSTR_show_pubkey, + MP_QSTR_TRY_space_AGAIN, + MP_QSTR_CONTINUE, + MP_QSTR_Warning, + MP_QSTR_ConfirmOutput, + MP_QSTR_Show_space_all, + MP_QSTR_should_show_more, + MP_QSTR_CONFIRM, + MP_QSTR_Address_colon_, + MP_QSTR_Amount_colon_, + MP_QSTR_confirm_amount, + MP_QSTR_SUMMARY, + MP_QSTR_draw_simple, + MP_QSTR_raise_if_not_confirmed, + MP_QSTR_confirm_single, + MP_QSTR__brace_open__brace_close_, + MP_QSTR_ProtectCall, + MP_QSTR_prompt_backup, + MP_QSTR_SUCCESS, + MP_QSTR_BACK_space_UP, + MP_QSTR_SKIP, + MP_QSTR_confirm_path_warning, + MP_QSTR_UnknownDerivationPath, + MP_QSTR_show_error_and_raise, + MP_QSTR_confirm_output, + MP_QSTR_CONFIRM_space_, + MP_QSTR_AMOUNT_space__hash__brace_open__brace_close_, + MP_QSTR_SENDING_space_TO, + MP_QSTR__caret_, + MP_QSTR_confirm_payment_request, + MP_QSTR_SENDING, + MP_QSTR__brace_open__brace_close__space_to_0x0a__brace_open__brace_close_, + MP_QSTR_DETAILS, + MP_QSTR__confirm_ask_pagination, + MP_QSTR_para, + MP_QSTR_CLOSE, + MP_QSTR_confirm_text, + MP_QSTR_Fee_space_rate_colon_, + MP_QSTR_RECIPIENT, + MP_QSTR_confirm_metadata, + MP_QSTR_description_param, + MP_QSTR_confirm_replacement, + MP_QSTR_with_info, + MP_QSTR_modify_fee, + MP_QSTR_confirm_sign_identity, + MP_QSTR_Sign_space__brace_open__brace_close_, + MP_QSTR_confirm_signverify, + MP_QSTR_show_error_popup, + MP_QSTR__0x0a__brace_open__brace_close_, + MP_QSTR_request_passphrase_on_host, + MP_QSTR_request_passphrase_on_device, + MP_QSTR_PassphraseEntry, + MP_QSTR_request_pin_on_device, + MP_QSTR_pin_device, + MP_QSTR_PinEntry, + MP_QSTR_confirm_reenter_pin, + MP_QSTR_pin_mismatch_popup, + MP_QSTR_wipe_space_codes, + MP_QSTR_PINs, + MP_QSTR_wipe_code_same_as_pin_popup, + MP_QSTR_confirm_set_new_pin, + MP_QSTR_Turn_space_on_space_, + MP_QSTR_TURN_space_ON, + MP_QSTR_set_timer, + MP_QSTR__paint, + MP_QSTR_handle_timers, + MP_QSTR_handle_input_and_rendering, + MP_QSTR__first_paint, + MP_QSTR_dummy_set_timer, + MP_QSTR_xpub_title, + MP_QSTR__paren_open_YOURS_paren_close_, + MP_QSTR__paren_open_COSIGNER_paren_close_, + MP_QSTR_ctx_wait, + MP_QSTR_BR_TYPE_OTHER, + MP_QSTR_path_type, + MP_QSTR_content, + MP_QSTR_subheader, + MP_QSTR_output_index, + MP_QSTR_button_text, + MP_QSTR_confirm, + MP_QSTR_ask_pagination, + MP_QSTR_props, + MP_QSTR_param, + MP_QSTR_txid, + MP_QSTR_main_layout, + MP_QSTR_info_layout, + MP_QSTR_max_fee_per_vbyte, + MP_QSTR_coin, + MP_QSTR_attempts_remaining, + MP_QSTR_is_wipe_code, + MP_QSTR_information, + MP_QSTR_token, + MP_QSTR_Address_space_mismatch_question_, + MP_QSTR_Key_space_mismatch_question_, + MP_QSTR_Total_space_amount_colon_, + MP_QSTR_Including_space_fee_colon_, + MP_QSTR_RECOVER_space_WALLET, + MP_QSTR_CREATE_space_WALLET, + MP_QSTR_recover_device, + MP_QSTR_setup_device, + MP_QSTR_Unknown_space__brace_open__brace_close__dot_, + MP_QSTR_Continue_space_anyway_question_, + MP_QSTR_path_warning, + MP_QSTR_CHANGE_space_HOMESCREEN, + MP_QSTR_set_homesreen, + MP_QSTR_RECEIVE_space_ADDRESS, + MP_QSTR_RECEIVING_space_TO, + MP_QSTR_RECIPIENT_space__hash__brace_open__brace_close_, + MP_QSTR_SENDING_space_AMOUNT, + MP_QSTR_Sending_space_from_space_account_colon_, + MP_QSTR_INFORMATION, + MP_QSTR_Maximum_space_fee_colon_, + MP_QSTR_FEE_space_INFORMATION, + MP_QSTR_JOINT_space_TRANSACTION, + MP_QSTR_You_space_are_space_contributing_colon_, + MP_QSTR_To_space_the_space_total_space_amount_colon_, + MP_QSTR_Transaction_space_ID_colon_, + MP_QSTR_modify_output, + MP_QSTR_MODIFY_space_AMOUNT, + MP_QSTR_New_space_fee_space_rate_colon_, + MP_QSTR_coinjoin_final, + MP_QSTR_VERIFY_space__brace_open__brace_close__space_MESSAGE, + MP_QSTR_SIGN_space__brace_open__brace_close__space_MESSAGE, + MP_QSTR_Confirm_space_address_colon_, + MP_QSTR_Confirm_space_message_colon_, + MP_QSTR_Enter_space_passphrase, + MP_QSTR_passphrase_device, + MP_QSTR_Last_space_attempt, + MP_QSTR__brace_open__brace_close__space_tries_space_left, + MP_QSTR_pin_mismatch, + MP_QSTR_Wipe_space_code_space_mismatch, + MP_QSTR_PIN_space_mismatch, + MP_QSTR_wipe_code_same_as_pin, + MP_QSTR_Invalid_space_wipe_space_code, + MP_QSTR__space_protection_question__0x0a__0x0a_, + MP_QSTR_MULTISIG_space_XPUB_space__hash__brace_open__brace_close__0x0a_, + MP_QSTR_trezor_slash_ui_slash_layouts_slash_tt_slash_fido_dot_py, + MP_QSTR_confirm_fido_reset, + MP_QSTR__RustFidoLayout, + MP_QSTR_FIDO2_space_RESET, + MP_QSTR_erase_space_all_space_credentials_question_, + MP_QSTR_Do_space_you_space_really_space_want_space_to, + MP_QSTR_trezor_slash_ui_slash_layouts_slash_tt_slash_homescreen_dot_py, + MP_QSTR_HomescreenBase, + MP_QSTR_Homescreen, + MP_QSTR_Busyscreen, + MP_QSTR_HOMESCREEN_ON, + MP_QSTR_LOCKSCREEN_ON, + MP_QSTR_BUSYSCREEN_ON, + MP_QSTR_RENDER_INDICATOR, + MP_QSTR__bang_, + MP_QSTR_COINJOIN, + MP_QSTR_usb_checker_task, + MP_QSTR_APP_COMMON_BUSY_DEADLINE_MS, + MP_QSTR_storage_cache, + MP_QSTR_notification_is_error, + MP_QSTR_hold_to_lock, + MP_QSTR_EXPERIMENTAL, + MP_QSTR_Waiting_space_for_space_others, + MP_QSTR_trezor_slash_ui_slash_layouts_slash_tt_slash_progress_dot_py, + MP_QSTR_RustProgress, + MP_QSTR_bitcoin_progress, + MP_QSTR_coinjoin_progress, + MP_QSTR_monero_keyimage_sync_progress, + MP_QSTR_SYNCING, + MP_QSTR_monero_live_refresh_progress, + MP_QSTR_REFRESHING, + MP_QSTR_monero_transaction_progress_inner, + MP_QSTR_PLEASE_space_WAIT, + MP_QSTR_SIGNING_space_TRANSACTION, + MP_QSTR_trezor_slash_ui_slash_layouts_slash_tt_slash_recovery_dot_py, + MP_QSTR__is_confirmed_info, + MP_QSTR_request_word_count, + MP_QSTR_MnemonicWordCount, + MP_QSTR_request_word, + MP_QSTR_share, + MP_QSTR_group, + MP_QSTR_Share_space__brace_open__brace_close_, + MP_QSTR_from, + MP_QSTR_Group_space__brace_open__brace_close_, + MP_QSTR_continue_recovery, + MP_QSTR_RecoveryHomepage, + MP_QSTR_show_recovery_warning, + MP_QSTR_dialog, + MP_QSTR_info_func, + MP_QSTR_is_slip39, + MP_QSTR_shares_remaining, + MP_QSTR_share_index, + MP_QSTR_button_label, + MP_QSTR_subtext, + MP_QSTR_Type_space_word_space__brace_open__brace_close__space_of_space__brace_open__brace_close_, + MP_QSTR_show_shares, + MP_QSTR_You_space_have_space_entered, + MP_QSTR_share_success, + MP_QSTR_trezor_slash_ui_slash_layouts_slash_tt_slash_reset_dot_py, + MP_QSTR__split_share_into_pages, + MP_QSTR__brace_open__colon__gt__brace_open__brace_close__brace_close__dot__space__brace_open__brace_close_, + MP_QSTR_CHECK_space_SEED, + MP_QSTR_slip39_show_checklist, + MP_QSTR_Slip39_Basic, + MP_QSTR__prompt_number, + MP_QSTR_slip39_prompt_threshold, + MP_QSTR_slip39_prompt_number_of_shares, + MP_QSTR_slip39_advanced_prompt_number_of_groups, + MP_QSTR_slip39_advanced_prompt_group_threshold, + MP_QSTR_show_warning_backup, + MP_QSTR_show_success_backup, + MP_QSTR_show_reset_warning, + MP_QSTR_1_space_share_dot_, + MP_QSTR_per_page, + MP_QSTR_checked_index, + MP_QSTR_br_name, + MP_QSTR_num_of_shares, + MP_QSTR_group_id, + MP_QSTR_num_of_groups, + MP_QSTR_RECOVERY_space_SEED, + MP_QSTR_RECOVERY_space_SHARE_space__hash__brace_open__brace_close_, + MP_QSTR_GROUP_space__brace_open__brace_close__space__hyphen__space_SHARE_space__brace_open__brace_close_, + MP_QSTR_backup_words, + MP_QSTR_CHECK_space_SHARE_space__hash__brace_open__brace_close_, + MP_QSTR_CHECK_space_G_brace_open__brace_close__space__hyphen__space_SHARE_space__brace_open__brace_close_, + MP_QSTR_Select_space_word_space__brace_open__brace_close__space_of_space__brace_open__brace_close__colon_, + MP_QSTR_Set_space_number_space_of_space_shares, + MP_QSTR_Set_space_threshold, + MP_QSTR_Set_space_number_space_of_space_groups, + MP_QSTR_BACKUP_space_CHECKLIST, + MP_QSTR_slip39_checklist, + MP_QSTR_OK_comma__space_I_space_UNDERSTAND, + MP_QSTR_SET_space_THRESHOLD, + MP_QSTR_slip39_threshold, + MP_QSTR_SET_space_NUMBER_space_OF_space_SHARES, + MP_QSTR_slip39_shares, + MP_QSTR_SET_space_NUMBER_space_OF_space_GROUPS, + MP_QSTR_slip39_groups, + MP_QSTR_SET_space_GROUP_space_THRESHOLD, + MP_QSTR_slip39_group_threshold, + MP_QSTR_backup_warning, + MP_QSTR_success_backup, + MP_QSTR_Your_space_backup_space_is_space_done_dot_, + MP_QSTR_needed_space_to_space_form_space_a_space_group_dot__space_, + MP_QSTR_need_space_1_space_share_space_, + MP_QSTR_to_space_form_space_Group_space__brace_open__brace_close__dot_, + MP_QSTR_trezor_slash_wire_slash___init___dot_py, + MP_QSTR_InvalidSessionError, + MP_QSTR_DataError, + MP_QSTR_Error, + MP_QSTR_SESSION_ID, + MP_QSTR_wrap_protobuf_load, + MP_QSTR__handle_single_message, + MP_QSTR_with_context, + MP_QSTR_UnexpectedMessage, + MP_QSTR_handle_session, + MP_QSTR_Context, + MP_QSTR_read_from_wire, + MP_QSTR_CodecError, + MP_QSTR_use_workflow, + MP_QSTR__find_handler_placeholder, + MP_QSTR_failure, + MP_QSTR_InvalidSession, + MP_QSTR_FirmwareError, + MP_QSTR_unexpected_message, + MP_QSTR_EXPERIMENTAL_ENABLED, + MP_QSTR_WIRE_BUFFER, + MP_QSTR_find_handler, + MP_QSTR_AVOID_RESTARTING_FOR, + MP_QSTR_is_debug_session, + MP_QSTR_expected_type, + MP_QSTR_msg_type, + MP_QSTR_Failed_space_to_space_decode_space_message, + MP_QSTR_Invalid_space_session, + MP_QSTR_Firmware_space_error, + MP_QSTR_Unexpected_space_message, + MP_QSTR_trezor_slash_wire_slash_codec_v1_dot_py, + MP_QSTR__gt_BBBHL, + MP_QSTR_Message, + MP_QSTR_read_message, + MP_QSTR_write_message, + MP_QSTR__REP_INIT, + MP_QSTR_mtype, + MP_QSTR_mdata, + MP_QSTR_Invalid_space_magic, + MP_QSTR_Message_space_too_space_large, + MP_QSTR_trezor_slash_wire_slash_context_dot_py, + MP_QSTR_call, + MP_QSTR_call_any, + MP_QSTR_get_context, + MP_QSTR_sid, + MP_QSTR_CURRENT_CONTEXT, + MP_QSTR_expected_types, + MP_QSTR_No_space_wire_space_context, + MP_QSTR_trezor_slash_wire_slash_errors_dot_py, + MP_QSTR_ButtonExpected, + MP_QSTR_PinExpected, + MP_QSTR_PinInvalid, + MP_QSTR_InvalidSignature, + MP_QSTR_ProcessError, + MP_QSTR_NotEnoughFunds, + MP_QSTR_NotInitialized, + MP_QSTR_PinMismatch, + MP_QSTR_WipeCodeMismatch, + MP_QSTR_PIN_space_entry_space_cancelled, + MP_QSTR_PIN_space_invalid, + MP_QSTR_storage_slash___init___dot_py, + MP_QSTR_clear_all, + MP_QSTR_get_version, + MP_QSTR_STORAGE_VERSION_01, + MP_QSTR_is_version_stored, + MP_QSTR_is_initialized, + MP_QSTR_set_bool, + MP_QSTR_APP_DEVICE, + MP_QSTR_INITIALIZED, + MP_QSTR_public, + MP_QSTR_DEVICE_ID, + MP_QSTR__migrate_from_version_01, + MP_QSTR_U2F_COUNTER, + MP_QSTR_set_version, + MP_QSTR_STORAGE_VERSION_CURRENT, + MP_QSTR_storage_slash_cache_dot_py, + MP_QSTR_DataCache, + MP_QSTR_SessionCache, + MP_QSTR_SessionlessCache, + MP_QSTR_start_session, + MP_QSTR_last_usage, + MP_QSTR_export_session_id, + MP_QSTR_end_current_session, + MP_QSTR_set_int, + MP_QSTR_fields, + MP_QSTR_get_int, + MP_QSTR_get_int_all_sessions, + MP_QSTR_is_set, + MP_QSTR_stored, + MP_QSTR_stored_async, + MP_QSTR_decorator, + MP_QSTR_wrapper, + MP_QSTR_APP_COMMON_SEED, + MP_QSTR_APP_COMMON_AUTHORIZATION_TYPE, + MP_QSTR_APP_COMMON_AUTHORIZATION_DATA, + MP_QSTR_APP_COMMON_NONCE, + MP_QSTR_APP_COMMON_DERIVE_CARDANO, + MP_QSTR_APP_CARDANO_ICARUS_SECRET, + MP_QSTR_APP_CARDANO_ICARUS_TREZOR_SECRET, + MP_QSTR_APP_MONERO_LIVE_REFRESH, + MP_QSTR_APP_COMMON_SEED_WITHOUT_PASSPHRASE, + MP_QSTR_APP_COMMON_SAFETY_CHECKS_TEMPORARY, + MP_QSTR_STORAGE_DEVICE_EXPERIMENTAL_FEATURES, + MP_QSTR_APP_COMMON_REQUEST_PIN_LAST_UNLOCK, + MP_QSTR_APP_MISC_COSI_NONCE, + MP_QSTR_APP_MISC_COSI_COMMITMENT, + MP_QSTR__SESSIONS, + MP_QSTR__SESSIONLESS_CACHE, + MP_QSTR__active_session_idx, + MP_QSTR__session_usage_counter, + MP_QSTR_received_session_id, + MP_QSTR_storage_slash_common_dot_py, + MP_QSTR_set_true_or_delete, + MP_QSTR_get_bool, + MP_QSTR_set_uint8, + MP_QSTR_get_uint8, + MP_QSTR_set_uint16, + MP_QSTR_get_uint16, + MP_QSTR_APP_RECOVERY, + MP_QSTR_APP_RECOVERY_SHARES, + MP_QSTR_APP_WEBAUTHN, + MP_QSTR__FALSE_BYTE, + MP_QSTR__TRUE_BYTE, + MP_QSTR_app, + MP_QSTR_writable_locked, + MP_QSTR_storage_slash_debug_dot_py, + MP_QSTR_Debugging_space_is_space_disabled, + MP_QSTR_storage_slash_device_dot_py, + MP_QSTR_set_rotation, + MP_QSTR_set_label, + MP_QSTR_get_mnemonic_secret, + MP_QSTR_get_backup_type, + MP_QSTR_Bip39, + MP_QSTR_Slip39_Advanced, + MP_QSTR_is_passphrase_enabled, + MP_QSTR_set_passphrase_enabled, + MP_QSTR_store_mnemonic_secret, + MP_QSTR_set_backed_up, + MP_QSTR_set_unfinished_backup, + MP_QSTR_get_passphrase_always_on_device, + MP_QSTR_set_passphrase_always_on_device, + MP_QSTR_get_flags, + MP_QSTR__normalize_autolock_delay, + MP_QSTR_get_autolock_delay_ms, + MP_QSTR_set_autolock_delay_ms, + MP_QSTR_next_u2f_counter, + MP_QSTR_set_slip39_identifier, + MP_QSTR_get_slip39_identifier, + MP_QSTR_set_slip39_iteration_exponent, + MP_QSTR_get_slip39_iteration_exponent, + MP_QSTR_get_sd_salt_auth_key, + MP_QSTR_set_sd_salt_auth_key, + MP_QSTR_safety_check_level, + MP_QSTR_set_safety_check_level, + MP_QSTR__get_experimental_features, + MP_QSTR_get_experimental_features, + MP_QSTR_set_experimental_features, + MP_QSTR_set_hide_passphrase_from_host, + MP_QSTR_get_hide_passphrase_from_host, + MP_QSTR__NAMESPACE, + MP_QSTR_SAFETY_CHECK_LEVEL_STRICT, + MP_QSTR_SAFETY_CHECK_LEVEL_PROMPT, + MP_QSTR__DEFAULT_SAFETY_CHECK_LEVEL, + MP_QSTR_HOMESCREEN_MAXSIZE, + MP_QSTR_LABEL_MAXLENGTH, + MP_QSTR_AUTOLOCK_DELAY_MINIMUM, + MP_QSTR_AUTOLOCK_DELAY_DEFAULT, + MP_QSTR_AUTOLOCK_DELAY_MAXIMUM, + MP_QSTR_SD_SALT_AUTH_KEY_LEN_BYTES, + MP_QSTR_secret, + MP_QSTR_exponent, + MP_QSTR_auth_key, + MP_QSTR_enabled, + MP_QSTR_hide, + MP_QSTR_storage_slash_fido2_dot_py, + MP_QSTR_KEY_AGREEMENT_PRIVKEY, + MP_QSTR_KEY_AGREEMENT_PUBKEY, + MP_QSTR_storage_slash_recovery_dot_py, + MP_QSTR__require_progress, + MP_QSTR_set_in_progress, + MP_QSTR_is_in_progress, + MP_QSTR_set_dry_run, + MP_QSTR_is_dry_run, + MP_QSTR_set_slip39_group_count, + MP_QSTR_get_slip39_group_count, + MP_QSTR_set_slip39_remaining_shares, + MP_QSTR_get_slip39_remaining_shares, + MP_QSTR_fetch_slip39_remaining_shares, + MP_QSTR_end_progress, + MP_QSTR_storage_slash_recovery_shares_dot_py, + MP_QSTR_fetch_group, + MP_QSTR_storage_slash_resident_credentials_dot_py, + MP_QSTR_delete_all, + MP_QSTR_MAX_RESIDENT_CREDENTIALS, + MP_QSTR_storage_slash_sd_salt_dot_py, + MP_QSTR_WrongSdCard, + MP_QSTR_is_enabled, + MP_QSTR_compute_auth_tag, + MP_QSTR__get_device_dir, + MP_QSTR__get_salt_path, + MP_QSTR__dot_new, + MP_QSTR__brace_open__brace_close__slash_salt_brace_open__brace_close_, + MP_QSTR__load_salt, + MP_QSTR_load_sd_salt, + MP_QSTR_new, + MP_QSTR_set_sd_salt, + MP_QSTR__slash_trezor, + MP_QSTR_commit_sd_salt, + MP_QSTR_remove_sd_salt, + MP_QSTR_SD_CARD_HOT_SWAPPABLE, + MP_QSTR_SD_SALT_LEN_BYTES, + MP_QSTR_salt_tag, + MP_QSTR_stage, + MP_QSTR__slash_trezor_slash_device__brace_open__brace_close_, + MP_QSTR_trezor_slash_enums_slash_AmountUnit_dot_py, + MP_QSTR_BITCOIN, + MP_QSTR_MILLIBITCOIN, + MP_QSTR_MICROBITCOIN, + MP_QSTR_SATOSHI, + MP_QSTR_trezor_slash_enums_slash_BackupType_dot_py, + MP_QSTR_trezor_slash_enums_slash_ButtonRequestType_dot_py, + MP_QSTR_FeeOverThreshold, + MP_QSTR_ConfirmWord, + MP_QSTR_FirmwareCheck, + MP_QSTR_MnemonicInput, + MP_QSTR_trezor_slash_enums_slash_Capability_dot_py, + MP_QSTR_Bitcoin, + MP_QSTR_Crypto, + MP_QSTR_Shamir, + MP_QSTR_ShamirGroups, + MP_QSTR_Bitcoin_like, + MP_QSTR_Binance, + MP_QSTR_Cardano, + MP_QSTR_EOS, + MP_QSTR_Ethereum, + MP_QSTR_Monero, + MP_QSTR_NEM, + MP_QSTR_Ripple, + MP_QSTR_Stellar, + MP_QSTR_Tezos, + MP_QSTR_U2F, + MP_QSTR_trezor_slash_enums_slash_DebugButton_dot_py, + MP_QSTR_NO, + MP_QSTR_YES, + MP_QSTR_trezor_slash_enums_slash_DebugPhysicalButton_dot_py, + MP_QSTR_LEFT_BTN, + MP_QSTR_MIDDLE_BTN, + MP_QSTR_RIGHT_BTN, + MP_QSTR_trezor_slash_enums_slash_DebugSwipeDirection_dot_py, + MP_QSTR_UP, + MP_QSTR_DOWN, + MP_QSTR_LEFT, + MP_QSTR_RIGHT, + MP_QSTR_trezor_slash_enums_slash_DecredStakingSpendType_dot_py, + MP_QSTR_SSGen, + MP_QSTR_SSRTX, + MP_QSTR_trezor_slash_enums_slash_FailureType_dot_py, + MP_QSTR_trezor_slash_enums_slash_HomescreenFormat_dot_py, + MP_QSTR_Toif, + MP_QSTR_Jpeg, + MP_QSTR_ToiG, + MP_QSTR_trezor_slash_enums_slash_InputScriptType_dot_py, + MP_QSTR_SPENDADDRESS, + MP_QSTR_SPENDMULTISIG, + MP_QSTR_EXTERNAL, + MP_QSTR_SPENDWITNESS, + MP_QSTR_SPENDP2SHWITNESS, + MP_QSTR_SPENDTAPROOT, + MP_QSTR_trezor_slash_enums_slash_MessageType_dot_py, + MP_QSTR_FirmwareErase, + MP_QSTR_FirmwareUpload, + MP_QSTR_FirmwareRequest, + MP_QSTR_SelfTest, + MP_QSTR_TxAck, + MP_QSTR_trezor_slash_enums_slash_OutputScriptType_dot_py, + MP_QSTR_PAYTOADDRESS, + MP_QSTR_PAYTOSCRIPTHASH, + MP_QSTR_PAYTOMULTISIG, + MP_QSTR_PAYTOOPRETURN, + MP_QSTR_PAYTOWITNESS, + MP_QSTR_PAYTOP2SHWITNESS, + MP_QSTR_PAYTOTAPROOT, + MP_QSTR_trezor_slash_enums_slash_PinMatrixRequestType_dot_py, + MP_QSTR_Current, + MP_QSTR_NewFirst, + MP_QSTR_NewSecond, + MP_QSTR_WipeCodeFirst, + MP_QSTR_WipeCodeSecond, + MP_QSTR_trezor_slash_enums_slash_RecoveryDeviceType_dot_py, + MP_QSTR_ScrambledWords, + MP_QSTR_Matrix, + MP_QSTR_trezor_slash_enums_slash_RequestType_dot_py, + MP_QSTR_TXINPUT, + MP_QSTR_TXOUTPUT, + MP_QSTR_TXMETA, + MP_QSTR_TXFINISHED, + MP_QSTR_TXEXTRADATA, + MP_QSTR_TXORIGINPUT, + MP_QSTR_TXORIGOUTPUT, + MP_QSTR_TXPAYMENTREQ, + MP_QSTR_trezor_slash_enums_slash_SafetyCheckLevel_dot_py, + MP_QSTR_Strict, + MP_QSTR_PromptAlways, + MP_QSTR_PromptTemporarily, + MP_QSTR_trezor_slash_enums_slash_SdProtectOperationType_dot_py, + MP_QSTR_DISABLE, + MP_QSTR_ENABLE, + MP_QSTR_REFRESH, + MP_QSTR_trezor_slash_enums_slash_WordRequestType_dot_py, + MP_QSTR_Plain, + MP_QSTR_Matrix9, + MP_QSTR_Matrix6, + MP_QSTR_trezor_slash_enums_slash___init___dot_py, + MP_QSTR_apps_slash___init___dot_py, + MP_QSTR_apps_slash_base_dot_py, + MP_QSTR_busy_expiry_ms, + MP_QSTR_get_features, + MP_QSTR_trezor_dot_io, + MP_QSTR_en_hyphen_US, + MP_QSTR_get_type, + MP_QSTR_read_setting, + MP_QSTR_handle_Initialize, + MP_QSTR_handle_GetFeatures, + MP_QSTR_handle_Cancel, + MP_QSTR_handle_LockDevice, + MP_QSTR_handle_SetBusy, + MP_QSTR_handle_EndSession, + MP_QSTR_handle_Ping, + MP_QSTR_ping, + MP_QSTR_Confirm, + MP_QSTR_handle_DoPreauthorized, + MP_QSTR_get_wire_types, + MP_QSTR_find_registered_handler, + MP_QSTR_handle_UnlockPath, + MP_QSTR_SLIP25_PURPOSE, + MP_QSTR_Slip21Node, + MP_QSTR_get_seed, + MP_QSTR_write_uint32_le, + MP_QSTR_Coinjoin, + MP_QSTR_ACCESS, + MP_QSTR_handle_CancelAuthorization, + MP_QSTR_busyscreen, + MP_QSTR_lockscreen, + MP_QSTR_recovery_homescreen, + MP_QSTR_lock_device, + MP_QSTR_lock_device_if_unlocked, + MP_QSTR_interrupt_workflow, + MP_QSTR_unlock_device, + MP_QSTR_get_pinlocked_handler, + MP_QSTR_reload_settings_from_storage, + MP_QSTR_register, + MP_QSTR_storage_device, + MP_QSTR_Invalid_space_path, + MP_QSTR_Invalid_space_MAC, + MP_QSTR_confirm_coinjoin_access, + MP_QSTR_Authorization_space_cancelled, + MP_QSTR_apps_slash_workflow_handlers_dot_py, + MP_QSTR__find_message_handler_module, + MP_QSTR_wire_type, + MP_QSTR_handler, + MP_QSTR_apps_slash_common_slash___init___dot_py, + MP_QSTR_apps_slash_common_slash_address_mac_dot_py, + MP_QSTR_check_address_mac, + MP_QSTR_get_address_mac, + MP_QSTR_write_bytes_unchecked, + MP_QSTR_write_compact_size, + MP_QSTR_derive_slip21, + MP_QSTR__ADDRESS_MAC_KEY_PATH, + MP_QSTR_Invalid_space_address_space_MAC_dot_, + MP_QSTR_apps_slash_common_slash_address_type_dot_py, + MP_QSTR_tobytes, + MP_QSTR_raw_address, + MP_QSTR_apps_slash_common_slash_authorization_dot_py, + MP_QSTR_is_set_any_session, + MP_QSTR_WIRE_TYPES, + MP_QSTR_auth_message, + MP_QSTR_auth_type, + MP_QSTR_apps_slash_common_slash_cbor_dot_py, + MP_QSTR_Tagged, + MP_QSTR_Raw, + MP_QSTR_IndefiniteLengthArray, + MP_QSTR_OrderedMap, + MP_QSTR__header, + MP_QSTR__gt_B, + MP_QSTR__gt_BB, + MP_QSTR__gt_BH, + MP_QSTR__gt_BI, + MP_QSTR__gt_BQ, + MP_QSTR__cbor_encode, + MP_QSTR__read_length, + MP_QSTR_read_uint16_be, + MP_QSTR_read_uint32_be, + MP_QSTR_read_uint64_be, + MP_QSTR__cbor_decode, + MP_QSTR_encode_streamed, + MP_QSTR_create_array_header, + MP_QSTR_create_map_header, + MP_QSTR_create_embedded_cbor_bytes_header, + MP_QSTR_precedes, + MP_QSTR__internal_list, + MP_QSTR_Generic, + MP_QSTR_typ, + MP_QSTR_aux, + MP_QSTR_prev, + MP_QSTR_curr, + MP_QSTR_other, + MP_QSTR_apps_slash_common_slash_coininfo_dot_py, + MP_QSTR_CoinInfo, + MP_QSTR_by_name, + MP_QSTR_BTC, + MP_QSTR_bc, + MP_QSTR_Regtest, + MP_QSTR_REGTEST, + MP_QSTR_bcrt, + MP_QSTR_Testnet, + MP_QSTR_TEST, + MP_QSTR_Actinium, + MP_QSTR_ACM, + MP_QSTR_acm, + MP_QSTR_Axe, + MP_QSTR_AXE, + MP_QSTR_Bcash, + MP_QSTR_BCH, + MP_QSTR_TBCH, + MP_QSTR_bchtest, + MP_QSTR_Bgold, + MP_QSTR_BTG, + MP_QSTR_btg, + MP_QSTR_TBTG, + MP_QSTR_tbtg, + MP_QSTR_Bprivate, + MP_QSTR_BTCP, + MP_QSTR_Bitcore, + MP_QSTR_BTX, + MP_QSTR_btx, + MP_QSTR_CPUchain, + MP_QSTR_CPU, + MP_QSTR_cpu, + MP_QSTR_Crown, + MP_QSTR_CRW, + MP_QSTR_Dash, + MP_QSTR_DASH, + MP_QSTR_tDASH, + MP_QSTR_Decred, + MP_QSTR_DCR, + MP_QSTR_TDCR, + MP_QSTR_DigiByte, + MP_QSTR_DGB, + MP_QSTR_dgb, + MP_QSTR_Dogecoin, + MP_QSTR_DOGE, + MP_QSTR_Elements, + MP_QSTR_ELEMENTS, + MP_QSTR_ert, + MP_QSTR_el, + MP_QSTR_FTC, + MP_QSTR_fc, + MP_QSTR_Firo, + MP_QSTR_FIRO, + MP_QSTR_tFIRO, + MP_QSTR_Florincoin, + MP_QSTR_FLO, + MP_QSTR_flo, + MP_QSTR_Fujicoin, + MP_QSTR_FJC, + MP_QSTR_GRS, + MP_QSTR_grs, + MP_QSTR_tGRS, + MP_QSTR_tgrs, + MP_QSTR_Komodo, + MP_QSTR_KMD, + MP_QSTR_Koto, + MP_QSTR_KOTO, + MP_QSTR_Litecoin, + MP_QSTR_LTC, + MP_QSTR_ltc, + MP_QSTR_tLTC, + MP_QSTR_tltc, + MP_QSTR_Monacoin, + MP_QSTR_MONA, + MP_QSTR_mona, + MP_QSTR_Namecoin, + MP_QSTR_NMC, + MP_QSTR_Peercoin, + MP_QSTR_PPC, + MP_QSTR_pc, + MP_QSTR_tPPC, + MP_QSTR_tpc, + MP_QSTR_Primecoin, + MP_QSTR_XPM, + MP_QSTR_Qtum, + MP_QSTR_QTUM, + MP_QSTR_qc, + MP_QSTR_tQTUM, + MP_QSTR_tq, + MP_QSTR_Ravencoin, + MP_QSTR_RVN, + MP_QSTR_tRVN, + MP_QSTR_Ritocoin, + MP_QSTR_RITO, + MP_QSTR_SmartCash, + MP_QSTR_SMART, + MP_QSTR_tSMART, + MP_QSTR_Stakenet, + MP_QSTR_XSN, + MP_QSTR_xc, + MP_QSTR_Syscoin, + MP_QSTR_SYS, + MP_QSTR_Unobtanium, + MP_QSTR_UNO, + MP_QSTR_VIPS, + MP_QSTR_vips, + MP_QSTR_Verge, + MP_QSTR_XVG, + MP_QSTR_Vertcoin, + MP_QSTR_VTC, + MP_QSTR_vtc, + MP_QSTR_Viacoin, + MP_QSTR_VIA, + MP_QSTR_via, + MP_QSTR_ZCore, + MP_QSTR_ZCR, + MP_QSTR_Zcash, + MP_QSTR_ZEC, + MP_QSTR_TAZ, + MP_QSTR_Brhodium, + MP_QSTR_XRC, + MP_QSTR_coin_shortcut, + MP_QSTR_address_type_p2sh, + MP_QSTR_maxfee_kb, + MP_QSTR_signed_message_header, + MP_QSTR_xpub_magic, + MP_QSTR_xpub_magic_segwit_p2sh, + MP_QSTR_xpub_magic_segwit_native, + MP_QSTR_xpub_magic_multisig_segwit_p2sh, + MP_QSTR_xpub_magic_multisig_segwit_native, + MP_QSTR_bech32_prefix, + MP_QSTR_cashaddr_prefix, + MP_QSTR_segwit, + MP_QSTR_taproot, + MP_QSTR_fork_id, + MP_QSTR_force_bip143, + MP_QSTR_negative_fee, + MP_QSTR_extra_data, + MP_QSTR_overwintered, + MP_QSTR_confidential_assets, + MP_QSTR_b58_hash, + MP_QSTR_sign_hash_double, + MP_QSTR_Bitcoin_space_Signed_space_Message_colon__0x0a_, + MP_QSTR_bitcoincash, + MP_QSTR_Bcash_space_Testnet, + MP_QSTR_Bgold_space_Testnet, + MP_QSTR_BitCore_space_Signed_space_Message_colon__0x0a_, + MP_QSTR_Crown_space_Signed_space_Message_colon__0x0a_, + MP_QSTR_Dash_space_Testnet, + MP_QSTR_Decred_space_Signed_space_Message_colon__0x0a_, + MP_QSTR_secp256k1_hyphen_decred, + MP_QSTR_Decred_space_Testnet, + MP_QSTR_address_prefix, + MP_QSTR_blech32_prefix, + MP_QSTR_Feathercoin, + MP_QSTR_Zcoin_space_Signed_space_Message_colon__0x0a_, + MP_QSTR_Firo_space_Testnet, + MP_QSTR_Groestlcoin, + MP_QSTR_secp256k1_hyphen_groestl, + MP_QSTR_Groestlcoin_space_Testnet, + MP_QSTR_Komodo_space_Signed_space_Message_colon__0x0a_, + MP_QSTR_Koto_space_Signed_space_Message_colon__0x0a_, + MP_QSTR_Litecoin_space_Testnet, + MP_QSTR_Peercoin_space_Testnet, + MP_QSTR_Qtum_space_Signed_space_Message_colon__0x0a_, + MP_QSTR_Qtum_space_Testnet, + MP_QSTR_Raven_space_Signed_space_Message_colon__0x0a_, + MP_QSTR_Ravencoin_space_Testnet, + MP_QSTR_Rito_space_Signed_space_Message_colon__0x0a_, + MP_QSTR_secp256k1_hyphen_smart, + MP_QSTR_SmartCash_space_Testnet, + MP_QSTR_Syscoin_space_Signed_space_Message_colon__0x0a_, + MP_QSTR_VIPSTARCOIN, + MP_QSTR_Name_colon__space_Dogecoin_space_Dark_0x0a_, + MP_QSTR_Viacoin_space_Signed_space_Message_colon__0x0a_, + MP_QSTR_DarkNet_space_Signed_space_Message_colon__0x0a_, + MP_QSTR_Zcash_space_Signed_space_Message_colon__0x0a_, + MP_QSTR_Zcash_space_Testnet, + MP_QSTR_apps_slash_common_slash_coins_dot_py, + MP_QSTR_apps_slash_common_slash_keychain_dot_py, + MP_QSTR_LRUCache, + MP_QSTR_Keychain, + MP_QSTR_allow_testnet, + MP_QSTR_get_keychain, + MP_QSTR_with_slip44_keychain, + MP_QSTR_PathSchema, + MP_QSTR_parse, + MP_QSTR_auto_keychain, + MP_QSTR_PATTERN, + MP_QSTR_CURVE, + MP_QSTR_SLIP44_ID, + MP_QSTR_slip44_id, + MP_QSTR_cache_keys, + MP_QSTR_schemas, + MP_QSTR_slip21_namespaces, + MP_QSTR__cache, + MP_QSTR__root_fingerprint, + MP_QSTR_verify_path, + MP_QSTR_path_is_hardened, + MP_QSTR_is_strict, + MP_QSTR_is_in_keychain, + MP_QSTR__derive_with_cache, + MP_QSTR_HARDENED, + MP_QSTR_new_root, + MP_QSTR_match, + MP_QSTR_FORBIDDEN_KEY_PATH, + MP_QSTR_prefix_len, + MP_QSTR_Forbidden_space_key_space_path, + MP_QSTR_apps_slash_common_slash_mnemonic_dot_py, + MP_QSTR_get_secret, + MP_QSTR_is_bip39, + MP_QSTR_derive_cardano_icarus, + MP_QSTR__start_progress, + MP_QSTR__render_progress, + MP_QSTR__finish_progress, + MP_QSTR__progress_obj, + MP_QSTR_progress_bar, + MP_QSTR_trezor_derivation, + MP_QSTR_total, + MP_QSTR_Mnemonic_space_not_space_set, + MP_QSTR_apps_slash_common_slash_passphrase_dot_py, + MP_QSTR__request_on_host, + MP_QSTR_Continue, + MP_QSTR_passphrase_host1_hidden, + MP_QSTR_Hidden_space_wallet, + MP_QSTR_Access_space_hidden_space_wallet_question__0x0a__brace_open__brace_close_, + MP_QSTR_passphrase_host1, + MP_QSTR_passphrase_host2, + MP_QSTR_Confirm_space_passphrase, + MP_QSTR_apps_slash_common_slash_paths_dot_py, + MP_QSTR_Interval, + MP_QSTR_AlwaysMatchingSchema, + MP_QSTR_0_hyphen_100, + MP_QSTR_0_comma_1, + MP_QSTR_change, + MP_QSTR_0_hyphen_1000000, + MP_QSTR__star__squot_, + MP_QSTR__star__star_, + MP_QSTR_validate_path, + MP_QSTR_show_path_warning, + MP_QSTR_is_hardened, + MP_QSTR_address_n_to_str, + MP_QSTR_m_slash_, + MP_QSTR_unharden, + MP_QSTR_get_account_name, + MP_QSTR__brace_open__brace_close__space__hash__brace_open__brace_close_, + MP_QSTR__get_account_num, + MP_QSTR__get_account_num_single, + MP_QSTR__slash_account, + MP_QSTR__parse_hardened, + MP_QSTR__copy_container, + MP_QSTR__EMPTY_TUPLE, + MP_QSTR_schema, + MP_QSTR_trailing_components, + MP_QSTR_WILDCARD_RANGES, + MP_QSTR__squot_, + MP_QSTR__bracket_open_, + MP_QSTR__bracket_close_, + MP_QSTR_REPLACEMENTS, + MP_QSTR_compact, + MP_QSTR_set_never_matching, + MP_QSTR_restrict, + MP_QSTR__path_item, + MP_QSTR_PATTERN_BIP44, + MP_QSTR_PATTERN_BIP44_PUBKEY, + MP_QSTR_PATTERN_SEP5, + MP_QSTR_PATTERN_SEP5_LEDGER_LIVE_LEGACY, + MP_QSTR_PATTERN_CASA, + MP_QSTR_pattern, + MP_QSTR_container, + MP_QSTR_address_index, + MP_QSTR_apps_slash_common_slash_readers_dot_py, + MP_QSTR_read_compact_size, + MP_QSTR_read_uint16_le, + MP_QSTR_read_uint32_le, + MP_QSTR_apps_slash_common_slash_request_pin_dot_py, + MP_QSTR_Enter_space_PIN, + MP_QSTR__request_sd_salt, + MP_QSTR_SdCardUnavailable, + MP_QSTR_request_sd_salt, + MP_QSTR_request_pin_confirm, + MP_QSTR_request_pin_and_sd_salt, + MP_QSTR__set_last_unlock_time, + MP_QSTR_raise_cancelled_on_unavailable, + MP_QSTR_error_pin_invalid, + MP_QSTR_Wrong_space_PIN, + MP_QSTR_error_pin_matches_wipe_code, + MP_QSTR_retry, + MP_QSTR_cache_time_ms, + MP_QSTR_SD_space_salt_space_is_space_unavailable, + MP_QSTR_Enter_space_new_space_PIN, + MP_QSTR_Re_hyphen_enter_space_new_space_PIN, + MP_QSTR_warning_wrong_pin, + MP_QSTR_warning_invalid_new_pin, + MP_QSTR_Invalid_space_PIN, + MP_QSTR_apps_slash_common_slash_safety_checks_dot_py, + MP_QSTR_apply_setting, + MP_QSTR_Unknown_space_SafetyCheckLevel, + MP_QSTR_apps_slash_common_slash_sdcard_dot_py, + MP_QSTR__confirm_retry_wrong_card, + MP_QSTR_Retry, + MP_QSTR_Abort, + MP_QSTR__confirm_retry_insert_card, + MP_QSTR__confirm_format_card, + MP_QSTR_Format, + MP_QSTR_confirm_retry_sd, + MP_QSTR_ensure_sdcard, + MP_QSTR_ensure_filesystem, + MP_QSTR_Error_space_accessing_space_SD_space_card_dot_, + MP_QSTR_warning_wrong_sd, + MP_QSTR_SD_space_card_space_protection, + MP_QSTR_Wrong_space_SD_space_card_dot_, + MP_QSTR_warning_no_sd, + MP_QSTR_SD_space_card_space_required_dot_, + MP_QSTR_warning_format_sd, + MP_QSTR_SD_space_card_space_error, + MP_QSTR_Unknown_space_filesystem_dot_, + MP_QSTR_SD_space_card_space_not_space_formatted_dot_, + MP_QSTR_confirm_format_sd, + MP_QSTR_Format_space_SD_space_card, + MP_QSTR_warning_sd_retry, + MP_QSTR_SD_space_card_space_problem, + MP_QSTR_apps_slash_common_slash_seed_dot_py, + MP_QSTR_derive_and_store_roots, + MP_QSTR_derive_and_store_secrets, + MP_QSTR__get_seed_without_passphrase, + MP_QSTR_derive_node_without_passphrase, + MP_QSTR_derive_slip21_node_without_passphrase, + MP_QSTR_remove_ed25519_prefix, + MP_QSTR_get_passphrase, + MP_QSTR_apps_slash_common_slash_signverify_dot_py, + MP_QSTR_message_digest, + MP_QSTR_decode_message, + MP_QSTR_hex_paren_open__brace_open__brace_close__paren_close_, + MP_QSTR_apps_slash_common_slash_writers_dot_py, + MP_QSTR__write_uint, + MP_QSTR_overflow, + MP_QSTR_write_uint8, + MP_QSTR_write_uint16_le, + MP_QSTR_write_uint32_be, + MP_QSTR_write_uint64_le, + MP_QSTR_write_uint64_be, + MP_QSTR_write_bytes_fixed, + MP_QSTR_write_bytes_reversed, + MP_QSTR_write_uvarint, + MP_QSTR_bigendian, + MP_QSTR_apps_slash_debug_slash___init___dot_py, + MP_QSTR_debug_space_mode_space_inactive, + MP_QSTR_apps_slash_debug_slash_load_device_dot_py, + MP_QSTR_apps_dot_management, + MP_QSTR_is_slip39_word_count, + MP_QSTR_Already_space_initialized, + MP_QSTR_No_space_mnemonic_space_provided, + MP_QSTR_Mnemonic_space_is_space_not_space_valid, + MP_QSTR_warn_loading_seed, + MP_QSTR_Loading_space_seed, + MP_QSTR_Invalid_space_group_space_count, + MP_QSTR_Device_space_loaded, + MP_QSTR_apps_slash_homescreen_slash___init___dot_py, + MP_QSTR_SEEDLESS, + MP_QSTR_COINJOIN_space_AUTHORIZED, + MP_QSTR_BACKUP_space_FAILED, + MP_QSTR_BACKUP_space_NEEDED, + MP_QSTR_PIN_space_NOT_space_SET, + MP_QSTR_EXPERIMENTAL_space_MODE, + MP_QSTR_apps_slash_management_slash_apply_flags_dot_py, + MP_QSTR_Flags_space_applied, + MP_QSTR_apps_slash_management_slash_apply_settings_dot_py, + MP_QSTR__validate_homescreen_model_specific, + MP_QSTR__validate_homescreen, + MP_QSTR__require_confirm_change_homescreen, + MP_QSTR__require_confirm_change_label, + MP_QSTR_Change, + MP_QSTR__require_confirm_change_passphrase, + MP_QSTR_on, + MP_QSTR_off, + MP_QSTR_Turn_space__brace_open__brace_close_, + MP_QSTR__require_confirm_change_passphrase_source, + MP_QSTR__require_confirm_change_display_rotation, + MP_QSTR_north, + MP_QSTR_east, + MP_QSTR_south, + MP_QSTR_west, + MP_QSTR__require_confirm_change_autolock_delay, + MP_QSTR__require_confirm_safety_checks, + MP_QSTR__require_confirm_experimental_features, + MP_QSTR__require_confirm_hide_passphrase_from_host, + MP_QSTR_BRT_PROTECT_CALL, + MP_QSTR_use, + MP_QSTR_rotation, + MP_QSTR_Invalid_space_homescreen, + MP_QSTR_Unsupported_space_jpeg_space_type, + MP_QSTR_No_space_setting_space_provided, + MP_QSTR_Label_space_too_space_long, + MP_QSTR_Auto_hyphen_lock_space_delay_space_too_space_long, + MP_QSTR_Safety_space_checks_space_are_space_strict, + MP_QSTR_Settings_space_applied, + MP_QSTR_Device_space_name, + MP_QSTR_set_passphrase, + MP_QSTR_Passphrase_space_settings, + MP_QSTR_set_passphrase_source, + MP_QSTR_Passphrase_space_source, + MP_QSTR_Change_space_rotation, + MP_QSTR_set_autolock_delay, + MP_QSTR_Auto_hyphen_lock_space_delay, + MP_QSTR_set_safety_checks, + MP_QSTR_Safety_space_checks, + MP_QSTR__space_temporarily_space_, + MP_QSTR_Safety_space_override, + MP_QSTR_Are_space_you_space_sure_question_, + MP_QSTR_Hold_space_to_space_confirm, + MP_QSTR_Experimental_space_mode, + MP_QSTR_Hide_space_passphrase, + MP_QSTR_apps_slash_management_slash_authenticate_device_dot_py, + MP_QSTR_optiga, + MP_QSTR_Allow, + MP_QSTR_DEVICE_ECC_KEY_INDEX, + MP_QSTR_SigningInaccessible, + MP_QSTR_get_certificate, + MP_QSTR_DEVICE_CERT_INDEX, + MP_QSTR_Authenticate_space_device, + MP_QSTR_Checking_space_authenticity_dot__dot__dot_, + MP_QSTR_Signing_space_inaccessible_dot_, + MP_QSTR_apps_slash_management_slash_backup_device_dot_py, + MP_QSTR_backup_seed, + MP_QSTR_show_backup_success, + MP_QSTR_Seed_space_already_space_backed_space_up, + MP_QSTR_apps_slash_management_slash_backup_types_dot_py, + MP_QSTR_is_slip39_backup_type, + MP_QSTR_infer_backup_type, + MP_QSTR__BIP39_WORD_COUNTS, + MP_QSTR__SLIP39_WORD_COUNTS, + MP_QSTR_apps_slash_management_slash_change_pin_dot_py, + MP_QSTR__require_confirm_change_pin, + MP_QSTR_Turn_space_off, + MP_QSTR_set_pin, + MP_QSTR_PIN, + MP_QSTR_PIN_space_changed_dot_, + MP_QSTR_PIN_space_changed, + MP_QSTR_PIN_space_enabled, + MP_QSTR_PIN_space_removed, + MP_QSTR_success_pin, + MP_QSTR_PIN_space_settings, + MP_QSTR_disable_pin, + MP_QSTR_Change_space_PIN_question_, + MP_QSTR_apps_slash_management_slash_change_wipe_code_dot_py, + MP_QSTR__require_confirm_action, + MP_QSTR_wipe_space_code, + MP_QSTR__request_wipe_code_confirm, + MP_QSTR_Wipe_space_code_space_changed_dot_, + MP_QSTR_Wipe_space_code_space_changed, + MP_QSTR_Wipe_space_code_space_enabled_dot_, + MP_QSTR_Wipe_space_code_space_set, + MP_QSTR_Wipe_space_code_space_disabled_dot_, + MP_QSTR_Wipe_space_code_space_removed, + MP_QSTR_success_wipe_code, + MP_QSTR_Wipe_space_code_space_settings, + MP_QSTR_disable_wipe_code, + MP_QSTR_Change_space_wipe_space_code_question_, + MP_QSTR_set_wipe_code, + MP_QSTR_Enter_space_new_space_wipe_space_code, + MP_QSTR_Re_hyphen_enter_space_wipe_space_code, + MP_QSTR_apps_slash_management_slash_get_next_u2f_counter_dot_py, + MP_QSTR_get_u2f_counter, + MP_QSTR_Get_space_U2F_space_counter, + MP_QSTR_apps_slash_management_slash_get_nonce_dot_py, + MP_QSTR_apps_slash_management_slash_reboot_to_bootloader_dot_py, + MP_QSTR_reboot, + MP_QSTR_Restart, + MP_QSTR_Rebooting, + MP_QSTR_Go_space_to_space_bootloader, + MP_QSTR_apps_slash_management_slash_sd_protect_dot_py, + MP_QSTR__make_salt, + MP_QSTR__set_salt, + MP_QSTR__sd_protect_enable, + MP_QSTR_success_sd, + MP_QSTR__sd_protect_disable, + MP_QSTR__sd_protect_refresh, + MP_QSTR_require_confirm_sd_protect, + MP_QSTR_set_sd, + MP_QSTR_storage_sd_salt, + MP_QSTR_SD_space_card_space_I_slash_O_space_error_dot_, + MP_QSTR_Unknown_space_operation, + MP_QSTR_apps_slash_management_slash_set_u2f_counter_dot_py, + MP_QSTR_SET, + MP_QSTR_No_space_value_space_provided, + MP_QSTR_Set_space_U2F_space_counter, + MP_QSTR_U2F_space_counter_space_set, + MP_QSTR_apps_slash_management_slash_show_tutorial_dot_py, + MP_QSTR_Tutorial_space_shown, + MP_QSTR_apps_slash_management_slash_wipe_device_dot_py, + MP_QSTR_confirm_wipe, + MP_QSTR_Wipe_space_device, + MP_QSTR_All_space_data_space_will_space_be_space_erased_dot_, + MP_QSTR_Device_space_wiped, + MP_QSTR_apps_slash_management_slash_recovery_device_slash___init___dot_py, + MP_QSTR_recovery_process, + MP_QSTR_Check, + MP_QSTR_DRY_RUN_ALLOWED_FIELDS, + MP_QSTR_Recover_space_wallet, + MP_QSTR_confirm_seedcheck, + MP_QSTR_Backup_space_check, + MP_QSTR_Check_space_your_space_backup_question_, + MP_QSTR_apps_slash_management_slash_recovery_device_slash_homescreen_dot_py, + MP_QSTR_RecoveryAborted, + MP_QSTR__continue_recovery_process, + MP_QSTR_load_slip39_state, + MP_QSTR_homescreen_dialog, + MP_QSTR_request_mnemonic, + MP_QSTR_show_invalid_mnemonic, + MP_QSTR__finish_recovery_dry_run, + MP_QSTR_show_dry_run_result, + MP_QSTR__finish_recovery, + MP_QSTR__process_words, + MP_QSTR_process_bip39, + MP_QSTR_process_slip39, + MP_QSTR__request_share_first_screen, + MP_QSTR__paren_open__brace_open__brace_close__space_words_paren_close_, + MP_QSTR__request_share_next_screen, + MP_QSTR_Enter, + MP_QSTR__show_remaining_groups_and_shares, + MP_QSTR_storage_recovery, + MP_QSTR_storage_recovery_shares, + MP_QSTR_success_recovery, + MP_QSTR_Device_space_recovered, + MP_QSTR_Enter_space_share, + MP_QSTR_Enter_space_any_space_share, + MP_QSTR_Enter_space_your_space_backup_dot_, + MP_QSTR_More_space_shares_space_needed, + MP_QSTR_apps_slash_management_slash_recovery_device_slash_layout_dot_py, + MP_QSTR__confirm_abort, + MP_QSTR_CANCEL, + MP_QSTR_AlreadyAdded, + MP_QSTR_IdentifierMismatch, + MP_QSTR_ThresholdReached, + MP_QSTR_abort_recovery, + MP_QSTR_Cancel_space_backup_space_check, + MP_QSTR_Cancel_space_recovery, + MP_QSTR_warning_known_share, + MP_QSTR_Share_space_already_space_entered, + MP_QSTR_warning_mismatched_share, + MP_QSTR_warning_group_threshold, + MP_QSTR_Group_space_threshold_space_reached_dot_, + MP_QSTR_success_dry_recovery, + MP_QSTR_warning_dry_recovery, + MP_QSTR_warning_invalid_share, + MP_QSTR_Please_space_try_space_again, + MP_QSTR_warning_invalid_seed, + MP_QSTR_apps_slash_management_slash_recovery_device_slash_recover_dot_py, + MP_QSTR_fetch_previous_mnemonics, + MP_QSTR_apps_slash_management_slash_recovery_device_slash_word_validity_dot_py, + MP_QSTR_WordValidityResult, + MP_QSTR__check_slip39_basic, + MP_QSTR__check_slip39_advanced, + MP_QSTR_partial_mnemonic, + MP_QSTR_previous_mnemonics, + MP_QSTR_apps_slash_management_slash_reset_device_slash___init___dot_py, + MP_QSTR_PROCESSING, + MP_QSTR_show_internal_entropy, + MP_QSTR__backup_slip39_basic, + MP_QSTR_slip39_basic_show_and_confirm_shares, + MP_QSTR__backup_slip39_advanced, + MP_QSTR_slip39_advanced_show_and_confirm_shares, + MP_QSTR__validate_reset_device, + MP_QSTR__compute_secret_from_entropy, + MP_QSTR_bip39_show_and_confirm_mnemonic, + MP_QSTR_BAK_T_BIP39, + MP_QSTR_BAK_T_SLIP39_BASIC, + MP_QSTR_BAK_T_SLIP39_ADVANCED, + MP_QSTR__DEFAULT_BACKUP_TYPE, + MP_QSTR_int_entropy, + MP_QSTR_ext_entropy, + MP_QSTR_strength_in_bytes, + MP_QSTR_Create_space_wallet_space__paren_open_Shamir_paren_close_, + MP_QSTR_Create_space_wallet, + MP_QSTR_Failed_space_to_space_set_space_PIN, + MP_QSTR_Initialized, + MP_QSTR_apps_slash_management_slash_reset_device_slash_layout_dot_py, + MP_QSTR__confirm_word, + MP_QSTR__share_words_confirmed, + MP_QSTR__do_confirm_share_words, + MP_QSTR__show_confirmation_success, + MP_QSTR__show_confirmation_failure, + MP_QSTR_show_backup_warning, + MP_QSTR_Internal_space_entropy, + MP_QSTR_Continue_space_with_space_share_space__hash__brace_open__brace_close__dot_, + MP_QSTR_warning_backup_check, + MP_QSTR_Please_space_check_space_again, + MP_QSTR_Wrong_space_word_space_selected_bang_, + MP_QSTR_Check_space_again, + MP_QSTR_apps_slash_misc_slash___init___dot_py, + MP_QSTR_apps_slash_misc_slash_cipher_key_value_dot_py, + MP_QSTR_Enable_space_labeling_question_, + MP_QSTR_SUITE_space_LABELING, + MP_QSTR_Encrypt_space_value, + MP_QSTR_Decrypt_space_value, + MP_QSTR_apps_slash_misc_slash_cosi_commit_dot_py, + MP_QSTR__decode_path, + MP_QSTR_bootloader, + MP_QSTR_firmware, + MP_QSTR__brace_open__brace_close__space__brace_open__brace_close_, + MP_QSTR_COSI_space_KEYS, + MP_QSTR_COSI_space_DATA, + MP_QSTR_SCHEMA_SLIP18, + MP_QSTR_SCHEMA_SLIP26, + MP_QSTR_vendor_space_header, + MP_QSTR_T2T1_space__brace_open__brace_close__space__paren_open_old_hyphen_style_paren_close_, + MP_QSTR_External_space_definitions, + MP_QSTR_Mismatched_space_address_n, + MP_QSTR_cosi_confirm_key, + MP_QSTR_apps_slash_misc_slash_get_ecdh_session_key_dot_py, + MP_QSTR_get_identity_path, + MP_QSTR_serialize_identity, + MP_QSTR_serialize_identity_without_proto, + MP_QSTR_Decrypt_space__brace_open__brace_close_, + MP_QSTR_apps_slash_misc_slash_get_entropy_dot_py, + MP_QSTR_Confirm_space_entropy, + MP_QSTR_apps_slash_misc_slash_get_firmware_hash_dot_py, + MP_QSTR_apps_slash_misc_slash_sign_identity_dot_py, + MP_QSTR__colon__slash__slash_, + MP_QSTR__at_sign_, + MP_QSTR__lt_I, + MP_QSTR__lt_IIII, + MP_QSTR_sign_challenge, + MP_QSTR_gpg, + MP_QSTR_signify, + MP_QSTR_ssh, + MP_QSTR_seckey, + MP_QSTR_sigtype, + MP_QSTR_Unsupported_space_curve, + MP_QSTR_Unsupported_space_sigtype, + MP_QSTR_Unknown_space_curve, + MP_QSTR_apps_slash_bitcoin_slash___init___dot_py, + MP_QSTR_apps_slash_bitcoin_slash_addresses_dot_py, + MP_QSTR_ecdsa_hash_pubkey, + MP_QSTR_encode_bech32_address, + MP_QSTR_output_script_native_segwit, + MP_QSTR_write_output_script_multisig, + MP_QSTR_multisig_get_pubkeys, + MP_QSTR_multisig_pubkey_index, + MP_QSTR__address_multisig_p2sh, + MP_QSTR__address_multisig_p2wsh_in_p2sh, + MP_QSTR__address_multisig_p2wsh, + MP_QSTR_address_pkh, + MP_QSTR_address_p2sh, + MP_QSTR_address_p2wpkh_in_p2sh, + MP_QSTR__address_p2wsh_in_p2sh, + MP_QSTR_address_p2wpkh, + MP_QSTR__address_p2wsh, + MP_QSTR__address_p2tr, + MP_QSTR_address_to_cashaddr, + MP_QSTR_address_short, + MP_QSTR_redeem_script_hash, + MP_QSTR_witness_script_hash, + MP_QSTR_Invalid_space_script_space_type, + MP_QSTR_apps_slash_bitcoin_slash_authorization_dot_py, + MP_QSTR_BIP32_WALLET_DEPTH, + MP_QSTR_CoinJoinAuthorization, + MP_QSTR_from_cached_message, + MP_QSTR_params, + MP_QSTR_check_get_ownership_proof, + MP_QSTR_write_bytes_prefixed, + MP_QSTR_check_internal_input, + MP_QSTR_check_internal_output, + MP_QSTR_CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES, + MP_QSTR_approve_sign_tx, + MP_QSTR_FEE_RATE_DECIMALS, + MP_QSTR_auth_msg, + MP_QSTR_txi, + MP_QSTR_txo, + MP_QSTR_apps_slash_bitcoin_slash_authorize_coinjoin_dot_py, + MP_QSTR_with_keychain, + MP_QSTR_format_fee_rate, + MP_QSTR_validate_path_against_script_type, + MP_QSTR_include_shortcut, + MP_QSTR__MAX_COORDINATOR_FEE_RATE, + MP_QSTR_Empty_space_path_space_not_space_allowed_dot_, + MP_QSTR_fee_over_threshold, + MP_QSTR_High_space_mining_space_fee, + MP_QSTR_Coinjoin_space_authorized, + MP_QSTR_apps_slash_bitcoin_slash_common_dot_py, + MP_QSTR_SigHashType, + MP_QSTR_ecdsa_sign, + MP_QSTR_bip340_sign, + MP_QSTR_decode_bech32_address, + MP_QSTR_input_is_segwit, + MP_QSTR_input_is_taproot, + MP_QSTR_input_is_external, + MP_QSTR_input_is_external_unverified, + MP_QSTR_tagged_hashwriter, + MP_QSTR_from_int, + MP_QSTR_BITCOIN_NAMES, + MP_QSTR_OP_0, + MP_QSTR_OP_1, + MP_QSTR__BECH32_WITVERS, + MP_QSTR_MULTISIG_INPUT_SCRIPT_TYPES, + MP_QSTR_MULTISIG_OUTPUT_SCRIPT_TYPES, + MP_QSTR_INTERNAL_INPUT_SCRIPT_TYPES, + MP_QSTR_CHANGE_OUTPUT_SCRIPT_TYPES, + MP_QSTR_SEGWIT_INPUT_SCRIPT_TYPES, + MP_QSTR_SEGWIT_OUTPUT_SCRIPT_TYPES, + MP_QSTR_NONSEGWIT_INPUT_SCRIPT_TYPES, + MP_QSTR_SIGHASH_ALL_TAPROOT, + MP_QSTR_SIGHASH_ALL, + MP_QSTR_SIGHASH_FORKID, + MP_QSTR_SIGHASH_ALL_FORKID, + MP_QSTR_sighash_type, + MP_QSTR_Invalid_space_address, + MP_QSTR__brace_open__brace_close__space_sat_brace_open__brace_close__slash__brace_open__brace_close_B, + MP_QSTR_apps_slash_bitcoin_slash_get_address_dot_py, + MP_QSTR__get_xpubs, + MP_QSTR_address_n_to_name, + MP_QSTR_pubnodes, + MP_QSTR_warning_multisig, + MP_QSTR_Multisig_space__brace_open__brace_close__space_of_space__brace_open__brace_close_, + MP_QSTR_Unknown_space_path, + MP_QSTR_apps_slash_bitcoin_slash_get_ownership_id_dot_py, + MP_QSTR_get_identifier, + MP_QSTR_output_derive_script, + MP_QSTR_apps_slash_bitcoin_slash_get_ownership_proof_dot_py, + MP_QSTR_generate_proof, + MP_QSTR_Unauthorized_space_operation, + MP_QSTR_confirm_ownership_proof, + MP_QSTR_Proof_space_of_space_ownership, + MP_QSTR_Commitment_space_data_colon_, + MP_QSTR_apps_slash_bitcoin_slash_get_public_key_dot_py, + MP_QSTR_account_level, + MP_QSTR_XPUB, + MP_QSTR_show_xpub, + MP_QSTR_XPUB_space_mismatch_question_, + MP_QSTR_apps_slash_bitcoin_slash_keychain_dot_py, + MP_QSTR_AccountType, + MP_QSTR__get_schemas_for_coin, + MP_QSTR_get_schemas_from_patterns, + MP_QSTR__get_coin_by_name, + MP_QSTR__get_keychain_for_coin, + MP_QSTR__get_unlock_schemas, + MP_QSTR_Legacy, + MP_QSTR_require_segwit, + MP_QSTR_require_bech32, + MP_QSTR_require_taproot, + MP_QSTR_L_dot__space_SegWit, + MP_QSTR_SegWit, + MP_QSTR_Taproot, + MP_QSTR_get_name, + MP_QSTR_account_name, + MP_QSTR__brace_open__brace_close__space_account, + MP_QSTR__slash_account_squot_, + MP_QSTR__space__hash__brace_open__brace_close_, + MP_QSTR_PATTERN_BIP45, + MP_QSTR_PATTERN_BIP48_RAW, + MP_QSTR_PATTERN_BIP48_P2SHSEGWIT, + MP_QSTR_PATTERN_BIP48_SEGWIT, + MP_QSTR_PATTERN_BIP49, + MP_QSTR_PATTERN_BIP84, + MP_QSTR_PATTERN_BIP86, + MP_QSTR_PATTERN_SLIP25_TAPROOT, + MP_QSTR_PATTERN_SLIP25_TAPROOT_EXTERNAL, + MP_QSTR_PATTERN_GREENADDRESS_A, + MP_QSTR_PATTERN_GREENADDRESS_B, + MP_QSTR_PATTERN_GREENADDRESS_SIGN_A, + MP_QSTR_PATTERN_GREENADDRESS_SIGN_B, + MP_QSTR_PATTERN_CASA_UNHARDENED, + MP_QSTR_PATTERN_UNCHAINED_HARDENED, + MP_QSTR_PATTERN_UNCHAINED_UNHARDENED, + MP_QSTR_PATTERN_UNCHAINED_DEPRECATED, + MP_QSTR_PATTERN_SLIP26_T1_FW, + MP_QSTR_SLIP44_BITCOIN, + MP_QSTR_SLIP44_TESTNET, + MP_QSTR_unlock_schemas, + MP_QSTR_patterns, + MP_QSTR_show_account_str, + MP_QSTR_m_slash__bracket_open_1_comma_4_bracket_close__slash_address_index, + MP_QSTR_m_slash_1195487518, + MP_QSTR_Unsupported_space_coin_space_type, + MP_QSTR_apps_slash_bitcoin_slash_multisig_dot_py, + MP_QSTR_multisig_fingerprint, + MP_QSTR_write_uint32, + MP_QSTR_validate_multisig, + MP_QSTR_multisig_get_pubkey, + MP_QSTR_multisig_get_pubkey_count, + MP_QSTR_apps_slash_bitcoin_slash_ownership_dot_py, + MP_QSTR_read_bip322_signature_proof, + MP_QSTR_write_bip322_signature_proof, + MP_QSTR_verify_nonownership, + MP_QSTR_SignatureVerifier, + MP_QSTR_read_scriptsig_witness, + MP_QSTR__VERSION_MAGIC, + MP_QSTR__OWNERSHIP_ID_KEY_PATH, + MP_QSTR_user_confirmed, + MP_QSTR_proof, + MP_QSTR_Unsupported_space_script_space_type_dot_, + MP_QSTR_apps_slash_bitcoin_slash_readers_dot_py, + MP_QSTR_read_memoryview_prefixed, + MP_QSTR_read_op_push, + MP_QSTR_apps_slash_bitcoin_slash_scripts_dot_py, + MP_QSTR_write_op_push, + MP_QSTR_write_input_script_prefixed, + MP_QSTR_prefixed, + MP_QSTR_write_bip143_script_code_prefixed, + MP_QSTR_write_input_script_p2pkh_or_p2sh_prefixed, + MP_QSTR_parse_input_script_p2pkh, + MP_QSTR_write_output_script_p2pkh, + MP_QSTR_output_script_p2pkh, + MP_QSTR_output_script_p2sh, + MP_QSTR__input_script_native_segwit, + MP_QSTR_parse_output_script_p2tr, + MP_QSTR_write_input_script_p2wpkh_in_p2sh, + MP_QSTR_write_input_script_p2wsh_in_p2sh, + MP_QSTR_write_witness_p2wpkh, + MP_QSTR_parse_witness_p2wpkh, + MP_QSTR_write_witness_multisig, + MP_QSTR_parse_witness_multisig, + MP_QSTR_write_witness_p2tr, + MP_QSTR_parse_witness_p2tr, + MP_QSTR__write_input_script_multisig_prefixed, + MP_QSTR_op_push_length, + MP_QSTR_parse_input_script_multisig, + MP_QSTR_output_script_multisig, + MP_QSTR_output_script_multisig_length, + MP_QSTR_parse_output_script_multisig, + MP_QSTR_output_script_paytoopreturn, + MP_QSTR_write_signature_prefixed, + MP_QSTR_append_signature, + MP_QSTR_append_pubkey, + MP_QSTR_public_keys, + MP_QSTR_pubkeyhash, + MP_QSTR_scripthash, + MP_QSTR_Invalid_space_address_space_type, + MP_QSTR_Invalid_space_scriptSig_dot_, + MP_QSTR_Invalid_space_scriptPubKey_dot_, + MP_QSTR_Invalid_space_witness_dot_, + MP_QSTR_Invalid_space_multisig_space_script, + MP_QSTR_apps_slash_bitcoin_slash_scripts_decred_dot_py, + MP_QSTR_output_script_sstxsubmissionpkh, + MP_QSTR_output_script_sstxchange, + MP_QSTR_write_output_script_ssrtx_prefixed, + MP_QSTR_write_output_script_ssgen_prefixed, + MP_QSTR_sstxcommitment_pkh, + MP_QSTR_pkh, + MP_QSTR_apps_slash_bitcoin_slash_sign_message_dot_py, + MP_QSTR_Unsupported_space_script_space_type, + MP_QSTR_apps_slash_bitcoin_slash_verification_dot_py, + MP_QSTR__decode_der_signature, + MP_QSTR_is_taproot, + MP_QSTR_ensure_hash_type, + MP_QSTR_verify_bip340, + MP_QSTR_verify_ecdsa, + MP_QSTR_der_signature, + MP_QSTR_sighash_types, + MP_QSTR_Invalid_space_public_space_key_space_hash, + MP_QSTR_Invalid_space_script_space_hash, + MP_QSTR_Invalid_space_signature, + MP_QSTR_Unsupported_space_sighash_space_type, + MP_QSTR_apps_slash_bitcoin_slash_verify_message_dot_py, + MP_QSTR__address_to_script_type, + MP_QSTR_The_space_signature_space_is_space_valid_dot_, + MP_QSTR_Message_space_verified, + MP_QSTR_apps_slash_bitcoin_slash_writers_dot_py, + MP_QSTR_write_tx_input, + MP_QSTR_write_tx_input_check, + MP_QSTR_write_tx_output, + MP_QSTR_get_tx_hash, + MP_QSTR_write_uint16, + MP_QSTR_write_uint64, + MP_QSTR_TX_HASH_SIZE, + MP_QSTR_double, + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash___init___dot_py, + MP_QSTR_CoinJoinApprover, + MP_QSTR_ZcashV4, + MP_QSTR_Bitcoinlike, + MP_QSTR_UiConfirm, + MP_QSTR_confirm_dialog, + MP_QSTR_report_init, + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_approvers_dot_py, + MP_QSTR_BitcoinSigHasher, + MP_QSTR_OriginalTxInfo, + MP_QSTR_Approver, + MP_QSTR_BasicApprover, + MP_QSTR_TxWeightCalculator, + MP_QSTR_payment_req_verifier, + MP_QSTR_show_payment_req_details, + MP_QSTR_total_in, + MP_QSTR_external_in, + MP_QSTR_total_out, + MP_QSTR_change_out, + MP_QSTR_orig_total_in, + MP_QSTR_orig_external_in, + MP_QSTR_orig_total_out, + MP_QSTR_orig_change_out, + MP_QSTR_has_unverified_external_input, + MP_QSTR_external_output_index, + MP_QSTR_is_payjoin, + MP_QSTR__add_input, + MP_QSTR_add_input, + MP_QSTR_add_internal_input, + MP_QSTR_add_external_input, + MP_QSTR__add_output, + MP_QSTR_add_output, + MP_QSTR_add_payment_request, + MP_QSTR_PaymentRequestVerifier, + MP_QSTR_finish_payment_request, + MP_QSTR_add_change_output, + MP_QSTR_add_orig_change_output, + MP_QSTR_add_external_output, + MP_QSTR_add_orig_external_output, + MP_QSTR_approve_orig_txids, + MP_QSTR_approve_tx, + MP_QSTR_change_count, + MP_QSTR_foreign_address_confirmed, + MP_QSTR_confirm_foreign_address, + MP_QSTR__replacement_title, + MP_QSTR_PayJoin, + MP_QSTR_rbf_disabled, + MP_QSTR_confirm_unverified_external_input, + MP_QSTR_wallet_path, + MP_QSTR_get_path, + MP_QSTR_confirm_multiple_accounts, + MP_QSTR_get_virtual_size, + MP_QSTR_confirm_feeoverthreshold, + MP_QSTR_MAX_SILENT_CHANGE_COUNT, + MP_QSTR_confirm_change_count_over_threshold, + MP_QSTR_lock_time_disabled, + MP_QSTR_confirm_nondefault_locktime, + MP_QSTR_request, + MP_QSTR_coordination_fee_base, + MP_QSTR_h_request, + MP_QSTR_our_weight, + MP_QSTR_COINJOIN_FLAGS_SIGNABLE, + MP_QSTR_COINJOIN_FLAGS_NO_FEE, + MP_QSTR__verify_coinjoin_request, + MP_QSTR_h_prevouts, + MP_QSTR_h_outputs, + MP_QSTR_COINJOIN_REQ_PUBKEY_TEST, + MP_QSTR_COINJOIN_REQ_PUBKEY, + MP_QSTR_get_weight, + MP_QSTR_get_base_weight, + MP_QSTR_MIN_REGISTRABLE_OUTPUT_AMOUNT, + MP_QSTR_MAX_OUTPUT_WEIGHT, + MP_QSTR_orig_txo, + MP_QSTR_orig_txs, + MP_QSTR_Finalize_space_transaction, + MP_QSTR_Meld_space_transactions, + MP_QSTR_Update_space_transaction, + MP_QSTR_Not_space_enough_space_funds, + MP_QSTR_Unauthorized_space_path, + MP_QSTR_Unauthorized_space_input, + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_bitcoin_dot_py, + MP_QSTR_request_tx_input, + MP_QSTR_request_tx_output, + MP_QSTR_is_coinjoin, + MP_QSTR_approver, + MP_QSTR_step1_process_inputs, + MP_QSTR_step2_approve_outputs, + MP_QSTR_init_signing, + MP_QSTR_external, + MP_QSTR_presigned, + MP_QSTR_taproot_only, + MP_QSTR_step3_verify_inputs, + MP_QSTR_step4_serialize_inputs, + MP_QSTR_step5_serialize_outputs, + MP_QSTR_step6_sign_segwit_inputs, + MP_QSTR_step7_finish, + MP_QSTR_TxInfo, + MP_QSTR_sanitize_sign_tx, + MP_QSTR_tx_req, + MP_QSTR_h_presigned_inputs, + MP_QSTR_create_hash_writer, + MP_QSTR_create_sig_hasher, + MP_QSTR_advance, + MP_QSTR_process_external_input, + MP_QSTR_process_internal_input, + MP_QSTR_input_derive_script, + MP_QSTR_process_original_input, + MP_QSTR_get_tx_check_digest, + MP_QSTR_h_inputs_check, + MP_QSTR_get_original_output, + MP_QSTR_approve_output, + MP_QSTR_fetch_removed_original_outputs, + MP_QSTR_finalize_tx_hash, + MP_QSTR_verify_presigned_external_input, + MP_QSTR_get_prevtx_output, + MP_QSTR_verify_original_txs, + MP_QSTR_write_tx_header, + MP_QSTR_serialize_external_input, + MP_QSTR_serialize_segwit_input, + MP_QSTR_sign_nonsegwit_input, + MP_QSTR_serialize_output, + MP_QSTR_sign_segwit_input, + MP_QSTR_write_tx_footer, + MP_QSTR_request_tx_finish, + MP_QSTR_request_tx_meta, + MP_QSTR_output_is_change, + MP_QSTR_get_sighash_type, + MP_QSTR_get_tx_digest, + MP_QSTR_request_payment_req, + MP_QSTR_hash341, + MP_QSTR_hash143, + MP_QSTR_get_hash_type, + MP_QSTR_get_legacy_tx_digest, + MP_QSTR_check_input, + MP_QSTR_write_tx_input_derived, + MP_QSTR_sign_bip143_input, + MP_QSTR_sign_taproot_input, + MP_QSTR_set_serialized_signature, + MP_QSTR_witness_marker, + MP_QSTR_init_prev_tx, + MP_QSTR_advance_prev_tx, + MP_QSTR_request_tx_prev_input, + MP_QSTR_request_tx_prev_output, + MP_QSTR_check_prevtx_output, + MP_QSTR_write_prev_tx_footer, + MP_QSTR__SERIALIZED_TX_BUFFER, + MP_QSTR_orig, + MP_QSTR_last_index, + MP_QSTR_txo_bin, + MP_QSTR_Invalid_space_amount_space_specified, + MP_QSTR_Wrong_space_input_space_script_space_type, + MP_QSTR_Invalid_space_external_space_input, + MP_QSTR_Not_space_an_space_original_space_output_dot_, + MP_QSTR_Unknown_space_transaction_space_type, + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_helpers_dot_py, + MP_QSTR_UiConfirmOutput, + MP_QSTR_UiConfirmDecredSSTXSubmission, + MP_QSTR_UiConfirmPaymentRequest, + MP_QSTR_UiConfirmReplacement, + MP_QSTR_UiConfirmModifyOutput, + MP_QSTR_UiConfirmModifyFee, + MP_QSTR_UiConfirmTotal, + MP_QSTR_UiConfirmJointTotal, + MP_QSTR_UiConfirmFeeOverThreshold, + MP_QSTR_UiConfirmChangeCountOverThreshold, + MP_QSTR_UiConfirmUnverifiedExternalInput, + MP_QSTR_UiConfirmForeignAddress, + MP_QSTR_UiConfirmNonDefaultLocktime, + MP_QSTR_UiConfirmMultipleAccounts, + MP_QSTR_confirm_decred_sstx_submission, + MP_QSTR_request_tx_extra_data, + MP_QSTR__clear_tx_request, + MP_QSTR__sanitize_tx_meta, + MP_QSTR__sanitize_tx_input, + MP_QSTR__sanitize_tx_prev_input, + MP_QSTR__sanitize_tx_output, + MP_QSTR__sanitize_payment_req, + MP_QSTR_payment_req, + MP_QSTR_spending, + MP_QSTR_Timestamp_space_must_space_be_space_set_dot_, + MP_QSTR_Branch_space_ID_space_must_space_be_space_set_dot_, + MP_QSTR_Missing_space_address_n_space_field_dot_, + MP_QSTR_Missing_space_amount_space_field_dot_, + MP_QSTR_Missing_space_address, + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_layout_dot_py, + MP_QSTR_format_coin_amount, + MP_QSTR_sat, + MP_QSTR_Path_space__brace_open__brace_close_, + MP_QSTR_is_valid, + MP_QSTR_op_return, + MP_QSTR_OP_RETURN, + MP_QSTR_PURCHASE, + MP_QSTR_Buying_space__brace_open__brace_close__dot_, + MP_QSTR__brace_open__brace_close__space_outputs, + MP_QSTR_Multiple_space_accounts, + MP_QSTR_omni_transaction, + MP_QSTR_OMNI_space_transaction, + MP_QSTR_Confirm_space_details, + MP_QSTR_address_space_path_space__brace_open__brace_close_, + MP_QSTR_Purchase_space_ticket, + MP_QSTR_Ticket_space_amount_colon_, + MP_QSTR_Voting_space_rights_space_to_colon_, + MP_QSTR_Unusually_space_high_space_fee_dot_, + MP_QSTR_A_space_lot_space_of_space_change_hyphen_outputs_dot_, + MP_QSTR_nondefault_locktime, + MP_QSTR_Locktime_space_set_space_to_colon_, + MP_QSTR_Confirm_space_locktime, + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_matchcheck_dot_py, + MP_QSTR_MatchChecker, + MP_QSTR_WalletPathChecker, + MP_QSTR_MultisigFingerprintChecker, + MP_QSTR_ScriptTypeChecker, + MP_QSTR_UNDEFINED, + MP_QSTR_attribute, + MP_QSTR_read_only, + MP_QSTR_attribute_from_tx, + MP_QSTR_MISMATCH, + MP_QSTR_output_matches, + MP_QSTR_txio, + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_omni_dot_py, + MP_QSTR__gt_HH, + MP_QSTR__gt_IQ, + MP_QSTR_currencies, + MP_QSTR_OMNI, + MP_QSTR_tOMNI, + MP_QSTR_MAID, + MP_QSTR_USDT, + MP_QSTR_UNKN, + MP_QSTR_Simple_space_send_space_of_space__brace_open__brace_close__space__brace_open__brace_close_, + MP_QSTR_Unknown_space_transaction, + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_payment_request_dot_py, + MP_QSTR_expected_amount, + MP_QSTR_h_pr, + MP_QSTR_PUBLIC_KEY, + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_progress_dot_py, + MP_QSTR_Progress, + MP_QSTR_steps, + MP_QSTR_prev_tx_step, + MP_QSTR_progress_layout, + MP_QSTR__PREV_TX_MULTIPLIER, + MP_QSTR_Signing_space_transaction_dot__dot__dot_, + MP_QSTR_Loading_space_transaction_dot__dot__dot_, + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_sig_hasher_dot_py, + MP_QSTR_h_amounts, + MP_QSTR_h_scriptpubkeys, + MP_QSTR_h_sequences, + MP_QSTR_hash_zip244, + MP_QSTR_hash_type, + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_tx_info_dot_py, + MP_QSTR_TxInfoBase, + MP_QSTR_h_tx_check, + MP_QSTR_min_sequence, + MP_QSTR_h_tx, + MP_QSTR_Invalid_space_original_space_TXID_dot_, + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_tx_weight_dot_py, + MP_QSTR_segwit_inputs_count, + MP_QSTR_input_script_size, + MP_QSTR_compact_size_len, + MP_QSTR_op_push_len, + MP_QSTR_apps_slash_binance_slash___init___dot_py, + MP_QSTR_apps_slash_binance_slash_get_address_dot_py, + MP_QSTR_address_from_public_key, + MP_QSTR_bnb, + MP_QSTR_BNB, + MP_QSTR_apps_slash_binance_slash_get_public_key_dot_py, + MP_QSTR_apps_slash_binance_slash_helpers_dot_py, + MP_QSTR__make_input_output, + MP_QSTR_produce_json_for_signing, + MP_QSTR_DECIMALS, + MP_QSTR_input_output, + MP_QSTR_envelope, + MP_QSTR_Source_space_is_space_invalid, + MP_QSTR_apps_slash_binance_slash_layout_dot_py, + MP_QSTR_require_confirm_transfer, + MP_QSTR__confirm_transfer, + MP_QSTR_require_confirm_cancel, + MP_QSTR_Pair_colon_, + MP_QSTR_Order_space_ID_colon_, + MP_QSTR_require_confirm_order, + MP_QSTR_BUY, + MP_QSTR_Buy, + MP_QSTR_SELL, + MP_QSTR_Sell, + MP_QSTR_Unknown, + MP_QSTR_Side_colon_, + MP_QSTR_Quantity_colon_, + MP_QSTR_Price_colon_, + MP_QSTR_make_input_output_pages, + MP_QSTR_inputs_outputs, + MP_QSTR_direction, + MP_QSTR_Confirm_space_input, + MP_QSTR_Confirm_space_output, + MP_QSTR_confirm_cancel, + MP_QSTR_Confirm_space_cancel, + MP_QSTR_Sender_space_address_colon_, + MP_QSTR_confirm_order, + MP_QSTR_Confirm_space_order, + MP_QSTR_apps_slash_binance_slash_sign_tx_dot_py, + MP_QSTR_Source_space_is_space_invalid_dot_, + MP_QSTR_trezor_slash_enums_slash_BinanceOrderSide_dot_py, + MP_QSTR_SIDE_UNKNOWN, + MP_QSTR_trezor_slash_enums_slash_BinanceOrderType_dot_py, + MP_QSTR_OT_UNKNOWN, + MP_QSTR_MARKET, + MP_QSTR_LIMIT, + MP_QSTR_OT_RESERVED, + MP_QSTR_trezor_slash_enums_slash_BinanceTimeInForce_dot_py, + MP_QSTR_TIF_UNKNOWN, + MP_QSTR_GTE, + MP_QSTR_TIF_RESERVED, + MP_QSTR_IOC, + MP_QSTR_apps_slash_cardano_slash___init___dot_py, + MP_QSTR_apps_slash_cardano_slash_addresses_dot_py, + MP_QSTR_SCHEMA_STAKING_ANY_ACCOUNT, + MP_QSTR_helpers_dot_paths, + MP_QSTR_get_public_key_hash, + MP_QSTR_helpers_dot_utils, + MP_QSTR_BASE, + MP_QSTR_BASE_SCRIPT_KEY, + MP_QSTR_BASE_KEY_SCRIPT, + MP_QSTR_BASE_SCRIPT_SCRIPT, + MP_QSTR_POINTER, + MP_QSTR_POINTER_SCRIPT, + MP_QSTR_ENTERPRISE, + MP_QSTR_ENTERPRISE_SCRIPT, + MP_QSTR_REWARD, + MP_QSTR_REWARD_SCRIPT, + MP_QSTR_BYRON, + MP_QSTR_assert_params_cond, + MP_QSTR_validate_address_parameters, + MP_QSTR_is_shelley_path, + MP_QSTR_is_byron_path, + MP_QSTR__validate_address_parameters_structure, + MP_QSTR__validate_base_address_staking_info, + MP_QSTR_ADDRESS_KEY_HASH_SIZE, + MP_QSTR__validate_script_hash, + MP_QSTR_SCRIPT_HASH_SIZE, + MP_QSTR_validate_output_address_parameters, + MP_QSTR_validate_cvote_payment_address_parameters, + MP_QSTR_assert_cond, + MP_QSTR__validate_and_get_type, + MP_QSTR_validate, + MP_QSTR_HRP_SEPARATOR, + MP_QSTR_validate_output_address, + MP_QSTR_validate_reward_address, + MP_QSTR_validate_cvote_payment_address, + MP_QSTR_get_bytes_unsafe, + MP_QSTR_decode_unsafe, + MP_QSTR__get_bech32_hrp, + MP_QSTR_is_mainnet, + MP_QSTR_HRP_REWARD_ADDRESS, + MP_QSTR_HRP_TESTNET_REWARD_ADDRESS, + MP_QSTR_HRP_ADDRESS, + MP_QSTR_HRP_TESTNET_ADDRESS, + MP_QSTR__get_network_id, + MP_QSTR_derive_human_readable, + MP_QSTR_encode_human_readable, + MP_QSTR_derive_bytes, + MP_QSTR__derive_shelley_address, + MP_QSTR__get_payment_part, + MP_QSTR__get_staking_part, + MP_QSTR_variable_length_encode, + MP_QSTR_ADDRESS_TYPES_SHELLEY, + MP_QSTR_ADDRESS_TYPES_PAYMENT_KEY, + MP_QSTR_ADDRESS_TYPES_PAYMENT_SCRIPT, + MP_QSTR_ADDRESS_TYPES_PAYMENT, + MP_QSTR_condition, + MP_QSTR_address_bytes, + MP_QSTR_apps_slash_cardano_slash_auxiliary_data_dot_py, + MP_QSTR_derive_public_key, + MP_QSTR__validate_cvote_registration_parameters, + MP_QSTR_CIP36, + MP_QSTR__validate_vote_public_key, + MP_QSTR__validate_delegations, + MP_QSTR__get_voting_purpose_to_serialize, + MP_QSTR_CIP15, + MP_QSTR_show, + MP_QSTR_show_auxiliary_data_hash, + MP_QSTR__should_show_payment_warning, + MP_QSTR__show_cvote_registration, + MP_QSTR_Credential, + MP_QSTR_should_show_credentials, + MP_QSTR_helpers_dot_credential, + MP_QSTR_HRP_CVOTE_PUBLIC_KEY, + MP_QSTR_confirm_cvote_registration_delegation, + MP_QSTR_confirm_cvote_registration_payment_address, + MP_QSTR_show_cvote_registration_payment_credentials, + MP_QSTR_payment_credential, + MP_QSTR_stake_credential, + MP_QSTR_confirm_cvote_registration, + MP_QSTR_get_hash_and_supplement, + MP_QSTR_CVOTE_REGISTRATION_SIGNATURE, + MP_QSTR_NONE, + MP_QSTR__get_cvote_registration_hash, + MP_QSTR__get_signed_cvote_registration_payload, + MP_QSTR__create_cvote_registration_payload_signature, + MP_QSTR_should_show_details, + MP_QSTR_cvote_registration_payload, + MP_QSTR_cvote_registration_payload_signature, + MP_QSTR_Invalid_space_auxiliary_space_data, + MP_QSTR_apps_slash_cardano_slash_byron_addresses_dot_py, + MP_QSTR_extended, + MP_QSTR__address_hash, + MP_QSTR__decode_raw, + MP_QSTR__validate_protocol_magic, + MP_QSTR_address_data_encoded, + MP_QSTR_apps_slash_cardano_slash_certificates_dot_py, + MP_QSTR_validate_stake_credential, + MP_QSTR_STAKE_DELEGATION, + MP_QSTR_STAKE_REGISTRATION, + MP_QSTR_STAKE_DEREGISTRATION, + MP_QSTR_STAKE_POOL_REGISTRATION, + MP_QSTR_add_certificate, + MP_QSTR__validate_structure, + MP_QSTR_cborize, + MP_QSTR_cborize_stake_credential, + MP_QSTR_cborize_pool_registration_init, + MP_QSTR__validate_pool_parameters, + MP_QSTR_LOVELACE_MAX_SUPPLY, + MP_QSTR_validate_pool_owner, + MP_QSTR_add_pool_owner, + MP_QSTR_validate_pool_relay, + MP_QSTR_SINGLE_HOST_IP, + MP_QSTR_SINGLE_HOST_NAME, + MP_QSTR_MULTIPLE_HOST_NAME, + MP_QSTR_cborize_pool_owner, + MP_QSTR__cborize_ipv6_address, + MP_QSTR_cborize_pool_relay, + MP_QSTR_cborize_pool_metadata, + MP_QSTR_certificate, + MP_QSTR_account_path_checker, + MP_QSTR_pool_relay, + MP_QSTR_pool_owner, + MP_QSTR_pool_metadata, + MP_QSTR_Invalid_space_certificate, + MP_QSTR_apps_slash_cardano_slash_get_address_dot_py, + MP_QSTR_validate_network_info, + MP_QSTR_show_cardano_address, + MP_QSTR_show_credentials, + MP_QSTR_Deriving_space_address_space_failed, + MP_QSTR_apps_slash_cardano_slash_get_native_script_hash_dot_py, + MP_QSTR_validate_native_script, + MP_QSTR_HIDE, + MP_QSTR_show_native_script, + MP_QSTR_show_script_hash, + MP_QSTR_apps_slash_cardano_slash_get_public_key_dot_py, + MP_QSTR_SCHEMA_MINT, + MP_QSTR_SCHEMA_PUBKEY, + MP_QSTR__get_public_key, + MP_QSTR_derivation_path, + MP_QSTR_apps_slash_cardano_slash_layout_dot_py, + MP_QSTR_format_account_number, + MP_QSTR_format_asset_fingerprint, + MP_QSTR_format_optional_int, + MP_QSTR_format_stake_pool_id, + MP_QSTR_Base, + MP_QSTR_Pointer, + MP_QSTR_Enterprise, + MP_QSTR_Reward, + MP_QSTR_Key, + MP_QSTR_PUB_KEY, + MP_QSTR_All, + MP_QSTR_ALL, + MP_QSTR_Any, + MP_QSTR_ANY, + MP_QSTR_N_space_of_space_K, + MP_QSTR_N_OF_K, + MP_QSTR_INVALID_BEFORE, + MP_QSTR_INVALID_HEREAFTER, + MP_QSTR_ADA, + MP_QSTR_tADA, + MP_QSTR_Script, + MP_QSTR_HRP_SHARED_KEY_HASH, + MP_QSTR_HRP_SCRIPT_HASH, + MP_QSTR_POLICY_ID, + MP_QSTR_Policy_space_ID_colon_, + MP_QSTR_show_tx_init, + MP_QSTR_Show_space_All, + MP_QSTR_confirm_input, + MP_QSTR_Input_space_ID_colon_, + MP_QSTR_confirm_sending, + MP_QSTR_Sending, + MP_QSTR_confirm_sending_token, + MP_QSTR_confirm_datum_hash, + MP_QSTR_HRP_OUTPUT_DATUM_HASH, + MP_QSTR_confirm_inline_datum, + MP_QSTR_confirm_reference_script, + MP_QSTR__confirm_data_chunk, + MP_QSTR_byte, + MP_QSTR_purpose, + MP_QSTR_show_change_output_credentials, + MP_QSTR_show_device_owned_output_credentials, + MP_QSTR_extra_text, + MP_QSTR__show_credential, + MP_QSTR__brace_open__brace_close__space_address, + MP_QSTR_get_title, + MP_QSTR_type_name, + MP_QSTR_is_unusual_path, + MP_QSTR_is_mismatch, + MP_QSTR_is_reward, + MP_QSTR_is_no_staking, + MP_QSTR_warn_path, + MP_QSTR_warn_tx_output_contains_tokens, + MP_QSTR_warn_tx_contains_mint, + MP_QSTR_warn_tx_output_no_datum, + MP_QSTR_warn_no_script_data_hash, + MP_QSTR_warn_no_collateral_inputs, + MP_QSTR_warn_unknown_total_collateral, + MP_QSTR_confirm_witness_request, + MP_QSTR_is_multisig_path, + MP_QSTR_is_minting_path, + MP_QSTR_confirm_tx, + MP_QSTR_to_ui_string, + MP_QSTR_TTL_colon__space__brace_open__brace_close_, + MP_QSTR_confirm_certificate, + MP_QSTR_Confirm_colon_, + MP_QSTR_to_space_pool_colon_, + MP_QSTR_confirm_stake_pool_parameters, + MP_QSTR_Cost_colon__space__brace_open__brace_close__0x0a_, + MP_QSTR_confirm_stake_pool_owner, + MP_QSTR_confirm_stake_pool_metadata, + MP_QSTR_confirm_stake_pool_registration_final, + MP_QSTR_Network_colon_, + MP_QSTR_TTL_colon_, + MP_QSTR_confirm_withdrawal, + MP_QSTR_reward, + MP_QSTR__format_stake_credential, + MP_QSTR_to_account_path, + MP_QSTR_HRP_STAKE_KEY_HASH, + MP_QSTR_Weight_colon_, + MP_QSTR_Nonce_colon_, + MP_QSTR_Catalyst, + MP_QSTR__brace_open__brace_close__space__paren_open_other_paren_close_, + MP_QSTR_confirm_token_minting, + MP_QSTR_warn_tx_network_unverifiable, + MP_QSTR_confirm_script_data_hash, + MP_QSTR_HRP_SCRIPT_DATA_HASH, + MP_QSTR_confirm_collateral_input, + MP_QSTR_confirm_reference_input, + MP_QSTR_confirm_required_signer, + MP_QSTR_HRP_REQUIRED_SIGNER_KEY_HASH, + MP_QSTR_ADDRESS_TYPE_NAMES, + MP_QSTR_SCRIPT_TYPE_NAMES, + MP_QSTR_CERTIFICATE_TYPE_NAMES, + MP_QSTR_BRT_Other, + MP_QSTR_CVOTE_REWARD_ELIGIBILITY_WARNING, + MP_QSTR_ada_amount, + MP_QSTR_output_type, + MP_QSTR_first_chunk, + MP_QSTR_show_both_credentials, + MP_QSTR_show_payment_warning, + MP_QSTR_intro_text, + MP_QSTR_is_collateral_return, + MP_QSTR_witness_path, + MP_QSTR_is_network_id_verifiable, + MP_QSTR_withdrawal, + MP_QSTR_should_show_payment_warning, + MP_QSTR_collateral_input, + MP_QSTR_reference_input, + MP_QSTR_required_signer, + MP_QSTR_Invalid_space_before, + MP_QSTR_Invalid_space_hereafter, + MP_QSTR_Stake_space_key_space_registration, + MP_QSTR_Stake_space_key_space_deregistration, + MP_QSTR_Stake_space_delegation, + MP_QSTR_Stakepool_space_registration, + MP_QSTR__brace_open__brace_close__space__hyphen__space__brace_open__brace_close__space__brace_open__brace_close__colon_, + MP_QSTR_verify_script, + MP_QSTR_Verify_space_script, + MP_QSTR_Script_space_hash_colon_, + MP_QSTR_Confirm_space_transaction, + MP_QSTR_Choose_space_level_space_of_space_details_colon_, + MP_QSTR_Show_space_Simple, + MP_QSTR_Input_space_index_colon_, + MP_QSTR_Change_space_output, + MP_QSTR_collateral_hyphen_return, + MP_QSTR_Collateral_space_return, + MP_QSTR_confirm_token, + MP_QSTR_Asset_space_fingerprint_colon_, + MP_QSTR_Amount_space_sent_colon_, + MP_QSTR_Datum_space_hash_colon_, + MP_QSTR_Inline_space_datum, + MP_QSTR_Reference_space_script, + MP_QSTR__brace_open__brace_close__space__paren_open__brace_open__brace_close__space__brace_open__brace_close__paren_close__colon_, + MP_QSTR__dot__dot__dot_, + MP_QSTR_Path_space_is_space_unusual_dot_, + MP_QSTR_confirm_credential, + MP_QSTR_confirm_tokens, + MP_QSTR_confirm_no_datum_hash, + MP_QSTR_multi_hyphen_sig_space_path, + MP_QSTR_token_space_minting_space_path, + MP_QSTR_Transaction_space_fee_colon_, + MP_QSTR_Total_space_collateral_colon_, + MP_QSTR_Network_colon__space__brace_open__brace_close_, + MP_QSTR_Valid_space_since_colon__space__brace_open__brace_close_, + MP_QSTR_Pool_space_reward_space_account_colon_, + MP_QSTR_Pledge_colon__space__brace_open__brace_close__0x0a_, + MP_QSTR_Margin_colon__space__brace_open__brace_close__percent_, + MP_QSTR_Pool_space_owner_colon_, + MP_QSTR_confirm_pool_owners, + MP_QSTR_confirm_pool_metadata, + MP_QSTR_Pool_space_metadata_space_url_colon_, + MP_QSTR_Pool_space_metadata_space_hash_colon_, + MP_QSTR_confirm_pool_final, + MP_QSTR_Valid_space_since_colon_, + MP_QSTR_script_space_reward, + MP_QSTR_for_space_account_space__brace_open__brace_close__colon_, + MP_QSTR_for_space_key_space_hash_colon_, + MP_QSTR_for_space_script_colon_, + MP_QSTR_Delegating_space_to_colon_, + MP_QSTR_Rewards_space_go_space_to_colon_, + MP_QSTR_Vote_space_public_space_key_colon_, + MP_QSTR_Voting_space_purpose_colon_, + MP_QSTR_confirm_auxiliary_data, + MP_QSTR_Auxiliary_space_data_space_hash_colon_, + MP_QSTR_confirm_mint, + MP_QSTR_Amount_space_minted_colon_, + MP_QSTR_Amount_space_burned_colon_, + MP_QSTR_warning_no_outputs, + MP_QSTR_Script_space_data_space_hash_colon_, + MP_QSTR_Collateral_space_input_space_ID_colon_, + MP_QSTR_Collateral_space_input_space_index_colon_, + MP_QSTR_Reference_space_input_space_ID_colon_, + MP_QSTR_Reference_space_input_space_index_colon_, + MP_QSTR_Required_space_signer, + MP_QSTR_apps_slash_cardano_slash_native_script_dot_py, + MP_QSTR__validate_native_script_structure, + MP_QSTR_cborize_native_script, + MP_QSTR_Invalid_space_native_space_script, + MP_QSTR_apps_slash_cardano_slash_seed_dot_py, + MP_QSTR_BYRON_ROOT, + MP_QSTR_MINTING_ROOT, + MP_QSTR_MULTISIG_ROOT, + MP_QSTR_SHELLEY_ROOT, + MP_QSTR__get_keychain_bip39, + MP_QSTR_LEDGER, + MP_QSTR_ICARUS, + MP_QSTR__get_keychain, + MP_QSTR__derive_path, + MP_QSTR_byron_root, + MP_QSTR_shelley_root, + MP_QSTR_multisig_root, + MP_QSTR_minting_root, + MP_QSTR__get_path_root, + MP_QSTR_root, + MP_QSTR_node_path, + MP_QSTR_apps_slash_cardano_slash_helpers_slash___init___dot_py, + MP_QSTR_INPUT_PREV_HASH_SIZE, + MP_QSTR_OUTPUT_DATUM_HASH_SIZE, + MP_QSTR_SCRIPT_DATA_HASH_SIZE, + MP_QSTR_apps_slash_cardano_slash_helpers_slash_account_path_check_dot_py, + MP_QSTR_AccountPathChecker, + MP_QSTR_account_path, + MP_QSTR__add, + MP_QSTR__is_byron_and_shelley_equivalent, + MP_QSTR_common_dot_paths, + MP_QSTR_ACCOUNT_PATH_INDEX, + MP_QSTR_ACCOUNT_PATH_LENGTH, + MP_QSTR_add_withdrawal, + MP_QSTR_add_witness_request, + MP_QSTR_witness_request, + MP_QSTR_Invalid_space_output, + MP_QSTR_Invalid_space_withdrawal, + MP_QSTR_Invalid_space_witness_space_request, + MP_QSTR_apps_slash_cardano_slash_helpers_slash_bech32_dot_py, + MP_QSTR_addr_test, + MP_QSTR_stake, + MP_QSTR_stake_test, + MP_QSTR_cvote_vk, + MP_QSTR_addr_vkh, + MP_QSTR_stake_vkh, + MP_QSTR_datum, + MP_QSTR__decode, + MP_QSTR_HRP_KEY_HASH, + MP_QSTR_bech, + MP_QSTR_addr_shared_vkh, + MP_QSTR_req_signer_vkh, + MP_QSTR_script_data, + MP_QSTR_apps_slash_cardano_slash_helpers_slash_credential_dot_py, + MP_QSTR_SCHEMA_PAYMENT, + MP_QSTR__do_base_address_credentials_match, + MP_QSTR_CHAIN_STAKING_KEY, + MP_QSTR_pointer, + MP_QSTR_is_other_warning, + MP_QSTR_SCHEMA_STAKING, + MP_QSTR_key_space_hash, + MP_QSTR_Block_colon__space__brace_open__brace_close_, + MP_QSTR_CREDENTIAL_TYPE_PAYMENT, + MP_QSTR_CREDENTIAL_TYPE_STAKE, + MP_QSTR_address_params, + MP_QSTR_Transaction_colon__space__brace_open__brace_close_, + MP_QSTR_Certificate_colon__space__brace_open__brace_close_, + MP_QSTR_apps_slash_cardano_slash_helpers_slash_hash_builder_collection_dot_py, + MP_QSTR_HashBuilderCollection, + MP_QSTR_HashBuilderList, + MP_QSTR_HashBuilderDict, + MP_QSTR_HashBuilderEmbeddedCBOR, + MP_QSTR_remaining, + MP_QSTR_hash_fn, + MP_QSTR_has_unfinished_child, + MP_QSTR__header_bytes, + MP_QSTR__insert_child, + MP_QSTR__do_enter_item, + MP_QSTR__hash_item, + MP_QSTR__hash_item_streamed, + MP_QSTR_key_order_error, + MP_QSTR_previous_encoded_key, + MP_QSTR_child, + MP_QSTR_exc_tb, + MP_QSTR_chunk, + MP_QSTR_apps_slash_cardano_slash_helpers_slash_network_ids_dot_py, + MP_QSTR_MAINNET, + MP_QSTR_TESTNET, + MP_QSTR_apps_slash_cardano_slash_helpers_slash_paths_dot_py, + MP_QSTR_CHANGE_OUTPUT_PATH_NAME, + MP_QSTR_CHANGE_OUTPUT_STAKING_PATH_NAME, + MP_QSTR_CERTIFICATE_PATH_NAME, + MP_QSTR_POOL_OWNER_STAKING_PATH_NAME, + MP_QSTR_WITNESS_PATH_NAME, + MP_QSTR_Change_space_output_space_path, + MP_QSTR_Certificate_space_path, + MP_QSTR_Pool_space_owner_space_staking_space_path, + MP_QSTR_Witness_space_path, + MP_QSTR_apps_slash_cardano_slash_helpers_slash_protocol_magics_dot_py, + MP_QSTR_Mainnet, + MP_QSTR_TESTNET_PREPROD, + MP_QSTR_TESTNET_PREVIEW, + MP_QSTR_TESTNET_LEGACY, + MP_QSTR_NAMES, + MP_QSTR_Preprod_space_Testnet, + MP_QSTR_Preview_space_Testnet, + MP_QSTR_Legacy_space_Testnet, + MP_QSTR_apps_slash_cardano_slash_helpers_slash_utils_dot_py, + MP_QSTR__hash__brace_open__brace_close_, + MP_QSTR_n_slash_a, + MP_QSTR_pool_id_bytes, + MP_QSTR_Path_space_is_space_too_space_short_dot_, + MP_QSTR_apps_slash_cardano_slash_sign_tx_slash___init___dot_py, + MP_QSTR_Signer, + MP_QSTR_ORDINARY_TRANSACTION, + MP_QSTR_OrdinarySigner, + MP_QSTR_POOL_REGISTRATION_AS_OWNER, + MP_QSTR_PoolOwnerSigner, + MP_QSTR_MULTISIG_TRANSACTION, + MP_QSTR_MultisigSigner, + MP_QSTR_PLUTUS_TRANSACTION, + MP_QSTR_PlutusSigner, + MP_QSTR_Signing_space_failed, + MP_QSTR_apps_slash_cardano_slash_sign_tx_slash_multisig_signer_dot_py, + MP_QSTR__validate_tx_init, + MP_QSTR__assert_tx_init_cond, + MP_QSTR__confirm_tx, + MP_QSTR__is_network_id_verifiable, + MP_QSTR__validate_output, + MP_QSTR__validate_certificate, + MP_QSTR__validate_withdrawal, + MP_QSTR__validate_witness_request, + MP_QSTR_SIGNING_MODE_TITLE, + MP_QSTR_apps_slash_cardano_slash_sign_tx_slash_ordinary_signer_dot_py, + MP_QSTR__show_witness_request, + MP_QSTR__fail_or_warn_path, + MP_QSTR__show_if_showing_details, + MP_QSTR_apps_slash_cardano_slash_sign_tx_slash_plutus_signer_dot_py, + MP_QSTR__show_tx_init, + MP_QSTR__show_input, + MP_QSTR__show_output_credentials, + MP_QSTR__should_show_output, + MP_QSTR__is_simple_change_output, + MP_QSTR__is_change_output, + MP_QSTR_apps_slash_cardano_slash_sign_tx_slash_pool_owner_signer_dot_py, + MP_QSTR_apps_slash_cardano_slash_sign_tx_slash_signer_dot_py, + MP_QSTR_helpers_dot_hash_builder_collection, + MP_QSTR_helpers_dot_account_path_check, + MP_QSTR_tx_dict, + MP_QSTR__processs_tx_init, + MP_QSTR__process_witness_requests, + MP_QSTR__process_inputs, + MP_QSTR__process_outputs, + MP_QSTR__process_certificates, + MP_QSTR__process_withdrawals, + MP_QSTR__process_auxiliary_data, + MP_QSTR__process_minting, + MP_QSTR__process_script_data_hash, + MP_QSTR__process_collateral_inputs, + MP_QSTR__process_required_signers, + MP_QSTR__process_collateral_return, + MP_QSTR__process_reference_inputs, + MP_QSTR__validate_input, + MP_QSTR__process_output, + MP_QSTR__show_output_init, + MP_QSTR_ARRAY_LEGACY, + MP_QSTR__process_legacy_output, + MP_QSTR_MAP_BABBAGE, + MP_QSTR__process_babbage_output, + MP_QSTR__fail_if_strict_and_unusual, + MP_QSTR__get_output_address_type, + MP_QSTR__get_output_address, + MP_QSTR__process_output_value, + MP_QSTR__process_inline_datum, + MP_QSTR__process_reference_script, + MP_QSTR__process_asset_groups, + MP_QSTR__validate_asset_group, + MP_QSTR__process_tokens, + MP_QSTR__validate_token, + MP_QSTR__get_chunks_count, + MP_QSTR__validate_chunk, + MP_QSTR__show_certificate, + MP_QSTR__process_pool_owners, + MP_QSTR__process_pool_relays, + MP_QSTR__fail_or_warn_if_invalid_path, + MP_QSTR__show_pool_owner, + MP_QSTR__derive_withdrawal_address_bytes, + MP_QSTR_is_mint, + MP_QSTR__process_minting_tokens, + MP_QSTR__validate_script_data_hash, + MP_QSTR__validate_collateral_input, + MP_QSTR__show_collateral_input, + MP_QSTR__validate_required_signer, + MP_QSTR__validate_collateral_return, + MP_QSTR__should_show_collateral_return_init, + MP_QSTR__should_show_collateral_return_tokens, + MP_QSTR__show_collateral_return_init, + MP_QSTR__validate_reference_input, + MP_QSTR__get_byron_witness, + MP_QSTR__get_shelley_witness, + MP_QSTR_BYRON_WITNESS, + MP_QSTR__sign_tx_hash, + MP_QSTR_SHELLEY_WITNESS, + MP_QSTR_Invalid_space__brace_open__brace_close_, + MP_QSTR_ctx_call, + MP_QSTR_inputs_list, + MP_QSTR_outputs_list, + MP_QSTR_output_list, + MP_QSTR_should_show, + MP_QSTR_output_dict, + MP_QSTR_output_value_list, + MP_QSTR_should_show_tokens, + MP_QSTR_asset_groups_dict, + MP_QSTR_asset_group, + MP_QSTR_tokens_dict, + MP_QSTR_inline_datum_cbor, + MP_QSTR_reference_script_cbor, + MP_QSTR_certificates_list, + MP_QSTR_pool_owners_list, + MP_QSTR_relays_list, + MP_QSTR_withdrawals_dict, + MP_QSTR_minting_dict, + MP_QSTR_collateral_inputs_list, + MP_QSTR_required_signers_list, + MP_QSTR_reference_inputs_list, + MP_QSTR_chunk_data, + MP_QSTR_chunk_number, + MP_QSTR_chunks_count, + MP_QSTR_tx_body_hash, + MP_QSTR_path_name, + MP_QSTR_layout_fn, + MP_QSTR_Fee_space_is_space_out_space_of_space_range_bang_, + MP_QSTR_Invalid_space_input, + MP_QSTR_Invalid_space_script_space_data_space_hash, + MP_QSTR_Invalid_space_collateral_space_input, + MP_QSTR_Invalid_space_required_space_signer, + MP_QSTR_Invalid_space_reference_space_input, + MP_QSTR_trezor_slash_enums_slash_CardanoAddressType_dot_py, + MP_QSTR_trezor_slash_enums_slash_CardanoCVoteRegistrationFormat_dot_py, + MP_QSTR_trezor_slash_enums_slash_CardanoCertificateType_dot_py, + MP_QSTR_trezor_slash_enums_slash_CardanoDerivationType_dot_py, + MP_QSTR_ICARUS_TREZOR, + MP_QSTR_trezor_slash_enums_slash_CardanoNativeScriptHashDisplayFormat_dot_py, + MP_QSTR_trezor_slash_enums_slash_CardanoNativeScriptType_dot_py, + MP_QSTR_trezor_slash_enums_slash_CardanoPoolRelayType_dot_py, + MP_QSTR_trezor_slash_enums_slash_CardanoTxAuxiliaryDataSupplementType_dot_py, + MP_QSTR_trezor_slash_enums_slash_CardanoTxOutputSerializationFormat_dot_py, + MP_QSTR_trezor_slash_enums_slash_CardanoTxSigningMode_dot_py, + MP_QSTR_trezor_slash_enums_slash_CardanoTxWitnessType_dot_py, + MP_QSTR_apps_slash_eos_slash___init___dot_py, + MP_QSTR_apps_slash_eos_slash_get_public_key_dot_py, + MP_QSTR_public_key_to_wif, + MP_QSTR_require_get_public_key, + MP_QSTR_apps_slash_eos_slash_helpers_dot_py, + MP_QSTR_base58_encode, + MP_QSTR_eos_name_to_string, + MP_QSTR_eos_asset_to_string, + MP_QSTR__brace_open__colon_0_brace_open__brace_close_d_brace_close_, + MP_QSTR__brace_open__brace_close__dot__brace_open__brace_close__space__brace_open__brace_close_, + MP_QSTR_sig_prefix, + MP_QSTR_invalid_space_public_space_key, + MP_QSTR_apps_slash_eos_slash_layout_dot_py, + MP_QSTR_require_sign_tx, + MP_QSTR_Sign_space_transaction, + MP_QSTR_apps_slash_eos_slash_sign_tx_dot_py, + MP_QSTR_process_action, + MP_QSTR_No_space_actions, + MP_QSTR_SIG_, + MP_QSTR_K1, + MP_QSTR_apps_slash_eos_slash_writers_dot_py, + MP_QSTR_write_auth, + MP_QSTR_write_action_transfer, + MP_QSTR_write_action_buyram, + MP_QSTR_write_action_buyrambytes, + MP_QSTR_write_action_sellram, + MP_QSTR_write_action_delegate, + MP_QSTR_write_action_undelegate, + MP_QSTR_write_action_refund, + MP_QSTR_write_action_voteproducer, + MP_QSTR_write_action_updateauth, + MP_QSTR_write_action_deleteauth, + MP_QSTR_write_action_linkauth, + MP_QSTR_write_action_unlinkauth, + MP_QSTR_write_action_newaccount, + MP_QSTR_write_action_common, + MP_QSTR_write_asset, + MP_QSTR_apps_slash_eos_slash_actions_slash___init___dot_py, + MP_QSTR_is_last, + MP_QSTR_eosio, + MP_QSTR_buyram, + MP_QSTR_confirm_action_buyram, + MP_QSTR_confirm_action_buyrambytes, + MP_QSTR_sellram, + MP_QSTR_confirm_action_sellram, + MP_QSTR_delegatebw, + MP_QSTR_confirm_action_delegate, + MP_QSTR_confirm_action_undelegate, + MP_QSTR_confirm_action_refund, + MP_QSTR_confirm_action_voteproducer, + MP_QSTR_updateauth, + MP_QSTR_confirm_action_updateauth, + MP_QSTR_deleteauth, + MP_QSTR_confirm_action_deleteauth, + MP_QSTR_linkauth, + MP_QSTR_confirm_action_linkauth, + MP_QSTR_unlinkauth, + MP_QSTR_confirm_action_unlinkauth, + MP_QSTR_newaccount, + MP_QSTR_confirm_action_newaccount, + MP_QSTR_confirm_action_transfer, + MP_QSTR__process_unknown_action, + MP_QSTR_confirm_action_unknown, + MP_QSTR__check_action, + MP_QSTR_sha, + MP_QSTR_Invalid_space_action, + MP_QSTR_buyrambytes, + MP_QSTR_undelegatebw, + MP_QSTR_voteproducer, + MP_QSTR_apps_slash_eos_slash_actions_slash_layout_dot_py, + MP_QSTR__confirm_properties, + MP_QSTR_Buy_space_RAM, + MP_QSTR_Payer_colon_, + MP_QSTR_Receiver_colon_, + MP_QSTR_Bytes_colon_, + MP_QSTR_Sender_colon_, + MP_QSTR_CPU_colon_, + MP_QSTR_NET_colon_, + MP_QSTR_Delegate, + MP_QSTR_Sell_space_RAM, + MP_QSTR_Undelegate, + MP_QSTR_Refund, + MP_QSTR_Owner_colon_, + MP_QSTR_Voter_colon_, + MP_QSTR_Proxy_colon_, + MP_QSTR_From_colon_, + MP_QSTR_To_colon_, + MP_QSTR_Contract_colon_, + MP_QSTR_Memo, + MP_QSTR_Transfer, + MP_QSTR_Account_colon_, + MP_QSTR_Parent_colon_, + MP_QSTR_Link_space_Auth, + MP_QSTR_Code_colon_, + MP_QSTR_Type_colon_, + MP_QSTR_Creator_colon_, + MP_QSTR_Name_colon_, + MP_QSTR_Checksum_colon_, + MP_QSTR_authorization_fields, + MP_QSTR_Threshold_colon_, + MP_QSTR_Key_space__hash_, + MP_QSTR__space_Weight_colon_, + MP_QSTR_Account_space__hash_, + MP_QSTR__space_weight_colon_, + MP_QSTR_Delay_space__hash_, + MP_QSTR__space_sec, + MP_QSTR__brace_open__colon_2d_brace_close__dot__space__brace_open__brace_close_, + MP_QSTR_checksum, + MP_QSTR_confirm_buyram, + MP_QSTR_confirm_buyrambytes, + MP_QSTR_Transfer_colon_, + MP_QSTR_Yes, + MP_QSTR_No, + MP_QSTR_confirm_delegate, + MP_QSTR_confirm_sellram, + MP_QSTR_confirm_undelegate, + MP_QSTR_confirm_refund, + MP_QSTR_confirm_voteproducer, + MP_QSTR_Vote_space_for_space_proxy, + MP_QSTR_Vote_space_for_space_producers, + MP_QSTR_Cancel_space_vote, + MP_QSTR_confirm_transfer, + MP_QSTR_Permission_colon_, + MP_QSTR_confirm_updateauth, + MP_QSTR_Update_space_Auth, + MP_QSTR_confirm_deleteauth, + MP_QSTR_Delete_space_Auth, + MP_QSTR_confirm_linkauth, + MP_QSTR_Requirement_colon_, + MP_QSTR_confirm_unlinkauth, + MP_QSTR_Unlink_space_Auth, + MP_QSTR_confirm_newaccount, + MP_QSTR_New_space_Account, + MP_QSTR_confirm_unknown, + MP_QSTR_Arbitrary_space_data, + MP_QSTR_Action_space_Name_colon_, + MP_QSTR_Acc_space_Permission_space__hash_, + MP_QSTR_apps_slash_ethereum_slash___init___dot_py, + MP_QSTR_apps_slash_ethereum_slash_definitions_dot_py, + MP_QSTR_Definitions, + MP_QSTR_decode_definition, + MP_QSTR_NETWORK, + MP_QSTR_TOKEN, + MP_QSTR_FORMAT_VERSION, + MP_QSTR_MIN_DATA_VERSION, + MP_QSTR_THRESHOLD, + MP_QSTR_PUBLIC_KEYS, + MP_QSTR__tokens, + MP_QSTR_from_encoded, + MP_QSTR_UNKNOWN_NETWORK, + MP_QSTR_by_chain_id, + MP_QSTR_by_slip44, + MP_QSTR_get_token, + MP_QSTR_UNKNOWN_TOKEN, + MP_QSTR_token_by_chain_address, + MP_QSTR_Definition_space_type_space_mismatch, + MP_QSTR_Definition_space_is_space_outdated, + MP_QSTR_apps_slash_ethereum_slash_definitions_constants_dot_py, + MP_QSTR_apps_slash_ethereum_slash_get_address_dot_py, + MP_QSTR_PATTERNS_ADDRESS, + MP_QSTR_with_keychain_from_path, + MP_QSTR_address_from_bytes, + MP_QSTR_ETH, + MP_QSTR_defs, + MP_QSTR_apps_slash_ethereum_slash_get_public_key_dot_py, + MP_QSTR_apps_slash_ethereum_slash_helpers_dot_py, + MP_QSTR_0x, + MP_QSTR_bytes_from_address, + MP_QSTR_get_type_name, + MP_QSTR_uint, + MP_QSTR_BYTES, + MP_QSTR_STRING, + MP_QSTR_BOOL, + MP_QSTR_ADDRESS, + MP_QSTR_STRUCT, + MP_QSTR__brace_open__brace_close__bracket_open__bracket_close_, + MP_QSTR__brace_open__brace_close__bracket_open__brace_open__brace_close__bracket_close_, + MP_QSTR_decode_typed_data, + MP_QSTR_true, + MP_QSTR_false, + MP_QSTR__from_bytes_bigendian_signed, + MP_QSTR__maybe_upper, + MP_QSTR_RSKIP60_NETWORKS, + MP_QSTR_field, + MP_QSTR_0X, + MP_QSTR_apps_slash_ethereum_slash_keychain_dot_py, + MP_QSTR__slip44_from_address_n, + MP_QSTR__defs_from_message, + MP_QSTR__schemas_from_network, + MP_QSTR_with_keychain_from_chain_id, + MP_QSTR_network_info, + MP_QSTR_apps_slash_ethereum_slash_layout_dot_py, + MP_QSTR_require_confirm_tx, + MP_QSTR__brace_open__brace_close__space_units, + MP_QSTR_Gas_space_limit_colon_, + MP_QSTR_Gas_space_price_colon_, + MP_QSTR_require_confirm_tx_eip1559, + MP_QSTR_require_confirm_unknown_token, + MP_QSTR_require_confirm_address, + MP_QSTR_require_confirm_data, + MP_QSTR_confirm_typed_data_final, + MP_QSTR_confirm_empty_typed_message, + MP_QSTR_should_show_domain, + MP_QSTR_should_show_struct, + MP_QSTR__comma__space_, + MP_QSTR_should_show_array, + MP_QSTR_confirm_typed_value, + MP_QSTR__bracket_open__brace_open__brace_close__bracket_close__space__paren_open__brace_open__brace_close__paren_close_, + MP_QSTR__brace_open__brace_close__space__paren_open__brace_open__brace_close__paren_close_, + MP_QSTR_format_ethereum_amount, + MP_QSTR_Wei_space_, + MP_QSTR_limit_str, + MP_QSTR__dot__dot_, + MP_QSTR_data_total, + MP_QSTR_data_members, + MP_QSTR_parent_objects, + MP_QSTR_array_index, + MP_QSTR_Confirm_space_struct, + MP_QSTR_Show_space_full_space_struct, + MP_QSTR_new_space_contract_question_, + MP_QSTR_Max_space_gas_space_price_colon_, + MP_QSTR_Priority_space_fee_colon_, + MP_QSTR_Unknown_space_token, + MP_QSTR_unknown_token, + MP_QSTR_Signing_space_address, + MP_QSTR_confirm_data, + MP_QSTR_Confirm_space_data, + MP_QSTR_Size_colon__space__brace_open__brace_close__space_bytes, + MP_QSTR_Confirm_space_typed_space_data, + MP_QSTR_Confirm_space_message, + MP_QSTR_No_space_message_space_field, + MP_QSTR_Name_space_and_space_version, + MP_QSTR_Confirm_space_domain, + MP_QSTR_Show_space_full_space_domain, + MP_QSTR_Show_space_full_space_array, + MP_QSTR_apps_slash_ethereum_slash_networks_dot_py, + MP_QSTR__networks_iterator, + MP_QSTR_Unknown_space_network, + MP_QSTR_tETH, + MP_QSTR_Ropsten, + MP_QSTR_Rinkeby, + MP_QSTR_G_ouml_rli, + MP_QSTR_Binance_space_Smart_space_Chain, + MP_QSTR_ETC, + MP_QSTR_Ethereum_space_Classic, + MP_QSTR_MATIC, + MP_QSTR_Polygon, + MP_QSTR_apps_slash_ethereum_slash_sign_message_dot_py, + MP_QSTR_apps_slash_ethereum_slash_sign_tx_dot_py, + MP_QSTR_handle_erc20, + MP_QSTR__get_total_length, + MP_QSTR_send_request_chunk, + MP_QSTR__sign_digest, + MP_QSTR_check_common_fields, + MP_QSTR_MAX_CHAIN_ID, + MP_QSTR_data_left, + MP_QSTR_tx_type_space_out_space_of_space_bounds, + MP_QSTR_Fee_space_overflow, + MP_QSTR_Chain_space_ID_space_out_space_of_space_bounds, + MP_QSTR_apps_slash_ethereum_slash_sign_tx_eip1559_dot_py, + MP_QSTR_access_list_item_length, + MP_QSTR_apps_slash_ethereum_slash_sign_typed_data_dot_py, + MP_QSTR_TypedDataEnvelope, + MP_QSTR__generate_typed_data_hash, + MP_QSTR_collect_types, + MP_QSTR_hash_struct, + MP_QSTR_types, + MP_QSTR_get_hash_writer, + MP_QSTR_keccak256, + MP_QSTR_encode_field, + MP_QSTR_signed, + MP_QSTR_write_leftpad32, + MP_QSTR__validate_value, + MP_QSTR_validate_field_type, + MP_QSTR__get_array_size, + MP_QSTR_get_value, + MP_QSTR__get_name_and_version_for_domain, + MP_QSTR__collect_types, + MP_QSTR_get_and_encode_data, + MP_QSTR_encode_type, + MP_QSTR_find_typed_dependencies, + MP_QSTR__brace_open__brace_close__paren_open__brace_open__brace_close__paren_close_, + MP_QSTR_member_value_path, + MP_QSTR_typed_data_envelope, + MP_QSTR_show_data, + MP_QSTR_results, + MP_QSTR_EIP712Domain, + MP_QSTR_Show_space_full_space_message, + MP_QSTR_Invalid_space_length, + MP_QSTR_Invalid_space_boolean_space_value, + MP_QSTR_Invalid_space_UTF_hyphen_8, + MP_QSTR_Missing_space_size_space_in_space_struct, + MP_QSTR_Invalid_space_size_space_in_space_bytes, + MP_QSTR_Invalid_space_size_space_in_space_int_slash_uint, + MP_QSTR_apps_slash_ethereum_slash_tokens_dot_py, + MP_QSTR_Wei_space_UNKN, + MP_QSTR__token_iterator, + MP_QSTR_AAVE, + MP_QSTR_Aave, + MP_QSTR_APE, + MP_QSTR_ApeCoin, + MP_QSTR_AXS, + MP_QSTR_Axie_space_Infinity, + MP_QSTR_BUSD, + MP_QSTR_Binance_space_USD, + MP_QSTR_CHZ, + MP_QSTR_Chiliz, + MP_QSTR_CRO, + MP_QSTR_Cronos, + MP_QSTR_DAI, + MP_QSTR_Dai, + MP_QSTR_FRAX, + MP_QSTR_Frax, + MP_QSTR_LEO, + MP_QSTR_LEO_space_Token, + MP_QSTR_LINK, + MP_QSTR_Chainlink, + MP_QSTR_MANA, + MP_QSTR_Decentraland, + MP_QSTR_OKB, + MP_QSTR_QNT, + MP_QSTR_Quant, + MP_QSTR_SAND, + MP_QSTR_The_space_Sandbox, + MP_QSTR_SHIB, + MP_QSTR_Shiba_space_Inu, + MP_QSTR_STETH, + MP_QSTR_Lido_space_Staked_space_Ether, + MP_QSTR_UNI, + MP_QSTR_Uniswap, + MP_QSTR_USDC, + MP_QSTR_USD_space_Coin, + MP_QSTR_Tether, + MP_QSTR_WBTC, + MP_QSTR_Wrapped_space_Bitcoin, + MP_QSTR_XCN, + MP_QSTR_Chain, + MP_QSTR_ATOM, + MP_QSTR_Cosmos_space_Hub, + MP_QSTR_WAVAX, + MP_QSTR_Wrapped_space_AVAX, + MP_QSTR_apps_slash_ethereum_slash_verify_message_dot_py, + MP_QSTR_trezor_slash_enums_slash_EthereumDataType_dot_py, + MP_QSTR_trezor_slash_enums_slash_EthereumDefinitionType_dot_py, + MP_QSTR_apps_slash_monero_slash___init___dot_py, + MP_QSTR_apps_slash_monero_slash_diag_dot_py, + MP_QSTR_apps_slash_monero_slash_get_address_dot_py, + MP_QSTR_net_version, + MP_QSTR_get_creds, + MP_QSTR_encode_addr, + MP_QSTR_encodepoint, + MP_QSTR_spend_key_public, + MP_QSTR_view_key_public, + MP_QSTR_generate_sub_address_keys, + MP_QSTR_view_key_private, + MP_QSTR_monero_colon_, + MP_QSTR_XMR, + MP_QSTR_apps_slash_monero_slash_get_tx_keys_dot_py, + MP_QSTR_require_confirm_tx_key, + MP_QSTR_export_key, + MP_QSTR_compute_tx_key, + MP_QSTR_spend_key_private, + MP_QSTR_decodeint, + MP_QSTR_decrypt_pack, + MP_QSTR_decodepoint, + MP_QSTR_compute_enc_key_host, + MP_QSTR_encrypt_pack, + MP_QSTR_Missing_space_view_space_public_space_key, + MP_QSTR_apps_slash_monero_slash_get_watch_only_dot_py, + MP_QSTR_require_confirm_watchkey, + MP_QSTR_encodeint, + MP_QSTR_apps_slash_monero_slash_key_image_sync_dot_py, + MP_QSTR_KeyImageSync, + MP_QSTR_current_output, + MP_QSTR_num_outputs, + MP_QSTR_expected_hash, + MP_QSTR__init_step, + MP_QSTR_creds, + MP_QSTR_require_confirm_keyimage_sync, + MP_QSTR_compute_subaddresses, + MP_QSTR_subaddresses, + MP_QSTR__sync_step, + MP_QSTR_Empty, + MP_QSTR_compute_hash, + MP_QSTR_export_key_image, + MP_QSTR_get_keccak, + MP_QSTR_tds, + MP_QSTR_Too_space_many_space_outputs, + MP_QSTR_apps_slash_monero_slash_layout_dot_py, + MP_QSTR_MoneroTransactionProgress, + MP_QSTR__format_amount, + MP_QSTR__brace_open__brace_close__space_XMR, + MP_QSTR_require_confirm_live_refresh, + MP_QSTR_require_confirm_transaction, + MP_QSTR_get_change_addr_idx, + MP_QSTR__require_confirm_output, + MP_QSTR__require_confirm_payment_id, + MP_QSTR_Payment_space_ID, + MP_QSTR__require_confirm_fee, + MP_QSTR__require_confirm_unlock_time, + MP_QSTR_inner, + MP_QSTR_Signing_dot__dot__dot_, + MP_QSTR_STEP_INP, + MP_QSTR_input_count, + MP_QSTR_STEP_VINI, + MP_QSTR_STEP_ALL_IN, + MP_QSTR_STEP_OUT, + MP_QSTR_output_count, + MP_QSTR_STEP_ALL_OUT, + MP_QSTR_STEP_SIGN, + MP_QSTR_progress_cur, + MP_QSTR_progress_total, + MP_QSTR_DUMMY_PAYMENT_ID, + MP_QSTR_BRT_SignTx, + MP_QSTR_sub_step, + MP_QSTR_get_watchkey, + MP_QSTR_Confirm_space_export, + MP_QSTR_Confirm_space_ki_space_sync, + MP_QSTR_Confirm_space_refresh, + MP_QSTR_export_tx_key, + MP_QSTR_confirm_payment_id, + MP_QSTR_confirm_final, + MP_QSTR_Confirm_space_fee, + MP_QSTR_confirm_locktime, + MP_QSTR_Confirm_space_unlock_space_time, + MP_QSTR_Processing_space_inputs_0x0a__brace_open__brace_close__slash__brace_open__brace_close_, + MP_QSTR_Hashing_space_inputs_0x0a__brace_open__brace_close__slash__brace_open__brace_close_, + MP_QSTR_Processing_dot__dot__dot_, + MP_QSTR_Processing_space_outputs_0x0a__brace_open__brace_close__slash__brace_open__brace_close_, + MP_QSTR_Postprocessing_dot__dot__dot_, + MP_QSTR_Signing_space_inputs_0x0a__brace_open__brace_close__slash__brace_open__brace_close_, + MP_QSTR_apps_slash_monero_slash_live_refresh_dot_py, + MP_QSTR_LiveRefreshState, + MP_QSTR__refresh_step, + MP_QSTR_generate_tx_spend_and_key_image, + MP_QSTR_generate_ring_signature, + MP_QSTR_apps_slash_monero_slash_misc_dot_py, + MP_QSTR_AccountCreds, + MP_QSTR_generate_monero_keys, + MP_QSTR_new_wallet, + MP_QSTR_keccak_2hash, + MP_QSTR_compute_hmac, + MP_QSTR_rand_mult_num, + MP_QSTR_apps_slash_monero_slash_sign_tx_dot_py, + MP_QSTR_State, + MP_QSTR__sign_tx_dispatch, + MP_QSTR_init_transaction, + MP_QSTR_set_input, + MP_QSTR_input_vini, + MP_QSTR_all_inputs_set, + MP_QSTR_set_output, + MP_QSTR_all_outputs_set, + MP_QSTR_sign_input, + MP_QSTR_final_msg, + MP_QSTR_received_msg, + MP_QSTR_Unknown_space_message, + MP_QSTR_apps_slash_monero_slash_signing_slash___init___dot_py, + MP_QSTR_ChangeAddressError, + MP_QSTR_NotEnoughOutputsError, + MP_QSTR_RctType, + MP_QSTR_RCTTypeBulletproofPlus, + MP_QSTR_apps_slash_monero_slash_signing_slash_offloading_keys_dot_py, + MP_QSTR__build_key, + MP_QSTR_hmac_key_txin, + MP_QSTR_hmac_key_txin_comm, + MP_QSTR__hmac_key_txdst, + MP_QSTR__hmac_key_txout, + MP_QSTR_enc_key_txin_alpha, + MP_QSTR_enc_key_spend, + MP_QSTR_key_signature, + MP_QSTR_gen_hmac_vini, + MP_QSTR_get_keccak_writer, + MP_QSTR_gen_hmac_vouti, + MP_QSTR_gen_hmac_tsxdest, + MP_QSTR_get_ki_from_vini, + MP_QSTR__BUILD_KEY_BUFFER, + MP_QSTR_discriminator, + MP_QSTR_out, + MP_QSTR_key_hmac, + MP_QSTR_key_enc, + MP_QSTR_master, + MP_QSTR_is_iv, + MP_QSTR_vini_bin, + MP_QSTR_tx_out_bin, + MP_QSTR_Invalid_space_key_space_length, + MP_QSTR_Disc_space_too_space_long, + MP_QSTR_apps_slash_monero_slash_signing_slash_state_dot_py, + MP_QSTR_KeccakXmrArchive, + MP_QSTR_PreMlsagHasher, + MP_QSTR_tx_priv, + MP_QSTR_tx_pub, + MP_QSTR_need_additional_txkeys, + MP_QSTR_output_change, + MP_QSTR_account_idx, + MP_QSTR_additional_tx_private_keys, + MP_QSTR_additional_tx_public_keys, + MP_QSTR_current_input_index, + MP_QSTR_current_output_index, + MP_QSTR_is_processing_offloaded, + MP_QSTR_input_last_amount, + MP_QSTR_summary_inputs_money, + MP_QSTR_summary_outs_money, + MP_QSTR_output_pk_commitments, + MP_QSTR_output_amounts, + MP_QSTR_output_masks, + MP_QSTR_rsig_grouping, + MP_QSTR_rsig_offload, + MP_QSTR_sumpouts_alphas, + MP_QSTR_sumout, + MP_QSTR_extra_nonce, + MP_QSTR_last_ki, + MP_QSTR_STEP_INIT, + MP_QSTR_last_step, + MP_QSTR_tx_prefix_hasher, + MP_QSTR_full_message_hasher, + MP_QSTR_full_message, + MP_QSTR_mem_trace, + MP_QSTR_change_address, + MP_QSTR_apps_slash_monero_slash_signing_slash_step_01_init_transaction_dot_py, + MP_QSTR_uvarint, + MP_QSTR_set_type_fee, + MP_QSTR__check_subaddresses, + MP_QSTR_classify_subaddresses, + MP_QSTR__get_primary_change_address, + MP_QSTR__check_rsig_data, + MP_QSTR__check_change, + MP_QSTR_addr_eq, + MP_QSTR_No_space_change, + MP_QSTR_Sweep_space_tsx, + MP_QSTR__compute_sec_keys, + MP_QSTR__process_payment_id, + MP_QSTR__get_key_for_payment_id_encryption, + MP_QSTR_NULL_KEY_ENC, + MP_QSTR__encrypt_payment_id, + MP_QSTR_generate_key_derivation, + MP_QSTR_xor8, + MP_QSTR_change_addr, + MP_QSTR_add_dummy_payment_id, + MP_QSTR_secret_key, + MP_QSTR_Unknown_space_rsig_space_type, + MP_QSTR_Unknown_space_BP_space_version, + MP_QSTR_Invalid_space_grouping_space_batch, + MP_QSTR_Invalid_space_grouping, + MP_QSTR_Payment_space_ID_space_size_space_invalid, + MP_QSTR_Invalid_space_key, + MP_QSTR_apps_slash_monero_slash_signing_slash_step_02_set_input_dot_py, + MP_QSTR_TxinToKey, + MP_QSTR_generate_tx_spend_and_key_image_and_derivation, + MP_QSTR_k_image, + MP_QSTR_key_offsets, + MP_QSTR_dump_msg, + MP_QSTR__gen_commitment, + MP_QSTR__absolute_output_offsets_to_relative, + MP_QSTR__get_additional_public_key, + MP_QSTR_in_amount, + MP_QSTR_Invalid_space_state_space_transition, + MP_QSTR_Too_space_many_space_inputs, + MP_QSTR_apps_slash_monero_slash_signing_slash_step_04_input_vini_dot_py, + MP_QSTR_HMAC_space_is_space_not_space_correct, + MP_QSTR_Key_space_image_space_order_space_invalid, + MP_QSTR_apps_slash_monero_slash_signing_slash_step_05_all_inputs_set_dot_py, + MP_QSTR_Invalid_space_input_space_count, + MP_QSTR_apps_slash_monero_slash_signing_slash_step_06_set_output_dot_py, + MP_QSTR_set_ecdh, + MP_QSTR__validate, + MP_QSTR__compute_tx_keys, + MP_QSTR_derivation_to_scalar, + MP_QSTR_commitment_mask, + MP_QSTR__set_out_tx_out, + MP_QSTR__range_proof, + MP_QSTR_pre_hyphen_rproof, + MP_QSTR_rproof, + MP_QSTR__rsig_bp, + MP_QSTR_prove_range_bp_batch, + MP_QSTR_post_hyphen_bp, + MP_QSTR_rsig_val, + MP_QSTR_raw, + MP_QSTR__rsig_process_bp, + MP_QSTR_BulletproofPlus, + MP_QSTR_parse_msg, + MP_QSTR_verify_bp, + MP_QSTR__dump_rsig_bp_plus, + MP_QSTR_Too_space_large, + MP_QSTR_A1, + MP_QSTR_r1, + MP_QSTR_s1, + MP_QSTR_d1, + MP_QSTR__dump_rsig_lr, + MP_QSTR__return_rsig_data, + MP_QSTR__get_ecdh_info_and_out_pk, + MP_QSTR__ecdh_encode, + MP_QSTR_EcdhTuple, + MP_QSTR__set_out_additional_keys, + MP_QSTR__set_out_derivation, + MP_QSTR__derive_view_tags, + MP_QSTR__is_last_in_batch, + MP_QSTR__get_rsig_batch, + MP_QSTR_tx_out_key, + MP_QSTR_derivation, + MP_QSTR_buff, + MP_QSTR_amount_key, + MP_QSTR_additional_txkey_priv, + MP_QSTR_bidx, + MP_QSTR_Extraneous_space_offloaded_space_msg, + MP_QSTR_Invalid_space_number_space_of_space_inputs, + MP_QSTR_Invalid_space_output_space_index, + MP_QSTR_HMAC_space_failed, + MP_QSTR_Provided_space_unexpected_space_rsig, + MP_QSTR_Provided_space_rsig_space_too_space_early, + MP_QSTR_post_hyphen_bp_hyphen_hash, + MP_QSTR_post_hyphen_bp_hyphen_ser_comma__space_size_colon__space__brace_open__brace_close_, + MP_QSTR_BP_space_verification_space_fail, + MP_QSTR_BP_space_verified, + MP_QSTR_Output_space_index_space_too_space_big, + MP_QSTR_apps_slash_monero_slash_signing_slash_step_07_all_outputs_set_dot_py, + MP_QSTR_set_message, + MP_QSTR_set_out_pk_commitment, + MP_QSTR_rctsig_base_done, + MP_QSTR__set_tx_extra, + MP_QSTR_uvarint_size, + MP_QSTR_dump_uvarint_b_into, + MP_QSTR_Invalid_space_number_space_of_space_ecdh, + MP_QSTR_Invalid_space_out_space_num, + MP_QSTR_apps_slash_monero_slash_signing_slash_step_09_sign_input_dot_py, + MP_QSTR_CtKey, + MP_QSTR_CLSAG, + MP_QSTR_generate_clsag_simple, + MP_QSTR__protect_signature, + MP_QSTR_pseudo_out_alpha_enc, + MP_QSTR_spend_enc, + MP_QSTR_mg_buffer, + MP_QSTR_Invalid_space_inputs_space_count, + MP_QSTR_Correcting_space_alpha, + MP_QSTR_Sum_space_eq_space_error, + MP_QSTR_Invalid_space_ring, + MP_QSTR_Invariant_space_error, + MP_QSTR_apps_slash_monero_slash_signing_slash_step_10_sign_final_dot_py, + MP_QSTR_apps_slash_monero_slash_xmr_slash___init___dot_py, + MP_QSTR_apps_slash_monero_slash_xmr_slash_addresses_dot_py, + MP_QSTR_spend_pub, + MP_QSTR_view_pub, + MP_QSTR_tx_dests, + MP_QSTR_apps_slash_monero_slash_xmr_slash_bulletproof_dot_py, + MP_QSTR_INV_EIGHT, + MP_QSTR_KeyVBase, + MP_QSTR_KeyV, + MP_QSTR_KeyVEval, + MP_QSTR_KeyVPrecomp, + MP_QSTR_KeyVSliced, + MP_QSTR_KeyVPowersBackwards, + MP_QSTR_VctD, + MP_QSTR_KeyHadamardFoldedVct, + MP_QSTR_KeyScalarFoldedVct, + MP_QSTR_KeyChallengeCacheVct, + MP_QSTR_MultiExpSequential, + MP_QSTR_BulletProofGenException, + MP_QSTR_BulletProofPlusData, + MP_QSTR_BulletProofPlusBuilder, + MP_QSTR__ensure_dst_key, + MP_QSTR__copy_key, + MP_QSTR__load_scalar, + MP_QSTR__gc_iter, + MP_QSTR__invert, + MP_QSTR__scalarmult_key, + MP_QSTR__scalarmult8, + MP_QSTR__scalarmult_base, + MP_QSTR__sc_gen, + MP_QSTR__sc_add, + MP_QSTR__sc_sub, + MP_QSTR__sc_mul, + MP_QSTR__sc_muladd, + MP_QSTR__add_keys, + MP_QSTR__add_keys2, + MP_QSTR__hash_to_scalar, + MP_QSTR__hash_vct_to_scalar, + MP_QSTR__get_exponent_plus, + MP_QSTR__get_exponent_univ, + MP_QSTR__sc_square_mult, + MP_QSTR__invert_batch, + MP_QSTR__sum_of_even_powers, + MP_QSTR_n_space__equals__equals__space_0, + MP_QSTR__sum_of_scalar_powers, + MP_QSTR__ensure_dst_keyvect, + MP_QSTR_elems, + MP_QSTR_resize, + MP_QSTR__vector_exponent_custom, + MP_QSTR__weighted_inner_product, + MP_QSTR__hadamard_fold, + MP_QSTR__hash_cache_mash, + MP_QSTR__is_reduced, + MP_QSTR__multiexp, + MP_QSTR__compute_LR, + MP_QSTR_add_pair, + MP_QSTR_current_idx, + MP_QSTR_idxize, + MP_QSTR_slice_view, + MP_QSTR_mv, + MP_QSTR_cur, + MP_QSTR_chunked, + MP_QSTR__set_d, + MP_QSTR__set_mv, + MP_QSTR_realloc, + MP_QSTR_fnc, + MP_QSTR_scalar, + MP_QSTR_precomp_prefix, + MP_QSTR_aux_comp_fnc, + MP_QSTR_wrapped, + MP_QSTR_cur_sc, + MP_QSTR_last_idx, + MP_QSTR_x_inv, + MP_QSTR_x_max, + MP_QSTR_tmp_sc, + MP_QSTR_move_more, + MP_QSTR_z_sq, + MP_QSTR_z_last, + MP_QSTR_two, + MP_QSTR_current_n, + MP_QSTR_move_one, + MP_QSTR_src, + MP_QSTR_gc_fnc, + MP_QSTR_cur_pt, + MP_QSTR_tmp_pt, + MP_QSTR_nbits, + MP_QSTR_ch_, + MP_QSTR_chi, + MP_QSTR_precomp, + MP_QSTR_precomp_depth, + MP_QSTR_points, + MP_QSTR_point_fnc, + MP_QSTR_acc, + MP_QSTR_tmp, + MP_QSTR_get_point, + MP_QSTR__acc, + MP_QSTR_add_scalar_idx, + MP_QSTR_challenges, + MP_QSTR_logM, + MP_QSTR_inv_offset, + MP_QSTR_save_mem, + MP_QSTR_Gprec, + MP_QSTR_Hprec, + MP_QSTR_aL, + MP_QSTR_aR, + MP_QSTR_gc_trace, + MP_QSTR_aX_vcts, + MP_QSTR__gprec_aux, + MP_QSTR__hprec_aux, + MP_QSTR_prove, + MP_QSTR_prove_batch, + MP_QSTR_prove_setup, + MP_QSTR_sv_space_empty, + MP_QSTR_prove_setup_aLaR, + MP_QSTR__prove_batch_main, + MP_QSTR_into, + MP_QSTR_serialize_messages_dot_tx_rsig_bulletproof, + MP_QSTR_verify_batch, + MP_QSTR__pipe_L_pipe__space__bang__equals__space__pipe_R_pipe_, + MP_QSTR_y_space__equals__equals__space_0, + MP_QSTR_e_space__equals__equals__space_0, + MP_QSTR_e_xL, + MP_QSTR_aL1_fnc, + MP_QSTR_aR1_fnc, + MP_QSTR_vec_sc_fnc, + MP_QSTR_gc_collect, + MP_QSTR_TBYTES, + MP_QSTR__ZERO, + MP_QSTR__ONE, + MP_QSTR__TWO, + MP_QSTR__EIGHT, + MP_QSTR__INV_EIGHT, + MP_QSTR__MINUS_ONE, + MP_QSTR__XMR_H, + MP_QSTR__XMR_HP, + MP_QSTR__XMR_G, + MP_QSTR__INITIAL_TRANSCRIPT, + MP_QSTR__TWO_SIXTY_FOUR_MINUS_ONE, + MP_QSTR__tmp_bf_0, + MP_QSTR__tmp_bf_1, + MP_QSTR__tmp_bf_exp, + MP_QSTR__tmp_pt_1, + MP_QSTR__tmp_pt_2, + MP_QSTR__tmp_pt_3, + MP_QSTR__tmp_pt_4, + MP_QSTR__tmp_sc_1, + MP_QSTR__tmp_sc_2, + MP_QSTR__tmp_sc_3, + MP_QSTR__tmp_sc_4, + MP_QSTR__tmp_sc_5, + MP_QSTR_KeyVBaseType, + MP_QSTR_dst_off, + MP_QSTR_src_off, + MP_QSTR_s_raw, + MP_QSTR_res, + MP_QSTR___slots__, + MP_QSTR_a_raw, + MP_QSTR_b_raw, + MP_QSTR_into_offset, + MP_QSTR_vR, + MP_QSTR_vRoff, + MP_QSTR_hash_cache, + MP_QSTR_sc, + MP_QSTR_G0, + MP_QSTR_H0, + MP_QSTR_a0, + MP_QSTR_b0, + MP_QSTR_no_init, + MP_QSTR_nsize, + MP_QSTR_chop, + MP_QSTR_precomputed, + MP_QSTR_point, + MP_QSTR_sv, + MP_QSTR_MN, + MP_QSTR_gamma, + MP_QSTR_sv_vct, + MP_QSTR_logN, + MP_QSTR_proofs, + MP_QSTR_is_a, + MP_QSTR_cannot_space_invert_space_zero, + MP_QSTR_n_space_is_space_not_space_2_caret_x, + MP_QSTR_Constant_space_KeyV, + MP_QSTR_Unsupported, + MP_QSTR_Not_space_supported, + MP_QSTR__pipe_sv_pipe__space__bang__equals__space__pipe_gamma_pipe_, + MP_QSTR_Empty_space_proof, + MP_QSTR_zero_space_rounds, + MP_QSTR_challenges_bracket_open_j_bracket_close__space__equals__equals__space_0, + MP_QSTR_Verification_space_error, + MP_QSTR_apps_slash_monero_slash_xmr_slash_chacha_poly_dot_py, + MP_QSTR__decrypt, + MP_QSTR_plaintext, + MP_QSTR_associated_data, + MP_QSTR_ciphertext, + MP_QSTR_tag_space_invalid, + MP_QSTR_apps_slash_monero_slash_xmr_slash_clsag_dot_py, + MP_QSTR_Empty_space_pubs, + MP_QSTR__generate_clsag, + MP_QSTR_INV_EIGHT_SC, + MP_QSTR_dump_uvarint_b, + MP_QSTR__key_vector, + MP_QSTR_hsh_PC, + MP_QSTR__HASH_KEY_CLSAG_ROUND, + MP_QSTR__HASH_KEY_CLSAG_AGG_0, + MP_QSTR__HASH_KEY_CLSAG_AGG_1, + MP_QSTR_pubs, + MP_QSTR_in_sk, + MP_QSTR_cout, + MP_QSTR_mg_buff, + MP_QSTR_C_nonzero, + MP_QSTR_Cout, + MP_QSTR_rows, + MP_QSTR_apps_slash_monero_slash_xmr_slash_credentials_dot_py, + MP_QSTR_priv_view_key, + MP_QSTR_priv_spend_key, + MP_QSTR_apps_slash_monero_slash_xmr_slash_crypto_helpers_dot_py, + MP_QSTR_derive_secret_key, + MP_QSTR_get_subaddress_secret_key, + MP_QSTR_tcry, + MP_QSTR_inp, + MP_QSTR_pub, + MP_QSTR_sec, + MP_QSTR_major, + MP_QSTR_apps_slash_monero_slash_xmr_slash_keccak_hasher_dot_py, + MP_QSTR_kwriter, + MP_QSTR_dump_uvarint, + MP_QSTR_dump_uint, + MP_QSTR_width, + MP_QSTR_apps_slash_monero_slash_xmr_slash_key_image_dot_py, + MP_QSTR_generate_key_image, + MP_QSTR_rr, + MP_QSTR_td, + MP_QSTR_prefix_hash, + MP_QSTR_sec_idx, + MP_QSTR_test, + MP_QSTR_Invalid_space_sec_space_key, + MP_QSTR_Key_space_image_space_invalid, + MP_QSTR_apps_slash_monero_slash_xmr_slash_mlsag_hasher_dot_py, + MP_QSTR_kc_master, + MP_QSTR_rsig_hasher, + MP_QSTR_rtcsig_hasher, + MP_QSTR_ecdh, + MP_QSTR_out_pk_commitment, + MP_QSTR_State_space_error, + MP_QSTR_apps_slash_monero_slash_xmr_slash_monero_dot_py, + MP_QSTR_XmrException, + MP_QSTR_XmrNoSuchAddressException, + MP_QSTR_get_subaddress_spend_public_key, + MP_QSTR_derive_subaddress_public_key, + MP_QSTR__is_out_to_account, + MP_QSTR_generate_keys, + MP_QSTR_view_private, + MP_QSTR_spend_public, + MP_QSTR_additional_derivation, + MP_QSTR_ack, + MP_QSTR_recv_derivation, + MP_QSTR_real_output_index, + MP_QSTR_received_index, + MP_QSTR_tx_public_key, + MP_QSTR_additional_tx_public_key, + MP_QSTR_recovery_key, + MP_QSTR_view_sec, + MP_QSTR_No_space_such_space_addr, + MP_QSTR_apps_slash_monero_slash_xmr_slash_networks_dot_py, + MP_QSTR_MainNet, + MP_QSTR_TestNet, + MP_QSTR_StageNet, + MP_QSTR_STAGENET, + MP_QSTR_PUBLIC_ADDRESS_BASE58_PREFIX, + MP_QSTR_PUBLIC_SUBADDRESS_BASE58_PREFIX, + MP_QSTR_PUBLIC_INTEGRATED_ADDRESS_BASE58_PREFIX, + MP_QSTR_is_subaddr, + MP_QSTR_Unknown_space_network_space_type_colon__space__brace_open__brace_close_, + MP_QSTR_apps_slash_monero_slash_xmr_slash_range_signatures_dot_py, + MP_QSTR_amounts, + MP_QSTR_masks, + MP_QSTR_bp_proof, + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_slash___init___dot_py, + MP_QSTR_MemoryReaderWriter, + MP_QSTR_load, + MP_QSTR_dump, + MP_QSTR_get_buffer, + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_slash_base_types_dot_py, + MP_QSTR_UVarintType, + MP_QSTR_load_uvarint, + MP_QSTR_reader, + MP_QSTR_writer, + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_slash_int_serialize_dot_py, + MP_QSTR__UINT_BUFFER, + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_slash_message_types_dot_py, + MP_QSTR_BlobType, + MP_QSTR_ContainerType, + MP_QSTR_FIX_SIZE, + MP_QSTR_SIZE, + MP_QSTR_ELEM_TYPE, + MP_QSTR_f_specs, + MP_QSTR_XmrType, + MP_QSTR_elem, + MP_QSTR_elem_type, + MP_QSTR_Size_space_mismatch, + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_slash_readwriter_dot_py, + MP_QSTR_nread, + MP_QSTR_nwritten, + MP_QSTR_ndata, + MP_QSTR_woffset, + MP_QSTR_read_empty, + MP_QSTR_do_gc, + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_messages_slash_base_dot_py, + MP_QSTR_Hash, + MP_QSTR_ECKey, + MP_QSTR_ECPoint, + MP_QSTR_KeyImage, + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_messages_slash_tx_ct_key_dot_py, + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_messages_slash_tx_ecdh_dot_py, + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_messages_slash_tx_prefix_dot_py, + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_messages_slash_tx_rsig_bulletproof_dot_py, + MP_QSTR__KeyV, + MP_QSTR_trezor_slash_enums_slash_MoneroNetworkType_dot_py, + MP_QSTR_FAKECHAIN, + MP_QSTR_apps_slash_nem_slash___init___dot_py, + MP_QSTR_PATTERNS, + MP_QSTR_ed25519_hyphen_keccak, + MP_QSTR_apps_slash_nem_slash_get_address_dot_py, + MP_QSTR_check_path, + MP_QSTR_get_network_str, + MP_QSTR_validate_network, + MP_QSTR_apps_slash_nem_slash_helpers_dot_py, + MP_QSTR_Mijin, + MP_QSTR_NEM_NETWORK_MAINNET, + MP_QSTR_NEM_NETWORK_TESTNET, + MP_QSTR_NEM_NETWORK_MIJIN, + MP_QSTR_NEM_TRANSACTION_TYPE_TRANSFER, + MP_QSTR_NEM_TRANSACTION_TYPE_IMPORTANCE_TRANSFER, + MP_QSTR_NEM_TRANSACTION_TYPE_AGGREGATE_MODIFICATION, + MP_QSTR_NEM_TRANSACTION_TYPE_MULTISIG_SIGNATURE, + MP_QSTR_NEM_TRANSACTION_TYPE_MULTISIG, + MP_QSTR_NEM_TRANSACTION_TYPE_PROVISION_NAMESPACE, + MP_QSTR_NEM_TRANSACTION_TYPE_MOSAIC_CREATION, + MP_QSTR_NEM_TRANSACTION_TYPE_MOSAIC_SUPPLY_CHANGE, + MP_QSTR_NEM_MAX_DIVISIBILITY, + MP_QSTR_NEM_MAX_SUPPLY, + MP_QSTR_NEM_SALT_SIZE, + MP_QSTR_AES_BLOCK_SIZE, + MP_QSTR_NEM_HASH_ALG, + MP_QSTR_NEM_PUBLIC_KEY_SIZE, + MP_QSTR_NEM_LEVY_PERCENTILE_DIVISOR_ABSOLUTE, + MP_QSTR_NEM_MOSAIC_AMOUNT_DIVISOR, + MP_QSTR_NEM_MAX_PLAIN_PAYLOAD_SIZE, + MP_QSTR_NEM_MAX_ENCRYPTED_PAYLOAD_SIZE, + MP_QSTR_apps_slash_nem_slash_layout_dot_py, + MP_QSTR_require_confirm_text, + MP_QSTR_require_confirm_fee, + MP_QSTR__brace_open__brace_close__space_XEM, + MP_QSTR_require_confirm_content, + MP_QSTR_require_confirm_final, + MP_QSTR_headline, + MP_QSTR_confirm_nem, + MP_QSTR_Confirm_space_action, + MP_QSTR_confirm_fee, + MP_QSTR_confirm_content, + MP_QSTR_Final_space_confirm, + MP_QSTR_and_space_pay_space__brace_open__brace_close__space_XEM, + MP_QSTR_apps_slash_nem_slash_sign_tx_dot_py, + MP_QSTR_ask, + MP_QSTR_cosign, + MP_QSTR_initiate, + MP_QSTR_No_space_signer_space_provided, + MP_QSTR_No_space_transaction_space_provided, + MP_QSTR_apps_slash_nem_slash_validators_dot_py, + MP_QSTR_CosignatoryModification_Delete, + MP_QSTR__validate_common, + MP_QSTR__validate_public_key, + MP_QSTR_err_msg, + MP_QSTR_Payload_space_too_space_large, + MP_QSTR_No_space_levy_space_fee_space_provided, + MP_QSTR_No_space_levy_space_address_space_provided, + MP_QSTR_No_space_divisibility_space_provided, + MP_QSTR_No_space_supply_space_provided, + MP_QSTR_No_space_description_space_provided, + MP_QSTR_Invalid_space_supply_space_provided, + MP_QSTR_Invalid_space_levy_space_address, + MP_QSTR_Invalid_space_NEM_space_network, + MP_QSTR_No_space__brace_open__brace_close__space_provided, + MP_QSTR__brace_open__brace_close__space__paren_open_none_space_provided_paren_close_, + MP_QSTR__brace_open__brace_close__space__paren_open_invalid_space_length_paren_close_, + MP_QSTR_apps_slash_nem_slash_writers_dot_py, + MP_QSTR_serialize_tx_common, + MP_QSTR_write_bytes_with_len, + MP_QSTR_transaction_type, + MP_QSTR_apps_slash_nem_slash_mosaic_slash___init___dot_py, + MP_QSTR_ask_mosaic_creation, + MP_QSTR_serialize_mosaic_creation, + MP_QSTR_ask_supply_change, + MP_QSTR_serialize_mosaic_supply_change, + MP_QSTR_creation, + MP_QSTR_apps_slash_nem_slash_mosaic_slash_helpers_dot_py, + MP_QSTR_get_mosaic_definition, + MP_QSTR_mosaics_iterator, + MP_QSTR_is_nem_xem_mosaic, + MP_QSTR_xem, + MP_QSTR_namespace_name, + MP_QSTR_mosaic_name, + MP_QSTR_apps_slash_nem_slash_mosaic_slash_layout_dot_py, + MP_QSTR_SupplyChange_Decrease, + MP_QSTR_Decrease, + MP_QSTR_SupplyChange_Increase, + MP_QSTR_Increase, + MP_QSTR__require_confirm_properties, + MP_QSTR_mutable, + MP_QSTR_immutable, + MP_QSTR_Levy_space_fee_colon_, + MP_QSTR_MosaicLevy_Absolute, + MP_QSTR_absolute, + MP_QSTR_percentile, + MP_QSTR_Levy_space_type_colon_, + MP_QSTR_Create_space_mosaic, + MP_QSTR_under_space_namespace, + MP_QSTR_Confirm_space_creation_space_fee, + MP_QSTR_Modify_space_supply_space_for, + MP_QSTR_Supply_space_change, + MP_QSTR_Description_colon_, + MP_QSTR_Transferable_question_, + MP_QSTR_Initial_space_supply_colon_, + MP_QSTR_Levy_space_recipient_colon_, + MP_QSTR_Levy_space_divisibility_colon_, + MP_QSTR_Levy_space_namespace_colon_, + MP_QSTR_Levy_space_mosaic_colon_, + MP_QSTR_Confirm_space_properties, + MP_QSTR_apps_slash_nem_slash_mosaic_slash_nem_mosaics_dot_py, + MP_QSTR_MosaicLevy, + MP_QSTR_Mosaic, + MP_QSTR__space_XEM, + MP_QSTR_DIMCOIN, + MP_QSTR__space_DIM, + MP_QSTR_dim, + MP_QSTR_MosaicLevy_Percentile, + MP_QSTR_DIM_space_TOKEN, + MP_QSTR__space_DIMTOK, + MP_QSTR__space_BREEZE, + MP_QSTR_breeze, + MP_QSTR__space_PAC_colon_HRT, + MP_QSTR_pacnem, + MP_QSTR_heart, + MP_QSTR__space_PAC_colon_CHS, + MP_QSTR_cheese, + MP_QSTR_Breeze_space_Token, + MP_QSTR_breeze_hyphen_token, + MP_QSTR_PacNEM_space_Game_space_Credits, + MP_QSTR_PacNEM_space_Score_space_Tokens, + MP_QSTR_apps_slash_nem_slash_mosaic_slash_serialize_dot_py, + MP_QSTR__write_property, + MP_QSTR_initialSupply, + MP_QSTR_supplyMutable, + MP_QSTR_Incompatible_space_value_space_type, + MP_QSTR_apps_slash_nem_slash_multisig_slash___init___dot_py, + MP_QSTR_ask_multisig, + MP_QSTR_serialize_multisig, + MP_QSTR_serialize_multisig_signature, + MP_QSTR_ask_aggregate_modification, + MP_QSTR_serialize_aggregate_modification, + MP_QSTR_write_cosignatory_modification, + MP_QSTR_write_minimum_cosignatories, + MP_QSTR_inner_tx, + MP_QSTR_aggr, + MP_QSTR_apps_slash_nem_slash_multisig_slash_layout_dot_py, + MP_QSTR_CosignatoryModification_Add, + MP_QSTR_Add, + MP_QSTR_Remove, + MP_QSTR__question_, + MP_QSTR__require_confirm_address, + MP_QSTR_mod, + MP_QSTR_Cosign_space_transaction_space_for, + MP_QSTR_Initiate_space_transaction_space_for, + MP_QSTR_Confirm_space_multisig_space_fee, + MP_QSTR__space_cosignatory, + MP_QSTR_Confirm_space_address, + MP_QSTR_confirm_multisig, + MP_QSTR_apps_slash_nem_slash_multisig_slash_serialize_dot_py, + MP_QSTR_address_public_key, + MP_QSTR_cosignatory_type, + MP_QSTR_cosignatory_pubkey, + MP_QSTR_apps_slash_nem_slash_namespace_slash___init___dot_py, + MP_QSTR_ask_provision_namespace, + MP_QSTR_serialize_provision_namespace, + MP_QSTR_apps_slash_nem_slash_namespace_slash_layout_dot_py, + MP_QSTR_Create_space_namespace, + MP_QSTR_Confirm_space_namespace, + MP_QSTR_Confirm_space_rental_space_fee, + MP_QSTR_apps_slash_nem_slash_namespace_slash_serialize_dot_py, + MP_QSTR_apps_slash_nem_slash_transfer_slash___init___dot_py, + MP_QSTR_canonicalize_mosaics, + MP_QSTR_get_transfer_payload, + MP_QSTR_ask_transfer, + MP_QSTR_serialize_transfer, + MP_QSTR_serialize_mosaic, + MP_QSTR_ask_importance_transfer, + MP_QSTR_serialize_importance_transfer, + MP_QSTR_imp, + MP_QSTR_apps_slash_nem_slash_transfer_slash_layout_dot_py, + MP_QSTR_mosaic_dot_helpers, + MP_QSTR_Encrypted_colon_, + MP_QSTR__ask_transfer_mosaic, + MP_QSTR_of, + MP_QSTR__brace_open__brace_close__dot__brace_open__brace_close_, + MP_QSTR__get_xem_amount, + MP_QSTR_ImportanceTransfer_Activate, + MP_QSTR_Activate, + MP_QSTR_Deactivate, + MP_QSTR_encrypted, + MP_QSTR_confirm_payload, + MP_QSTR_Confirm_space_payload, + MP_QSTR_Unencrypted_colon_, + MP_QSTR_confirm_mosaic, + MP_QSTR_Confirm_space_mosaic, + MP_QSTR_Confirm_space_transfer_space_of, + MP_QSTR_confirm_mosaic_levy, + MP_QSTR_confirm_mosaic_unknown, + MP_QSTR_Unknown_space_mosaic_bang_, + MP_QSTR_confirm_mosaic_transfer, + MP_QSTR__brace_open__brace_close__space_raw_space_units, + MP_QSTR__space_remote_space_harvesting_question_, + MP_QSTR_apps_slash_nem_slash_transfer_slash_serialize_dot_py, + MP_QSTR__merge_mosaics, + MP_QSTR_trezor_slash_enums_slash_NEMImportanceTransferMode_dot_py, + MP_QSTR_ImportanceTransfer_Deactivate, + MP_QSTR_trezor_slash_enums_slash_NEMModificationType_dot_py, + MP_QSTR_trezor_slash_enums_slash_NEMMosaicLevy_dot_py, + MP_QSTR_trezor_slash_enums_slash_NEMSupplyChangeType_dot_py, + MP_QSTR_apps_slash_ripple_slash___init___dot_py, + MP_QSTR_apps_slash_ripple_slash_base58_ripple_dot_py, + MP_QSTR__encode, + MP_QSTR__ripple_alphabet, + MP_QSTR_apps_slash_ripple_slash_get_address_dot_py, + MP_QSTR_XRP, + MP_QSTR_apps_slash_ripple_slash_helpers_dot_py, + MP_QSTR_decode_address, + MP_QSTR_HASH_TX_SIGN, + MP_QSTR_MIN_FEE, + MP_QSTR_MAX_FEE, + MP_QSTR_MAX_ALLOWED_AMOUNT, + MP_QSTR_FLAG_FULLY_CANONICAL, + MP_QSTR_apps_slash_ripple_slash_layout_dot_py, + MP_QSTR_require_confirm_total, + MP_QSTR__space_XRP, + MP_QSTR_require_confirm_destination_tag, + MP_QSTR_confirm_destination_tag, + MP_QSTR_Confirm_space_tag, + MP_QSTR_Destination_space_tag_colon__0x0a__brace_open__brace_close_, + MP_QSTR_apps_slash_ripple_slash_serialize_dot_py, + MP_QSTR__write, + MP_QSTR_write_bytes_varint, + MP_QSTR_rshift, + MP_QSTR_source_address, + MP_QSTR_field_type, + MP_QSTR_field_key, + MP_QSTR_Value_space_is_space_too_space_large, + MP_QSTR_Unknown_space_field_space_type, + MP_QSTR_apps_slash_ripple_slash_sign_tx_dot_py, + MP_QSTR_apps_slash_stellar_slash___init___dot_py, + MP_QSTR_apps_slash_stellar_slash_consts_dot_py, + MP_QSTR_get_op_code, + MP_QSTR_TX_TYPE, + MP_QSTR_op_codes, + MP_QSTR_AMOUNT_DECIMALS, + MP_QSTR_NETWORK_PASSPHRASE_PUBLIC, + MP_QSTR_NETWORK_PASSPHRASE_TESTNET, + MP_QSTR_FLAG_AUTH_REQUIRED, + MP_QSTR_FLAG_AUTH_REVOCABLE, + MP_QSTR_FLAG_AUTH_IMMUTABLE, + MP_QSTR_FLAGS_MAX_SIZE, + MP_QSTR_Stellar_colon__space_op_space_code_space_unknown, + MP_QSTR_apps_slash_stellar_slash_get_address_dot_py, + MP_QSTR_XLM, + MP_QSTR_apps_slash_stellar_slash_helpers_dot_py, + MP_QSTR_public_key_from_address, + MP_QSTR__crc16_checksum, + MP_QSTR__lt_H, + MP_QSTR_Invalid_space_address_space_checksum, + MP_QSTR_apps_slash_stellar_slash_layout_dot_py, + MP_QSTR_require_confirm_init, + MP_QSTR_require_confirm_timebounds, + MP_QSTR_require_confirm_memo, + MP_QSTR_TEXT, + MP_QSTR_ID, + MP_QSTR_Memo_space__paren_open_ID_paren_close_, + MP_QSTR_HASH, + MP_QSTR_RETURN, + MP_QSTR_format_asset, + MP_QSTR_accounts_match, + MP_QSTR_Initialize_space_signing_space_with, + MP_QSTR__space_your_space_account, + MP_QSTR_Confirm_space_Stellar, + MP_QSTR_confirm_init, + MP_QSTR_testnet_space_network, + MP_QSTR_private_space_network, + MP_QSTR_confirm_init_network, + MP_QSTR_Confirm_space_network, + MP_QSTR_Transaction_space_is_space_on_space__brace_open__brace_close_, + MP_QSTR_confirm_timebounds, + MP_QSTR_Confirm_space_timebounds, + MP_QSTR_Valid_space_from_space__paren_open_UTC_paren_close_, + MP_QSTR__bracket_open_no_space_restriction_bracket_close_, + MP_QSTR_Valid_space_to_space__paren_open_UTC_paren_close_, + MP_QSTR_Memo_space__paren_open_TEXT_paren_close_, + MP_QSTR_Memo_space__paren_open_HASH_paren_close_, + MP_QSTR_Memo_space__paren_open_RETURN_paren_close_, + MP_QSTR_confirm_memo, + MP_QSTR_Confirm_space_memo, + MP_QSTR_No_space_memo_space_set_bang_, + MP_QSTR__space_and_space_pay_space__brace_open__brace_close__0x0a_for_space_fee_question_, + MP_QSTR_apps_slash_stellar_slash_sign_tx_dot_py, + MP_QSTR_process_operation, + MP_QSTR_write_pubkey, + MP_QSTR_write_bool, + MP_QSTR_write_string, + MP_QSTR_Stellar_colon__space_Missing_space_memo_space_id, + MP_QSTR_apps_slash_stellar_slash_writers_dot_py, + MP_QSTR_apps_slash_stellar_slash_operations_slash___init___dot_py, + MP_QSTR_confirm_source_account, + MP_QSTR_write_account, + MP_QSTR_confirm_account_merge_op, + MP_QSTR_write_account_merge_op, + MP_QSTR_confirm_allow_trust_op, + MP_QSTR_write_allow_trust_op, + MP_QSTR_confirm_bump_sequence_op, + MP_QSTR_write_bump_sequence_op, + MP_QSTR_confirm_change_trust_op, + MP_QSTR_write_change_trust_op, + MP_QSTR_confirm_create_account_op, + MP_QSTR_write_create_account_op, + MP_QSTR_confirm_create_passive_sell_offer_op, + MP_QSTR_write_create_passive_sell_offer_op, + MP_QSTR_confirm_manage_data_op, + MP_QSTR_write_manage_data_op, + MP_QSTR_confirm_manage_buy_offer_op, + MP_QSTR_write_manage_buy_offer_op, + MP_QSTR_confirm_manage_sell_offer_op, + MP_QSTR_write_manage_sell_offer_op, + MP_QSTR_confirm_path_payment_strict_receive_op, + MP_QSTR_write_path_payment_strict_receive_op, + MP_QSTR_confirm_path_payment_strict_send_op, + MP_QSTR_write_path_payment_strict_send_op, + MP_QSTR_confirm_payment_op, + MP_QSTR_write_payment_op, + MP_QSTR_confirm_set_options_op, + MP_QSTR_write_set_options_op, + MP_QSTR_op, + MP_QSTR_apps_slash_stellar_slash_operations_slash_layout_dot_py, + MP_QSTR_Asset, + MP_QSTR_op_bump, + MP_QSTR_Add_space_trust, + MP_QSTR_Limit_colon_, + MP_QSTR_Account, + MP_QSTR__confirm_manage_offer_op_common, + MP_QSTR_New_space_Offer, + MP_QSTR_Delete, + MP_QSTR_Update, + MP_QSTR__confirm_offer, + MP_QSTR_Buying_colon_, + MP_QSTR_Selling_colon_, + MP_QSTR_op_offer, + MP_QSTR_op_data, + MP_QSTR_Set_space_data, + MP_QSTR_Key_colon_, + MP_QSTR_Clear_space_data, + MP_QSTR_Path_space_Pay, + MP_QSTR_Pay_colon_, + MP_QSTR_Inflation, + MP_QSTR_Set_space_flags, + MP_QSTR_Low_colon_, + MP_QSTR_Medium_colon_, + MP_QSTR_High_colon_, + MP_QSTR_Add_space_Signer, + MP_QSTR_ACCOUNT, + MP_QSTR_PRE_AUTH, + MP_QSTR_Hash_colon_, + MP_QSTR_op_signer, + MP_QSTR__format_flags, + MP_QSTR_confirm_asset_issuer, + MP_QSTR__brace_open__brace_close__space_issuer_colon_, + MP_QSTR_Confirm_space_operation, + MP_QSTR_Source_space_account_colon_, + MP_QSTR_op_source_account, + MP_QSTR_op_allow_trust, + MP_QSTR_Allow_space_trust, + MP_QSTR_Revoke_space_trust, + MP_QSTR_Trusted_space_Account, + MP_QSTR_Account_space_Merge, + MP_QSTR_All_space_XLM_space_will_space_be_space_sent_space_to_colon_, + MP_QSTR_op_account_merge, + MP_QSTR_Bump_space_Sequence, + MP_QSTR_Set_space_sequence_space_to_space__brace_open__brace_close__question_, + MP_QSTR_Delete_space_trust, + MP_QSTR_op_change_trust, + MP_QSTR_op_create_account, + MP_QSTR_Create_space_Account, + MP_QSTR_Initial_space_Balance, + MP_QSTR_Delete_space_Passive_space_Offer, + MP_QSTR_New_space_Passive_space_Offer, + MP_QSTR_Price_space_per_space__brace_open__brace_close__colon_, + MP_QSTR_Value_space__paren_open_SHA_hyphen_256_paren_close__colon_, + MP_QSTR_Debited_space_amount, + MP_QSTR_Pay_space_at_space_most_colon_, + MP_QSTR_Path_space_Pay_space_at_space_least, + MP_QSTR_Destination_colon_, + MP_QSTR_op_inflation, + MP_QSTR_op_set_options, + MP_QSTR_Clear_space_flags, + MP_QSTR_Master_space_Weight_colon_, + MP_QSTR_op_thresholds, + MP_QSTR_Account_space_Thresholds, + MP_QSTR_op_home_domain, + MP_QSTR_Home_space_Domain, + MP_QSTR_Remove_space_Signer, + MP_QSTR_Pre_hyphen_auth_space_transaction_colon_, + MP_QSTR_Stellar_colon__space_invalid_space_flags, + MP_QSTR_AUTH_REQUIRED_0x0a_, + MP_QSTR_AUTH_REVOCABLE_0x0a_, + MP_QSTR_AUTH_IMMUTABLE_0x0a_, + MP_QSTR_Confirm_space_Issuer, + MP_QSTR_apps_slash_stellar_slash_operations_slash_serialize_dot_py, + MP_QSTR__write_manage_offer_op_common, + MP_QSTR__write_asset_code, + MP_QSTR_ALPHANUM4, + MP_QSTR_ALPHANUM12, + MP_QSTR__write_asset, + MP_QSTR_Stellar_colon__space_invalid_space_asset, + MP_QSTR_trezor_slash_enums_slash_StellarAssetType_dot_py, + MP_QSTR_trezor_slash_enums_slash_StellarMemoType_dot_py, + MP_QSTR_trezor_slash_enums_slash_StellarSignerType_dot_py, + MP_QSTR_apps_slash_tezos_slash___init___dot_py, + MP_QSTR_apps_slash_tezos_slash_get_address_dot_py, + MP_QSTR_PUBLIC_KEY_HASH_SIZE, + MP_QSTR_base58_encode_check, + MP_QSTR_TEZOS_ED25519_ADDRESS_PREFIX, + MP_QSTR_XTZ, + MP_QSTR_apps_slash_tezos_slash_get_public_key_dot_py, + MP_QSTR_TEZOS_PUBLICKEY_PREFIX, + MP_QSTR_apps_slash_tezos_slash_helpers_dot_py, + MP_QSTR_tz1, + MP_QSTR_KT1, + MP_QSTR_edpk, + MP_QSTR_edsig, + MP_QSTR_tz2, + MP_QSTR_tz3, + MP_QSTR_DROP, + MP_QSTR_NIL, + MP_QSTR_CONS, + MP_QSTR_PUSH, + MP_QSTR_mutez, + MP_QSTR_UNIT, + MP_QSTR_SOME, + MP_QSTR_CONTRACT, + MP_QSTR_unit, + MP_QSTR_write_instruction, + MP_QSTR_check_script_size, + MP_QSTR_check_tx_params_size, + MP_QSTR_TEZOS_AMOUNT_DECIMALS, + MP_QSTR_TEZOS_ORIGINATED_ADDRESS_PREFIX, + MP_QSTR_TEZOS_SIGNATURE_PREFIX, + MP_QSTR_TEZOS_PREFIX_BYTES, + MP_QSTR_MICHELSON_INSTRUCTION_BYTES, + MP_QSTR_DO_ENTRYPOINT_TAG, + MP_QSTR_MICHELSON_SEQUENCE_TAG, + MP_QSTR_BRANCH_HASH_SIZE, + MP_QSTR_PROPOSAL_HASH_SIZE, + MP_QSTR_TAGGED_PUBKEY_HASH_SIZE, + MP_QSTR_CONTRACT_ID_SIZE, + MP_QSTR_PUBLIC_KEY_TAG_TO_SIZE, + MP_QSTR_OP_TAG_PROPOSALS, + MP_QSTR_OP_TAG_BALLOT, + MP_QSTR_OP_TAG_REVEAL, + MP_QSTR_OP_TAG_TRANSACTION, + MP_QSTR_OP_TAG_ORIGINATION, + MP_QSTR_OP_TAG_DELEGATION, + MP_QSTR_boolean, + MP_QSTR_instruction, + MP_QSTR_SET_DELEGATE, + MP_QSTR_IMPLICIT_ACCOUNT, + MP_QSTR_TRANSFER_TOKENS, + MP_QSTR_ASSERT_SOME, + MP_QSTR_Invalid_space_script, + MP_QSTR_Unknown_space_entrypoint_space_tag, + MP_QSTR_apps_slash_tezos_slash_layout_dot_py, + MP_QSTR_require_confirm_origination, + MP_QSTR_require_confirm_origination_fee, + MP_QSTR_Balance_colon_, + MP_QSTR_Fee_colon_, + MP_QSTR_require_confirm_delegation_baker, + MP_QSTR_require_confirm_set_delegate, + MP_QSTR_Fee_colon__0x0a__brace_open__brace_close_, + MP_QSTR_require_confirm_register_delegate, + MP_QSTR_format_tezos_amount, + MP_QSTR__space_XTZ, + MP_QSTR_require_confirm_ballot, + MP_QSTR_Ballot_colon_, + MP_QSTR_Proposal_colon_, + MP_QSTR_require_confirm_proposals, + MP_QSTR_require_confirm_delegation_manager_withdraw, + MP_QSTR_Delegator_colon_, + MP_QSTR_require_confirm_manager_remove_delegate, + MP_QSTR_Proposal_space_, + MP_QSTR_BR_SIGN_TX, + MP_QSTR_baker, + MP_QSTR_Confirm_space_origination, + MP_QSTR_confirm_origination, + MP_QSTR_Confirm_space_delegation, + MP_QSTR_Baker_space_address_colon_, + MP_QSTR_confirm_delegation, + MP_QSTR_confirm_delegation_final, + MP_QSTR_Register_space_delegate, + MP_QSTR_confirm_ballot, + MP_QSTR_Submit_space_ballot, + MP_QSTR_confirm_proposals, + MP_QSTR_Submit_space_proposals, + MP_QSTR_Submit_space_proposal, + MP_QSTR_Remove_space_delegation, + MP_QSTR_confirm_undelegation, + MP_QSTR_apps_slash_tezos_slash_sign_tx_dot_py, + MP_QSTR_Yay, + MP_QSTR_yay, + MP_QSTR_Nay, + MP_QSTR_nay, + MP_QSTR_Pass, + MP_QSTR_pass, + MP_QSTR__get_address_by_tag, + MP_QSTR__get_address_from_contract, + MP_QSTR_Implicit, + MP_QSTR_Originated, + MP_QSTR__get_operation_bytes, + MP_QSTR_to_contract, + MP_QSTR__encode_common, + MP_QSTR__encode_data_with_bool_prefix, + MP_QSTR__encode_zarith, + MP_QSTR__encode_natural, + MP_QSTR__encode_manager_common, + MP_QSTR_address_hash, + MP_QSTR_str_operation, + MP_QSTR_expected_length, + MP_QSTR_sequence_length, + MP_QSTR_Invalid_space_operation, + MP_QSTR_Invalid_space_contract_space_type, + MP_QSTR_trezor_slash_enums_slash_TezosBallotType_dot_py, + MP_QSTR_trezor_slash_enums_slash_TezosContractType_dot_py, + MP_QSTR_apps_slash_zcash_slash___init___dot_py, + MP_QSTR_apps_slash_zcash_slash_f4jumble_dot_py, + MP_QSTR_xor, + MP_QSTR_G_round, + MP_QSTR_H_round, + MP_QSTR_f4unjumble, + MP_QSTR_target, + MP_QSTR_left, + MP_QSTR_right, + MP_QSTR_apps_slash_zcash_slash_hasher_dot_py, + MP_QSTR_ZcashHasher, + MP_QSTR_HeaderHasher, + MP_QSTR_TransparentHasher, + MP_QSTR_SaplingHasher, + MP_QSTR_OrchardHasher, + MP_QSTR_write_hash, + MP_QSTR_write_prevout, + MP_QSTR_blake_hash_writer_32, + MP_QSTR__txin_sig_digest, + MP_QSTR_transparent, + MP_QSTR_sapling, + MP_QSTR_orchard, + MP_QSTR_tx_hash_person, + MP_QSTR_signature_digest, + MP_QSTR_sig_digest, + MP_QSTR__digest, + MP_QSTR_prevouts, + MP_QSTR_scriptpubkeys, + MP_QSTR_empty, + MP_QSTR_apps_slash_zcash_slash_signer_dot_py, + MP_QSTR_sign_nonsegwit_bip143_input, + MP_QSTR_Typecode, + MP_QSTR_P2PKH, + MP_QSTR_P2SH, + MP_QSTR_i_sign, + MP_QSTR_apps_slash_zcash_slash_unified_addresses_dot_py, + MP_QSTR_utest, + MP_QSTR_SAPLING, + MP_QSTR_ORCHARD, + MP_QSTR_padding, + MP_QSTR_PREFIXES, + MP_QSTR_RECEIVER_LENGTHS, + MP_QSTR_receivers, + MP_QSTR_addr_str, + MP_QSTR_Bech32m_space_decoding_space_failed_dot_, + MP_QSTR_Invalid_space_padding_space_bytes, + MP_QSTR_Duplicated_space_typecode, + MP_QSTR_Invalid_space_typecode, + MP_QSTR_Invalid_space_receivers_space_order, + MP_QSTR_Invalid_space_receiver_space_length, + MP_QSTR_apps_slash_webauthn_slash___init___dot_py, + MP_QSTR_handle_reports, + MP_QSTR_apps_slash_webauthn_slash_add_resident_credential_dot_py, + MP_QSTR_Fido2Credential, + MP_QSTR_store_resident_credential, + MP_QSTR_from_cred_id, + MP_QSTR_warning_credential, + MP_QSTR_Import_space_credential, + MP_QSTR_Credential_space_added, + MP_QSTR_apps_slash_webauthn_slash_common_dot_py, + MP_QSTR_COSE_KEY_KTY, + MP_QSTR_COSE_KEY_ALG, + MP_QSTR_COSE_KEY_CRV, + MP_QSTR_COSE_KEY_X, + MP_QSTR_COSE_KEY_Y, + MP_QSTR_COSE_ALG_ES256, + MP_QSTR_COSE_ALG_EDDSA, + MP_QSTR_COSE_ALG_ECDH_ES_HKDF_256, + MP_QSTR_COSE_KEYTYPE_OKP, + MP_QSTR_COSE_KEYTYPE_EC2, + MP_QSTR_COSE_CURVE_P256, + MP_QSTR_COSE_CURVE_ED25519, + MP_QSTR_apps_slash_webauthn_slash_credential_dot_py, + MP_QSTR_U2fCredential, + MP_QSTR_rp_id_hash, + MP_QSTR_by_rp_id_hash, + MP_QSTR__private_key, + MP_QSTR__u2f_sign, + MP_QSTR_bogus_signature, + MP_QSTR_hmac_secret_key, + MP_QSTR_next_signature_counter, + MP_QSTR_from_key_handle, + MP_QSTR_generate_id, + MP_QSTR_check_required_fields, + MP_QSTR_check_data_types, + MP_QSTR_truncate_names, + MP_QSTR__gt_4L, + MP_QSTR_generate_key_handle, + MP_QSTR__lt_8L, + MP_QSTR__brace_open__brace_close__dot__dot__dot__brace_open__brace_close_, + MP_QSTR__node_from_key_handle, + MP_QSTR__gt_8L, + MP_QSTR__CRED_ID_VERSION, + MP_QSTR_CRED_ID_MAX_LENGTH, + MP_QSTR__DEFAULT_ALGORITHM, + MP_QSTR__DEFAULT_CURVE, + MP_QSTR__CURVE_NAME, + MP_QSTR_cred_id, + MP_QSTR_key_handle, + MP_QSTR_keyhandle, + MP_QSTR_pathformat, + MP_QSTR_apps_slash_webauthn_slash_fido2_dot_py, + MP_QSTR__dot_dummy, + MP_QSTR_CborError, + MP_QSTR_Cmd, + MP_QSTR_KeepaliveCallback, + MP_QSTR_U2fState, + MP_QSTR_U2fConfirmRegister, + MP_QSTR_U2fConfirmAuthenticate, + MP_QSTR_U2fUnlock, + MP_QSTR_Fido2State, + MP_QSTR_Fido2Unlock, + MP_QSTR_Fido2ConfirmMakeCredential, + MP_QSTR_Fido2ConfirmExcluded, + MP_QSTR_Fido2ConfirmGetAssertion, + MP_QSTR_Fido2ConfirmNoPin, + MP_QSTR_Fido2ConfirmNoCredentials, + MP_QSTR_Fido2ConfirmReset, + MP_QSTR_DialogManager, + MP_QSTR_frame_init, + MP_QSTR_cid, + MP_QSTR_cmd, + MP_QSTR_bcnt, + MP_QSTR_frame_cont, + MP_QSTR__resp_cmd_init, + MP_QSTR_capFlags, + MP_QSTR__resp_cmd_register, + MP_QSTR_registerId, + MP_QSTR_pubKey, + MP_QSTR_keyHandle, + MP_QSTR_cert, + MP_QSTR_sig, + MP_QSTR_status, + MP_QSTR__req_cmd_authenticate, + MP_QSTR_chal, + MP_QSTR_appId, + MP_QSTR__resp_cmd_authenticate, + MP_QSTR_ctr, + MP_QSTR_overlay_struct, + MP_QSTR_make_struct, + MP_QSTR__read_cmd, + MP_QSTR_send_cmd, + MP_QSTR_send_cmd_sync, + MP_QSTR_allow_cid, + MP_QSTR_verify_user, + MP_QSTR__confirm_fido_choose, + MP_QSTR__confirm_fido, + MP_QSTR__confirm_bogus_app, + MP_QSTR__dispatch_cmd, + MP_QSTR_to_msg, + MP_QSTR_cla, + MP_QSTR_lc, + MP_QSTR_cmd_init, + MP_QSTR_versionInterface, + MP_QSTR_versionMajor, + MP_QSTR_versionMinor, + MP_QSTR_versionBuild, + MP_QSTR__cmd_wink, + MP_QSTR__msg_register, + MP_QSTR_set_state, + MP_QSTR_basic_attestation_sign, + MP_QSTR__msg_register_sign, + MP_QSTR_keyHandleLen, + MP_QSTR__msg_authenticate, + MP_QSTR__msg_authenticate_sign, + MP_QSTR__gt_L, + MP_QSTR_msg_error, + MP_QSTR__gt_H, + MP_QSTR_cmd_error, + MP_QSTR_cbor_error, + MP_QSTR_credentials_from_descriptor_list, + MP_QSTR_public_hyphen_key, + MP_QSTR__distinguishable_cred_list, + MP_QSTR__algorithms_from_pub_key_cred_params, + MP_QSTR_alg, + MP_QSTR__cbor_make_credential, + MP_QSTR__cbor_make_credential_process, + MP_QSTR_rk, + MP_QSTR_uv, + MP_QSTR_use_compact, + MP_QSTR_icon, + MP_QSTR_up, + MP_QSTR__cbor_make_credential_sign, + MP_QSTR_use_self_attestation, + MP_QSTR_x5c, + MP_QSTR_packed, + MP_QSTR__cbor_get_assertion, + MP_QSTR__cbor_get_assertion_process, + MP_QSTR_find_by_rp_id_hash, + MP_QSTR__cbor_get_assertion_hmac_secret, + MP_QSTR_cbor_get_assertion_sign, + MP_QSTR__cbor_get_info, + MP_QSTR_U2F_V2, + MP_QSTR_FIDO_2_0, + MP_QSTR__cbor_client_pin, + MP_QSTR__cbor_reset, + MP_QSTR_cmd_keepalive, + MP_QSTR_keepalive_status, + MP_QSTR_on_confirm, + MP_QSTR_on_decline, + MP_QSTR_on_timeout, + MP_QSTR_on_cancel, + MP_QSTR__cred, + MP_QSTR__req_data, + MP_QSTR_process_func, + MP_QSTR_req, + MP_QSTR_resp, + MP_QSTR_dialog_mgr, + MP_QSTR__client_data_hash, + MP_QSTR__resident, + MP_QSTR__user_verification, + MP_QSTR_FIDO2, + MP_QSTR_resident, + MP_QSTR_user_verification, + MP_QSTR__creds, + MP_QSTR__hmac_secret, + MP_QSTR__selected_cred, + MP_QSTR__clear, + MP_QSTR_keepalive, + MP_QSTR__workflow_is_running, + MP_QSTR_reset_timeout, + MP_QSTR_is_busy, + MP_QSTR_keepalive_loop, + MP_QSTR_dialog_workflow, + MP_QSTR__FIDO_ATT_PRIV_KEY, + MP_QSTR__FIDO_ATT_CERT, + MP_QSTR__BOGUS_RP_ID, + MP_QSTR__BOGUS_APPID_CHROME, + MP_QSTR__BOGUS_APPID_FIREFOX, + MP_QSTR__BOGUS_APPIDS, + MP_QSTR__AAGUID, + MP_QSTR__last_wink_cid, + MP_QSTR__last_auth_valid, + MP_QSTR_khlen, + MP_QSTR_certlen, + MP_QSTR_siglen, + MP_QSTR_desc, + MP_QSTR_TimeoutError, + MP_QSTR_cred, + MP_QSTR_descriptor_list, + MP_QSTR_pub_key_cred_params, + MP_QSTR_client_data_hash, + MP_QSTR_user_presence, + MP_QSTR_req_data, + MP_QSTR_Already_space_registered_dot_, + MP_QSTR_Not_space_registered_dot_, + MP_QSTR_displayName, + MP_QSTR_hmac_hyphen_secret, + MP_QSTR_U2F_space_Register, + MP_QSTR_U2F_space_Authenticate, + MP_QSTR_FIDO2_space_Register, + MP_QSTR_FIDO2_space_Authenticate, + MP_QSTR_FIDO2_space_Verify_space_User, + MP_QSTR_Unable_space_to_space_verify_space_user_dot_, + MP_QSTR_apps_slash_webauthn_slash_knownapps_dot_py, + MP_QSTR_FIDOApp, + MP_QSTR_apple_dot_com, + MP_QSTR_apple, + MP_QSTR_aws, + MP_QSTR_bitbucket, + MP_QSTR_bitfinex, + MP_QSTR_bitwarden, + MP_QSTR_cloudflare, + MP_QSTR_coinbase, + MP_QSTR_dashlane, + MP_QSTR_dropbox, + MP_QSTR_duo, + MP_QSTR_facebook, + MP_QSTR_fastmail, + MP_QSTR_fedora, + MP_QSTR_gandi_dot_net, + MP_QSTR_gandi, + MP_QSTR_gemini_dot_com, + MP_QSTR_gemini, + MP_QSTR_github_dot_com, + MP_QSTR_github, + MP_QSTR_gitlab_dot_com, + MP_QSTR_gitlab, + MP_QSTR_google_dot_com, + MP_QSTR_google, + MP_QSTR_invity_dot_io, + MP_QSTR_invity, + MP_QSTR_keeper, + MP_QSTR_kraken_dot_com, + MP_QSTR_kraken, + MP_QSTR_login_dot_gov, + MP_QSTR_microsoft, + MP_QSTR_mojeid_dot_cz, + MP_QSTR_mojeid, + MP_QSTR_namecheap, + MP_QSTR_proton_dot_me, + MP_QSTR_proton, + MP_QSTR_slushpool, + MP_QSTR_stripe_dot_com, + MP_QSTR_stripe, + MP_QSTR_tutanota, + MP_QSTR_aws_dot_amazon_dot_com, + MP_QSTR_www_dot_binance_dot_com, + MP_QSTR_binance_dot_com, + MP_QSTR_bitbucket_dot_org, + MP_QSTR_www_dot_bitfinex_dot_com, + MP_QSTR_vault_dot_bitwarden_dot_com, + MP_QSTR_dash_dot_cloudflare_dot_com, + MP_QSTR_coinbase_dot_com, + MP_QSTR_www_dot_dashlane_dot_com, + MP_QSTR_www_dot_dropbox_dot_com, + MP_QSTR_duosecurity_dot_com, + MP_QSTR_facebook_dot_com, + MP_QSTR_www_dot_fastmail_dot_com, + MP_QSTR_fastmail_dot_com, + MP_QSTR_fedoraproject_dot_org, + MP_QSTR_keepersecurity_dot_com, + MP_QSTR_keepersecurity_dot_eu, + MP_QSTR_secure_dot_login_dot_gov, + MP_QSTR_login_dot_microsoft_dot_com, + MP_QSTR_www_dot_namecheap_dot_com, + MP_QSTR_slushpool_dot_com, + MP_QSTR_tutanota_dot_com, + MP_QSTR_u2f_dot_bin_dot_coffee, + MP_QSTR_webauthn_dot_bin_dot_coffee, + MP_QSTR_webauthn_dot_io, + MP_QSTR_webauthn_dot_me, + MP_QSTR_demo_dot_yubico_dot_com, + MP_QSTR_apps_slash_webauthn_slash_list_resident_credentials_dot_py, + MP_QSTR_EXPORT, + MP_QSTR_find_all, + MP_QSTR_credentials_list, + MP_QSTR_List_space_credentials, + MP_QSTR_apps_slash_webauthn_slash_remove_resident_credential_dot_py, + MP_QSTR_get_resident_credential, + MP_QSTR_Remove_space_credential, + MP_QSTR_Credential_space_removed, + MP_QSTR_apps_slash_webauthn_slash_resident_credentials_dot_py, + MP_QSTR__credential_from_data, + MP_QSTR_storage_resident_credentials, + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_decred_dot_py, + MP_QSTR_DecredTxWeightCalculator, + MP_QSTR_DecredApprover, + MP_QSTR_DecredSigHasher, + MP_QSTR_add_decred_sstx_submission, + MP_QSTR_h_prefix, + MP_QSTR_approve_staking_ticket, + MP_QSTR_write_tx_input_witness, + MP_QSTR_process_sstx_commitment_owned, + MP_QSTR_OUTPUT_SCRIPT_NULL_SSTXCHANGE, + MP_QSTR_Missing_space_address_dot_, + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_bitcoinlike_dot_py, + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_zcash_v4_dot_py, + MP_QSTR_Zip243SigHasher, + MP_QSTR_h_sequence, +}; + +const qstr_hash_t mp_qstr_frozen_const_hashes[] = { + 43093, + 88, + 40402, + 21057, + 16690, + 15603, + 51323, + 25697, + 1212, + 51625, + 20574, + 46911, + 21972, + 24867, + 37693, + 18154, + 60883, + 60964, + 53350, + 61617, + 23495, + 62000, + 52308, + 20163, + 967, + 31792, + 2886, + 30732, + 48401, + 62518, + 48477, + 62458, + 43375, + 62383, + 60680, + 56275, + 6132, + 44789, + 7798, + 8945, + 27920, + 26455, + 35915, + 24332, + 37854, + 50446, + 18597, + 46287, + 15723, + 47827, + 24183, + 62522, + 42846, + 44565, + 44017, + 40674, + 21190, + 9591, + 64531, + 45033, + 9229, + 397, + 17193, + 44093, + 17433, + 32069, + 54497, + 22692, + 23360, + 54326, + 46994, + 54349, + 10025, + 57920, + 10980, + 8934, + 45634, + 30252, + 48264, + 39145, + 49357, + 55188, + 23216, + 38114, + 54278, + 63407, + 18734, + 47460, + 1579, + 9273, + 51955, + 19037, + 39703, + 31608, + 60834, + 10472, + 19084, + 37635, + 44297, + 28601, + 28659, + 54220, + 30836, + 34551, + 13761, + 28190, + 61049, + 26584, + 49927, + 15481, + 62480, + 19503, + 28547, + 45148, + 41782, + 2449, + 55855, + 4241, + 16135, + 28549, + 45146, + 42096, + 36951, + 6761, + 45655, + 38913, + 21458, + 6762, + 29868, + 63974, + 59187, + 26558, + 55546, + 38743, + 49507, + 16662, + 55388, + 52535, + 18160, + 2828, + 36337, + 48461, + 63493, + 9091, + 43160, + 12304, + 40278, + 27566, + 15258, + 40092, + 6461, + 26107, + 8020, + 51922, + 1221, + 3331, + 37375, + 46649, + 40503, + 6854, + 12352, + 14131, + 18485, + 35231, + 36407, + 8945, + 52258, + 65124, + 28485, + 65347, + 10507, + 52355, + 61305, + 48666, + 8082, + 34772, + 8284, + 39472, + 65464, + 26711, + 17872, + 37976, + 57632, + 13224, + 6001, + 17145, + 47184, + 4258, + 9002, + 43032, + 52624, + 48246, + 41470, + 54492, + 29978, + 26662, + 224, + 14681, + 11231, + 64788, + 23427, + 58076, + 56491, + 1217, + 44057, + 20390, + 31264, + 2719, + 55970, + 4544, + 246, + 46180, + 25132, + 42435, + 1516, + 63737, + 34349, + 54529, + 54206, + 65286, + 41768, + 46436, + 775, + 38298, + 43318, + 43121, + 61872, + 44427, + 50218, + 35087, + 15310, + 18892, + 50957, + 49311, + 638, + 53866, + 42820, + 59230, + 47743, + 24869, + 57444, + 45625, + 11905, + 12096, + 33293, + 19380, + 51263, + 62196, + 11398, + 39501, + 61303, + 61526, + 60514, + 21894, + 15079, + 54258, + 3635, + 27701, + 58036, + 21129, + 19400, + 39057, + 16045, + 8892, + 16538, + 763, + 15407, + 19145, + 167, + 31425, + 11376, + 1110, + 1375, + 44793, + 58242, + 23614, + 20124, + 13688, + 30783, + 32539, + 58662, + 58562, + 40447, + 22491, + 25096, + 63980, + 16732, + 39224, + 12792, + 31132, + 24468, + 42672, + 42439, + 31395, + 61654, + 55922, + 6338, + 24038, + 62831, + 60875, + 55405, + 64393, + 52388, + 8768, + 36926, + 8474, + 28635, + 4031, + 58519, + 39859, + 7775, + 2619, + 48421, + 5185, + 19135, + 4827, + 56046, + 43850, + 29436, + 34520, + 28998, + 2786, + 48296, + 13004, + 65170, + 27574, + 6584, + 17244, + 26665, + 26773, + 57668, + 19035, + 41198, + 59329, + 54299, + 14235, + 17939, + 11725, + 13315, + 9088, + 32966, + 44050, + 2580, + 7909, + 52508, + 59984, + 42390, + 28035, + 52662, + 35375, + 26482, + 5269, + 58766, + 53331, + 21792, + 25053, + 60058, + 15271, + 15110, + 24190, + 10371, + 15663, + 4889, + 5108, + 24562, + 1620, + 61379, + 58538, + 30370, + 12202, + 15778, + 27557, + 40365, + 54396, + 18548, + 46633, + 35781, + 22266, + 9212, + 48448, + 22216, + 4419, + 14935, + 53230, + 34555, + 6580, + 15758, + 42962, + 21974, + 4586, + 40738, + 25969, + 40464, + 30715, + 39812, + 63249, + 29374, + 27998, + 44745, + 9571, + 42212, + 13166, + 6799, + 55290, + 28251, + 53804, + 56807, + 30285, + 64622, + 55592, + 54684, + 27547, + 1565, + 30830, + 30120, + 39634, + 3092, + 52121, + 18129, + 4503, + 30167, + 47171, + 22710, + 28976, + 44631, + 11564, + 61650, + 34729, + 34775, + 44684, + 62206, + 40325, + 14690, + 58553, + 1300, + 271, + 24819, + 7464, + 52927, + 46596, + 64676, + 41919, + 63990, + 1517, + 37730, + 48868, + 53418, + 12103, + 48744, + 24240, + 23839, + 47743, + 43344, + 13970, + 31084, + 53731, + 52891, + 38964, + 325, + 13451, + 13188, + 12862, + 10119, + 28082, + 28029, + 17468, + 10084, + 50739, + 21663, + 36904, + 62586, + 18381, + 2328, + 42383, + 62196, + 15104, + 59113, + 60633, + 19164, + 6508, + 12390, + 48662, + 516, + 3316, + 45279, + 15502, + 63268, + 42059, + 50603, + 41744, + 64767, + 56533, + 52853, + 60275, + 29413, + 22897, + 25789, + 6194, + 40326, + 56426, + 8017, + 38778, + 35022, + 18978, + 25480, + 17436, + 5197, + 25943, + 44651, + 43632, + 6864, + 51066, + 56656, + 7871, + 17843, + 20901, + 4596, + 53576, + 63411, + 59600, + 8345, + 6387, + 37052, + 41091, + 22752, + 35348, + 52792, + 37766, + 32218, + 47122, + 16494, + 18047, + 59776, + 26005, + 56666, + 62048, + 531, + 56367, + 33177, + 2301, + 48396, + 33194, + 24503, + 11844, + 64672, + 4617, + 7405, + 47742, + 56346, + 64816, + 59910, + 18042, + 33838, + 38143, + 10961, + 56688, + 55910, + 663, + 44504, + 46532, + 46564, + 46535, + 46567, + 46534, + 46566, + 46529, + 46561, + 46560, + 46531, + 46563, + 46530, + 46562, + 46541, + 46573, + 46540, + 46572, + 46543, + 46575, + 46542, + 46537, + 46568, + 46539, + 46571, + 46538, + 46570, + 46549, + 46581, + 46548, + 46580, + 46551, + 46550, + 46582, + 46545, + 46544, + 46576, + 46547, + 46579, + 46546, + 46578, + 46589, + 46588, + 46559, + 46591, + 47476, + 41551, + 22635, + 16563, + 11338, + 1410, + 954, + 7924, + 44256, + 35180, + 59306, + 21791, + 55800, + 11921, + 41273, + 40873, + 21346, + 36163, + 18785, + 64646, + 12143, + 46076, + 16762, + 29691, + 54225, + 706, + 19643, + 33023, + 37379, + 52868, + 45389, + 59046, + 28451, + 65473, + 26604, + 64430, + 38131, + 23202, + 48167, + 65341, + 33609, + 13086, + 43617, + 33092, + 27202, + 33700, + 37273, + 56243, + 42722, + 8445, + 10861, + 12286, + 46059, + 4541, + 60370, + 23628, + 56270, + 26152, + 52662, + 1752, + 49086, + 18044, + 9435, + 27956, + 26724, + 26720, + 57935, + 26725, + 6557, + 26727, + 17102, + 13709, + 41042, + 59900, + 37205, + 58970, + 52478, + 2800, + 59073, + 8382, + 8098, + 48599, + 48479, + 7336, + 58319, + 25549, + 4244, + 17694, + 34737, + 3083, + 18422, + 52055, + 18564, + 42249, + 61516, + 48773, + 43684, + 55935, + 28788, + 40488, + 41278, + 27228, + 62257, + 48411, + 32891, + 44507, + 26957, + 7584, + 22960, + 34183, + 44206, + 28398, + 47728, + 40843, + 40492, + 3169, + 40369, + 58181, + 11089, + 3063, + 30317, + 57342, + 47468, + 11255, + 51340, + 45584, + 31985, + 56926, + 2283, + 33840, + 5259, + 51237, + 57431, + 33544, + 34690, + 28866, + 58527, + 3659, + 44486, + 64014, + 18880, + 53215, + 63195, + 15086, + 22792, + 36162, + 41189, + 43597, + 26835, + 64266, + 7285, + 55910, + 42053, + 7177, + 39355, + 13811, + 17751, + 47073, + 38755, + 26651, + 19545, + 52220, + 13695, + 28563, + 50703, + 46581, + 46472, + 26485, + 46473, + 46485, + 46475, + 50410, + 28898, + 28495, + 28883, + 28569, + 33583, + 27371, + 21562, + 42780, + 28083, + 63379, + 50182, + 61271, + 63046, + 58736, + 27083, + 44353, + 26048, + 6453, + 13925, + 49771, + 19221, + 4792, + 7632, + 58302, + 4304, + 51416, + 25312, + 45659, + 41811, + 22175, + 17965, + 23209, + 712, + 14941, + 53963, + 46952, + 14556, + 49200, + 19786, + 18804, + 2820, + 15432, + 55140, + 51685, + 49534, + 57061, + 60696, + 58116, + 55587, + 8810, + 13239, + 7967, + 44547, + 12048, + 8044, + 8102, + 54916, + 59354, + 39846, + 24836, + 55666, + 31539, + 27451, + 49236, + 43188, + 56205, + 25435, + 56371, + 58752, + 45134, + 54248, + 15721, + 508, + 57305, + 61414, + 41081, + 53261, + 17759, + 63871, + 35569, + 8262, + 47728, + 22356, + 28062, + 2190, + 61464, + 25229, + 7762, + 37437, + 10996, + 26397, + 43055, + 29567, + 16075, + 45114, + 12752, + 2688, + 1885, + 45730, + 22739, + 6233, + 57480, + 49126, + 26491, + 9028, + 26782, + 27089, + 46484, + 54206, + 47419, + 36101, + 7583, + 21135, + 17984, + 4479, + 50514, + 29528, + 58510, + 20229, + 10447, + 60380, + 652, + 20172, + 61333, + 7999, + 46495, + 4458, + 5234, + 16021, + 35981, + 31397, + 40819, + 48502, + 8628, + 62302, + 7116, + 33196, + 5778, + 47638, + 21280, + 6164, + 19851, + 24132, + 9403, + 14801, + 36642, + 1136, + 19339, + 53770, + 84, + 18665, + 59736, + 64985, + 56653, + 42906, + 19237, + 2738, + 32463, + 2442, + 8592, + 16814, + 921, + 36385, + 36538, + 34313, + 17960, + 5044, + 21584, + 56319, + 30326, + 40275, + 29147, + 26070, + 23040, + 50925, + 35475, + 28094, + 53877, + 18991, + 13062, + 37381, + 48409, + 361, + 6337, + 32073, + 36810, + 18595, + 49754, + 42854, + 14238, + 21842, + 13062, + 45019, + 47836, + 62212, + 57485, + 7414, + 65326, + 50495, + 9293, + 50506, + 9929, + 32078, + 51081, + 18522, + 26697, + 2865, + 53573, + 43572, + 1915, + 45716, + 25117, + 7430, + 40101, + 60864, + 8586, + 33300, + 31387, + 36623, + 46012, + 12299, + 56873, + 19011, + 13840, + 7541, + 12945, + 22625, + 5648, + 31726, + 7818, + 32660, + 13889, + 19583, + 42112, + 64870, + 33530, + 56051, + 60918, + 32773, + 23353, + 57791, + 31222, + 15360, + 4453, + 49318, + 16804, + 39790, + 51439, + 61552, + 31486, + 19536, + 64079, + 27081, + 1615, + 1171, + 50352, + 56742, + 32621, + 28635, + 35110, + 54385, + 39105, + 11741, + 30506, + 42135, + 17842, + 9415, + 29432, + 16207, + 58687, + 49000, + 24961, + 61526, + 20287, + 55656, + 15433, + 50014, + 18441, + 30512, + 49279, + 25455, + 37456, + 8574, + 13807, + 57203, + 26473, + 50202, + 62756, + 48591, + 36584, + 28455, + 29562, + 37271, + 26057, + 18291, + 62020, + 44265, + 39188, + 28991, + 44402, + 29155, + 49356, + 36880, + 30150, + 13867, + 44804, + 60528, + 24305, + 55398, + 30615, + 50263, + 2604, + 42946, + 46587, + 38812, + 9113, + 6164, + 15399, + 14301, + 53191, + 34899, + 43029, + 51099, + 58014, + 54629, + 25747, + 48022, + 23350, + 32204, + 59122, + 39792, + 57356, + 2292, + 59913, + 27750, + 9598, + 54301, + 29509, + 53909, + 34950, + 8543, + 23548, + 62320, + 4641, + 16105, + 53057, + 62329, + 59417, + 60543, + 33272, + 452, + 65351, + 40125, + 1704, + 965, + 62534, + 56524, + 54110, + 18089, + 15439, + 55724, + 65470, + 24571, + 56209, + 60919, + 43439, + 49291, + 51402, + 30884, + 1931, + 4942, + 57523, + 55310, + 35800, + 16825, + 51049, + 65502, + 8008, + 17545, + 16369, + 21984, + 62488, + 17478, + 16952, + 64101, + 53093, + 21698, + 61117, + 14592, + 57112, + 35960, + 42928, + 763, + 22421, + 25492, + 21321, + 20465, + 25167, + 43319, + 48164, + 24051, + 33590, + 14677, + 23417, + 9191, + 31615, + 65311, + 32795, + 45499, + 49606, + 37313, + 14478, + 42658, + 34785, + 4649, + 31431, + 438, + 62396, + 58002, + 56921, + 54145, + 7511, + 59078, + 32612, + 52902, + 29219, + 37973, + 22544, + 21139, + 9798, + 45268, + 29720, + 3164, + 50250, + 31089, + 46468, + 53356, + 30461, + 6272, + 63887, + 22282, + 14138, + 52137, + 56386, + 19630, + 37240, + 42387, + 62702, + 51684, + 15714, + 35480, + 35448, + 17353, + 44416, + 58482, + 64016, + 7421, + 54585, + 55528, + 17861, + 17928, + 45242, + 64174, + 15283, + 13404, + 42712, + 28474, + 42447, + 46797, + 33802, + 48044, + 42168, + 28009, + 20074, + 1724, + 47706, + 6503, + 28469, + 63604, + 48646, + 61766, + 15081, + 54932, + 64462, + 41260, + 52418, + 11482, + 13433, + 30506, + 6523, + 18818, + 27691, + 25017, + 24087, + 23310, + 4643, + 34957, + 46500, + 16840, + 45974, + 27601, + 38382, + 62650, + 33641, + 57355, + 63844, + 6576, + 59507, + 45232, + 27265, + 48367, + 22962, + 31104, + 7440, + 4993, + 39091, + 26536, + 21697, + 41114, + 36751, + 53473, + 52798, + 28471, + 55886, + 51667, + 54963, + 12831, + 40341, + 22002, + 32685, + 4573, + 22921, + 58512, + 52001, + 55623, + 53835, + 51438, + 38426, + 51272, + 23219, + 50794, + 25252, + 49061, + 34122, + 62188, + 39348, + 25075, + 13331, + 6471, + 22108, + 22032, + 19868, + 4667, + 17370, + 22474, + 35180, + 49739, + 2425, + 64509, + 40078, + 52483, + 21868, + 9016, + 57680, + 32984, + 7861, + 56167, + 19760, + 49511, + 65454, + 47507, + 37051, + 8396, + 367, + 5714, + 28100, + 11021, + 4684, + 29635, + 36624, + 28310, + 15076, + 36860, + 65142, + 22439, + 56493, + 64643, + 61774, + 19170, + 55638, + 35303, + 3070, + 48268, + 50294, + 14979, + 4809, + 62372, + 14575, + 16553, + 28143, + 25666, + 591, + 41976, + 15289, + 21911, + 11102, + 35108, + 65269, + 37298, + 44125, + 36203, + 14132, + 13695, + 39347, + 58562, + 19774, + 15623, + 27922, + 3766, + 2334, + 54837, + 30397, + 13856, + 62219, + 26982, + 49213, + 33220, + 55646, + 36091, + 39952, + 27914, + 41904, + 58138, + 25623, + 36862, + 16509, + 59573, + 59545, + 39321, + 51274, + 27362, + 646, + 8594, + 21593, + 21709, + 60248, + 27321, + 1901, + 23954, + 11993, + 13508, + 1538, + 33381, + 55865, + 684, + 26476, + 62654, + 35045, + 8453, + 18868, + 17352, + 51318, + 64366, + 25228, + 53160, + 38272, + 44215, + 62371, + 4499, + 1902, + 6051, + 15799, + 29847, + 35656, + 35420, + 10288, + 11812, + 61873, + 65317, + 61577, + 16468, + 23943, + 47832, + 55756, + 36477, + 40809, + 55577, + 38205, + 15954, + 43010, + 36744, + 6708, + 1570, + 29919, + 12092, + 21222, + 55987, + 36278, + 32453, + 40672, + 19333, + 29314, + 19166, + 43332, + 39255, + 1205, + 26397, + 1285, + 64065, + 22105, + 64808, + 31932, + 20534, + 4386, + 60488, + 23240, + 7702, + 64249, + 16805, + 19010, + 40927, + 24470, + 30245, + 7173, + 17898, + 29419, + 3051, + 7991, + 24736, + 37417, + 19966, + 22905, + 14010, + 9038, + 10473, + 46078, + 27173, + 56761, + 29762, + 60961, + 24384, + 6316, + 43281, + 47420, + 10635, + 19390, + 44848, + 48249, + 29242, + 14361, + 40178, + 35251, + 37878, + 35857, + 3878, + 6537, + 41701, + 17989, + 51273, + 22929, + 42972, + 55734, + 25873, + 54403, + 59191, + 37140, + 55346, + 60484, + 55265, + 29444, + 7178, + 38804, + 8249, + 36943, + 11682, + 33994, + 29600, + 18231, + 28062, + 31173, + 20782, + 38697, + 59675, + 39006, + 55782, + 36689, + 27485, + 36720, + 46759, + 56575, + 30237, + 18264, + 46792, + 63665, + 40586, + 2101, + 43700, + 10487, + 56485, + 48207, + 36960, + 54574, + 46688, + 46027, + 31266, + 56355, + 15639, + 49710, + 21845, + 32771, + 12492, + 33187, + 49001, + 1401, + 627, + 12389, + 31033, + 12606, + 49647, + 44191, + 4118, + 43188, + 54043, + 36643, + 65260, + 17349, + 46645, + 27914, + 59886, + 46800, + 19167, + 33111, + 6833, + 2692, + 43192, + 42273, + 1375, + 22727, + 22728, + 52284, + 4357, + 47050, + 14697, + 31275, + 28009, + 2789, + 52308, + 20638, + 10872, + 57153, + 5078, + 64995, + 15503, + 12065, + 39168, + 62037, + 60439, + 60475, + 43313, + 6800, + 38637, + 60709, + 54016, + 3803, + 52822, + 13388, + 36449, + 63501, + 28148, + 8354, + 474, + 51273, + 30935, + 58926, + 55506, + 16086, + 54273, + 41388, + 25499, + 281, + 60539, + 39866, + 10901, + 16792, + 37993, + 59371, + 24029, + 40103, + 15195, + 59706, + 27946, + 9821, + 55866, + 55126, + 43142, + 20419, + 48844, + 12199, + 4552, + 59622, + 20202, + 60696, + 39577, + 10634, + 11937, + 46577, + 2817, + 37471, + 47702, + 32357, + 26809, + 32667, + 32657, + 32656, + 32648, + 62527, + 25803, + 1777, + 5879, + 65076, + 50325, + 17153, + 9607, + 65442, + 58005, + 30134, + 51104, + 8404, + 24824, + 13353, + 32948, + 61747, + 39073, + 58040, + 16864, + 10854, + 50352, + 28356, + 25763, + 32931, + 11650, + 29612, + 53043, + 35557, + 46922, + 13162, + 46585, + 47609, + 41534, + 49996, + 56504, + 42138, + 47431, + 50356, + 18772, + 56192, + 37376, + 11434, + 23264, + 35169, + 50347, + 18763, + 33870, + 53731, + 19907, + 4610, + 53539, + 32795, + 64571, + 16879, + 43956, + 47824, + 54564, + 20332, + 47940, + 7716, + 62855, + 17708, + 25288, + 56872, + 9094, + 28076, + 46260, + 28224, + 39543, + 5719, + 39939, + 47358, + 45984, + 14400, + 46974, + 45930, + 49187, + 15363, + 10999, + 42711, + 16104, + 61447, + 24154, + 64186, + 11514, + 57022, + 16990, + 18538, + 52234, + 37059, + 49320, + 49512, + 53897, + 54149, + 14540, + 3366, + 28694, + 54770, + 24514, + 41229, + 12064, + 33656, + 1880, + 28727, + 9740, + 28544, + 28128, + 1263, + 61115, + 3886, + 2309, + 53861, + 30812, + 36616, + 51378, + 12224, + 28958, + 33623, + 4764, + 53529, + 60209, + 55321, + 63833, + 47014, + 12140, + 7675, + 62628, + 31044, + 22416, + 63259, + 31739, + 19364, + 10574, + 59942, + 10393, + 65034, + 11975, + 12268, + 19425, + 24690, + 9985, + 29475, + 7652, + 19430, + 31198, + 58061, + 10869, + 51847, + 28224, + 63486, + 11526, + 14279, + 54282, + 26079, + 48, + 39673, + 5931, + 7687, + 27697, + 760, + 56616, + 535, + 64110, + 56936, + 4427, + 44722, + 56253, + 38711, + 17949, + 29724, + 10123, + 31783, + 14845, + 42718, + 10842, + 19058, + 6387, + 16865, + 45843, + 64595, + 11237, + 1137, + 45649, + 29570, + 56521, + 63756, + 7743, + 49740, + 38014, + 55189, + 64780, + 34201, + 19183, + 26991, + 2575, + 58853, + 57031, + 59906, + 46815, + 39722, + 58998, + 12603, + 54937, + 51728, + 1167, + 34829, + 8210, + 25681, + 36945, + 1938, + 35751, + 25039, + 59766, + 52803, + 56000, + 29191, + 31947, + 35810, + 12061, + 40912, + 17888, + 8854, + 43172, + 5165, + 23044, + 20093, + 36922, + 61553, + 30567, + 59480, + 23698, + 1451, + 30847, + 35894, + 33359, + 51463, + 52146, + 27377, + 36650, + 40836, + 4146, + 14472, + 8799, + 30055, + 30052, + 10523, + 32739, + 12794, + 34934, + 57257, + 27400, + 36643, + 10409, + 26440, + 26437, + 28401, + 5793, + 18197, + 33644, + 28391, + 42634, + 45813, + 43398, + 26395, + 39198, + 47403, + 55141, + 40615, + 61896, + 24916, + 21700, + 41364, + 46466, + 46590, + 46584, + 5672, + 43330, + 27422, + 27353, + 7581, + 393, + 7814, + 4001, + 63744, + 49314, + 52269, + 34402, + 41298, + 57771, + 50741, + 1855, + 6073, + 53732, + 6938, + 20022, + 6980, + 22185, + 26225, + 45909, + 54920, + 65086, + 46107, + 29233, + 34217, + 685, + 27810, + 5664, + 13222, + 50908, + 3739, + 47786, + 37987, + 42667, + 52984, + 25313, + 58654, + 18888, + 49613, + 65391, + 61756, + 42623, + 30726, + 54056, + 10723, + 50755, + 63028, + 34043, + 15845, + 29643, + 24985, + 35681, + 49147, + 15454, + 34816, + 27883, + 60963, + 24037, + 57104, + 18765, + 26826, + 11314, + 13922, + 23492, + 19987, + 60873, + 18824, + 61312, + 4793, + 37689, + 31901, + 3479, + 58753, + 34782, + 65273, + 14713, + 48592, + 53016, + 5653, + 6235, + 32151, + 17381, + 4356, + 19232, + 60603, + 63324, + 21888, + 44362, + 59617, + 55855, + 19219, + 43644, + 10782, + 1748, + 63400, + 6810, + 30633, + 17275, + 27531, + 2696, + 54784, + 13637, + 60874, + 58999, + 43199, + 63469, + 8527, + 28736, + 18271, + 9690, + 37635, + 10096, + 28516, + 23690, + 27070, + 11986, + 63085, + 3626, + 22406, + 20720, + 25552, + 48818, + 8723, + 54417, + 55712, + 13544, + 25702, + 12273, + 6711, + 33552, + 8517, + 57501, + 10215, + 21649, + 53925, + 17210, + 52500, + 2700, + 47222, + 28308, + 19511, + 57750, + 19161, + 19918, + 26092, + 47355, + 6029, + 24478, + 25955, + 42602, + 11497, + 15369, + 2497, + 4252, + 18350, + 29399, + 28217, + 39715, + 50832, + 57300, + 33625, + 34154, + 27619, + 55275, + 52923, + 33977, + 10650, + 22597, + 8373, + 3016, + 50861, + 11819, + 62007, + 27663, + 4114, + 8606, + 43952, + 49847, + 34800, + 22414, + 38615, + 41401, + 49067, + 14147, + 50107, + 7843, + 2432, + 61423, + 31649, + 52424, + 35169, + 63773, + 8033, + 56864, + 23718, + 58135, + 34810, + 63393, + 54807, + 43665, + 53784, + 49894, + 58374, + 22307, + 65246, + 44772, + 21714, + 25956, + 58961, + 27392, + 64269, + 3981, + 23815, + 56270, + 13810, + 23035, + 44313, + 58607, + 52193, + 57657, + 65016, + 54612, + 4871, + 9688, + 60690, + 43826, + 20339, + 52644, + 31055, + 13475, + 24342, + 65351, + 39378, + 51346, + 57970, + 44867, + 58709, + 56600, + 63993, + 33613, + 53443, + 27531, + 29741, + 51539, + 5880, + 52017, + 26347, + 41239, + 17971, + 7062, + 31765, + 63475, + 49472, + 40317, + 34159, + 41663, + 9330, + 19853, + 45180, + 29888, + 46177, + 58458, + 3654, + 61184, + 58262, + 53084, + 28325, + 25106, + 39613, + 44035, + 60867, + 37794, + 44206, + 23827, + 41163, + 57536, + 28689, + 4743, + 47527, + 40167, + 40863, + 35594, + 30627, + 34355, + 19636, + 2249, + 53874, + 28699, + 15147, + 46768, + 26954, + 39278, + 39625, + 56760, + 20292, + 39214, + 26698, + 60034, + 46472, + 294, + 38700, + 58769, + 11803, + 45902, + 43016, + 57840, + 54836, + 57607, + 41026, + 25752, + 40606, + 10059, + 19814, + 51112, + 25865, + 64452, + 13977, + 62713, + 61100, + 6389, + 60214, + 35618, + 43689, + 60800, + 39591, + 35405, + 31072, + 2563, + 27614, + 53469, + 38717, + 63453, + 49833, + 26371, + 48476, + 1220, + 61410, + 13364, + 53701, + 63383, + 21187, + 21156, + 21193, + 50174, + 25948, + 52222, + 57063, + 6870, + 19566, + 59976, + 38458, + 4896, + 64142, + 57894, + 32604, + 61137, + 36766, + 37759, + 46565, + 26864, + 4057, + 61898, + 15573, + 22944, + 36333, + 15591, + 48160, + 15815, + 59285, + 23930, + 56414, + 62596, + 1463, + 9112, + 24656, + 54723, + 13796, + 64415, + 65217, + 49576, + 60278, + 46367, + 23797, + 8084, + 4803, + 9802, + 55389, + 9655, + 59650, + 14910, + 16742, + 57305, + 23011, + 39551, + 37397, + 10423, + 46416, + 57977, + 62509, + 45168, + 58098, + 59387, + 25770, + 21781, + 29433, + 42379, + 24768, + 24774, + 42353, + 62498, + 930, + 44990, + 35094, + 59439, + 8318, + 63290, + 26055, + 57323, + 64649, + 33394, + 2425, + 29861, + 18162, + 60754, + 12842, + 2420, + 29878, + 10611, + 30207, + 33722, + 16309, + 16308, + 14960, + 50428, + 61173, + 31407, + 8999, + 31443, + 10938, + 37244, + 43240, + 39508, + 4680, + 46966, + 59149, + 47554, + 42120, + 65275, + 29759, + 37406, + 11153, + 60004, + 36632, + 37504, + 61884, + 55791, + 20732, + 61429, + 41173, + 61292, + 11792, + 11115, + 8620, + 48004, + 38541, + 5754, + 61606, + 53153, + 7870, + 63708, + 38657, + 50403, + 39684, + 57305, + 46174, + 30640, + 30188, + 40538, + 50900, + 48476, + 23230, + 11814, + 171, + 55740, + 38562, + 57004, + 65056, + 392, + 37790, + 32984, + 8257, + 388, + 5, + 7, + 38415, + 53997, + 19041, + 19042, + 48973, + 48974, + 47635, + 32079, + 47092, + 12843, + 64452, + 59016, + 5301, + 43368, + 20926, + 20882, + 304, + 49836, + 56515, + 16496, + 39662, + 26496, + 59144, + 24247, + 48843, + 63527, + 28480, + 5967, + 25793, + 465, + 47684, + 56446, + 14673, + 27608, + 48801, + 54633, + 39346, + 1226, + 35702, + 3352, + 7961, + 50287, + 15156, + 5030, + 19653, + 48711, + 21126, + 61060, + 49356, + 16550, + 15675, + 19974, + 9678, + 2911, + 39895, + 56813, + 29285, + 59741, + 31189, + 45563, + 53752, + 42914, + 55681, + 62114, + 57931, + 24691, + 43053, + 7824, + 41636, + 10751, + 1799, + 44312, + 61114, + 26248, + 52805, + 5883, + 9839, + 17782, + 31330, + 7615, + 20999, + 62389, + 29702, + 29622, + 57091, + 51303, + 17853, + 19969, + 19939, + 61333, + 53697, + 60061, + 45773, + 51422, + 1232, + 26761, + 400, + 43559, + 8199, + 58783, + 21178, + 9288, + 14680, + 30946, + 34011, + 15339, + 55085, + 26438, + 26723, + 11454, + 46448, + 22001, + 58417, + 1156, + 39994, + 13835, + 33344, + 3246, + 24581, + 50601, + 61534, + 24152, + 19746, + 7669, + 57865, + 15079, + 15007, + 32352, + 46198, + 37586, + 37843, + 2476, + 62650, + 14622, + 56150, + 25529, + 5866, + 17010, + 30637, + 35701, + 3183, + 14203, + 50820, + 60335, + 12926, + 64861, + 13725, + 17809, + 4870, + 56586, + 14027, + 46297, + 8031, + 26526, + 46719, + 9627, + 7823, + 55420, + 54878, + 2320, + 24385, + 65205, + 65335, + 45527, + 37442, + 25259, + 1163, + 21773, + 45172, + 63449, + 16483, + 11794, + 26058, + 38443, + 28949, + 13566, + 65342, + 38931, + 44666, + 44748, + 63686, + 10309, + 59726, + 4106, + 4118, + 7483, + 40914, + 19728, + 9764, + 58772, + 55023, + 41279, + 63246, + 6727, + 23017, + 55928, + 27496, + 9382, + 55795, + 34840, + 54896, + 28013, + 36470, + 49968, + 8824, + 7027, + 15788, + 20583, + 38189, + 31792, + 15485, + 1084, + 48921, + 6687, + 47269, + 64703, + 50901, + 16865, + 45070, + 37230, + 52085, + 29386, + 21329, + 833, + 38675, + 12049, + 25044, + 11371, + 5400, + 40574, + 48948, + 61619, + 2779, + 44017, + 8171, + 51493, + 23206, + 38532, + 63447, + 18888, + 65057, + 1697, + 32185, + 10301, + 45578, + 22416, + 13101, + 63523, + 25201, + 57881, + 42466, + 3042, + 19840, + 33801, + 26369, + 32991, + 32100, + 8278, + 41486, + 14780, + 57626, + 60487, + 3071, + 41207, + 54161, + 36830, + 57588, + 33918, + 16416, + 12181, + 4644, + 44445, + 10985, + 53247, + 38068, + 8279, + 39325, + 2179, + 42865, + 53737, + 34461, + 26477, + 2622, + 14492, + 21143, + 57721, + 51198, + 1329, + 18406, + 11785, + 29151, + 50792, + 57930, + 11201, + 38295, + 2929, + 25825, + 36771, + 4078, + 15670, + 17519, + 9455, + 64558, + 59811, + 2191, + 59399, + 33531, + 7012, + 47829, + 54328, + 19882, + 22967, + 4570, + 38707, + 56243, + 57120, + 42040, + 12553, + 21534, + 64039, + 47742, + 50432, + 14371, + 27295, + 15065, + 59772, + 19395, + 48513, + 13152, + 30895, + 14958, + 32603, + 32419, + 21188, + 57696, + 2356, + 47044, + 61811, + 20891, + 14590, + 34569, + 9855, + 22472, + 62768, + 7980, + 64790, + 44216, + 324, + 8650, + 7261, + 21516, + 45052, + 11657, + 65004, + 52941, + 8702, + 33022, + 44889, + 45904, + 58166, + 32114, + 27015, + 11919, + 62910, + 19970, + 37720, + 28344, + 38393, + 31360, + 40611, + 34822, + 4387, + 15532, + 18315, + 50155, + 18012, + 11977, + 43377, + 47920, + 59357, + 33683, + 24299, + 11539, + 3718, + 16049, + 27356, + 45980, + 20629, + 5276, + 27156, + 50315, + 51339, + 30387, + 64339, + 41869, + 47140, + 16324, + 16882, + 4721, + 62355, + 29728, + 13025, + 19912, + 12686, + 54481, + 28002, + 24006, + 45305, + 37788, + 53085, + 19999, + 15785, + 54044, + 10857, + 12225, + 55600, + 26789, + 21221, + 46217, + 49523, + 55109, + 55232, + 36830, + 6148, + 47953, + 32640, + 10376, + 41641, + 9712, + 22920, + 42120, + 14128, + 18814, + 37838, + 45968, + 29600, + 14898, + 44418, + 32877, + 2429, + 25231, + 22160, + 18362, + 44922, + 53532, + 7404, + 49249, + 57437, + 44143, + 59262, + 10590, + 62630, + 22467, + 38413, + 38090, + 6882, + 63611, + 32512, + 15004, + 32171, + 19508, + 56878, + 22296, + 53734, + 5392, + 3903, + 62347, + 60964, + 35786, + 17959, + 64769, + 63318, + 13593, + 48250, + 41226, + 22514, + 49154, + 56662, + 44533, + 63201, + 21466, + 30307, + 28154, + 64733, + 13026, + 34898, + 28219, + 43654, + 1649, + 7295, + 49891, + 60014, + 5111, + 4757, + 42893, + 50176, + 6721, + 33886, + 1515, + 24729, + 56365, + 35688, + 17883, + 19791, + 32187, + 41418, + 942, + 56205, + 20785, + 56010, + 31918, + 16755, + 35074, + 9857, + 5933, + 30731, + 52417, + 61410, + 17120, + 20640, + 20483, + 3522, + 20640, + 45710, + 50518, + 15887, + 60204, + 5223, + 57242, + 36345, + 63582, + 14073, + 46620, + 54342, + 26968, + 35058, + 13714, + 45983, + 37456, + 23166, + 65488, + 56792, + 8357, + 48871, + 49515, + 54369, + 635, + 39155, + 29124, + 29601, + 13724, + 24241, + 18221, + 27717, + 360, + 2267, + 3844, + 821, + 16443, + 22394, + 64678, + 39518, + 47140, + 52278, + 52827, + 19680, + 43472, + 9406, + 21296, + 14866, + 60754, + 11658, + 45924, + 46948, + 45875, + 46899, + 20905, + 59849, + 1522, + 60021, + 46689, + 9269, + 2186, + 39548, + 5362, + 28727, + 55890, + 39536, + 52743, + 24030, + 38276, + 54100, + 65305, + 2832, + 42028, + 46068, + 63671, + 33587, + 38691, + 43087, + 62811, + 59064, + 54062, + 45757, + 58701, + 8533, + 42380, + 53957, + 32983, + 644, + 17079, + 3251, + 49501, + 375, + 35745, + 5716, + 5315, + 57527, + 17785, + 34439, + 30886, + 17548, + 64772, + 16567, + 46037, + 25341, + 28365, + 8248, + 28134, + 61656, + 63549, + 54001, + 38910, + 5857, + 37363, + 1127, + 38706, + 57146, + 44050, + 62685, + 58943, + 56406, + 33824, + 10950, + 14290, + 37748, + 48869, + 34493, + 56994, + 43786, + 37690, + 56583, + 7199, + 24262, + 41180, + 37626, + 27585, + 52466, + 50973, + 6939, + 24047, + 46646, + 44905, + 3574, + 16470, + 63038, + 9386, + 49248, + 10095, + 14183, + 27415, + 54861, + 29130, + 17643, + 28458, + 46559, + 30144, + 31444, + 61410, + 13885, + 3426, + 30867, + 39455, + 6696, + 36663, + 24156, + 3169, + 63500, + 53875, + 15855, + 43679, + 56132, + 40069, + 3873, + 23896, + 16203, + 25401, + 63107, + 8352, + 37394, + 5393, + 54605, + 14941, + 15902, + 15879, + 1821, + 26869, + 1356, + 41346, + 61986, + 63513, + 966, + 27813, + 41884, + 30567, + 39995, + 1213, + 57923, + 59425, + 54251, + 52350, + 39336, + 62561, + 57164, + 5837, + 6007, + 22582, + 40844, + 51481, + 10850, + 20050, + 18887, + 1620, + 64399, + 26012, + 904, + 18133, + 29432, + 609, + 6458, + 59955, + 50804, + 26306, + 37288, + 11422, + 54023, + 9592, + 16378, + 23433, + 28801, + 49684, + 50622, + 10984, + 44578, + 56839, + 739, + 29111, + 10628, + 63338, + 13915, + 53266, + 58804, + 2488, + 16150, + 15579, + 30765, + 21720, + 20919, + 39221, + 52148, + 24884, + 29290, + 35467, + 52603, + 52100, + 65011, + 3679, + 61101, + 44260, + 60876, + 35996, + 25799, + 23628, + 48470, + 29674, + 13289, + 50090, + 17234, + 9637, + 17909, + 18545, + 39737, + 57682, + 17566, + 7537, + 57478, + 416, + 38512, + 50156, + 798, + 54960, + 8029, + 15948, + 50203, + 20896, + 21684, + 14252, + 964, + 43417, + 38400, + 49340, + 611, + 55800, + 60108, + 10114, + 352, + 292, + 15361, + 40783, + 24306, + 62110, + 10721, + 6769, + 39020, + 13664, + 47273, + 11899, + 50010, + 18943, + 65422, + 2161, + 46685, + 7288, + 53001, + 51717, + 65137, + 37949, + 9273, + 22182, + 59569, + 35298, + 10918, + 12569, + 62761, + 11680, + 20453, + 2029, + 43066, + 35185, + 58369, + 202, + 33109, + 64516, + 30716, + 19658, + 46933, + 44261, + 26554, + 14837, + 20356, + 41994, + 59191, + 41467, + 49089, + 30204, + 47414, + 28940, + 57996, + 62133, + 2052, + 22665, + 8893, + 56904, + 50795, + 49359, + 3408, + 44094, + 35631, + 14856, + 13337, + 32786, + 11663, + 32347, + 23476, + 204, + 34420, + 18162, + 47627, + 40994, + 64264, + 10066, + 11051, + 23280, + 12803, + 9591, + 23791, + 28824, + 34207, + 43861, + 23089, + 59708, + 45590, + 34075, + 18150, + 53710, + 36082, + 930, + 44741, + 11813, + 15761, + 35221, + 48141, + 44883, + 21446, + 33208, + 39, + 37496, + 30451, + 4607, + 56701, + 39907, + 46820, + 652, + 58110, + 47751, + 5326, + 38537, + 33388, + 54705, + 38837, + 14019, + 7857, + 30197, + 43521, + 9317, + 59919, + 2707, + 54583, + 47097, + 18482, + 51767, + 48029, + 60788, + 25767, + 55888, + 17343, + 45811, + 34023, + 51267, + 15669, + 39592, + 49017, + 22461, + 31678, + 19977, + 6952, + 1244, + 43134, + 63105, + 16121, + 9865, + 36113, + 55106, + 36049, + 12747, + 51184, + 16424, + 17888, + 23618, + 54041, + 6113, + 9433, + 47625, + 40924, + 13323, + 19935, + 62075, + 12577, + 2647, + 52068, + 47445, + 57153, + 6348, + 22094, + 14631, + 58131, + 4873, + 34415, + 61015, + 10748, + 4452, + 55338, + 52445, + 61227, + 47085, + 2935, + 5922, + 3987, + 46999, + 50, + 34025, + 42895, + 20073, + 42951, + 29599, + 27317, + 4463, + 28941, + 6454, + 36623, + 44494, + 32025, + 34082, + 47144, + 61830, + 22527, + 51991, + 16782, + 16309, + 5531, + 28427, + 25175, + 42161, + 33194, + 1498, + 1237, + 54681, + 17984, + 19917, + 56193, + 5679, + 18870, + 64909, + 38279, + 34857, + 58908, + 24784, + 48116, + 1720, + 41325, + 25377, + 46422, + 8474, + 21112, + 48948, + 49314, + 63143, + 20257, + 4349, + 37087, + 25290, + 23948, + 20372, + 18277, + 47153, + 12566, + 56725, + 50368, + 36326, + 41158, + 11988, + 3705, + 26592, + 20698, + 31693, + 51873, + 18347, + 10142, + 21029, + 13811, + 45513, + 1028, + 27117, + 19503, + 58574, + 55006, + 50595, + 13613, + 58994, + 46119, + 9891, + 59640, + 35602, + 8752, + 4200, + 36305, + 63167, + 44903, + 62623, + 42355, + 24496, + 25383, + 16968, + 12632, + 22433, + 32436, + 6218, + 29476, + 2103, + 52704, + 61772, + 4678, + 8232, + 9946, + 61997, + 21419, + 32803, + 54388, + 54417, + 8572, + 31161, + 44116, + 25248, + 24928, + 38619, + 47094, + 60085, + 43128, + 15296, + 51329, + 14662, + 47596, + 24025, + 1573, + 18979, + 1827, + 17339, + 24830, + 25379, + 7461, + 9746, + 1279, + 6930, + 30126, + 1900, + 50078, + 51591, + 20407, + 58345, + 49153, + 23820, + 49492, + 56791, + 37788, + 45047, + 5625, + 6908, + 43132, + 60113, + 18883, + 4598, + 26701, + 21788, + 13740, + 15843, + 26812, + 59568, + 15595, + 63379, + 37906, + 28997, + 21795, + 10917, + 21043, + 45080, + 41629, + 56597, + 54562, + 60007, + 26733, + 1529, + 3245, + 22899, + 58512, + 41131, + 12938, + 29529, + 790, + 57334, + 52959, + 8039, + 10877, + 39638, + 15116, + 47498, + 33448, + 41258, + 57807, + 23704, + 26249, + 14006, + 3296, + 54178, + 42948, + 36921, + 60222, + 1498, + 26309, + 12296, + 37353, + 51104, + 51357, + 58944, + 63426, + 49972, + 53843, + 15211, + 49878, + 30697, + 24416, + 63384, + 60359, + 49061, + 55707, + 29308, + 20909, + 23091, + 13975, + 30869, + 45996, + 51054, + 29066, + 18259, + 12840, + 61188, + 47333, + 8544, + 8605, + 43127, + 64082, + 10679, + 31561, + 31300, + 25315, + 16006, + 33618, + 12051, + 48222, + 51007, + 12049, + 42545, + 24104, + 63, + 7427, + 40488, + 52533, + 62844, + 59719, + 48016, + 43727, + 31839, + 29518, + 43534, + 48336, + 13950, + 311, + 15400, + 21672, + 28793, + 14128, + 6055, + 1982, + 22352, + 1105, + 24164, + 40981, + 11076, + 13331, + 41351, + 2569, + 59039, + 3661, + 33470, + 9672, + 18555, + 63142, + 64212, + 31631, + 7532, + 27179, + 50720, + 252, + 34998, + 3414, + 47345, + 15386, + 47599, + 7250, + 21733, + 32651, + 53492, + 35800, + 53563, + 37705, + 47625, + 48649, + 16936, + 48712, + 56451, + 24824, + 15493, + 1736, + 47142, + 48076, + 57283, + 64302, + 410, + 34557, + 50129, + 45973, + 48262, + 59, + 65321, + 60215, + 32418, + 61796, + 2156, + 41311, + 18151, + 17428, + 12752, + 48904, + 51218, + 33300, + 49084, + 36782, + 12864, + 56125, + 51576, + 64830, + 19247, + 2523, + 9183, + 41967, + 33871, + 5871, + 18751, + 21886, + 40871, + 54866, + 2155, + 12162, + 52986, + 56382, + 22281, + 49099, + 25331, + 48378, + 12558, + 37317, + 54480, + 3556, + 26938, + 2095, + 48132, + 63632, + 24531, + 34770, + 54892, + 63104, + 16118, + 57965, + 55686, + 41650, + 49419, + 13665, + 55920, + 57296, + 40669, + 58065, + 2408, + 25158, + 3334, + 27070, + 32904, + 43626, + 33828, + 7886, + 36222, + 26764, + 41978, + 18925, + 22802, + 56323, + 45439, + 21115, + 7288, + 7295, + 27023, + 10224, + 9905, + 9350, + 34086, + 62392, + 23035, + 37475, + 34501, + 50682, + 64705, + 22732, + 24274, + 35123, + 32146, + 9098, + 24826, + 5120, + 48868, + 63089, + 14934, + 63730, + 54254, + 48855, + 45472, + 32391, + 50840, + 24246, + 51120, + 12441, + 33386, + 37770, + 57624, + 62384, + 39783, + 58238, + 57921, + 22174, + 44424, + 11978, + 57636, + 61682, + 49653, + 53508, + 41486, + 53140, + 61955, + 9543, + 36618, + 58175, + 26735, + 48012, + 38758, + 50018, + 29709, + 41306, + 5112, + 864, + 41258, + 22916, + 58110, + 42349, + 39301, + 49160, + 21306, + 30902, + 21385, + 10774, + 42392, + 24415, + 51447, + 30880, + 9787, + 60737, + 24363, + 31498, + 18149, + 37369, + 9279, + 34599, + 31362, + 39967, + 50950, + 60175, + 51140, + 12531, + 31435, + 38705, + 36830, + 46755, + 28174, + 22662, + 18698, + 53604, + 29837, + 30844, + 52277, + 24988, + 17476, + 46065, + 32154, + 17474, + 55530, + 23964, + 30299, + 56608, + 42825, + 46834, + 43378, + 34946, + 31676, + 632, + 36130, + 53022, + 37770, + 60586, + 47238, + 31161, + 33671, + 39462, + 20143, + 4227, + 9029, + 48093, + 13922, + 43278, + 54078, + 23014, + 59143, + 48289, + 47082, + 4392, + 63256, + 25903, + 9892, + 44123, + 8794, + 13861, + 9175, + 23499, + 61510, + 37123, + 3619, + 46050, + 63216, + 64534, + 16915, + 56527, + 38186, + 31459, + 62748, + 33393, + 20108, + 53935, + 38719, + 43411, + 55146, + 42377, + 18593, + 12302, + 33074, + 33596, + 11655, + 41281, + 6093, + 6027, + 12926, + 25881, + 11699, + 29944, + 42485, + 36770, + 6990, + 35809, + 58028, + 317, + 15734, + 55327, + 53230, + 19916, + 29269, + 28806, + 28839, + 28112, + 28967, + 24079, + 17353, + 7241, + 54231, + 52596, + 21831, + 53951, + 8366, + 25439, + 32464, + 28916, + 30610, + 52001, + 37562, + 26194, + 11020, + 53627, + 43637, + 17217, + 61208, + 42442, + 36605, + 39358, + 26956, + 65521, + 36380, + 13186, + 60051, + 1166, + 29512, + 64238, + 31036, + 28171, + 46836, + 28716, + 13881, + 31717, + 55967, + 10042, + 20170, + 10192, + 26014, + 22256, + 49170, + 63151, + 27490, + 22790, + 11789, + 34091, + 63798, + 26412, + 14129, + 9040, + 42915, + 4910, + 15932, + 25617, + 38852, + 1658, + 49874, + 17488, + 31664, + 17024, + 45541, + 20221, + 30620, + 42536, + 31804, + 56813, + 9916, + 49780, + 37495, + 42413, + 32651, + 46408, + 26204, + 62540, + 10014, + 35641, + 33364, + 22833, + 37409, + 58016, + 7648, + 55762, + 2749, + 56899, + 38693, + 4635, + 21035, + 35403, + 42291, + 54843, + 45829, + 61968, + 3319, + 34487, + 25443, + 28686, + 22546, + 26515, + 4475, + 26814, + 29646, + 17521, + 24614, + 18918, + 45159, + 28350, + 19745, + 3583, + 46051, + 12636, + 30687, + 14222, + 33003, + 32188, + 3347, + 3744, + 43566, + 32165, + 63187, + 2102, + 54019, + 57118, + 24450, + 64842, + 24617, + 5565, + 17327, + 36103, + 10293, + 43546, + 54199, + 26247, + 19697, + 19655, + 27155, + 48289, + 22394, + 37821, + 13156, + 25452, + 26368, + 15291, + 12543, + 61365, + 8972, + 45318, + 49182, + 26950, + 42633, + 28168, + 28182, + 44319, + 11025, + 58634, + 6277, + 49627, + 50136, + 29827, + 52949, + 54242, + 5555, + 46521, + 55931, + 9169, + 13415, + 25548, + 47440, + 16811, + 1261, + 15027, + 430, + 34080, + 64392, + 63544, + 45054, + 37590, + 63821, + 15011, + 40781, + 49130, + 48506, + 49125, + 35101, + 34431, + 44295, + 44294, + 21850, + 11974, + 11973, + 11972, + 11971, + 10162, + 10161, + 10160, + 10167, + 10166, + 29801, + 13302, + 31127, + 20397, + 35681, + 42194, + 39743, + 54396, + 24907, + 28769, + 29614, + 27844, + 28917, + 29202, + 29629, + 28276, + 28311, + 48769, + 42478, + 58513, + 5395, + 6633, + 28896, + 29350, + 36866, + 4062, + 8975, + 37554, + 16161, + 29036, + 29616, + 58714, + 54192, + 44190, + 6267, + 948, + 49398, + 13641, + 3076, + 35449, + 33911, + 53666, + 31066, + 45853, + 37222, + 34070, + 58788, + 63028, + 1107, + 33832, + 59659, + 37242, + 23000, + 3220, + 3221, + 31953, + 4101, + 56200, + 58695, + 3412, + 16232, + 508, + 65300, + 36258, + 30211, + 20645, + 17805, + 1247, + 38361, + 21266, + 28770, + 36656, + 50590, + 61874, + 27105, + 36021, + 43632, + 29987, + 22179, + 42910, + 28869, + 28565, + 31192, + 30650, + 44851, + 62134, + 42372, + 30626, + 57326, + 38128, + 56679, + 28463, + 9651, + 23370, + 60824, + 18837, + 13551, + 31291, + 59319, + 37643, + 18549, + 51642, + 23383, + 63506, + 13164, + 58665, + 9854, + 58763, + 46015, + 32345, + 38478, + 3074, + 60666, + 36993, + 32145, + 62412, + 2526, + 1502, + 22597, + 24833, + 41037, + 2103, + 823, + 14395, + 26138, + 3266, + 28844, + 7695, + 7502, + 9315, + 12265, + 3820, + 31764, + 62526, + 17727, + 20288, + 48106, + 8751, + 36323, + 23018, + 35902, + 7482, + 10088, + 42336, + 51779, + 56490, + 27706, + 35844, + 43587, + 29540, + 55144, + 24057, + 29484, + 62171, + 64927, + 29149, + 11381, + 16167, + 5271, + 21684, + 27247, + 29525, + 59102, + 22731, + 39921, + 48979, + 58363, + 27508, + 60033, + 45004, + 35326, + 53527, + 31913, + 20817, + 27320, + 45058, + 9155, + 42220, + 30153, + 12628, + 2964, + 26091, + 14336, + 7296, + 58095, + 54964, + 42645, + 61004, + 51119, + 12924, + 64804, + 56940, + 39742, + 43771, + 65231, + 40373, + 42966, + 22022, + 46234, + 7756, + 58887, + 45084, + 34099, + 54739, + 62902, + 17827, + 21326, + 19849, + 30030, + 20225, + 16219, + 16048, + 15510, + 13692, + 8378, + 40358, + 1655, + 34231, + 17275, + 56819, + 28622, + 3370, + 22246, + 13826, + 64883, + 57443, + 38936, + 53888, + 26933, + 18576, + 11492, + 32172, + 8181, + 64511, + 61615, + 40458, + 48210, + 23451, + 1254, + 12377, + 42511, + 21920, + 49385, + 48515, + 38700, + 38006, + 6172, + 24433, + 41004, + 38005, + 27998, + 18215, + 42457, + 35469, + 21895, + 37163, + 28705, + 52356, + 46787, + 17447, + 63007, + 1521, + 21330, + 1918, + 15393, + 28443, + 54542, + 39576, + 29597, + 17936, + 33657, + 64155, + 22674, + 38498, + 18610, + 29178, + 5571, + 4214, + 27443, + 30009, + 33823, + 277, + 32270, + 35717, + 7909, + 26077, + 30590, + 59093, + 2986, + 10282, + 37539, + 8273, + 7471, + 46517, + 49272, + 48881, + 45532, + 31233, + 47441, + 38453, + 37631, + 11880, + 58224, + 34839, + 40471, + 23831, + 11352, + 48739, + 16643, + 26508, + 17736, + 27462, + 8200, + 36630, + 7063, + 32075, + 45668, + 11587, + 46490, + 55571, + 17379, + 35813, + 47097, + 47621, + 56139, + 1377, + 49980, + 15803, + 42885, + 28652, + 25220, + 14976, + 17430, + 53369, + 22272, + 57026, + 65204, + 30225, + 32588, + 37192, + 55727, + 43510, + 24840, + 58951, + 27670, + 53507, + 23212, + 21297, + 36552, + 17796, + 34457, + 10482, + 28524, + 2891, + 42352, + 61084, + 2524, + 52253, + 48675, + 56934, + 21849, + 52194, + 38130, + 13421, + 5045, + 52267, + 37125, + 51510, + 65350, + 46162, + 23217, + 24196, + 59764, + 19708, + 19933, + 28038, + 16988, + 4077, + 11672, + 29911, + 60348, + 45456, + 28797, + 12287, + 23447, + 22656, + 35400, + 7062, + 35336, + 43045, + 3721, + 45080, + 32888, + 127, + 59595, + 57753, + 51941, + 50077, + 54100, + 51335, + 1559, + 26391, + 849, + 41600, + 32527, + 31069, + 13815, + 32578, + 8347, + 40439, + 59937, + 63726, + 27707, + 31918, + 26422, + 25150, + 29576, + 52582, + 49251, + 12171, + 10164, + 59294, + 12220, + 5748, + 26188, + 51165, + 26865, + 50927, + 53019, + 8832, + 65230, + 3920, + 53336, + 29480, + 45219, + 37047, + 56591, + 20905, + 27771, + 43068, + 44053, + 58374, + 19602, + 47186, + 18710, + 24787, + 14153, + 28156, + 60508, + 41475, + 8038, + 57334, + 2955, + 17427, + 4060, + 50660, + 10306, + 56093, + 18061, + 47368, + 46433, + 37668, + 63159, + 12969, + 33714, + 33773, + 22845, + 60306, + 43755, + 33478, + 23054, + 2625, + 1946, + 4181, + 13058, + 3469, + 56261, + 18922, + 60658, + 41693, + 52150, + 1593, + 21702, + 59337, + 62623, + 27696, + 64935, + 43560, + 608, + 42095, + 12983, + 11352, + 5202, + 8029, + 21989, + 23018, + 28538, + 50450, + 61941, + 41487, + 47440, + 65290, + 35428, + 44547, + 45057, + 19836, + 31380, + 8911, + 10385, + 16841, + 10525, + 18165, + 12055, + 38824, + 41516, + 39904, + 29847, + 8021, + 57656, + 59979, + 11074, + 61777, + 35264, + 44644, + 63189, + 42829, + 10753, + 31481, + 56268, + 37938, + 37090, + 65219, + 31942, + 38071, + 53480, + 16497, + 22801, + 62556, + 23305, + 38435, + 56304, + 41306, + 15944, + 50664, + 22207, + 5568, + 14045, + 847, + 26154, + 3411, + 17299, + 57910, + 9351, + 38394, + 62115, + 42325, + 33640, + 55843, + 9315, + 22049, + 60960, + 35221, + 61898, + 55943, + 57721, + 42496, + 9297, + 19487, + 64122, + 35420, + 42270, + 56268, + 4218, + 49523, + 61444, + 23240, + 3055, + 28351, + 9541, + 45227, + 43389, + 34104, + 27675, + 42077, + 50512, + 11955, + 16103, + 3540, + 32978, + 24794, + 62219, + 27839, + 6521, + 24793, + 24792, + 23596, + 54030, + 55668, + 40635, + 28886, + 21059, + 40593, + 26711, + 18819, + 25823, + 35497, + 56809, + 28806, + 27275, + 16326, + 23579, + 2864, + 35812, + 59676, + 38886, + 18974, + 4649, + 64671, + 55583, + 24887, + 50544, + 61409, + 56844, + 44673, + 27674, + 4353, + 15581, + 64583, + 61076, + 35161, + 48812, + 23803, + 32519, + 29181, + 52851, + 30154, + 49177, + 34521, + 23304, + 18808, + 42325, + 22195, + 3645, + 65331, + 32674, + 63815, + 52947, + 33541, + 62009, + 48856, + 64688, + 52937, + 59402, + 666, + 20766, + 43169, + 41029, + 64374, + 3610, + 61641, + 37843, + 40880, + 45833, + 56919, + 29646, + 28701, + 52497, + 16225, + 47623, + 6340, + 39076, + 55315, + 22771, + 29588, + 53172, + 11020, + 56321, + 45642, + 26245, + 28992, + 30483, + 18510, + 21680, + 47871, + 21330, + 49378, + 23422, + 57274, + 55640, + 18457, + 833, + 6910, + 4497, + 4667, + 57065, + 33080, + 37664, + 29087, + 17744, + 34453, + 14068, + 19934, + 47845, + 19350, + 22979, + 23327, + 21958, + 25262, + 41345, + 51445, + 1016, + 60871, + 18308, + 49859, + 10219, + 18756, + 59566, + 35798, + 28847, + 12594, + 31817, + 41705, + 57264, + 46871, + 53574, + 37072, + 58420, + 17436, + 31936, + 55696, + 28198, + 35723, + 20132, + 49588, + 19619, + 23372, + 20111, + 24252, + 32641, + 35548, + 35779, + 56865, + 13008, + 59185, + 22620, + 77, + 3546, + 8728, + 39751, + 9838, + 56027, + 2675, + 32974, + 267, + 35566, + 37090, + 43951, + 11056, + 11057, + 41586, + 15394, + 5862, + 39108, + 32804, + 21929, + 17939, + 45741, + 50767, + 15512, + 860, + 30911, + 14263, + 33714, + 49763, + 4146, + 25518, + 62108, + 12411, + 34968, + 14912, + 33507, + 20499, + 30957, + 56459, + 40590, + 33135, + 8797, + 40335, + 31105, + 4921, + 21397, + 56967, + 487, + 2936, + 25451, + 59600, + 61891, + 37665, + 52303, + 59552, + 4787, + 19359, + 21403, + 35028, + 54276, + 15235, + 16424, + 20995, + 26557, + 6711, + 20472, + 13524, + 22974, + 55613, + 19627, + 19503, + 11294, + 35921, + 222, + 13160, + 3501, + 50273, + 26517, + 36184, + 45349, + 37048, + 2417, + 58843, + 59075, + 28361, + 47017, + 19776, + 23447, + 16559, + 18173, + 6092, + 25012, + 8781, + 64668, + 28977, + 21939, + 21029, + 64447, + 50424, + 19531, + 28298, + 23114, + 20314, + 41476, + 54024, + 21225, + 9172, + 49717, + 40239, + 52882, + 16857, + 39295, + 47153, + 6237, + 26807, + 63323, + 26803, + 54856, + 57470, + 23493, + 52926, + 12367, + 45235, + 13135, + 62095, + 48219, + 28892, + 28582, + 9598, + 270, + 28576, + 64099, + 8580, + 39467, + 13341, + 10618, + 14958, + 50246, + 25323, + 18985, + 15774, + 64895, + 41091, + 15496, + 41900, + 1052, + 13922, + 27401, + 63959, + 29376, + 37053, + 17066, + 38003, + 46159, + 35683, + 63473, + 36074, + 10337, + 43340, + 55309, + 42131, + 53427, + 4050, + 38809, + 6996, + 22204, + 4771, + 1385, + 10452, + 63412, + 13949, + 27306, + 37153, + 51690, + 45183, + 14649, + 8900, + 1267, + 21590, + 7173, + 24965, + 60974, + 54305, + 57410, + 59455, + 60724, + 19302, + 61269, + 35563, + 39046, + 56286, + 33650, + 18060, + 46149, + 62038, + 32792, + 27321, + 34221, + 12201, + 7386, + 47838, + 45109, + 50919, + 20519, + 21216, + 16994, + 29261, + 13536, + 34484, + 29126, + 24241, + 58312, + 3131, + 23677, + 54841, + 8315, + 6541, + 63532, + 16542, + 34577, + 38176, + 12587, + 41412, + 26223, + 34432, + 40959, + 30736, + 53667, + 588, + 31800, + 13168, + 11753, + 50258, + 27709, + 34870, + 16145, + 43442, + 52933, + 29309, + 11323, + 58141, + 1672, + 515, + 58156, + 35525, + 13143, + 18815, + 14406, + 56288, + 47856, + 41450, + 10967, + 25556, + 61963, + 49135, + 37634, + 31010, + 28186, + 38659, + 55455, + 61072, + 33537, + 7087, + 60019, + 16683, + 58983, + 39658, + 41709, + 43994, + 49787, + 49653, + 18348, + 24650, + 54561, + 56030, + 14176, + 575, + 49501, + 17454, + 44680, + 14540, + 14391, + 26231, + 6258, + 36506, + 34308, + 47785, + 5804, + 63566, + 43682, + 44259, + 17084, + 62153, + 6587, + 18521, + 41972, + 44917, + 16395, + 8941, +}; + +const qstr_len_t mp_qstr_frozen_const_lengths[] = { + 14, + 12, + 5, + 6, + 11, + 4, + 7, + 3, + 7, + 5, + 13, + 14, + 5, + 13, + 6, + 14, + 5, + 13, + 8, + 16, + 15, + 23, + 20, + 28, + 7, + 15, + 6, + 13, + 6, + 20, + 6, + 20, + 20, + 8, + 22, + 4, + 18, + 19, + 3, + 17, + 7, + 21, + 3, + 17, + 21, + 20, + 5, + 10, + 23, + 10, + 23, + 17, + 30, + 10, + 23, + 11, + 24, + 19, + 32, + 19, + 32, + 22, + 35, + 11, + 24, + 16, + 29, + 15, + 28, + 11, + 24, + 16, + 29, + 20, + 33, + 18, + 31, + 11, + 24, + 16, + 29, + 22, + 35, + 15, + 28, + 12, + 6, + 13, + 10, + 4, + 11, + 8, + 15, + 10, + 8, + 15, + 13, + 7, + 14, + 2, + 9, + 7, + 17, + 24, + 4, + 22, + 28, + 8, + 26, + 26, + 5, + 23, + 2, + 20, + 25, + 31, + 29, + 29, + 26, + 2, + 20, + 25, + 31, + 29, + 29, + 26, + 5, + 15, + 4, + 11, + 8, + 20, + 7, + 19, + 18, + 8, + 15, + 4, + 4, + 9, + 7, + 12, + 9, + 22, + 26, + 18, + 31, + 19, + 11, + 24, + 16, + 29, + 19, + 32, + 14, + 27, + 8, + 21, + 21, + 9, + 22, + 7, + 20, + 20, + 14, + 27, + 12, + 25, + 7, + 20, + 9, + 30, + 28, + 11, + 32, + 6, + 27, + 7, + 28, + 27, + 10, + 31, + 4, + 25, + 15, + 36, + 29, + 10, + 31, + 7, + 28, + 9, + 30, + 12, + 25, + 14, + 27, + 7, + 20, + 11, + 11, + 23, + 24, + 25, + 4, + 16, + 8, + 20, + 17, + 20, + 22, + 17, + 19, + 23, + 25, + 18, + 16, + 10, + 22, + 19, + 10, + 11, + 22, + 15, + 10, + 11, + 27, + 14, + 30, + 19, + 35, + 13, + 29, + 12, + 28, + 26, + 32, + 20, + 36, + 9, + 25, + 36, + 15, + 31, + 42, + 38, + 7, + 39, + 13, + 45, + 12, + 28, + 35, + 10, + 26, + 15, + 31, + 13, + 29, + 11, + 27, + 4, + 9, + 16, + 26, + 21, + 20, + 30, + 11, + 21, + 17, + 27, + 13, + 23, + 17, + 22, + 16, + 29, + 16, + 29, + 18, + 31, + 18, + 31, + 30, + 43, + 22, + 35, + 21, + 34, + 36, + 49, + 23, + 36, + 20, + 33, + 36, + 49, + 34, + 47, + 20, + 33, + 20, + 33, + 16, + 29, + 22, + 35, + 17, + 30, + 25, + 38, + 19, + 32, + 13, + 26, + 19, + 32, + 16, + 29, + 15, + 28, + 17, + 30, + 15, + 28, + 17, + 30, + 7, + 12, + 24, + 27, + 20, + 19, + 20, + 8, + 29, + 12, + 22, + 14, + 27, + 15, + 28, + 25, + 24, + 22, + 35, + 27, + 20, + 18, + 39, + 27, + 10, + 31, + 23, + 44, + 11, + 32, + 26, + 15, + 36, + 26, + 19, + 13, + 26, + 17, + 20, + 15, + 36, + 15, + 36, + 13, + 34, + 17, + 38, + 27, + 8, + 20, + 3, + 8, + 7, + 16, + 23, + 23, + 16, + 15, + 16, + 16, + 8, + 13, + 25, + 21, + 35, + 25, + 28, + 21, + 22, + 20, + 22, + 26, + 21, + 15, + 29, + 15, + 29, + 20, + 28, + 11, + 4, + 16, + 23, + 11, + 23, + 14, + 26, + 14, + 26, + 18, + 12, + 24, + 16, + 19, + 7, + 19, + 15, + 35, + 5, + 25, + 24, + 44, + 17, + 37, + 18, + 38, + 22, + 42, + 18, + 38, + 23, + 43, + 18, + 38, + 18, + 38, + 3, + 15, + 25, + 11, + 27, + 11, + 27, + 5, + 21, + 27, + 14, + 30, + 13, + 29, + 25, + 12, + 28, + 22, + 24, + 16, + 32, + 25, + 10, + 36, + 13, + 39, + 13, + 39, + 10, + 36, + 18, + 39, + 9, + 44, + 7, + 42, + 9, + 44, + 19, + 54, + 8, + 20, + 16, + 15, + 15, + 23, + 22, + 11, + 27, + 25, + 17, + 24, + 27, + 18, + 25, + 28, + 16, + 17, + 24, + 27, + 10, + 19, + 16, + 6, + 11, + 13, + 25, + 23, + 19, + 18, + 21, + 19, + 7, + 12, + 6, + 19, + 24, + 20, + 19, + 10, + 23, + 30, + 33, + 20, + 20, + 5, + 10, + 22, + 25, + 18, + 17, + 18, + 8, + 13, + 23, + 37, + 20, + 24, + 19, + 9, + 23, + 25, + 39, + 26, + 40, + 34, + 5, + 10, + 8, + 19, + 17, + 17, + 17, + 28, + 6, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 7, + 6, + 25, + 29, + 16, + 10, + 15, + 15, + 8, + 3, + 9, + 7, + 12, + 13, + 12, + 7, + 14, + 8, + 3, + 13, + 16, + 10, + 21, + 14, + 13, + 5, + 10, + 9, + 20, + 13, + 14, + 6, + 2, + 6, + 3, + 6, + 5, + 8, + 11, + 18, + 16, + 7, + 11, + 14, + 11, + 16, + 15, + 18, + 16, + 13, + 13, + 4, + 4, + 5, + 9, + 6, + 9, + 10, + 10, + 5, + 6, + 3, + 3, + 5, + 2, + 2, + 7, + 2, + 5, + 2, + 8, + 4, + 13, + 12, + 14, + 10, + 7, + 4, + 4, + 5, + 5, + 5, + 8, + 5, + 6, + 11, + 3, + 4, + 8, + 9, + 8, + 8, + 9, + 7, + 8, + 4, + 7, + 6, + 3, + 4, + 4, + 7, + 13, + 14, + 18, + 12, + 9, + 9, + 13, + 10, + 11, + 2, + 15, + 6, + 7, + 11, + 9, + 11, + 9, + 10, + 5, + 10, + 6, + 6, + 5, + 6, + 18, + 13, + 19, + 12, + 6, + 4, + 17, + 19, + 16, + 26, + 18, + 23, + 7, + 10, + 11, + 13, + 15, + 18, + 19, + 19, + 6, + 13, + 20, + 16, + 17, + 10, + 12, + 7, + 15, + 9, + 16, + 12, + 11, + 4, + 3, + 8, + 7, + 2, + 17, + 13, + 1, + 4, + 1, + 1, + 1, + 14, + 2, + 2, + 2, + 2, + 13, + 6, + 3, + 4, + 2, + 6, + 18, + 16, + 6, + 6, + 12, + 11, + 7, + 8, + 4, + 6, + 6, + 11, + 16, + 15, + 4, + 10, + 12, + 14, + 12, + 6, + 6, + 6, + 8, + 8, + 13, + 17, + 15, + 4, + 3, + 3, + 10, + 6, + 15, + 15, + 4, + 13, + 17, + 7, + 4, + 3, + 9, + 11, + 9, + 10, + 3, + 3, + 20, + 18, + 9, + 9, + 9, + 11, + 12, + 16, + 17, + 8, + 5, + 13, + 5, + 19, + 19, + 18, + 12, + 19, + 28, + 10, + 11, + 10, + 25, + 23, + 4, + 7, + 5, + 12, + 7, + 7, + 17, + 22, + 23, + 10, + 14, + 12, + 9, + 12, + 12, + 12, + 15, + 9, + 8, + 10, + 16, + 23, + 8, + 14, + 17, + 23, + 13, + 1, + 11, + 13, + 7, + 7, + 3, + 4, + 8, + 6, + 15, + 6, + 7, + 25, + 16, + 13, + 19, + 10, + 10, + 1, + 17, + 17, + 6, + 13, + 21, + 21, + 11, + 6, + 18, + 18, + 7, + 22, + 20, + 13, + 11, + 10, + 9, + 10, + 10, + 3, + 24, + 20, + 10, + 12, + 3, + 12, + 13, + 13, + 11, + 18, + 16, + 11, + 10, + 4, + 3, + 24, + 16, + 18, + 23, + 5, + 14, + 14, + 4, + 26, + 9, + 11, + 15, + 17, + 15, + 22, + 20, + 23, + 15, + 23, + 15, + 9, + 14, + 13, + 15, + 13, + 16, + 17, + 10, + 18, + 15, + 11, + 11, + 11, + 20, + 21, + 22, + 26, + 15, + 15, + 26, + 23, + 17, + 6, + 7, + 4, + 11, + 13, + 11, + 6, + 12, + 16, + 24, + 24, + 21, + 9, + 6, + 13, + 13, + 16, + 5, + 14, + 28, + 7, + 8, + 9, + 14, + 13, + 12, + 14, + 17, + 15, + 18, + 12, + 12, + 16, + 6, + 14, + 14, + 15, + 12, + 6, + 4, + 8, + 4, + 11, + 18, + 6, + 7, + 3, + 5, + 9, + 5, + 13, + 4, + 4, + 20, + 18, + 13, + 29, + 27, + 5, + 14, + 10, + 8, + 7, + 7, + 25, + 7, + 31, + 13, + 29, + 11, + 29, + 11, + 26, + 8, + 32, + 15, + 10, + 10, + 14, + 14, + 12, + 10, + 11, + 9, + 8, + 7, + 13, + 8, + 16, + 7, + 8, + 7, + 14, + 7, + 11, + 22, + 14, + 2, + 11, + 13, + 7, + 7, + 4, + 20, + 21, + 20, + 14, + 8, + 10, + 10, + 1, + 23, + 7, + 8, + 7, + 23, + 4, + 5, + 12, + 9, + 9, + 16, + 17, + 19, + 9, + 10, + 21, + 7, + 18, + 16, + 3, + 26, + 28, + 15, + 21, + 10, + 8, + 19, + 18, + 10, + 4, + 27, + 19, + 8, + 7, + 9, + 6, + 13, + 26, + 12, + 15, + 10, + 7, + 10, + 8, + 13, + 9, + 7, + 9, + 12, + 11, + 7, + 14, + 5, + 5, + 4, + 11, + 11, + 17, + 4, + 18, + 12, + 11, + 5, + 17, + 13, + 13, + 14, + 14, + 13, + 14, + 12, + 11, + 16, + 12, + 17, + 13, + 15, + 12, + 13, + 14, + 21, + 11, + 12, + 15, + 17, + 21, + 20, + 15, + 13, + 13, + 13, + 14, + 17, + 15, + 16, + 16, + 16, + 17, + 12, + 13, + 12, + 18, + 12, + 21, + 17, + 14, + 18, + 28, + 18, + 15, + 11, + 22, + 21, + 34, + 14, + 10, + 10, + 13, + 13, + 13, + 16, + 1, + 8, + 16, + 27, + 13, + 21, + 12, + 12, + 18, + 32, + 12, + 16, + 17, + 29, + 7, + 28, + 10, + 33, + 11, + 19, + 32, + 18, + 18, + 17, + 12, + 5, + 5, + 8, + 4, + 8, + 17, + 16, + 21, + 6, + 9, + 9, + 16, + 11, + 12, + 7, + 18, + 11, + 16, + 13, + 29, + 23, + 10, + 10, + 21, + 12, + 14, + 23, + 30, + 39, + 38, + 19, + 19, + 18, + 8, + 8, + 13, + 7, + 13, + 8, + 13, + 13, + 18, + 19, + 12, + 15, + 20, + 21, + 20, + 13, + 20, + 16, + 16, + 16, + 13, + 16, + 20, + 13, + 20, + 13, + 19, + 22, + 14, + 14, + 20, + 24, + 13, + 17, + 23, + 19, + 9, + 5, + 10, + 18, + 22, + 12, + 17, + 14, + 7, + 14, + 10, + 12, + 25, + 7, + 14, + 13, + 18, + 20, + 11, + 12, + 20, + 16, + 13, + 8, + 24, + 15, + 14, + 18, + 23, + 6, + 7, + 12, + 13, + 9, + 5, + 5, + 13, + 17, + 22, + 4, + 8, + 11, + 3, + 15, + 14, + 15, + 21, + 14, + 11, + 10, + 16, + 12, + 14, + 14, + 11, + 16, + 19, + 11, + 19, + 9, + 11, + 18, + 17, + 14, + 8, + 10, + 11, + 6, + 9, + 24, + 11, + 11, + 23, + 16, + 9, + 12, + 16, + 13, + 10, + 17, + 19, + 7, + 6, + 7, + 20, + 6, + 6, + 12, + 9, + 7, + 15, + 29, + 29, + 16, + 25, + 25, + 32, + 23, + 34, + 34, + 36, + 34, + 19, + 24, + 9, + 18, + 19, + 22, + 19, + 17, + 18, + 8, + 9, + 9, + 10, + 10, + 12, + 19, + 12, + 11, + 10, + 3, + 15, + 16, + 21, + 17, + 12, + 9, + 19, + 15, + 5, + 15, + 21, + 22, + 21, + 13, + 21, + 31, + 31, + 9, + 25, + 21, + 21, + 16, + 21, + 21, + 29, + 29, + 20, + 20, + 18, + 22, + 26, + 25, + 25, + 29, + 29, + 10, + 25, + 25, + 27, + 18, + 15, + 22, + 22, + 22, + 26, + 6, + 8, + 8, + 7, + 4, + 16, + 21, + 20, + 19, + 17, + 15, + 14, + 11, + 10, + 22, + 22, + 27, + 27, + 29, + 12, + 26, + 11, + 31, + 10, + 24, + 18, + 11, + 10, + 16, + 15, + 14, + 4, + 9, + 10, + 12, + 3, + 11, + 7, + 14, + 14, + 21, + 17, + 8, + 5, + 17, + 26, + 7, + 12, + 12, + 7, + 26, + 33, + 16, + 11, + 13, + 13, + 26, + 7, + 6, + 6, + 12, + 12, + 7, + 7, + 3, + 8, + 6, + 3, + 6, + 7, + 5, + 3, + 27, + 2, + 3, + 35, + 8, + 10, + 9, + 35, + 2, + 4, + 4, + 5, + 38, + 5, + 5, + 27, + 32, + 4, + 4, + 4, + 31, + 12, + 13, + 8, + 12, + 16, + 12, + 27, + 13, + 14, + 15, + 8, + 5, + 32, + 12, + 15, + 13, + 13, + 12, + 16, + 12, + 36, + 7, + 8, + 9, + 13, + 14, + 34, + 14, + 6, + 27, + 7, + 8, + 6, + 10, + 11, + 11, + 12, + 12, + 32, + 6, + 12, + 17, + 38, + 7, + 6, + 7, + 31, + 5, + 7, + 7, + 24, + 16, + 12, + 14, + 12, + 9, + 5, + 8, + 12, + 17, + 18, + 13, + 17, + 14, + 17, + 11, + 4, + 7, + 22, + 14, + 23, + 17, + 14, + 10, + 8, + 15, + 8, + 6, + 26, + 10, + 10, + 19, + 11, + 23, + 18, + 13, + 21, + 28, + 8, + 14, + 12, + 11, + 23, + 23, + 25, + 28, + 9, + 7, + 23, + 26, + 17, + 15, + 21, + 18, + 13, + 21, + 20, + 27, + 7, + 11, + 28, + 18, + 10, + 12, + 9, + 19, + 6, + 3, + 21, + 10, + 7, + 2, + 3, + 3, + 3, + 3, + 12, + 12, + 14, + 14, + 14, + 12, + 15, + 19, + 17, + 33, + 8, + 14, + 7, + 3, + 3, + 4, + 4, + 5, + 23, + 8, + 7, + 3, + 2, + 7, + 7, + 4, + 7, + 4, + 8, + 3, + 3, + 3, + 3, + 5, + 3, + 4, + 7, + 5, + 3, + 3, + 4, + 4, + 8, + 4, + 7, + 3, + 3, + 8, + 3, + 3, + 5, + 3, + 4, + 4, + 5, + 6, + 3, + 4, + 8, + 3, + 3, + 8, + 4, + 8, + 8, + 3, + 2, + 3, + 2, + 4, + 4, + 5, + 10, + 3, + 3, + 8, + 3, + 3, + 3, + 4, + 4, + 6, + 3, + 4, + 4, + 8, + 3, + 3, + 4, + 4, + 8, + 4, + 4, + 8, + 3, + 8, + 3, + 2, + 4, + 3, + 9, + 3, + 4, + 4, + 2, + 5, + 2, + 9, + 3, + 4, + 8, + 4, + 9, + 5, + 6, + 8, + 3, + 2, + 7, + 3, + 10, + 3, + 4, + 4, + 5, + 3, + 8, + 3, + 3, + 7, + 3, + 3, + 5, + 3, + 5, + 3, + 3, + 8, + 3, + 13, + 17, + 9, + 21, + 10, + 22, + 24, + 31, + 33, + 13, + 15, + 6, + 7, + 7, + 12, + 12, + 10, + 12, + 19, + 8, + 16, + 24, + 11, + 13, + 13, + 24, + 22, + 12, + 23, + 16, + 14, + 14, + 14, + 11, + 22, + 12, + 11, + 17, + 19, + 23, + 21, + 16, + 16, + 21, + 12, + 22, + 17, + 21, + 15, + 17, + 24, + 11, + 20, + 24, + 24, + 22, + 13, + 20, + 23, + 8, + 8, + 13, + 12, + 20, + 10, + 5, + 13, + 7, + 5, + 9, + 9, + 10, + 7, + 17, + 6, + 17, + 11, + 16, + 9, + 14, + 18, + 8, + 8, + 5, + 18, + 10, + 18, + 23, + 10, + 8, + 21, + 15, + 16, + 16, + 13, + 12, + 17, + 5, + 16, + 25, + 16, + 8, + 23, + 13, + 24, + 16, + 16, + 18, + 20, + 8, + 20, + 5, + 3, + 6, + 9, + 2, + 2, + 13, + 17, + 11, + 16, + 2, + 8, + 16, + 6, + 16, + 23, + 8, + 15, + 15, + 12, + 6, + 19, + 15, + 1, + 1, + 1, + 12, + 7, + 18, + 8, + 10, + 13, + 20, + 12, + 31, + 12, + 7, + 9, + 13, + 22, + 17, + 14, + 14, + 26, + 9, + 16, + 17, + 15, + 19, + 23, + 21, + 30, + 17, + 9, + 27, + 5, + 13, + 22, + 13, + 16, + 17, + 23, + 11, + 28, + 13, + 24, + 21, + 25, + 5, + 5, + 26, + 20, + 6, + 16, + 13, + 17, + 24, + 16, + 18, + 14, + 13, + 17, + 17, + 13, + 19, + 22, + 17, + 14, + 16, + 15, + 19, + 22, + 24, + 28, + 30, + 37, + 21, + 14, + 25, + 14, + 14, + 7, + 22, + 11, + 8, + 11, + 15, + 15, + 15, + 15, + 17, + 20, + 13, + 9, + 22, + 19, + 25, + 15, + 20, + 19, + 20, + 21, + 17, + 12, + 19, + 13, + 27, + 8, + 19, + 13, + 13, + 11, + 17, + 30, + 13, + 33, + 35, + 20, + 34, + 29, + 6, + 34, + 2, + 3, + 7, + 41, + 40, + 5, + 4, + 5, + 4, + 38, + 30, + 38, + 42, + 16, + 3, + 8, + 18, + 21, + 19, + 14, + 24, + 24, + 16, + 11, + 14, + 19, + 21, + 17, + 15, + 18, + 15, + 17, + 13, + 13, + 15, + 13, + 15, + 17, + 15, + 38, + 6, + 5, + 20, + 19, + 15, + 17, + 19, + 24, + 21, + 32, + 11, + 19, + 22, + 31, + 21, + 17, + 18, + 19, + 29, + 27, + 8, + 7, + 3, + 12, + 11, + 11, + 11, + 11, + 12, + 11, + 11, + 35, + 23, + 9, + 26, + 18, + 17, + 18, + 13, + 19, + 17, + 17, + 18, + 17, + 17, + 13, + 19, + 18, + 39, + 15, + 15, + 28, + 39, + 6, + 7, + 9, + 16, + 29, + 10, + 9, + 18, + 10, + 19, + 19, + 26, + 6, + 15, + 18, + 17, + 34, + 3, + 17, + 15, + 15, + 32, + 14, + 30, + 12, + 11, + 24, + 12, + 43, + 16, + 5, + 22, + 14, + 17, + 12, + 18, + 45, + 15, + 26, + 17, + 17, + 16, + 21, + 24, + 19, + 16, + 14, + 13, + 14, + 27, + 10, + 26, + 5, + 33, + 16, + 23, + 16, + 16, + 11, + 15, + 18, + 18, + 41, + 14, + 6, + 12, + 18, + 16, + 14, + 19, + 15, + 19, + 21, + 24, + 23, + 24, + 20, + 20, + 21, + 16, + 20, + 42, + 24, + 48, + 18, + 19, + 22, + 16, + 18, + 40, + 10, + 21, + 20, + 36, + 23, + 39, + 22, + 28, + 31, + 11, + 18, + 21, + 20, + 11, + 11, + 17, + 22, + 13, + 17, + 11, + 38, + 13, + 22, + 23, + 26, + 26, + 19, + 16, + 24, + 20, + 18, + 20, + 11, + 21, + 29, + 16, + 14, + 13, + 13, + 24, + 12, + 10, + 8, + 5, + 9, + 9, + 13, + 13, + 13, + 19, + 20, + 20, + 16, + 33, + 17, + 18, + 32, + 10, + 24, + 15, + 30, + 26, + 3, + 1, + 2, + 5, + 14, + 3, + 7, + 3, + 6, + 7, + 17, + 19, + 13, + 24, + 25, + 17, + 21, + 27, + 28, + 20, + 21, + 22, + 31, + 23, + 11, + 12, + 22, + 22, + 14, + 14, + 13, + 19, + 13, + 18, + 19, + 19, + 29, + 18, + 21, + 19, + 6, + 25, + 20, + 20, + 21, + 35, + 15, + 17, + 8, + 3, + 3, + 34, + 13, + 15, + 33, + 16, + 25, + 23, + 18, + 15, + 19, + 22, + 11, + 10, + 11, + 21, + 15, + 16, + 17, + 28, + 17, + 8, + 13, + 4, + 4, + 15, + 27, + 28, + 27, + 26, + 25, + 26, + 28, + 19, + 11, + 14, + 18, + 12, + 15, + 12, + 27, + 10, + 17, + 8, + 16, + 17, + 12, + 32, + 14, + 20, + 35, + 14, + 22, + 23, + 18, + 16, + 30, + 13, + 4, + 9, + 14, + 24, + 11, + 21, + 25, + 17, + 22, + 19, + 6, + 14, + 14, + 15, + 9, + 6, + 7, + 8, + 12, + 10, + 9, + 4, + 13, + 17, + 24, + 20, + 13, + 13, + 13, + 22, + 31, + 22, + 22, + 27, + 27, + 23, + 26, + 28, + 28, + 20, + 14, + 14, + 14, + 8, + 16, + 21, + 12, + 21, + 24, + 20, + 12, + 17, + 19, + 25, + 25, + 27, + 28, + 19, + 17, + 22, + 14, + 22, + 14, + 5, + 24, + 23, + 24, + 12, + 23, + 13, + 27, + 8, + 33, + 41, + 24, + 25, + 19, + 18, + 27, + 24, + 33, + 32, + 20, + 20, + 22, + 22, + 18, + 18, + 37, + 14, + 27, + 22, + 29, + 28, + 27, + 24, + 16, + 13, + 11, + 10, + 10, + 20, + 18, + 21, + 16, + 23, + 30, + 31, + 24, + 34, + 34, + 18, + 3, + 28, + 23, + 28, + 21, + 10, + 16, + 13, + 12, + 13, + 13, + 23, + 19, + 17, + 24, + 30, + 23, + 23, + 16, + 23, + 14, + 20, + 15, + 11, + 12, + 12, + 12, + 6, + 32, + 16, + 7, + 11, + 9, + 14, + 11, + 33, + 16, + 14, + 8, + 13, + 18, + 20, + 24, + 8, + 11, + 9, + 10, + 13, + 16, + 14, + 15, + 29, + 21, + 10, + 10, + 9, + 18, + 18, + 11, + 10, + 19, + 22, + 22, + 17, + 22, + 19, + 24, + 18, + 10, + 12, + 25, + 23, + 18, + 7, + 12, + 33, + 11, + 8, + 25, + 16, + 24, + 23, + 35, + 18, + 27, + 7, + 21, + 9, + 10, + 23, + 21, + 24, + 10, + 9, + 24, + 19, + 10, + 15, + 29, + 17, + 8, + 8, + 20, + 17, + 18, + 16, + 17, + 18, + 31, + 16, + 17, + 11, + 8, + 20, + 21, + 12, + 8, + 9, + 12, + 19, + 22, + 23, + 24, + 12, + 6, + 16, + 6, + 18, + 18, + 17, + 7, + 22, + 22, + 19, + 22, + 19, + 14, + 19, + 14, + 30, + 16, + 31, + 17, + 19, + 15, + 24, + 22, + 20, + 16, + 17, + 15, + 17, + 15, + 16, + 16, + 13, + 19, + 7, + 7, + 13, + 20, + 11, + 22, + 17, + 18, + 24, + 14, + 12, + 15, + 21, + 22, + 19, + 20, + 21, + 4, + 10, + 7, + 24, + 23, + 22, + 23, + 24, + 31, + 15, + 29, + 23, + 20, + 21, + 18, + 14, + 19, + 25, + 33, + 32, + 23, + 27, + 25, + 30, + 21, + 17, + 17, + 18, + 23, + 19, + 21, + 11, + 8, + 22, + 22, + 24, + 21, + 15, + 30, + 18, + 3, + 7, + 8, + 9, + 9, + 8, + 10, + 10, + 17, + 16, + 16, + 15, + 15, + 15, + 14, + 17, + 19, + 24, + 19, + 16, + 16, + 34, + 12, + 17, + 26, + 17, + 9, + 9, + 9, + 17, + 8, + 14, + 4, + 28, + 3, + 3, + 10, + 4, + 5, + 4, + 4, + 4, + 20, + 19, + 39, + 15, + 4, + 10, + 32, + 8, + 5, + 12, + 15, + 19, + 22, + 22, + 34, + 9, + 15, + 11, + 11, + 9, + 31, + 10, + 10, + 12, + 4, + 22, + 33, + 19, + 17, + 16, + 11, + 24, + 27, + 23, + 3, + 3, + 30, + 23, + 18, + 24, + 8, + 12, + 8, + 17, + 22, + 24, + 17, + 22, + 5, + 9, + 21, + 3, + 3, + 4, + 4, + 7, + 5, + 9, + 6, + 23, + 14, + 9, + 13, + 14, + 14, + 14, + 15, + 13, + 13, + 23, + 18, + 32, + 12, + 32, + 10, + 6, + 5, + 11, + 34, + 11, + 3, + 12, + 3, + 24, + 25, + 26, + 13, + 19, + 13, + 4, + 15, + 15, + 18, + 7, + 14, + 10, + 17, + 6, + 13, + 5, + 18, + 27, + 15, + 13, + 38, + 35, + 21, + 21, + 16, + 34, + 41, + 11, + 22, + 8, + 13, + 23, + 23, + 30, + 16, + 13, + 15, + 10, + 18, + 26, + 11, + 19, + 15, + 21, + 21, + 12, + 23, + 17, + 17, + 22, + 21, + 25, + 28, + 21, + 9, + 13, + 30, + 17, + 39, + 5, + 25, + 21, + 32, + 5, + 4, + 24, + 28, + 24, + 10, + 23, + 18, + 20, + 37, + 42, + 43, + 18, + 16, + 26, + 23, + 28, + 4, + 28, + 38, + 44, + 19, + 26, + 36, + 22, + 31, + 8, + 13, + 11, + 24, + 20, + 28, + 25, + 16, + 18, + 20, + 23, + 15, + 19, + 7, + 24, + 30, + 25, + 19, + 19, + 14, + 19, + 14, + 16, + 18, + 18, + 21, + 18, + 21, + 11, + 20, + 10, + 10, + 13, + 19, + 27, + 21, + 20, + 16, + 23, + 38, + 22, + 4, + 18, + 16, + 30, + 11, + 13, + 15, + 15, + 22, + 21, + 24, + 19, + 20, + 4, + 7, + 10, + 6, + 3, + 7, + 3, + 3, + 3, + 3, + 6, + 6, + 14, + 17, + 3, + 4, + 6, + 19, + 15, + 9, + 10, + 12, + 8, + 13, + 9, + 15, + 7, + 21, + 18, + 21, + 20, + 24, + 19, + 4, + 7, + 30, + 36, + 10, + 16, + 10, + 9, + 9, + 15, + 11, + 9, + 13, + 9, + 30, + 21, + 23, + 24, + 25, + 29, + 23, + 16, + 15, + 10, + 12, + 7, + 19, + 8, + 8, + 29, + 9, + 24, + 27, + 37, + 8, + 4, + 18, + 6, + 24, + 15, + 18, + 7, + 6, + 8, + 10, + 21, + 28, + 24, + 20, + 24, + 23, + 23, + 28, + 18, + 17, + 22, + 9, + 32, + 10, + 11, + 11, + 21, + 20, + 10, + 20, + 12, + 24, + 10, + 27, + 16, + 15, + 15, + 14, + 17, + 22, + 24, + 16, + 22, + 11, + 13, + 13, + 12, + 19, + 24, + 11, + 12, + 13, + 17, + 17, + 13, + 18, + 12, + 11, + 12, + 16, + 11, + 3, + 16, + 18, + 14, + 21, + 14, + 18, + 16, + 17, + 11, + 15, + 20, + 11, + 11, + 11, + 19, + 21, + 18, + 19, + 18, + 12, + 13, + 15, + 13, + 11, + 14, + 14, + 16, + 15, + 22, + 20, + 12, + 14, + 14, + 18, + 17, + 20, + 23, + 19, + 22, + 15, + 29, + 33, + 21, + 21, + 20, + 10, + 12, + 13, + 12, + 19, + 6, + 6, + 13, + 12, + 10, + 12, + 13, + 12, + 14, + 4, + 9, + 32, + 20, + 22, + 21, + 42, + 18, + 12, + 4, + 32, + 12, + 18, + 19, + 14, + 19, + 15, + 14, + 18, + 23, + 30, + 9, + 5, + 10, + 8, + 8, + 9, + 5, + 7, + 12, + 4, + 15, + 14, + 11, + 34, + 14, + 34, + 17, + 7, + 16, + 14, + 8, + 9, + 23, + 21, + 14, + 15, + 15, + 47, + 21, + 15, + 15, + 23, + 9, + 7, + 20, + 13, + 13, + 14, + 10, + 19, + 15, + 20, + 5, + 6, + 5, + 35, + 7, + 7, + 29, + 23, + 31, + 21, + 28, + 17, + 18, + 16, + 23, + 12, + 39, + 7, + 15, + 15, + 14, + 5, + 15, + 15, + 14, + 29, + 3, + 3, + 13, + 18, + 32, + 6, + 20, + 14, + 26, + 15, + 20, + 14, + 18, + 12, + 14, + 39, + 17, + 20, + 11, + 25, + 16, + 21, + 20, + 25, + 18, + 39, + 21, + 18, + 24, + 37, + 13, + 11, + 24, + 19, + 24, + 17, + 41, + 30, + 31, + 26, + 7, + 17, + 25, + 15, + 16, + 21, + 20, + 23, + 16, + 25, + 26, + 25, + 26, + 25, + 15, + 15, + 17, + 12, + 22, + 11, + 23, + 27, + 24, + 19, + 21, + 21, + 25, + 21, + 21, + 15, + 15, + 17, + 15, + 17, + 20, + 20, + 29, + 16, + 32, + 7, + 23, + 26, + 26, + 22, + 25, + 27, + 35, + 37, + 28, + 25, + 18, + 20, + 13, + 13, + 15, + 10, + 8, + 11, + 12, + 11, + 11, + 11, + 17, + 18, + 17, + 11, + 11, + 17, + 21, + 17, + 16, + 11, + 16, + 12, + 22, + 21, + 21, + 10, + 12, + 12, + 12, + 9, + 9, + 20, + 13, + 24, + 24, + 23, + 23, + 34, + 46, + 38, + 37, + 13, + 52, + 39, + 36, + 52, + 50, + 36, + 36, + 20, + 26, + 17, + 22, + 19, + 13, + 18, + 19, + 7, + 8, + 10, + 18, + 18, + 15, + 16, + 19, + 14, + 10, + 4, + 2, + 19, + 10, + 21, + 19, + 24, + 20, + 21, + 23, + 19, + 25, + 23, + 23, + 21, + 23, + 23, + 19, + 11, + 28, + 7, + 5, + 6, + 21, + 26, + 7, + 22, + 10, + 23, + 25, + 21, + 27, + 10, + 25, + 10, + 25, + 8, + 23, + 10, + 25, + 10, + 25, + 23, + 23, + 22, + 13, + 3, + 14, + 11, + 12, + 12, + 26, + 19, + 7, + 6, + 9, + 6, + 7, + 4, + 4, + 8, + 8, + 10, + 6, + 6, + 6, + 6, + 5, + 3, + 9, + 4, + 8, + 8, + 7, + 9, + 5, + 5, + 8, + 5, + 9, + 20, + 10, + 5, + 8, + 9, + 8, + 7, + 4, + 9, + 8, + 14, + 19, + 9, + 3, + 2, + 16, + 15, + 18, + 14, + 20, + 14, + 18, + 11, + 16, + 11, + 18, + 11, + 18, + 11, + 16, + 12, + 18, + 11, + 18, + 11, + 15, + 14, + 12, + 16, + 25, + 28, + 11, + 17, + 7, + 5, + 14, + 16, + 9, + 11, + 7, + 12, + 15, + 11, + 9, + 9, + 13, + 22, + 24, + 22, + 38, + 28, + 16, + 23, + 18, + 3, + 4, + 31, + 24, + 2, + 18, + 13, + 4, + 5, + 6, + 4, + 7, + 6, + 4, + 6, + 17, + 4, + 5, + 28, + 12, + 16, + 5, + 2, + 25, + 22, + 18, + 21, + 27, + 12, + 23, + 18, + 8, + 10, + 10, + 26, + 29, + 23, + 20, + 24, + 27, + 18, + 18, + 2, + 17, + 19, + 9, + 7, + 22, + 4, + 9, + 2, + 10, + 12, + 14, + 11, + 14, + 16, + 13, + 14, + 13, + 13, + 13, + 15, + 12, + 12, + 14, + 18, + 15, + 16, + 16, + 14, + 16, + 15, + 25, + 18, + 15, + 4, + 7, + 7, + 6, + 19, + 3, + 16, + 5, + 7, + 29, + 24, + 12, + 17, + 18, + 12, + 19, + 12, + 9, + 21, + 12, + 22, + 32, + 23, + 32, + 17, + 25, + 13, + 11, + 5, + 15, + 9, + 12, + 6, + 15, + 15, + 19, + 15, + 9, + 32, + 14, + 19, + 11, + 23, + 6, + 17, + 19, + 9, + 7, + 12, + 17, + 14, + 21, + 13, + 22, + 21, + 24, + 23, + 8, + 15, + 4, + 4, + 3, + 7, + 3, + 13, + 4, + 11, + 3, + 6, + 3, + 6, + 3, + 3, + 4, + 4, + 3, + 9, + 4, + 9, + 4, + 12, + 3, + 3, + 5, + 4, + 11, + 4, + 9, + 5, + 17, + 3, + 7, + 4, + 8, + 6, + 4, + 15, + 3, + 5, + 4, + 10, + 5, + 12, + 31, + 32, + 38, + 23, + 19, + 26, + 11, + 9, + 11, + 11, + 16, + 15, + 25, + 16, + 7, + 3, + 26, + 22, + 10, + 14, + 17, + 9, + 12, + 11, + 20, + 12, + 23, + 29, + 24, + 9, + 29, + 12, + 14, + 11, + 13, + 10, + 5, + 29, + 20, + 12, + 10, + 5, + 12, + 16, + 10, + 3, + 16, + 21, + 25, + 14, + 6, + 28, + 27, + 19, + 23, + 27, + 10, + 20, + 28, + 5, + 10, + 8, + 11, + 9, + 11, + 8, + 12, + 12, + 9, + 12, + 14, + 16, + 10, + 8, + 12, + 14, + 15, + 15, + 13, + 18, + 13, + 11, + 16, + 19, + 23, + 20, + 13, + 24, + 17, + 20, + 27, + 16, + 13, + 31, + 23, + 19, + 12, + 20, + 10, + 12, + 12, + 13, + 22, + 5, + 17, + 16, + 9, + 10, + 14, + 10, + 15, + 10, + 9, + 12, + 15, + 31, + 18, + 21, + 7, + 22, + 38, + 10, + 13, + 18, + 15, + 15, + 18, + 13, + 13, + 13, + 17, + 14, + 16, + 16, + 17, + 13, + 3, + 8, + 7, + 6, + 5, + 8, + 10, + 18, + 13, + 28, + 16, + 14, + 7, + 6, + 22, + 13, + 11, + 26, + 25, + 19, + 20, + 23, + 17, + 20, + 18, + 21, + 14, + 12, + 13, + 12, + 15, + 6, + 11, + 7, + 9, + 9, + 16, + 19, + 12, + 9, + 14, + 47, + 7, + 12, + 19, + 21, + 27, + 16, + 13, + 7, + 9, + 9, + 17, + 19, + 34, + 12, + 19, + 23, + 4, + 11, + 20, + 10, + 17, + 18, + 22, + 16, + 23, + 11, + 40, + 9, + 46, + 7, + 11, + 8, + 15, + 36, + 26, + 9, + 24, + 15, + 41, + 19, + 23, + 45, + 19, + 41, + 8, + 9, + 16, + 20, + 15, + 15, + 12, + 10, + 6, + 8, + 20, + 7, + 8, + 3, + 16, + 15, + 9, + 9, + 18, + 9, + 2, + 2, + 2, + 2, + 13, + 17, + 25, + 12, + 9, + 24, + 19, + 17, + 17, + 15, + 10, + 10, + 4, + 10, + 21, + 4, + 24, + 24, + 20, + 11, + 24, + 23, + 12, + 21, + 20, + 11, + 20, + 46, + 11, + 21, + 16, + 13, + 12, + 19, + 22, + 15, + 41, + 5, + 5, + 21, + 18, + 20, + 9, + 9, + 20, + 16, + 12, + 12, + 15, + 41, + 27, + 28, + 9, + 8, + 8, + 30, + 9, + 8, + 4, + 8, + 11, + 10, + 19, + 4, + 20, + 18, + 20, + 18, + 23, + 19, + 22, + 15, + 9, + 12, + 8, + 7, + 15, + 12, + 16, + 7, + 7, + 7, + 7, + 10, + 9, + 10, + 15, + 19, + 18, + 18, + 15, + 13, + 19, + 6, + 21, + 19, + 5, + 6, + 23, + 23, + 14, + 16, + 11, + 9, + 11, + 8, + 11, + 6, + 10, + 2, + 3, + 7, + 6, + 7, + 7, + 3, + 6, + 14, + 12, + 7, + 6, + 8, + 5, + 5, + 6, + 9, + 4, + 6, + 3, + 9, + 8, + 3, + 6, + 6, + 6, + 5, + 3, + 3, + 7, + 13, + 6, + 9, + 3, + 3, + 9, + 4, + 14, + 10, + 4, + 10, + 8, + 5, + 5, + 2, + 2, + 8, + 7, + 10, + 10, + 5, + 11, + 11, + 8, + 16, + 17, + 4, + 38, + 12, + 10, + 6, + 6, + 4, + 7, + 7, + 10, + 10, + 6, + 5, + 4, + 4, + 6, + 10, + 10, + 6, + 7, + 6, + 19, + 25, + 9, + 9, + 11, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 12, + 7, + 7, + 5, + 3, + 9, + 5, + 5, + 11, + 2, + 5, + 10, + 2, + 2, + 2, + 2, + 2, + 7, + 5, + 4, + 11, + 5, + 2, + 2, + 5, + 6, + 4, + 6, + 4, + 18, + 12, + 13, + 11, + 13, + 15, + 11, + 11, + 18, + 18, + 30, + 8, + 9, + 15, + 10, + 11, + 24, + 10, + 15, + 12, + 14, + 11, + 6, + 21, + 21, + 21, + 4, + 5, + 4, + 7, + 9, + 4, + 4, + 30, + 13, + 14, + 33, + 17, + 25, + 4, + 3, + 3, + 3, + 5, + 32, + 7, + 12, + 9, + 5, + 28, + 18, + 2, + 2, + 11, + 7, + 4, + 15, + 17, + 31, + 9, + 11, + 13, + 4, + 17, + 11, + 25, + 12, + 25, + 31, + 28, + 18, + 13, + 12, + 12, + 21, + 3, + 15, + 17, + 14, + 13, + 24, + 12, + 8, + 12, + 27, + 7, + 7, + 8, + 8, + 28, + 31, + 39, + 10, + 24, + 35, + 7, + 5, + 8, + 37, + 18, + 4, + 4, + 10, + 39, + 11, + 12, + 6, + 6, + 42, + 12, + 42, + 8, + 13, + 8, + 4, + 9, + 7, + 7, + 4, + 9, + 13, + 39, + 5, + 8, + 5, + 7, + 10, + 5, + 42, + 4, + 5, + 7, + 8, + 47, + 45, + 47, + 57, + 5, + 33, + 9, + 20, + 8, + 14, + 23, + 10, + 15, + 16, + 19, + 5, + 19, + 19, + 17, + 29, + 40, + 43, + 39, + 29, + 40, + 36, + 41, + 20, + 14, + 13, + 14, + 12, + 19, + 36, + 25, + 26, + 30, + 18, + 20, + 19, + 6, + 23, + 21, + 8, + 11, + 14, + 11, + 15, + 13, + 14, + 19, + 3, + 6, + 8, + 18, + 23, + 22, + 30, + 16, + 20, + 7, + 17, + 20, + 24, + 24, + 18, + 23, + 23, + 20, + 19, + 14, + 18, + 19, + 19, + 19, + 20, + 16, + 27, + 19, + 25, + 17, + 30, + 8, + 26, + 21, + 16, + 17, + 3, + 14, + 11, + 25, + 21, + 8, + 21, + 8, + 27, + 7, + 9, + 9, + 19, + 8, + 10, + 10, + 13, + 15, + 20, + 17, + 13, + 12, + 13, + 15, + 15, + 18, + 15, + 12, + 18, + 30, + 10, + 6, + 4, + 7, + 4, + 3, + 21, + 9, + 7, + 7, + 6, + 8, + 6, + 5, + 8, + 6, + 12, + 12, + 19, + 19, + 28, + 15, + 13, + 13, + 23, + 29, + 12, + 18, + 28, + 26, + 32, + 30, + 27, + 8, + 4, + 27, + 27, + 3, + 6, + 1, + 24, + 3, + 22, + 24, + 20, + 12, + 15, + 16, + 30, + 18, + 16, + 18, + 30, + 23, + 29, + 28, + 16, + 17, + 18, + 31, + 29, + 20, + 20, + 12, + 18, + 16, + 23, + 29, + 3, + 27, + 14, + 10, + 20, + 2, + 5, + 15, + 27, + 8, + 10, + 9, + 15, + 15, + 12, + 14, + 14, + 19, + 19, + 22, + 15, + 23, + 12, + 19, + 30, + 14, + 41, + 29, + 35, + 29, + 35, + 23, + 28, + 7, + 16, + 26, + 3, + 22, + 14, + 12, + 7, + 7, + 18, + 20, + 21, + 21, + 4, + 31, + 23, + 11, + 19, + 24, + 6, + 18, + 6, + 14, + 10, + 9, + 18, + 18, + 22, + 24, + 22, + 11, + 7, + 8, + 15, + 25, + 26, + 18, + 19, + 19, + 14, + 24, + 27, + 3, + 23, + 23, + 15, + 2, + 24, + 22, + 20, + 26, + 20, + 4, + 2, + 9, + 4, + 6, + 12, + 14, + 23, + 13, + 15, + 12, + 15, + 15, + 20, + 15, + 20, + 18, + 18, + 16, + 16, + 14, + 11, + 11, + 13, + 12, + 12, + 12, + 20, + 23, + 17, + 12, + 10, + 12, + 24, + 23, + 35, + 22, + 13, + 24, + 22, + 22, + 20, + 24, + 22, + 23, + 21, + 25, + 23, + 36, + 34, + 22, + 20, + 27, + 25, + 28, + 26, + 38, + 36, + 35, + 33, + 18, + 16, + 22, + 20, + 2, + 33, + 5, + 7, + 9, + 6, + 7, + 31, + 9, + 6, + 6, + 14, + 7, + 8, + 8, + 7, + 8, + 4, + 10, + 8, + 4, + 9, + 9, + 4, + 7, + 5, + 10, + 7, + 8, + 5, + 9, + 13, + 20, + 10, + 17, + 15, + 17, + 14, + 11, + 12, + 15, + 13, + 24, + 16, + 13, + 19, + 12, + 15, + 17, + 14, + 15, + 20, + 17, + 13, + 16, + 14, + 12, + 17, + 12, + 12, + 14, + 11, + 14, + 13, + 18, + 14, + 11, + 13, + 21, + 22, + 14, + 15, + 15, + 14, + 36, + 29, + 17, + 9, + 10, + 12, + 22, + 32, + 31, + 33, + 22, + 25, + 20, + 19, + 28, + 3, + 28, + 22, + 21, + 3, + 3, + 4, + 5, + 3, + 3, + 4, + 3, + 4, + 4, + 5, + 4, + 4, + 8, + 4, + 17, + 17, + 20, + 21, + 31, + 22, + 18, + 27, + 17, + 22, + 16, + 18, + 23, + 16, + 22, + 16, + 13, + 13, + 18, + 18, + 17, + 7, + 11, + 12, + 16, + 15, + 11, + 14, + 22, + 20, + 27, + 31, + 8, + 4, + 32, + 28, + 7, + 33, + 19, + 4, + 22, + 7, + 9, + 25, + 43, + 10, + 39, + 9, + 10, + 5, + 19, + 19, + 18, + 14, + 18, + 24, + 17, + 14, + 13, + 17, + 16, + 15, + 17, + 20, + 21, + 3, + 3, + 3, + 3, + 4, + 4, + 19, + 26, + 8, + 10, + 20, + 11, + 14, + 29, + 14, + 15, + 22, + 12, + 13, + 15, + 15, + 17, + 21, + 31, + 33, + 22, + 22, + 3, + 7, + 7, + 10, + 6, + 4, + 5, + 20, + 11, + 12, + 17, + 13, + 13, + 10, + 13, + 20, + 16, + 11, + 7, + 7, + 14, + 16, + 10, + 7, + 8, + 13, + 5, + 20, + 27, + 8, + 5, + 4, + 6, + 31, + 5, + 7, + 7, + 7, + 8, + 16, + 9, + 8, + 24, + 21, + 19, + 16, + 23, + 23, + 25, + 14, + 40, + 15, + 25, + 12, + 18, + 17, + 16, + 23, + 12, + 12, + 12, + 10, + 10, + 14, + 14, + 25, + 16, + 16, + 15, + 18, + 27, + 13, + 10, + 13, + 12, + 9, + 15, + 15, + 22, + 15, + 11, + 21, + 16, + 14, + 3, + 19, + 3, + 7, + 21, + 3, + 16, + 18, + 18, + 14, + 11, + 7, + 10, + 9, + 10, + 22, + 6, + 9, + 3, + 17, + 8, + 18, + 22, + 9, + 10, + 11, + 26, + 20, + 24, + 17, + 25, + 17, + 13, + 10, + 3, + 3, + 4, + 10, + 14, + 8, + 18, + 10, + 6, + 9, + 4, + 3, + 6, + 21, + 4, + 5, + 22, + 3, + 14, + 11, + 9, + 8, + 13, + 9, + 11, + 20, + 13, + 18, + 13, + 6, + 3, + 2, + 8, + 16, + 12, + 12, + 12, + 9, + 13, + 9, + 22, + 18, + 12, + 17, + 22, + 2, + 9, + 2, + 9, + 10, + 32, + 10, + 26, + 36, + 3, + 21, + 29, + 2, + 2, + 11, + 4, + 2, + 26, + 20, + 3, + 6, + 19, + 27, + 18, + 31, + 23, + 14, + 6, + 8, + 16, + 11, + 13, + 16, + 10, + 10, + 10, + 9, + 5, + 9, + 12, + 3, + 4, + 10, + 17, + 9, + 18, + 5, + 8, + 17, + 6, + 12, + 14, + 6, + 9, + 20, + 13, + 7, + 14, + 15, + 18, + 14, + 12, + 19, + 20, + 13, + 7, + 14, + 16, + 5, + 7, + 6, + 4, + 12, + 4, + 15, + 19, + 16, + 13, + 8, + 19, + 15, + 11, + 11, + 12, + 16, + 14, + 18, + 17, + 22, + 26, + 7, + 9, + 5, + 3, + 9, + 8, + 9, + 10, + 8, + 8, + 7, + 3, + 8, + 8, + 6, + 9, + 5, + 10, + 6, + 10, + 6, + 10, + 6, + 10, + 6, + 9, + 6, + 6, + 10, + 6, + 9, + 9, + 9, + 6, + 9, + 9, + 6, + 9, + 10, + 6, + 8, + 14, + 15, + 11, + 13, + 16, + 19, + 19, + 12, + 16, + 15, + 15, + 12, + 16, + 12, + 17, + 18, + 17, + 16, + 19, + 17, + 13, + 12, + 14, + 19, + 11, + 11, + 15, + 42, + 6, + 8, + 16, + 16, + 43, + 23, + 17, + 18, + 37, + 21, + 28, + 30, + 24, + 14, + 15, + 26, + 8, + 22, + 22, + 29, + 29, + 16, + 35, + 32, + 15, + 10, +}; + +extern const qstr_pool_t mp_qstr_const_pool; +const qstr_pool_t mp_qstr_frozen_const_pool = { + &mp_qstr_const_pool, // previous pool + MP_QSTRnumber_of, // previous pool size + 10, // allocated entries + 5280, // used entries + (qstr_hash_t *)mp_qstr_frozen_const_hashes, + (qstr_len_t *)mp_qstr_frozen_const_lengths, + { + "all_modules.py", + "trezor.utils", + "utils", + "trezor", + "all_modules", + "boot", + "session", + "usb", + "storage", + "cache", + "storage.cache", + "storage.common", + "debug", + "storage.debug", + "device", + "storage.device", + "fido2", + "storage.fido2", + "recovery", + "storage.recovery", + "recovery_shares", + "storage.recovery_shares", + "resident_credentials", + "storage.resident_credentials", + "sd_salt", + "storage.sd_salt", + "crypto", + "trezor.crypto", + "base32", + "trezor.crypto.base32", + "base58", + "trezor.crypto.base58", + "trezor.crypto.bech32", + "cashaddr", + "trezor.crypto.cashaddr", + "cosi", + "trezor.crypto.cosi", + "trezor.crypto.curve", + "der", + "trezor.crypto.der", + "hashlib", + "trezor.crypto.hashlib", + "rlp", + "trezor.crypto.rlp", + "trezor.crypto.scripts", + "trezor.crypto.slip39", + "enums", + "AmountUnit", + "trezor.enums.AmountUnit", + "BackupType", + "trezor.enums.BackupType", + "ButtonRequestType", + "trezor.enums.ButtonRequestType", + "Capability", + "trezor.enums.Capability", + "DebugButton", + "trezor.enums.DebugButton", + "DebugPhysicalButton", + "trezor.enums.DebugPhysicalButton", + "DebugSwipeDirection", + "trezor.enums.DebugSwipeDirection", + "DecredStakingSpendType", + "trezor.enums.DecredStakingSpendType", + "FailureType", + "trezor.enums.FailureType", + "HomescreenFormat", + "trezor.enums.HomescreenFormat", + "InputScriptType", + "trezor.enums.InputScriptType", + "MessageType", + "trezor.enums.MessageType", + "OutputScriptType", + "trezor.enums.OutputScriptType", + "PinMatrixRequestType", + "trezor.enums.PinMatrixRequestType", + "RecoveryDeviceType", + "trezor.enums.RecoveryDeviceType", + "RequestType", + "trezor.enums.RequestType", + "SafetyCheckLevel", + "trezor.enums.SafetyCheckLevel", + "SdProtectOperationType", + "trezor.enums.SdProtectOperationType", + "WordRequestType", + "trezor.enums.WordRequestType", + "trezor.enums", + "errors", + "trezor.errors", + "trezor.log", + "loop", + "trezor.loop", + "messages", + "trezor.messages", + "trezor.pin", + "protobuf", + "trezor.protobuf", + "trezor.sdcard", + "strings", + "trezor.strings", + "ui", + "trezor.ui", + "layouts", + "trezor.ui.layouts", + "trezor.ui.layouts.common", + "fido", + "trezor.ui.layouts.fido", + "trezor.ui.layouts.homescreen", + "progress", + "trezor.ui.layouts.progress", + "trezor.ui.layouts.recovery", + "reset", + "trezor.ui.layouts.reset", + "tr", + "trezor.ui.layouts.tr", + "trezor.ui.layouts.tr.fido", + "trezor.ui.layouts.tr.homescreen", + "trezor.ui.layouts.tr.progress", + "trezor.ui.layouts.tr.recovery", + "trezor.ui.layouts.tr.reset", + "tt", + "trezor.ui.layouts.tt", + "trezor.ui.layouts.tt.fido", + "trezor.ui.layouts.tt.homescreen", + "trezor.ui.layouts.tt.progress", + "trezor.ui.layouts.tt.recovery", + "trezor.ui.layouts.tt.reset", + "style", + "trezor.ui.style", + "wire", + "trezor.wire", + "codec_v1", + "trezor.wire.codec_v1", + "context", + "trezor.wire.context", + "trezor.wire.errors", + "workflow", + "trezor.workflow", + "apps", + "base", + "apps.base", + "bitcoin", + "apps.bitcoin", + "addresses", + "apps.bitcoin.addresses", + "apps.bitcoin.authorization", + "authorize_coinjoin", + "apps.bitcoin.authorize_coinjoin", + "apps.bitcoin.common", + "get_address", + "apps.bitcoin.get_address", + "get_ownership_id", + "apps.bitcoin.get_ownership_id", + "get_ownership_proof", + "apps.bitcoin.get_ownership_proof", + "get_public_key", + "apps.bitcoin.get_public_key", + "keychain", + "apps.bitcoin.keychain", + "apps.bitcoin.multisig", + "ownership", + "apps.bitcoin.ownership", + "readers", + "apps.bitcoin.readers", + "apps.bitcoin.scripts", + "scripts_decred", + "apps.bitcoin.scripts_decred", + "sign_message", + "apps.bitcoin.sign_message", + "sign_tx", + "apps.bitcoin.sign_tx", + "approvers", + "apps.bitcoin.sign_tx.approvers", + "apps.bitcoin.sign_tx.bitcoin", + "bitcoinlike", + "apps.bitcoin.sign_tx.bitcoinlike", + "decred", + "apps.bitcoin.sign_tx.decred", + "helpers", + "apps.bitcoin.sign_tx.helpers", + "apps.bitcoin.sign_tx.layout", + "matchcheck", + "apps.bitcoin.sign_tx.matchcheck", + "omni", + "apps.bitcoin.sign_tx.omni", + "payment_request", + "apps.bitcoin.sign_tx.payment_request", + "apps.bitcoin.sign_tx.progress", + "sig_hasher", + "apps.bitcoin.sign_tx.sig_hasher", + "tx_info", + "apps.bitcoin.sign_tx.tx_info", + "tx_weight", + "apps.bitcoin.sign_tx.tx_weight", + "verification", + "apps.bitcoin.verification", + "verify_message", + "apps.bitcoin.verify_message", + "writers", + "apps.bitcoin.writers", + "apps.common", + "address_mac", + "apps.common.address_mac", + "apps.common.address_type", + "apps.common.authorization", + "cbor", + "apps.common.cbor", + "coininfo", + "apps.common.coininfo", + "apps.common.coins", + "apps.common.keychain", + "apps.common.passphrase", + "apps.common.paths", + "apps.common.readers", + "apps.common.request_pin", + "apps.common.safety_checks", + "apps.common.sdcard", + "apps.common.seed", + "signverify", + "apps.common.signverify", + "apps.common.writers", + "apps.debug", + "load_device", + "apps.debug.load_device", + "apps.homescreen", + "management", + "apply_flags", + "apps.management.apply_flags", + "apply_settings", + "apps.management.apply_settings", + "authenticate_device", + "apps.management.authenticate_device", + "backup_device", + "apps.management.backup_device", + "backup_types", + "apps.management.backup_types", + "apps.management.change_pin", + "apps.management.change_wipe_code", + "get_next_u2f_counter", + "apps.management.get_next_u2f_counter", + "get_nonce", + "apps.management.get_nonce", + "apps.management.reboot_to_bootloader", + "recovery_device", + "apps.management.recovery_device", + "apps.management.recovery_device.homescreen", + "apps.management.recovery_device.layout", + "recover", + "apps.management.recovery_device.recover", + "word_validity", + "apps.management.recovery_device.word_validity", + "reset_device", + "apps.management.reset_device", + "apps.management.reset_device.layout", + "sd_protect", + "apps.management.sd_protect", + "set_u2f_counter", + "apps.management.set_u2f_counter", + "show_tutorial", + "apps.management.show_tutorial", + "wipe_device", + "apps.management.wipe_device", + "misc", + "apps.misc", + "cipher_key_value", + "apps.misc.cipher_key_value", + "apps.misc.cosi_commit", + "get_ecdh_session_key", + "apps.misc.get_ecdh_session_key", + "get_entropy", + "apps.misc.get_entropy", + "get_firmware_hash", + "apps.misc.get_firmware_hash", + "sign_identity", + "apps.misc.sign_identity", + "workflow_handlers", + "apps.workflow_handlers", + "BinanceOrderSide", + "trezor.enums.BinanceOrderSide", + "BinanceOrderType", + "trezor.enums.BinanceOrderType", + "BinanceTimeInForce", + "trezor.enums.BinanceTimeInForce", + "CardanoAddressType", + "trezor.enums.CardanoAddressType", + "CardanoCVoteRegistrationFormat", + "trezor.enums.CardanoCVoteRegistrationFormat", + "CardanoCertificateType", + "trezor.enums.CardanoCertificateType", + "CardanoDerivationType", + "trezor.enums.CardanoDerivationType", + "CardanoNativeScriptHashDisplayFormat", + "trezor.enums.CardanoNativeScriptHashDisplayFormat", + "CardanoNativeScriptType", + "trezor.enums.CardanoNativeScriptType", + "CardanoPoolRelayType", + "trezor.enums.CardanoPoolRelayType", + "CardanoTxAuxiliaryDataSupplementType", + "trezor.enums.CardanoTxAuxiliaryDataSupplementType", + "CardanoTxOutputSerializationFormat", + "trezor.enums.CardanoTxOutputSerializationFormat", + "CardanoTxSigningMode", + "trezor.enums.CardanoTxSigningMode", + "CardanoTxWitnessType", + "trezor.enums.CardanoTxWitnessType", + "EthereumDataType", + "trezor.enums.EthereumDataType", + "EthereumDefinitionType", + "trezor.enums.EthereumDefinitionType", + "MoneroNetworkType", + "trezor.enums.MoneroNetworkType", + "NEMImportanceTransferMode", + "trezor.enums.NEMImportanceTransferMode", + "NEMModificationType", + "trezor.enums.NEMModificationType", + "NEMMosaicLevy", + "trezor.enums.NEMMosaicLevy", + "NEMSupplyChangeType", + "trezor.enums.NEMSupplyChangeType", + "StellarAssetType", + "trezor.enums.StellarAssetType", + "StellarMemoType", + "trezor.enums.StellarMemoType", + "StellarSignerType", + "trezor.enums.StellarSignerType", + "TezosBallotType", + "trezor.enums.TezosBallotType", + "TezosContractType", + "trezor.enums.TezosContractType", + "binance", + "apps.binance", + "apps.binance.get_address", + "apps.binance.get_public_key", + "apps.binance.helpers", + "apps.binance.layout", + "apps.binance.sign_tx", + "zcash_v4", + "apps.bitcoin.sign_tx.zcash_v4", + "apps.cardano", + "apps.cardano.addresses", + "auxiliary_data", + "apps.cardano.auxiliary_data", + "byron_addresses", + "apps.cardano.byron_addresses", + "apps.cardano.certificates", + "apps.cardano.get_address", + "get_native_script_hash", + "apps.cardano.get_native_script_hash", + "apps.cardano.get_public_key", + "apps.cardano.helpers", + "account_path_check", + "apps.cardano.helpers.account_path_check", + "apps.cardano.helpers.bech32", + "credential", + "apps.cardano.helpers.credential", + "hash_builder_collection", + "apps.cardano.helpers.hash_builder_collection", + "network_ids", + "apps.cardano.helpers.network_ids", + "apps.cardano.helpers.paths", + "protocol_magics", + "apps.cardano.helpers.protocol_magics", + "apps.cardano.helpers.utils", + "apps.cardano.layout", + "native_script", + "apps.cardano.native_script", + "apps.cardano.seed", + "apps.cardano.sign_tx", + "multisig_signer", + "apps.cardano.sign_tx.multisig_signer", + "ordinary_signer", + "apps.cardano.sign_tx.ordinary_signer", + "plutus_signer", + "apps.cardano.sign_tx.plutus_signer", + "pool_owner_signer", + "apps.cardano.sign_tx.pool_owner_signer", + "apps.cardano.sign_tx.signer", + "mnemonic", + "apps.common.mnemonic", + "eos", + "apps.eos", + "actions", + "apps.eos.actions", + "apps.eos.actions.layout", + "apps.eos.get_public_key", + "apps.eos.helpers", + "apps.eos.layout", + "apps.eos.sign_tx", + "apps.eos.writers", + "ethereum", + "apps.ethereum", + "apps.ethereum.definitions", + "definitions_constants", + "apps.ethereum.definitions_constants", + "apps.ethereum.get_address", + "apps.ethereum.get_public_key", + "apps.ethereum.helpers", + "apps.ethereum.keychain", + "apps.ethereum.layout", + "apps.ethereum.networks", + "apps.ethereum.sign_message", + "apps.ethereum.sign_tx", + "sign_tx_eip1559", + "apps.ethereum.sign_tx_eip1559", + "sign_typed_data", + "apps.ethereum.sign_typed_data", + "apps.ethereum.tokens", + "apps.ethereum.verify_message", + "apps.monero", + "diag", + "apps.monero.diag", + "apps.monero.get_address", + "get_tx_keys", + "apps.monero.get_tx_keys", + "get_watch_only", + "apps.monero.get_watch_only", + "key_image_sync", + "apps.monero.key_image_sync", + "apps.monero.layout", + "live_refresh", + "apps.monero.live_refresh", + "apps.monero.misc", + "apps.monero.sign_tx", + "signing", + "apps.monero.signing", + "offloading_keys", + "apps.monero.signing.offloading_keys", + "state", + "apps.monero.signing.state", + "step_01_init_transaction", + "apps.monero.signing.step_01_init_transaction", + "step_02_set_input", + "apps.monero.signing.step_02_set_input", + "step_04_input_vini", + "apps.monero.signing.step_04_input_vini", + "step_05_all_inputs_set", + "apps.monero.signing.step_05_all_inputs_set", + "step_06_set_output", + "apps.monero.signing.step_06_set_output", + "step_07_all_outputs_set", + "apps.monero.signing.step_07_all_outputs_set", + "step_09_sign_input", + "apps.monero.signing.step_09_sign_input", + "step_10_sign_final", + "apps.monero.signing.step_10_sign_final", + "xmr", + "apps.monero.xmr", + "apps.monero.xmr.addresses", + "bulletproof", + "apps.monero.xmr.bulletproof", + "chacha_poly", + "apps.monero.xmr.chacha_poly", + "clsag", + "apps.monero.xmr.clsag", + "apps.monero.xmr.credentials", + "crypto_helpers", + "apps.monero.xmr.crypto_helpers", + "keccak_hasher", + "apps.monero.xmr.keccak_hasher", + "apps.monero.xmr.key_image", + "mlsag_hasher", + "apps.monero.xmr.mlsag_hasher", + "apps.monero.xmr.monero", + "apps.monero.xmr.networks", + "range_signatures", + "apps.monero.xmr.range_signatures", + "apps.monero.xmr.serialize", + "base_types", + "apps.monero.xmr.serialize.base_types", + "int_serialize", + "apps.monero.xmr.serialize.int_serialize", + "message_types", + "apps.monero.xmr.serialize.message_types", + "readwriter", + "apps.monero.xmr.serialize.readwriter", + "serialize_messages", + "apps.monero.xmr.serialize_messages.base", + "tx_ct_key", + "apps.monero.xmr.serialize_messages.tx_ct_key", + "tx_ecdh", + "apps.monero.xmr.serialize_messages.tx_ecdh", + "tx_prefix", + "apps.monero.xmr.serialize_messages.tx_prefix", + "tx_rsig_bulletproof", + "apps.monero.xmr.serialize_messages.tx_rsig_bulletproof", + "apps.nem", + "apps.nem.get_address", + "apps.nem.helpers", + "apps.nem.layout", + "apps.nem.mosaic", + "apps.nem.mosaic.helpers", + "apps.nem.mosaic.layout", + "nem_mosaics", + "apps.nem.mosaic.nem_mosaics", + "apps.nem.mosaic.serialize", + "apps.nem.multisig", + "apps.nem.multisig.layout", + "apps.nem.multisig.serialize", + "apps.nem.namespace", + "apps.nem.namespace.layout", + "apps.nem.namespace.serialize", + "apps.nem.sign_tx", + "apps.nem.transfer", + "apps.nem.transfer.layout", + "apps.nem.transfer.serialize", + "validators", + "apps.nem.validators", + "apps.nem.writers", + "ripple", + "apps.ripple", + "base58_ripple", + "apps.ripple.base58_ripple", + "apps.ripple.get_address", + "apps.ripple.helpers", + "apps.ripple.layout", + "apps.ripple.serialize", + "apps.ripple.sign_tx", + "stellar", + "apps.stellar", + "consts", + "apps.stellar.consts", + "apps.stellar.get_address", + "apps.stellar.helpers", + "apps.stellar.layout", + "operations", + "apps.stellar.operations", + "apps.stellar.operations.layout", + "apps.stellar.operations.serialize", + "apps.stellar.sign_tx", + "apps.stellar.writers", + "tezos", + "apps.tezos", + "apps.tezos.get_address", + "apps.tezos.get_public_key", + "apps.tezos.helpers", + "apps.tezos.layout", + "apps.tezos.sign_tx", + "webauthn", + "apps.webauthn", + "add_resident_credential", + "apps.webauthn.add_resident_credential", + "apps.webauthn.common", + "apps.webauthn.credential", + "apps.webauthn.fido2", + "knownapps", + "apps.webauthn.knownapps", + "list_resident_credentials", + "apps.webauthn.list_resident_credentials", + "remove_resident_credential", + "apps.webauthn.remove_resident_credential", + "apps.webauthn.resident_credentials", + "zcash", + "apps.zcash", + "f4jumble", + "apps.zcash.f4jumble", + "apps.zcash.hasher", + "apps.zcash.signer", + "unified_addresses", + "apps.zcash.unified_addresses", + "typing", + "a", + "A", + "b", + "B", + "c", + "C", + "d", + "D", + "E", + "f", + "F", + "g", + "G", + "h", + "H", + "i", + "I", + "j", + "J", + "k", + "l", + "M", + "n", + "N", + "o", + "O", + "p", + "P", + "q", + "Q", + "r", + "s", + "S", + "t", + "u", + "U", + "v", + "V", + "w", + "W", + "X", + "Y", + "z", + "Z", + "boot.py", + "config", + "allow_all_loader_messages", + "ignore_nonpin_loader_messages", + "show_pin_timeout", + "Lockscreen", + "can_lock_device", + "verify_user_pin", + "schedule", + "run", + "get_label", + "display", + "get_rotation", + "init_unlocked", + "PinCancelled", + "main.py", + "presize_module", + "unimport", + "bus", + "get_device_id", + "unimport_manager", + "session.py", + "ENABLE_IFACE_WEBAUTHN", + "set_homescreen", + "start_default", + "setup", + "iface_wire", + "typing.py", + "_GenericTypingObject", + "TYPE_CHECKING", + "_TYPING_OBJECT", + "usb.py", + "io", + "TREZOR", + "uos", + "getenv", + "21324", + "UDP_PORT", + "_iface_iter", + "ENABLE_IFACE_DEBUG", + "ENABLE_IFACE_VCP", + "id_wire", + "id_webauthn", + "iface_webauthn", + "SatoshiLabs", + "TREZOR Interface", + "TREZOR_UDP_PORT", + "trezor/__init__.py", + "trezor/errors.py", + "MnemonicError", + "trezor/log.py", + "_log", + "info", + "error", + "exception", + "Result", + "Cancelled", + "exception:", + "_leveldict", + "color", + "mlevel", + "msg", + "exc", + "DEBUG", + "32", + "36", + "WARNING", + "33", + "ERROR", + "31", + "CRITICAL", + "1;31", + "ui.Result: %s", + "ui.Cancelled", + "trezor/loop.py", + "TaskClosed", + "Syscall", + "race", + "chan", + "spawn", + "Timer", + "pause", + "finalize", + "_step", + "handle", + "exit_others", + "Put", + "Take", + "delay_ms", + "msg_iface", + "children", + "finished", + "scheduled", + "_finish", + "callback", + "exit", + "putters", + "takers", + "put", + "task", + "take", + "publish", + "_schedule_put", + "_schedule_take", + "finalizer_callback", + "return_value", + "finalizer", + "_finalize", + "set_finalizer", + "is_running", + "before_task", + "ch", + "after_step_hook", + "_queue", + "_paused", + "_finalizers", + "this_task", + "TASK_CLOSED", + "_type_gen", + "reschedule", + "iface", + "except_for", + "result", + "putter", + "taker", + "caller", + "trezor/messages.py", + "trezor/pin.py", + "render_empty_loader", + "pin_progress", + "report", + "Done", + "_previous_seconds", + "_previous_remaining", + "_progress_layout", + "_started_with_empty_loader", + "keepalive_callback", + "_ignore_loader_messages", + "seconds", + "Processing", + "Starting up", + "1 second left", + "{} seconds left", + "trezor/protobuf.py", + "load_message_buffer", + "dump_message_buffer", + "buffer", + "msg_wire_type", + "experimental_enabled", + "trezor/sdcard.py", + "FilesystemWrapper", + "filesystem", + "get_instance", + "mounted", + "with_filesystem", + "_INSTANCE", + "_deinit_instance", + "wrapped_func", + "HAVE_SDCARD", + "func", + "cls", + "exc_type", + "exc_val", + "tb", + "trezor/strings.py", + "format_amount", + "-", + "{:,}", + ",", + "0", + ".", + "format_ordinal", + "st", + "nd", + "rd", + "th", + "format_plural", + "aeiouy", + "ies", + "hsxz", + "es", + "plural", + "format_duration_ms", + "format_timestamp", + "number", + "string", + "milliseconds", + "{}{}.{:0{}}", + "{count}", + "{plural}", + "hour", + "minute", + "second", + "millisecond", + "{count} {plural}", + "trezor/utils.py", + "T2B1", + "HashWriter", + "BufferReader", + "unimport_begin", + "unimport_end", + "ensure", + "chunks", + "obj_eq", + "obj_repr", + "<{}: {}>", + "truncate_utf8", + "is_empty_iterator", + "empty_bytearray", + "mods", + "ctx", + "buf", + "get_digest", + "offset", + "read_memoryview", + "remaining_count", + "peek", + "MODEL_IS_T2B1", + "DISABLE_ANIMATION", + "modname", + "cond", + "__o", + "max_bytes", + "preallocate", + "_exc_type", + "_exc_value", + "_tb", + "dst", + "___PRESIZE_MODULE_{}", + "trezor/workflow.py", + "IdleTimer", + "_on_start", + "_on_close", + "set_default", + "close_others", + "homescreen_shown", + "_finalize_default", + "timeouts", + "tasks", + "_timeout_task", + "touch", + "autolock_last_touch", + "_restore_from_cache", + "ALLOW_WHILE_LOCKED", + "default_task", + "default_constructor", + "autolock_interrupts_workflow", + "idle_timer", + "constructor", + "timeout_ms", + "trezor/crypto/__init__.py", + "trezor/crypto/base32.py", + "!HHB", + "{:010x}", + "ascii", + "_b32alphabet", + "_b32tab", + "_b32rev", + "Incorrect padding", + "Non-base32 digit found", + "trezor/crypto/base58.py", + "sha256d_32", + "groestl512d_32", + "blake256d_32", + "keccak_32", + "ripemd160_32", + "encode_check", + "decode_check", + "verify_checksum", + "_alphabet", + "alphabet", + "digestfunc", + "Invalid checksum", + "trezor/crypto/bech32.py", + "Encoding", + "bech32_polymod", + "bech32_hrp_expand", + "_bech32_create_checksum", + "bech32_encode", + "1", + "convertbits", + "bech32_decode", + "IntEnum", + "CHARSET", + "hrp", + "spec", + "frombits", + "tobits", + "arbitrary_input", + "witver", + "witprog", + "trezor/crypto/cashaddr.py", + "cashaddr_polymod", + "prefix_expand", + "_calculate_checksum", + "_b32decode", + "_b32encode", + ":", + "ADDRESS_TYPE_P2KH", + "ADDRESS_TYPE_P2SH", + "prefix", + "payload_bytes", + "Bad cashaddr checksum", + "trezor/crypto/cosi.py", + "select_keys", + "commit", + "combine_publickeys", + "combine_signatures", + "sigmask", + "trezor/crypto/curve.py", + "trezor/crypto/der.py", + "encode_length", + "read_length", + "_write_int", + "_read_int", + "encode_seq", + "decode_seq", + "seq", + "trezor/crypto/hashlib.py", + "trezor/crypto/rlp.py", + "_byte_size", + "int_to_bytes", + "big", + "write_header", + "header_length", + "_write_string", + "_write_list", + "STRING_HEADER_BYTE", + "LIST_HEADER_BYTE", + "header_byte", + "data_start", + "item", + "lst", + "trezor/crypto/scripts.py", + "sha256_ripemd160", + "blake256_ripemd160", + "trezor/crypto/slip39.py", + "Share", + "_bits_to_bytes", + "_bits_to_words", + "_xor", + "generate_random_identifier", + "split_ems", + "recover_ems", + "decode_mnemonic", + "_int_from_indices", + "_int_to_indices", + "_mnemonic_from_indices", + "_mnemonic_to_indices", + "_rs1024_create_checksum", + "_rs1024_polymod", + "_rs1024_verify_checksum", + "_round_function", + "_get_salt", + "_create_digest", + "_split_secret", + "_recover_secret", + "_group_prefix", + "_encode_mnemonic", + "_decode_mnemonics", + "identifier", + "iteration_exponent", + "group_threshold", + "group_count", + "group_index", + "share_value", + "_ID_EXP_LENGTH_WORDS", + "_CUSTOMIZATION_STRING", + "_METADATA_LENGTH_WORDS", + "_MIN_MNEMONIC_LENGTH_WORDS", + "MAX_SHARE_COUNT", + "MAX_GROUP_COUNT", + "DEFAULT_ITERATION_EXPONENT", + "encrypted_master_secret", + "progress_callback", + "groups", + "indices", + "bits", + "random_data", + "shared_secret", + "share_count", + "shares", + "member_index", + "member_threshold", + "Invalid mnemonic length.", + "Invalid mnemonic padding", + "trezor/ui/__init__.py", + "Component", + "_alert", + "BACKLIGHT_MAX", + "BACKLIGHT_DIM", + "BACKLIGHT_NORMAL", + "alert", + "backlight_fade", + "wait_until_layout_is_running", + "repaint", + "dispatch", + "on_render", + "on_touch_start", + "on_touch_move", + "on_touch_end", + "BUTTON_PRESSED", + "on_button_pressed", + "BUTTON_RELEASED", + "on_button_released", + "create_tasks", + "handle_input", + "handle_rendering", + "BUTTON", + "_before_render", + "BACKLIGHT_NONE", + "BACKLIGHT_LEVEL", + "RENDER_SLEEP", + "NORMAL", + "BOLD", + "DEMIBOLD", + "MONO", + "layout_chan", + "_alert_in_progress", + "RENDER", + "REPAINT", + "val", + "delay", + "__await__", + "event", + "button_number", + "T1B1", + "D001", + "Unknown Trezor model", + "trezor/ui/style.py", + "BACKLIGHT_LOW", + "trezor/ui/layouts/__init__.py", + "trezor/ui/layouts/common.py", + "Other", + "button_request", + "maybe_call", + "interact", + "br_type", + "br_code", + "trezor/ui/layouts/fido.py", + "tt.fido", + "trezor/ui/layouts/homescreen.py", + "tt.homescreen", + "trezor/ui/layouts/progress.py", + "tt.progress", + "trezor/ui/layouts/recovery.py", + "tt.recovery", + "trezor/ui/layouts/reset.py", + "tt.reset", + "trezor/ui/layouts/tt/__init__.py", + "ActionCancelled", + "RustLayout", + "address_qr", + "multisig_index", + "mismatch_title", + "show_address", + "Public key", + "show_pubkey", + "TRY AGAIN", + "CONTINUE", + "Warning", + "ConfirmOutput", + "Show all", + "should_show_more", + "CONFIRM", + "Address:", + "Amount:", + "confirm_amount", + "SUMMARY", + "draw_simple", + "raise_if_not_confirmed", + "confirm_single", + "{}", + "ProtectCall", + "prompt_backup", + "SUCCESS", + "BACK UP", + "SKIP", + "confirm_path_warning", + "UnknownDerivationPath", + "show_error_and_raise", + "confirm_output", + "CONFIRM ", + "AMOUNT #{}", + "SENDING TO", + "^", + "confirm_payment_request", + "SENDING", + "\x7b\x7d\x20\x74\x6f\x0a\x7b\x7d", + "DETAILS", + "_confirm_ask_pagination", + "para", + "CLOSE", + "confirm_text", + "Fee rate:", + "RECIPIENT", + "confirm_metadata", + "description_param", + "confirm_replacement", + "with_info", + "modify_fee", + "confirm_sign_identity", + "Sign {}", + "confirm_signverify", + "show_error_popup", + "\x0a\x7b\x7d", + "request_passphrase_on_host", + "request_passphrase_on_device", + "PassphraseEntry", + "request_pin_on_device", + "pin_device", + "PinEntry", + "confirm_reenter_pin", + "pin_mismatch_popup", + "wipe codes", + "PINs", + "wipe_code_same_as_pin_popup", + "confirm_set_new_pin", + "Turn on ", + "TURN ON", + "set_timer", + "_paint", + "handle_timers", + "handle_input_and_rendering", + "_first_paint", + "dummy_set_timer", + "xpub_title", + "(YOURS)", + "(COSIGNER)", + "ctx_wait", + "BR_TYPE_OTHER", + "path_type", + "content", + "subheader", + "output_index", + "button_text", + "confirm", + "ask_pagination", + "props", + "param", + "txid", + "main_layout", + "info_layout", + "max_fee_per_vbyte", + "coin", + "attempts_remaining", + "is_wipe_code", + "information", + "token", + "Address mismatch?", + "Key mismatch?", + "Total amount:", + "Including fee:", + "RECOVER WALLET", + "CREATE WALLET", + "recover_device", + "setup_device", + "Unknown {}.", + "Continue anyway?", + "path_warning", + "CHANGE HOMESCREEN", + "set_homesreen", + "RECEIVE ADDRESS", + "RECEIVING TO", + "RECIPIENT #{}", + "SENDING AMOUNT", + "Sending from account:", + "INFORMATION", + "Maximum fee:", + "FEE INFORMATION", + "JOINT TRANSACTION", + "You are contributing:", + "To the total amount:", + "Transaction ID:", + "modify_output", + "MODIFY AMOUNT", + "New fee rate:", + "coinjoin_final", + "VERIFY {} MESSAGE", + "SIGN {} MESSAGE", + "Confirm address:", + "Confirm message:", + "Enter passphrase", + "passphrase_device", + "Last attempt", + "{} tries left", + "pin_mismatch", + "Wipe code mismatch", + "PIN mismatch", + "wipe_code_same_as_pin", + "Invalid wipe code", + "\x20\x70\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x3f\x0a\x0a", + "\x4d\x55\x4c\x54\x49\x53\x49\x47\x20\x58\x50\x55\x42\x20\x23\x7b\x7d\x0a", + "trezor/ui/layouts/tt/fido.py", + "confirm_fido_reset", + "_RustFidoLayout", + "FIDO2 RESET", + "erase all credentials?", + "Do you really want to", + "trezor/ui/layouts/tt/homescreen.py", + "HomescreenBase", + "Homescreen", + "Busyscreen", + "HOMESCREEN_ON", + "LOCKSCREEN_ON", + "BUSYSCREEN_ON", + "RENDER_INDICATOR", + "!", + "COINJOIN", + "usb_checker_task", + "APP_COMMON_BUSY_DEADLINE_MS", + "storage_cache", + "notification_is_error", + "hold_to_lock", + "EXPERIMENTAL", + "Waiting for others", + "trezor/ui/layouts/tt/progress.py", + "RustProgress", + "bitcoin_progress", + "coinjoin_progress", + "monero_keyimage_sync_progress", + "SYNCING", + "monero_live_refresh_progress", + "REFRESHING", + "monero_transaction_progress_inner", + "PLEASE WAIT", + "SIGNING TRANSACTION", + "trezor/ui/layouts/tt/recovery.py", + "_is_confirmed_info", + "request_word_count", + "MnemonicWordCount", + "request_word", + "share", + "group", + "Share {}", + "from", + "Group {}", + "continue_recovery", + "RecoveryHomepage", + "show_recovery_warning", + "dialog", + "info_func", + "is_slip39", + "shares_remaining", + "share_index", + "button_label", + "subtext", + "Type word {} of {}", + "show_shares", + "You have entered", + "share_success", + "trezor/ui/layouts/tt/reset.py", + "_split_share_into_pages", + "{:>{}}. {}", + "CHECK SEED", + "slip39_show_checklist", + "Slip39_Basic", + "_prompt_number", + "slip39_prompt_threshold", + "slip39_prompt_number_of_shares", + "slip39_advanced_prompt_number_of_groups", + "slip39_advanced_prompt_group_threshold", + "show_warning_backup", + "show_success_backup", + "show_reset_warning", + "1 share.", + "per_page", + "checked_index", + "br_name", + "num_of_shares", + "group_id", + "num_of_groups", + "RECOVERY SEED", + "RECOVERY SHARE #{}", + "GROUP {} - SHARE {}", + "backup_words", + "CHECK SHARE #{}", + "CHECK G{} - SHARE {}", + "Select word {} of {}:", + "Set number of shares", + "Set threshold", + "Set number of groups", + "BACKUP CHECKLIST", + "slip39_checklist", + "OK, I UNDERSTAND", + "SET THRESHOLD", + "slip39_threshold", + "SET NUMBER OF SHARES", + "slip39_shares", + "SET NUMBER OF GROUPS", + "slip39_groups", + "SET GROUP THRESHOLD", + "slip39_group_threshold", + "backup_warning", + "success_backup", + "Your backup is done.", + "needed to form a group. ", + "need 1 share ", + "to form Group {}.", + "trezor/wire/__init__.py", + "InvalidSessionError", + "DataError", + "Error", + "SESSION_ID", + "wrap_protobuf_load", + "_handle_single_message", + "with_context", + "UnexpectedMessage", + "handle_session", + "Context", + "read_from_wire", + "CodecError", + "use_workflow", + "_find_handler_placeholder", + "failure", + "InvalidSession", + "FirmwareError", + "unexpected_message", + "EXPERIMENTAL_ENABLED", + "WIRE_BUFFER", + "find_handler", + "AVOID_RESTARTING_FOR", + "is_debug_session", + "expected_type", + "msg_type", + "Failed to decode message", + "Invalid session", + "Firmware error", + "Unexpected message", + "trezor/wire/codec_v1.py", + ">BBBHL", + "Message", + "read_message", + "write_message", + "_REP_INIT", + "mtype", + "mdata", + "Invalid magic", + "Message too large", + "trezor/wire/context.py", + "call", + "call_any", + "get_context", + "sid", + "CURRENT_CONTEXT", + "expected_types", + "No wire context", + "trezor/wire/errors.py", + "ButtonExpected", + "PinExpected", + "PinInvalid", + "InvalidSignature", + "ProcessError", + "NotEnoughFunds", + "NotInitialized", + "PinMismatch", + "WipeCodeMismatch", + "PIN entry cancelled", + "PIN invalid", + "storage/__init__.py", + "clear_all", + "get_version", + "STORAGE_VERSION_01", + "is_version_stored", + "is_initialized", + "set_bool", + "APP_DEVICE", + "INITIALIZED", + "public", + "DEVICE_ID", + "_migrate_from_version_01", + "U2F_COUNTER", + "set_version", + "STORAGE_VERSION_CURRENT", + "storage/cache.py", + "DataCache", + "SessionCache", + "SessionlessCache", + "start_session", + "last_usage", + "export_session_id", + "end_current_session", + "set_int", + "fields", + "get_int", + "get_int_all_sessions", + "is_set", + "stored", + "stored_async", + "decorator", + "wrapper", + "APP_COMMON_SEED", + "APP_COMMON_AUTHORIZATION_TYPE", + "APP_COMMON_AUTHORIZATION_DATA", + "APP_COMMON_NONCE", + "APP_COMMON_DERIVE_CARDANO", + "APP_CARDANO_ICARUS_SECRET", + "APP_CARDANO_ICARUS_TREZOR_SECRET", + "APP_MONERO_LIVE_REFRESH", + "APP_COMMON_SEED_WITHOUT_PASSPHRASE", + "APP_COMMON_SAFETY_CHECKS_TEMPORARY", + "STORAGE_DEVICE_EXPERIMENTAL_FEATURES", + "APP_COMMON_REQUEST_PIN_LAST_UNLOCK", + "APP_MISC_COSI_NONCE", + "APP_MISC_COSI_COMMITMENT", + "_SESSIONS", + "_SESSIONLESS_CACHE", + "_active_session_idx", + "_session_usage_counter", + "received_session_id", + "storage/common.py", + "set_true_or_delete", + "get_bool", + "set_uint8", + "get_uint8", + "set_uint16", + "get_uint16", + "APP_RECOVERY", + "APP_RECOVERY_SHARES", + "APP_WEBAUTHN", + "_FALSE_BYTE", + "_TRUE_BYTE", + "app", + "writable_locked", + "storage/debug.py", + "Debugging is disabled", + "storage/device.py", + "set_rotation", + "set_label", + "get_mnemonic_secret", + "get_backup_type", + "Bip39", + "Slip39_Advanced", + "is_passphrase_enabled", + "set_passphrase_enabled", + "store_mnemonic_secret", + "set_backed_up", + "set_unfinished_backup", + "get_passphrase_always_on_device", + "set_passphrase_always_on_device", + "get_flags", + "_normalize_autolock_delay", + "get_autolock_delay_ms", + "set_autolock_delay_ms", + "next_u2f_counter", + "set_slip39_identifier", + "get_slip39_identifier", + "set_slip39_iteration_exponent", + "get_slip39_iteration_exponent", + "get_sd_salt_auth_key", + "set_sd_salt_auth_key", + "safety_check_level", + "set_safety_check_level", + "_get_experimental_features", + "get_experimental_features", + "set_experimental_features", + "set_hide_passphrase_from_host", + "get_hide_passphrase_from_host", + "_NAMESPACE", + "SAFETY_CHECK_LEVEL_STRICT", + "SAFETY_CHECK_LEVEL_PROMPT", + "_DEFAULT_SAFETY_CHECK_LEVEL", + "HOMESCREEN_MAXSIZE", + "LABEL_MAXLENGTH", + "AUTOLOCK_DELAY_MINIMUM", + "AUTOLOCK_DELAY_DEFAULT", + "AUTOLOCK_DELAY_MAXIMUM", + "SD_SALT_AUTH_KEY_LEN_BYTES", + "secret", + "exponent", + "auth_key", + "enabled", + "hide", + "storage/fido2.py", + "KEY_AGREEMENT_PRIVKEY", + "KEY_AGREEMENT_PUBKEY", + "storage/recovery.py", + "_require_progress", + "set_in_progress", + "is_in_progress", + "set_dry_run", + "is_dry_run", + "set_slip39_group_count", + "get_slip39_group_count", + "set_slip39_remaining_shares", + "get_slip39_remaining_shares", + "fetch_slip39_remaining_shares", + "end_progress", + "storage/recovery_shares.py", + "fetch_group", + "storage/resident_credentials.py", + "delete_all", + "MAX_RESIDENT_CREDENTIALS", + "storage/sd_salt.py", + "WrongSdCard", + "is_enabled", + "compute_auth_tag", + "_get_device_dir", + "_get_salt_path", + ".new", + "{}/salt{}", + "_load_salt", + "load_sd_salt", + "new", + "set_sd_salt", + "/trezor", + "commit_sd_salt", + "remove_sd_salt", + "SD_CARD_HOT_SWAPPABLE", + "SD_SALT_LEN_BYTES", + "salt_tag", + "stage", + "/trezor/device_{}", + "trezor/enums/AmountUnit.py", + "BITCOIN", + "MILLIBITCOIN", + "MICROBITCOIN", + "SATOSHI", + "trezor/enums/BackupType.py", + "trezor/enums/ButtonRequestType.py", + "FeeOverThreshold", + "ConfirmWord", + "FirmwareCheck", + "MnemonicInput", + "trezor/enums/Capability.py", + "Bitcoin", + "Crypto", + "Shamir", + "ShamirGroups", + "Bitcoin_like", + "Binance", + "Cardano", + "EOS", + "Ethereum", + "Monero", + "NEM", + "Ripple", + "Stellar", + "Tezos", + "U2F", + "trezor/enums/DebugButton.py", + "NO", + "YES", + "trezor/enums/DebugPhysicalButton.py", + "LEFT_BTN", + "MIDDLE_BTN", + "RIGHT_BTN", + "trezor/enums/DebugSwipeDirection.py", + "UP", + "DOWN", + "LEFT", + "RIGHT", + "trezor/enums/DecredStakingSpendType.py", + "SSGen", + "SSRTX", + "trezor/enums/FailureType.py", + "trezor/enums/HomescreenFormat.py", + "Toif", + "Jpeg", + "ToiG", + "trezor/enums/InputScriptType.py", + "SPENDADDRESS", + "SPENDMULTISIG", + "EXTERNAL", + "SPENDWITNESS", + "SPENDP2SHWITNESS", + "SPENDTAPROOT", + "trezor/enums/MessageType.py", + "FirmwareErase", + "FirmwareUpload", + "FirmwareRequest", + "SelfTest", + "TxAck", + "trezor/enums/OutputScriptType.py", + "PAYTOADDRESS", + "PAYTOSCRIPTHASH", + "PAYTOMULTISIG", + "PAYTOOPRETURN", + "PAYTOWITNESS", + "PAYTOP2SHWITNESS", + "PAYTOTAPROOT", + "trezor/enums/PinMatrixRequestType.py", + "Current", + "NewFirst", + "NewSecond", + "WipeCodeFirst", + "WipeCodeSecond", + "trezor/enums/RecoveryDeviceType.py", + "ScrambledWords", + "Matrix", + "trezor/enums/RequestType.py", + "TXINPUT", + "TXOUTPUT", + "TXMETA", + "TXFINISHED", + "TXEXTRADATA", + "TXORIGINPUT", + "TXORIGOUTPUT", + "TXPAYMENTREQ", + "trezor/enums/SafetyCheckLevel.py", + "Strict", + "PromptAlways", + "PromptTemporarily", + "trezor/enums/SdProtectOperationType.py", + "DISABLE", + "ENABLE", + "REFRESH", + "trezor/enums/WordRequestType.py", + "Plain", + "Matrix9", + "Matrix6", + "trezor/enums/__init__.py", + "apps/__init__.py", + "apps/base.py", + "busy_expiry_ms", + "get_features", + "trezor.io", + "en-US", + "get_type", + "read_setting", + "handle_Initialize", + "handle_GetFeatures", + "handle_Cancel", + "handle_LockDevice", + "handle_SetBusy", + "handle_EndSession", + "handle_Ping", + "ping", + "Confirm", + "handle_DoPreauthorized", + "get_wire_types", + "find_registered_handler", + "handle_UnlockPath", + "SLIP25_PURPOSE", + "Slip21Node", + "get_seed", + "write_uint32_le", + "Coinjoin", + "ACCESS", + "handle_CancelAuthorization", + "busyscreen", + "lockscreen", + "recovery_homescreen", + "lock_device", + "lock_device_if_unlocked", + "interrupt_workflow", + "unlock_device", + "get_pinlocked_handler", + "reload_settings_from_storage", + "register", + "storage_device", + "Invalid path", + "Invalid MAC", + "confirm_coinjoin_access", + "Authorization cancelled", + "apps/workflow_handlers.py", + "_find_message_handler_module", + "wire_type", + "handler", + "apps/common/__init__.py", + "apps/common/address_mac.py", + "check_address_mac", + "get_address_mac", + "write_bytes_unchecked", + "write_compact_size", + "derive_slip21", + "_ADDRESS_MAC_KEY_PATH", + "Invalid address MAC.", + "apps/common/address_type.py", + "tobytes", + "raw_address", + "apps/common/authorization.py", + "is_set_any_session", + "WIRE_TYPES", + "auth_message", + "auth_type", + "apps/common/cbor.py", + "Tagged", + "Raw", + "IndefiniteLengthArray", + "OrderedMap", + "_header", + ">B", + ">BB", + ">BH", + ">BI", + ">BQ", + "_cbor_encode", + "_read_length", + "read_uint16_be", + "read_uint32_be", + "read_uint64_be", + "_cbor_decode", + "encode_streamed", + "create_array_header", + "create_map_header", + "create_embedded_cbor_bytes_header", + "precedes", + "_internal_list", + "Generic", + "typ", + "aux", + "prev", + "curr", + "other", + "apps/common/coininfo.py", + "CoinInfo", + "by_name", + "BTC", + "bc", + "Regtest", + "REGTEST", + "bcrt", + "Testnet", + "TEST", + "Actinium", + "ACM", + "acm", + "Axe", + "AXE", + "Bcash", + "BCH", + "TBCH", + "bchtest", + "Bgold", + "BTG", + "btg", + "TBTG", + "tbtg", + "Bprivate", + "BTCP", + "Bitcore", + "BTX", + "btx", + "CPUchain", + "CPU", + "cpu", + "Crown", + "CRW", + "Dash", + "DASH", + "tDASH", + "Decred", + "DCR", + "TDCR", + "DigiByte", + "DGB", + "dgb", + "Dogecoin", + "DOGE", + "Elements", + "ELEMENTS", + "ert", + "el", + "FTC", + "fc", + "Firo", + "FIRO", + "tFIRO", + "Florincoin", + "FLO", + "flo", + "Fujicoin", + "FJC", + "GRS", + "grs", + "tGRS", + "tgrs", + "Komodo", + "KMD", + "Koto", + "KOTO", + "Litecoin", + "LTC", + "ltc", + "tLTC", + "tltc", + "Monacoin", + "MONA", + "mona", + "Namecoin", + "NMC", + "Peercoin", + "PPC", + "pc", + "tPPC", + "tpc", + "Primecoin", + "XPM", + "Qtum", + "QTUM", + "qc", + "tQTUM", + "tq", + "Ravencoin", + "RVN", + "tRVN", + "Ritocoin", + "RITO", + "SmartCash", + "SMART", + "tSMART", + "Stakenet", + "XSN", + "xc", + "Syscoin", + "SYS", + "Unobtanium", + "UNO", + "VIPS", + "vips", + "Verge", + "XVG", + "Vertcoin", + "VTC", + "vtc", + "Viacoin", + "VIA", + "via", + "ZCore", + "ZCR", + "Zcash", + "ZEC", + "TAZ", + "Brhodium", + "XRC", + "coin_shortcut", + "address_type_p2sh", + "maxfee_kb", + "signed_message_header", + "xpub_magic", + "xpub_magic_segwit_p2sh", + "xpub_magic_segwit_native", + "xpub_magic_multisig_segwit_p2sh", + "xpub_magic_multisig_segwit_native", + "bech32_prefix", + "cashaddr_prefix", + "segwit", + "taproot", + "fork_id", + "force_bip143", + "negative_fee", + "extra_data", + "overwintered", + "confidential_assets", + "b58_hash", + "sign_hash_double", + "\x42\x69\x74\x63\x6f\x69\x6e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a", + "bitcoincash", + "Bcash Testnet", + "Bgold Testnet", + "\x42\x69\x74\x43\x6f\x72\x65\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a", + "\x43\x72\x6f\x77\x6e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a", + "Dash Testnet", + "\x44\x65\x63\x72\x65\x64\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a", + "secp256k1-decred", + "Decred Testnet", + "address_prefix", + "blech32_prefix", + "Feathercoin", + "\x5a\x63\x6f\x69\x6e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a", + "Firo Testnet", + "Groestlcoin", + "secp256k1-groestl", + "Groestlcoin Testnet", + "\x4b\x6f\x6d\x6f\x64\x6f\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a", + "\x4b\x6f\x74\x6f\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a", + "Litecoin Testnet", + "Peercoin Testnet", + "\x51\x74\x75\x6d\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a", + "Qtum Testnet", + "\x52\x61\x76\x65\x6e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a", + "Ravencoin Testnet", + "\x52\x69\x74\x6f\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a", + "secp256k1-smart", + "SmartCash Testnet", + "\x53\x79\x73\x63\x6f\x69\x6e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a", + "VIPSTARCOIN", + "\x4e\x61\x6d\x65\x3a\x20\x44\x6f\x67\x65\x63\x6f\x69\x6e\x20\x44\x61\x72\x6b\x0a", + "\x56\x69\x61\x63\x6f\x69\x6e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a", + "\x44\x61\x72\x6b\x4e\x65\x74\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a", + "\x5a\x63\x61\x73\x68\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a", + "Zcash Testnet", + "apps/common/coins.py", + "apps/common/keychain.py", + "LRUCache", + "Keychain", + "allow_testnet", + "get_keychain", + "with_slip44_keychain", + "PathSchema", + "parse", + "auto_keychain", + "PATTERN", + "CURVE", + "SLIP44_ID", + "slip44_id", + "cache_keys", + "schemas", + "slip21_namespaces", + "_cache", + "_root_fingerprint", + "verify_path", + "path_is_hardened", + "is_strict", + "is_in_keychain", + "_derive_with_cache", + "HARDENED", + "new_root", + "match", + "FORBIDDEN_KEY_PATH", + "prefix_len", + "Forbidden key path", + "apps/common/mnemonic.py", + "get_secret", + "is_bip39", + "derive_cardano_icarus", + "_start_progress", + "_render_progress", + "_finish_progress", + "_progress_obj", + "progress_bar", + "trezor_derivation", + "total", + "Mnemonic not set", + "apps/common/passphrase.py", + "_request_on_host", + "Continue", + "passphrase_host1_hidden", + "Hidden wallet", + "\x41\x63\x63\x65\x73\x73\x20\x68\x69\x64\x64\x65\x6e\x20\x77\x61\x6c\x6c\x65\x74\x3f\x0a\x7b\x7d", + "passphrase_host1", + "passphrase_host2", + "Confirm passphrase", + "apps/common/paths.py", + "Interval", + "AlwaysMatchingSchema", + "0-100", + "0,1", + "change", + "0-1000000", + "*'", + "**", + "validate_path", + "show_path_warning", + "is_hardened", + "address_n_to_str", + "m/", + "unharden", + "get_account_name", + "{} #{}", + "_get_account_num", + "_get_account_num_single", + "/account", + "_parse_hardened", + "_copy_container", + "_EMPTY_TUPLE", + "schema", + "trailing_components", + "WILDCARD_RANGES", + "'", + "[", + "]", + "REPLACEMENTS", + "compact", + "set_never_matching", + "restrict", + "_path_item", + "PATTERN_BIP44", + "PATTERN_BIP44_PUBKEY", + "PATTERN_SEP5", + "PATTERN_SEP5_LEDGER_LIVE_LEGACY", + "PATTERN_CASA", + "pattern", + "container", + "address_index", + "apps/common/readers.py", + "read_compact_size", + "read_uint16_le", + "read_uint32_le", + "apps/common/request_pin.py", + "Enter PIN", + "_request_sd_salt", + "SdCardUnavailable", + "request_sd_salt", + "request_pin_confirm", + "request_pin_and_sd_salt", + "_set_last_unlock_time", + "raise_cancelled_on_unavailable", + "error_pin_invalid", + "Wrong PIN", + "error_pin_matches_wipe_code", + "retry", + "cache_time_ms", + "SD salt is unavailable", + "Enter new PIN", + "Re-enter new PIN", + "warning_wrong_pin", + "warning_invalid_new_pin", + "Invalid PIN", + "apps/common/safety_checks.py", + "apply_setting", + "Unknown SafetyCheckLevel", + "apps/common/sdcard.py", + "_confirm_retry_wrong_card", + "Retry", + "Abort", + "_confirm_retry_insert_card", + "_confirm_format_card", + "Format", + "confirm_retry_sd", + "ensure_sdcard", + "ensure_filesystem", + "Error accessing SD card.", + "warning_wrong_sd", + "SD card protection", + "Wrong SD card.", + "warning_no_sd", + "SD card required.", + "warning_format_sd", + "SD card error", + "Unknown filesystem.", + "SD card not formatted.", + "confirm_format_sd", + "Format SD card", + "warning_sd_retry", + "SD card problem", + "apps/common/seed.py", + "derive_and_store_roots", + "derive_and_store_secrets", + "_get_seed_without_passphrase", + "derive_node_without_passphrase", + "derive_slip21_node_without_passphrase", + "remove_ed25519_prefix", + "get_passphrase", + "apps/common/signverify.py", + "message_digest", + "decode_message", + "hex({})", + "apps/common/writers.py", + "_write_uint", + "overflow", + "write_uint8", + "write_uint16_le", + "write_uint32_be", + "write_uint64_le", + "write_uint64_be", + "write_bytes_fixed", + "write_bytes_reversed", + "write_uvarint", + "bigendian", + "apps/debug/__init__.py", + "debug mode inactive", + "apps/debug/load_device.py", + "apps.management", + "is_slip39_word_count", + "Already initialized", + "No mnemonic provided", + "Mnemonic is not valid", + "warn_loading_seed", + "Loading seed", + "Invalid group count", + "Device loaded", + "apps/homescreen/__init__.py", + "SEEDLESS", + "COINJOIN AUTHORIZED", + "BACKUP FAILED", + "BACKUP NEEDED", + "PIN NOT SET", + "EXPERIMENTAL MODE", + "apps/management/apply_flags.py", + "Flags applied", + "apps/management/apply_settings.py", + "_validate_homescreen_model_specific", + "_validate_homescreen", + "_require_confirm_change_homescreen", + "_require_confirm_change_label", + "Change", + "_require_confirm_change_passphrase", + "on", + "off", + "Turn {}", + "_require_confirm_change_passphrase_source", + "_require_confirm_change_display_rotation", + "north", + "east", + "south", + "west", + "_require_confirm_change_autolock_delay", + "_require_confirm_safety_checks", + "_require_confirm_experimental_features", + "_require_confirm_hide_passphrase_from_host", + "BRT_PROTECT_CALL", + "use", + "rotation", + "Invalid homescreen", + "Unsupported jpeg type", + "No setting provided", + "Label too long", + "Auto-lock delay too long", + "Safety checks are strict", + "Settings applied", + "Device name", + "set_passphrase", + "Passphrase settings", + "set_passphrase_source", + "Passphrase source", + "Change rotation", + "set_autolock_delay", + "Auto-lock delay", + "set_safety_checks", + "Safety checks", + " temporarily ", + "Safety override", + "Are you sure?", + "Hold to confirm", + "Experimental mode", + "Hide passphrase", + "apps/management/authenticate_device.py", + "optiga", + "Allow", + "DEVICE_ECC_KEY_INDEX", + "SigningInaccessible", + "get_certificate", + "DEVICE_CERT_INDEX", + "Authenticate device", + "Checking authenticity...", + "Signing inaccessible.", + "apps/management/backup_device.py", + "backup_seed", + "show_backup_success", + "Seed already backed up", + "apps/management/backup_types.py", + "is_slip39_backup_type", + "infer_backup_type", + "_BIP39_WORD_COUNTS", + "_SLIP39_WORD_COUNTS", + "apps/management/change_pin.py", + "_require_confirm_change_pin", + "Turn off", + "set_pin", + "PIN", + "PIN changed.", + "PIN changed", + "PIN enabled", + "PIN removed", + "success_pin", + "PIN settings", + "disable_pin", + "Change PIN?", + "apps/management/change_wipe_code.py", + "_require_confirm_action", + "wipe code", + "_request_wipe_code_confirm", + "Wipe code changed.", + "Wipe code changed", + "Wipe code enabled.", + "Wipe code set", + "Wipe code disabled.", + "Wipe code removed", + "success_wipe_code", + "Wipe code settings", + "disable_wipe_code", + "Change wipe code?", + "set_wipe_code", + "Enter new wipe code", + "Re-enter wipe code", + "apps/management/get_next_u2f_counter.py", + "get_u2f_counter", + "Get U2F counter", + "apps/management/get_nonce.py", + "apps/management/reboot_to_bootloader.py", + "reboot", + "Restart", + "Rebooting", + "Go to bootloader", + "apps/management/sd_protect.py", + "_make_salt", + "_set_salt", + "_sd_protect_enable", + "success_sd", + "_sd_protect_disable", + "_sd_protect_refresh", + "require_confirm_sd_protect", + "set_sd", + "storage_sd_salt", + "SD card I/O error.", + "Unknown operation", + "apps/management/set_u2f_counter.py", + "SET", + "No value provided", + "Set U2F counter", + "U2F counter set", + "apps/management/show_tutorial.py", + "Tutorial shown", + "apps/management/wipe_device.py", + "confirm_wipe", + "Wipe device", + "All data will be erased.", + "Device wiped", + "apps/management/recovery_device/__init__.py", + "recovery_process", + "Check", + "DRY_RUN_ALLOWED_FIELDS", + "Recover wallet", + "confirm_seedcheck", + "Backup check", + "Check your backup?", + "apps/management/recovery_device/homescreen.py", + "RecoveryAborted", + "_continue_recovery_process", + "load_slip39_state", + "homescreen_dialog", + "request_mnemonic", + "show_invalid_mnemonic", + "_finish_recovery_dry_run", + "show_dry_run_result", + "_finish_recovery", + "_process_words", + "process_bip39", + "process_slip39", + "_request_share_first_screen", + "({} words)", + "_request_share_next_screen", + "Enter", + "_show_remaining_groups_and_shares", + "storage_recovery", + "storage_recovery_shares", + "success_recovery", + "Device recovered", + "Enter share", + "Enter any share", + "Enter your backup.", + "More shares needed", + "apps/management/recovery_device/layout.py", + "_confirm_abort", + "CANCEL", + "AlreadyAdded", + "IdentifierMismatch", + "ThresholdReached", + "abort_recovery", + "Cancel backup check", + "Cancel recovery", + "warning_known_share", + "Share already entered", + "warning_mismatched_share", + "warning_group_threshold", + "Group threshold reached.", + "success_dry_recovery", + "warning_dry_recovery", + "warning_invalid_share", + "Please try again", + "warning_invalid_seed", + "apps/management/recovery_device/recover.py", + "fetch_previous_mnemonics", + "apps/management/recovery_device/word_validity.py", + "WordValidityResult", + "_check_slip39_basic", + "_check_slip39_advanced", + "partial_mnemonic", + "previous_mnemonics", + "apps/management/reset_device/__init__.py", + "PROCESSING", + "show_internal_entropy", + "_backup_slip39_basic", + "slip39_basic_show_and_confirm_shares", + "_backup_slip39_advanced", + "slip39_advanced_show_and_confirm_shares", + "_validate_reset_device", + "_compute_secret_from_entropy", + "bip39_show_and_confirm_mnemonic", + "BAK_T_BIP39", + "BAK_T_SLIP39_BASIC", + "BAK_T_SLIP39_ADVANCED", + "_DEFAULT_BACKUP_TYPE", + "int_entropy", + "ext_entropy", + "strength_in_bytes", + "Create wallet (Shamir)", + "Create wallet", + "Failed to set PIN", + "Initialized", + "apps/management/reset_device/layout.py", + "_confirm_word", + "_share_words_confirmed", + "_do_confirm_share_words", + "_show_confirmation_success", + "_show_confirmation_failure", + "show_backup_warning", + "Internal entropy", + "Continue with share #{}.", + "warning_backup_check", + "Please check again", + "Wrong word selected!", + "Check again", + "apps/misc/__init__.py", + "apps/misc/cipher_key_value.py", + "Enable labeling?", + "SUITE LABELING", + "Encrypt value", + "Decrypt value", + "apps/misc/cosi_commit.py", + "_decode_path", + "bootloader", + "firmware", + "{} {}", + "COSI KEYS", + "COSI DATA", + "SCHEMA_SLIP18", + "SCHEMA_SLIP26", + "vendor header", + "T2T1 {} (old-style)", + "External definitions", + "Mismatched address_n", + "cosi_confirm_key", + "apps/misc/get_ecdh_session_key.py", + "get_identity_path", + "serialize_identity", + "serialize_identity_without_proto", + "Decrypt {}", + "apps/misc/get_entropy.py", + "Confirm entropy", + "apps/misc/get_firmware_hash.py", + "apps/misc/sign_identity.py", + "://", + "@", + "HH", + ">IQ", + "currencies", + "OMNI", + "tOMNI", + "MAID", + "USDT", + "UNKN", + "Simple send of {} {}", + "Unknown transaction", + "apps/bitcoin/sign_tx/payment_request.py", + "expected_amount", + "h_pr", + "PUBLIC_KEY", + "apps/bitcoin/sign_tx/progress.py", + "Progress", + "steps", + "prev_tx_step", + "progress_layout", + "_PREV_TX_MULTIPLIER", + "Signing transaction...", + "Loading transaction...", + "apps/bitcoin/sign_tx/sig_hasher.py", + "h_amounts", + "h_scriptpubkeys", + "h_sequences", + "hash_zip244", + "hash_type", + "apps/bitcoin/sign_tx/tx_info.py", + "TxInfoBase", + "h_tx_check", + "min_sequence", + "h_tx", + "Invalid original TXID.", + "apps/bitcoin/sign_tx/tx_weight.py", + "segwit_inputs_count", + "input_script_size", + "compact_size_len", + "op_push_len", + "apps/binance/__init__.py", + "apps/binance/get_address.py", + "address_from_public_key", + "bnb", + "BNB", + "apps/binance/get_public_key.py", + "apps/binance/helpers.py", + "_make_input_output", + "produce_json_for_signing", + "DECIMALS", + "input_output", + "envelope", + "Source is invalid", + "apps/binance/layout.py", + "require_confirm_transfer", + "_confirm_transfer", + "require_confirm_cancel", + "Pair:", + "Order ID:", + "require_confirm_order", + "BUY", + "Buy", + "SELL", + "Sell", + "Unknown", + "Side:", + "Quantity:", + "Price:", + "make_input_output_pages", + "inputs_outputs", + "direction", + "Confirm input", + "Confirm output", + "confirm_cancel", + "Confirm cancel", + "Sender address:", + "confirm_order", + "Confirm order", + "apps/binance/sign_tx.py", + "Source is invalid.", + "trezor/enums/BinanceOrderSide.py", + "SIDE_UNKNOWN", + "trezor/enums/BinanceOrderType.py", + "OT_UNKNOWN", + "MARKET", + "LIMIT", + "OT_RESERVED", + "trezor/enums/BinanceTimeInForce.py", + "TIF_UNKNOWN", + "GTE", + "TIF_RESERVED", + "IOC", + "apps/cardano/__init__.py", + "apps/cardano/addresses.py", + "SCHEMA_STAKING_ANY_ACCOUNT", + "helpers.paths", + "get_public_key_hash", + "helpers.utils", + "BASE", + "BASE_SCRIPT_KEY", + "BASE_KEY_SCRIPT", + "BASE_SCRIPT_SCRIPT", + "POINTER", + "POINTER_SCRIPT", + "ENTERPRISE", + "ENTERPRISE_SCRIPT", + "REWARD", + "REWARD_SCRIPT", + "BYRON", + "assert_params_cond", + "validate_address_parameters", + "is_shelley_path", + "is_byron_path", + "_validate_address_parameters_structure", + "_validate_base_address_staking_info", + "ADDRESS_KEY_HASH_SIZE", + "_validate_script_hash", + "SCRIPT_HASH_SIZE", + "validate_output_address_parameters", + "validate_cvote_payment_address_parameters", + "assert_cond", + "_validate_and_get_type", + "validate", + "HRP_SEPARATOR", + "validate_output_address", + "validate_reward_address", + "validate_cvote_payment_address", + "get_bytes_unsafe", + "decode_unsafe", + "_get_bech32_hrp", + "is_mainnet", + "HRP_REWARD_ADDRESS", + "HRP_TESTNET_REWARD_ADDRESS", + "HRP_ADDRESS", + "HRP_TESTNET_ADDRESS", + "_get_network_id", + "derive_human_readable", + "encode_human_readable", + "derive_bytes", + "_derive_shelley_address", + "_get_payment_part", + "_get_staking_part", + "variable_length_encode", + "ADDRESS_TYPES_SHELLEY", + "ADDRESS_TYPES_PAYMENT_KEY", + "ADDRESS_TYPES_PAYMENT_SCRIPT", + "ADDRESS_TYPES_PAYMENT", + "condition", + "address_bytes", + "apps/cardano/auxiliary_data.py", + "derive_public_key", + "_validate_cvote_registration_parameters", + "CIP36", + "_validate_vote_public_key", + "_validate_delegations", + "_get_voting_purpose_to_serialize", + "CIP15", + "show", + "show_auxiliary_data_hash", + "_should_show_payment_warning", + "_show_cvote_registration", + "Credential", + "should_show_credentials", + "helpers.credential", + "HRP_CVOTE_PUBLIC_KEY", + "confirm_cvote_registration_delegation", + "confirm_cvote_registration_payment_address", + "show_cvote_registration_payment_credentials", + "payment_credential", + "stake_credential", + "confirm_cvote_registration", + "get_hash_and_supplement", + "CVOTE_REGISTRATION_SIGNATURE", + "NONE", + "_get_cvote_registration_hash", + "_get_signed_cvote_registration_payload", + "_create_cvote_registration_payload_signature", + "should_show_details", + "cvote_registration_payload", + "cvote_registration_payload_signature", + "Invalid auxiliary data", + "apps/cardano/byron_addresses.py", + "extended", + "_address_hash", + "_decode_raw", + "_validate_protocol_magic", + "address_data_encoded", + "apps/cardano/certificates.py", + "validate_stake_credential", + "STAKE_DELEGATION", + "STAKE_REGISTRATION", + "STAKE_DEREGISTRATION", + "STAKE_POOL_REGISTRATION", + "add_certificate", + "_validate_structure", + "cborize", + "cborize_stake_credential", + "cborize_pool_registration_init", + "_validate_pool_parameters", + "LOVELACE_MAX_SUPPLY", + "validate_pool_owner", + "add_pool_owner", + "validate_pool_relay", + "SINGLE_HOST_IP", + "SINGLE_HOST_NAME", + "MULTIPLE_HOST_NAME", + "cborize_pool_owner", + "_cborize_ipv6_address", + "cborize_pool_relay", + "cborize_pool_metadata", + "certificate", + "account_path_checker", + "pool_relay", + "pool_owner", + "pool_metadata", + "Invalid certificate", + "apps/cardano/get_address.py", + "validate_network_info", + "show_cardano_address", + "show_credentials", + "Deriving address failed", + "apps/cardano/get_native_script_hash.py", + "validate_native_script", + "HIDE", + "show_native_script", + "show_script_hash", + "apps/cardano/get_public_key.py", + "SCHEMA_MINT", + "SCHEMA_PUBKEY", + "_get_public_key", + "derivation_path", + "apps/cardano/layout.py", + "format_account_number", + "format_asset_fingerprint", + "format_optional_int", + "format_stake_pool_id", + "Base", + "Pointer", + "Enterprise", + "Reward", + "Key", + "PUB_KEY", + "All", + "ALL", + "Any", + "ANY", + "N of K", + "N_OF_K", + "INVALID_BEFORE", + "INVALID_HEREAFTER", + "ADA", + "tADA", + "Script", + "HRP_SHARED_KEY_HASH", + "HRP_SCRIPT_HASH", + "POLICY_ID", + "Policy ID:", + "show_tx_init", + "Show All", + "confirm_input", + "Input ID:", + "confirm_sending", + "Sending", + "confirm_sending_token", + "confirm_datum_hash", + "HRP_OUTPUT_DATUM_HASH", + "confirm_inline_datum", + "confirm_reference_script", + "_confirm_data_chunk", + "byte", + "purpose", + "show_change_output_credentials", + "show_device_owned_output_credentials", + "extra_text", + "_show_credential", + "{} address", + "get_title", + "type_name", + "is_unusual_path", + "is_mismatch", + "is_reward", + "is_no_staking", + "warn_path", + "warn_tx_output_contains_tokens", + "warn_tx_contains_mint", + "warn_tx_output_no_datum", + "warn_no_script_data_hash", + "warn_no_collateral_inputs", + "warn_unknown_total_collateral", + "confirm_witness_request", + "is_multisig_path", + "is_minting_path", + "confirm_tx", + "to_ui_string", + "TTL: {}", + "confirm_certificate", + "Confirm:", + "to pool:", + "confirm_stake_pool_parameters", + "\x43\x6f\x73\x74\x3a\x20\x7b\x7d\x0a", + "confirm_stake_pool_owner", + "confirm_stake_pool_metadata", + "confirm_stake_pool_registration_final", + "Network:", + "TTL:", + "confirm_withdrawal", + "reward", + "_format_stake_credential", + "to_account_path", + "HRP_STAKE_KEY_HASH", + "Weight:", + "Nonce:", + "Catalyst", + "{} (other)", + "confirm_token_minting", + "warn_tx_network_unverifiable", + "confirm_script_data_hash", + "HRP_SCRIPT_DATA_HASH", + "confirm_collateral_input", + "confirm_reference_input", + "confirm_required_signer", + "HRP_REQUIRED_SIGNER_KEY_HASH", + "ADDRESS_TYPE_NAMES", + "SCRIPT_TYPE_NAMES", + "CERTIFICATE_TYPE_NAMES", + "BRT_Other", + "CVOTE_REWARD_ELIGIBILITY_WARNING", + "ada_amount", + "output_type", + "first_chunk", + "show_both_credentials", + "show_payment_warning", + "intro_text", + "is_collateral_return", + "witness_path", + "is_network_id_verifiable", + "withdrawal", + "should_show_payment_warning", + "collateral_input", + "reference_input", + "required_signer", + "Invalid before", + "Invalid hereafter", + "Stake key registration", + "Stake key deregistration", + "Stake delegation", + "Stakepool registration", + "{} - {} {}:", + "verify_script", + "Verify script", + "Script hash:", + "Confirm transaction", + "Choose level of details:", + "Show Simple", + "Input index:", + "Change output", + "collateral-return", + "Collateral return", + "confirm_token", + "Asset fingerprint:", + "Amount sent:", + "Datum hash:", + "Inline datum", + "Reference script", + "{} ({} {}):", + "...", + "Path is unusual.", + "confirm_credential", + "confirm_tokens", + "confirm_no_datum_hash", + "multi-sig path", + "token minting path", + "Transaction fee:", + "Total collateral:", + "Network: {}", + "Valid since: {}", + "Pool reward account:", + "\x50\x6c\x65\x64\x67\x65\x3a\x20\x7b\x7d\x0a", + "Margin: {}%", + "Pool owner:", + "confirm_pool_owners", + "confirm_pool_metadata", + "Pool metadata url:", + "Pool metadata hash:", + "confirm_pool_final", + "Valid since:", + "script reward", + "for account {}:", + "for key hash:", + "for script:", + "Delegating to:", + "Rewards go to:", + "Vote public key:", + "Voting purpose:", + "confirm_auxiliary_data", + "Auxiliary data hash:", + "confirm_mint", + "Amount minted:", + "Amount burned:", + "warning_no_outputs", + "Script data hash:", + "Collateral input ID:", + "Collateral input index:", + "Reference input ID:", + "Reference input index:", + "Required signer", + "apps/cardano/native_script.py", + "_validate_native_script_structure", + "cborize_native_script", + "Invalid native script", + "apps/cardano/seed.py", + "BYRON_ROOT", + "MINTING_ROOT", + "MULTISIG_ROOT", + "SHELLEY_ROOT", + "_get_keychain_bip39", + "LEDGER", + "ICARUS", + "_get_keychain", + "_derive_path", + "byron_root", + "shelley_root", + "multisig_root", + "minting_root", + "_get_path_root", + "root", + "node_path", + "apps/cardano/helpers/__init__.py", + "INPUT_PREV_HASH_SIZE", + "OUTPUT_DATUM_HASH_SIZE", + "SCRIPT_DATA_HASH_SIZE", + "apps/cardano/helpers/account_path_check.py", + "AccountPathChecker", + "account_path", + "_add", + "_is_byron_and_shelley_equivalent", + "common.paths", + "ACCOUNT_PATH_INDEX", + "ACCOUNT_PATH_LENGTH", + "add_withdrawal", + "add_witness_request", + "witness_request", + "Invalid output", + "Invalid withdrawal", + "Invalid witness request", + "apps/cardano/helpers/bech32.py", + "addr_test", + "stake", + "stake_test", + "cvote_vk", + "addr_vkh", + "stake_vkh", + "datum", + "_decode", + "HRP_KEY_HASH", + "bech", + "addr_shared_vkh", + "req_signer_vkh", + "script_data", + "apps/cardano/helpers/credential.py", + "SCHEMA_PAYMENT", + "_do_base_address_credentials_match", + "CHAIN_STAKING_KEY", + "pointer", + "is_other_warning", + "SCHEMA_STAKING", + "key hash", + "Block: {}", + "CREDENTIAL_TYPE_PAYMENT", + "CREDENTIAL_TYPE_STAKE", + "address_params", + "Transaction: {}", + "Certificate: {}", + "apps/cardano/helpers/hash_builder_collection.py", + "HashBuilderCollection", + "HashBuilderList", + "HashBuilderDict", + "HashBuilderEmbeddedCBOR", + "remaining", + "hash_fn", + "has_unfinished_child", + "_header_bytes", + "_insert_child", + "_do_enter_item", + "_hash_item", + "_hash_item_streamed", + "key_order_error", + "previous_encoded_key", + "child", + "exc_tb", + "chunk", + "apps/cardano/helpers/network_ids.py", + "MAINNET", + "TESTNET", + "apps/cardano/helpers/paths.py", + "CHANGE_OUTPUT_PATH_NAME", + "CHANGE_OUTPUT_STAKING_PATH_NAME", + "CERTIFICATE_PATH_NAME", + "POOL_OWNER_STAKING_PATH_NAME", + "WITNESS_PATH_NAME", + "Change output path", + "Certificate path", + "Pool owner staking path", + "Witness path", + "apps/cardano/helpers/protocol_magics.py", + "Mainnet", + "TESTNET_PREPROD", + "TESTNET_PREVIEW", + "TESTNET_LEGACY", + "NAMES", + "Preprod Testnet", + "Preview Testnet", + "Legacy Testnet", + "apps/cardano/helpers/utils.py", + "#{}", + "n/a", + "pool_id_bytes", + "Path is too short.", + "apps/cardano/sign_tx/__init__.py", + "Signer", + "ORDINARY_TRANSACTION", + "OrdinarySigner", + "POOL_REGISTRATION_AS_OWNER", + "PoolOwnerSigner", + "MULTISIG_TRANSACTION", + "MultisigSigner", + "PLUTUS_TRANSACTION", + "PlutusSigner", + "Signing failed", + "apps/cardano/sign_tx/multisig_signer.py", + "_validate_tx_init", + "_assert_tx_init_cond", + "_confirm_tx", + "_is_network_id_verifiable", + "_validate_output", + "_validate_certificate", + "_validate_withdrawal", + "_validate_witness_request", + "SIGNING_MODE_TITLE", + "apps/cardano/sign_tx/ordinary_signer.py", + "_show_witness_request", + "_fail_or_warn_path", + "_show_if_showing_details", + "apps/cardano/sign_tx/plutus_signer.py", + "_show_tx_init", + "_show_input", + "_show_output_credentials", + "_should_show_output", + "_is_simple_change_output", + "_is_change_output", + "apps/cardano/sign_tx/pool_owner_signer.py", + "apps/cardano/sign_tx/signer.py", + "helpers.hash_builder_collection", + "helpers.account_path_check", + "tx_dict", + "_processs_tx_init", + "_process_witness_requests", + "_process_inputs", + "_process_outputs", + "_process_certificates", + "_process_withdrawals", + "_process_auxiliary_data", + "_process_minting", + "_process_script_data_hash", + "_process_collateral_inputs", + "_process_required_signers", + "_process_collateral_return", + "_process_reference_inputs", + "_validate_input", + "_process_output", + "_show_output_init", + "ARRAY_LEGACY", + "_process_legacy_output", + "MAP_BABBAGE", + "_process_babbage_output", + "_fail_if_strict_and_unusual", + "_get_output_address_type", + "_get_output_address", + "_process_output_value", + "_process_inline_datum", + "_process_reference_script", + "_process_asset_groups", + "_validate_asset_group", + "_process_tokens", + "_validate_token", + "_get_chunks_count", + "_validate_chunk", + "_show_certificate", + "_process_pool_owners", + "_process_pool_relays", + "_fail_or_warn_if_invalid_path", + "_show_pool_owner", + "_derive_withdrawal_address_bytes", + "is_mint", + "_process_minting_tokens", + "_validate_script_data_hash", + "_validate_collateral_input", + "_show_collateral_input", + "_validate_required_signer", + "_validate_collateral_return", + "_should_show_collateral_return_init", + "_should_show_collateral_return_tokens", + "_show_collateral_return_init", + "_validate_reference_input", + "_get_byron_witness", + "_get_shelley_witness", + "BYRON_WITNESS", + "_sign_tx_hash", + "SHELLEY_WITNESS", + "Invalid {}", + "ctx_call", + "inputs_list", + "outputs_list", + "output_list", + "should_show", + "output_dict", + "output_value_list", + "should_show_tokens", + "asset_groups_dict", + "asset_group", + "tokens_dict", + "inline_datum_cbor", + "reference_script_cbor", + "certificates_list", + "pool_owners_list", + "relays_list", + "withdrawals_dict", + "minting_dict", + "collateral_inputs_list", + "required_signers_list", + "reference_inputs_list", + "chunk_data", + "chunk_number", + "chunks_count", + "tx_body_hash", + "path_name", + "layout_fn", + "Fee is out of range!", + "Invalid input", + "Invalid script data hash", + "Invalid collateral input", + "Invalid required signer", + "Invalid reference input", + "trezor/enums/CardanoAddressType.py", + "trezor/enums/CardanoCVoteRegistrationFormat.py", + "trezor/enums/CardanoCertificateType.py", + "trezor/enums/CardanoDerivationType.py", + "ICARUS_TREZOR", + "trezor/enums/CardanoNativeScriptHashDisplayFormat.py", + "trezor/enums/CardanoNativeScriptType.py", + "trezor/enums/CardanoPoolRelayType.py", + "trezor/enums/CardanoTxAuxiliaryDataSupplementType.py", + "trezor/enums/CardanoTxOutputSerializationFormat.py", + "trezor/enums/CardanoTxSigningMode.py", + "trezor/enums/CardanoTxWitnessType.py", + "apps/eos/__init__.py", + "apps/eos/get_public_key.py", + "public_key_to_wif", + "require_get_public_key", + "apps/eos/helpers.py", + "base58_encode", + "eos_name_to_string", + "eos_asset_to_string", + "{:0{}d}", + "{}.{} {}", + "sig_prefix", + "invalid public key", + "apps/eos/layout.py", + "require_sign_tx", + "Sign transaction", + "apps/eos/sign_tx.py", + "process_action", + "No actions", + "SIG_", + "K1", + "apps/eos/writers.py", + "write_auth", + "write_action_transfer", + "write_action_buyram", + "write_action_buyrambytes", + "write_action_sellram", + "write_action_delegate", + "write_action_undelegate", + "write_action_refund", + "write_action_voteproducer", + "write_action_updateauth", + "write_action_deleteauth", + "write_action_linkauth", + "write_action_unlinkauth", + "write_action_newaccount", + "write_action_common", + "write_asset", + "apps/eos/actions/__init__.py", + "is_last", + "eosio", + "buyram", + "confirm_action_buyram", + "confirm_action_buyrambytes", + "sellram", + "confirm_action_sellram", + "delegatebw", + "confirm_action_delegate", + "confirm_action_undelegate", + "confirm_action_refund", + "confirm_action_voteproducer", + "updateauth", + "confirm_action_updateauth", + "deleteauth", + "confirm_action_deleteauth", + "linkauth", + "confirm_action_linkauth", + "unlinkauth", + "confirm_action_unlinkauth", + "newaccount", + "confirm_action_newaccount", + "confirm_action_transfer", + "_process_unknown_action", + "confirm_action_unknown", + "_check_action", + "sha", + "Invalid action", + "buyrambytes", + "undelegatebw", + "voteproducer", + "apps/eos/actions/layout.py", + "_confirm_properties", + "Buy RAM", + "Payer:", + "Receiver:", + "Bytes:", + "Sender:", + "CPU:", + "NET:", + "Delegate", + "Sell RAM", + "Undelegate", + "Refund", + "Owner:", + "Voter:", + "Proxy:", + "From:", + "To:", + "Contract:", + "Memo", + "Transfer", + "Account:", + "Parent:", + "Link Auth", + "Code:", + "Type:", + "Creator:", + "Name:", + "Checksum:", + "authorization_fields", + "Threshold:", + "Key #", + " Weight:", + "Account #", + " weight:", + "Delay #", + " sec", + "{:2d}. {}", + "checksum", + "confirm_buyram", + "confirm_buyrambytes", + "Transfer:", + "Yes", + "No", + "confirm_delegate", + "confirm_sellram", + "confirm_undelegate", + "confirm_refund", + "confirm_voteproducer", + "Vote for proxy", + "Vote for producers", + "Cancel vote", + "confirm_transfer", + "Permission:", + "confirm_updateauth", + "Update Auth", + "confirm_deleteauth", + "Delete Auth", + "confirm_linkauth", + "Requirement:", + "confirm_unlinkauth", + "Unlink Auth", + "confirm_newaccount", + "New Account", + "confirm_unknown", + "Arbitrary data", + "Action Name:", + "Acc Permission #", + "apps/ethereum/__init__.py", + "apps/ethereum/definitions.py", + "Definitions", + "decode_definition", + "NETWORK", + "TOKEN", + "FORMAT_VERSION", + "MIN_DATA_VERSION", + "THRESHOLD", + "PUBLIC_KEYS", + "_tokens", + "from_encoded", + "UNKNOWN_NETWORK", + "by_chain_id", + "by_slip44", + "get_token", + "UNKNOWN_TOKEN", + "token_by_chain_address", + "Definition type mismatch", + "Definition is outdated", + "apps/ethereum/definitions_constants.py", + "apps/ethereum/get_address.py", + "PATTERNS_ADDRESS", + "with_keychain_from_path", + "address_from_bytes", + "ETH", + "defs", + "apps/ethereum/get_public_key.py", + "apps/ethereum/helpers.py", + "0x", + "bytes_from_address", + "get_type_name", + "uint", + "BYTES", + "STRING", + "BOOL", + "ADDRESS", + "STRUCT", + "{}[]", + "{}[{}]", + "decode_typed_data", + "true", + "false", + "_from_bytes_bigendian_signed", + "_maybe_upper", + "RSKIP60_NETWORKS", + "field", + "0X", + "apps/ethereum/keychain.py", + "_slip44_from_address_n", + "_defs_from_message", + "_schemas_from_network", + "with_keychain_from_chain_id", + "network_info", + "apps/ethereum/layout.py", + "require_confirm_tx", + "{} units", + "Gas limit:", + "Gas price:", + "require_confirm_tx_eip1559", + "require_confirm_unknown_token", + "require_confirm_address", + "require_confirm_data", + "confirm_typed_data_final", + "confirm_empty_typed_message", + "should_show_domain", + "should_show_struct", + ", ", + "should_show_array", + "confirm_typed_value", + "[{}] ({})", + "{} ({})", + "format_ethereum_amount", + "Wei ", + "limit_str", + "..", + "data_total", + "data_members", + "parent_objects", + "array_index", + "Confirm struct", + "Show full struct", + "new contract?", + "Max gas price:", + "Priority fee:", + "Unknown token", + "unknown_token", + "Signing address", + "confirm_data", + "Confirm data", + "Size: {} bytes", + "Confirm typed data", + "Confirm message", + "No message field", + "Name and version", + "Confirm domain", + "Show full domain", + "Show full array", + "apps/ethereum/networks.py", + "_networks_iterator", + "Unknown network", + "tETH", + "Ropsten", + "Rinkeby", + "\x47\xc3\xb6\x72\x6c\x69", + "Binance Smart Chain", + "ETC", + "Ethereum Classic", + "MATIC", + "Polygon", + "apps/ethereum/sign_message.py", + "apps/ethereum/sign_tx.py", + "handle_erc20", + "_get_total_length", + "send_request_chunk", + "_sign_digest", + "check_common_fields", + "MAX_CHAIN_ID", + "data_left", + "tx_type out of bounds", + "Fee overflow", + "Chain ID out of bounds", + "apps/ethereum/sign_tx_eip1559.py", + "access_list_item_length", + "apps/ethereum/sign_typed_data.py", + "TypedDataEnvelope", + "_generate_typed_data_hash", + "collect_types", + "hash_struct", + "types", + "get_hash_writer", + "keccak256", + "encode_field", + "signed", + "write_leftpad32", + "_validate_value", + "validate_field_type", + "_get_array_size", + "get_value", + "_get_name_and_version_for_domain", + "_collect_types", + "get_and_encode_data", + "encode_type", + "find_typed_dependencies", + "{}({})", + "member_value_path", + "typed_data_envelope", + "show_data", + "results", + "EIP712Domain", + "Show full message", + "Invalid length", + "Invalid boolean value", + "Invalid UTF-8", + "Missing size in struct", + "Invalid size in bytes", + "Invalid size in int/uint", + "apps/ethereum/tokens.py", + "Wei UNKN", + "_token_iterator", + "AAVE", + "Aave", + "APE", + "ApeCoin", + "AXS", + "Axie Infinity", + "BUSD", + "Binance USD", + "CHZ", + "Chiliz", + "CRO", + "Cronos", + "DAI", + "Dai", + "FRAX", + "Frax", + "LEO", + "LEO Token", + "LINK", + "Chainlink", + "MANA", + "Decentraland", + "OKB", + "QNT", + "Quant", + "SAND", + "The Sandbox", + "SHIB", + "Shiba Inu", + "STETH", + "Lido Staked Ether", + "UNI", + "Uniswap", + "USDC", + "USD Coin", + "Tether", + "WBTC", + "Wrapped Bitcoin", + "XCN", + "Chain", + "ATOM", + "Cosmos Hub", + "WAVAX", + "Wrapped AVAX", + "apps/ethereum/verify_message.py", + "trezor/enums/EthereumDataType.py", + "trezor/enums/EthereumDefinitionType.py", + "apps/monero/__init__.py", + "apps/monero/diag.py", + "apps/monero/get_address.py", + "net_version", + "get_creds", + "encode_addr", + "encodepoint", + "spend_key_public", + "view_key_public", + "generate_sub_address_keys", + "view_key_private", + "monero:", + "XMR", + "apps/monero/get_tx_keys.py", + "require_confirm_tx_key", + "export_key", + "compute_tx_key", + "spend_key_private", + "decodeint", + "decrypt_pack", + "decodepoint", + "compute_enc_key_host", + "encrypt_pack", + "Missing view public key", + "apps/monero/get_watch_only.py", + "require_confirm_watchkey", + "encodeint", + "apps/monero/key_image_sync.py", + "KeyImageSync", + "current_output", + "num_outputs", + "expected_hash", + "_init_step", + "creds", + "require_confirm_keyimage_sync", + "compute_subaddresses", + "subaddresses", + "_sync_step", + "Empty", + "compute_hash", + "export_key_image", + "get_keccak", + "tds", + "Too many outputs", + "apps/monero/layout.py", + "MoneroTransactionProgress", + "_format_amount", + "{} XMR", + "require_confirm_live_refresh", + "require_confirm_transaction", + "get_change_addr_idx", + "_require_confirm_output", + "_require_confirm_payment_id", + "Payment ID", + "_require_confirm_fee", + "_require_confirm_unlock_time", + "inner", + "Signing...", + "STEP_INP", + "input_count", + "STEP_VINI", + "STEP_ALL_IN", + "STEP_OUT", + "output_count", + "STEP_ALL_OUT", + "STEP_SIGN", + "progress_cur", + "progress_total", + "DUMMY_PAYMENT_ID", + "BRT_SignTx", + "sub_step", + "get_watchkey", + "Confirm export", + "Confirm ki sync", + "Confirm refresh", + "export_tx_key", + "confirm_payment_id", + "confirm_final", + "Confirm fee", + "confirm_locktime", + "Confirm unlock time", + "\x50\x72\x6f\x63\x65\x73\x73\x69\x6e\x67\x20\x69\x6e\x70\x75\x74\x73\x0a\x7b\x7d\x2f\x7b\x7d", + "\x48\x61\x73\x68\x69\x6e\x67\x20\x69\x6e\x70\x75\x74\x73\x0a\x7b\x7d\x2f\x7b\x7d", + "Processing...", + "\x50\x72\x6f\x63\x65\x73\x73\x69\x6e\x67\x20\x6f\x75\x74\x70\x75\x74\x73\x0a\x7b\x7d\x2f\x7b\x7d", + "Postprocessing...", + "\x53\x69\x67\x6e\x69\x6e\x67\x20\x69\x6e\x70\x75\x74\x73\x0a\x7b\x7d\x2f\x7b\x7d", + "apps/monero/live_refresh.py", + "LiveRefreshState", + "_refresh_step", + "generate_tx_spend_and_key_image", + "generate_ring_signature", + "apps/monero/misc.py", + "AccountCreds", + "generate_monero_keys", + "new_wallet", + "keccak_2hash", + "compute_hmac", + "rand_mult_num", + "apps/monero/sign_tx.py", + "State", + "_sign_tx_dispatch", + "init_transaction", + "set_input", + "input_vini", + "all_inputs_set", + "set_output", + "all_outputs_set", + "sign_input", + "final_msg", + "received_msg", + "Unknown message", + "apps/monero/signing/__init__.py", + "ChangeAddressError", + "NotEnoughOutputsError", + "RctType", + "RCTTypeBulletproofPlus", + "apps/monero/signing/offloading_keys.py", + "_build_key", + "hmac_key_txin", + "hmac_key_txin_comm", + "_hmac_key_txdst", + "_hmac_key_txout", + "enc_key_txin_alpha", + "enc_key_spend", + "key_signature", + "gen_hmac_vini", + "get_keccak_writer", + "gen_hmac_vouti", + "gen_hmac_tsxdest", + "get_ki_from_vini", + "_BUILD_KEY_BUFFER", + "discriminator", + "out", + "key_hmac", + "key_enc", + "master", + "is_iv", + "vini_bin", + "tx_out_bin", + "Invalid key length", + "Disc too long", + "apps/monero/signing/state.py", + "KeccakXmrArchive", + "PreMlsagHasher", + "tx_priv", + "tx_pub", + "need_additional_txkeys", + "output_change", + "account_idx", + "additional_tx_private_keys", + "additional_tx_public_keys", + "current_input_index", + "current_output_index", + "is_processing_offloaded", + "input_last_amount", + "summary_inputs_money", + "summary_outs_money", + "output_pk_commitments", + "output_amounts", + "output_masks", + "rsig_grouping", + "rsig_offload", + "sumpouts_alphas", + "sumout", + "extra_nonce", + "last_ki", + "STEP_INIT", + "last_step", + "tx_prefix_hasher", + "full_message_hasher", + "full_message", + "mem_trace", + "change_address", + "apps/monero/signing/step_01_init_transaction.py", + "uvarint", + "set_type_fee", + "_check_subaddresses", + "classify_subaddresses", + "_get_primary_change_address", + "_check_rsig_data", + "_check_change", + "addr_eq", + "No change", + "Sweep tsx", + "_compute_sec_keys", + "_process_payment_id", + "_get_key_for_payment_id_encryption", + "NULL_KEY_ENC", + "_encrypt_payment_id", + "generate_key_derivation", + "xor8", + "change_addr", + "add_dummy_payment_id", + "secret_key", + "Unknown rsig type", + "Unknown BP version", + "Invalid grouping batch", + "Invalid grouping", + "Payment ID size invalid", + "Invalid key", + "apps/monero/signing/step_02_set_input.py", + "TxinToKey", + "generate_tx_spend_and_key_image_and_derivation", + "k_image", + "key_offsets", + "dump_msg", + "_gen_commitment", + "_absolute_output_offsets_to_relative", + "_get_additional_public_key", + "in_amount", + "Invalid state transition", + "Too many inputs", + "apps/monero/signing/step_04_input_vini.py", + "HMAC is not correct", + "Key image order invalid", + "apps/monero/signing/step_05_all_inputs_set.py", + "Invalid input count", + "apps/monero/signing/step_06_set_output.py", + "set_ecdh", + "_validate", + "_compute_tx_keys", + "derivation_to_scalar", + "commitment_mask", + "_set_out_tx_out", + "_range_proof", + "pre-rproof", + "rproof", + "_rsig_bp", + "prove_range_bp_batch", + "post-bp", + "rsig_val", + "raw", + "_rsig_process_bp", + "BulletproofPlus", + "parse_msg", + "verify_bp", + "_dump_rsig_bp_plus", + "Too large", + "A1", + "r1", + "s1", + "d1", + "_dump_rsig_lr", + "_return_rsig_data", + "_get_ecdh_info_and_out_pk", + "_ecdh_encode", + "EcdhTuple", + "_set_out_additional_keys", + "_set_out_derivation", + "_derive_view_tags", + "_is_last_in_batch", + "_get_rsig_batch", + "tx_out_key", + "derivation", + "buff", + "amount_key", + "additional_txkey_priv", + "bidx", + "Extraneous offloaded msg", + "Invalid number of inputs", + "Invalid output index", + "HMAC failed", + "Provided unexpected rsig", + "Provided rsig too early", + "post-bp-hash", + "post-bp-ser, size: {}", + "BP verification fail", + "BP verified", + "Output index too big", + "apps/monero/signing/step_07_all_outputs_set.py", + "set_message", + "set_out_pk_commitment", + "rctsig_base_done", + "_set_tx_extra", + "uvarint_size", + "dump_uvarint_b_into", + "Invalid number of ecdh", + "Invalid out num", + "apps/monero/signing/step_09_sign_input.py", + "CtKey", + "CLSAG", + "generate_clsag_simple", + "_protect_signature", + "pseudo_out_alpha_enc", + "spend_enc", + "mg_buffer", + "Invalid inputs count", + "Correcting alpha", + "Sum eq error", + "Invalid ring", + "Invariant error", + "apps/monero/signing/step_10_sign_final.py", + "apps/monero/xmr/__init__.py", + "apps/monero/xmr/addresses.py", + "spend_pub", + "view_pub", + "tx_dests", + "apps/monero/xmr/bulletproof.py", + "INV_EIGHT", + "KeyVBase", + "KeyV", + "KeyVEval", + "KeyVPrecomp", + "KeyVSliced", + "KeyVPowersBackwards", + "VctD", + "KeyHadamardFoldedVct", + "KeyScalarFoldedVct", + "KeyChallengeCacheVct", + "MultiExpSequential", + "BulletProofGenException", + "BulletProofPlusData", + "BulletProofPlusBuilder", + "_ensure_dst_key", + "_copy_key", + "_load_scalar", + "_gc_iter", + "_invert", + "_scalarmult_key", + "_scalarmult8", + "_scalarmult_base", + "_sc_gen", + "_sc_add", + "_sc_sub", + "_sc_mul", + "_sc_muladd", + "_add_keys", + "_add_keys2", + "_hash_to_scalar", + "_hash_vct_to_scalar", + "_get_exponent_plus", + "_get_exponent_univ", + "_sc_square_mult", + "_invert_batch", + "_sum_of_even_powers", + "n == 0", + "_sum_of_scalar_powers", + "_ensure_dst_keyvect", + "elems", + "resize", + "_vector_exponent_custom", + "_weighted_inner_product", + "_hadamard_fold", + "_hash_cache_mash", + "_is_reduced", + "_multiexp", + "_compute_LR", + "add_pair", + "current_idx", + "idxize", + "slice_view", + "mv", + "cur", + "chunked", + "_set_d", + "_set_mv", + "realloc", + "fnc", + "scalar", + "precomp_prefix", + "aux_comp_fnc", + "wrapped", + "cur_sc", + "last_idx", + "x_inv", + "x_max", + "tmp_sc", + "move_more", + "z_sq", + "z_last", + "two", + "current_n", + "move_one", + "src", + "gc_fnc", + "cur_pt", + "tmp_pt", + "nbits", + "ch_", + "chi", + "precomp", + "precomp_depth", + "points", + "point_fnc", + "acc", + "tmp", + "get_point", + "_acc", + "add_scalar_idx", + "challenges", + "logM", + "inv_offset", + "save_mem", + "Gprec", + "Hprec", + "aL", + "aR", + "gc_trace", + "aX_vcts", + "_gprec_aux", + "_hprec_aux", + "prove", + "prove_batch", + "prove_setup", + "sv empty", + "prove_setup_aLaR", + "_prove_batch_main", + "into", + "serialize_messages.tx_rsig_bulletproof", + "verify_batch", + "|L| != |R|", + "y == 0", + "e == 0", + "e_xL", + "aL1_fnc", + "aR1_fnc", + "vec_sc_fnc", + "gc_collect", + "TBYTES", + "_ZERO", + "_ONE", + "_TWO", + "_EIGHT", + "_INV_EIGHT", + "_MINUS_ONE", + "_XMR_H", + "_XMR_HP", + "_XMR_G", + "_INITIAL_TRANSCRIPT", + "_TWO_SIXTY_FOUR_MINUS_ONE", + "_tmp_bf_0", + "_tmp_bf_1", + "_tmp_bf_exp", + "_tmp_pt_1", + "_tmp_pt_2", + "_tmp_pt_3", + "_tmp_pt_4", + "_tmp_sc_1", + "_tmp_sc_2", + "_tmp_sc_3", + "_tmp_sc_4", + "_tmp_sc_5", + "KeyVBaseType", + "dst_off", + "src_off", + "s_raw", + "res", + "__slots__", + "a_raw", + "b_raw", + "into_offset", + "vR", + "vRoff", + "hash_cache", + "sc", + "G0", + "H0", + "a0", + "b0", + "no_init", + "nsize", + "chop", + "precomputed", + "point", + "sv", + "MN", + "gamma", + "sv_vct", + "logN", + "proofs", + "is_a", + "cannot invert zero", + "n is not 2^x", + "Constant KeyV", + "Unsupported", + "Not supported", + "|sv| != |gamma|", + "Empty proof", + "zero rounds", + "challenges[j] == 0", + "Verification error", + "apps/monero/xmr/chacha_poly.py", + "_decrypt", + "plaintext", + "associated_data", + "ciphertext", + "tag invalid", + "apps/monero/xmr/clsag.py", + "Empty pubs", + "_generate_clsag", + "INV_EIGHT_SC", + "dump_uvarint_b", + "_key_vector", + "hsh_PC", + "_HASH_KEY_CLSAG_ROUND", + "_HASH_KEY_CLSAG_AGG_0", + "_HASH_KEY_CLSAG_AGG_1", + "pubs", + "in_sk", + "cout", + "mg_buff", + "C_nonzero", + "Cout", + "rows", + "apps/monero/xmr/credentials.py", + "priv_view_key", + "priv_spend_key", + "apps/monero/xmr/crypto_helpers.py", + "derive_secret_key", + "get_subaddress_secret_key", + "tcry", + "inp", + "pub", + "sec", + "major", + "apps/monero/xmr/keccak_hasher.py", + "kwriter", + "dump_uvarint", + "dump_uint", + "width", + "apps/monero/xmr/key_image.py", + "generate_key_image", + "rr", + "td", + "prefix_hash", + "sec_idx", + "test", + "Invalid sec key", + "Key image invalid", + "apps/monero/xmr/mlsag_hasher.py", + "kc_master", + "rsig_hasher", + "rtcsig_hasher", + "ecdh", + "out_pk_commitment", + "State error", + "apps/monero/xmr/monero.py", + "XmrException", + "XmrNoSuchAddressException", + "get_subaddress_spend_public_key", + "derive_subaddress_public_key", + "_is_out_to_account", + "generate_keys", + "view_private", + "spend_public", + "additional_derivation", + "ack", + "recv_derivation", + "real_output_index", + "received_index", + "tx_public_key", + "additional_tx_public_key", + "recovery_key", + "view_sec", + "No such addr", + "apps/monero/xmr/networks.py", + "MainNet", + "TestNet", + "StageNet", + "STAGENET", + "PUBLIC_ADDRESS_BASE58_PREFIX", + "PUBLIC_SUBADDRESS_BASE58_PREFIX", + "PUBLIC_INTEGRATED_ADDRESS_BASE58_PREFIX", + "is_subaddr", + "Unknown network type: {}", + "apps/monero/xmr/range_signatures.py", + "amounts", + "masks", + "bp_proof", + "apps/monero/xmr/serialize/__init__.py", + "MemoryReaderWriter", + "load", + "dump", + "get_buffer", + "apps/monero/xmr/serialize/base_types.py", + "UVarintType", + "load_uvarint", + "reader", + "writer", + "apps/monero/xmr/serialize/int_serialize.py", + "_UINT_BUFFER", + "apps/monero/xmr/serialize/message_types.py", + "BlobType", + "ContainerType", + "FIX_SIZE", + "SIZE", + "ELEM_TYPE", + "f_specs", + "XmrType", + "elem", + "elem_type", + "Size mismatch", + "apps/monero/xmr/serialize/readwriter.py", + "nread", + "nwritten", + "ndata", + "woffset", + "read_empty", + "do_gc", + "apps/monero/xmr/serialize_messages/base.py", + "Hash", + "ECKey", + "ECPoint", + "KeyImage", + "apps/monero/xmr/serialize_messages/tx_ct_key.py", + "apps/monero/xmr/serialize_messages/tx_ecdh.py", + "apps/monero/xmr/serialize_messages/tx_prefix.py", + "apps/monero/xmr/serialize_messages/tx_rsig_bulletproof.py", + "_KeyV", + "trezor/enums/MoneroNetworkType.py", + "FAKECHAIN", + "apps/nem/__init__.py", + "PATTERNS", + "ed25519-keccak", + "apps/nem/get_address.py", + "check_path", + "get_network_str", + "validate_network", + "apps/nem/helpers.py", + "Mijin", + "NEM_NETWORK_MAINNET", + "NEM_NETWORK_TESTNET", + "NEM_NETWORK_MIJIN", + "NEM_TRANSACTION_TYPE_TRANSFER", + "NEM_TRANSACTION_TYPE_IMPORTANCE_TRANSFER", + "NEM_TRANSACTION_TYPE_AGGREGATE_MODIFICATION", + "NEM_TRANSACTION_TYPE_MULTISIG_SIGNATURE", + "NEM_TRANSACTION_TYPE_MULTISIG", + "NEM_TRANSACTION_TYPE_PROVISION_NAMESPACE", + "NEM_TRANSACTION_TYPE_MOSAIC_CREATION", + "NEM_TRANSACTION_TYPE_MOSAIC_SUPPLY_CHANGE", + "NEM_MAX_DIVISIBILITY", + "NEM_MAX_SUPPLY", + "NEM_SALT_SIZE", + "AES_BLOCK_SIZE", + "NEM_HASH_ALG", + "NEM_PUBLIC_KEY_SIZE", + "NEM_LEVY_PERCENTILE_DIVISOR_ABSOLUTE", + "NEM_MOSAIC_AMOUNT_DIVISOR", + "NEM_MAX_PLAIN_PAYLOAD_SIZE", + "NEM_MAX_ENCRYPTED_PAYLOAD_SIZE", + "apps/nem/layout.py", + "require_confirm_text", + "require_confirm_fee", + "{} XEM", + "require_confirm_content", + "require_confirm_final", + "headline", + "confirm_nem", + "Confirm action", + "confirm_fee", + "confirm_content", + "Final confirm", + "and pay {} XEM", + "apps/nem/sign_tx.py", + "ask", + "cosign", + "initiate", + "No signer provided", + "No transaction provided", + "apps/nem/validators.py", + "CosignatoryModification_Delete", + "_validate_common", + "_validate_public_key", + "err_msg", + "Payload too large", + "No levy fee provided", + "No levy address provided", + "No divisibility provided", + "No supply provided", + "No description provided", + "Invalid supply provided", + "Invalid levy address", + "Invalid NEM network", + "No {} provided", + "{} (none provided)", + "{} (invalid length)", + "apps/nem/writers.py", + "serialize_tx_common", + "write_bytes_with_len", + "transaction_type", + "apps/nem/mosaic/__init__.py", + "ask_mosaic_creation", + "serialize_mosaic_creation", + "ask_supply_change", + "serialize_mosaic_supply_change", + "creation", + "apps/nem/mosaic/helpers.py", + "get_mosaic_definition", + "mosaics_iterator", + "is_nem_xem_mosaic", + "xem", + "namespace_name", + "mosaic_name", + "apps/nem/mosaic/layout.py", + "SupplyChange_Decrease", + "Decrease", + "SupplyChange_Increase", + "Increase", + "_require_confirm_properties", + "mutable", + "immutable", + "Levy fee:", + "MosaicLevy_Absolute", + "absolute", + "percentile", + "Levy type:", + "Create mosaic", + "under namespace", + "Confirm creation fee", + "Modify supply for", + "Supply change", + "Description:", + "Transferable?", + "Initial supply:", + "Levy recipient:", + "Levy divisibility:", + "Levy namespace:", + "Levy mosaic:", + "Confirm properties", + "apps/nem/mosaic/nem_mosaics.py", + "MosaicLevy", + "Mosaic", + " XEM", + "DIMCOIN", + " DIM", + "dim", + "MosaicLevy_Percentile", + "DIM TOKEN", + " DIMTOK", + " BREEZE", + "breeze", + " PAC:HRT", + "pacnem", + "heart", + " PAC:CHS", + "cheese", + "Breeze Token", + "breeze-token", + "PacNEM Game Credits", + "PacNEM Score Tokens", + "apps/nem/mosaic/serialize.py", + "_write_property", + "initialSupply", + "supplyMutable", + "Incompatible value type", + "apps/nem/multisig/__init__.py", + "ask_multisig", + "serialize_multisig", + "serialize_multisig_signature", + "ask_aggregate_modification", + "serialize_aggregate_modification", + "write_cosignatory_modification", + "write_minimum_cosignatories", + "inner_tx", + "aggr", + "apps/nem/multisig/layout.py", + "CosignatoryModification_Add", + "Add", + "Remove", + "?", + "_require_confirm_address", + "mod", + "Cosign transaction for", + "Initiate transaction for", + "Confirm multisig fee", + " cosignatory", + "Confirm address", + "confirm_multisig", + "apps/nem/multisig/serialize.py", + "address_public_key", + "cosignatory_type", + "cosignatory_pubkey", + "apps/nem/namespace/__init__.py", + "ask_provision_namespace", + "serialize_provision_namespace", + "apps/nem/namespace/layout.py", + "Create namespace", + "Confirm namespace", + "Confirm rental fee", + "apps/nem/namespace/serialize.py", + "apps/nem/transfer/__init__.py", + "canonicalize_mosaics", + "get_transfer_payload", + "ask_transfer", + "serialize_transfer", + "serialize_mosaic", + "ask_importance_transfer", + "serialize_importance_transfer", + "imp", + "apps/nem/transfer/layout.py", + "mosaic.helpers", + "Encrypted:", + "_ask_transfer_mosaic", + "of", + "{}.{}", + "_get_xem_amount", + "ImportanceTransfer_Activate", + "Activate", + "Deactivate", + "encrypted", + "confirm_payload", + "Confirm payload", + "Unencrypted:", + "confirm_mosaic", + "Confirm mosaic", + "Confirm transfer of", + "confirm_mosaic_levy", + "confirm_mosaic_unknown", + "Unknown mosaic!", + "confirm_mosaic_transfer", + "{} raw units", + " remote harvesting?", + "apps/nem/transfer/serialize.py", + "_merge_mosaics", + "trezor/enums/NEMImportanceTransferMode.py", + "ImportanceTransfer_Deactivate", + "trezor/enums/NEMModificationType.py", + "trezor/enums/NEMMosaicLevy.py", + "trezor/enums/NEMSupplyChangeType.py", + "apps/ripple/__init__.py", + "apps/ripple/base58_ripple.py", + "_encode", + "_ripple_alphabet", + "apps/ripple/get_address.py", + "XRP", + "apps/ripple/helpers.py", + "decode_address", + "HASH_TX_SIGN", + "MIN_FEE", + "MAX_FEE", + "MAX_ALLOWED_AMOUNT", + "FLAG_FULLY_CANONICAL", + "apps/ripple/layout.py", + "require_confirm_total", + " XRP", + "require_confirm_destination_tag", + "confirm_destination_tag", + "Confirm tag", + "\x44\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x20\x74\x61\x67\x3a\x0a\x7b\x7d", + "apps/ripple/serialize.py", + "_write", + "write_bytes_varint", + "rshift", + "source_address", + "field_type", + "field_key", + "Value is too large", + "Unknown field type", + "apps/ripple/sign_tx.py", + "apps/stellar/__init__.py", + "apps/stellar/consts.py", + "get_op_code", + "TX_TYPE", + "op_codes", + "AMOUNT_DECIMALS", + "NETWORK_PASSPHRASE_PUBLIC", + "NETWORK_PASSPHRASE_TESTNET", + "FLAG_AUTH_REQUIRED", + "FLAG_AUTH_REVOCABLE", + "FLAG_AUTH_IMMUTABLE", + "FLAGS_MAX_SIZE", + "Stellar: op code unknown", + "apps/stellar/get_address.py", + "XLM", + "apps/stellar/helpers.py", + "public_key_from_address", + "_crc16_checksum", + "4L", + "generate_key_handle", + "<8L", + "{}...{}", + "_node_from_key_handle", + ">8L", + "_CRED_ID_VERSION", + "CRED_ID_MAX_LENGTH", + "_DEFAULT_ALGORITHM", + "_DEFAULT_CURVE", + "_CURVE_NAME", + "cred_id", + "key_handle", + "keyhandle", + "pathformat", + "apps/webauthn/fido2.py", + ".dummy", + "CborError", + "Cmd", + "KeepaliveCallback", + "U2fState", + "U2fConfirmRegister", + "U2fConfirmAuthenticate", + "U2fUnlock", + "Fido2State", + "Fido2Unlock", + "Fido2ConfirmMakeCredential", + "Fido2ConfirmExcluded", + "Fido2ConfirmGetAssertion", + "Fido2ConfirmNoPin", + "Fido2ConfirmNoCredentials", + "Fido2ConfirmReset", + "DialogManager", + "frame_init", + "cid", + "cmd", + "bcnt", + "frame_cont", + "_resp_cmd_init", + "capFlags", + "_resp_cmd_register", + "registerId", + "pubKey", + "keyHandle", + "cert", + "sig", + "status", + "_req_cmd_authenticate", + "chal", + "appId", + "_resp_cmd_authenticate", + "ctr", + "overlay_struct", + "make_struct", + "_read_cmd", + "send_cmd", + "send_cmd_sync", + "allow_cid", + "verify_user", + "_confirm_fido_choose", + "_confirm_fido", + "_confirm_bogus_app", + "_dispatch_cmd", + "to_msg", + "cla", + "lc", + "cmd_init", + "versionInterface", + "versionMajor", + "versionMinor", + "versionBuild", + "_cmd_wink", + "_msg_register", + "set_state", + "basic_attestation_sign", + "_msg_register_sign", + "keyHandleLen", + "_msg_authenticate", + "_msg_authenticate_sign", + ">L", + "msg_error", + ">H", + "cmd_error", + "cbor_error", + "credentials_from_descriptor_list", + "public-key", + "_distinguishable_cred_list", + "_algorithms_from_pub_key_cred_params", + "alg", + "_cbor_make_credential", + "_cbor_make_credential_process", + "rk", + "uv", + "use_compact", + "icon", + "up", + "_cbor_make_credential_sign", + "use_self_attestation", + "x5c", + "packed", + "_cbor_get_assertion", + "_cbor_get_assertion_process", + "find_by_rp_id_hash", + "_cbor_get_assertion_hmac_secret", + "cbor_get_assertion_sign", + "_cbor_get_info", + "U2F_V2", + "FIDO_2_0", + "_cbor_client_pin", + "_cbor_reset", + "cmd_keepalive", + "keepalive_status", + "on_confirm", + "on_decline", + "on_timeout", + "on_cancel", + "_cred", + "_req_data", + "process_func", + "req", + "resp", + "dialog_mgr", + "_client_data_hash", + "_resident", + "_user_verification", + "FIDO2", + "resident", + "user_verification", + "_creds", + "_hmac_secret", + "_selected_cred", + "_clear", + "keepalive", + "_workflow_is_running", + "reset_timeout", + "is_busy", + "keepalive_loop", + "dialog_workflow", + "_FIDO_ATT_PRIV_KEY", + "_FIDO_ATT_CERT", + "_BOGUS_RP_ID", + "_BOGUS_APPID_CHROME", + "_BOGUS_APPID_FIREFOX", + "_BOGUS_APPIDS", + "_AAGUID", + "_last_wink_cid", + "_last_auth_valid", + "khlen", + "certlen", + "siglen", + "desc", + "TimeoutError", + "cred", + "descriptor_list", + "pub_key_cred_params", + "client_data_hash", + "user_presence", + "req_data", + "Already registered.", + "Not registered.", + "displayName", + "hmac-secret", + "U2F Register", + "U2F Authenticate", + "FIDO2 Register", + "FIDO2 Authenticate", + "FIDO2 Verify User", + "Unable to verify user.", + "apps/webauthn/knownapps.py", + "FIDOApp", + "apple.com", + "apple", + "aws", + "bitbucket", + "bitfinex", + "bitwarden", + "cloudflare", + "coinbase", + "dashlane", + "dropbox", + "duo", + "facebook", + "fastmail", + "fedora", + "gandi.net", + "gandi", + "gemini.com", + "gemini", + "github.com", + "github", + "gitlab.com", + "gitlab", + "google.com", + "google", + "invity.io", + "invity", + "keeper", + "kraken.com", + "kraken", + "login.gov", + "microsoft", + "mojeid.cz", + "mojeid", + "namecheap", + "proton.me", + "proton", + "slushpool", + "stripe.com", + "stripe", + "tutanota", + "aws.amazon.com", + "www.binance.com", + "binance.com", + "bitbucket.org", + "www.bitfinex.com", + "vault.bitwarden.com", + "dash.cloudflare.com", + "coinbase.com", + "www.dashlane.com", + "www.dropbox.com", + "duosecurity.com", + "facebook.com", + "www.fastmail.com", + "fastmail.com", + "fedoraproject.org", + "keepersecurity.com", + "keepersecurity.eu", + "secure.login.gov", + "login.microsoft.com", + "www.namecheap.com", + "slushpool.com", + "tutanota.com", + "u2f.bin.coffee", + "webauthn.bin.coffee", + "webauthn.io", + "webauthn.me", + "demo.yubico.com", + "apps/webauthn/list_resident_credentials.py", + "EXPORT", + "find_all", + "credentials_list", + "List credentials", + "apps/webauthn/remove_resident_credential.py", + "get_resident_credential", + "Remove credential", + "Credential removed", + "apps/webauthn/resident_credentials.py", + "_credential_from_data", + "storage_resident_credentials", + "apps/bitcoin/sign_tx/decred.py", + "DecredTxWeightCalculator", + "DecredApprover", + "DecredSigHasher", + "add_decred_sstx_submission", + "h_prefix", + "approve_staking_ticket", + "write_tx_input_witness", + "process_sstx_commitment_owned", + "OUTPUT_SCRIPT_NULL_SSTXCHANGE", + "Missing address.", + "apps/bitcoin/sign_tx/bitcoinlike.py", + "apps/bitcoin/sign_tx/zcash_v4.py", + "Zip243SigHasher", + "h_sequence", + }, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module all_modules +// - original source file: build/firmware/src/all_modules.mpy +// - frozen file name: all_modules.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file all_modules.py, scope all_modules__lt_module_gt_ +static const byte fun_data_all_modules__lt_module_gt_[7033] = { + 0x08,0xf8,0x16, // prelude + 0x01, // names: + 0x60,0x60,0x6c,0x87,0x16,0x4c,0x23,0x26,0x23,0x26,0x23,0x26,0x23,0x26,0x44,0x23,0x26,0x23,0x26,0x25,0x26,0x25,0x26,0x25,0x26,0x25,0x26,0x25,0x26,0x25,0x26,0x25,0x26,0x25,0x26,0x25,0x26,0x23,0x26,0x25,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x27,0x26,0x25,0x26,0x25,0x26,0x25,0x26,0x25,0x26,0x25,0x26,0x25,0x26,0x25,0x26,0x25,0x26,0x25,0x26,0x25,0x26,0x27,0x26,0x29,0x26,0x29,0x26,0x29,0x26,0x29,0x26,0x29,0x26,0x29,0x26,0x29,0x26,0x2b,0x26,0x2b,0x26,0x2b,0x27,0x2b,0x27,0x2b,0x27,0x2a,0x27,0x2c,0x27,0x2c,0x27,0x2c,0x27,0x2c,0x27,0x2c,0x27,0x28,0x27,0x25,0x26,0x26,0x27,0x29,0x27,0x29,0x27,0x28,0x27,0x26,0x27,0x24,0x28,0x27,0x28,0x27,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x29,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x29,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2c,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x26,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x28,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x26,0x28,0x29,0x28,0x26,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2c,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2a,0x28,0x2d,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x27,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x27,0x48,0x20,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x28,0x27,0x27,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2d,0x28,0x27,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2d,0x28,0x2c,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2c,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x29,0x28,0x27,0x28,0x2a,0x28,0x2d,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x27,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x27,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2a,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x30,0x28,0x30,0x28,0x30,0x28,0x30,0x28,0x30,0x28,0x30,0x28,0x30,0x28,0x30,0x28,0x30,0x28,0x27,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2d,0x28,0x2a,0x28,0x2d,0x28,0x2d,0x28,0x2a,0x28,0x2d,0x28,0x2d,0x28,0x2a,0x28,0x2a,0x28,0x2d,0x28,0x2d,0x28,0x2a,0x28,0x2a,0x28,0x27,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x27,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2d,0x28,0x2d,0x28,0x2a,0x28,0x2a,0x28,0x27,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x27,0x28,0x2a,0x28,0x29,0x28,0x2a,0x28,0x29,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x29,0x28,0x27,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x68,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'halt' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.utils' + 0x1c,0x02, // IMPORT_FROM 'halt' + 0x16,0x02, // STORE_NAME 'halt' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'halt' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor' + 0x1c,0x04, // IMPORT_FROM 'utils' + 0x16,0x04, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x11,0x06, // LOAD_NAME 'all_modules' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x06, // IMPORT_NAME 'all_modules' + 0x16,0x06, // STORE_NAME 'all_modules' + 0x11,0x07, // LOAD_NAME 'boot' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x07, // IMPORT_NAME 'boot' + 0x16,0x07, // STORE_NAME 'boot' + 0x11,0x08, // LOAD_NAME 'main' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x08, // IMPORT_NAME 'main' + 0x16,0x08, // STORE_NAME 'main' + 0x11,0x09, // LOAD_NAME 'session' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x09, // IMPORT_NAME 'session' + 0x16,0x09, // STORE_NAME 'session' + 0x11,0x84,0x57, // LOAD_NAME 'typing' + 0x59, // POP_TOP + 0x11,0x0a, // LOAD_NAME 'usb' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x0a, // IMPORT_NAME 'usb' + 0x16,0x0a, // STORE_NAME 'usb' + 0x11,0x0b, // LOAD_NAME 'storage' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x0b, // IMPORT_NAME 'storage' + 0x16,0x0b, // STORE_NAME 'storage' + 0x11,0x0b, // LOAD_NAME 'storage' + 0x13,0x0c, // LOAD_ATTR 'cache' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x0d, // IMPORT_NAME 'storage.cache' + 0x16,0x0b, // STORE_NAME 'storage' + 0x11,0x0b, // LOAD_NAME 'storage' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x0f, // IMPORT_NAME 'storage.common' + 0x16,0x0b, // STORE_NAME 'storage' + 0x11,0x0b, // LOAD_NAME 'storage' + 0x13,0x10, // LOAD_ATTR 'debug' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x11, // IMPORT_NAME 'storage.debug' + 0x16,0x0b, // STORE_NAME 'storage' + 0x11,0x0b, // LOAD_NAME 'storage' + 0x13,0x12, // LOAD_ATTR 'device' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x13, // IMPORT_NAME 'storage.device' + 0x16,0x0b, // STORE_NAME 'storage' + 0x11,0x0b, // LOAD_NAME 'storage' + 0x13,0x14, // LOAD_ATTR 'fido2' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x15, // IMPORT_NAME 'storage.fido2' + 0x16,0x0b, // STORE_NAME 'storage' + 0x11,0x0b, // LOAD_NAME 'storage' + 0x13,0x16, // LOAD_ATTR 'recovery' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x17, // IMPORT_NAME 'storage.recovery' + 0x16,0x0b, // STORE_NAME 'storage' + 0x11,0x0b, // LOAD_NAME 'storage' + 0x13,0x18, // LOAD_ATTR 'recovery_shares' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x19, // IMPORT_NAME 'storage.recovery_shares' + 0x16,0x0b, // STORE_NAME 'storage' + 0x11,0x0b, // LOAD_NAME 'storage' + 0x13,0x1a, // LOAD_ATTR 'resident_credentials' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x1b, // IMPORT_NAME 'storage.resident_credentials' + 0x16,0x0b, // STORE_NAME 'storage' + 0x11,0x0b, // LOAD_NAME 'storage' + 0x13,0x1c, // LOAD_ATTR 'sd_salt' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x1d, // IMPORT_NAME 'storage.sd_salt' + 0x16,0x0b, // STORE_NAME 'storage' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x05, // IMPORT_NAME 'trezor' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x1e, // LOAD_ATTR 'crypto' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x1f, // IMPORT_NAME 'trezor.crypto' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x1e, // LOAD_ATTR 'crypto' + 0x13,0x20, // LOAD_ATTR 'base32' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x21, // IMPORT_NAME 'trezor.crypto.base32' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x1e, // LOAD_ATTR 'crypto' + 0x13,0x22, // LOAD_ATTR 'base58' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x23, // IMPORT_NAME 'trezor.crypto.base58' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x1e, // LOAD_ATTR 'crypto' + 0x13,0x24, // LOAD_ATTR 'bech32' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x25, // IMPORT_NAME 'trezor.crypto.bech32' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x1e, // LOAD_ATTR 'crypto' + 0x13,0x26, // LOAD_ATTR 'cashaddr' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x27, // IMPORT_NAME 'trezor.crypto.cashaddr' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x1e, // LOAD_ATTR 'crypto' + 0x13,0x28, // LOAD_ATTR 'cosi' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x29, // IMPORT_NAME 'trezor.crypto.cosi' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x1e, // LOAD_ATTR 'crypto' + 0x13,0x2a, // LOAD_ATTR 'curve' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x2b, // IMPORT_NAME 'trezor.crypto.curve' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x1e, // LOAD_ATTR 'crypto' + 0x13,0x2c, // LOAD_ATTR 'der' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x2d, // IMPORT_NAME 'trezor.crypto.der' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x1e, // LOAD_ATTR 'crypto' + 0x13,0x2e, // LOAD_ATTR 'hashlib' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x2f, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x1e, // LOAD_ATTR 'crypto' + 0x13,0x30, // LOAD_ATTR 'rlp' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x31, // IMPORT_NAME 'trezor.crypto.rlp' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x1e, // LOAD_ATTR 'crypto' + 0x13,0x32, // LOAD_ATTR 'scripts' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x33, // IMPORT_NAME 'trezor.crypto.scripts' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x1e, // LOAD_ATTR 'crypto' + 0x13,0x34, // LOAD_ATTR 'slip39' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x35, // IMPORT_NAME 'trezor.crypto.slip39' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x37, // LOAD_ATTR 'AmountUnit' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x38, // IMPORT_NAME 'trezor.enums.AmountUnit' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x39, // LOAD_ATTR 'BackupType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x3a, // IMPORT_NAME 'trezor.enums.BackupType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x3b, // LOAD_ATTR 'ButtonRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x3c, // IMPORT_NAME 'trezor.enums.ButtonRequestType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x3d, // LOAD_ATTR 'Capability' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x3e, // IMPORT_NAME 'trezor.enums.Capability' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x3f, // LOAD_ATTR 'DebugButton' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x40, // IMPORT_NAME 'trezor.enums.DebugButton' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x41, // LOAD_ATTR 'DebugPhysicalButton' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x42, // IMPORT_NAME 'trezor.enums.DebugPhysicalButton' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x43, // LOAD_ATTR 'DebugSwipeDirection' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x44, // IMPORT_NAME 'trezor.enums.DebugSwipeDirection' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x45, // LOAD_ATTR 'DecredStakingSpendType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x46, // IMPORT_NAME 'trezor.enums.DecredStakingSpendType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x47, // LOAD_ATTR 'FailureType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x48, // IMPORT_NAME 'trezor.enums.FailureType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x49, // LOAD_ATTR 'HomescreenFormat' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x4a, // IMPORT_NAME 'trezor.enums.HomescreenFormat' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x4b, // LOAD_ATTR 'InputScriptType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x4c, // IMPORT_NAME 'trezor.enums.InputScriptType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x4d, // LOAD_ATTR 'MessageType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x4e, // IMPORT_NAME 'trezor.enums.MessageType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x4f, // LOAD_ATTR 'OutputScriptType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x50, // IMPORT_NAME 'trezor.enums.OutputScriptType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x51, // LOAD_ATTR 'PinMatrixRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x52, // IMPORT_NAME 'trezor.enums.PinMatrixRequestType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x53, // LOAD_ATTR 'RecoveryDeviceType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x54, // IMPORT_NAME 'trezor.enums.RecoveryDeviceType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x55, // LOAD_ATTR 'RequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x56, // IMPORT_NAME 'trezor.enums.RequestType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x57, // LOAD_ATTR 'SafetyCheckLevel' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x58, // IMPORT_NAME 'trezor.enums.SafetyCheckLevel' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x59, // LOAD_ATTR 'SdProtectOperationType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x5a, // IMPORT_NAME 'trezor.enums.SdProtectOperationType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x5b, // LOAD_ATTR 'WordRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x5c, // IMPORT_NAME 'trezor.enums.WordRequestType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x5d, // IMPORT_NAME 'trezor.enums' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x5e, // LOAD_ATTR 'errors' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x5f, // IMPORT_NAME 'trezor.errors' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x60, // LOAD_ATTR 'log' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x61, // IMPORT_NAME 'trezor.log' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x62, // LOAD_ATTR 'loop' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x63, // IMPORT_NAME 'trezor.loop' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x64, // LOAD_ATTR 'messages' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x65, // IMPORT_NAME 'trezor.messages' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x66, // LOAD_ATTR 'pin' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x67, // IMPORT_NAME 'trezor.pin' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x68, // LOAD_ATTR 'protobuf' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x69, // IMPORT_NAME 'trezor.protobuf' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6a, // LOAD_ATTR 'sdcard' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x6b, // IMPORT_NAME 'trezor.sdcard' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6c, // LOAD_ATTR 'strings' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x6d, // IMPORT_NAME 'trezor.strings' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x6f, // IMPORT_NAME 'trezor.ui' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x70, // LOAD_ATTR 'layouts' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x71, // IMPORT_NAME 'trezor.ui.layouts' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x70, // LOAD_ATTR 'layouts' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x72, // IMPORT_NAME 'trezor.ui.layouts.common' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x70, // LOAD_ATTR 'layouts' + 0x13,0x73, // LOAD_ATTR 'fido' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x74, // IMPORT_NAME 'trezor.ui.layouts.fido' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x70, // LOAD_ATTR 'layouts' + 0x13,0x75, // LOAD_ATTR 'homescreen' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x76, // IMPORT_NAME 'trezor.ui.layouts.homescreen' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x70, // LOAD_ATTR 'layouts' + 0x13,0x77, // LOAD_ATTR 'progress' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x78, // IMPORT_NAME 'trezor.ui.layouts.progress' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x70, // LOAD_ATTR 'layouts' + 0x13,0x16, // LOAD_ATTR 'recovery' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x79, // IMPORT_NAME 'trezor.ui.layouts.recovery' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x70, // LOAD_ATTR 'layouts' + 0x13,0x7a, // LOAD_ATTR 'reset' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x7b, // IMPORT_NAME 'trezor.ui.layouts.reset' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x70, // LOAD_ATTR 'layouts' + 0x13,0x7c, // LOAD_ATTR 'tr' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x7d, // IMPORT_NAME 'trezor.ui.layouts.tr' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x70, // LOAD_ATTR 'layouts' + 0x13,0x7c, // LOAD_ATTR 'tr' + 0x13,0x73, // LOAD_ATTR 'fido' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x7e, // IMPORT_NAME 'trezor.ui.layouts.tr.fido' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x70, // LOAD_ATTR 'layouts' + 0x13,0x7c, // LOAD_ATTR 'tr' + 0x13,0x75, // LOAD_ATTR 'homescreen' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x7f, // IMPORT_NAME 'trezor.ui.layouts.tr.homescreen' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x70, // LOAD_ATTR 'layouts' + 0x13,0x7c, // LOAD_ATTR 'tr' + 0x13,0x77, // LOAD_ATTR 'progress' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x00, // IMPORT_NAME 'trezor.ui.layouts.tr.progress' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x70, // LOAD_ATTR 'layouts' + 0x13,0x7c, // LOAD_ATTR 'tr' + 0x13,0x16, // LOAD_ATTR 'recovery' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x01, // IMPORT_NAME 'trezor.ui.layouts.tr.recovery' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x70, // LOAD_ATTR 'layouts' + 0x13,0x7c, // LOAD_ATTR 'tr' + 0x13,0x7a, // LOAD_ATTR 'reset' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x02, // IMPORT_NAME 'trezor.ui.layouts.tr.reset' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x70, // LOAD_ATTR 'layouts' + 0x13,0x81,0x03, // LOAD_ATTR 'tt' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x04, // IMPORT_NAME 'trezor.ui.layouts.tt' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x70, // LOAD_ATTR 'layouts' + 0x13,0x81,0x03, // LOAD_ATTR 'tt' + 0x13,0x73, // LOAD_ATTR 'fido' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x05, // IMPORT_NAME 'trezor.ui.layouts.tt.fido' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x70, // LOAD_ATTR 'layouts' + 0x13,0x81,0x03, // LOAD_ATTR 'tt' + 0x13,0x75, // LOAD_ATTR 'homescreen' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x06, // IMPORT_NAME 'trezor.ui.layouts.tt.homescreen' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x70, // LOAD_ATTR 'layouts' + 0x13,0x81,0x03, // LOAD_ATTR 'tt' + 0x13,0x77, // LOAD_ATTR 'progress' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x07, // IMPORT_NAME 'trezor.ui.layouts.tt.progress' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x70, // LOAD_ATTR 'layouts' + 0x13,0x81,0x03, // LOAD_ATTR 'tt' + 0x13,0x16, // LOAD_ATTR 'recovery' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x08, // IMPORT_NAME 'trezor.ui.layouts.tt.recovery' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x70, // LOAD_ATTR 'layouts' + 0x13,0x81,0x03, // LOAD_ATTR 'tt' + 0x13,0x7a, // LOAD_ATTR 'reset' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x09, // IMPORT_NAME 'trezor.ui.layouts.tt.reset' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x6e, // LOAD_ATTR 'ui' + 0x13,0x81,0x0a, // LOAD_ATTR 'style' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x0b, // IMPORT_NAME 'trezor.ui.style' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x04, // LOAD_ATTR 'utils' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'trezor.utils' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x81,0x0c, // LOAD_ATTR 'wire' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x0d, // IMPORT_NAME 'trezor.wire' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x81,0x0c, // LOAD_ATTR 'wire' + 0x13,0x81,0x0e, // LOAD_ATTR 'codec_v1' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x0f, // IMPORT_NAME 'trezor.wire.codec_v1' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x81,0x0c, // LOAD_ATTR 'wire' + 0x13,0x81,0x10, // LOAD_ATTR 'context' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x11, // IMPORT_NAME 'trezor.wire.context' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x81,0x0c, // LOAD_ATTR 'wire' + 0x13,0x5e, // LOAD_ATTR 'errors' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x12, // IMPORT_NAME 'trezor.wire.errors' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x81,0x13, // LOAD_ATTR 'workflow' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x14, // IMPORT_NAME 'trezor.workflow' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x15, // IMPORT_NAME 'apps' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x16, // LOAD_ATTR 'base' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x17, // IMPORT_NAME 'apps.base' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x19, // IMPORT_NAME 'apps.bitcoin' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x1a, // LOAD_ATTR 'addresses' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x1b, // IMPORT_NAME 'apps.bitcoin.addresses' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x1c, // LOAD_ATTR 'authorization' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x1d, // IMPORT_NAME 'apps.bitcoin.authorization' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x1e, // LOAD_ATTR 'authorize_coinjoin' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x1f, // IMPORT_NAME 'apps.bitcoin.authorize_coinjoin' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x20, // IMPORT_NAME 'apps.bitcoin.common' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x21, // LOAD_ATTR 'get_address' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x22, // IMPORT_NAME 'apps.bitcoin.get_address' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x23, // LOAD_ATTR 'get_ownership_id' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x24, // IMPORT_NAME 'apps.bitcoin.get_ownership_id' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x25, // LOAD_ATTR 'get_ownership_proof' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x26, // IMPORT_NAME 'apps.bitcoin.get_ownership_proof' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x27, // LOAD_ATTR 'get_public_key' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x28, // IMPORT_NAME 'apps.bitcoin.get_public_key' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x29, // LOAD_ATTR 'keychain' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x2a, // IMPORT_NAME 'apps.bitcoin.keychain' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x2b, // LOAD_ATTR 'multisig' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x2c, // IMPORT_NAME 'apps.bitcoin.multisig' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x2d, // LOAD_ATTR 'ownership' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x2e, // IMPORT_NAME 'apps.bitcoin.ownership' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x2f, // LOAD_ATTR 'readers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x30, // IMPORT_NAME 'apps.bitcoin.readers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x32, // LOAD_ATTR 'scripts' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x31, // IMPORT_NAME 'apps.bitcoin.scripts' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x32, // LOAD_ATTR 'scripts_decred' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x33, // IMPORT_NAME 'apps.bitcoin.scripts_decred' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x34, // LOAD_ATTR 'sign_message' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x35, // IMPORT_NAME 'apps.bitcoin.sign_message' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x37, // IMPORT_NAME 'apps.bitcoin.sign_tx' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x13,0x81,0x38, // LOAD_ATTR 'approvers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x39, // IMPORT_NAME 'apps.bitcoin.sign_tx.approvers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x3a, // IMPORT_NAME 'apps.bitcoin.sign_tx.bitcoin' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x13,0x81,0x3b, // LOAD_ATTR 'bitcoinlike' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x3c, // IMPORT_NAME 'apps.bitcoin.sign_tx.bitcoinlike' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x13,0x81,0x3d, // LOAD_ATTR 'decred' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x3e, // IMPORT_NAME 'apps.bitcoin.sign_tx.decred' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x13,0x81,0x3f, // LOAD_ATTR 'helpers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x40, // IMPORT_NAME 'apps.bitcoin.sign_tx.helpers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x13,0x81,0x41, // LOAD_ATTR 'layout' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x42, // IMPORT_NAME 'apps.bitcoin.sign_tx.layout' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x13,0x81,0x43, // LOAD_ATTR 'matchcheck' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x44, // IMPORT_NAME 'apps.bitcoin.sign_tx.matchcheck' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x13,0x81,0x45, // LOAD_ATTR 'omni' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x46, // IMPORT_NAME 'apps.bitcoin.sign_tx.omni' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x13,0x81,0x47, // LOAD_ATTR 'payment_request' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x48, // IMPORT_NAME 'apps.bitcoin.sign_tx.payment_request' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x13,0x77, // LOAD_ATTR 'progress' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x49, // IMPORT_NAME 'apps.bitcoin.sign_tx.progress' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x13,0x81,0x4a, // LOAD_ATTR 'sig_hasher' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x4b, // IMPORT_NAME 'apps.bitcoin.sign_tx.sig_hasher' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x13,0x81,0x4c, // LOAD_ATTR 'tx_info' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x4d, // IMPORT_NAME 'apps.bitcoin.sign_tx.tx_info' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x13,0x81,0x4e, // LOAD_ATTR 'tx_weight' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x4f, // IMPORT_NAME 'apps.bitcoin.sign_tx.tx_weight' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x50, // LOAD_ATTR 'verification' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x51, // IMPORT_NAME 'apps.bitcoin.verification' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x52, // LOAD_ATTR 'verify_message' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x53, // IMPORT_NAME 'apps.bitcoin.verify_message' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x54, // LOAD_ATTR 'writers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x55, // IMPORT_NAME 'apps.bitcoin.writers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x56, // IMPORT_NAME 'apps.common' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x13,0x81,0x57, // LOAD_ATTR 'address_mac' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x58, // IMPORT_NAME 'apps.common.address_mac' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x13,0x81,0x59, // LOAD_ATTR 'address_type' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x5a, // IMPORT_NAME 'apps.common.address_type' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x13,0x81,0x1c, // LOAD_ATTR 'authorization' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x5b, // IMPORT_NAME 'apps.common.authorization' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x13,0x81,0x5c, // LOAD_ATTR 'cbor' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x5d, // IMPORT_NAME 'apps.common.cbor' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x13,0x81,0x5e, // LOAD_ATTR 'coininfo' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x5f, // IMPORT_NAME 'apps.common.coininfo' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x13,0x81,0x60, // LOAD_ATTR 'coins' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x61, // IMPORT_NAME 'apps.common.coins' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x13,0x81,0x29, // LOAD_ATTR 'keychain' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x62, // IMPORT_NAME 'apps.common.keychain' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x13,0x81,0x63, // LOAD_ATTR 'passphrase' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x64, // IMPORT_NAME 'apps.common.passphrase' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x13,0x81,0x65, // LOAD_ATTR 'paths' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x66, // IMPORT_NAME 'apps.common.paths' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x13,0x81,0x2f, // LOAD_ATTR 'readers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x67, // IMPORT_NAME 'apps.common.readers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x13,0x81,0x68, // LOAD_ATTR 'request_pin' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x69, // IMPORT_NAME 'apps.common.request_pin' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x13,0x81,0x6a, // LOAD_ATTR 'safety_checks' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x6b, // IMPORT_NAME 'apps.common.safety_checks' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x13,0x6a, // LOAD_ATTR 'sdcard' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x6c, // IMPORT_NAME 'apps.common.sdcard' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x13,0x81,0x6d, // LOAD_ATTR 'seed' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x6e, // IMPORT_NAME 'apps.common.seed' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x13,0x81,0x6f, // LOAD_ATTR 'signverify' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x70, // IMPORT_NAME 'apps.common.signverify' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x13,0x81,0x54, // LOAD_ATTR 'writers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x71, // IMPORT_NAME 'apps.common.writers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x10, // LOAD_ATTR 'debug' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x72, // IMPORT_NAME 'apps.debug' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x10, // LOAD_ATTR 'debug' + 0x13,0x81,0x73, // LOAD_ATTR 'load_device' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x74, // IMPORT_NAME 'apps.debug.load_device' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x75, // LOAD_ATTR 'homescreen' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x75, // IMPORT_NAME 'apps.homescreen' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x81,0x77, // LOAD_ATTR 'apply_flags' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x78, // IMPORT_NAME 'apps.management.apply_flags' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x81,0x79, // LOAD_ATTR 'apply_settings' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x7a, // IMPORT_NAME 'apps.management.apply_settings' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x81,0x7b, // LOAD_ATTR 'authenticate_device' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x7c, // IMPORT_NAME 'apps.management.authenticate_device' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x81,0x7d, // LOAD_ATTR 'backup_device' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x7e, // IMPORT_NAME 'apps.management.backup_device' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x81,0x7f, // LOAD_ATTR 'backup_types' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x00, // IMPORT_NAME 'apps.management.backup_types' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x82,0x01, // LOAD_ATTR 'change_pin' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x02, // IMPORT_NAME 'apps.management.change_pin' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x82,0x03, // LOAD_ATTR 'change_wipe_code' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x04, // IMPORT_NAME 'apps.management.change_wipe_code' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x82,0x05, // LOAD_ATTR 'get_next_u2f_counter' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x06, // IMPORT_NAME 'apps.management.get_next_u2f_counter' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x82,0x07, // LOAD_ATTR 'get_nonce' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x08, // IMPORT_NAME 'apps.management.get_nonce' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x82,0x09, // LOAD_ATTR 'reboot_to_bootloader' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x0a, // IMPORT_NAME 'apps.management.reboot_to_bootloader' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x82,0x0b, // LOAD_ATTR 'recovery_device' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x0c, // IMPORT_NAME 'apps.management.recovery_device' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x82,0x0b, // LOAD_ATTR 'recovery_device' + 0x13,0x75, // LOAD_ATTR 'homescreen' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x0d, // IMPORT_NAME 'apps.management.recovery_device.homescreen' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x82,0x0b, // LOAD_ATTR 'recovery_device' + 0x13,0x81,0x41, // LOAD_ATTR 'layout' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x0e, // IMPORT_NAME 'apps.management.recovery_device.layout' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x82,0x0b, // LOAD_ATTR 'recovery_device' + 0x13,0x82,0x0f, // LOAD_ATTR 'recover' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x10, // IMPORT_NAME 'apps.management.recovery_device.recover' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x82,0x0b, // LOAD_ATTR 'recovery_device' + 0x13,0x82,0x11, // LOAD_ATTR 'word_validity' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x12, // IMPORT_NAME 'apps.management.recovery_device.word_validity' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x82,0x13, // LOAD_ATTR 'reset_device' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x14, // IMPORT_NAME 'apps.management.reset_device' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x82,0x13, // LOAD_ATTR 'reset_device' + 0x13,0x81,0x41, // LOAD_ATTR 'layout' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x15, // IMPORT_NAME 'apps.management.reset_device.layout' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x82,0x16, // LOAD_ATTR 'sd_protect' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x17, // IMPORT_NAME 'apps.management.sd_protect' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x82,0x18, // LOAD_ATTR 'set_u2f_counter' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x19, // IMPORT_NAME 'apps.management.set_u2f_counter' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x82,0x1a, // LOAD_ATTR 'show_tutorial' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x1b, // IMPORT_NAME 'apps.management.show_tutorial' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x76, // LOAD_ATTR 'management' + 0x13,0x82,0x1c, // LOAD_ATTR 'wipe_device' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x1d, // IMPORT_NAME 'apps.management.wipe_device' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x1e, // LOAD_ATTR 'misc' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x1f, // IMPORT_NAME 'apps.misc' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x1e, // LOAD_ATTR 'misc' + 0x13,0x82,0x20, // LOAD_ATTR 'cipher_key_value' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x21, // IMPORT_NAME 'apps.misc.cipher_key_value' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x1e, // LOAD_ATTR 'misc' + 0x13,0x82,0x22, // LOAD_ATTR 'cosi_commit' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x23, // IMPORT_NAME 'apps.misc.cosi_commit' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x1e, // LOAD_ATTR 'misc' + 0x13,0x82,0x24, // LOAD_ATTR 'get_ecdh_session_key' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x25, // IMPORT_NAME 'apps.misc.get_ecdh_session_key' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x1e, // LOAD_ATTR 'misc' + 0x13,0x82,0x26, // LOAD_ATTR 'get_entropy' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x27, // IMPORT_NAME 'apps.misc.get_entropy' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x1e, // LOAD_ATTR 'misc' + 0x13,0x82,0x28, // LOAD_ATTR 'get_firmware_hash' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x29, // IMPORT_NAME 'apps.misc.get_firmware_hash' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x1e, // LOAD_ATTR 'misc' + 0x13,0x82,0x2a, // LOAD_ATTR 'sign_identity' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x2b, // IMPORT_NAME 'apps.misc.sign_identity' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x2c, // LOAD_ATTR 'workflow_handlers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x2d, // IMPORT_NAME 'apps.workflow_handlers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x2e, // LOAD_ATTR 'BinanceOrderSide' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x2f, // IMPORT_NAME 'trezor.enums.BinanceOrderSide' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x30, // LOAD_ATTR 'BinanceOrderType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x31, // IMPORT_NAME 'trezor.enums.BinanceOrderType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x32, // LOAD_ATTR 'BinanceTimeInForce' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x33, // IMPORT_NAME 'trezor.enums.BinanceTimeInForce' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x34, // LOAD_ATTR 'CardanoAddressType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x35, // IMPORT_NAME 'trezor.enums.CardanoAddressType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x36, // LOAD_ATTR 'CardanoCVoteRegistrationFormat' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x37, // IMPORT_NAME 'trezor.enums.CardanoCVoteRegistrationFormat' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x38, // LOAD_ATTR 'CardanoCertificateType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x39, // IMPORT_NAME 'trezor.enums.CardanoCertificateType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x3a, // LOAD_ATTR 'CardanoDerivationType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x3b, // IMPORT_NAME 'trezor.enums.CardanoDerivationType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x3c, // LOAD_ATTR 'CardanoNativeScriptHashDisplayFormat' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x3d, // IMPORT_NAME 'trezor.enums.CardanoNativeScriptHashDisplayFormat' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x3e, // LOAD_ATTR 'CardanoNativeScriptType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x3f, // IMPORT_NAME 'trezor.enums.CardanoNativeScriptType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x40, // LOAD_ATTR 'CardanoPoolRelayType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x41, // IMPORT_NAME 'trezor.enums.CardanoPoolRelayType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x42, // LOAD_ATTR 'CardanoTxAuxiliaryDataSupplementType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x43, // IMPORT_NAME 'trezor.enums.CardanoTxAuxiliaryDataSupplementType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x44, // LOAD_ATTR 'CardanoTxOutputSerializationFormat' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x45, // IMPORT_NAME 'trezor.enums.CardanoTxOutputSerializationFormat' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x46, // LOAD_ATTR 'CardanoTxSigningMode' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x47, // IMPORT_NAME 'trezor.enums.CardanoTxSigningMode' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x48, // LOAD_ATTR 'CardanoTxWitnessType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x49, // IMPORT_NAME 'trezor.enums.CardanoTxWitnessType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x4a, // LOAD_ATTR 'EthereumDataType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x4b, // IMPORT_NAME 'trezor.enums.EthereumDataType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x4c, // LOAD_ATTR 'EthereumDefinitionType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x4d, // IMPORT_NAME 'trezor.enums.EthereumDefinitionType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x4e, // LOAD_ATTR 'MoneroNetworkType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x4f, // IMPORT_NAME 'trezor.enums.MoneroNetworkType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x50, // LOAD_ATTR 'NEMImportanceTransferMode' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x51, // IMPORT_NAME 'trezor.enums.NEMImportanceTransferMode' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x52, // LOAD_ATTR 'NEMModificationType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x53, // IMPORT_NAME 'trezor.enums.NEMModificationType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x54, // LOAD_ATTR 'NEMMosaicLevy' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x55, // IMPORT_NAME 'trezor.enums.NEMMosaicLevy' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x56, // LOAD_ATTR 'NEMSupplyChangeType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x57, // IMPORT_NAME 'trezor.enums.NEMSupplyChangeType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x58, // LOAD_ATTR 'StellarAssetType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x59, // IMPORT_NAME 'trezor.enums.StellarAssetType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x5a, // LOAD_ATTR 'StellarMemoType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x5b, // IMPORT_NAME 'trezor.enums.StellarMemoType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x5c, // LOAD_ATTR 'StellarSignerType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x5d, // IMPORT_NAME 'trezor.enums.StellarSignerType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x5e, // LOAD_ATTR 'TezosBallotType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x5f, // IMPORT_NAME 'trezor.enums.TezosBallotType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x05, // LOAD_NAME 'trezor' + 0x13,0x36, // LOAD_ATTR 'enums' + 0x13,0x82,0x60, // LOAD_ATTR 'TezosContractType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x61, // IMPORT_NAME 'trezor.enums.TezosContractType' + 0x16,0x05, // STORE_NAME 'trezor' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x62, // LOAD_ATTR 'binance' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x63, // IMPORT_NAME 'apps.binance' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x62, // LOAD_ATTR 'binance' + 0x13,0x81,0x21, // LOAD_ATTR 'get_address' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x64, // IMPORT_NAME 'apps.binance.get_address' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x62, // LOAD_ATTR 'binance' + 0x13,0x81,0x27, // LOAD_ATTR 'get_public_key' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x65, // IMPORT_NAME 'apps.binance.get_public_key' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x62, // LOAD_ATTR 'binance' + 0x13,0x81,0x3f, // LOAD_ATTR 'helpers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x66, // IMPORT_NAME 'apps.binance.helpers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x62, // LOAD_ATTR 'binance' + 0x13,0x81,0x41, // LOAD_ATTR 'layout' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x67, // IMPORT_NAME 'apps.binance.layout' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x62, // LOAD_ATTR 'binance' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x68, // IMPORT_NAME 'apps.binance.sign_tx' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x81,0x18, // LOAD_ATTR 'bitcoin' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x13,0x82,0x69, // LOAD_ATTR 'zcash_v4' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x6a, // IMPORT_NAME 'apps.bitcoin.sign_tx.zcash_v4' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x6c, // IMPORT_NAME 'apps.cardano' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x1a, // LOAD_ATTR 'addresses' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x6d, // IMPORT_NAME 'apps.cardano.addresses' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x82,0x6e, // LOAD_ATTR 'auxiliary_data' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x6f, // IMPORT_NAME 'apps.cardano.auxiliary_data' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x82,0x70, // LOAD_ATTR 'byron_addresses' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x71, // IMPORT_NAME 'apps.cardano.byron_addresses' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x82,0x72, // LOAD_ATTR 'certificates' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x73, // IMPORT_NAME 'apps.cardano.certificates' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x21, // LOAD_ATTR 'get_address' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x74, // IMPORT_NAME 'apps.cardano.get_address' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x82,0x75, // LOAD_ATTR 'get_native_script_hash' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x76, // IMPORT_NAME 'apps.cardano.get_native_script_hash' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x27, // LOAD_ATTR 'get_public_key' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x77, // IMPORT_NAME 'apps.cardano.get_public_key' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x3f, // LOAD_ATTR 'helpers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x78, // IMPORT_NAME 'apps.cardano.helpers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x3f, // LOAD_ATTR 'helpers' + 0x13,0x82,0x79, // LOAD_ATTR 'account_path_check' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x7a, // IMPORT_NAME 'apps.cardano.helpers.account_path_check' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x3f, // LOAD_ATTR 'helpers' + 0x13,0x24, // LOAD_ATTR 'bech32' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x7b, // IMPORT_NAME 'apps.cardano.helpers.bech32' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x3f, // LOAD_ATTR 'helpers' + 0x13,0x82,0x7c, // LOAD_ATTR 'credential' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x7d, // IMPORT_NAME 'apps.cardano.helpers.credential' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x3f, // LOAD_ATTR 'helpers' + 0x13,0x82,0x7e, // LOAD_ATTR 'hash_builder_collection' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x7f, // IMPORT_NAME 'apps.cardano.helpers.hash_builder_collection' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x3f, // LOAD_ATTR 'helpers' + 0x13,0x83,0x00, // LOAD_ATTR 'network_ids' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x01, // IMPORT_NAME 'apps.cardano.helpers.network_ids' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x3f, // LOAD_ATTR 'helpers' + 0x13,0x81,0x65, // LOAD_ATTR 'paths' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x02, // IMPORT_NAME 'apps.cardano.helpers.paths' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x3f, // LOAD_ATTR 'helpers' + 0x13,0x83,0x03, // LOAD_ATTR 'protocol_magics' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x04, // IMPORT_NAME 'apps.cardano.helpers.protocol_magics' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x3f, // LOAD_ATTR 'helpers' + 0x13,0x04, // LOAD_ATTR 'utils' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x05, // IMPORT_NAME 'apps.cardano.helpers.utils' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x41, // LOAD_ATTR 'layout' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x06, // IMPORT_NAME 'apps.cardano.layout' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x83,0x07, // LOAD_ATTR 'native_script' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x08, // IMPORT_NAME 'apps.cardano.native_script' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x6d, // LOAD_ATTR 'seed' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x09, // IMPORT_NAME 'apps.cardano.seed' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x0a, // IMPORT_NAME 'apps.cardano.sign_tx' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x13,0x83,0x0b, // LOAD_ATTR 'multisig_signer' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x0c, // IMPORT_NAME 'apps.cardano.sign_tx.multisig_signer' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x13,0x83,0x0d, // LOAD_ATTR 'ordinary_signer' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x0e, // IMPORT_NAME 'apps.cardano.sign_tx.ordinary_signer' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x13,0x83,0x0f, // LOAD_ATTR 'plutus_signer' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x10, // IMPORT_NAME 'apps.cardano.sign_tx.plutus_signer' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x13,0x83,0x11, // LOAD_ATTR 'pool_owner_signer' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x12, // IMPORT_NAME 'apps.cardano.sign_tx.pool_owner_signer' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x82,0x6b, // LOAD_ATTR 'cardano' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x13,0x83,0x13, // LOAD_ATTR 'signer' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x14, // IMPORT_NAME 'apps.cardano.sign_tx.signer' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x13,0x83,0x15, // LOAD_ATTR 'mnemonic' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x16, // IMPORT_NAME 'apps.common.mnemonic' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x17, // LOAD_ATTR 'eos' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x18, // IMPORT_NAME 'apps.eos' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x17, // LOAD_ATTR 'eos' + 0x13,0x83,0x19, // LOAD_ATTR 'actions' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x1a, // IMPORT_NAME 'apps.eos.actions' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x17, // LOAD_ATTR 'eos' + 0x13,0x83,0x19, // LOAD_ATTR 'actions' + 0x13,0x81,0x41, // LOAD_ATTR 'layout' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x1b, // IMPORT_NAME 'apps.eos.actions.layout' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x17, // LOAD_ATTR 'eos' + 0x13,0x81,0x27, // LOAD_ATTR 'get_public_key' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x1c, // IMPORT_NAME 'apps.eos.get_public_key' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x17, // LOAD_ATTR 'eos' + 0x13,0x81,0x3f, // LOAD_ATTR 'helpers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x1d, // IMPORT_NAME 'apps.eos.helpers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x17, // LOAD_ATTR 'eos' + 0x13,0x81,0x41, // LOAD_ATTR 'layout' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x1e, // IMPORT_NAME 'apps.eos.layout' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x17, // LOAD_ATTR 'eos' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x1f, // IMPORT_NAME 'apps.eos.sign_tx' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x17, // LOAD_ATTR 'eos' + 0x13,0x81,0x54, // LOAD_ATTR 'writers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x20, // IMPORT_NAME 'apps.eos.writers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x21, // LOAD_ATTR 'ethereum' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x22, // IMPORT_NAME 'apps.ethereum' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x21, // LOAD_ATTR 'ethereum' + 0x13,0x83,0x23, // LOAD_ATTR 'definitions' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x24, // IMPORT_NAME 'apps.ethereum.definitions' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x21, // LOAD_ATTR 'ethereum' + 0x13,0x83,0x25, // LOAD_ATTR 'definitions_constants' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x26, // IMPORT_NAME 'apps.ethereum.definitions_constants' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x21, // LOAD_ATTR 'ethereum' + 0x13,0x81,0x21, // LOAD_ATTR 'get_address' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x27, // IMPORT_NAME 'apps.ethereum.get_address' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x21, // LOAD_ATTR 'ethereum' + 0x13,0x81,0x27, // LOAD_ATTR 'get_public_key' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x28, // IMPORT_NAME 'apps.ethereum.get_public_key' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x21, // LOAD_ATTR 'ethereum' + 0x13,0x81,0x3f, // LOAD_ATTR 'helpers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x29, // IMPORT_NAME 'apps.ethereum.helpers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x21, // LOAD_ATTR 'ethereum' + 0x13,0x81,0x29, // LOAD_ATTR 'keychain' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x2a, // IMPORT_NAME 'apps.ethereum.keychain' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x21, // LOAD_ATTR 'ethereum' + 0x13,0x81,0x41, // LOAD_ATTR 'layout' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x2b, // IMPORT_NAME 'apps.ethereum.layout' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x21, // LOAD_ATTR 'ethereum' + 0x13,0x83,0x2c, // LOAD_ATTR 'networks' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x2d, // IMPORT_NAME 'apps.ethereum.networks' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x21, // LOAD_ATTR 'ethereum' + 0x13,0x81,0x34, // LOAD_ATTR 'sign_message' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x2e, // IMPORT_NAME 'apps.ethereum.sign_message' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x21, // LOAD_ATTR 'ethereum' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x2f, // IMPORT_NAME 'apps.ethereum.sign_tx' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x21, // LOAD_ATTR 'ethereum' + 0x13,0x83,0x30, // LOAD_ATTR 'sign_tx_eip1559' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x31, // IMPORT_NAME 'apps.ethereum.sign_tx_eip1559' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x21, // LOAD_ATTR 'ethereum' + 0x13,0x83,0x32, // LOAD_ATTR 'sign_typed_data' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x33, // IMPORT_NAME 'apps.ethereum.sign_typed_data' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x21, // LOAD_ATTR 'ethereum' + 0x13,0x83,0x34, // LOAD_ATTR 'tokens' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x35, // IMPORT_NAME 'apps.ethereum.tokens' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x21, // LOAD_ATTR 'ethereum' + 0x13,0x81,0x52, // LOAD_ATTR 'verify_message' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x36, // IMPORT_NAME 'apps.ethereum.verify_message' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x38, // IMPORT_NAME 'apps.monero' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x39, // LOAD_ATTR 'diag' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x3a, // IMPORT_NAME 'apps.monero.diag' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x81,0x21, // LOAD_ATTR 'get_address' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x3b, // IMPORT_NAME 'apps.monero.get_address' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x3c, // LOAD_ATTR 'get_tx_keys' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x3d, // IMPORT_NAME 'apps.monero.get_tx_keys' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x3e, // LOAD_ATTR 'get_watch_only' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x3f, // IMPORT_NAME 'apps.monero.get_watch_only' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x40, // LOAD_ATTR 'key_image_sync' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x41, // IMPORT_NAME 'apps.monero.key_image_sync' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x81,0x41, // LOAD_ATTR 'layout' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x42, // IMPORT_NAME 'apps.monero.layout' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x43, // LOAD_ATTR 'live_refresh' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x44, // IMPORT_NAME 'apps.monero.live_refresh' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x82,0x1e, // LOAD_ATTR 'misc' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x45, // IMPORT_NAME 'apps.monero.misc' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x46, // IMPORT_NAME 'apps.monero.sign_tx' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x47, // LOAD_ATTR 'signing' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x48, // IMPORT_NAME 'apps.monero.signing' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x47, // LOAD_ATTR 'signing' + 0x13,0x83,0x49, // LOAD_ATTR 'offloading_keys' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x4a, // IMPORT_NAME 'apps.monero.signing.offloading_keys' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x47, // LOAD_ATTR 'signing' + 0x13,0x83,0x4b, // LOAD_ATTR 'state' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x4c, // IMPORT_NAME 'apps.monero.signing.state' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x47, // LOAD_ATTR 'signing' + 0x13,0x83,0x4d, // LOAD_ATTR 'step_01_init_transaction' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x4e, // IMPORT_NAME 'apps.monero.signing.step_01_init_transaction' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x47, // LOAD_ATTR 'signing' + 0x13,0x83,0x4f, // LOAD_ATTR 'step_02_set_input' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x50, // IMPORT_NAME 'apps.monero.signing.step_02_set_input' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x47, // LOAD_ATTR 'signing' + 0x13,0x83,0x51, // LOAD_ATTR 'step_04_input_vini' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x52, // IMPORT_NAME 'apps.monero.signing.step_04_input_vini' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x47, // LOAD_ATTR 'signing' + 0x13,0x83,0x53, // LOAD_ATTR 'step_05_all_inputs_set' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x54, // IMPORT_NAME 'apps.monero.signing.step_05_all_inputs_set' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x47, // LOAD_ATTR 'signing' + 0x13,0x83,0x55, // LOAD_ATTR 'step_06_set_output' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x56, // IMPORT_NAME 'apps.monero.signing.step_06_set_output' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x47, // LOAD_ATTR 'signing' + 0x13,0x83,0x57, // LOAD_ATTR 'step_07_all_outputs_set' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x58, // IMPORT_NAME 'apps.monero.signing.step_07_all_outputs_set' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x47, // LOAD_ATTR 'signing' + 0x13,0x83,0x59, // LOAD_ATTR 'step_09_sign_input' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x5a, // IMPORT_NAME 'apps.monero.signing.step_09_sign_input' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x47, // LOAD_ATTR 'signing' + 0x13,0x83,0x5b, // LOAD_ATTR 'step_10_sign_final' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x5c, // IMPORT_NAME 'apps.monero.signing.step_10_sign_final' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x5e, // IMPORT_NAME 'apps.monero.xmr' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x81,0x1a, // LOAD_ATTR 'addresses' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x5f, // IMPORT_NAME 'apps.monero.xmr.addresses' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x60, // LOAD_ATTR 'bulletproof' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x61, // IMPORT_NAME 'apps.monero.xmr.bulletproof' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x62, // LOAD_ATTR 'chacha_poly' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x63, // IMPORT_NAME 'apps.monero.xmr.chacha_poly' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x64, // LOAD_ATTR 'clsag' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x65, // IMPORT_NAME 'apps.monero.xmr.clsag' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x66, // LOAD_ATTR 'credentials' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x67, // IMPORT_NAME 'apps.monero.xmr.credentials' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x68, // LOAD_ATTR 'crypto_helpers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x69, // IMPORT_NAME 'apps.monero.xmr.crypto_helpers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x6a, // LOAD_ATTR 'keccak_hasher' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x6b, // IMPORT_NAME 'apps.monero.xmr.keccak_hasher' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x6c, // LOAD_ATTR 'key_image' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x6d, // IMPORT_NAME 'apps.monero.xmr.key_image' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x6e, // LOAD_ATTR 'mlsag_hasher' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x6f, // IMPORT_NAME 'apps.monero.xmr.mlsag_hasher' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x70, // IMPORT_NAME 'apps.monero.xmr.monero' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x2c, // LOAD_ATTR 'networks' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x71, // IMPORT_NAME 'apps.monero.xmr.networks' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x72, // LOAD_ATTR 'range_signatures' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x73, // IMPORT_NAME 'apps.monero.xmr.range_signatures' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x74, // LOAD_ATTR 'serialize' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x75, // IMPORT_NAME 'apps.monero.xmr.serialize' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x74, // LOAD_ATTR 'serialize' + 0x13,0x83,0x76, // LOAD_ATTR 'base_types' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x77, // IMPORT_NAME 'apps.monero.xmr.serialize.base_types' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x74, // LOAD_ATTR 'serialize' + 0x13,0x83,0x78, // LOAD_ATTR 'int_serialize' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x79, // IMPORT_NAME 'apps.monero.xmr.serialize.int_serialize' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x74, // LOAD_ATTR 'serialize' + 0x13,0x83,0x7a, // LOAD_ATTR 'message_types' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x7b, // IMPORT_NAME 'apps.monero.xmr.serialize.message_types' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x74, // LOAD_ATTR 'serialize' + 0x13,0x83,0x7c, // LOAD_ATTR 'readwriter' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x7d, // IMPORT_NAME 'apps.monero.xmr.serialize.readwriter' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x7e, // LOAD_ATTR 'serialize_messages' + 0x13,0x81,0x16, // LOAD_ATTR 'base' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x83,0x7f, // IMPORT_NAME 'apps.monero.xmr.serialize_messages.base' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x7e, // LOAD_ATTR 'serialize_messages' + 0x13,0x84,0x00, // LOAD_ATTR 'tx_ct_key' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x01, // IMPORT_NAME 'apps.monero.xmr.serialize_messages.tx_ct_key' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x7e, // LOAD_ATTR 'serialize_messages' + 0x13,0x84,0x02, // LOAD_ATTR 'tx_ecdh' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x03, // IMPORT_NAME 'apps.monero.xmr.serialize_messages.tx_ecdh' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x7e, // LOAD_ATTR 'serialize_messages' + 0x13,0x84,0x04, // LOAD_ATTR 'tx_prefix' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x05, // IMPORT_NAME 'apps.monero.xmr.serialize_messages.tx_prefix' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x83,0x37, // LOAD_ATTR 'monero' + 0x13,0x83,0x5d, // LOAD_ATTR 'xmr' + 0x13,0x83,0x7e, // LOAD_ATTR 'serialize_messages' + 0x13,0x84,0x06, // LOAD_ATTR 'tx_rsig_bulletproof' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x07, // IMPORT_NAME 'apps.monero.xmr.serialize_messages.tx_rsig_bulletproof' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x09, // IMPORT_NAME 'apps.nem' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x81,0x21, // LOAD_ATTR 'get_address' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x0a, // IMPORT_NAME 'apps.nem.get_address' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x81,0x3f, // LOAD_ATTR 'helpers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x0b, // IMPORT_NAME 'apps.nem.helpers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x81,0x41, // LOAD_ATTR 'layout' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x0c, // IMPORT_NAME 'apps.nem.layout' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x84,0x0d, // LOAD_ATTR 'mosaic' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x0e, // IMPORT_NAME 'apps.nem.mosaic' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x84,0x0d, // LOAD_ATTR 'mosaic' + 0x13,0x81,0x3f, // LOAD_ATTR 'helpers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x0f, // IMPORT_NAME 'apps.nem.mosaic.helpers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x84,0x0d, // LOAD_ATTR 'mosaic' + 0x13,0x81,0x41, // LOAD_ATTR 'layout' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x10, // IMPORT_NAME 'apps.nem.mosaic.layout' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x84,0x0d, // LOAD_ATTR 'mosaic' + 0x13,0x84,0x11, // LOAD_ATTR 'nem_mosaics' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x12, // IMPORT_NAME 'apps.nem.mosaic.nem_mosaics' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x84,0x0d, // LOAD_ATTR 'mosaic' + 0x13,0x83,0x74, // LOAD_ATTR 'serialize' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x13, // IMPORT_NAME 'apps.nem.mosaic.serialize' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x81,0x2b, // LOAD_ATTR 'multisig' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x14, // IMPORT_NAME 'apps.nem.multisig' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x81,0x2b, // LOAD_ATTR 'multisig' + 0x13,0x81,0x41, // LOAD_ATTR 'layout' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x15, // IMPORT_NAME 'apps.nem.multisig.layout' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x81,0x2b, // LOAD_ATTR 'multisig' + 0x13,0x83,0x74, // LOAD_ATTR 'serialize' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x16, // IMPORT_NAME 'apps.nem.multisig.serialize' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x84,0x17, // LOAD_ATTR 'namespace' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x18, // IMPORT_NAME 'apps.nem.namespace' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x84,0x17, // LOAD_ATTR 'namespace' + 0x13,0x81,0x41, // LOAD_ATTR 'layout' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x19, // IMPORT_NAME 'apps.nem.namespace.layout' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x84,0x17, // LOAD_ATTR 'namespace' + 0x13,0x83,0x74, // LOAD_ATTR 'serialize' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x1a, // IMPORT_NAME 'apps.nem.namespace.serialize' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x1b, // IMPORT_NAME 'apps.nem.sign_tx' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x84,0x1c, // LOAD_ATTR 'transfer' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x1d, // IMPORT_NAME 'apps.nem.transfer' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x84,0x1c, // LOAD_ATTR 'transfer' + 0x13,0x81,0x41, // LOAD_ATTR 'layout' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x1e, // IMPORT_NAME 'apps.nem.transfer.layout' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x84,0x1c, // LOAD_ATTR 'transfer' + 0x13,0x83,0x74, // LOAD_ATTR 'serialize' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x1f, // IMPORT_NAME 'apps.nem.transfer.serialize' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x84,0x20, // LOAD_ATTR 'validators' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x21, // IMPORT_NAME 'apps.nem.validators' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x08, // LOAD_ATTR 'nem' + 0x13,0x81,0x54, // LOAD_ATTR 'writers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x22, // IMPORT_NAME 'apps.nem.writers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x23, // LOAD_ATTR 'ripple' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x24, // IMPORT_NAME 'apps.ripple' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x23, // LOAD_ATTR 'ripple' + 0x13,0x84,0x25, // LOAD_ATTR 'base58_ripple' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x26, // IMPORT_NAME 'apps.ripple.base58_ripple' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x23, // LOAD_ATTR 'ripple' + 0x13,0x81,0x21, // LOAD_ATTR 'get_address' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x27, // IMPORT_NAME 'apps.ripple.get_address' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x23, // LOAD_ATTR 'ripple' + 0x13,0x81,0x3f, // LOAD_ATTR 'helpers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x28, // IMPORT_NAME 'apps.ripple.helpers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x23, // LOAD_ATTR 'ripple' + 0x13,0x81,0x41, // LOAD_ATTR 'layout' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x29, // IMPORT_NAME 'apps.ripple.layout' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x23, // LOAD_ATTR 'ripple' + 0x13,0x83,0x74, // LOAD_ATTR 'serialize' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x2a, // IMPORT_NAME 'apps.ripple.serialize' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x23, // LOAD_ATTR 'ripple' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x2b, // IMPORT_NAME 'apps.ripple.sign_tx' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x2c, // LOAD_ATTR 'stellar' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x2d, // IMPORT_NAME 'apps.stellar' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x2c, // LOAD_ATTR 'stellar' + 0x13,0x84,0x2e, // LOAD_ATTR 'consts' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x2f, // IMPORT_NAME 'apps.stellar.consts' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x2c, // LOAD_ATTR 'stellar' + 0x13,0x81,0x21, // LOAD_ATTR 'get_address' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x30, // IMPORT_NAME 'apps.stellar.get_address' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x2c, // LOAD_ATTR 'stellar' + 0x13,0x81,0x3f, // LOAD_ATTR 'helpers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x31, // IMPORT_NAME 'apps.stellar.helpers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x2c, // LOAD_ATTR 'stellar' + 0x13,0x81,0x41, // LOAD_ATTR 'layout' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x32, // IMPORT_NAME 'apps.stellar.layout' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x2c, // LOAD_ATTR 'stellar' + 0x13,0x84,0x33, // LOAD_ATTR 'operations' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x34, // IMPORT_NAME 'apps.stellar.operations' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x2c, // LOAD_ATTR 'stellar' + 0x13,0x84,0x33, // LOAD_ATTR 'operations' + 0x13,0x81,0x41, // LOAD_ATTR 'layout' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x35, // IMPORT_NAME 'apps.stellar.operations.layout' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x2c, // LOAD_ATTR 'stellar' + 0x13,0x84,0x33, // LOAD_ATTR 'operations' + 0x13,0x83,0x74, // LOAD_ATTR 'serialize' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x36, // IMPORT_NAME 'apps.stellar.operations.serialize' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x2c, // LOAD_ATTR 'stellar' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x37, // IMPORT_NAME 'apps.stellar.sign_tx' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x2c, // LOAD_ATTR 'stellar' + 0x13,0x81,0x54, // LOAD_ATTR 'writers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x38, // IMPORT_NAME 'apps.stellar.writers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x39, // LOAD_ATTR 'tezos' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x3a, // IMPORT_NAME 'apps.tezos' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x39, // LOAD_ATTR 'tezos' + 0x13,0x81,0x21, // LOAD_ATTR 'get_address' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x3b, // IMPORT_NAME 'apps.tezos.get_address' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x39, // LOAD_ATTR 'tezos' + 0x13,0x81,0x27, // LOAD_ATTR 'get_public_key' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x3c, // IMPORT_NAME 'apps.tezos.get_public_key' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x39, // LOAD_ATTR 'tezos' + 0x13,0x81,0x3f, // LOAD_ATTR 'helpers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x3d, // IMPORT_NAME 'apps.tezos.helpers' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x39, // LOAD_ATTR 'tezos' + 0x13,0x81,0x41, // LOAD_ATTR 'layout' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x3e, // IMPORT_NAME 'apps.tezos.layout' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x39, // LOAD_ATTR 'tezos' + 0x13,0x81,0x36, // LOAD_ATTR 'sign_tx' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x3f, // IMPORT_NAME 'apps.tezos.sign_tx' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x40, // LOAD_ATTR 'webauthn' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x41, // IMPORT_NAME 'apps.webauthn' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x40, // LOAD_ATTR 'webauthn' + 0x13,0x84,0x42, // LOAD_ATTR 'add_resident_credential' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x43, // IMPORT_NAME 'apps.webauthn.add_resident_credential' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x40, // LOAD_ATTR 'webauthn' + 0x13,0x0e, // LOAD_ATTR 'common' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x44, // IMPORT_NAME 'apps.webauthn.common' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x40, // LOAD_ATTR 'webauthn' + 0x13,0x82,0x7c, // LOAD_ATTR 'credential' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x45, // IMPORT_NAME 'apps.webauthn.credential' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x40, // LOAD_ATTR 'webauthn' + 0x13,0x14, // LOAD_ATTR 'fido2' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x46, // IMPORT_NAME 'apps.webauthn.fido2' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x40, // LOAD_ATTR 'webauthn' + 0x13,0x84,0x47, // LOAD_ATTR 'knownapps' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x48, // IMPORT_NAME 'apps.webauthn.knownapps' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x40, // LOAD_ATTR 'webauthn' + 0x13,0x84,0x49, // LOAD_ATTR 'list_resident_credentials' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x4a, // IMPORT_NAME 'apps.webauthn.list_resident_credentials' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x40, // LOAD_ATTR 'webauthn' + 0x13,0x84,0x4b, // LOAD_ATTR 'remove_resident_credential' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x4c, // IMPORT_NAME 'apps.webauthn.remove_resident_credential' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x40, // LOAD_ATTR 'webauthn' + 0x13,0x1a, // LOAD_ATTR 'resident_credentials' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x4d, // IMPORT_NAME 'apps.webauthn.resident_credentials' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x4e, // LOAD_ATTR 'zcash' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x4f, // IMPORT_NAME 'apps.zcash' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x4e, // LOAD_ATTR 'zcash' + 0x13,0x84,0x50, // LOAD_ATTR 'f4jumble' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x51, // IMPORT_NAME 'apps.zcash.f4jumble' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x4e, // LOAD_ATTR 'zcash' + 0x13,0x84,0x52, // LOAD_ATTR 'hasher' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x53, // IMPORT_NAME 'apps.zcash.hasher' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x4e, // LOAD_ATTR 'zcash' + 0x13,0x83,0x13, // LOAD_ATTR 'signer' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x54, // IMPORT_NAME 'apps.zcash.signer' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x81,0x15, // LOAD_NAME 'apps' + 0x13,0x84,0x4e, // LOAD_ATTR 'zcash' + 0x13,0x84,0x55, // LOAD_ATTR 'unified_addresses' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x84,0x56, // IMPORT_NAME 'apps.zcash.unified_addresses' + 0x16,0x81,0x15, // STORE_NAME 'apps' + 0x11,0x84,0x58, // LOAD_NAME 'a' + 0x59, // POP_TOP + 0x11,0x84,0x59, // LOAD_NAME 'A' + 0x59, // POP_TOP + 0x11,0x84,0x5a, // LOAD_NAME 'b' + 0x59, // POP_TOP + 0x11,0x84,0x5b, // LOAD_NAME 'B' + 0x59, // POP_TOP + 0x11,0x84,0x5c, // LOAD_NAME 'c' + 0x59, // POP_TOP + 0x11,0x84,0x5d, // LOAD_NAME 'C' + 0x59, // POP_TOP + 0x11,0x84,0x5e, // LOAD_NAME 'd' + 0x59, // POP_TOP + 0x11,0x84,0x5f, // LOAD_NAME 'D' + 0x59, // POP_TOP + 0x11,0x84,0x60, // LOAD_NAME 'e' + 0x59, // POP_TOP + 0x11,0x84,0x61, // LOAD_NAME 'E' + 0x59, // POP_TOP + 0x11,0x84,0x62, // LOAD_NAME 'f' + 0x59, // POP_TOP + 0x11,0x84,0x63, // LOAD_NAME 'F' + 0x59, // POP_TOP + 0x11,0x84,0x64, // LOAD_NAME 'g' + 0x59, // POP_TOP + 0x11,0x84,0x65, // LOAD_NAME 'G' + 0x59, // POP_TOP + 0x11,0x84,0x66, // LOAD_NAME 'h' + 0x59, // POP_TOP + 0x11,0x84,0x67, // LOAD_NAME 'H' + 0x59, // POP_TOP + 0x11,0x84,0x68, // LOAD_NAME 'i' + 0x59, // POP_TOP + 0x11,0x84,0x69, // LOAD_NAME 'I' + 0x59, // POP_TOP + 0x11,0x84,0x6a, // LOAD_NAME 'j' + 0x59, // POP_TOP + 0x11,0x84,0x6b, // LOAD_NAME 'J' + 0x59, // POP_TOP + 0x11,0x84,0x6c, // LOAD_NAME 'k' + 0x59, // POP_TOP + 0x11,0x84,0x6d, // LOAD_NAME 'K' + 0x59, // POP_TOP + 0x11,0x84,0x6e, // LOAD_NAME 'l' + 0x59, // POP_TOP + 0x11,0x84,0x6f, // LOAD_NAME 'L' + 0x59, // POP_TOP + 0x11,0x84,0x70, // LOAD_NAME 'm' + 0x59, // POP_TOP + 0x11,0x84,0x71, // LOAD_NAME 'M' + 0x59, // POP_TOP + 0x11,0x84,0x72, // LOAD_NAME 'n' + 0x59, // POP_TOP + 0x11,0x84,0x73, // LOAD_NAME 'N' + 0x59, // POP_TOP + 0x11,0x84,0x74, // LOAD_NAME 'o' + 0x59, // POP_TOP + 0x11,0x84,0x75, // LOAD_NAME 'O' + 0x59, // POP_TOP + 0x11,0x84,0x76, // LOAD_NAME 'p' + 0x59, // POP_TOP + 0x11,0x84,0x77, // LOAD_NAME 'P' + 0x59, // POP_TOP + 0x11,0x84,0x78, // LOAD_NAME 'q' + 0x59, // POP_TOP + 0x11,0x84,0x79, // LOAD_NAME 'Q' + 0x59, // POP_TOP + 0x11,0x84,0x7a, // LOAD_NAME 'r' + 0x59, // POP_TOP + 0x11,0x84,0x7b, // LOAD_NAME 'R' + 0x59, // POP_TOP + 0x11,0x84,0x7c, // LOAD_NAME 's' + 0x59, // POP_TOP + 0x11,0x84,0x7d, // LOAD_NAME 'S' + 0x59, // POP_TOP + 0x11,0x84,0x7e, // LOAD_NAME 't' + 0x59, // POP_TOP + 0x11,0x84,0x7f, // LOAD_NAME 'T' + 0x59, // POP_TOP + 0x11,0x85,0x00, // LOAD_NAME 'u' + 0x59, // POP_TOP + 0x11,0x85,0x01, // LOAD_NAME 'U' + 0x59, // POP_TOP + 0x11,0x85,0x02, // LOAD_NAME 'v' + 0x59, // POP_TOP + 0x11,0x85,0x03, // LOAD_NAME 'V' + 0x59, // POP_TOP + 0x11,0x85,0x04, // LOAD_NAME 'w' + 0x59, // POP_TOP + 0x11,0x85,0x05, // LOAD_NAME 'W' + 0x59, // POP_TOP + 0x11,0x85,0x06, // LOAD_NAME 'x' + 0x59, // POP_TOP + 0x11,0x85,0x07, // LOAD_NAME 'X' + 0x59, // POP_TOP + 0x11,0x85,0x08, // LOAD_NAME 'y' + 0x59, // POP_TOP + 0x11,0x85,0x09, // LOAD_NAME 'Y' + 0x59, // POP_TOP + 0x11,0x85,0x0a, // LOAD_NAME 'z' + 0x59, // POP_TOP + 0x11,0x85,0x0b, // LOAD_NAME 'Z' + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_all_modules__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_all_modules__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 7033, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_all_modules__lt_module_gt_ + 4, + .line_info_top = fun_data_all_modules__lt_module_gt_ + 767, + .opcodes = fun_data_all_modules__lt_module_gt_ + 767, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_all_modules[652] = { + MP_QSTR_all_modules_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_halt, + MP_QSTR_trezor_dot_utils, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_all_modules, + MP_QSTR_boot, + MP_QSTR_main, + MP_QSTR_session, + MP_QSTR_usb, + MP_QSTR_storage, + MP_QSTR_cache, + MP_QSTR_storage_dot_cache, + MP_QSTR_common, + MP_QSTR_storage_dot_common, + MP_QSTR_debug, + MP_QSTR_storage_dot_debug, + MP_QSTR_device, + MP_QSTR_storage_dot_device, + MP_QSTR_fido2, + MP_QSTR_storage_dot_fido2, + MP_QSTR_recovery, + MP_QSTR_storage_dot_recovery, + MP_QSTR_recovery_shares, + MP_QSTR_storage_dot_recovery_shares, + MP_QSTR_resident_credentials, + MP_QSTR_storage_dot_resident_credentials, + MP_QSTR_sd_salt, + MP_QSTR_storage_dot_sd_salt, + MP_QSTR_crypto, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_base32, + MP_QSTR_trezor_dot_crypto_dot_base32, + MP_QSTR_base58, + MP_QSTR_trezor_dot_crypto_dot_base58, + MP_QSTR_bech32, + MP_QSTR_trezor_dot_crypto_dot_bech32, + MP_QSTR_cashaddr, + MP_QSTR_trezor_dot_crypto_dot_cashaddr, + MP_QSTR_cosi, + MP_QSTR_trezor_dot_crypto_dot_cosi, + MP_QSTR_curve, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_der, + MP_QSTR_trezor_dot_crypto_dot_der, + MP_QSTR_hashlib, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_rlp, + MP_QSTR_trezor_dot_crypto_dot_rlp, + MP_QSTR_scripts, + MP_QSTR_trezor_dot_crypto_dot_scripts, + MP_QSTR_slip39, + MP_QSTR_trezor_dot_crypto_dot_slip39, + MP_QSTR_enums, + MP_QSTR_AmountUnit, + MP_QSTR_trezor_dot_enums_dot_AmountUnit, + MP_QSTR_BackupType, + MP_QSTR_trezor_dot_enums_dot_BackupType, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums_dot_ButtonRequestType, + MP_QSTR_Capability, + MP_QSTR_trezor_dot_enums_dot_Capability, + MP_QSTR_DebugButton, + MP_QSTR_trezor_dot_enums_dot_DebugButton, + MP_QSTR_DebugPhysicalButton, + MP_QSTR_trezor_dot_enums_dot_DebugPhysicalButton, + MP_QSTR_DebugSwipeDirection, + MP_QSTR_trezor_dot_enums_dot_DebugSwipeDirection, + MP_QSTR_DecredStakingSpendType, + MP_QSTR_trezor_dot_enums_dot_DecredStakingSpendType, + MP_QSTR_FailureType, + MP_QSTR_trezor_dot_enums_dot_FailureType, + MP_QSTR_HomescreenFormat, + MP_QSTR_trezor_dot_enums_dot_HomescreenFormat, + MP_QSTR_InputScriptType, + MP_QSTR_trezor_dot_enums_dot_InputScriptType, + MP_QSTR_MessageType, + MP_QSTR_trezor_dot_enums_dot_MessageType, + MP_QSTR_OutputScriptType, + MP_QSTR_trezor_dot_enums_dot_OutputScriptType, + MP_QSTR_PinMatrixRequestType, + MP_QSTR_trezor_dot_enums_dot_PinMatrixRequestType, + MP_QSTR_RecoveryDeviceType, + MP_QSTR_trezor_dot_enums_dot_RecoveryDeviceType, + MP_QSTR_RequestType, + MP_QSTR_trezor_dot_enums_dot_RequestType, + MP_QSTR_SafetyCheckLevel, + MP_QSTR_trezor_dot_enums_dot_SafetyCheckLevel, + MP_QSTR_SdProtectOperationType, + MP_QSTR_trezor_dot_enums_dot_SdProtectOperationType, + MP_QSTR_WordRequestType, + MP_QSTR_trezor_dot_enums_dot_WordRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_errors, + MP_QSTR_trezor_dot_errors, + MP_QSTR_log, + MP_QSTR_trezor_dot_log, + MP_QSTR_loop, + MP_QSTR_trezor_dot_loop, + MP_QSTR_messages, + MP_QSTR_trezor_dot_messages, + MP_QSTR_pin, + MP_QSTR_trezor_dot_pin, + MP_QSTR_protobuf, + MP_QSTR_trezor_dot_protobuf, + MP_QSTR_sdcard, + MP_QSTR_trezor_dot_sdcard, + MP_QSTR_strings, + MP_QSTR_trezor_dot_strings, + MP_QSTR_ui, + MP_QSTR_trezor_dot_ui, + MP_QSTR_layouts, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_common, + MP_QSTR_fido, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_fido, + MP_QSTR_homescreen, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_homescreen, + MP_QSTR_progress, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_progress, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_recovery, + MP_QSTR_reset, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_reset, + MP_QSTR_tr, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tr, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tr_dot_fido, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tr_dot_homescreen, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tr_dot_progress, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tr_dot_recovery, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tr_dot_reset, + MP_QSTR_tt, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tt, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tt_dot_fido, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tt_dot_homescreen, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tt_dot_progress, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tt_dot_recovery, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_tt_dot_reset, + MP_QSTR_style, + MP_QSTR_trezor_dot_ui_dot_style, + MP_QSTR_wire, + MP_QSTR_trezor_dot_wire, + MP_QSTR_codec_v1, + MP_QSTR_trezor_dot_wire_dot_codec_v1, + MP_QSTR_context, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_trezor_dot_wire_dot_errors, + MP_QSTR_workflow, + MP_QSTR_trezor_dot_workflow, + MP_QSTR_apps, + MP_QSTR_base, + MP_QSTR_apps_dot_base, + MP_QSTR_bitcoin, + MP_QSTR_apps_dot_bitcoin, + MP_QSTR_addresses, + MP_QSTR_apps_dot_bitcoin_dot_addresses, + MP_QSTR_authorization, + MP_QSTR_apps_dot_bitcoin_dot_authorization, + MP_QSTR_authorize_coinjoin, + MP_QSTR_apps_dot_bitcoin_dot_authorize_coinjoin, + MP_QSTR_apps_dot_bitcoin_dot_common, + MP_QSTR_get_address, + MP_QSTR_apps_dot_bitcoin_dot_get_address, + MP_QSTR_get_ownership_id, + MP_QSTR_apps_dot_bitcoin_dot_get_ownership_id, + MP_QSTR_get_ownership_proof, + MP_QSTR_apps_dot_bitcoin_dot_get_ownership_proof, + MP_QSTR_get_public_key, + MP_QSTR_apps_dot_bitcoin_dot_get_public_key, + MP_QSTR_keychain, + MP_QSTR_apps_dot_bitcoin_dot_keychain, + MP_QSTR_multisig, + MP_QSTR_apps_dot_bitcoin_dot_multisig, + MP_QSTR_ownership, + MP_QSTR_apps_dot_bitcoin_dot_ownership, + MP_QSTR_readers, + MP_QSTR_apps_dot_bitcoin_dot_readers, + MP_QSTR_apps_dot_bitcoin_dot_scripts, + MP_QSTR_scripts_decred, + MP_QSTR_apps_dot_bitcoin_dot_scripts_decred, + MP_QSTR_sign_message, + MP_QSTR_apps_dot_bitcoin_dot_sign_message, + MP_QSTR_sign_tx, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx, + MP_QSTR_approvers, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_approvers, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_bitcoin, + MP_QSTR_bitcoinlike, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_bitcoinlike, + MP_QSTR_decred, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_decred, + MP_QSTR_helpers, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_helpers, + MP_QSTR_layout, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_layout, + MP_QSTR_matchcheck, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_matchcheck, + MP_QSTR_omni, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_omni, + MP_QSTR_payment_request, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_payment_request, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_progress, + MP_QSTR_sig_hasher, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_sig_hasher, + MP_QSTR_tx_info, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_tx_info, + MP_QSTR_tx_weight, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_tx_weight, + MP_QSTR_verification, + MP_QSTR_apps_dot_bitcoin_dot_verification, + MP_QSTR_verify_message, + MP_QSTR_apps_dot_bitcoin_dot_verify_message, + MP_QSTR_writers, + MP_QSTR_apps_dot_bitcoin_dot_writers, + MP_QSTR_apps_dot_common, + MP_QSTR_address_mac, + MP_QSTR_apps_dot_common_dot_address_mac, + MP_QSTR_address_type, + MP_QSTR_apps_dot_common_dot_address_type, + MP_QSTR_apps_dot_common_dot_authorization, + MP_QSTR_cbor, + MP_QSTR_apps_dot_common_dot_cbor, + MP_QSTR_coininfo, + MP_QSTR_apps_dot_common_dot_coininfo, + MP_QSTR_coins, + MP_QSTR_apps_dot_common_dot_coins, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_passphrase, + MP_QSTR_apps_dot_common_dot_passphrase, + MP_QSTR_paths, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_apps_dot_common_dot_readers, + MP_QSTR_request_pin, + MP_QSTR_apps_dot_common_dot_request_pin, + MP_QSTR_safety_checks, + MP_QSTR_apps_dot_common_dot_safety_checks, + MP_QSTR_apps_dot_common_dot_sdcard, + MP_QSTR_seed, + MP_QSTR_apps_dot_common_dot_seed, + MP_QSTR_signverify, + MP_QSTR_apps_dot_common_dot_signverify, + MP_QSTR_apps_dot_common_dot_writers, + MP_QSTR_apps_dot_debug, + MP_QSTR_load_device, + MP_QSTR_apps_dot_debug_dot_load_device, + MP_QSTR_apps_dot_homescreen, + MP_QSTR_management, + MP_QSTR_apply_flags, + MP_QSTR_apps_dot_management_dot_apply_flags, + MP_QSTR_apply_settings, + MP_QSTR_apps_dot_management_dot_apply_settings, + MP_QSTR_authenticate_device, + MP_QSTR_apps_dot_management_dot_authenticate_device, + MP_QSTR_backup_device, + MP_QSTR_apps_dot_management_dot_backup_device, + MP_QSTR_backup_types, + MP_QSTR_apps_dot_management_dot_backup_types, + MP_QSTR_change_pin, + MP_QSTR_apps_dot_management_dot_change_pin, + MP_QSTR_change_wipe_code, + MP_QSTR_apps_dot_management_dot_change_wipe_code, + MP_QSTR_get_next_u2f_counter, + MP_QSTR_apps_dot_management_dot_get_next_u2f_counter, + MP_QSTR_get_nonce, + MP_QSTR_apps_dot_management_dot_get_nonce, + MP_QSTR_reboot_to_bootloader, + MP_QSTR_apps_dot_management_dot_reboot_to_bootloader, + MP_QSTR_recovery_device, + MP_QSTR_apps_dot_management_dot_recovery_device, + MP_QSTR_apps_dot_management_dot_recovery_device_dot_homescreen, + MP_QSTR_apps_dot_management_dot_recovery_device_dot_layout, + MP_QSTR_recover, + MP_QSTR_apps_dot_management_dot_recovery_device_dot_recover, + MP_QSTR_word_validity, + MP_QSTR_apps_dot_management_dot_recovery_device_dot_word_validity, + MP_QSTR_reset_device, + MP_QSTR_apps_dot_management_dot_reset_device, + MP_QSTR_apps_dot_management_dot_reset_device_dot_layout, + MP_QSTR_sd_protect, + MP_QSTR_apps_dot_management_dot_sd_protect, + MP_QSTR_set_u2f_counter, + MP_QSTR_apps_dot_management_dot_set_u2f_counter, + MP_QSTR_show_tutorial, + MP_QSTR_apps_dot_management_dot_show_tutorial, + MP_QSTR_wipe_device, + MP_QSTR_apps_dot_management_dot_wipe_device, + MP_QSTR_misc, + MP_QSTR_apps_dot_misc, + MP_QSTR_cipher_key_value, + MP_QSTR_apps_dot_misc_dot_cipher_key_value, + MP_QSTR_cosi_commit, + MP_QSTR_apps_dot_misc_dot_cosi_commit, + MP_QSTR_get_ecdh_session_key, + MP_QSTR_apps_dot_misc_dot_get_ecdh_session_key, + MP_QSTR_get_entropy, + MP_QSTR_apps_dot_misc_dot_get_entropy, + MP_QSTR_get_firmware_hash, + MP_QSTR_apps_dot_misc_dot_get_firmware_hash, + MP_QSTR_sign_identity, + MP_QSTR_apps_dot_misc_dot_sign_identity, + MP_QSTR_workflow_handlers, + MP_QSTR_apps_dot_workflow_handlers, + MP_QSTR_BinanceOrderSide, + MP_QSTR_trezor_dot_enums_dot_BinanceOrderSide, + MP_QSTR_BinanceOrderType, + MP_QSTR_trezor_dot_enums_dot_BinanceOrderType, + MP_QSTR_BinanceTimeInForce, + MP_QSTR_trezor_dot_enums_dot_BinanceTimeInForce, + MP_QSTR_CardanoAddressType, + MP_QSTR_trezor_dot_enums_dot_CardanoAddressType, + MP_QSTR_CardanoCVoteRegistrationFormat, + MP_QSTR_trezor_dot_enums_dot_CardanoCVoteRegistrationFormat, + MP_QSTR_CardanoCertificateType, + MP_QSTR_trezor_dot_enums_dot_CardanoCertificateType, + MP_QSTR_CardanoDerivationType, + MP_QSTR_trezor_dot_enums_dot_CardanoDerivationType, + MP_QSTR_CardanoNativeScriptHashDisplayFormat, + MP_QSTR_trezor_dot_enums_dot_CardanoNativeScriptHashDisplayFormat, + MP_QSTR_CardanoNativeScriptType, + MP_QSTR_trezor_dot_enums_dot_CardanoNativeScriptType, + MP_QSTR_CardanoPoolRelayType, + MP_QSTR_trezor_dot_enums_dot_CardanoPoolRelayType, + MP_QSTR_CardanoTxAuxiliaryDataSupplementType, + MP_QSTR_trezor_dot_enums_dot_CardanoTxAuxiliaryDataSupplementType, + MP_QSTR_CardanoTxOutputSerializationFormat, + MP_QSTR_trezor_dot_enums_dot_CardanoTxOutputSerializationFormat, + MP_QSTR_CardanoTxSigningMode, + MP_QSTR_trezor_dot_enums_dot_CardanoTxSigningMode, + MP_QSTR_CardanoTxWitnessType, + MP_QSTR_trezor_dot_enums_dot_CardanoTxWitnessType, + MP_QSTR_EthereumDataType, + MP_QSTR_trezor_dot_enums_dot_EthereumDataType, + MP_QSTR_EthereumDefinitionType, + MP_QSTR_trezor_dot_enums_dot_EthereumDefinitionType, + MP_QSTR_MoneroNetworkType, + MP_QSTR_trezor_dot_enums_dot_MoneroNetworkType, + MP_QSTR_NEMImportanceTransferMode, + MP_QSTR_trezor_dot_enums_dot_NEMImportanceTransferMode, + MP_QSTR_NEMModificationType, + MP_QSTR_trezor_dot_enums_dot_NEMModificationType, + MP_QSTR_NEMMosaicLevy, + MP_QSTR_trezor_dot_enums_dot_NEMMosaicLevy, + MP_QSTR_NEMSupplyChangeType, + MP_QSTR_trezor_dot_enums_dot_NEMSupplyChangeType, + MP_QSTR_StellarAssetType, + MP_QSTR_trezor_dot_enums_dot_StellarAssetType, + MP_QSTR_StellarMemoType, + MP_QSTR_trezor_dot_enums_dot_StellarMemoType, + MP_QSTR_StellarSignerType, + MP_QSTR_trezor_dot_enums_dot_StellarSignerType, + MP_QSTR_TezosBallotType, + MP_QSTR_trezor_dot_enums_dot_TezosBallotType, + MP_QSTR_TezosContractType, + MP_QSTR_trezor_dot_enums_dot_TezosContractType, + MP_QSTR_binance, + MP_QSTR_apps_dot_binance, + MP_QSTR_apps_dot_binance_dot_get_address, + MP_QSTR_apps_dot_binance_dot_get_public_key, + MP_QSTR_apps_dot_binance_dot_helpers, + MP_QSTR_apps_dot_binance_dot_layout, + MP_QSTR_apps_dot_binance_dot_sign_tx, + MP_QSTR_zcash_v4, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_zcash_v4, + MP_QSTR_cardano, + MP_QSTR_apps_dot_cardano, + MP_QSTR_apps_dot_cardano_dot_addresses, + MP_QSTR_auxiliary_data, + MP_QSTR_apps_dot_cardano_dot_auxiliary_data, + MP_QSTR_byron_addresses, + MP_QSTR_apps_dot_cardano_dot_byron_addresses, + MP_QSTR_certificates, + MP_QSTR_apps_dot_cardano_dot_certificates, + MP_QSTR_apps_dot_cardano_dot_get_address, + MP_QSTR_get_native_script_hash, + MP_QSTR_apps_dot_cardano_dot_get_native_script_hash, + MP_QSTR_apps_dot_cardano_dot_get_public_key, + MP_QSTR_apps_dot_cardano_dot_helpers, + MP_QSTR_account_path_check, + MP_QSTR_apps_dot_cardano_dot_helpers_dot_account_path_check, + MP_QSTR_apps_dot_cardano_dot_helpers_dot_bech32, + MP_QSTR_credential, + MP_QSTR_apps_dot_cardano_dot_helpers_dot_credential, + MP_QSTR_hash_builder_collection, + MP_QSTR_apps_dot_cardano_dot_helpers_dot_hash_builder_collection, + MP_QSTR_network_ids, + MP_QSTR_apps_dot_cardano_dot_helpers_dot_network_ids, + MP_QSTR_apps_dot_cardano_dot_helpers_dot_paths, + MP_QSTR_protocol_magics, + MP_QSTR_apps_dot_cardano_dot_helpers_dot_protocol_magics, + MP_QSTR_apps_dot_cardano_dot_helpers_dot_utils, + MP_QSTR_apps_dot_cardano_dot_layout, + MP_QSTR_native_script, + MP_QSTR_apps_dot_cardano_dot_native_script, + MP_QSTR_apps_dot_cardano_dot_seed, + MP_QSTR_apps_dot_cardano_dot_sign_tx, + MP_QSTR_multisig_signer, + MP_QSTR_apps_dot_cardano_dot_sign_tx_dot_multisig_signer, + MP_QSTR_ordinary_signer, + MP_QSTR_apps_dot_cardano_dot_sign_tx_dot_ordinary_signer, + MP_QSTR_plutus_signer, + MP_QSTR_apps_dot_cardano_dot_sign_tx_dot_plutus_signer, + MP_QSTR_pool_owner_signer, + MP_QSTR_apps_dot_cardano_dot_sign_tx_dot_pool_owner_signer, + MP_QSTR_signer, + MP_QSTR_apps_dot_cardano_dot_sign_tx_dot_signer, + MP_QSTR_mnemonic, + MP_QSTR_apps_dot_common_dot_mnemonic, + MP_QSTR_eos, + MP_QSTR_apps_dot_eos, + MP_QSTR_actions, + MP_QSTR_apps_dot_eos_dot_actions, + MP_QSTR_apps_dot_eos_dot_actions_dot_layout, + MP_QSTR_apps_dot_eos_dot_get_public_key, + MP_QSTR_apps_dot_eos_dot_helpers, + MP_QSTR_apps_dot_eos_dot_layout, + MP_QSTR_apps_dot_eos_dot_sign_tx, + MP_QSTR_apps_dot_eos_dot_writers, + MP_QSTR_ethereum, + MP_QSTR_apps_dot_ethereum, + MP_QSTR_definitions, + MP_QSTR_apps_dot_ethereum_dot_definitions, + MP_QSTR_definitions_constants, + MP_QSTR_apps_dot_ethereum_dot_definitions_constants, + MP_QSTR_apps_dot_ethereum_dot_get_address, + MP_QSTR_apps_dot_ethereum_dot_get_public_key, + MP_QSTR_apps_dot_ethereum_dot_helpers, + MP_QSTR_apps_dot_ethereum_dot_keychain, + MP_QSTR_apps_dot_ethereum_dot_layout, + MP_QSTR_networks, + MP_QSTR_apps_dot_ethereum_dot_networks, + MP_QSTR_apps_dot_ethereum_dot_sign_message, + MP_QSTR_apps_dot_ethereum_dot_sign_tx, + MP_QSTR_sign_tx_eip1559, + MP_QSTR_apps_dot_ethereum_dot_sign_tx_eip1559, + MP_QSTR_sign_typed_data, + MP_QSTR_apps_dot_ethereum_dot_sign_typed_data, + MP_QSTR_tokens, + MP_QSTR_apps_dot_ethereum_dot_tokens, + MP_QSTR_apps_dot_ethereum_dot_verify_message, + MP_QSTR_monero, + MP_QSTR_apps_dot_monero, + MP_QSTR_diag, + MP_QSTR_apps_dot_monero_dot_diag, + MP_QSTR_apps_dot_monero_dot_get_address, + MP_QSTR_get_tx_keys, + MP_QSTR_apps_dot_monero_dot_get_tx_keys, + MP_QSTR_get_watch_only, + MP_QSTR_apps_dot_monero_dot_get_watch_only, + MP_QSTR_key_image_sync, + MP_QSTR_apps_dot_monero_dot_key_image_sync, + MP_QSTR_apps_dot_monero_dot_layout, + MP_QSTR_live_refresh, + MP_QSTR_apps_dot_monero_dot_live_refresh, + MP_QSTR_apps_dot_monero_dot_misc, + MP_QSTR_apps_dot_monero_dot_sign_tx, + MP_QSTR_signing, + MP_QSTR_apps_dot_monero_dot_signing, + MP_QSTR_offloading_keys, + MP_QSTR_apps_dot_monero_dot_signing_dot_offloading_keys, + MP_QSTR_state, + MP_QSTR_apps_dot_monero_dot_signing_dot_state, + MP_QSTR_step_01_init_transaction, + MP_QSTR_apps_dot_monero_dot_signing_dot_step_01_init_transaction, + MP_QSTR_step_02_set_input, + MP_QSTR_apps_dot_monero_dot_signing_dot_step_02_set_input, + MP_QSTR_step_04_input_vini, + MP_QSTR_apps_dot_monero_dot_signing_dot_step_04_input_vini, + MP_QSTR_step_05_all_inputs_set, + MP_QSTR_apps_dot_monero_dot_signing_dot_step_05_all_inputs_set, + MP_QSTR_step_06_set_output, + MP_QSTR_apps_dot_monero_dot_signing_dot_step_06_set_output, + MP_QSTR_step_07_all_outputs_set, + MP_QSTR_apps_dot_monero_dot_signing_dot_step_07_all_outputs_set, + MP_QSTR_step_09_sign_input, + MP_QSTR_apps_dot_monero_dot_signing_dot_step_09_sign_input, + MP_QSTR_step_10_sign_final, + MP_QSTR_apps_dot_monero_dot_signing_dot_step_10_sign_final, + MP_QSTR_xmr, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_apps_dot_monero_dot_xmr_dot_addresses, + MP_QSTR_bulletproof, + MP_QSTR_apps_dot_monero_dot_xmr_dot_bulletproof, + MP_QSTR_chacha_poly, + MP_QSTR_apps_dot_monero_dot_xmr_dot_chacha_poly, + MP_QSTR_clsag, + MP_QSTR_apps_dot_monero_dot_xmr_dot_clsag, + MP_QSTR_credentials, + MP_QSTR_apps_dot_monero_dot_xmr_dot_credentials, + MP_QSTR_crypto_helpers, + MP_QSTR_apps_dot_monero_dot_xmr_dot_crypto_helpers, + MP_QSTR_keccak_hasher, + MP_QSTR_apps_dot_monero_dot_xmr_dot_keccak_hasher, + MP_QSTR_key_image, + MP_QSTR_apps_dot_monero_dot_xmr_dot_key_image, + MP_QSTR_mlsag_hasher, + MP_QSTR_apps_dot_monero_dot_xmr_dot_mlsag_hasher, + MP_QSTR_apps_dot_monero_dot_xmr_dot_monero, + MP_QSTR_apps_dot_monero_dot_xmr_dot_networks, + MP_QSTR_range_signatures, + MP_QSTR_apps_dot_monero_dot_xmr_dot_range_signatures, + MP_QSTR_serialize, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize, + MP_QSTR_base_types, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_dot_base_types, + MP_QSTR_int_serialize, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_dot_int_serialize, + MP_QSTR_message_types, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_dot_message_types, + MP_QSTR_readwriter, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_dot_readwriter, + MP_QSTR_serialize_messages, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_messages_dot_base, + MP_QSTR_tx_ct_key, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_messages_dot_tx_ct_key, + MP_QSTR_tx_ecdh, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_messages_dot_tx_ecdh, + MP_QSTR_tx_prefix, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_messages_dot_tx_prefix, + MP_QSTR_tx_rsig_bulletproof, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_messages_dot_tx_rsig_bulletproof, + MP_QSTR_nem, + MP_QSTR_apps_dot_nem, + MP_QSTR_apps_dot_nem_dot_get_address, + MP_QSTR_apps_dot_nem_dot_helpers, + MP_QSTR_apps_dot_nem_dot_layout, + MP_QSTR_mosaic, + MP_QSTR_apps_dot_nem_dot_mosaic, + MP_QSTR_apps_dot_nem_dot_mosaic_dot_helpers, + MP_QSTR_apps_dot_nem_dot_mosaic_dot_layout, + MP_QSTR_nem_mosaics, + MP_QSTR_apps_dot_nem_dot_mosaic_dot_nem_mosaics, + MP_QSTR_apps_dot_nem_dot_mosaic_dot_serialize, + MP_QSTR_apps_dot_nem_dot_multisig, + MP_QSTR_apps_dot_nem_dot_multisig_dot_layout, + MP_QSTR_apps_dot_nem_dot_multisig_dot_serialize, + MP_QSTR_namespace, + MP_QSTR_apps_dot_nem_dot_namespace, + MP_QSTR_apps_dot_nem_dot_namespace_dot_layout, + MP_QSTR_apps_dot_nem_dot_namespace_dot_serialize, + MP_QSTR_apps_dot_nem_dot_sign_tx, + MP_QSTR_transfer, + MP_QSTR_apps_dot_nem_dot_transfer, + MP_QSTR_apps_dot_nem_dot_transfer_dot_layout, + MP_QSTR_apps_dot_nem_dot_transfer_dot_serialize, + MP_QSTR_validators, + MP_QSTR_apps_dot_nem_dot_validators, + MP_QSTR_apps_dot_nem_dot_writers, + MP_QSTR_ripple, + MP_QSTR_apps_dot_ripple, + MP_QSTR_base58_ripple, + MP_QSTR_apps_dot_ripple_dot_base58_ripple, + MP_QSTR_apps_dot_ripple_dot_get_address, + MP_QSTR_apps_dot_ripple_dot_helpers, + MP_QSTR_apps_dot_ripple_dot_layout, + MP_QSTR_apps_dot_ripple_dot_serialize, + MP_QSTR_apps_dot_ripple_dot_sign_tx, + MP_QSTR_stellar, + MP_QSTR_apps_dot_stellar, + MP_QSTR_consts, + MP_QSTR_apps_dot_stellar_dot_consts, + MP_QSTR_apps_dot_stellar_dot_get_address, + MP_QSTR_apps_dot_stellar_dot_helpers, + MP_QSTR_apps_dot_stellar_dot_layout, + MP_QSTR_operations, + MP_QSTR_apps_dot_stellar_dot_operations, + MP_QSTR_apps_dot_stellar_dot_operations_dot_layout, + MP_QSTR_apps_dot_stellar_dot_operations_dot_serialize, + MP_QSTR_apps_dot_stellar_dot_sign_tx, + MP_QSTR_apps_dot_stellar_dot_writers, + MP_QSTR_tezos, + MP_QSTR_apps_dot_tezos, + MP_QSTR_apps_dot_tezos_dot_get_address, + MP_QSTR_apps_dot_tezos_dot_get_public_key, + MP_QSTR_apps_dot_tezos_dot_helpers, + MP_QSTR_apps_dot_tezos_dot_layout, + MP_QSTR_apps_dot_tezos_dot_sign_tx, + MP_QSTR_webauthn, + MP_QSTR_apps_dot_webauthn, + MP_QSTR_add_resident_credential, + MP_QSTR_apps_dot_webauthn_dot_add_resident_credential, + MP_QSTR_apps_dot_webauthn_dot_common, + MP_QSTR_apps_dot_webauthn_dot_credential, + MP_QSTR_apps_dot_webauthn_dot_fido2, + MP_QSTR_knownapps, + MP_QSTR_apps_dot_webauthn_dot_knownapps, + MP_QSTR_list_resident_credentials, + MP_QSTR_apps_dot_webauthn_dot_list_resident_credentials, + MP_QSTR_remove_resident_credential, + MP_QSTR_apps_dot_webauthn_dot_remove_resident_credential, + MP_QSTR_apps_dot_webauthn_dot_resident_credentials, + MP_QSTR_zcash, + MP_QSTR_apps_dot_zcash, + MP_QSTR_f4jumble, + MP_QSTR_apps_dot_zcash_dot_f4jumble, + MP_QSTR_hasher, + MP_QSTR_apps_dot_zcash_dot_hasher, + MP_QSTR_apps_dot_zcash_dot_signer, + MP_QSTR_unified_addresses, + MP_QSTR_apps_dot_zcash_dot_unified_addresses, + MP_QSTR_typing, + MP_QSTR_a, + MP_QSTR_A, + MP_QSTR_b, + MP_QSTR_B, + MP_QSTR_c, + MP_QSTR_C, + MP_QSTR_d, + MP_QSTR_D, + MP_QSTR_e, + MP_QSTR_E, + MP_QSTR_f, + MP_QSTR_F, + MP_QSTR_g, + MP_QSTR_G, + MP_QSTR_h, + MP_QSTR_H, + MP_QSTR_i, + MP_QSTR_I, + MP_QSTR_j, + MP_QSTR_J, + MP_QSTR_k, + MP_QSTR_K, + MP_QSTR_l, + MP_QSTR_L, + MP_QSTR_m, + MP_QSTR_M, + MP_QSTR_n, + MP_QSTR_N, + MP_QSTR_o, + MP_QSTR_O, + MP_QSTR_p, + MP_QSTR_P, + MP_QSTR_q, + MP_QSTR_Q, + MP_QSTR_r, + MP_QSTR_R, + MP_QSTR_s, + MP_QSTR_S, + MP_QSTR_t, + MP_QSTR_T, + MP_QSTR_u, + MP_QSTR_U, + MP_QSTR_v, + MP_QSTR_V, + MP_QSTR_w, + MP_QSTR_W, + MP_QSTR_x, + MP_QSTR_X, + MP_QSTR_y, + MP_QSTR_Y, + MP_QSTR_z, + MP_QSTR_Z, +}; + +// constants +static const mp_obj_str_t const_obj_all_modules_0 = {{&mp_type_str}, 17403, 32, (const byte*)"\x54\x72\x69\x65\x64\x20\x74\x6f\x20\x69\x6d\x70\x6f\x72\x74\x20\x65\x78\x63\x6c\x75\x64\x65\x64\x20\x6d\x6f\x64\x75\x6c\x65\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_all_modules[1] = { + MP_ROM_PTR(&const_obj_all_modules_0), +}; + +static const mp_frozen_module_t frozen_module_all_modules = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_all_modules, + .obj_table = (mp_obj_t *)&const_obj_table_data_all_modules, + }, + .rc = &raw_code_all_modules__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module boot +// - original source file: build/firmware/src/boot.mpy +// - frozen file name: boot.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file boot.py, scope boot__lt_module_gt_ +static const byte fun_data_boot__lt_module_gt_[180] = { + 0x30,0x26, // prelude + 0x01, // names: + 0x40,0x66,0x40,0x47,0x26,0x26,0x1f,0x2b,0x78,0x40,0x4c,0x72,0x84,0x20,0x45,0x49,0x60,0x2b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'trezorui2' + 0x16,0x02, // STORE_NAME 'trezorui2' + 0x11,0x02, // LOAD_NAME 'trezorui2' + 0x14,0x03, // LOAD_METHOD 'draw_welcome_screen' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x04, // IMPORT_NAME 'storage' + 0x16,0x04, // STORE_NAME 'storage' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x05, // IMPORT_NAME 'storage.device' + 0x16,0x04, // STORE_NAME 'storage' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'config' + 0x10,0x07, // LOAD_CONST_STRING 'log' + 0x10,0x08, // LOAD_CONST_STRING 'loop' + 0x10,0x09, // LOAD_CONST_STRING 'ui' + 0x10,0x0a, // LOAD_CONST_STRING 'utils' + 0x10,0x0b, // LOAD_CONST_STRING 'wire' + 0x2a,0x06, // BUILD_TUPLE 6 + 0x1b,0x0c, // IMPORT_NAME 'trezor' + 0x1c,0x06, // IMPORT_FROM 'config' + 0x16,0x06, // STORE_NAME 'config' + 0x1c,0x07, // IMPORT_FROM 'log' + 0x16,0x07, // STORE_NAME 'log' + 0x1c,0x08, // IMPORT_FROM 'loop' + 0x16,0x08, // STORE_NAME 'loop' + 0x1c,0x09, // IMPORT_FROM 'ui' + 0x16,0x09, // STORE_NAME 'ui' + 0x1c,0x0a, // IMPORT_FROM 'utils' + 0x16,0x0a, // STORE_NAME 'utils' + 0x1c,0x0b, // IMPORT_FROM 'wire' + 0x16,0x0b, // STORE_NAME 'wire' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'allow_all_loader_messages' + 0x10,0x0e, // LOAD_CONST_STRING 'ignore_nonpin_loader_messages' + 0x10,0x0f, // LOAD_CONST_STRING 'show_pin_timeout' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x10, // IMPORT_NAME 'trezor.pin' + 0x1c,0x0d, // IMPORT_FROM 'allow_all_loader_messages' + 0x16,0x0d, // STORE_NAME 'allow_all_loader_messages' + 0x1c,0x0e, // IMPORT_FROM 'ignore_nonpin_loader_messages' + 0x16,0x0e, // STORE_NAME 'ignore_nonpin_loader_messages' + 0x1c,0x0f, // IMPORT_FROM 'show_pin_timeout' + 0x16,0x0f, // STORE_NAME 'show_pin_timeout' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'Lockscreen' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x12, // IMPORT_NAME 'trezor.ui.layouts.homescreen' + 0x1c,0x11, // IMPORT_FROM 'Lockscreen' + 0x16,0x11, // STORE_NAME 'Lockscreen' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'can_lock_device' + 0x10,0x14, // LOAD_CONST_STRING 'verify_user_pin' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x15, // IMPORT_NAME 'apps.common.request_pin' + 0x1c,0x13, // IMPORT_FROM 'can_lock_device' + 0x16,0x13, // STORE_NAME 'can_lock_device' + 0x1c,0x14, // IMPORT_FROM 'verify_user_pin' + 0x16,0x14, // STORE_NAME 'verify_user_pin' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x19, // STORE_NAME 'bootscreen' + 0x11,0x0e, // LOAD_NAME 'ignore_nonpin_loader_messages' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x11,0x06, // LOAD_NAME 'config' + 0x14,0x16, // LOAD_METHOD 'init' + 0x11,0x0f, // LOAD_NAME 'show_pin_timeout' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x11,0x08, // LOAD_NAME 'loop' + 0x14,0x17, // LOAD_METHOD 'schedule' + 0x11,0x19, // LOAD_NAME 'bootscreen' + 0x34,0x00, // CALL_FUNCTION 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x11,0x08, // LOAD_NAME 'loop' + 0x14,0x18, // LOAD_METHOD 'run' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of boot__lt_module_gt_ +// frozen bytecode for file boot.py, scope boot_bootscreen +static const byte fun_data_boot_bootscreen[141] = { + 0xb8,0x42,0x26, // prelude + 0x19, // names: bootscreen + 0x80,0x17,0x80,0x08,0x33,0x31,0x20,0x22,0x26,0x25,0x28,0x27,0x25,0x25,0x68,0x20,0x6b,0x40, // code info + 0x12,0x11, // LOAD_GLOBAL 'Lockscreen' + 0x10,0x1a, // LOAD_CONST_STRING 'label' + 0x12,0x04, // LOAD_GLOBAL 'storage' + 0x13,0x1b, // LOAD_ATTR 'device' + 0x14,0x1c, // LOAD_METHOD 'get_label' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x19, // LOAD_CONST_STRING 'bootscreen' + 0x52, // LOAD_CONST_TRUE + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0xc0, // STORE_FAST 0 + 0x12,0x09, // LOAD_GLOBAL 'ui' + 0x13,0x1d, // LOAD_ATTR 'display' + 0x14,0x1e, // LOAD_METHOD 'orientation' + 0x12,0x04, // LOAD_GLOBAL 'storage' + 0x13,0x1b, // LOAD_ATTR 'device' + 0x14,0x1f, // LOAD_METHOD 'get_rotation' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x48,0x23, // SETUP_EXCEPT 35 + 0x12,0x13, // LOAD_GLOBAL 'can_lock_device' + 0x34,0x00, // CALL_FUNCTION 0 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb0, // LOAD_FAST 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x14, // LOAD_GLOBAL 'verify_user_pin' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'storage' + 0x14,0x20, // LOAD_METHOD 'init_unlocked' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x0d, // LOAD_GLOBAL 'allow_all_loader_messages' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x4a,0x29, // POP_EXCEPT_JUMP 41 + 0x57, // DUP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'wire' + 0x13,0x21, // LOAD_ATTR 'PinCancelled' + 0xdf, // BINARY_OP 8 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x59, // POP_TOP + 0x4a,0x1e, // POP_EXCEPT_JUMP 30 + 0x57, // DUP_TOP + 0x12,0x25, // LOAD_GLOBAL 'BaseException' + 0xdf, // BINARY_OP 8 + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0xc1, // STORE_FAST 1 + 0x49,0x0d, // SETUP_FINALLY 13 + 0x12,0x0a, // LOAD_GLOBAL 'utils' + 0x14,0x22, // LOAD_METHOD 'halt' + 0xb1, // LOAD_FAST 1 + 0x13,0x23, // LOAD_ATTR '__class__' + 0x13,0x24, // LOAD_ATTR '__name__' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xc1, // STORE_FAST 1 + 0x28,0x01, // DELETE_FAST 1 + 0x5d, // END_FINALLY + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x42,0xaf,0x7f, // JUMP -81 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_boot_bootscreen = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_boot_bootscreen, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 141, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 2, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_boot_bootscreen + 4, + .line_info_top = fun_data_boot_bootscreen + 22, + .opcodes = fun_data_boot_bootscreen + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_boot__lt_module_gt_[] = { + &raw_code_boot_bootscreen, +}; + +static const mp_raw_code_t raw_code_boot__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_boot__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 180, + #endif + .children = (void *)&children_boot__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_boot__lt_module_gt_ + 3, + .line_info_top = fun_data_boot__lt_module_gt_ + 21, + .opcodes = fun_data_boot__lt_module_gt_ + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_boot[38] = { + MP_QSTR_boot_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_trezorui2, + MP_QSTR_draw_welcome_screen, + MP_QSTR_storage, + MP_QSTR_storage_dot_device, + MP_QSTR_config, + MP_QSTR_log, + MP_QSTR_loop, + MP_QSTR_ui, + MP_QSTR_utils, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_allow_all_loader_messages, + MP_QSTR_ignore_nonpin_loader_messages, + MP_QSTR_show_pin_timeout, + MP_QSTR_trezor_dot_pin, + MP_QSTR_Lockscreen, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_homescreen, + MP_QSTR_can_lock_device, + MP_QSTR_verify_user_pin, + MP_QSTR_apps_dot_common_dot_request_pin, + MP_QSTR_init, + MP_QSTR_schedule, + MP_QSTR_run, + MP_QSTR_bootscreen, + MP_QSTR_label, + MP_QSTR_device, + MP_QSTR_get_label, + MP_QSTR_display, + MP_QSTR_orientation, + MP_QSTR_get_rotation, + MP_QSTR_init_unlocked, + MP_QSTR_PinCancelled, + MP_QSTR_halt, + MP_QSTR___class__, + MP_QSTR___name__, + MP_QSTR_BaseException, +}; + +static const mp_frozen_module_t frozen_module_boot = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_boot, + .obj_table = NULL, + }, + .rc = &raw_code_boot__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module main +// - original source file: build/firmware/src/main.mpy +// - frozen file name: main.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file main.py, scope main__lt_module_gt_ +static const byte fun_data_main__lt_module_gt_[156] = { + 0x24,0x32, // prelude + 0x01, // names: + 0x80,0x09,0x46,0x4c,0x6a,0x20,0x46,0x4a,0x40,0x46,0x80,0x07,0x66,0x20,0x66,0x68,0x25,0x26,0x65,0x46,0x71,0x20,0x25,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'trezor' + 0x16,0x02, // STORE_NAME 'trezor' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x02, // IMPORT_NAME 'trezor' + 0x1c,0x03, // IMPORT_FROM 'utils' + 0x16,0x03, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x11,0x03, // LOAD_NAME 'utils' + 0x14,0x04, // LOAD_METHOD 'presize_module' + 0x10,0x02, // LOAD_CONST_STRING 'trezor' + 0x9e, // LOAD_CONST_SMALL_INT 30 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x05, // IMPORT_NAME 'storage' + 0x16,0x05, // STORE_NAME 'storage' + 0x11,0x03, // LOAD_NAME 'utils' + 0x14,0x04, // LOAD_METHOD 'presize_module' + 0x10,0x05, // LOAD_CONST_STRING 'storage' + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x06, // IMPORT_NAME 'storage.fido2' + 0x16,0x05, // STORE_NAME 'storage' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x07, // IMPORT_NAME 'trezor.pin' + 0x16,0x02, // STORE_NAME 'trezor' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x08, // IMPORT_NAME 'usb' + 0x16,0x08, // STORE_NAME 'usb' + 0x11,0x03, // LOAD_NAME 'utils' + 0x14,0x09, // LOAD_METHOD 'unimport' + 0x36,0x00, // CALL_METHOD 0 + 0x16,0x11, // STORE_NAME 'unimport_manager' + 0x11,0x11, // LOAD_NAME 'unimport_manager' + 0x47,0x0a, // SETUP_WITH 10 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x0a, // IMPORT_NAME 'boot' + 0x16,0x0a, // STORE_NAME 'boot' + 0x19,0x0a, // DELETE_NAME 'boot' + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x0b, // IMPORT_NAME 'storage.device' + 0x16,0x05, // STORE_NAME 'storage' + 0x11,0x08, // LOAD_NAME 'usb' + 0x13,0x0c, // LOAD_ATTR 'bus' + 0x14,0x0d, // LOAD_METHOD 'open' + 0x11,0x05, // LOAD_NAME 'storage' + 0x13,0x0e, // LOAD_ATTR 'device' + 0x14,0x0f, // LOAD_METHOD 'get_device_id' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x11,0x11, // LOAD_NAME 'unimport_manager' + 0x47,0x0a, // SETUP_WITH 10 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x10, // IMPORT_NAME 'session' + 0x16,0x10, // STORE_NAME 'session' + 0x19,0x10, // DELETE_NAME 'session' + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x42,0x2e, // JUMP -18 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_main__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_main__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 156, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_main__lt_module_gt_ + 3, + .line_info_top = fun_data_main__lt_module_gt_ + 27, + .opcodes = fun_data_main__lt_module_gt_ + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_main[18] = { + MP_QSTR_main_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_trezor, + MP_QSTR_utils, + MP_QSTR_presize_module, + MP_QSTR_storage, + MP_QSTR_storage_dot_fido2, + MP_QSTR_trezor_dot_pin, + MP_QSTR_usb, + MP_QSTR_unimport, + MP_QSTR_boot, + MP_QSTR_storage_dot_device, + MP_QSTR_bus, + MP_QSTR_open, + MP_QSTR_device, + MP_QSTR_get_device_id, + MP_QSTR_session, + MP_QSTR_unimport_manager, +}; + +static const mp_frozen_module_t frozen_module_main = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_main, + .obj_table = NULL, + }, + .rc = &raw_code_main__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module session +// - original source file: build/firmware/src/session.mpy +// - frozen file name: session.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file session.py, scope session__lt_module_gt_ +static const byte fun_data_session__lt_module_gt_[133] = { + 0x28,0x22, // prelude + 0x01, // names: + 0x20,0x1f,0x45,0x26,0x46,0x49,0x26,0x46,0x49,0x60,0x60,0x29,0x67,0x2b,0x60,0x47, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'log' + 0x10,0x03, // LOAD_CONST_STRING 'loop' + 0x10,0x04, // LOAD_CONST_STRING 'utils' + 0x10,0x05, // LOAD_CONST_STRING 'wire' + 0x10,0x06, // LOAD_CONST_STRING 'workflow' + 0x2a,0x05, // BUILD_TUPLE 5 + 0x1b,0x07, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'log' + 0x16,0x02, // STORE_NAME 'log' + 0x1c,0x03, // IMPORT_FROM 'loop' + 0x16,0x03, // STORE_NAME 'loop' + 0x1c,0x04, // IMPORT_FROM 'utils' + 0x16,0x04, // STORE_NAME 'utils' + 0x1c,0x05, // IMPORT_FROM 'wire' + 0x16,0x05, // STORE_NAME 'wire' + 0x1c,0x06, // IMPORT_FROM 'workflow' + 0x16,0x06, // STORE_NAME 'workflow' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x08, // IMPORT_NAME 'apps.base' + 0x16,0x14, // STORE_NAME 'apps' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x09, // IMPORT_NAME 'usb' + 0x16,0x09, // STORE_NAME 'usb' + 0x11,0x14, // LOAD_NAME 'apps' + 0x13,0x0a, // LOAD_ATTR 'base' + 0x14,0x0b, // LOAD_METHOD 'boot' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x11,0x09, // LOAD_NAME 'usb' + 0x13,0x0c, // LOAD_ATTR 'ENABLE_IFACE_WEBAUTHN' + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x0d, // IMPORT_NAME 'apps.webauthn' + 0x16,0x14, // STORE_NAME 'apps' + 0x11,0x14, // LOAD_NAME 'apps' + 0x13,0x0e, // LOAD_ATTR 'webauthn' + 0x14,0x0b, // LOAD_METHOD 'boot' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x11,0x14, // LOAD_NAME 'apps' + 0x13,0x0a, // LOAD_ATTR 'base' + 0x14,0x0f, // LOAD_METHOD 'set_homescreen' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x11,0x06, // LOAD_NAME 'workflow' + 0x14,0x10, // LOAD_METHOD 'start_default' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x11,0x05, // LOAD_NAME 'wire' + 0x14,0x11, // LOAD_METHOD 'setup' + 0x11,0x09, // LOAD_NAME 'usb' + 0x13,0x12, // LOAD_ATTR 'iface_wire' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x11,0x03, // LOAD_NAME 'loop' + 0x14,0x13, // LOAD_METHOD 'run' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_session__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_session__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 133, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_session__lt_module_gt_ + 3, + .line_info_top = fun_data_session__lt_module_gt_ + 19, + .opcodes = fun_data_session__lt_module_gt_ + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_session[21] = { + MP_QSTR_session_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_log, + MP_QSTR_loop, + MP_QSTR_utils, + MP_QSTR_wire, + MP_QSTR_workflow, + MP_QSTR_trezor, + MP_QSTR_apps_dot_base, + MP_QSTR_usb, + MP_QSTR_base, + MP_QSTR_boot, + MP_QSTR_ENABLE_IFACE_WEBAUTHN, + MP_QSTR_apps_dot_webauthn, + MP_QSTR_webauthn, + MP_QSTR_set_homescreen, + MP_QSTR_start_default, + MP_QSTR_setup, + MP_QSTR_iface_wire, + MP_QSTR_run, + MP_QSTR_apps, +}; + +static const mp_frozen_module_t frozen_module_session = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_session, + .obj_table = NULL, + }, + .rc = &raw_code_session__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module typing +// - original source file: build/firmware/src/typing.mpy +// - frozen file name: typing.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file typing.py, scope typing__lt_module_gt_ +static const byte fun_data_typing__lt_module_gt_[31] = { + 0x10,0x0a, // prelude + 0x01, // names: + 0x63,0x89,0x0d,0x66, // code info + 0x50, // LOAD_CONST_FALSE + 0x16,0x06, // STORE_NAME 'TYPE_CHECKING' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x02, // LOAD_CONST_STRING '_GenericTypingObject' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x02, // STORE_NAME '_GenericTypingObject' + 0x11,0x02, // LOAD_NAME '_GenericTypingObject' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x07, // STORE_NAME '_TYPING_OBJECT' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x03, // STORE_NAME '__getattr__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of typing__lt_module_gt_ +// frozen bytecode for file typing.py, scope typing__GenericTypingObject +static const byte fun_data_typing__GenericTypingObject[30] = { + 0x00,0x0c, // prelude + 0x02, // names: _GenericTypingObject + 0x68,0x20,0x64,0x64,0x20, // code info + 0x11,0x08, // LOAD_NAME '__name__' + 0x16,0x09, // STORE_NAME '__module__' + 0x10,0x02, // LOAD_CONST_STRING '_GenericTypingObject' + 0x16,0x0a, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x04, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x03, // STORE_NAME '__getattr__' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x05, // STORE_NAME '__getitem__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of typing__GenericTypingObject +// frozen bytecode for file typing.py, scope typing__GenericTypingObject___init__ +static const byte fun_data_typing__GenericTypingObject___init__[11] = { + 0x99,0x80,0xc0,0x40,0x08, // prelude + 0x04,0x0c, // names: __init__, self + 0x60,0x40, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_typing__GenericTypingObject___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x06, + .n_pos_args = 1, + .fun_data = fun_data_typing__GenericTypingObject___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 11, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 6, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_typing__GenericTypingObject___init__ + 7, + .line_info_top = fun_data_typing__GenericTypingObject___init__ + 9, + .opcodes = fun_data_typing__GenericTypingObject___init__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of typing__GenericTypingObject +// frozen bytecode for file typing.py, scope typing__GenericTypingObject___getattr__ +static const byte fun_data_typing__GenericTypingObject___getattr__[10] = { + 0x12,0x0a, // prelude + 0x03,0x0c,0x0b, // names: __getattr__, self, key + 0x80,0x09, // code info + 0x12,0x0d, // LOAD_GLOBAL 'object' + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_typing__GenericTypingObject___getattr__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_typing__GenericTypingObject___getattr__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 10, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 3, + .line_info = fun_data_typing__GenericTypingObject___getattr__ + 5, + .line_info_top = fun_data_typing__GenericTypingObject___getattr__ + 7, + .opcodes = fun_data_typing__GenericTypingObject___getattr__ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of typing__GenericTypingObject +// frozen bytecode for file typing.py, scope typing__GenericTypingObject___getitem__ +static const byte fun_data_typing__GenericTypingObject___getitem__[9] = { + 0x12,0x0a, // prelude + 0x05,0x0c,0x0b, // names: __getitem__, self, key + 0x80,0x0d, // code info + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_typing__GenericTypingObject___getitem__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_typing__GenericTypingObject___getitem__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 9, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_typing__GenericTypingObject___getitem__ + 5, + .line_info_top = fun_data_typing__GenericTypingObject___getitem__ + 7, + .opcodes = fun_data_typing__GenericTypingObject___getitem__ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_typing__GenericTypingObject[] = { + &raw_code_typing__GenericTypingObject___init__, + &raw_code_typing__GenericTypingObject___getattr__, + &raw_code_typing__GenericTypingObject___getitem__, +}; + +static const mp_raw_code_t raw_code_typing__GenericTypingObject = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_typing__GenericTypingObject, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = (void *)&children_typing__GenericTypingObject, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_typing__GenericTypingObject + 3, + .line_info_top = fun_data_typing__GenericTypingObject + 8, + .opcodes = fun_data_typing__GenericTypingObject + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of typing__lt_module_gt_ +// frozen bytecode for file typing.py, scope typing___getattr__ +static const byte fun_data_typing___getattr__[9] = { + 0x09,0x08, // prelude + 0x03,0x0b, // names: __getattr__, key + 0x80,0x14, // code info + 0x12,0x07, // LOAD_GLOBAL '_TYPING_OBJECT' + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_typing___getattr__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_typing___getattr__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 9, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 3, + .line_info = fun_data_typing___getattr__ + 4, + .line_info_top = fun_data_typing___getattr__ + 6, + .opcodes = fun_data_typing___getattr__ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_typing__lt_module_gt_[] = { + &raw_code_typing__GenericTypingObject, + &raw_code_typing___getattr__, +}; + +static const mp_raw_code_t raw_code_typing__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_typing__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = (void *)&children_typing__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_typing__lt_module_gt_ + 3, + .line_info_top = fun_data_typing__lt_module_gt_ + 7, + .opcodes = fun_data_typing__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_typing[14] = { + MP_QSTR_typing_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR__GenericTypingObject, + MP_QSTR___getattr__, + MP_QSTR___init__, + MP_QSTR___getitem__, + MP_QSTR_TYPE_CHECKING, + MP_QSTR__TYPING_OBJECT, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_key, + MP_QSTR_self, + MP_QSTR_object, +}; + +static const mp_frozen_module_t frozen_module_typing = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_typing, + .obj_table = NULL, + }, + .rc = &raw_code_typing__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module usb +// - original source file: build/firmware/src/usb.mpy +// - frozen file name: usb.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file usb.py, scope usb__lt_module_gt_ +static const byte fun_data_usb__lt_module_gt_[340] = { + 0xe8,0x20,0x4a, // prelude + 0x01, // names: + 0x4c,0x52,0x76,0x20,0x48,0x6a,0x20,0x63,0x60,0x26,0x46,0x52,0x4b,0x23,0x23,0x63,0x28,0x4a,0x28,0x26,0x49,0x89,0x0d,0x80,0x0b,0x45,0x28,0x4a,0x28,0x26,0x46,0x1f,0x1f,0x8b,0x14,0x49, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'io' + 0x10,0x05, // LOAD_CONST_STRING 'utils' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x04, // IMPORT_FROM 'io' + 0x16,0x04, // STORE_NAME 'io' + 0x1c,0x05, // IMPORT_FROM 'utils' + 0x16,0x05, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x11,0x04, // LOAD_NAME 'io' + 0x14,0x07, // LOAD_METHOD 'USB' + 0x10,0x08, // LOAD_CONST_STRING 'vendor_id' + 0x22,0xa4,0x09, // LOAD_CONST_SMALL_INT 4617 + 0x10,0x09, // LOAD_CONST_STRING 'product_id' + 0x22,0x81,0xa7,0x41, // LOAD_CONST_SMALL_INT 21441 + 0x10,0x0a, // LOAD_CONST_STRING 'release_num' + 0x22,0x84,0x00, // LOAD_CONST_SMALL_INT 512 + 0x10,0x0b, // LOAD_CONST_STRING 'manufacturer' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x10,0x0c, // LOAD_CONST_STRING 'product' + 0x10,0x0d, // LOAD_CONST_STRING 'TREZOR' + 0x10,0x0e, // LOAD_CONST_STRING 'interface' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x10,0x0f, // LOAD_CONST_STRING 'usb21_landing' + 0x50, // LOAD_CONST_FALSE + 0x36,0x8e,0x00, // CALL_METHOD 1792 + 0x16,0x1c, // STORE_NAME 'bus' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x1d, // STORE_NAME 'UDP_PORT' + 0x11,0x05, // LOAD_NAME 'utils' + 0x13,0x10, // LOAD_ATTR 'EMULATOR' + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x11, // IMPORT_NAME 'uos' + 0x16,0x11, // STORE_NAME 'uos' + 0x11,0x1e, // LOAD_NAME 'int' + 0x11,0x11, // LOAD_NAME 'uos' + 0x14,0x12, // LOAD_METHOD 'getenv' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x36,0x01, // CALL_METHOD 1 + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x13, // LOAD_CONST_STRING '21324' + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x1d, // STORE_NAME 'UDP_PORT' + 0x11,0x1f, // LOAD_NAME 'iter' + 0x11,0x20, // LOAD_NAME 'range' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x21, // STORE_NAME '_iface_iter' + 0x50, // LOAD_CONST_FALSE + 0x16,0x22, // STORE_NAME 'ENABLE_IFACE_DEBUG' + 0x52, // LOAD_CONST_TRUE + 0x16,0x23, // STORE_NAME 'ENABLE_IFACE_WEBAUTHN' + 0x50, // LOAD_CONST_FALSE + 0x16,0x24, // STORE_NAME 'ENABLE_IFACE_VCP' + 0x11,0x25, // LOAD_NAME 'next' + 0x11,0x21, // LOAD_NAME '_iface_iter' + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x26, // STORE_NAME 'id_wire' + 0x11,0x04, // LOAD_NAME 'io' + 0x14,0x14, // LOAD_METHOD 'WebUSB' + 0x10,0x15, // LOAD_CONST_STRING 'iface_num' + 0x11,0x26, // LOAD_NAME 'id_wire' + 0x10,0x16, // LOAD_CONST_STRING 'ep_in' + 0x22,0x81,0x01, // LOAD_CONST_SMALL_INT 129 + 0x11,0x26, // LOAD_NAME 'id_wire' + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x17, // LOAD_CONST_STRING 'ep_out' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x11,0x26, // LOAD_NAME 'id_wire' + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x18, // LOAD_CONST_STRING 'emu_port' + 0x11,0x1d, // LOAD_NAME 'UDP_PORT' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x88,0x00, // CALL_METHOD 1024 + 0x16,0x27, // STORE_NAME 'iface_wire' + 0x11,0x1c, // LOAD_NAME 'bus' + 0x14,0x19, // LOAD_METHOD 'add' + 0x11,0x27, // LOAD_NAME 'iface_wire' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x11,0x23, // LOAD_NAME 'ENABLE_IFACE_WEBAUTHN' + 0x44,0xf8,0x80, // POP_JUMP_IF_FALSE 120 + 0x11,0x25, // LOAD_NAME 'next' + 0x11,0x21, // LOAD_NAME '_iface_iter' + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x28, // STORE_NAME 'id_webauthn' + 0x11,0x04, // LOAD_NAME 'io' + 0x14,0x1a, // LOAD_METHOD 'HID' + 0x10,0x15, // LOAD_CONST_STRING 'iface_num' + 0x11,0x28, // LOAD_NAME 'id_webauthn' + 0x10,0x16, // LOAD_CONST_STRING 'ep_in' + 0x22,0x81,0x01, // LOAD_CONST_SMALL_INT 129 + 0x11,0x28, // LOAD_NAME 'id_webauthn' + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x17, // LOAD_CONST_STRING 'ep_out' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x11,0x28, // LOAD_NAME 'id_webauthn' + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x18, // LOAD_CONST_STRING 'emu_port' + 0x11,0x1d, // LOAD_NAME 'UDP_PORT' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x1b, // LOAD_CONST_STRING 'report_desc' + 0x11,0x29, // LOAD_NAME 'bytes' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x22,0x81,0x50, // LOAD_CONST_SMALL_INT 208 + 0x22,0x81,0x71, // LOAD_CONST_SMALL_INT 241 + 0x89, // LOAD_CONST_SMALL_INT 9 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x22,0x81,0x21, // LOAD_CONST_SMALL_INT 161 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x89, // LOAD_CONST_SMALL_INT 9 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x95, // LOAD_CONST_SMALL_INT 21 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xa6, // LOAD_CONST_SMALL_INT 38 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x22,0x80,0x75, // LOAD_CONST_SMALL_INT 117 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x81,0x15, // LOAD_CONST_SMALL_INT 149 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x22,0x81,0x01, // LOAD_CONST_SMALL_INT 129 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x89, // LOAD_CONST_SMALL_INT 9 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x95, // LOAD_CONST_SMALL_INT 21 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xa6, // LOAD_CONST_SMALL_INT 38 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x22,0x80,0x75, // LOAD_CONST_SMALL_INT 117 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x81,0x15, // LOAD_CONST_SMALL_INT 149 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x22,0x81,0x11, // LOAD_CONST_SMALL_INT 145 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x22,0x81,0x40, // LOAD_CONST_SMALL_INT 192 + 0x2b,0x22, // BUILD_LIST 34 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x8a,0x00, // CALL_METHOD 1280 + 0x16,0x2a, // STORE_NAME 'iface_webauthn' + 0x11,0x1c, // LOAD_NAME 'bus' + 0x14,0x19, // LOAD_METHOD 'add' + 0x11,0x2a, // LOAD_NAME 'iface_webauthn' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_usb__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_usb__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 340, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 46, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_usb__lt_module_gt_ + 4, + .line_info_top = fun_data_usb__lt_module_gt_ + 40, + .opcodes = fun_data_usb__lt_module_gt_ + 40, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_usb[43] = { + MP_QSTR_usb_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_io, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_USB, + MP_QSTR_vendor_id, + MP_QSTR_product_id, + MP_QSTR_release_num, + MP_QSTR_manufacturer, + MP_QSTR_product, + MP_QSTR_TREZOR, + MP_QSTR_interface, + MP_QSTR_usb21_landing, + MP_QSTR_EMULATOR, + MP_QSTR_uos, + MP_QSTR_getenv, + MP_QSTR_21324, + MP_QSTR_WebUSB, + MP_QSTR_iface_num, + MP_QSTR_ep_in, + MP_QSTR_ep_out, + MP_QSTR_emu_port, + MP_QSTR_add, + MP_QSTR_HID, + MP_QSTR_report_desc, + MP_QSTR_bus, + MP_QSTR_UDP_PORT, + MP_QSTR_int, + MP_QSTR_iter, + MP_QSTR_range, + MP_QSTR__iface_iter, + MP_QSTR_ENABLE_IFACE_DEBUG, + MP_QSTR_ENABLE_IFACE_WEBAUTHN, + MP_QSTR_ENABLE_IFACE_VCP, + MP_QSTR_next, + MP_QSTR_id_wire, + MP_QSTR_iface_wire, + MP_QSTR_id_webauthn, + MP_QSTR_bytes, + MP_QSTR_iface_webauthn, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_usb[3] = { + MP_ROM_QSTR(MP_QSTR_SatoshiLabs), + MP_ROM_QSTR(MP_QSTR_TREZOR_space_Interface), + MP_ROM_QSTR(MP_QSTR_TREZOR_UDP_PORT), +}; + +static const mp_frozen_module_t frozen_module_usb = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_usb, + .obj_table = (mp_obj_t *)&const_obj_table_data_usb, + }, + .rc = &raw_code_usb__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor___init__ +// - original source file: build/firmware/src/trezor/__init__.mpy +// - frozen file name: trezor/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/__init__.py, scope trezor___init____lt_module_gt_ +static const byte fun_data_trezor___init____lt_module_gt_[18] = { + 0x08,0x04, // prelude + 0x01, // names: + 0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'trezorconfig' + 0x16,0x04, // STORE_NAME 'config' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'trezorio' + 0x16,0x05, // STORE_NAME 'io' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor___init____lt_module_gt_ + 3, + .line_info_top = fun_data_trezor___init____lt_module_gt_ + 4, + .opcodes = fun_data_trezor___init____lt_module_gt_ + 4, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor___init__[6] = { + MP_QSTR_trezor_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_trezorconfig, + MP_QSTR_trezorio, + MP_QSTR_config, + MP_QSTR_io, +}; + +static const mp_frozen_module_t frozen_module_trezor___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor___init__, + .obj_table = NULL, + }, + .rc = &raw_code_trezor___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_errors +// - original source file: build/firmware/src/trezor/errors.mpy +// - frozen file name: trezor/errors.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/errors.py, scope trezor_errors__lt_module_gt_ +static const byte fun_data_trezor_errors__lt_module_gt_[18] = { + 0x18,0x06, // prelude + 0x01, // names: + 0x60,0x40, // code info + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x02, // LOAD_CONST_STRING 'MnemonicError' + 0x11,0x03, // LOAD_NAME 'RuntimeError' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x02, // STORE_NAME 'MnemonicError' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_errors__lt_module_gt_ +// frozen bytecode for file trezor/errors.py, scope trezor_errors_MnemonicError +static const byte fun_data_trezor_errors_MnemonicError[15] = { + 0x00,0x06, // prelude + 0x02, // names: MnemonicError + 0x68,0x60, // code info + 0x11,0x04, // LOAD_NAME '__name__' + 0x16,0x05, // STORE_NAME '__module__' + 0x10,0x02, // LOAD_CONST_STRING 'MnemonicError' + 0x16,0x06, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_errors_MnemonicError = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_errors_MnemonicError, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_trezor_errors_MnemonicError + 3, + .line_info_top = fun_data_trezor_errors_MnemonicError + 5, + .opcodes = fun_data_trezor_errors_MnemonicError + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_errors__lt_module_gt_[] = { + &raw_code_trezor_errors_MnemonicError, +}; + +static const mp_raw_code_t raw_code_trezor_errors__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_errors__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = (void *)&children_trezor_errors__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_errors__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_errors__lt_module_gt_ + 5, + .opcodes = fun_data_trezor_errors__lt_module_gt_ + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_errors[7] = { + MP_QSTR_trezor_slash_errors_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_MnemonicError, + MP_QSTR_RuntimeError, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, +}; + +static const mp_frozen_module_t frozen_module_trezor_errors = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_errors, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_errors__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_log +// - original source file: build/firmware/src/trezor/log.mpy +// - frozen file name: trezor/log.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/log.py, scope trezor_log__lt_module_gt_ +static const byte fun_data_trezor_log__lt_module_gt_[106] = { + 0x10,0x2e, // prelude + 0x01, // names: + 0x26,0x26,0x8c,0x09,0x22,0x24,0x24,0x24,0x24,0x67,0x23,0x63,0x84,0x0e,0x64,0x20,0x64,0x20,0x64,0x20,0x64,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'sys' + 0x16,0x02, // STORE_NAME 'sys' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'utime' + 0x16,0x03, // STORE_NAME 'utime' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'micropython' + 0x1c,0x04, // IMPORT_FROM 'const' + 0x16,0x04, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x2c,0x05, // BUILD_MAP 5 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x62, // STORE_MAP + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x62, // STORE_MAP + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x9e, // LOAD_CONST_SMALL_INT 30 + 0x62, // STORE_MAP + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xa8, // LOAD_CONST_SMALL_INT 40 + 0x62, // STORE_MAP + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x22,0x32, // LOAD_CONST_SMALL_INT 50 + 0x62, // STORE_MAP + 0x16,0x13, // STORE_NAME '_leveldict' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x16,0x14, // STORE_NAME 'level' + 0x52, // LOAD_CONST_TRUE + 0x16,0x15, // STORE_NAME 'color' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x06, // STORE_NAME '_log' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x07, // STORE_NAME 'debug' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x08, // STORE_NAME 'info' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x09, // STORE_NAME 'warning' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x0a, // STORE_NAME 'error' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x0b, // STORE_NAME 'exception' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_log__lt_module_gt_ +// frozen bytecode for file trezor/log.py, scope trezor_log__log +static const byte fun_data_trezor_log__log[13] = { + 0xa3,0x80,0x80,0x40,0x0c, // prelude + 0x06,0x16,0x17,0x18, // names: _log, name, mlevel, msg + 0x80,0x18, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_log__log = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x04, + .n_pos_args = 3, + .fun_data = fun_data_trezor_log__log, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 4, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_trezor_log__log + 9, + .line_info_top = fun_data_trezor_log__log + 11, + .opcodes = fun_data_trezor_log__log + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_log__lt_module_gt_ +// frozen bytecode for file trezor/log.py, scope trezor_log_debug +static const byte fun_data_trezor_log_debug[22] = { + 0xc2,0x80,0x80,0x40,0x0a, // prelude + 0x07,0x16,0x18, // names: debug, name, msg + 0x80,0x26, // code info + 0x12,0x06, // LOAD_GLOBAL '_log' + 0xb0, // LOAD_FAST 0 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x35,0x04, // CALL_FUNCTION_VAR_KW 4 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_log_debug = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x04, + .n_pos_args = 2, + .fun_data = fun_data_trezor_log_debug, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 4, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_trezor_log_debug + 8, + .line_info_top = fun_data_trezor_log_debug + 10, + .opcodes = fun_data_trezor_log_debug + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_log__lt_module_gt_ +// frozen bytecode for file trezor/log.py, scope trezor_log_info +static const byte fun_data_trezor_log_info[22] = { + 0xc2,0x80,0x80,0x40,0x0a, // prelude + 0x08,0x16,0x18, // names: info, name, msg + 0x80,0x2a, // code info + 0x12,0x06, // LOAD_GLOBAL '_log' + 0xb0, // LOAD_FAST 0 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x35,0x04, // CALL_FUNCTION_VAR_KW 4 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_log_info = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x04, + .n_pos_args = 2, + .fun_data = fun_data_trezor_log_info, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 4, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_trezor_log_info + 8, + .line_info_top = fun_data_trezor_log_info + 10, + .opcodes = fun_data_trezor_log_info + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_log__lt_module_gt_ +// frozen bytecode for file trezor/log.py, scope trezor_log_warning +static const byte fun_data_trezor_log_warning[22] = { + 0xc2,0x80,0x80,0x40,0x0a, // prelude + 0x09,0x16,0x18, // names: warning, name, msg + 0x80,0x2e, // code info + 0x12,0x06, // LOAD_GLOBAL '_log' + 0xb0, // LOAD_FAST 0 + 0x9e, // LOAD_CONST_SMALL_INT 30 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x35,0x04, // CALL_FUNCTION_VAR_KW 4 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_log_warning = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x04, + .n_pos_args = 2, + .fun_data = fun_data_trezor_log_warning, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 4, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_trezor_log_warning + 8, + .line_info_top = fun_data_trezor_log_warning + 10, + .opcodes = fun_data_trezor_log_warning + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_log__lt_module_gt_ +// frozen bytecode for file trezor/log.py, scope trezor_log_error +static const byte fun_data_trezor_log_error[22] = { + 0xc2,0x80,0x80,0x40,0x0a, // prelude + 0x0a,0x16,0x18, // names: error, name, msg + 0x80,0x32, // code info + 0x12,0x06, // LOAD_GLOBAL '_log' + 0xb0, // LOAD_FAST 0 + 0xa8, // LOAD_CONST_SMALL_INT 40 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x35,0x04, // CALL_FUNCTION_VAR_KW 4 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_log_error = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x04, + .n_pos_args = 2, + .fun_data = fun_data_trezor_log_error, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 4, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_trezor_log_error + 8, + .line_info_top = fun_data_trezor_log_error + 10, + .opcodes = fun_data_trezor_log_error + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_log__lt_module_gt_ +// frozen bytecode for file trezor/log.py, scope trezor_log_exception +static const byte fun_data_trezor_log_exception[78] = { + 0x32,0x18, // prelude + 0x0b,0x16,0x19, // names: exception, name, exc + 0x80,0x39,0x2a,0x64,0x22,0x48,0x2a,0x4b,0x49, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x0c, // LOAD_ATTR '__class__' + 0x13,0x0d, // LOAD_ATTR '__name__' + 0x10,0x0e, // LOAD_CONST_STRING 'Result' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x06, // LOAD_GLOBAL '_log' + 0xb0, // LOAD_FAST 0 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'value' + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x42,0x66, // JUMP 38 + 0xb1, // LOAD_FAST 1 + 0x13,0x0c, // LOAD_ATTR '__class__' + 0x13,0x0d, // LOAD_ATTR '__name__' + 0x10,0x10, // LOAD_CONST_STRING 'Cancelled' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x06, // LOAD_GLOBAL '_log' + 0xb0, // LOAD_FAST 0 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x51, // JUMP 17 + 0x12,0x06, // LOAD_GLOBAL '_log' + 0xb0, // LOAD_FAST 0 + 0xa8, // LOAD_CONST_SMALL_INT 40 + 0x10,0x11, // LOAD_CONST_STRING 'exception:' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'sys' + 0x14,0x12, // LOAD_METHOD 'print_exception' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_log_exception = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_log_exception, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 78, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_trezor_log_exception + 5, + .line_info_top = fun_data_trezor_log_exception + 14, + .opcodes = fun_data_trezor_log_exception + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_log__lt_module_gt_[] = { + &raw_code_trezor_log__log, + &raw_code_trezor_log_debug, + &raw_code_trezor_log_info, + &raw_code_trezor_log_warning, + &raw_code_trezor_log_error, + &raw_code_trezor_log_exception, +}; + +static const mp_raw_code_t raw_code_trezor_log__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_log__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 106, + #endif + .children = (void *)&children_trezor_log__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_log__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_log__lt_module_gt_ + 25, + .opcodes = fun_data_trezor_log__lt_module_gt_ + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_log[26] = { + MP_QSTR_trezor_slash_log_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_sys, + MP_QSTR_utime, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR__log, + MP_QSTR_debug, + MP_QSTR_info, + MP_QSTR_warning, + MP_QSTR_error, + MP_QSTR_exception, + MP_QSTR___class__, + MP_QSTR___name__, + MP_QSTR_Result, + MP_QSTR_value, + MP_QSTR_Cancelled, + MP_QSTR_exception_colon_, + MP_QSTR_print_exception, + MP_QSTR__leveldict, + MP_QSTR_level, + MP_QSTR_color, + MP_QSTR_name, + MP_QSTR_mlevel, + MP_QSTR_msg, + MP_QSTR_exc, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_trezor_log_0 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_DEBUG), + MP_ROM_QSTR(MP_QSTR_32), +}}; +static const mp_rom_obj_tuple_t const_obj_trezor_log_1 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_INFO), + MP_ROM_QSTR(MP_QSTR_36), +}}; +static const mp_rom_obj_tuple_t const_obj_trezor_log_2 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_WARNING), + MP_ROM_QSTR(MP_QSTR_33), +}}; +static const mp_rom_obj_tuple_t const_obj_trezor_log_3 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_ERROR), + MP_ROM_QSTR(MP_QSTR_31), +}}; +static const mp_rom_obj_tuple_t const_obj_trezor_log_4 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_CRITICAL), + MP_ROM_QSTR(MP_QSTR_1_semicolon_31), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_log[7] = { + MP_ROM_PTR(&const_obj_trezor_log_0), + MP_ROM_PTR(&const_obj_trezor_log_1), + MP_ROM_PTR(&const_obj_trezor_log_2), + MP_ROM_PTR(&const_obj_trezor_log_3), + MP_ROM_PTR(&const_obj_trezor_log_4), + MP_ROM_QSTR(MP_QSTR_ui_dot_Result_colon__space__percent_s), + MP_ROM_QSTR(MP_QSTR_ui_dot_Cancelled), +}; + +static const mp_frozen_module_t frozen_module_trezor_log = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_log, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_log, + }, + .rc = &raw_code_trezor_log__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_loop +// - original source file: build/firmware/src/trezor/loop.mpy +// - frozen file name: trezor/loop.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/loop.py, scope trezor_loop__lt_module_gt_ +static const byte fun_data_trezor_loop__lt_module_gt_[237] = { + 0x18,0x56, // prelude + 0x01, // names: + 0x80,0x09,0x26,0x66,0x52,0x80,0x08,0x63,0x6b,0x64,0x64,0x63,0x6b,0x20,0x66,0x8b,0x18,0x84,0x0c,0x84,0x07,0x84,0x0c,0x84,0x1e,0x84,0x09,0x84,0x2b,0x89,0x13,0x8b,0x13,0x8b,0x13,0x6a,0x8b,0x5b,0x89,0x62,0x8b,0x75, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'utime' + 0x16,0x02, // STORE_NAME 'utime' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'utimeq' + 0x16,0x03, // STORE_NAME 'utimeq' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'io' + 0x10,0x05, // LOAD_CONST_STRING 'log' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x04, // IMPORT_FROM 'io' + 0x16,0x04, // STORE_NAME 'io' + 0x1c,0x05, // IMPORT_FROM 'log' + 0x16,0x05, // STORE_NAME 'log' + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x16,0x44, // STORE_NAME 'after_step_hook' + 0x11,0x03, // LOAD_NAME 'utimeq' + 0x14,0x03, // LOAD_METHOD 'utimeq' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x36,0x01, // CALL_METHOD 1 + 0x16,0x45, // STORE_NAME '_queue' + 0x2c,0x00, // BUILD_MAP 0 + 0x16,0x46, // STORE_NAME '_paused' + 0x2c,0x00, // BUILD_MAP 0 + 0x16,0x47, // STORE_NAME '_finalizers' + 0x51, // LOAD_CONST_NONE + 0x17,0x48, // STORE_GLOBAL 'this_task' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x07, // LOAD_CONST_STRING 'TaskClosed' + 0x11,0x49, // LOAD_NAME 'Exception' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x07, // STORE_NAME 'TaskClosed' + 0x11,0x07, // LOAD_NAME 'TaskClosed' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x4a, // STORE_NAME 'TASK_CLOSED' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x2a,0x04, // BUILD_TUPLE 4 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x0f, // STORE_NAME 'schedule' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x13, // STORE_NAME 'pause' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x16, // STORE_NAME 'finalize' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x18, // STORE_NAME 'close' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x19, // STORE_NAME 'run' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x1d, // STORE_NAME 'clear' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x1e, // STORE_NAME '_step' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x08, // MAKE_FUNCTION 8 + 0x10,0x08, // LOAD_CONST_STRING 'Syscall' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x08, // STORE_NAME 'Syscall' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x09, // MAKE_FUNCTION 9 + 0x10,0x09, // LOAD_CONST_STRING 'sleep' + 0x11,0x08, // LOAD_NAME 'Syscall' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x09, // STORE_NAME 'sleep' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x10,0x0a, // LOAD_CONST_STRING 'wait' + 0x11,0x08, // LOAD_NAME 'Syscall' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0a, // STORE_NAME 'wait' + 0x11,0x4b, // LOAD_NAME 'type' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x4c, // STORE_NAME '_type_gen' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x10,0x0b, // LOAD_CONST_STRING 'race' + 0x11,0x08, // LOAD_NAME 'Syscall' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0b, // STORE_NAME 'race' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x10,0x0c, // LOAD_CONST_STRING 'chan' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x0c, // STORE_NAME 'chan' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x10,0x0d, // LOAD_CONST_STRING 'spawn' + 0x11,0x08, // LOAD_NAME 'Syscall' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0d, // STORE_NAME 'spawn' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x10,0x0e, // LOAD_CONST_STRING 'Timer' + 0x11,0x08, // LOAD_NAME 'Syscall' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0e, // STORE_NAME 'Timer' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_loop__lt_module_gt_ +// frozen bytecode for file trezor/loop.py, scope trezor_loop_TaskClosed +static const byte fun_data_trezor_loop_TaskClosed[15] = { + 0x00,0x06, // prelude + 0x07, // names: TaskClosed + 0x88,0x27, // code info + 0x11,0x4d, // LOAD_NAME '__name__' + 0x16,0x4e, // STORE_NAME '__module__' + 0x10,0x07, // LOAD_CONST_STRING 'TaskClosed' + 0x16,0x4f, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_TaskClosed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_loop_TaskClosed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_trezor_loop_TaskClosed + 3, + .line_info_top = fun_data_trezor_loop_TaskClosed + 5, + .opcodes = fun_data_trezor_loop_TaskClosed + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop__lt_module_gt_ +// frozen bytecode for file trezor/loop.py, scope trezor_loop_schedule +static const byte fun_data_trezor_loop_schedule[71] = { + 0xc9,0x84,0x80,0x01,0x20, // prelude + 0x0f,0x36,0x21,0x50,0x3e,0x51, // names: schedule, task, value, deadline, finalizer, reschedule + 0x80,0x34,0x80,0x08,0x23,0x28,0x25,0x27,0x26,0x29, // code info + 0xb4, // LOAD_FAST 4 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x45, // LOAD_GLOBAL '_queue' + 0x14,0x10, // LOAD_METHOD 'discard' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'utime' + 0x14,0x11, // LOAD_METHOD 'ticks_ms' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb3, // LOAD_FAST 3 + 0x12,0x47, // LOAD_GLOBAL '_finalizers' + 0x12,0x52, // LOAD_GLOBAL 'id' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x56, // STORE_SUBSCR + 0x12,0x45, // LOAD_GLOBAL '_queue' + 0x14,0x12, // LOAD_METHOD 'push' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_schedule = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_trezor_loop_schedule, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 71, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 4, + .qstr_block_name_idx = 15, + .line_info = fun_data_trezor_loop_schedule + 11, + .line_info_top = fun_data_trezor_loop_schedule + 21, + .opcodes = fun_data_trezor_loop_schedule + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop__lt_module_gt_ +// frozen bytecode for file trezor/loop.py, scope trezor_loop_pause +static const byte fun_data_trezor_loop_pause[45] = { + 0x32,0x14, // prelude + 0x13,0x36,0x53, // names: pause, task, iface + 0x80,0x46,0x60,0x40,0x29,0x25,0x2a, // code info + 0x12,0x46, // LOAD_GLOBAL '_paused' + 0x14,0x14, // LOAD_METHOD 'get' + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x54, // LOAD_GLOBAL 'set' + 0x34,0x00, // CALL_FUNCTION 0 + 0x57, // DUP_TOP + 0xc2, // STORE_FAST 2 + 0x12,0x46, // LOAD_GLOBAL '_paused' + 0xb1, // LOAD_FAST 1 + 0x56, // STORE_SUBSCR + 0xb2, // LOAD_FAST 2 + 0x14,0x15, // LOAD_METHOD 'add' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_pause = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop_pause, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_trezor_loop_pause + 5, + .line_info_top = fun_data_trezor_loop_pause + 12, + .opcodes = fun_data_trezor_loop_pause + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop__lt_module_gt_ +// frozen bytecode for file trezor/loop.py, scope trezor_loop_finalize +static const byte fun_data_trezor_loop_finalize[37] = { + 0x32,0x10, // prelude + 0x16,0x36,0x21, // names: finalize, task, value + 0x80,0x52,0x20,0x2d,0x26, // code info + 0x12,0x47, // LOAD_GLOBAL '_finalizers' + 0x14,0x17, // LOAD_METHOD 'pop' + 0x12,0x52, // LOAD_GLOBAL 'id' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x51, // LOAD_CONST_NONE + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_finalize = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop_finalize, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_trezor_loop_finalize + 5, + .line_info_top = fun_data_trezor_loop_finalize + 10, + .opcodes = fun_data_trezor_loop_finalize + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop__lt_module_gt_ +// frozen bytecode for file trezor/loop.py, scope trezor_loop_close +static const byte fun_data_trezor_loop_close[56] = { + 0x41,0x14, // prelude + 0x18,0x36, // names: close, task + 0x80,0x59,0x60,0x20,0x26,0x2c,0x28,0x26, // code info + 0x12,0x46, // LOAD_GLOBAL '_paused' + 0x5f, // GET_ITER_STACK + 0x4b,0x0d, // FOR_ITER 13 + 0xc1, // STORE_FAST 1 + 0x12,0x46, // LOAD_GLOBAL '_paused' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x14,0x10, // LOAD_METHOD 'discard' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x31, // JUMP -15 + 0x12,0x45, // LOAD_GLOBAL '_queue' + 0x14,0x10, // LOAD_METHOD 'discard' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x18, // LOAD_METHOD 'close' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'finalize' + 0xb0, // LOAD_FAST 0 + 0x12,0x55, // LOAD_GLOBAL 'GeneratorExit' + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_close = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_loop_close, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 24, + .line_info = fun_data_trezor_loop_close + 4, + .line_info_top = fun_data_trezor_loop_close + 12, + .opcodes = fun_data_trezor_loop_close + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop__lt_module_gt_ +// frozen bytecode for file trezor/loop.py, scope trezor_loop_run +static const byte fun_data_trezor_loop_run[139] = { + 0x60,0x22, // prelude + 0x19, // names: run + 0x80,0x65,0x60,0x60,0x26,0x25,0x43,0x24,0x55,0x44,0x4c,0x2c,0x25,0x6d,0x24,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x03, // BUILD_LIST 3 + 0xc0, // STORE_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x02, // BUILD_LIST 2 + 0xc1, // STORE_FAST 1 + 0x42,0xde,0x80, // JUMP 94 + 0x12,0x45, // LOAD_GLOBAL '_queue' + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x12,0x02, // LOAD_GLOBAL 'utime' + 0x14,0x1a, // LOAD_METHOD 'ticks_diff' + 0x12,0x45, // LOAD_GLOBAL '_queue' + 0x14,0x1b, // LOAD_METHOD 'peektime' + 0x36,0x00, // CALL_METHOD 0 + 0x12,0x02, // LOAD_GLOBAL 'utime' + 0x14,0x11, // LOAD_METHOD 'ticks_ms' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0x42,0x44, // JUMP 4 + 0x22,0x87,0x68, // LOAD_CONST_SMALL_INT 1000 + 0xc2, // STORE_FAST 2 + 0x12,0x04, // LOAD_GLOBAL 'io' + 0x14,0x1c, // LOAD_METHOD 'poll' + 0x12,0x46, // LOAD_GLOBAL '_paused' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x44,0x5e, // POP_JUMP_IF_FALSE 30 + 0x12,0x46, // LOAD_GLOBAL '_paused' + 0x14,0x17, // LOAD_METHOD 'pop' + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x2a,0x00, // BUILD_TUPLE 0 + 0x36,0x02, // CALL_METHOD 2 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x5f, // GET_ITER_STACK + 0x4b,0x0c, // FOR_ITER 12 + 0xc4, // STORE_FAST 4 + 0x12,0x1e, // LOAD_GLOBAL '_step' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x32, // JUMP -14 + 0x42,0x57, // JUMP 23 + 0x12,0x45, // LOAD_GLOBAL '_queue' + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x45, // LOAD_GLOBAL '_queue' + 0x14,0x17, // LOAD_METHOD 'pop' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x1e, // LOAD_GLOBAL '_step' + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x55, // LOAD_SUBSCR + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x45, // LOAD_GLOBAL '_queue' + 0x43,0x9d,0x7f, // POP_JUMP_IF_TRUE -99 + 0x12,0x46, // LOAD_GLOBAL '_paused' + 0x43,0x98,0x7f, // POP_JUMP_IF_TRUE -104 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_run = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_loop_run, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 139, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_trezor_loop_run + 3, + .line_info_top = fun_data_trezor_loop_run + 19, + .opcodes = fun_data_trezor_loop_run + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop__lt_module_gt_ +// frozen bytecode for file trezor/loop.py, scope trezor_loop_clear +static const byte fun_data_trezor_loop_clear[46] = { + 0x18,0x10, // prelude + 0x1d, // names: clear + 0x80,0x83,0x20,0x26,0x22,0x2c,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x03, // BUILD_LIST 3 + 0xc0, // STORE_FAST 0 + 0x42,0x48, // JUMP 8 + 0x12,0x45, // LOAD_GLOBAL '_queue' + 0x14,0x17, // LOAD_METHOD 'pop' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x45, // LOAD_GLOBAL '_queue' + 0x43,0x34, // POP_JUMP_IF_TRUE -12 + 0x12,0x46, // LOAD_GLOBAL '_paused' + 0x14,0x1d, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x47, // LOAD_GLOBAL '_finalizers' + 0x14,0x1d, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_clear = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_loop_clear, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_trezor_loop_clear + 3, + .line_info_top = fun_data_trezor_loop_clear + 10, + .opcodes = fun_data_trezor_loop_clear + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop__lt_module_gt_ +// frozen bytecode for file trezor/loop.py, scope trezor_loop__step +static const byte fun_data_trezor_loop__step[151] = { + 0xca,0x02,0x2e, // prelude + 0x1e,0x36,0x21, // names: _step, task, value + 0x80,0x8c,0x80,0x0f,0x20,0x23,0x22,0x29,0x49,0x52,0x40,0x5a,0x40,0x50,0x29,0x29,0x25,0x48,0x40,0x24, // code info + 0xb0, // LOAD_FAST 0 + 0x17,0x48, // STORE_GLOBAL 'this_task' + 0x48,0x1b, // SETUP_EXCEPT 27 + 0x12,0x56, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x57, // LOAD_GLOBAL 'BaseException' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x1f, // LOAD_METHOD 'throw' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0x42,0x47, // JUMP 7 + 0xb0, // LOAD_FAST 0 + 0x14,0x20, // LOAD_METHOD 'send' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0x4a,0x33, // POP_EXCEPT_JUMP 51 + 0x57, // DUP_TOP + 0x12,0x58, // LOAD_GLOBAL 'StopIteration' + 0xdf, // BINARY_OP 8 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0xc3, // STORE_FAST 3 + 0x49,0x0a, // SETUP_FINALLY 10 + 0x12,0x16, // LOAD_GLOBAL 'finalize' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x13,0x21, // LOAD_ATTR 'value' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xc3, // STORE_FAST 3 + 0x28,0x03, // DELETE_FAST 3 + 0x5d, // END_FINALLY + 0x4a,0x41, // POP_EXCEPT_JUMP 65 + 0x57, // DUP_TOP + 0x12,0x49, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xc3, // STORE_FAST 3 + 0x49,0x08, // SETUP_FINALLY 8 + 0x12,0x16, // LOAD_GLOBAL 'finalize' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xc3, // STORE_FAST 3 + 0x28,0x03, // DELETE_FAST 3 + 0x5d, // END_FINALLY + 0x4a,0x29, // POP_EXCEPT_JUMP 41 + 0x5d, // END_FINALLY + 0x12,0x56, // LOAD_GLOBAL 'isinstance' + 0xb2, // LOAD_FAST 2 + 0x12,0x08, // LOAD_GLOBAL 'Syscall' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb2, // LOAD_FAST 2 + 0x14,0x22, // LOAD_METHOD 'handle' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x4d, // JUMP 13 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x0f, // LOAD_GLOBAL 'schedule' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x40, // JUMP 0 + 0x12,0x44, // LOAD_GLOBAL 'after_step_hook' + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x44, // LOAD_GLOBAL 'after_step_hook' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop__step = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop__step, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 151, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 2, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_trezor_loop__step + 6, + .line_info_top = fun_data_trezor_loop__step + 26, + .opcodes = fun_data_trezor_loop__step + 26, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop__lt_module_gt_ +// frozen bytecode for file trezor/loop.py, scope trezor_loop_Syscall +static const byte fun_data_trezor_loop_Syscall[29] = { + 0x00,0x12, // prelude + 0x08, // names: Syscall + 0x88,0xb7,0x60,0x40,0x64,0x20,0x60,0x40, // code info + 0x11,0x4d, // LOAD_NAME '__name__' + 0x16,0x4e, // STORE_NAME '__module__' + 0x10,0x08, // LOAD_CONST_STRING 'Syscall' + 0x16,0x4f, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x27, // STORE_NAME '__iter__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x22, // STORE_NAME 'handle' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_loop_Syscall +// frozen bytecode for file trezor/loop.py, scope trezor_loop_Syscall___iter__ +static const byte fun_data_trezor_loop_Syscall___iter__[10] = { + 0x89,0x40,0x08, // prelude + 0x27,0x59, // names: __iter__, self + 0x80,0xbe, // code info + 0xb0, // LOAD_FAST 0 + 0x67, // YIELD_VALUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_Syscall___iter__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_loop_Syscall___iter__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 10, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_trezor_loop_Syscall___iter__ + 5, + .line_info_top = fun_data_trezor_loop_Syscall___iter__ + 7, + .opcodes = fun_data_trezor_loop_Syscall___iter__ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_Syscall +// frozen bytecode for file trezor/loop.py, scope trezor_loop_Syscall_handle +static const byte fun_data_trezor_loop_Syscall_handle[9] = { + 0x12,0x0a, // prelude + 0x22,0x59,0x36, // names: handle, self, task + 0x80,0xc6, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_Syscall_handle = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop_Syscall_handle, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 9, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_trezor_loop_Syscall_handle + 5, + .line_info_top = fun_data_trezor_loop_Syscall_handle + 7, + .opcodes = fun_data_trezor_loop_Syscall_handle + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_loop_Syscall[] = { + &raw_code_trezor_loop_Syscall___iter__, + &raw_code_trezor_loop_Syscall_handle, +}; + +static const mp_raw_code_t raw_code_trezor_loop_Syscall = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_loop_Syscall, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = (void *)&children_trezor_loop_Syscall, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_trezor_loop_Syscall + 3, + .line_info_top = fun_data_trezor_loop_Syscall + 11, + .opcodes = fun_data_trezor_loop_Syscall + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop__lt_module_gt_ +// frozen bytecode for file trezor/loop.py, scope trezor_loop_sleep +static const byte fun_data_trezor_loop_sleep[26] = { + 0x00,0x0c, // prelude + 0x09, // names: sleep + 0x88,0xca,0x80,0x0a,0x64, // code info + 0x11,0x4d, // LOAD_NAME '__name__' + 0x16,0x4e, // STORE_NAME '__module__' + 0x10,0x09, // LOAD_CONST_STRING 'sleep' + 0x16,0x4f, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x28, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x22, // STORE_NAME 'handle' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_loop_sleep +// frozen bytecode for file trezor/loop.py, scope trezor_loop_sleep___init__ +static const byte fun_data_trezor_loop_sleep___init__[13] = { + 0x1a,0x0a, // prelude + 0x28,0x59,0x29, // names: __init__, self, delay_ms + 0x80,0xd5, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x29, // STORE_ATTR 'delay_ms' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_sleep___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop_sleep___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_trezor_loop_sleep___init__ + 5, + .line_info_top = fun_data_trezor_loop_sleep___init__ + 7, + .opcodes = fun_data_trezor_loop_sleep___init__ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_sleep +// frozen bytecode for file trezor/loop.py, scope trezor_loop_sleep_handle +static const byte fun_data_trezor_loop_sleep_handle[34] = { + 0x32,0x0c, // prelude + 0x22,0x59,0x36, // names: handle, self, task + 0x80,0xd8,0x30, // code info + 0x12,0x02, // LOAD_GLOBAL 'utime' + 0x14,0x2a, // LOAD_METHOD 'ticks_add' + 0x12,0x02, // LOAD_GLOBAL 'utime' + 0x14,0x11, // LOAD_METHOD 'ticks_ms' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'delay_ms' + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0x12,0x0f, // LOAD_GLOBAL 'schedule' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_sleep_handle = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop_sleep_handle, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_trezor_loop_sleep_handle + 5, + .line_info_top = fun_data_trezor_loop_sleep_handle + 8, + .opcodes = fun_data_trezor_loop_sleep_handle + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_loop_sleep[] = { + &raw_code_trezor_loop_sleep___init__, + &raw_code_trezor_loop_sleep_handle, +}; + +static const mp_raw_code_t raw_code_trezor_loop_sleep = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_loop_sleep, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = (void *)&children_trezor_loop_sleep, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_trezor_loop_sleep + 3, + .line_info_top = fun_data_trezor_loop_sleep + 8, + .opcodes = fun_data_trezor_loop_sleep + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop__lt_module_gt_ +// frozen bytecode for file trezor/loop.py, scope trezor_loop_wait +static const byte fun_data_trezor_loop_wait[26] = { + 0x00,0x0c, // prelude + 0x0a, // names: wait + 0x88,0xdd,0x80,0x0b,0x64, // code info + 0x11,0x4d, // LOAD_NAME '__name__' + 0x16,0x4e, // STORE_NAME '__module__' + 0x10,0x0a, // LOAD_CONST_STRING 'wait' + 0x16,0x4f, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x28, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x22, // STORE_NAME 'handle' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_loop_wait +// frozen bytecode for file trezor/loop.py, scope trezor_loop_wait___init__ +static const byte fun_data_trezor_loop_wait___init__[13] = { + 0x1a,0x0a, // prelude + 0x28,0x59,0x2b, // names: __init__, self, msg_iface + 0x80,0xe9, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x2b, // STORE_ATTR 'msg_iface' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_wait___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop_wait___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_trezor_loop_wait___init__ + 5, + .line_info_top = fun_data_trezor_loop_wait___init__ + 7, + .opcodes = fun_data_trezor_loop_wait___init__ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_wait +// frozen bytecode for file trezor/loop.py, scope trezor_loop_wait_handle +static const byte fun_data_trezor_loop_wait_handle[18] = { + 0x22,0x0a, // prelude + 0x22,0x59,0x36, // names: handle, self, task + 0x80,0xec, // code info + 0x12,0x13, // LOAD_GLOBAL 'pause' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'msg_iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_wait_handle = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop_wait_handle, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_trezor_loop_wait_handle + 5, + .line_info_top = fun_data_trezor_loop_wait_handle + 7, + .opcodes = fun_data_trezor_loop_wait_handle + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_loop_wait[] = { + &raw_code_trezor_loop_wait___init__, + &raw_code_trezor_loop_wait_handle, +}; + +static const mp_raw_code_t raw_code_trezor_loop_wait = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_loop_wait, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = (void *)&children_trezor_loop_wait, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_trezor_loop_wait + 3, + .line_info_top = fun_data_trezor_loop_wait + 8, + .opcodes = fun_data_trezor_loop_wait + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop__lt_module_gt_ +// frozen bytecode for file trezor/loop.py, scope trezor_loop__lt_lambda_gt_ +static const byte fun_data_trezor_loop__lt_lambda_gt_[11] = { + 0x80,0x40,0x06, // prelude + 0x23, // names: + 0x80,0xef, // code info + 0x51, // LOAD_CONST_NONE + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop__lt_lambda_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_trezor_loop__lt_lambda_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 11, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_trezor_loop__lt_lambda_gt_ + 4, + .line_info_top = fun_data_trezor_loop__lt_lambda_gt_ + 6, + .opcodes = fun_data_trezor_loop__lt_lambda_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop__lt_module_gt_ +// frozen bytecode for file trezor/loop.py, scope trezor_loop_race +static const byte fun_data_trezor_loop_race[56] = { + 0x18,0x1a, // prelude + 0x0b, // names: race + 0x88,0xf3,0x80,0x19,0x6b,0x60,0x84,0x1b,0x68,0x40,0x84,0x0f, // code info + 0x11,0x4d, // LOAD_NAME '__name__' + 0x16,0x4e, // STORE_NAME '__module__' + 0x10,0x0b, // LOAD_CONST_STRING 'race' + 0x16,0x4f, // STORE_NAME '__qualname__' + 0x53, // LOAD_NULL + 0x2c,0x00, // BUILD_MAP 0 + 0x52, // LOAD_CONST_TRUE + 0x10,0x24, // LOAD_CONST_STRING 'exit_others' + 0x62, // STORE_MAP + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x28, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x22, // STORE_NAME 'handle' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x32, // STORE_NAME 'exit' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x2f, // STORE_NAME '_finish' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x27, // STORE_NAME '__iter__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_loop_race +// frozen bytecode for file trezor/loop.py, scope trezor_loop_race___init__ +static const byte fun_data_trezor_loop_race___init__[34] = { + 0xa1,0x88,0x80,0xc0,0x40,0x10, // prelude + 0x28,0x59,0x24, // names: __init__, self, exit_others + 0x90,0x0d,0x24,0x24,0x25, // code info + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x2c, // STORE_ATTR 'children' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x24, // STORE_ATTR 'exit_others' + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x2d, // STORE_ATTR 'finished' + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x2e, // STORE_ATTR 'scheduled' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_race___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x0c, + .n_pos_args = 1, + .fun_data = fun_data_trezor_loop_race___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 12, + .n_pos_args = 1, + .n_kwonly_args = 1, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_trezor_loop_race___init__ + 9, + .line_info_top = fun_data_trezor_loop_race___init__ + 14, + .opcodes = fun_data_trezor_loop_race___init__ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_race +// frozen bytecode for file trezor/loop.py, scope trezor_loop_race_handle +static const byte fun_data_trezor_loop_race_handle[96] = { + 0x7a,0x28, // prelude + 0x22,0x59,0x36, // names: handle, self, task + 0x90,0x13,0x60,0x24,0x24,0x44,0x24,0x26,0x46,0x27,0x20,0x69,0x20,0x64,0x40,0x26,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR '_finish' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x2e, // LOAD_ATTR 'scheduled' + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR 'finished' + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x30, // STORE_ATTR 'callback' + 0xb3, // LOAD_FAST 3 + 0x14,0x1d, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x1d, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x2c, // LOAD_ATTR 'children' + 0x5f, // GET_ITER_STACK + 0x4b,0x26, // FOR_ITER 38 + 0xc5, // STORE_FAST 5 + 0x12,0x56, // LOAD_GLOBAL 'isinstance' + 0xb5, // LOAD_FAST 5 + 0x12,0x4c, // LOAD_GLOBAL '_type_gen' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb5, // LOAD_FAST 5 + 0xc6, // STORE_FAST 6 + 0x42,0x46, // JUMP 6 + 0xb5, // LOAD_FAST 5 + 0x14,0x27, // LOAD_METHOD '__iter__' + 0x36,0x00, // CALL_METHOD 0 + 0xc6, // STORE_FAST 6 + 0x12,0x0f, // LOAD_GLOBAL 'schedule' + 0xb6, // LOAD_FAST 6 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xb2, // LOAD_FAST 2 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x31, // LOAD_METHOD 'append' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x18, // JUMP -40 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_race_handle = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop_race_handle, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 96, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_trezor_loop_race_handle + 5, + .line_info_top = fun_data_trezor_loop_race_handle + 22, + .opcodes = fun_data_trezor_loop_race_handle + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_race +// frozen bytecode for file trezor/loop.py, scope trezor_loop_race_exit +static const byte fun_data_trezor_loop_race_exit[32] = { + 0xc2,0x01,0x0e, // prelude + 0x32,0x59,0x5a, // names: exit, self, except_for + 0x90,0x2e,0x27,0x25, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x2e, // LOAD_ATTR 'scheduled' + 0x5f, // GET_ITER_STACK + 0x4b,0x0e, // FOR_ITER 14 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x12,0x18, // LOAD_GLOBAL 'close' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x30, // JUMP -16 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_race_exit = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop_race_exit, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 50, + .line_info = fun_data_trezor_loop_race_exit + 6, + .line_info_top = fun_data_trezor_loop_race_exit + 10, + .opcodes = fun_data_trezor_loop_race_exit + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_race +// frozen bytecode for file trezor/loop.py, scope trezor_loop_race__finish +static const byte fun_data_trezor_loop_race__finish[91] = { + 0x5b,0x1e, // prelude + 0x2f,0x59,0x36,0x5b, // names: _finish, self, task, result + 0x90,0x33,0x66,0x2e,0x25,0x26,0x48,0x23,0x29,0x25,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR 'finished' + 0x43,0xc2,0x80, // POP_JUMP_IF_TRUE 66 + 0x12,0x5c, // LOAD_GLOBAL 'enumerate' + 0xb0, // LOAD_FAST 0 + 0x13,0x2e, // LOAD_ATTR 'scheduled' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x17, // FOR_ITER 23 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0xde, // BINARY_OP 7 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb0, // LOAD_FAST 0 + 0x13,0x2c, // LOAD_ATTR 'children' + 0xb3, // LOAD_FAST 3 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x42,0x45, // JUMP 5 + 0x42,0x27, // JUMP -25 + 0x12,0x5d, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR 'finished' + 0x14,0x31, // LOAD_METHOD 'append' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'exit_others' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb0, // LOAD_FAST 0 + 0x14,0x32, // LOAD_METHOD 'exit' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'schedule' + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'callback' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_race__finish = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_loop_race__finish, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 91, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_trezor_loop_race__finish + 6, + .line_info_top = fun_data_trezor_loop_race__finish + 17, + .opcodes = fun_data_trezor_loop_race__finish + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_race +// frozen bytecode for file trezor/loop.py, scope trezor_loop_race___iter__ +static const byte fun_data_trezor_loop_race___iter__[41] = { + 0xb5,0x40,0x12, // prelude + 0x27,0x59, // names: __iter__, self + 0x90,0x42,0x22,0x66,0x40,0x29,0x26, // code info + 0x48,0x05, // SETUP_EXCEPT 5 + 0xb0, // LOAD_FAST 0 + 0x67, // YIELD_VALUE + 0x63, // RETURN_VALUE + 0x4a,0x14, // POP_EXCEPT_JUMP 20 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR 'finished' + 0x14,0x31, // LOAD_METHOD 'append' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x32, // LOAD_METHOD 'exit' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x64, // RAISE_LAST + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_race___iter__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_loop_race___iter__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_trezor_loop_race___iter__ + 5, + .line_info_top = fun_data_trezor_loop_race___iter__ + 12, + .opcodes = fun_data_trezor_loop_race___iter__ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_loop_race[] = { + &raw_code_trezor_loop_race___init__, + &raw_code_trezor_loop_race_handle, + &raw_code_trezor_loop_race_exit, + &raw_code_trezor_loop_race__finish, + &raw_code_trezor_loop_race___iter__, +}; + +static const mp_raw_code_t raw_code_trezor_loop_race = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_loop_race, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = (void *)&children_trezor_loop_race, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_trezor_loop_race + 3, + .line_info_top = fun_data_trezor_loop_race + 15, + .opcodes = fun_data_trezor_loop_race + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop__lt_module_gt_ +// frozen bytecode for file trezor/loop.py, scope trezor_loop_chan +static const byte fun_data_trezor_loop_chan[77] = { + 0x18,0x26, // prelude + 0x0c, // names: chan + 0x98,0x4e,0x80,0x1c,0x8b,0x0a,0x8b,0x09,0x64,0x20,0x84,0x0a,0x84,0x09,0x84,0x07,0x84,0x0a, // code info + 0x11,0x4d, // LOAD_NAME '__name__' + 0x16,0x4e, // STORE_NAME '__module__' + 0x10,0x0c, // LOAD_CONST_STRING 'chan' + 0x16,0x4f, // STORE_NAME '__qualname__' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x25, // LOAD_CONST_STRING 'Put' + 0x11,0x08, // LOAD_NAME 'Syscall' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x25, // STORE_NAME 'Put' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x26, // LOAD_CONST_STRING 'Take' + 0x11,0x08, // LOAD_NAME 'Syscall' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x26, // STORE_NAME 'Take' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x28, // STORE_NAME '__init__' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x35, // STORE_NAME 'put' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x38, // STORE_NAME 'take' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x39, // STORE_NAME 'publish' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x3a, // STORE_NAME '_schedule_put' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x3b, // STORE_NAME '_schedule_take' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_loop_chan +// frozen bytecode for file trezor/loop.py, scope trezor_loop_chan_Put +static const byte fun_data_trezor_loop_chan_Put[25] = { + 0x00,0x0a, // prelude + 0x25, // names: Put + 0x98,0x6b,0x64,0x40, // code info + 0x11,0x4d, // LOAD_NAME '__name__' + 0x16,0x4e, // STORE_NAME '__module__' + 0x10,0x25, // LOAD_CONST_STRING 'Put' + 0x16,0x4f, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x28, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x22, // STORE_NAME 'handle' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_loop_chan_Put +// frozen bytecode for file trezor/loop.py, scope trezor_loop_chan_Put___init__ +static const byte fun_data_trezor_loop_chan_Put___init__[24] = { + 0x23,0x10, // prelude + 0x28,0x59,0x43,0x21, // names: __init__, self, ch, value + 0x90,0x6c,0x24,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x43, // STORE_ATTR 'ch' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x21, // STORE_ATTR 'value' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x36, // STORE_ATTR 'task' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_chan_Put___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_loop_chan_Put___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_trezor_loop_chan_Put___init__ + 6, + .line_info_top = fun_data_trezor_loop_chan_Put___init__ + 10, + .opcodes = fun_data_trezor_loop_chan_Put___init__ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_chan_Put +// frozen bytecode for file trezor/loop.py, scope trezor_loop_chan_Put_handle +static const byte fun_data_trezor_loop_chan_Put_handle[26] = { + 0x2a,0x0c, // prelude + 0x22,0x59,0x36, // names: handle, self, task + 0x90,0x71,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x36, // STORE_ATTR 'task' + 0xb0, // LOAD_FAST 0 + 0x13,0x43, // LOAD_ATTR 'ch' + 0x14,0x3a, // LOAD_METHOD '_schedule_put' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'value' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_chan_Put_handle = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop_chan_Put_handle, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_trezor_loop_chan_Put_handle + 5, + .line_info_top = fun_data_trezor_loop_chan_Put_handle + 8, + .opcodes = fun_data_trezor_loop_chan_Put_handle + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_loop_chan_Put[] = { + &raw_code_trezor_loop_chan_Put___init__, + &raw_code_trezor_loop_chan_Put_handle, +}; + +static const mp_raw_code_t raw_code_trezor_loop_chan_Put = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_loop_chan_Put, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = (void *)&children_trezor_loop_chan_Put, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_trezor_loop_chan_Put + 3, + .line_info_top = fun_data_trezor_loop_chan_Put + 7, + .opcodes = fun_data_trezor_loop_chan_Put + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_chan +// frozen bytecode for file trezor/loop.py, scope trezor_loop_chan_Take +static const byte fun_data_trezor_loop_chan_Take[25] = { + 0x00,0x0a, // prelude + 0x26, // names: Take + 0x98,0x75,0x64,0x20, // code info + 0x11,0x4d, // LOAD_NAME '__name__' + 0x16,0x4e, // STORE_NAME '__module__' + 0x10,0x26, // LOAD_CONST_STRING 'Take' + 0x16,0x4f, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x28, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x22, // STORE_NAME 'handle' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_loop_chan_Take +// frozen bytecode for file trezor/loop.py, scope trezor_loop_chan_Take___init__ +static const byte fun_data_trezor_loop_chan_Take___init__[18] = { + 0x1a,0x0c, // prelude + 0x28,0x59,0x43, // names: __init__, self, ch + 0x90,0x76,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x43, // STORE_ATTR 'ch' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x36, // STORE_ATTR 'task' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_chan_Take___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop_chan_Take___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_trezor_loop_chan_Take___init__ + 5, + .line_info_top = fun_data_trezor_loop_chan_Take___init__ + 8, + .opcodes = fun_data_trezor_loop_chan_Take___init__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_chan_Take +// frozen bytecode for file trezor/loop.py, scope trezor_loop_chan_Take_handle +static const byte fun_data_trezor_loop_chan_Take_handle[23] = { + 0x22,0x0c, // prelude + 0x22,0x59,0x36, // names: handle, self, task + 0x90,0x7a,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x36, // STORE_ATTR 'task' + 0xb0, // LOAD_FAST 0 + 0x13,0x43, // LOAD_ATTR 'ch' + 0x14,0x3b, // LOAD_METHOD '_schedule_take' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_chan_Take_handle = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop_chan_Take_handle, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_trezor_loop_chan_Take_handle + 5, + .line_info_top = fun_data_trezor_loop_chan_Take_handle + 8, + .opcodes = fun_data_trezor_loop_chan_Take_handle + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_loop_chan_Take[] = { + &raw_code_trezor_loop_chan_Take___init__, + &raw_code_trezor_loop_chan_Take_handle, +}; + +static const mp_raw_code_t raw_code_trezor_loop_chan_Take = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_loop_chan_Take, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = (void *)&children_trezor_loop_chan_Take, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 38, + .line_info = fun_data_trezor_loop_chan_Take + 3, + .line_info_top = fun_data_trezor_loop_chan_Take + 7, + .opcodes = fun_data_trezor_loop_chan_Take + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_chan +// frozen bytecode for file trezor/loop.py, scope trezor_loop_chan___init__ +static const byte fun_data_trezor_loop_chan___init__[19] = { + 0x11,0x0a, // prelude + 0x28,0x59, // names: __init__, self + 0x90,0x7e,0x25, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x33, // STORE_ATTR 'putters' + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x34, // STORE_ATTR 'takers' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_chan___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_loop_chan___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_trezor_loop_chan___init__ + 4, + .line_info_top = fun_data_trezor_loop_chan___init__ + 7, + .opcodes = fun_data_trezor_loop_chan___init__ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_chan +// frozen bytecode for file trezor/loop.py, scope trezor_loop_chan_put +static const byte fun_data_trezor_loop_chan_put[60] = { + 0xce,0x40,0x16, // prelude + 0x35,0x59,0x21, // names: put, self, value + 0x90,0x82,0x29,0x22,0x46,0x27,0x27,0x29, // code info + 0x12,0x0c, // LOAD_GLOBAL 'chan' + 0x14,0x25, // LOAD_METHOD 'Put' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0x48,0x05, // SETUP_EXCEPT 5 + 0xb2, // LOAD_FAST 2 + 0x67, // YIELD_VALUE + 0x63, // RETURN_VALUE + 0x4a,0x1c, // POP_EXCEPT_JUMP 28 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x36, // LOAD_ATTR 'task' + 0xb1, // LOAD_FAST 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x33, // LOAD_ATTR 'putters' + 0xdd, // BINARY_OP 6 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x33, // LOAD_ATTR 'putters' + 0x14,0x37, // LOAD_METHOD 'remove' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x64, // RAISE_LAST + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_chan_put = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop_chan_put, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 60, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 53, + .line_info = fun_data_trezor_loop_chan_put + 6, + .line_info_top = fun_data_trezor_loop_chan_put + 14, + .opcodes = fun_data_trezor_loop_chan_put + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_chan +// frozen bytecode for file trezor/loop.py, scope trezor_loop_chan_take +static const byte fun_data_trezor_loop_chan_take[54] = { + 0xbd,0x40,0x12, // prelude + 0x38,0x59, // names: take, self + 0x90,0x8c,0x28,0x22,0x46,0x29,0x2b, // code info + 0x12,0x0c, // LOAD_GLOBAL 'chan' + 0x14,0x26, // LOAD_METHOD 'Take' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0x48,0x05, // SETUP_EXCEPT 5 + 0xb1, // LOAD_FAST 1 + 0x67, // YIELD_VALUE + 0x63, // RETURN_VALUE + 0x4a,0x19, // POP_EXCEPT_JUMP 25 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x36, // LOAD_ATTR 'task' + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'takers' + 0xdd, // BINARY_OP 6 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'takers' + 0x14,0x37, // LOAD_METHOD 'remove' + 0xb1, // LOAD_FAST 1 + 0x13,0x36, // LOAD_ATTR 'task' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x64, // RAISE_LAST + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_chan_take = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_loop_chan_take, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 54, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 56, + .line_info = fun_data_trezor_loop_chan_take + 5, + .line_info_top = fun_data_trezor_loop_chan_take + 12, + .opcodes = fun_data_trezor_loop_chan_take + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_chan +// frozen bytecode for file trezor/loop.py, scope trezor_loop_chan_publish +static const byte fun_data_trezor_loop_chan_publish[47] = { + 0x32,0x10, // prelude + 0x39,0x59,0x21, // names: publish, self, value + 0x90,0x95,0x25,0x29,0x49, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'takers' + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'takers' + 0x14,0x17, // LOAD_METHOD 'pop' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0x12,0x0f, // LOAD_GLOBAL 'schedule' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x4c, // JUMP 12 + 0xb0, // LOAD_FAST 0 + 0x13,0x33, // LOAD_ATTR 'putters' + 0x14,0x31, // LOAD_METHOD 'append' + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_chan_publish = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop_chan_publish, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 57, + .line_info = fun_data_trezor_loop_chan_publish + 5, + .line_info_top = fun_data_trezor_loop_chan_publish + 10, + .opcodes = fun_data_trezor_loop_chan_publish + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_chan +// frozen bytecode for file trezor/loop.py, scope trezor_loop_chan__schedule_put +static const byte fun_data_trezor_loop_chan__schedule_put[59] = { + 0x3b,0x18, // prelude + 0x3a,0x59,0x5e,0x21, // names: _schedule_put, self, putter, value + 0x90,0x9c,0x25,0x29,0x27,0x26,0x42,0x2c, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'takers' + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'takers' + 0x14,0x17, // LOAD_METHOD 'pop' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x12,0x0f, // LOAD_GLOBAL 'schedule' + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'schedule' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x33, // LOAD_ATTR 'putters' + 0x14,0x31, // LOAD_METHOD 'append' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_chan__schedule_put = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_loop_chan__schedule_put, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 58, + .line_info = fun_data_trezor_loop_chan__schedule_put + 6, + .line_info_top = fun_data_trezor_loop_chan__schedule_put + 14, + .opcodes = fun_data_trezor_loop_chan__schedule_put + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_chan +// frozen bytecode for file trezor/loop.py, scope trezor_loop_chan__schedule_take +static const byte fun_data_trezor_loop_chan__schedule_take[61] = { + 0x32,0x14, // prelude + 0x3b,0x59,0x5f, // names: _schedule_take, self, taker + 0x90,0xa6,0x25,0x2c,0x27,0x26,0x48, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x33, // LOAD_ATTR 'putters' + 0x44,0x61, // POP_JUMP_IF_FALSE 33 + 0xb0, // LOAD_FAST 0 + 0x13,0x33, // LOAD_ATTR 'putters' + 0x14,0x17, // LOAD_METHOD 'pop' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc2, // STORE_FAST 2 + 0xc3, // STORE_FAST 3 + 0x12,0x0f, // LOAD_GLOBAL 'schedule' + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x12,0x0f, // LOAD_GLOBAL 'schedule' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x49, // JUMP 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'takers' + 0x14,0x31, // LOAD_METHOD 'append' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_chan__schedule_take = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop_chan__schedule_take, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 61, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 59, + .line_info = fun_data_trezor_loop_chan__schedule_take + 5, + .line_info_top = fun_data_trezor_loop_chan__schedule_take + 12, + .opcodes = fun_data_trezor_loop_chan__schedule_take + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_loop_chan[] = { + &raw_code_trezor_loop_chan_Put, + &raw_code_trezor_loop_chan_Take, + &raw_code_trezor_loop_chan___init__, + &raw_code_trezor_loop_chan_put, + &raw_code_trezor_loop_chan_take, + &raw_code_trezor_loop_chan_publish, + &raw_code_trezor_loop_chan__schedule_put, + &raw_code_trezor_loop_chan__schedule_take, +}; + +static const mp_raw_code_t raw_code_trezor_loop_chan = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_loop_chan, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 77, + #endif + .children = (void *)&children_trezor_loop_chan, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 8, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_trezor_loop_chan + 3, + .line_info_top = fun_data_trezor_loop_chan + 21, + .opcodes = fun_data_trezor_loop_chan + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop__lt_module_gt_ +// frozen bytecode for file trezor/loop.py, scope trezor_loop_spawn +static const byte fun_data_trezor_loop_spawn[57] = { + 0x00,0x22, // prelude + 0x0d, // names: spawn + 0x98,0xb0,0x80,0x1d,0x84,0x0e,0x84,0x14,0x84,0x12,0x64,0x40,0x84,0x0b,0x84,0x0a, // code info + 0x11,0x4d, // LOAD_NAME '__name__' + 0x16,0x4e, // STORE_NAME '__module__' + 0x10,0x0d, // LOAD_CONST_STRING 'spawn' + 0x16,0x4f, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x28, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x3f, // STORE_NAME '_finalize' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x27, // STORE_NAME '__iter__' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x22, // STORE_NAME 'handle' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x18, // STORE_NAME 'close' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x40, // STORE_NAME 'set_finalizer' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x41, // STORE_NAME 'is_running' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_loop_spawn +// frozen bytecode for file trezor/loop.py, scope trezor_loop_spawn___init__ +static const byte fun_data_trezor_loop_spawn___init__[48] = { + 0x2a,0x18, // prelude + 0x28,0x59,0x36, // names: __init__, self, task + 0x90,0xce,0x24,0x24,0x24,0x24,0x64,0x60,0x20, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x36, // STORE_ATTR 'task' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x30, // STORE_ATTR 'callback' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x3c, // STORE_ATTR 'finalizer_callback' + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x2d, // STORE_ATTR 'finished' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x3d, // STORE_ATTR 'return_value' + 0x12,0x0f, // LOAD_GLOBAL 'schedule' + 0xb1, // LOAD_FAST 1 + 0x10,0x3e, // LOAD_CONST_STRING 'finalizer' + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR '_finalize' + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_spawn___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop_spawn___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_trezor_loop_spawn___init__ + 5, + .line_info_top = fun_data_trezor_loop_spawn___init__ + 14, + .opcodes = fun_data_trezor_loop_spawn___init__ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_spawn +// frozen bytecode for file trezor/loop.py, scope trezor_loop_spawn__finalize +static const byte fun_data_trezor_loop_spawn__finalize[82] = { + 0x2b,0x20, // prelude + 0x3f,0x59,0x36,0x21, // names: _finalize, self, task, value + 0x90,0xdd,0x40,0x60,0x24,0x49,0x47,0x44,0x28,0x2b,0x24,0x28, // code info + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x2d, // STORE_ATTR 'finished' + 0x12,0x56, // LOAD_GLOBAL 'isinstance' + 0xb2, // LOAD_FAST 2 + 0x12,0x55, // LOAD_GLOBAL 'GeneratorExit' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x4a, // LOAD_GLOBAL 'TASK_CLOSED' + 0xb0, // LOAD_FAST 0 + 0x18,0x3d, // STORE_ATTR 'return_value' + 0x42,0x44, // JUMP 4 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x3d, // STORE_ATTR 'return_value' + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'callback' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x12,0x0f, // LOAD_GLOBAL 'schedule' + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'callback' + 0xb0, // LOAD_FAST 0 + 0x13,0x3d, // LOAD_ATTR 'return_value' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x30, // STORE_ATTR 'callback' + 0xb0, // LOAD_FAST 0 + 0x13,0x3c, // LOAD_ATTR 'finalizer_callback' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb0, // LOAD_FAST 0 + 0x14,0x3c, // LOAD_METHOD 'finalizer_callback' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_spawn__finalize = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_loop_spawn__finalize, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 82, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 63, + .line_info = fun_data_trezor_loop_spawn__finalize + 6, + .line_info_top = fun_data_trezor_loop_spawn__finalize + 18, + .opcodes = fun_data_trezor_loop_spawn__finalize + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_spawn +// frozen bytecode for file trezor/loop.py, scope trezor_loop_spawn___iter__ +static const byte fun_data_trezor_loop_spawn___iter__[75] = { + 0xb5,0x40,0x1c, // prelude + 0x27,0x59, // names: __iter__, self + 0x90,0xf0,0x45,0x2b,0x46,0x44,0x22,0x6c,0x20,0x24,0x20,0x28, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR 'finished' + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x12,0x56, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x13,0x3d, // LOAD_ATTR 'return_value' + 0x12,0x57, // LOAD_GLOBAL 'BaseException' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x3d, // LOAD_ATTR 'return_value' + 0x65, // RAISE_OBJ + 0x42,0x44, // JUMP 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x3d, // LOAD_ATTR 'return_value' + 0x63, // RETURN_VALUE + 0x48,0x05, // SETUP_EXCEPT 5 + 0xb0, // LOAD_FAST 0 + 0x67, // YIELD_VALUE + 0x63, // RETURN_VALUE + 0x4a,0x17, // POP_EXCEPT_JUMP 23 + 0x57, // DUP_TOP + 0x12,0x57, // LOAD_GLOBAL 'BaseException' + 0xdf, // BINARY_OP 8 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x30, // STORE_ATTR 'callback' + 0x12,0x18, // LOAD_GLOBAL 'close' + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'task' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x64, // RAISE_LAST + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_spawn___iter__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_loop_spawn___iter__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 75, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_trezor_loop_spawn___iter__ + 5, + .line_info_top = fun_data_trezor_loop_spawn___iter__ + 17, + .opcodes = fun_data_trezor_loop_spawn___iter__ + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_spawn +// frozen bytecode for file trezor/loop.py, scope trezor_loop_spawn_handle +static const byte fun_data_trezor_loop_spawn_handle[14] = { + 0x1a,0x0c, // prelude + 0x22,0x59,0x60, // names: handle, self, caller + 0xa0,0x03,0x20, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x30, // STORE_ATTR 'callback' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_spawn_handle = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop_spawn_handle, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_trezor_loop_spawn_handle + 5, + .line_info_top = fun_data_trezor_loop_spawn_handle + 8, + .opcodes = fun_data_trezor_loop_spawn_handle + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_spawn +// frozen bytecode for file trezor/loop.py, scope trezor_loop_spawn_close +static const byte fun_data_trezor_loop_spawn_close[25] = { + 0x11,0x10, // prelude + 0x18,0x59, // names: close, self + 0xa0,0x07,0x60,0x40,0x25,0x40, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR 'finished' + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0x12,0x18, // LOAD_GLOBAL 'close' + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'task' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_spawn_close = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_loop_spawn_close, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 24, + .line_info = fun_data_trezor_loop_spawn_close + 4, + .line_info_top = fun_data_trezor_loop_spawn_close + 10, + .opcodes = fun_data_trezor_loop_spawn_close + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_spawn +// frozen bytecode for file trezor/loop.py, scope trezor_loop_spawn_set_finalizer +static const byte fun_data_trezor_loop_spawn_set_finalizer[27] = { + 0x1a,0x12, // prelude + 0x40,0x59,0x3c, // names: set_finalizer, self, finalizer_callback + 0xa0,0x12,0x60,0x40,0x25,0x25, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR 'finished' + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x3c, // STORE_ATTR 'finalizer_callback' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_spawn_set_finalizer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop_spawn_set_finalizer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_trezor_loop_spawn_set_finalizer + 5, + .line_info_top = fun_data_trezor_loop_spawn_set_finalizer + 11, + .opcodes = fun_data_trezor_loop_spawn_set_finalizer + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_spawn +// frozen bytecode for file trezor/loop.py, scope trezor_loop_spawn_is_running +static const byte fun_data_trezor_loop_spawn_is_running[15] = { + 0x11,0x0c, // prelude + 0x41,0x59, // names: is_running, self + 0xa0,0x1c,0x60,0x40, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'task' + 0x12,0x48, // LOAD_GLOBAL 'this_task' + 0xde, // BINARY_OP 7 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_spawn_is_running = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_loop_spawn_is_running, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 65, + .line_info = fun_data_trezor_loop_spawn_is_running + 4, + .line_info_top = fun_data_trezor_loop_spawn_is_running + 8, + .opcodes = fun_data_trezor_loop_spawn_is_running + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_loop_spawn[] = { + &raw_code_trezor_loop_spawn___init__, + &raw_code_trezor_loop_spawn__finalize, + &raw_code_trezor_loop_spawn___iter__, + &raw_code_trezor_loop_spawn_handle, + &raw_code_trezor_loop_spawn_close, + &raw_code_trezor_loop_spawn_set_finalizer, + &raw_code_trezor_loop_spawn_is_running, +}; + +static const mp_raw_code_t raw_code_trezor_loop_spawn = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_loop_spawn, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = (void *)&children_trezor_loop_spawn, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 7, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_trezor_loop_spawn + 3, + .line_info_top = fun_data_trezor_loop_spawn + 19, + .opcodes = fun_data_trezor_loop_spawn + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop__lt_module_gt_ +// frozen bytecode for file trezor/loop.py, scope trezor_loop_Timer +static const byte fun_data_trezor_loop_Timer[31] = { + 0x00,0x0e, // prelude + 0x0e, // names: Timer + 0xa8,0x25,0x64,0x60,0x64,0x60, // code info + 0x11,0x4d, // LOAD_NAME '__name__' + 0x16,0x4e, // STORE_NAME '__module__' + 0x10,0x0e, // LOAD_CONST_STRING 'Timer' + 0x16,0x4f, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x28, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x22, // STORE_NAME 'handle' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0f, // STORE_NAME 'schedule' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_loop_Timer +// frozen bytecode for file trezor/loop.py, scope trezor_loop_Timer___init__ +static const byte fun_data_trezor_loop_Timer___init__[18] = { + 0x11,0x0a, // prelude + 0x28,0x59, // names: __init__, self + 0xa0,0x26,0x64, // code info + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x36, // STORE_ATTR 'task' + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x42, // STORE_ATTR 'before_task' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_Timer___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_loop_Timer___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_trezor_loop_Timer___init__ + 4, + .line_info_top = fun_data_trezor_loop_Timer___init__ + 7, + .opcodes = fun_data_trezor_loop_Timer___init__ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_Timer +// frozen bytecode for file trezor/loop.py, scope trezor_loop_Timer_handle +static const byte fun_data_trezor_loop_Timer_handle[46] = { + 0x5a,0x10, // prelude + 0x22,0x59,0x36, // names: handle, self, task + 0xa0,0x2c,0x24,0x2a,0x2c, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x36, // STORE_ATTR 'task' + 0xb0, // LOAD_FAST 0 + 0x13,0x42, // LOAD_ATTR 'before_task' + 0x5f, // GET_ITER_STACK + 0x4b,0x10, // FOR_ITER 16 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc2, // STORE_FAST 2 + 0xc3, // STORE_FAST 3 + 0x12,0x0f, // LOAD_GLOBAL 'schedule' + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'task' + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x2e, // JUMP -18 + 0xb0, // LOAD_FAST 0 + 0x13,0x42, // LOAD_ATTR 'before_task' + 0x14,0x1d, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_Timer_handle = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_loop_Timer_handle, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_trezor_loop_Timer_handle + 5, + .line_info_top = fun_data_trezor_loop_Timer_handle + 10, + .opcodes = fun_data_trezor_loop_Timer_handle + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_loop_Timer +// frozen bytecode for file trezor/loop.py, scope trezor_loop_Timer_schedule +static const byte fun_data_trezor_loop_Timer_schedule[59] = { + 0x33,0x12, // prelude + 0x0f,0x59,0x50,0x21, // names: schedule, self, deadline, value + 0xa0,0x32,0x2e,0x28,0x4c, // code info + 0x12,0x02, // LOAD_GLOBAL 'utime' + 0x14,0x2a, // LOAD_METHOD 'ticks_add' + 0x12,0x02, // LOAD_GLOBAL 'utime' + 0x14,0x11, // LOAD_METHOD 'ticks_ms' + 0x36,0x00, // CALL_METHOD 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'task' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x0f, // LOAD_GLOBAL 'schedule' + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'task' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x4c, // JUMP 12 + 0xb0, // LOAD_FAST 0 + 0x13,0x42, // LOAD_ATTR 'before_task' + 0x14,0x31, // LOAD_METHOD 'append' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_loop_Timer_schedule = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_loop_Timer_schedule, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_trezor_loop_Timer_schedule + 6, + .line_info_top = fun_data_trezor_loop_Timer_schedule + 11, + .opcodes = fun_data_trezor_loop_Timer_schedule + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_loop_Timer[] = { + &raw_code_trezor_loop_Timer___init__, + &raw_code_trezor_loop_Timer_handle, + &raw_code_trezor_loop_Timer_schedule, +}; + +static const mp_raw_code_t raw_code_trezor_loop_Timer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_loop_Timer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = (void *)&children_trezor_loop_Timer, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_trezor_loop_Timer + 3, + .line_info_top = fun_data_trezor_loop_Timer + 9, + .opcodes = fun_data_trezor_loop_Timer + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_loop__lt_module_gt_[] = { + &raw_code_trezor_loop_TaskClosed, + &raw_code_trezor_loop_schedule, + &raw_code_trezor_loop_pause, + &raw_code_trezor_loop_finalize, + &raw_code_trezor_loop_close, + &raw_code_trezor_loop_run, + &raw_code_trezor_loop_clear, + &raw_code_trezor_loop__step, + &raw_code_trezor_loop_Syscall, + &raw_code_trezor_loop_sleep, + &raw_code_trezor_loop_wait, + &raw_code_trezor_loop__lt_lambda_gt_, + &raw_code_trezor_loop_race, + &raw_code_trezor_loop_chan, + &raw_code_trezor_loop_spawn, + &raw_code_trezor_loop_Timer, +}; + +static const mp_raw_code_t raw_code_trezor_loop__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_loop__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 237, + #endif + .children = (void *)&children_trezor_loop__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 16, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_loop__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_loop__lt_module_gt_ + 45, + .opcodes = fun_data_trezor_loop__lt_module_gt_ + 45, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_loop[97] = { + MP_QSTR_trezor_slash_loop_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utime, + MP_QSTR_utimeq, + MP_QSTR_io, + MP_QSTR_log, + MP_QSTR_trezor, + MP_QSTR_TaskClosed, + MP_QSTR_Syscall, + MP_QSTR_sleep, + MP_QSTR_wait, + MP_QSTR_race, + MP_QSTR_chan, + MP_QSTR_spawn, + MP_QSTR_Timer, + MP_QSTR_schedule, + MP_QSTR_discard, + MP_QSTR_ticks_ms, + MP_QSTR_push, + MP_QSTR_pause, + MP_QSTR_get, + MP_QSTR_add, + MP_QSTR_finalize, + MP_QSTR_pop, + MP_QSTR_close, + MP_QSTR_run, + MP_QSTR_ticks_diff, + MP_QSTR_peektime, + MP_QSTR_poll, + MP_QSTR_clear, + MP_QSTR__step, + MP_QSTR_throw, + MP_QSTR_send, + MP_QSTR_value, + MP_QSTR_handle, + MP_QSTR__lt_lambda_gt_, + MP_QSTR_exit_others, + MP_QSTR_Put, + MP_QSTR_Take, + MP_QSTR___iter__, + MP_QSTR___init__, + MP_QSTR_delay_ms, + MP_QSTR_ticks_add, + MP_QSTR_msg_iface, + MP_QSTR_children, + MP_QSTR_finished, + MP_QSTR_scheduled, + MP_QSTR__finish, + MP_QSTR_callback, + MP_QSTR_append, + MP_QSTR_exit, + MP_QSTR_putters, + MP_QSTR_takers, + MP_QSTR_put, + MP_QSTR_task, + MP_QSTR_remove, + MP_QSTR_take, + MP_QSTR_publish, + MP_QSTR__schedule_put, + MP_QSTR__schedule_take, + MP_QSTR_finalizer_callback, + MP_QSTR_return_value, + MP_QSTR_finalizer, + MP_QSTR__finalize, + MP_QSTR_set_finalizer, + MP_QSTR_is_running, + MP_QSTR_before_task, + MP_QSTR_ch, + MP_QSTR_after_step_hook, + MP_QSTR__queue, + MP_QSTR__paused, + MP_QSTR__finalizers, + MP_QSTR_this_task, + MP_QSTR_Exception, + MP_QSTR_TASK_CLOSED, + MP_QSTR_type, + MP_QSTR__type_gen, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_deadline, + MP_QSTR_reschedule, + MP_QSTR_id, + MP_QSTR_iface, + MP_QSTR_set, + MP_QSTR_GeneratorExit, + MP_QSTR_isinstance, + MP_QSTR_BaseException, + MP_QSTR_StopIteration, + MP_QSTR_self, + MP_QSTR_except_for, + MP_QSTR_result, + MP_QSTR_enumerate, + MP_QSTR_RuntimeError, + MP_QSTR_putter, + MP_QSTR_taker, + MP_QSTR_caller, +}; + +static const mp_frozen_module_t frozen_module_trezor_loop = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_loop, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_loop__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_messages +// - original source file: build/firmware/src/trezor/messages.mpy +// - frozen file name: trezor/messages.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/messages.py, scope trezor_messages__lt_module_gt_ +static const byte fun_data_trezor_messages__lt_module_gt_[27] = { + 0x08,0x0e, // prelude + 0x01, // names: + 0x60,0x20,0x6c,0x40,0x84,0x07, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'protobuf' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'protobuf' + 0x16,0x02, // STORE_NAME 'protobuf' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x04, // STORE_NAME '__getattr__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_messages__lt_module_gt_ +// frozen bytecode for file trezor/messages.py, scope trezor_messages___getattr__ +static const byte fun_data_trezor_messages___getattr__[38] = { + 0x35,0x0c, // prelude + 0x04,0x06, // names: __getattr__, name + 0x80,0x0a,0x22,0x51, // code info + 0x48,0x0a, // SETUP_EXCEPT 10 + 0x12,0x02, // LOAD_GLOBAL 'protobuf' + 0x14,0x05, // LOAD_METHOD 'type_for_name' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0x4a,0x10, // POP_EXCEPT_JUMP 16 + 0x57, // DUP_TOP + 0x12,0x07, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'AttributeError' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_messages___getattr__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_messages___getattr__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_trezor_messages___getattr__ + 4, + .line_info_top = fun_data_trezor_messages___getattr__ + 8, + .opcodes = fun_data_trezor_messages___getattr__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_messages__lt_module_gt_[] = { + &raw_code_trezor_messages___getattr__, +}; + +static const mp_raw_code_t raw_code_trezor_messages__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_messages__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = (void *)&children_trezor_messages__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_messages__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_messages__lt_module_gt_ + 9, + .opcodes = fun_data_trezor_messages__lt_module_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_messages[9] = { + MP_QSTR_trezor_slash_messages_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_protobuf, + MP_QSTR_trezor, + MP_QSTR___getattr__, + MP_QSTR_type_for_name, + MP_QSTR_name, + MP_QSTR_ValueError, + MP_QSTR_AttributeError, +}; + +static const mp_frozen_module_t frozen_module_trezor_messages = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_messages, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_messages__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_pin +// - original source file: build/firmware/src/trezor/pin.mpy +// - frozen file name: trezor/pin.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/pin.py, scope trezor_pin__lt_module_gt_ +static const byte fun_data_trezor_pin__lt_module_gt_[55] = { + 0x00,0x20, // prelude + 0x01, // names: + 0x40,0x60,0x40,0x23,0x23,0x23,0x23,0x43,0x64,0x64,0x40,0x64,0x40,0x84,0x0d, // code info + 0x51, // LOAD_CONST_NONE + 0x17,0x0d, // STORE_GLOBAL '_previous_seconds' + 0x51, // LOAD_CONST_NONE + 0x17,0x0e, // STORE_GLOBAL '_previous_remaining' + 0x51, // LOAD_CONST_NONE + 0x17,0x0f, // STORE_GLOBAL '_progress_layout' + 0x50, // LOAD_CONST_FALSE + 0x17,0x10, // STORE_GLOBAL '_started_with_empty_loader' + 0x51, // LOAD_CONST_NONE + 0x16,0x11, // STORE_NAME 'keepalive_callback' + 0x2a,0x00, // BUILD_TUPLE 0 + 0x17,0x12, // STORE_GLOBAL '_ignore_loader_messages' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'ignore_nonpin_loader_messages' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x03, // STORE_NAME 'allow_all_loader_messages' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x04, // STORE_NAME 'render_empty_loader' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x08, // STORE_NAME 'show_pin_timeout' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_pin__lt_module_gt_ +// frozen bytecode for file trezor/pin.py, scope trezor_pin_ignore_nonpin_loader_messages +static const byte fun_data_trezor_pin_ignore_nonpin_loader_messages[12] = { + 0x00,0x08, // prelude + 0x02, // names: ignore_nonpin_loader_messages + 0x80,0x11,0x20, // code info + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x17,0x12, // STORE_GLOBAL '_ignore_loader_messages' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_pin_ignore_nonpin_loader_messages = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_pin_ignore_nonpin_loader_messages, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_trezor_pin_ignore_nonpin_loader_messages + 3, + .line_info_top = fun_data_trezor_pin_ignore_nonpin_loader_messages + 6, + .opcodes = fun_data_trezor_pin_ignore_nonpin_loader_messages + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_pin__lt_module_gt_ +// frozen bytecode for file trezor/pin.py, scope trezor_pin_allow_all_loader_messages +static const byte fun_data_trezor_pin_allow_all_loader_messages[12] = { + 0x00,0x08, // prelude + 0x03, // names: allow_all_loader_messages + 0x80,0x16,0x20, // code info + 0x2a,0x00, // BUILD_TUPLE 0 + 0x17,0x12, // STORE_GLOBAL '_ignore_loader_messages' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_pin_allow_all_loader_messages = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_pin_allow_all_loader_messages, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 3, + .line_info = fun_data_trezor_pin_allow_all_loader_messages + 3, + .line_info_top = fun_data_trezor_pin_allow_all_loader_messages + 6, + .opcodes = fun_data_trezor_pin_allow_all_loader_messages + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_pin__lt_module_gt_ +// frozen bytecode for file trezor/pin.py, scope trezor_pin_render_empty_loader +static const byte fun_data_trezor_pin_render_empty_loader[45] = { + 0x32,0x16, // prelude + 0x04,0x13,0x0b, // names: render_empty_loader, message, description + 0x80,0x1b,0x20,0x4b,0x20,0x40,0x27,0x49, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'pin_progress' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.ui.layouts.progress' + 0x1c,0x05, // IMPORT_FROM 'pin_progress' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x17,0x0f, // STORE_GLOBAL '_progress_layout' + 0x12,0x0f, // LOAD_GLOBAL '_progress_layout' + 0x14,0x07, // LOAD_METHOD 'report' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0x17,0x10, // STORE_GLOBAL '_started_with_empty_loader' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_pin_render_empty_loader = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_pin_render_empty_loader, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_trezor_pin_render_empty_loader + 5, + .line_info_top = fun_data_trezor_pin_render_empty_loader + 13, + .opcodes = fun_data_trezor_pin_render_empty_loader + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_pin__lt_module_gt_ +// frozen bytecode for file trezor/pin.py, scope trezor_pin_show_pin_timeout +static const byte fun_data_trezor_pin_show_pin_timeout[177] = { + 0x43,0x42, // prelude + 0x08,0x14,0x15,0x13, // names: show_pin_timeout, seconds, progress, message + 0x80,0x28,0x6b,0x26,0x42,0x20,0x20,0x20,0x40,0x28,0x45,0x2b,0x43,0x26,0x25,0x25,0x25,0x45,0x28,0x23,0x45,0x63,0x2f,0x6e,0x40,0x63,0x69,0x25,0x43, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'pin_progress' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.ui.layouts.progress' + 0x1c,0x05, // IMPORT_FROM 'pin_progress' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x12,0x12, // LOAD_GLOBAL '_ignore_loader_messages' + 0xdd, // BINARY_OP 6 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0x12,0x16, // LOAD_GLOBAL 'callable' + 0x12,0x11, // LOAD_GLOBAL 'keepalive_callback' + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x11, // LOAD_GLOBAL 'keepalive_callback' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0x12,0x0f, // LOAD_GLOBAL '_progress_layout' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x51, // LOAD_CONST_NONE + 0x17,0x0d, // STORE_GLOBAL '_previous_seconds' + 0xb0, // LOAD_FAST 0 + 0x12,0x0d, // LOAD_GLOBAL '_previous_seconds' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x64, // POP_JUMP_IF_FALSE 36 + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x09, // LOAD_CONST_STRING 'Done' + 0xc4, // STORE_FAST 4 + 0x42,0x52, // JUMP 18 + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xc4, // STORE_FAST 4 + 0x42,0x48, // JUMP 8 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x14,0x0a, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x17,0x0e, // STORE_GLOBAL '_previous_remaining' + 0xb0, // LOAD_FAST 0 + 0x17,0x0d, // STORE_GLOBAL '_previous_seconds' + 0x42,0x43, // JUMP 3 + 0x12,0x0e, // LOAD_GLOBAL '_previous_remaining' + 0xc4, // STORE_FAST 4 + 0x12,0x0f, // LOAD_GLOBAL '_progress_layout' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x10, // LOAD_GLOBAL '_started_with_empty_loader' + 0x43,0x4e, // POP_JUMP_IF_TRUE 14 + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x10,0x0b, // LOAD_CONST_STRING 'description' + 0xb4, // LOAD_FAST 4 + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x0c, // LOAD_CONST_STRING '' + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0x17,0x0f, // STORE_GLOBAL '_progress_layout' + 0x50, // LOAD_CONST_FALSE + 0x17,0x10, // STORE_GLOBAL '_started_with_empty_loader' + 0x12,0x0f, // LOAD_GLOBAL '_progress_layout' + 0x14,0x07, // LOAD_METHOD 'report' + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x51, // LOAD_CONST_NONE + 0x17,0x0f, // STORE_GLOBAL '_progress_layout' + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_pin_show_pin_timeout = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_pin_show_pin_timeout, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 177, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_trezor_pin_show_pin_timeout + 6, + .line_info_top = fun_data_trezor_pin_show_pin_timeout + 35, + .opcodes = fun_data_trezor_pin_show_pin_timeout + 35, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_pin__lt_module_gt_[] = { + &raw_code_trezor_pin_ignore_nonpin_loader_messages, + &raw_code_trezor_pin_allow_all_loader_messages, + &raw_code_trezor_pin_render_empty_loader, + &raw_code_trezor_pin_show_pin_timeout, +}; + +static const mp_raw_code_t raw_code_trezor_pin__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_pin__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = (void *)&children_trezor_pin__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_pin__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_pin__lt_module_gt_ + 18, + .opcodes = fun_data_trezor_pin__lt_module_gt_ + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_pin[23] = { + MP_QSTR_trezor_slash_pin_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ignore_nonpin_loader_messages, + MP_QSTR_allow_all_loader_messages, + MP_QSTR_render_empty_loader, + MP_QSTR_pin_progress, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_progress, + MP_QSTR_report, + MP_QSTR_show_pin_timeout, + MP_QSTR_Done, + MP_QSTR_format, + MP_QSTR_description, + MP_QSTR_, + MP_QSTR__previous_seconds, + MP_QSTR__previous_remaining, + MP_QSTR__progress_layout, + MP_QSTR__started_with_empty_loader, + MP_QSTR_keepalive_callback, + MP_QSTR__ignore_loader_messages, + MP_QSTR_message, + MP_QSTR_seconds, + MP_QSTR_progress, + MP_QSTR_callable, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_trezor_pin_0 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_Processing), + MP_ROM_QSTR(MP_QSTR_Starting_space_up), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_pin[3] = { + MP_ROM_PTR(&const_obj_trezor_pin_0), + MP_ROM_QSTR(MP_QSTR_1_space_second_space_left), + MP_ROM_QSTR(MP_QSTR__brace_open__brace_close__space_seconds_space_left), +}; + +static const mp_frozen_module_t frozen_module_trezor_pin = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_pin, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_pin, + }, + .rc = &raw_code_trezor_pin__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_protobuf +// - original source file: build/firmware/src/trezor/protobuf.mpy +// - frozen file name: trezor/protobuf.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/protobuf.py, scope trezor_protobuf__lt_module_gt_ +static const byte fun_data_trezor_protobuf__lt_module_gt_[64] = { + 0x08,0x18, // prelude + 0x01, // names: + 0x40,0x46,0x26,0x26,0x26,0x26,0x46,0x60,0x20,0x88,0x09, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'trezorproto' + 0x16,0x02, // STORE_NAME 'trezorproto' + 0x11,0x02, // LOAD_NAME 'trezorproto' + 0x13,0x03, // LOAD_ATTR 'decode' + 0x16,0x03, // STORE_NAME 'decode' + 0x11,0x02, // LOAD_NAME 'trezorproto' + 0x13,0x04, // LOAD_ATTR 'encode' + 0x16,0x04, // STORE_NAME 'encode' + 0x11,0x02, // LOAD_NAME 'trezorproto' + 0x13,0x05, // LOAD_ATTR 'encoded_length' + 0x16,0x05, // STORE_NAME 'encoded_length' + 0x11,0x02, // LOAD_NAME 'trezorproto' + 0x13,0x06, // LOAD_ATTR 'type_for_name' + 0x16,0x06, // STORE_NAME 'type_for_name' + 0x11,0x02, // LOAD_NAME 'trezorproto' + 0x13,0x07, // LOAD_ATTR 'type_for_wire' + 0x16,0x07, // STORE_NAME 'type_for_wire' + 0x52, // LOAD_CONST_TRUE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x08, // STORE_NAME 'load_message_buffer' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x09, // STORE_NAME 'dump_message_buffer' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_protobuf__lt_module_gt_ +// frozen bytecode for file trezor/protobuf.py, scope trezor_protobuf_load_message_buffer +static const byte fun_data_trezor_protobuf_load_message_buffer[24] = { + 0xbb,0x01,0x0e, // prelude + 0x08,0x0a,0x0b,0x0c, // names: load_message_buffer, buffer, msg_wire_type, experimental_enabled + 0x80,0x13,0x26, // code info + 0x12,0x07, // LOAD_GLOBAL 'type_for_wire' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x12,0x03, // LOAD_GLOBAL 'decode' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_protobuf_load_message_buffer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_protobuf_load_message_buffer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 8, + .line_info = fun_data_trezor_protobuf_load_message_buffer + 7, + .line_info_top = fun_data_trezor_protobuf_load_message_buffer + 10, + .opcodes = fun_data_trezor_protobuf_load_message_buffer + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_protobuf__lt_module_gt_ +// frozen bytecode for file trezor/protobuf.py, scope trezor_protobuf_dump_message_buffer +static const byte fun_data_trezor_protobuf_dump_message_buffer[27] = { + 0x21,0x0c, // prelude + 0x09,0x0d, // names: dump_message_buffer, msg + 0x80,0x18,0x2a,0x27, // code info + 0x12,0x0e, // LOAD_GLOBAL 'bytearray' + 0x12,0x05, // LOAD_GLOBAL 'encoded_length' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0x12,0x04, // LOAD_GLOBAL 'encode' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_protobuf_dump_message_buffer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_protobuf_dump_message_buffer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_trezor_protobuf_dump_message_buffer + 4, + .line_info_top = fun_data_trezor_protobuf_dump_message_buffer + 8, + .opcodes = fun_data_trezor_protobuf_dump_message_buffer + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_protobuf__lt_module_gt_[] = { + &raw_code_trezor_protobuf_load_message_buffer, + &raw_code_trezor_protobuf_dump_message_buffer, +}; + +static const mp_raw_code_t raw_code_trezor_protobuf__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_protobuf__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 64, + #endif + .children = (void *)&children_trezor_protobuf__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_protobuf__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_protobuf__lt_module_gt_ + 14, + .opcodes = fun_data_trezor_protobuf__lt_module_gt_ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_protobuf[15] = { + MP_QSTR_trezor_slash_protobuf_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_trezorproto, + MP_QSTR_decode, + MP_QSTR_encode, + MP_QSTR_encoded_length, + MP_QSTR_type_for_name, + MP_QSTR_type_for_wire, + MP_QSTR_load_message_buffer, + MP_QSTR_dump_message_buffer, + MP_QSTR_buffer, + MP_QSTR_msg_wire_type, + MP_QSTR_experimental_enabled, + MP_QSTR_msg, + MP_QSTR_bytearray, +}; + +static const mp_frozen_module_t frozen_module_trezor_protobuf = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_protobuf, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_protobuf__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_sdcard +// - original source file: build/firmware/src/trezor/sdcard.mpy +// - frozen file name: trezor/sdcard.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/sdcard.py, scope trezor_sdcard__lt_module_gt_ +static const byte fun_data_trezor_sdcard__lt_module_gt_[99] = { + 0x2c,0x20, // prelude + 0x01, // names: + 0x22,0x52,0x23,0x26,0x6f,0x43,0x64,0x67,0x60,0x80,0x09,0x89,0x2a,0x68,0x20, // code info + 0x48,0x23, // SETUP_EXCEPT 35 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'fatfs' + 0x10,0x03, // LOAD_CONST_STRING 'sdcard' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x04, // IMPORT_NAME 'trezorio' + 0x1c,0x02, // IMPORT_FROM 'fatfs' + 0x16,0x02, // STORE_NAME 'fatfs' + 0x1c,0x03, // IMPORT_FROM 'sdcard' + 0x16,0x03, // STORE_NAME 'sdcard' + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0x16,0x17, // STORE_NAME 'HAVE_SDCARD' + 0x11,0x03, // LOAD_NAME 'sdcard' + 0x13,0x05, // LOAD_ATTR 'is_present' + 0x16,0x05, // STORE_NAME 'is_present' + 0x11,0x03, // LOAD_NAME 'sdcard' + 0x13,0x06, // LOAD_ATTR 'capacity' + 0x16,0x06, // STORE_NAME 'capacity' + 0x4a,0x15, // POP_EXCEPT_JUMP 21 + 0x57, // DUP_TOP + 0x11,0x18, // LOAD_NAME 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x59, // POP_TOP + 0x50, // LOAD_CONST_FALSE + 0x16,0x17, // STORE_NAME 'HAVE_SDCARD' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x05, // STORE_NAME 'is_present' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x06, // STORE_NAME 'capacity' + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x54, // LOAD_BUILD_CLASS + 0x32,0x02, // MAKE_FUNCTION 2 + 0x10,0x07, // LOAD_CONST_STRING 'FilesystemWrapper' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x07, // STORE_NAME 'FilesystemWrapper' + 0x52, // LOAD_CONST_TRUE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x03, // MAKE_FUNCTION_DEFARGS 3 + 0x16,0x08, // STORE_NAME 'filesystem' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x0b, // STORE_NAME 'with_filesystem' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_sdcard__lt_module_gt_ +// frozen bytecode for file trezor/sdcard.py, scope trezor_sdcard_is_present +static const byte fun_data_trezor_sdcard_is_present[7] = { + 0x00,0x06, // prelude + 0x05, // names: is_present + 0x80,0x0b, // code info + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_sdcard_is_present = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_sdcard_is_present, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 7, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_trezor_sdcard_is_present + 3, + .line_info_top = fun_data_trezor_sdcard_is_present + 5, + .opcodes = fun_data_trezor_sdcard_is_present + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_sdcard__lt_module_gt_ +// frozen bytecode for file trezor/sdcard.py, scope trezor_sdcard_capacity +static const byte fun_data_trezor_sdcard_capacity[7] = { + 0x00,0x06, // prelude + 0x06, // names: capacity + 0x80,0x0e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_sdcard_capacity = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_sdcard_capacity, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 7, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_trezor_sdcard_capacity + 3, + .line_info_top = fun_data_trezor_sdcard_capacity + 5, + .opcodes = fun_data_trezor_sdcard_capacity + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_sdcard__lt_module_gt_ +// frozen bytecode for file trezor/sdcard.py, scope trezor_sdcard_FilesystemWrapper +static const byte fun_data_trezor_sdcard_FilesystemWrapper[55] = { + 0x10,0x18, // prelude + 0x07, // names: FilesystemWrapper + 0x88,0x1d,0x43,0x84,0x07,0x8c,0x08,0x64,0x40,0x84,0x0c, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x07, // LOAD_CONST_STRING 'FilesystemWrapper' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x16,0x0e, // STORE_NAME '_INSTANCE' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0c, // STORE_NAME '__init__' + 0x11,0x1c, // LOAD_NAME 'classmethod' + 0x52, // LOAD_CONST_TRUE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x09, // STORE_NAME 'get_instance' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0f, // STORE_NAME '_deinit_instance' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x12, // STORE_NAME '__enter__' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x15, // STORE_NAME '__exit__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_sdcard_FilesystemWrapper +// frozen bytecode for file trezor/sdcard.py, scope trezor_sdcard_FilesystemWrapper___init__ +static const byte fun_data_trezor_sdcard_FilesystemWrapper___init__[27] = { + 0x1a,0x10, // prelude + 0x0c,0x1e,0x0a, // names: __init__, self, mounted + 0x80,0x20,0x24,0x43,0x24, // code info + 0x12,0x17, // LOAD_GLOBAL 'HAVE_SDCARD' + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x12,0x1f, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x0a, // STORE_ATTR 'mounted' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x0d, // STORE_ATTR 'counter' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_sdcard_FilesystemWrapper___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_sdcard_FilesystemWrapper___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_trezor_sdcard_FilesystemWrapper___init__ + 5, + .line_info_top = fun_data_trezor_sdcard_FilesystemWrapper___init__ + 10, + .opcodes = fun_data_trezor_sdcard_FilesystemWrapper___init__ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_sdcard_FilesystemWrapper +// frozen bytecode for file trezor/sdcard.py, scope trezor_sdcard_FilesystemWrapper_get_instance +static const byte fun_data_trezor_sdcard_FilesystemWrapper_get_instance[46] = { + 0xa2,0x01,0x12, // prelude + 0x09,0x20,0x0a, // names: get_instance, cls, mounted + 0x80,0x28,0x27,0x2a,0x2a,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR '_INSTANCE' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb0, // LOAD_FAST 0 + 0x10,0x0a, // LOAD_CONST_STRING 'mounted' + 0xb1, // LOAD_FAST 1 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0xb0, // LOAD_FAST 0 + 0x18,0x0e, // STORE_ATTR '_INSTANCE' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR '_INSTANCE' + 0x13,0x0a, // LOAD_ATTR 'mounted' + 0xb1, // LOAD_FAST 1 + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x1f, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR '_INSTANCE' + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_sdcard_FilesystemWrapper_get_instance = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_sdcard_FilesystemWrapper_get_instance, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 9, + .line_info = fun_data_trezor_sdcard_FilesystemWrapper_get_instance + 6, + .line_info_top = fun_data_trezor_sdcard_FilesystemWrapper_get_instance + 12, + .opcodes = fun_data_trezor_sdcard_FilesystemWrapper_get_instance + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_sdcard_FilesystemWrapper +// frozen bytecode for file trezor/sdcard.py, scope trezor_sdcard_FilesystemWrapper__deinit_instance +static const byte fun_data_trezor_sdcard_FilesystemWrapper__deinit_instance[29] = { + 0x11,0x0c, // prelude + 0x0f,0x1e, // names: _deinit_instance, self + 0x80,0x2f,0x27,0x27, // code info + 0x12,0x02, // LOAD_GLOBAL 'fatfs' + 0x14,0x10, // LOAD_METHOD 'unmount' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'sdcard' + 0x14,0x11, // LOAD_METHOD 'power_off' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x12,0x07, // LOAD_GLOBAL 'FilesystemWrapper' + 0x18,0x0e, // STORE_ATTR '_INSTANCE' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_sdcard_FilesystemWrapper__deinit_instance = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_sdcard_FilesystemWrapper__deinit_instance, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_trezor_sdcard_FilesystemWrapper__deinit_instance + 4, + .line_info_top = fun_data_trezor_sdcard_FilesystemWrapper__deinit_instance + 8, + .opcodes = fun_data_trezor_sdcard_FilesystemWrapper__deinit_instance + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_sdcard_FilesystemWrapper +// frozen bytecode for file trezor/sdcard.py, scope trezor_sdcard_FilesystemWrapper___enter__ +static const byte fun_data_trezor_sdcard_FilesystemWrapper___enter__[76] = { + 0x35,0x18, // prelude + 0x12,0x1e, // names: __enter__, self + 0x80,0x34,0x22,0x27,0x24,0x27,0x25,0x27,0x52,0x26, // code info + 0x48,0x29, // SETUP_EXCEPT 41 + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'counter' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x0d, // STORE_ATTR 'counter' + 0x12,0x03, // LOAD_GLOBAL 'sdcard' + 0x14,0x13, // LOAD_METHOD 'power_on' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0a, // LOAD_ATTR 'mounted' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'fatfs' + 0x14,0x14, // LOAD_METHOD 'mount' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0d, // LOAD_ATTR 'counter' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x0d, // STORE_ATTR 'counter' + 0x4a,0x11, // POP_EXCEPT_JUMP 17 + 0x57, // DUP_TOP + 0x12,0x18, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x0f, // LOAD_METHOD '_deinit_instance' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x64, // RAISE_LAST + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_sdcard_FilesystemWrapper___enter__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_sdcard_FilesystemWrapper___enter__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 76, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_trezor_sdcard_FilesystemWrapper___enter__ + 4, + .line_info_top = fun_data_trezor_sdcard_FilesystemWrapper___enter__ + 14, + .opcodes = fun_data_trezor_sdcard_FilesystemWrapper___enter__ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_sdcard_FilesystemWrapper +// frozen bytecode for file trezor/sdcard.py, scope trezor_sdcard_FilesystemWrapper___exit__ +static const byte fun_data_trezor_sdcard_FilesystemWrapper___exit__[41] = { + 0xb0,0x04,0x14, // prelude + 0x15,0x1e,0x21,0x22,0x23, // names: __exit__, self, exc_type, exc_val, tb + 0x80,0x40,0x29,0x27,0x24, // code info + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0d, // LOAD_ATTR 'counter' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe6, // BINARY_OP 15 __isub__ + 0x5a, // ROT_TWO + 0x18,0x0d, // STORE_ATTR 'counter' + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'counter' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x0d, // STORE_ATTR 'counter' + 0xb0, // LOAD_FAST 0 + 0x14,0x0f, // LOAD_METHOD '_deinit_instance' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_sdcard_FilesystemWrapper___exit__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_trezor_sdcard_FilesystemWrapper___exit__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_trezor_sdcard_FilesystemWrapper___exit__ + 8, + .line_info_top = fun_data_trezor_sdcard_FilesystemWrapper___exit__ + 13, + .opcodes = fun_data_trezor_sdcard_FilesystemWrapper___exit__ + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_sdcard_FilesystemWrapper[] = { + &raw_code_trezor_sdcard_FilesystemWrapper___init__, + &raw_code_trezor_sdcard_FilesystemWrapper_get_instance, + &raw_code_trezor_sdcard_FilesystemWrapper__deinit_instance, + &raw_code_trezor_sdcard_FilesystemWrapper___enter__, + &raw_code_trezor_sdcard_FilesystemWrapper___exit__, +}; + +static const mp_raw_code_t raw_code_trezor_sdcard_FilesystemWrapper = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_sdcard_FilesystemWrapper, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = (void *)&children_trezor_sdcard_FilesystemWrapper, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_trezor_sdcard_FilesystemWrapper + 3, + .line_info_top = fun_data_trezor_sdcard_FilesystemWrapper + 14, + .opcodes = fun_data_trezor_sdcard_FilesystemWrapper + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_sdcard__lt_module_gt_ +// frozen bytecode for file trezor/sdcard.py, scope trezor_sdcard_filesystem +static const byte fun_data_trezor_sdcard_filesystem[18] = { + 0xa1,0x01,0x08, // prelude + 0x08,0x0a, // names: filesystem, mounted + 0x80,0x47, // code info + 0x12,0x07, // LOAD_GLOBAL 'FilesystemWrapper' + 0x14,0x09, // LOAD_METHOD 'get_instance' + 0x10,0x0a, // LOAD_CONST_STRING 'mounted' + 0xb0, // LOAD_FAST 0 + 0x36,0x82,0x00, // CALL_METHOD 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_sdcard_filesystem = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_sdcard_filesystem, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 8, + .line_info = fun_data_trezor_sdcard_filesystem + 5, + .line_info_top = fun_data_trezor_sdcard_filesystem + 7, + .opcodes = fun_data_trezor_sdcard_filesystem + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_sdcard__lt_module_gt_ +// frozen bytecode for file trezor/sdcard.py, scope trezor_sdcard_with_filesystem +static const byte fun_data_trezor_sdcard_with_filesystem[16] = { + 0x11,0x0d, // prelude + 0x0b,0x1d, // names: with_filesystem, func + 0x80,0x4b,0x65,0x20,0x00, // code info + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +// child of trezor_sdcard_with_filesystem +// frozen bytecode for file trezor/sdcard.py, scope trezor_sdcard_with_filesystem_wrapped_func +static const byte fun_data_trezor_sdcard_with_filesystem_wrapped_func[32] = { + 0xcd,0x80,0xc0,0x40,0x0a, // prelude + 0x16,0x24, // names: wrapped_func, * + 0x80,0x4c,0x27, // code info + 0x12,0x08, // LOAD_GLOBAL 'filesystem' + 0x34,0x00, // CALL_FUNCTION 0 + 0x47,0x0c, // SETUP_WITH 12 + 0x59, // POP_TOP + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x53, // LOAD_NULL + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x35,0x82,0x01, // CALL_FUNCTION_VAR_KW 257 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_sdcard_with_filesystem_wrapped_func = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x06, + .n_pos_args = 1, + .fun_data = fun_data_trezor_sdcard_with_filesystem_wrapped_func, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 1, + .scope_flags = 6, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_trezor_sdcard_with_filesystem_wrapped_func + 7, + .line_info_top = fun_data_trezor_sdcard_with_filesystem_wrapped_func + 10, + .opcodes = fun_data_trezor_sdcard_with_filesystem_wrapped_func + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_sdcard_with_filesystem[] = { + &raw_code_trezor_sdcard_with_filesystem_wrapped_func, +}; + +static const mp_raw_code_t raw_code_trezor_sdcard_with_filesystem = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_sdcard_with_filesystem, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = (void *)&children_trezor_sdcard_with_filesystem, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_trezor_sdcard_with_filesystem + 4, + .line_info_top = fun_data_trezor_sdcard_with_filesystem + 8, + .opcodes = fun_data_trezor_sdcard_with_filesystem + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_sdcard__lt_module_gt_[] = { + &raw_code_trezor_sdcard_is_present, + &raw_code_trezor_sdcard_capacity, + &raw_code_trezor_sdcard_FilesystemWrapper, + &raw_code_trezor_sdcard_filesystem, + &raw_code_trezor_sdcard_with_filesystem, +}; + +static const mp_raw_code_t raw_code_trezor_sdcard__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_sdcard__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 99, + #endif + .children = (void *)&children_trezor_sdcard__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_sdcard__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_sdcard__lt_module_gt_ + 18, + .opcodes = fun_data_trezor_sdcard__lt_module_gt_ + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_sdcard[37] = { + MP_QSTR_trezor_slash_sdcard_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_fatfs, + MP_QSTR_sdcard, + MP_QSTR_trezorio, + MP_QSTR_is_present, + MP_QSTR_capacity, + MP_QSTR_FilesystemWrapper, + MP_QSTR_filesystem, + MP_QSTR_get_instance, + MP_QSTR_mounted, + MP_QSTR_with_filesystem, + MP_QSTR___init__, + MP_QSTR_counter, + MP_QSTR__INSTANCE, + MP_QSTR__deinit_instance, + MP_QSTR_unmount, + MP_QSTR_power_off, + MP_QSTR___enter__, + MP_QSTR_power_on, + MP_QSTR_mount, + MP_QSTR___exit__, + MP_QSTR_wrapped_func, + MP_QSTR_HAVE_SDCARD, + MP_QSTR_Exception, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_classmethod, + MP_QSTR_func, + MP_QSTR_self, + MP_QSTR_RuntimeError, + MP_QSTR_cls, + MP_QSTR_exc_type, + MP_QSTR_exc_val, + MP_QSTR_tb, + MP_QSTR__star_, +}; + +static const mp_frozen_module_t frozen_module_trezor_sdcard = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_sdcard, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_sdcard__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_strings +// - original source file: build/firmware/src/trezor/strings.mpy +// - frozen file name: trezor/strings.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/strings.py, scope trezor_strings__lt_module_gt_ +static const byte fun_data_trezor_strings__lt_module_gt_[54] = { + 0x08,0x18, // prelude + 0x01, // names: + 0x26,0x6c,0x40,0x84,0x11,0x64,0x60,0x84,0x1d,0x84,0x13, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'utime' + 0x16,0x02, // STORE_NAME 'utime' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'micropython' + 0x1c,0x03, // IMPORT_FROM 'const' + 0x16,0x03, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x05, // STORE_NAME 'format_amount' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0f, // STORE_NAME 'format_ordinal' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x15, // STORE_NAME 'format_plural' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x1e, // STORE_NAME 'format_duration_ms' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x1f, // STORE_NAME 'format_timestamp' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_strings__lt_module_gt_ +// frozen bytecode for file trezor/strings.py, scope trezor_strings_format_amount +static const byte fun_data_trezor_strings_format_amount[83] = { + 0x6a,0x1c, // prelude + 0x05,0x22,0x23, // names: format_amount, amount, decimals + 0x80,0x07,0x25,0x23,0x45,0x23,0x24,0x24,0x64,0x4e,0x37, // code info + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb0, // LOAD_FAST 0 + 0xd1, // UNARY_OP 1 __neg__ + 0xc0, // STORE_FAST 0 + 0x10,0x06, // LOAD_CONST_STRING '-' + 0xc2, // STORE_FAST 2 + 0x42,0x43, // JUMP 3 + 0x10,0x07, // LOAD_CONST_STRING '' + 0xc2, // STORE_FAST 2 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xb1, // LOAD_FAST 1 + 0xf9, // BINARY_OP 34 __pow__ + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0xf6, // BINARY_OP 31 __floordiv__ + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0xf8, // BINARY_OP 33 __mod__ + 0xc5, // STORE_FAST 5 + 0x10,0x08, // LOAD_CONST_STRING '{:,}' + 0x14,0x09, // LOAD_METHOD 'format' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x0a, // LOAD_METHOD 'lstrip' + 0x10,0x0b, // LOAD_CONST_STRING ',' + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x14,0x09, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x36,0x04, // CALL_METHOD 4 + 0x14,0x0c, // LOAD_METHOD 'rstrip' + 0x10,0x0d, // LOAD_CONST_STRING '0' + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x0c, // LOAD_METHOD 'rstrip' + 0x10,0x0e, // LOAD_CONST_STRING '.' + 0x36,0x01, // CALL_METHOD 1 + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_strings_format_amount = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_strings_format_amount, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 83, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_trezor_strings_format_amount + 5, + .line_info_top = fun_data_trezor_strings_format_amount + 16, + .opcodes = fun_data_trezor_strings_format_amount + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_strings__lt_module_gt_ +// frozen bytecode for file trezor/strings.py, scope trezor_strings_format_ordinal +static const byte fun_data_trezor_strings_format_ordinal[59] = { + 0x31,0x0a, // prelude + 0x0f,0x24, // names: format_ordinal, number + 0x80,0x18,0x35, // code info + 0x12,0x25, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2c,0x03, // BUILD_MAP 3 + 0x10,0x10, // LOAD_CONST_STRING 'st' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x62, // STORE_MAP + 0x10,0x11, // LOAD_CONST_STRING 'nd' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x62, // STORE_MAP + 0x10,0x12, // LOAD_CONST_STRING 'rd' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x62, // STORE_MAP + 0x14,0x13, // LOAD_METHOD 'get' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xb0, // LOAD_FAST 0 + 0x22,0x80,0x64, // LOAD_CONST_SMALL_INT 100 + 0xf8, // BINARY_OP 33 __mod__ + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x04, // JUMP_IF_FALSE_OR_POP 4 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0xd7, // BINARY_OP 0 __lt__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x42,0x43, // JUMP 3 + 0xb0, // LOAD_FAST 0 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xf8, // BINARY_OP 33 __mod__ + 0x10,0x14, // LOAD_CONST_STRING 'th' + 0x36,0x02, // CALL_METHOD 2 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_strings_format_ordinal = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_strings_format_ordinal, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_trezor_strings_format_ordinal + 4, + .line_info_top = fun_data_trezor_strings_format_ordinal + 7, + .opcodes = fun_data_trezor_strings_format_ordinal + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_strings__lt_module_gt_ +// frozen bytecode for file trezor/strings.py, scope trezor_strings_format_plural +static const byte fun_data_trezor_strings_format_plural[110] = { + 0x43,0x21, // prelude + 0x15,0x26,0x1c,0x1d, // names: format_plural, string, count, plural + 0x80,0x1e,0x80,0x0c,0x4f,0x43,0x4a,0x31,0x2c,0x28,0x47,0x45,0x00, // code info + 0x12,0x27, // LOAD_GLOBAL 'all' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x12,0x28, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x71, // POP_JUMP_IF_FALSE 49 + 0xb2, // LOAD_FAST 2 + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x55, // LOAD_SUBSCR + 0x10,0x16, // LOAD_CONST_STRING 'y' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb2, // LOAD_FAST 2 + 0x7e, // LOAD_CONST_SMALL_INT -2 + 0x55, // LOAD_SUBSCR + 0x10,0x17, // LOAD_CONST_STRING 'aeiouy' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x10,0x18, // LOAD_CONST_STRING 'ies' + 0xf2, // BINARY_OP 27 __add__ + 0xc2, // STORE_FAST 2 + 0x42,0x54, // JUMP 20 + 0xb2, // LOAD_FAST 2 + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x55, // LOAD_SUBSCR + 0x10,0x19, // LOAD_CONST_STRING 'hsxz' + 0xdd, // BINARY_OP 6 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb2, // LOAD_FAST 2 + 0x10,0x1a, // LOAD_CONST_STRING 'es' + 0xf2, // BINARY_OP 27 __add__ + 0xc2, // STORE_FAST 2 + 0x42,0x45, // JUMP 5 + 0xb2, // LOAD_FAST 2 + 0x10,0x1b, // LOAD_CONST_STRING 's' + 0xf2, // BINARY_OP 27 __add__ + 0xc2, // STORE_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0x14,0x09, // LOAD_METHOD 'format' + 0x10,0x1c, // LOAD_CONST_STRING 'count' + 0xb1, // LOAD_FAST 1 + 0x10,0x1d, // LOAD_CONST_STRING 'plural' + 0xb2, // LOAD_FAST 2 + 0x36,0x84,0x00, // CALL_METHOD 512 + 0x63, // RETURN_VALUE +}; +// child of trezor_strings_format_plural +// frozen bytecode for file trezor/strings.py, scope trezor_strings_format_plural__lt_genexpr_gt_ +static const byte fun_data_trezor_strings_format_plural__lt_genexpr_gt_[25] = { + 0xc2,0x40,0x0a, // prelude + 0x21,0x2b,0x2b, // names: , *, * + 0x80,0x2a, // code info + 0x53, // LOAD_NULL + 0xb1, // LOAD_FAST 1 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x09, // FOR_ITER 9 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0xdd, // BINARY_OP 6 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x35, // JUMP -11 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_strings_format_plural__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_strings_format_plural__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_trezor_strings_format_plural__lt_genexpr_gt_ + 6, + .line_info_top = fun_data_trezor_strings_format_plural__lt_genexpr_gt_ + 8, + .opcodes = fun_data_trezor_strings_format_plural__lt_genexpr_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_strings_format_plural[] = { + &raw_code_trezor_strings_format_plural__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_strings_format_plural = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_strings_format_plural, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 110, + #endif + .children = (void *)&children_trezor_strings_format_plural, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_trezor_strings_format_plural + 6, + .line_info_top = fun_data_trezor_strings_format_plural + 18, + .opcodes = fun_data_trezor_strings_format_plural + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_strings__lt_module_gt_ +// frozen bytecode for file trezor/strings.py, scope trezor_strings_format_duration_ms +static const byte fun_data_trezor_strings_format_duration_ms[54] = { + 0x49,0x18, // prelude + 0x1e,0x29, // names: format_duration_ms, milliseconds + 0x80,0x3b,0x60,0x40,0x63,0x28,0x25,0x48,0x23,0x42, // code info + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x11, // FOR_ITER 17 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc2, // STORE_FAST 2 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0x42,0x2d, // JUMP -19 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xc2, // STORE_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xc3, // STORE_FAST 3 + 0x12,0x15, // LOAD_GLOBAL 'format_plural' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0xf6, // BINARY_OP 31 __floordiv__ + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_strings_format_duration_ms = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_strings_format_duration_ms, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 54, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_trezor_strings_format_duration_ms + 4, + .line_info_top = fun_data_trezor_strings_format_duration_ms + 14, + .opcodes = fun_data_trezor_strings_format_duration_ms + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_strings__lt_module_gt_ +// frozen bytecode for file trezor/strings.py, scope trezor_strings_format_timestamp +static const byte fun_data_trezor_strings_format_timestamp[49] = { + 0x51,0x0e, // prelude + 0x1f,0x2a, // names: format_timestamp, timestamp + 0x80,0x4e,0x80,0x0c,0x2f, // code info + 0x12,0x02, // LOAD_GLOBAL 'utime' + 0x14,0x20, // LOAD_METHOD 'gmtime2000' + 0xb0, // LOAD_FAST 0 + 0x22,0x83,0xc3,0xb5,0x87,0x00, // LOAD_CONST_SMALL_INT 946684800 + 0xf3, // BINARY_OP 28 __sub__ + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x14,0x09, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x55, // LOAD_SUBSCR + 0x36,0x06, // CALL_METHOD 6 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_strings_format_timestamp = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_strings_format_timestamp, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_trezor_strings_format_timestamp + 4, + .line_info_top = fun_data_trezor_strings_format_timestamp + 9, + .opcodes = fun_data_trezor_strings_format_timestamp + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_strings__lt_module_gt_[] = { + &raw_code_trezor_strings_format_amount, + &raw_code_trezor_strings_format_ordinal, + &raw_code_trezor_strings_format_plural, + &raw_code_trezor_strings_format_duration_ms, + &raw_code_trezor_strings_format_timestamp, +}; + +static const mp_raw_code_t raw_code_trezor_strings__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_strings__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 54, + #endif + .children = (void *)&children_trezor_strings__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_strings__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_strings__lt_module_gt_ + 14, + .opcodes = fun_data_trezor_strings__lt_module_gt_ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_strings[44] = { + MP_QSTR_trezor_slash_strings_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utime, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_format_amount, + MP_QSTR__hyphen_, + MP_QSTR_, + MP_QSTR__brace_open__colon__comma__brace_close_, + MP_QSTR_format, + MP_QSTR_lstrip, + MP_QSTR__comma_, + MP_QSTR_rstrip, + MP_QSTR_0, + MP_QSTR__dot_, + MP_QSTR_format_ordinal, + MP_QSTR_st, + MP_QSTR_nd, + MP_QSTR_rd, + MP_QSTR_get, + MP_QSTR_th, + MP_QSTR_format_plural, + MP_QSTR_y, + MP_QSTR_aeiouy, + MP_QSTR_ies, + MP_QSTR_hsxz, + MP_QSTR_es, + MP_QSTR_s, + MP_QSTR_count, + MP_QSTR_plural, + MP_QSTR_format_duration_ms, + MP_QSTR_format_timestamp, + MP_QSTR_gmtime2000, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_amount, + MP_QSTR_decimals, + MP_QSTR_number, + MP_QSTR_str, + MP_QSTR_string, + MP_QSTR_all, + MP_QSTR_ValueError, + MP_QSTR_milliseconds, + MP_QSTR_timestamp, + MP_QSTR__star_, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_trezor_strings_1 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR__brace_open_count_brace_close_), + MP_ROM_QSTR(MP_QSTR__brace_open_plural_brace_close_), +}}; +static const mp_obj_int_t const_obj_trezor_strings_2_0_1 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xee80,0x36}}}; +static const mp_rom_obj_tuple_t const_obj_trezor_strings_2_0 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_hour), + MP_ROM_PTR(&const_obj_trezor_strings_2_0_1), +}}; +static const mp_obj_int_t const_obj_trezor_strings_2_1_1 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=1, .len=1, .dig=(uint16_t*)(const uint16_t[]){0xea60}}}; +static const mp_rom_obj_tuple_t const_obj_trezor_strings_2_1 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_minute), + MP_ROM_PTR(&const_obj_trezor_strings_2_1_1), +}}; +static const mp_rom_obj_tuple_t const_obj_trezor_strings_2_2 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_second), + MP_ROM_INT(1000), +}}; +static const mp_rom_obj_tuple_t const_obj_trezor_strings_2 = {{&mp_type_tuple}, 3, { + MP_ROM_PTR(&const_obj_trezor_strings_2_0), + MP_ROM_PTR(&const_obj_trezor_strings_2_1), + MP_ROM_PTR(&const_obj_trezor_strings_2_2), +}}; +static const mp_obj_str_t const_obj_trezor_strings_5 = {{&mp_type_str}, 32249, 37, (const byte*)"\x7b\x7d\x2d\x7b\x3a\x30\x32\x64\x7d\x2d\x7b\x3a\x30\x32\x64\x7d\x20\x7b\x3a\x30\x32\x64\x7d\x3a\x7b\x3a\x30\x32\x64\x7d\x3a\x7b\x3a\x30\x32\x64\x7d"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_strings[6] = { + MP_ROM_QSTR(MP_QSTR__brace_open__brace_close__brace_open__brace_close__dot__brace_open__colon_0_brace_open__brace_close__brace_close_), + MP_ROM_PTR(&const_obj_trezor_strings_1), + MP_ROM_PTR(&const_obj_trezor_strings_2), + MP_ROM_QSTR(MP_QSTR_millisecond), + MP_ROM_QSTR(MP_QSTR__brace_open_count_brace_close__space__brace_open_plural_brace_close_), + MP_ROM_PTR(&const_obj_trezor_strings_5), +}; + +static const mp_frozen_module_t frozen_module_trezor_strings = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_strings, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_strings, + }, + .rc = &raw_code_trezor_strings__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_utils +// - original source file: build/firmware/src/trezor/utils.mpy +// - frozen file name: trezor/utils.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/utils.py, scope trezor_utils__lt_module_gt_ +static const byte fun_data_trezor_utils__lt_module_gt_[291] = { + 0xb0,0x10,0x66, // prelude + 0x01, // names: + 0x26,0x26,0x1f,0x1f,0x1f,0x1f,0x8e,0x1c,0x47,0x43,0x80,0x09,0x60,0x60,0x64,0x20,0x88,0x1b,0x89,0x0f,0x84,0x0e,0x80,0x12,0x88,0x08,0x60,0x20,0x64,0x40,0x80,0x17,0x80,0x25,0x89,0x13,0x60,0x20,0x89,0x4f,0x84,0x0a,0x84,0x08,0x84,0x0e,0x84,0x09,0x84,0x0a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'gc' + 0x16,0x02, // STORE_NAME 'gc' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'sys' + 0x16,0x03, // STORE_NAME 'sys' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'BITCOIN_ONLY' + 0x10,0x05, // LOAD_CONST_STRING 'EMULATOR' + 0x10,0x06, // LOAD_CONST_STRING 'INTERNAL_MODEL' + 0x10,0x07, // LOAD_CONST_STRING 'MODEL' + 0x10,0x08, // LOAD_CONST_STRING 'MODEL_FULL_NAME' + 0x10,0x09, // LOAD_CONST_STRING 'SCM_REVISION' + 0x10,0x0a, // LOAD_CONST_STRING 'UI_LAYOUT' + 0x10,0x0b, // LOAD_CONST_STRING 'USE_BACKLIGHT' + 0x10,0x0c, // LOAD_CONST_STRING 'USE_OPTIGA' + 0x10,0x0d, // LOAD_CONST_STRING 'USE_SD_CARD' + 0x10,0x0e, // LOAD_CONST_STRING 'VERSION_MAJOR' + 0x10,0x0f, // LOAD_CONST_STRING 'VERSION_MINOR' + 0x10,0x10, // LOAD_CONST_STRING 'VERSION_PATCH' + 0x10,0x11, // LOAD_CONST_STRING 'bootloader_locked' + 0x10,0x12, // LOAD_CONST_STRING 'consteq' + 0x10,0x13, // LOAD_CONST_STRING 'firmware_hash' + 0x10,0x14, // LOAD_CONST_STRING 'firmware_vendor' + 0x10,0x15, // LOAD_CONST_STRING 'halt' + 0x10,0x16, // LOAD_CONST_STRING 'memcpy' + 0x10,0x17, // LOAD_CONST_STRING 'reboot_to_bootloader' + 0x10,0x18, // LOAD_CONST_STRING 'unit_btconly' + 0x10,0x19, // LOAD_CONST_STRING 'unit_color' + 0x2a,0x16, // BUILD_TUPLE 22 + 0x1b,0x1a, // IMPORT_NAME 'trezorutils' + 0x1c,0x04, // IMPORT_FROM 'BITCOIN_ONLY' + 0x16,0x04, // STORE_NAME 'BITCOIN_ONLY' + 0x1c,0x05, // IMPORT_FROM 'EMULATOR' + 0x16,0x05, // STORE_NAME 'EMULATOR' + 0x1c,0x06, // IMPORT_FROM 'INTERNAL_MODEL' + 0x16,0x06, // STORE_NAME 'INTERNAL_MODEL' + 0x1c,0x07, // IMPORT_FROM 'MODEL' + 0x16,0x07, // STORE_NAME 'MODEL' + 0x1c,0x08, // IMPORT_FROM 'MODEL_FULL_NAME' + 0x16,0x08, // STORE_NAME 'MODEL_FULL_NAME' + 0x1c,0x09, // IMPORT_FROM 'SCM_REVISION' + 0x16,0x09, // STORE_NAME 'SCM_REVISION' + 0x1c,0x0a, // IMPORT_FROM 'UI_LAYOUT' + 0x16,0x0a, // STORE_NAME 'UI_LAYOUT' + 0x1c,0x0b, // IMPORT_FROM 'USE_BACKLIGHT' + 0x16,0x0b, // STORE_NAME 'USE_BACKLIGHT' + 0x1c,0x0c, // IMPORT_FROM 'USE_OPTIGA' + 0x16,0x0c, // STORE_NAME 'USE_OPTIGA' + 0x1c,0x0d, // IMPORT_FROM 'USE_SD_CARD' + 0x16,0x0d, // STORE_NAME 'USE_SD_CARD' + 0x1c,0x0e, // IMPORT_FROM 'VERSION_MAJOR' + 0x16,0x0e, // STORE_NAME 'VERSION_MAJOR' + 0x1c,0x0f, // IMPORT_FROM 'VERSION_MINOR' + 0x16,0x0f, // STORE_NAME 'VERSION_MINOR' + 0x1c,0x10, // IMPORT_FROM 'VERSION_PATCH' + 0x16,0x10, // STORE_NAME 'VERSION_PATCH' + 0x1c,0x11, // IMPORT_FROM 'bootloader_locked' + 0x16,0x11, // STORE_NAME 'bootloader_locked' + 0x1c,0x12, // IMPORT_FROM 'consteq' + 0x16,0x12, // STORE_NAME 'consteq' + 0x1c,0x13, // IMPORT_FROM 'firmware_hash' + 0x16,0x13, // STORE_NAME 'firmware_hash' + 0x1c,0x14, // IMPORT_FROM 'firmware_vendor' + 0x16,0x14, // STORE_NAME 'firmware_vendor' + 0x1c,0x15, // IMPORT_FROM 'halt' + 0x16,0x15, // STORE_NAME 'halt' + 0x1c,0x16, // IMPORT_FROM 'memcpy' + 0x16,0x16, // STORE_NAME 'memcpy' + 0x1c,0x17, // IMPORT_FROM 'reboot_to_bootloader' + 0x16,0x17, // STORE_NAME 'reboot_to_bootloader' + 0x1c,0x18, // IMPORT_FROM 'unit_btconly' + 0x16,0x18, // STORE_NAME 'unit_btconly' + 0x1c,0x19, // IMPORT_FROM 'unit_color' + 0x16,0x19, // STORE_NAME 'unit_color' + 0x59, // POP_TOP + 0x11,0x06, // LOAD_NAME 'INTERNAL_MODEL' + 0x10,0x1b, // LOAD_CONST_STRING 'T2B1' + 0xd9, // BINARY_OP 2 __eq__ + 0x16,0x4a, // STORE_NAME 'MODEL_IS_T2B1' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x4b, // STORE_NAME 'DISABLE_ANIMATION' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x1f, // STORE_NAME 'unimport_begin' + 0x52, // LOAD_CONST_TRUE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x21, // STORE_NAME 'unimport_end' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x02, // MAKE_FUNCTION 2 + 0x10,0x1c, // LOAD_CONST_STRING 'unimport' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x1c, // STORE_NAME 'unimport' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x25, // STORE_NAME 'presize_module' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x04, // MAKE_FUNCTION_DEFARGS 4 + 0x16,0x27, // STORE_NAME 'ensure' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x28, // STORE_NAME 'chunks' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x06, // MAKE_FUNCTION 6 + 0x10,0x1d, // LOAD_CONST_STRING 'HashWriter' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x1d, // STORE_NAME 'HashWriter' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x07, // MAKE_FUNCTION 7 + 0x10,0x1e, // LOAD_CONST_STRING 'BufferReader' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x1e, // STORE_NAME 'BufferReader' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x29, // STORE_NAME 'obj_eq' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x2c, // STORE_NAME 'obj_repr' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x2f, // STORE_NAME 'truncate_utf8' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x32, // STORE_NAME 'is_empty_iterator' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x33, // STORE_NAME 'empty_bytearray' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_utils__lt_module_gt_ +// frozen bytecode for file trezor/utils.py, scope trezor_utils_unimport_begin +static const byte fun_data_trezor_utils_unimport_begin[14] = { + 0x08,0x06, // prelude + 0x1f, // names: unimport_begin + 0x80,0x32, // code info + 0x12,0x4c, // LOAD_GLOBAL 'set' + 0x12,0x03, // LOAD_GLOBAL 'sys' + 0x13,0x20, // LOAD_ATTR 'modules' + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_unimport_begin = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_utils_unimport_begin, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_trezor_utils_unimport_begin + 3, + .line_info_top = fun_data_trezor_utils_unimport_begin + 5, + .opcodes = fun_data_trezor_utils_unimport_begin + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils__lt_module_gt_ +// frozen bytecode for file trezor/utils.py, scope trezor_utils_unimport_end +static const byte fun_data_trezor_utils_unimport_end[117] = { + 0xfe,0x01,0x26, // prelude + 0x21,0x35,0x24, // names: unimport_end, mods, collect + 0x80,0x39,0x40,0x28,0x47,0x48,0x28,0x25,0x22,0x27,0x29,0x22,0x75,0x20,0x46,0x23, // code info + 0x12,0x03, // LOAD_GLOBAL 'sys' + 0x13,0x20, // LOAD_ATTR 'modules' + 0x5f, // GET_ITER_STACK + 0x4b,0x4c, // FOR_ITER 76 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0xc1,0x80, // POP_JUMP_IF_FALSE 65 + 0x12,0x03, // LOAD_GLOBAL 'sys' + 0x13,0x20, // LOAD_ATTR 'modules' + 0xb2, // LOAD_FAST 2 + 0x53, // LOAD_NULL + 0x5b, // ROT_THREE + 0x56, // STORE_SUBSCR + 0xb2, // LOAD_FAST 2 + 0x14,0x22, // LOAD_METHOD 'rfind' + 0x10,0x23, // LOAD_CONST_STRING '.' + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x1f, // JUMP -33 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xb3, // LOAD_FAST 3 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0x48,0x0e, // SETUP_EXCEPT 14 + 0x12,0x4d, // LOAD_GLOBAL 'delattr' + 0x12,0x03, // LOAD_GLOBAL 'sys' + 0x13,0x20, // LOAD_ATTR 'modules' + 0xb4, // LOAD_FAST 4 + 0x55, // LOAD_SUBSCR + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x4a,0x0a, // POP_EXCEPT_JUMP 10 + 0x57, // DUP_TOP + 0x12,0x4e, // LOAD_GLOBAL 'KeyError' + 0xdf, // BINARY_OP 8 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x59, // POP_TOP + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x42,0xb2,0x7f, // JUMP -78 + 0xb1, // LOAD_FAST 1 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'gc' + 0x14,0x24, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_unimport_end = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_utils_unimport_end, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 117, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 33, + .line_info = fun_data_trezor_utils_unimport_end + 6, + .line_info_top = fun_data_trezor_utils_unimport_end + 22, + .opcodes = fun_data_trezor_utils_unimport_end + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils__lt_module_gt_ +// frozen bytecode for file trezor/utils.py, scope trezor_utils_unimport +static const byte fun_data_trezor_utils_unimport[29] = { + 0x00,0x0a, // prelude + 0x1c, // names: unimport + 0x88,0x51,0x64,0x64, // code info + 0x11,0x2e, // LOAD_NAME '__name__' + 0x16,0x4f, // STORE_NAME '__module__' + 0x10,0x1c, // LOAD_CONST_STRING 'unimport' + 0x16,0x50, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x34, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x36, // STORE_NAME '__enter__' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x37, // STORE_NAME '__exit__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_utils_unimport +// frozen bytecode for file trezor/utils.py, scope trezor_utils_unimport___init__ +static const byte fun_data_trezor_utils_unimport___init__[12] = { + 0x11,0x08, // prelude + 0x34,0x5a, // names: __init__, self + 0x80,0x52, // code info + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x35, // STORE_ATTR 'mods' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_unimport___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_utils_unimport___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 52, + .line_info = fun_data_trezor_utils_unimport___init__ + 4, + .line_info_top = fun_data_trezor_utils_unimport___init__ + 6, + .opcodes = fun_data_trezor_utils_unimport___init__ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils_unimport +// frozen bytecode for file trezor/utils.py, scope trezor_utils_unimport___enter__ +static const byte fun_data_trezor_utils_unimport___enter__[15] = { + 0x11,0x08, // prelude + 0x36,0x5a, // names: __enter__, self + 0x80,0x55, // code info + 0x12,0x1f, // LOAD_GLOBAL 'unimport_begin' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x35, // STORE_ATTR 'mods' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_unimport___enter__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_utils_unimport___enter__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 54, + .line_info = fun_data_trezor_utils_unimport___enter__ + 4, + .line_info_top = fun_data_trezor_utils_unimport___enter__ + 6, + .opcodes = fun_data_trezor_utils_unimport___enter__ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils_unimport +// frozen bytecode for file trezor/utils.py, scope trezor_utils_unimport___exit__ +static const byte fun_data_trezor_utils_unimport___exit__[47] = { + 0xb8,0x04,0x16, // prelude + 0x37,0x5a,0x64,0x65,0x66, // names: __exit__, self, _exc_type, _exc_value, _tb + 0x80,0x58,0x20,0x2c,0x28,0x24, // code info + 0x12,0x21, // LOAD_GLOBAL 'unimport_end' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'mods' + 0x10,0x24, // LOAD_CONST_STRING 'collect' + 0x50, // LOAD_CONST_FALSE + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'mods' + 0x14,0x38, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x35, // STORE_ATTR 'mods' + 0x12,0x02, // LOAD_GLOBAL 'gc' + 0x14,0x24, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_unimport___exit__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_trezor_utils_unimport___exit__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 55, + .line_info = fun_data_trezor_utils_unimport___exit__ + 8, + .line_info_top = fun_data_trezor_utils_unimport___exit__ + 14, + .opcodes = fun_data_trezor_utils_unimport___exit__ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_utils_unimport[] = { + &raw_code_trezor_utils_unimport___init__, + &raw_code_trezor_utils_unimport___enter__, + &raw_code_trezor_utils_unimport___exit__, +}; + +static const mp_raw_code_t raw_code_trezor_utils_unimport = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_utils_unimport, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = (void *)&children_trezor_utils_unimport, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_trezor_utils_unimport + 3, + .line_info_top = fun_data_trezor_utils_unimport + 7, + .opcodes = fun_data_trezor_utils_unimport + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils__lt_module_gt_ +// frozen bytecode for file trezor/utils.py, scope trezor_utils_presize_module +static const byte fun_data_trezor_utils_presize_module[79] = { + 0x52,0x16, // prelude + 0x25,0x51,0x52, // names: presize_module, modname, size + 0x80,0x60,0x60,0x60,0x27,0x26,0x37,0x26, // code info + 0x12,0x03, // LOAD_GLOBAL 'sys' + 0x13,0x20, // LOAD_ATTR 'modules' + 0xb0, // LOAD_FAST 0 + 0x55, // LOAD_SUBSCR + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x52, // JUMP 18 + 0x57, // DUP_TOP + 0xc3, // STORE_FAST 3 + 0x12,0x53, // LOAD_GLOBAL 'setattr' + 0xb2, // LOAD_FAST 2 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x14,0x26, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x51, // LOAD_CONST_NONE + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x29, // POP_JUMP_IF_TRUE -23 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x51, // JUMP 17 + 0x57, // DUP_TOP + 0xc3, // STORE_FAST 3 + 0x12,0x4d, // LOAD_GLOBAL 'delattr' + 0xb2, // LOAD_FAST 2 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x14,0x26, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2a, // POP_JUMP_IF_TRUE -22 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_presize_module = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_utils_presize_module, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 79, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_trezor_utils_presize_module + 5, + .line_info_top = fun_data_trezor_utils_presize_module + 13, + .opcodes = fun_data_trezor_utils_presize_module + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils__lt_module_gt_ +// frozen bytecode for file trezor/utils.py, scope trezor_utils_ensure +static const byte fun_data_trezor_utils_ensure[32] = { + 0x9a,0x01,0x10, // prelude + 0x27,0x54,0x55, // names: ensure, cond, msg + 0x80,0x80,0x23,0x25,0x45, // code info + 0xb0, // LOAD_FAST 0 + 0x43,0x50, // POP_JUMP_IF_TRUE 16 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x56, // LOAD_GLOBAL 'AssertionError' + 0x65, // RAISE_OBJ + 0x42,0x46, // JUMP 6 + 0x12,0x56, // LOAD_GLOBAL 'AssertionError' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_ensure = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_utils_ensure, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 39, + .line_info = fun_data_trezor_utils_ensure + 6, + .line_info_top = fun_data_trezor_utils_ensure + 11, + .opcodes = fun_data_trezor_utils_ensure + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils__lt_module_gt_ +// frozen bytecode for file trezor/utils.py, scope trezor_utils_chunks +static const byte fun_data_trezor_utils_chunks[38] = { + 0xd2,0x40,0x0c, // prelude + 0x28,0x57,0x52, // names: chunks, items, size + 0x80,0x8c,0x2f, // code info + 0x12,0x58, // LOAD_GLOBAL 'range' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x59, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5f, // GET_ITER_STACK + 0x4b,0x0d, // FOR_ITER 13 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xf2, // BINARY_OP 27 __add__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x31, // JUMP -15 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_chunks = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_utils_chunks, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_trezor_utils_chunks + 6, + .line_info_top = fun_data_trezor_utils_chunks + 9, + .opcodes = fun_data_trezor_utils_chunks + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils__lt_module_gt_ +// frozen bytecode for file trezor/utils.py, scope trezor_utils_HashWriter +static const byte fun_data_trezor_utils_HashWriter[41] = { + 0x00,0x12, // prelude + 0x1d, // names: HashWriter + 0x88,0xcd,0x64,0x20,0x64,0x20,0x64,0x64, // code info + 0x11,0x2e, // LOAD_NAME '__name__' + 0x16,0x4f, // STORE_NAME '__module__' + 0x10,0x1d, // LOAD_CONST_STRING 'HashWriter' + 0x16,0x50, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x34, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x3b, // STORE_NAME 'append' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x3d, // STORE_NAME 'extend' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x3e, // STORE_NAME 'write' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x3f, // STORE_NAME 'get_digest' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_utils_HashWriter +// frozen bytecode for file trezor/utils.py, scope trezor_utils_HashWriter___init__ +static const byte fun_data_trezor_utils_HashWriter___init__[22] = { + 0x1a,0x0c, // prelude + 0x34,0x5a,0x39, // names: __init__, self, ctx + 0x80,0xce,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x39, // STORE_ATTR 'ctx' + 0x12,0x62, // LOAD_GLOBAL 'bytearray' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x3a, // STORE_ATTR 'buf' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_HashWriter___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_utils_HashWriter___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 52, + .line_info = fun_data_trezor_utils_HashWriter___init__ + 5, + .line_info_top = fun_data_trezor_utils_HashWriter___init__ + 8, + .opcodes = fun_data_trezor_utils_HashWriter___init__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils_HashWriter +// frozen bytecode for file trezor/utils.py, scope trezor_utils_HashWriter_append +static const byte fun_data_trezor_utils_HashWriter_append[27] = { + 0x22,0x0c, // prelude + 0x3b,0x5a,0x67, // names: append, self, b + 0x80,0xd2,0x26, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x3a, // LOAD_ATTR 'buf' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x56, // STORE_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'ctx' + 0x14,0x3c, // LOAD_METHOD 'update' + 0xb0, // LOAD_FAST 0 + 0x13,0x3a, // LOAD_ATTR 'buf' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_HashWriter_append = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_utils_HashWriter_append, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 59, + .line_info = fun_data_trezor_utils_HashWriter_append + 5, + .line_info_top = fun_data_trezor_utils_HashWriter_append + 8, + .opcodes = fun_data_trezor_utils_HashWriter_append + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils_HashWriter +// frozen bytecode for file trezor/utils.py, scope trezor_utils_HashWriter_extend +static const byte fun_data_trezor_utils_HashWriter_extend[18] = { + 0x22,0x0a, // prelude + 0x3d,0x5a,0x3a, // names: extend, self, buf + 0x80,0xd6, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'ctx' + 0x14,0x3c, // LOAD_METHOD 'update' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_HashWriter_extend = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_utils_HashWriter_extend, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 61, + .line_info = fun_data_trezor_utils_HashWriter_extend + 5, + .line_info_top = fun_data_trezor_utils_HashWriter_extend + 7, + .opcodes = fun_data_trezor_utils_HashWriter_extend + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils_HashWriter +// frozen bytecode for file trezor/utils.py, scope trezor_utils_HashWriter_write +static const byte fun_data_trezor_utils_HashWriter_write[18] = { + 0x22,0x0a, // prelude + 0x3e,0x5a,0x3a, // names: write, self, buf + 0x80,0xd9, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'ctx' + 0x14,0x3c, // LOAD_METHOD 'update' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_HashWriter_write = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_utils_HashWriter_write, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 62, + .line_info = fun_data_trezor_utils_HashWriter_write + 5, + .line_info_top = fun_data_trezor_utils_HashWriter_write + 7, + .opcodes = fun_data_trezor_utils_HashWriter_write + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils_HashWriter +// frozen bytecode for file trezor/utils.py, scope trezor_utils_HashWriter_get_digest +static const byte fun_data_trezor_utils_HashWriter_get_digest[14] = { + 0x11,0x08, // prelude + 0x3f,0x5a, // names: get_digest, self + 0x80,0xdc, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'ctx' + 0x14,0x40, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_HashWriter_get_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_utils_HashWriter_get_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 63, + .line_info = fun_data_trezor_utils_HashWriter_get_digest + 4, + .line_info_top = fun_data_trezor_utils_HashWriter_get_digest + 6, + .opcodes = fun_data_trezor_utils_HashWriter_get_digest + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_utils_HashWriter[] = { + &raw_code_trezor_utils_HashWriter___init__, + &raw_code_trezor_utils_HashWriter_append, + &raw_code_trezor_utils_HashWriter_extend, + &raw_code_trezor_utils_HashWriter_write, + &raw_code_trezor_utils_HashWriter_get_digest, +}; + +static const mp_raw_code_t raw_code_trezor_utils_HashWriter = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_utils_HashWriter, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = (void *)&children_trezor_utils_HashWriter, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_trezor_utils_HashWriter + 3, + .line_info_top = fun_data_trezor_utils_HashWriter + 11, + .opcodes = fun_data_trezor_utils_HashWriter + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils__lt_module_gt_ +// frozen bytecode for file trezor/utils.py, scope trezor_utils_BufferReader +static const byte fun_data_trezor_utils_BufferReader[70] = { + 0x08,0x24, // prelude + 0x1e, // names: BufferReader + 0x88,0xe4,0x40,0x84,0x07,0x84,0x09,0x84,0x0d,0x88,0x0a,0x88,0x12,0x64,0x20,0x64,0x60, // code info + 0x11,0x2e, // LOAD_NAME '__name__' + 0x16,0x4f, // STORE_NAME '__module__' + 0x10,0x1e, // LOAD_CONST_STRING 'BufferReader' + 0x16,0x50, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x34, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x43, // STORE_NAME 'seek' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x44, // STORE_NAME 'readinto' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x03, // MAKE_FUNCTION_DEFARGS 3 + 0x16,0x45, // STORE_NAME 'read' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x04, // MAKE_FUNCTION_DEFARGS 4 + 0x16,0x46, // STORE_NAME 'read_memoryview' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x47, // STORE_NAME 'remaining_count' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x48, // STORE_NAME 'peek' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x49, // STORE_NAME 'get' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_utils_BufferReader +// frozen bytecode for file trezor/utils.py, scope trezor_utils_BufferReader___init__ +static const byte fun_data_trezor_utils_BufferReader___init__[39] = { + 0x22,0x10, // prelude + 0x34,0x5a,0x41, // names: __init__, self, buffer + 0x80,0xe7,0x29,0x46,0x28, // code info + 0x12,0x68, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x69, // LOAD_GLOBAL 'memoryview' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x41, // STORE_ATTR 'buffer' + 0x42,0x48, // JUMP 8 + 0x12,0x69, // LOAD_GLOBAL 'memoryview' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x41, // STORE_ATTR 'buffer' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x42, // STORE_ATTR 'offset' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_BufferReader___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_utils_BufferReader___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 52, + .line_info = fun_data_trezor_utils_BufferReader___init__ + 5, + .line_info_top = fun_data_trezor_utils_BufferReader___init__ + 10, + .opcodes = fun_data_trezor_utils_BufferReader___init__ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils_BufferReader +// frozen bytecode for file trezor/utils.py, scope trezor_utils_BufferReader_seek +static const byte fun_data_trezor_utils_BufferReader_seek[37] = { + 0x2a,0x12, // prelude + 0x43,0x5a,0x42, // names: seek, self, offset + 0x80,0xee,0x60,0x20,0x2d,0x27, // code info + 0x12,0x6a, // LOAD_GLOBAL 'min' + 0xb1, // LOAD_FAST 1 + 0x12,0x59, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x41, // LOAD_ATTR 'buffer' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc1, // STORE_FAST 1 + 0x12,0x6b, // LOAD_GLOBAL 'max' + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x42, // STORE_ATTR 'offset' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_BufferReader_seek = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_utils_BufferReader_seek, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 67, + .line_info = fun_data_trezor_utils_BufferReader_seek + 5, + .line_info_top = fun_data_trezor_utils_BufferReader_seek + 11, + .opcodes = fun_data_trezor_utils_BufferReader_seek + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils_BufferReader +// frozen bytecode for file trezor/utils.py, scope trezor_utils_BufferReader_readinto +static const byte fun_data_trezor_utils_BufferReader_readinto[61] = { + 0x4a,0x1a, // prelude + 0x44,0x5a,0x6c, // names: readinto, self, dst + 0x80,0xf7,0x60,0x20,0x24,0x24,0x2f,0x23,0x29,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x41, // LOAD_ATTR 'buffer' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x42, // LOAD_ATTR 'offset' + 0xc3, // STORE_FAST 3 + 0x12,0x59, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x59, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb3, // LOAD_FAST 3 + 0xf3, // BINARY_OP 28 __sub__ + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x6d, // LOAD_GLOBAL 'EOFError' + 0x65, // RAISE_OBJ + 0x12,0x16, // LOAD_GLOBAL 'memcpy' + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x04, // CALL_FUNCTION 4 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x42, // LOAD_ATTR 'offset' + 0xb4, // LOAD_FAST 4 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x42, // STORE_ATTR 'offset' + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_BufferReader_readinto = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_utils_BufferReader_readinto, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 61, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 68, + .line_info = fun_data_trezor_utils_BufferReader_readinto + 5, + .line_info_top = fun_data_trezor_utils_BufferReader_readinto + 15, + .opcodes = fun_data_trezor_utils_BufferReader_readinto + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils_BufferReader +// frozen bytecode for file trezor/utils.py, scope trezor_utils_BufferReader_read +static const byte fun_data_trezor_utils_BufferReader_read[21] = { + 0xaa,0x01,0x0e, // prelude + 0x45,0x5a,0x6e, // names: read, self, length + 0x90,0x04,0x80,0x07, // code info + 0x12,0x63, // LOAD_GLOBAL 'bytes' + 0xb0, // LOAD_FAST 0 + 0x14,0x46, // LOAD_METHOD 'read_memoryview' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_BufferReader_read = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_utils_BufferReader_read, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 69, + .line_info = fun_data_trezor_utils_BufferReader_read + 6, + .line_info_top = fun_data_trezor_utils_BufferReader_read + 10, + .opcodes = fun_data_trezor_utils_BufferReader_read + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils_BufferReader +// frozen bytecode for file trezor/utils.py, scope trezor_utils_BufferReader_read_memoryview +static const byte fun_data_trezor_utils_BufferReader_read_memoryview[97] = { + 0xb2,0x01,0x20, // prelude + 0x46,0x5a,0x6e, // names: read_memoryview, self, length + 0x90,0x0e,0x60,0x40,0x25,0x2b,0x2c,0x25,0x25,0x29,0x2f,0x4b,0x23, // code info + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0xb0, // LOAD_FAST 0 + 0x13,0x41, // LOAD_ATTR 'buffer' + 0xb0, // LOAD_FAST 0 + 0x13,0x42, // LOAD_ATTR 'offset' + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc2, // STORE_FAST 2 + 0x12,0x59, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x41, // LOAD_ATTR 'buffer' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x42, // STORE_ATTR 'offset' + 0x42,0x70, // JUMP 48 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x6f, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x42,0x66, // JUMP 38 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x14,0x47, // LOAD_METHOD 'remaining_count' + 0x36,0x00, // CALL_METHOD 0 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0xb0, // LOAD_FAST 0 + 0x13,0x41, // LOAD_ATTR 'buffer' + 0xb0, // LOAD_FAST 0 + 0x13,0x42, // LOAD_ATTR 'offset' + 0xb0, // LOAD_FAST 0 + 0x13,0x42, // LOAD_ATTR 'offset' + 0xb1, // LOAD_FAST 1 + 0xf2, // BINARY_OP 27 __add__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x42, // LOAD_ATTR 'offset' + 0xb1, // LOAD_FAST 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x42, // STORE_ATTR 'offset' + 0x42,0x43, // JUMP 3 + 0x12,0x6d, // LOAD_GLOBAL 'EOFError' + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_BufferReader_read_memoryview = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_utils_BufferReader_read_memoryview, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 97, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 70, + .line_info = fun_data_trezor_utils_BufferReader_read_memoryview + 6, + .line_info_top = fun_data_trezor_utils_BufferReader_read_memoryview + 19, + .opcodes = fun_data_trezor_utils_BufferReader_read_memoryview + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils_BufferReader +// frozen bytecode for file trezor/utils.py, scope trezor_utils_BufferReader_remaining_count +static const byte fun_data_trezor_utils_BufferReader_remaining_count[19] = { + 0x11,0x0a, // prelude + 0x47,0x5a, // names: remaining_count, self + 0x90,0x20,0x20, // code info + 0x12,0x59, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x41, // LOAD_ATTR 'buffer' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x42, // LOAD_ATTR 'offset' + 0xf3, // BINARY_OP 28 __sub__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_BufferReader_remaining_count = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_utils_BufferReader_remaining_count, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 71, + .line_info = fun_data_trezor_utils_BufferReader_remaining_count + 4, + .line_info_top = fun_data_trezor_utils_BufferReader_remaining_count + 7, + .opcodes = fun_data_trezor_utils_BufferReader_remaining_count + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils_BufferReader +// frozen bytecode for file trezor/utils.py, scope trezor_utils_BufferReader_peek +static const byte fun_data_trezor_utils_BufferReader_peek[33] = { + 0x19,0x0e, // prelude + 0x48,0x5a, // names: peek, self + 0x90,0x24,0x20,0x2d,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x42, // LOAD_ATTR 'offset' + 0x12,0x59, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x41, // LOAD_ATTR 'buffer' + 0x34,0x01, // CALL_FUNCTION 1 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x6d, // LOAD_GLOBAL 'EOFError' + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x41, // LOAD_ATTR 'buffer' + 0xb0, // LOAD_FAST 0 + 0x13,0x42, // LOAD_ATTR 'offset' + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_BufferReader_peek = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_utils_BufferReader_peek, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 72, + .line_info = fun_data_trezor_utils_BufferReader_peek + 4, + .line_info_top = fun_data_trezor_utils_BufferReader_peek + 9, + .opcodes = fun_data_trezor_utils_BufferReader_peek + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils_BufferReader +// frozen bytecode for file trezor/utils.py, scope trezor_utils_BufferReader_get +static const byte fun_data_trezor_utils_BufferReader_get[46] = { + 0x21,0x12, // prelude + 0x49,0x5a, // names: get, self + 0x90,0x2a,0x20,0x2d,0x23,0x28,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x42, // LOAD_ATTR 'offset' + 0x12,0x59, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x41, // LOAD_ATTR 'buffer' + 0x34,0x01, // CALL_FUNCTION 1 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x6d, // LOAD_GLOBAL 'EOFError' + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x41, // LOAD_ATTR 'buffer' + 0xb0, // LOAD_FAST 0 + 0x13,0x42, // LOAD_ATTR 'offset' + 0x55, // LOAD_SUBSCR + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x42, // LOAD_ATTR 'offset' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x42, // STORE_ATTR 'offset' + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_BufferReader_get = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_utils_BufferReader_get, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 73, + .line_info = fun_data_trezor_utils_BufferReader_get + 4, + .line_info_top = fun_data_trezor_utils_BufferReader_get + 11, + .opcodes = fun_data_trezor_utils_BufferReader_get + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_utils_BufferReader[] = { + &raw_code_trezor_utils_BufferReader___init__, + &raw_code_trezor_utils_BufferReader_seek, + &raw_code_trezor_utils_BufferReader_readinto, + &raw_code_trezor_utils_BufferReader_read, + &raw_code_trezor_utils_BufferReader_read_memoryview, + &raw_code_trezor_utils_BufferReader_remaining_count, + &raw_code_trezor_utils_BufferReader_peek, + &raw_code_trezor_utils_BufferReader_get, +}; + +static const mp_raw_code_t raw_code_trezor_utils_BufferReader = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_utils_BufferReader, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = (void *)&children_trezor_utils_BufferReader, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 8, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_trezor_utils_BufferReader + 3, + .line_info_top = fun_data_trezor_utils_BufferReader + 20, + .opcodes = fun_data_trezor_utils_BufferReader + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils__lt_module_gt_ +// frozen bytecode for file trezor/utils.py, scope trezor_utils_obj_eq +static const byte fun_data_trezor_utils_obj_eq[31] = { + 0x1a,0x12, // prelude + 0x29,0x5a,0x5b, // names: obj_eq, self, __o + 0x90,0x33,0x60,0x2a,0x22,0x20, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR '__class__' + 0xb1, // LOAD_FAST 1 + 0x13,0x2a, // LOAD_ATTR '__class__' + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR '__dict__' + 0xb1, // LOAD_FAST 1 + 0x13,0x2b, // LOAD_ATTR '__dict__' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_obj_eq = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_utils_obj_eq, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_trezor_utils_obj_eq + 5, + .line_info_top = fun_data_trezor_utils_obj_eq + 11, + .opcodes = fun_data_trezor_utils_obj_eq + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils__lt_module_gt_ +// frozen bytecode for file trezor/utils.py, scope trezor_utils_obj_repr +static const byte fun_data_trezor_utils_obj_repr[23] = { + 0x21,0x0c, // prelude + 0x2c,0x5a, // names: obj_repr, self + 0x90,0x3d,0x60,0x20, // code info + 0x10,0x2d, // LOAD_CONST_STRING '<{}: {}>' + 0x14,0x26, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR '__class__' + 0x13,0x2e, // LOAD_ATTR '__name__' + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR '__dict__' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_obj_repr = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_utils_obj_repr, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 44, + .line_info = fun_data_trezor_utils_obj_repr + 4, + .line_info_top = fun_data_trezor_utils_obj_repr + 8, + .opcodes = fun_data_trezor_utils_obj_repr + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils__lt_module_gt_ +// frozen bytecode for file trezor/utils.py, scope trezor_utils_truncate_utf8 +static const byte fun_data_trezor_utils_truncate_utf8[68] = { + 0x32,0x18, // prelude + 0x2f,0x5c,0x5d, // names: truncate_utf8, string, max_bytes + 0x90,0x45,0x20,0x26,0x29,0x62,0x22,0x22,0x56, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x30, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0x12,0x59, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0xc3, // STORE_FAST 3 + 0x42,0x44, // JUMP 4 + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe6, // BINARY_OP 15 __isub__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x55, // LOAD_SUBSCR + 0x22,0x81,0x40, // LOAD_CONST_SMALL_INT 192 + 0xef, // BINARY_OP 24 __and__ + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xd9, // BINARY_OP 2 __eq__ + 0x43,0x2a, // POP_JUMP_IF_TRUE -22 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xb3, // LOAD_FAST 3 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x14,0x31, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_truncate_utf8 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_utils_truncate_utf8, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 68, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_trezor_utils_truncate_utf8 + 5, + .line_info_top = fun_data_trezor_utils_truncate_utf8 + 14, + .opcodes = fun_data_trezor_utils_truncate_utf8 + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils__lt_module_gt_ +// frozen bytecode for file trezor/utils.py, scope trezor_utils_is_empty_iterator +static const byte fun_data_trezor_utils_is_empty_iterator[35] = { + 0x35,0x0e, // prelude + 0x32,0x5e, // names: is_empty_iterator, i + 0x90,0x53,0x22,0x4f,0x45, // code info + 0x48,0x08, // SETUP_EXCEPT 8 + 0x12,0x5f, // LOAD_GLOBAL 'next' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x4a,0x0c, // POP_EXCEPT_JUMP 12 + 0x57, // DUP_TOP + 0x12,0x60, // LOAD_GLOBAL 'StopIteration' + 0xdf, // BINARY_OP 8 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE + 0x4a,0x03, // POP_EXCEPT_JUMP 3 + 0x5d, // END_FINALLY + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_is_empty_iterator = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_utils_is_empty_iterator, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 50, + .line_info = fun_data_trezor_utils_is_empty_iterator + 4, + .line_info_top = fun_data_trezor_utils_is_empty_iterator + 9, + .opcodes = fun_data_trezor_utils_is_empty_iterator + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_utils__lt_module_gt_ +// frozen bytecode for file trezor/utils.py, scope trezor_utils_empty_bytearray +static const byte fun_data_trezor_utils_empty_bytearray[28] = { + 0x29,0x10, // prelude + 0x33,0x61, // names: empty_bytearray, preallocate + 0x90,0x5c,0x60,0x20,0x26,0x2a, // code info + 0x12,0x62, // LOAD_GLOBAL 'bytearray' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0x12,0x63, // LOAD_GLOBAL 'bytes' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_utils_empty_bytearray = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_utils_empty_bytearray, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 51, + .line_info = fun_data_trezor_utils_empty_bytearray + 4, + .line_info_top = fun_data_trezor_utils_empty_bytearray + 10, + .opcodes = fun_data_trezor_utils_empty_bytearray + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_utils__lt_module_gt_[] = { + &raw_code_trezor_utils_unimport_begin, + &raw_code_trezor_utils_unimport_end, + &raw_code_trezor_utils_unimport, + &raw_code_trezor_utils_presize_module, + &raw_code_trezor_utils_ensure, + &raw_code_trezor_utils_chunks, + &raw_code_trezor_utils_HashWriter, + &raw_code_trezor_utils_BufferReader, + &raw_code_trezor_utils_obj_eq, + &raw_code_trezor_utils_obj_repr, + &raw_code_trezor_utils_truncate_utf8, + &raw_code_trezor_utils_is_empty_iterator, + &raw_code_trezor_utils_empty_bytearray, +}; + +static const mp_raw_code_t raw_code_trezor_utils__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_utils__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 291, + #endif + .children = (void *)&children_trezor_utils__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 13, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 23, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_utils__lt_module_gt_ + 4, + .line_info_top = fun_data_trezor_utils__lt_module_gt_ + 54, + .opcodes = fun_data_trezor_utils__lt_module_gt_ + 54, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_utils[112] = { + MP_QSTR_trezor_slash_utils_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_gc, + MP_QSTR_sys, + MP_QSTR_BITCOIN_ONLY, + MP_QSTR_EMULATOR, + MP_QSTR_INTERNAL_MODEL, + MP_QSTR_MODEL, + MP_QSTR_MODEL_FULL_NAME, + MP_QSTR_SCM_REVISION, + MP_QSTR_UI_LAYOUT, + MP_QSTR_USE_BACKLIGHT, + MP_QSTR_USE_OPTIGA, + MP_QSTR_USE_SD_CARD, + MP_QSTR_VERSION_MAJOR, + MP_QSTR_VERSION_MINOR, + MP_QSTR_VERSION_PATCH, + MP_QSTR_bootloader_locked, + MP_QSTR_consteq, + MP_QSTR_firmware_hash, + MP_QSTR_firmware_vendor, + MP_QSTR_halt, + MP_QSTR_memcpy, + MP_QSTR_reboot_to_bootloader, + MP_QSTR_unit_btconly, + MP_QSTR_unit_color, + MP_QSTR_trezorutils, + MP_QSTR_T2B1, + MP_QSTR_unimport, + MP_QSTR_HashWriter, + MP_QSTR_BufferReader, + MP_QSTR_unimport_begin, + MP_QSTR_modules, + MP_QSTR_unimport_end, + MP_QSTR_rfind, + MP_QSTR__dot_, + MP_QSTR_collect, + MP_QSTR_presize_module, + MP_QSTR_format, + MP_QSTR_ensure, + MP_QSTR_chunks, + MP_QSTR_obj_eq, + MP_QSTR___class__, + MP_QSTR___dict__, + MP_QSTR_obj_repr, + MP_QSTR__lt__brace_open__brace_close__colon__space__brace_open__brace_close__gt_, + MP_QSTR___name__, + MP_QSTR_truncate_utf8, + MP_QSTR_encode, + MP_QSTR_decode, + MP_QSTR_is_empty_iterator, + MP_QSTR_empty_bytearray, + MP_QSTR___init__, + MP_QSTR_mods, + MP_QSTR___enter__, + MP_QSTR___exit__, + MP_QSTR_clear, + MP_QSTR_ctx, + MP_QSTR_buf, + MP_QSTR_append, + MP_QSTR_update, + MP_QSTR_extend, + MP_QSTR_write, + MP_QSTR_get_digest, + MP_QSTR_digest, + MP_QSTR_buffer, + MP_QSTR_offset, + MP_QSTR_seek, + MP_QSTR_readinto, + MP_QSTR_read, + MP_QSTR_read_memoryview, + MP_QSTR_remaining_count, + MP_QSTR_peek, + MP_QSTR_get, + MP_QSTR_MODEL_IS_T2B1, + MP_QSTR_DISABLE_ANIMATION, + MP_QSTR_set, + MP_QSTR_delattr, + MP_QSTR_KeyError, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_modname, + MP_QSTR_size, + MP_QSTR_setattr, + MP_QSTR_cond, + MP_QSTR_msg, + MP_QSTR_AssertionError, + MP_QSTR_items, + MP_QSTR_range, + MP_QSTR_len, + MP_QSTR_self, + MP_QSTR___o, + MP_QSTR_string, + MP_QSTR_max_bytes, + MP_QSTR_i, + MP_QSTR_next, + MP_QSTR_StopIteration, + MP_QSTR_preallocate, + MP_QSTR_bytearray, + MP_QSTR_bytes, + MP_QSTR__exc_type, + MP_QSTR__exc_value, + MP_QSTR__tb, + MP_QSTR_b, + MP_QSTR_isinstance, + MP_QSTR_memoryview, + MP_QSTR_min, + MP_QSTR_max, + MP_QSTR_dst, + MP_QSTR_EOFError, + MP_QSTR_length, + MP_QSTR_ValueError, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_utils[1] = { + MP_ROM_QSTR(MP_QSTR____PRESIZE_MODULE__brace_open__brace_close_), +}; + +static const mp_frozen_module_t frozen_module_trezor_utils = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_utils, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_utils, + }, + .rc = &raw_code_trezor_utils__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_workflow +// - original source file: build/firmware/src/trezor/workflow.mpy +// - frozen file name: trezor/workflow.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/workflow.py, scope trezor_workflow__lt_module_gt_ +static const byte fun_data_trezor_workflow__lt_module_gt_[183] = { + 0x38,0x56, // prelude + 0x01, // names: + 0x66,0x26,0x32,0x4c,0x60,0x40,0x80,0x08,0x20,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x68,0x40,0x66,0x20,0x63,0x63,0x63,0x84,0x0a,0x84,0x11,0x84,0x0c,0x84,0x18,0x84,0x08,0x80,0x12,0x84,0x16,0x84,0x13,0x89,0x4b,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'utime' + 0x16,0x02, // STORE_NAME 'utime' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'storage.cache' + 0x16,0x2e, // STORE_NAME 'storage' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'log' + 0x10,0x05, // LOAD_CONST_STRING 'loop' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x04, // IMPORT_FROM 'log' + 0x16,0x04, // STORE_NAME 'log' + 0x1c,0x05, // IMPORT_FROM 'loop' + 0x16,0x05, // STORE_NAME 'loop' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'MessageType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.enums' + 0x1c,0x07, // IMPORT_FROM 'MessageType' + 0x16,0x07, // STORE_NAME 'MessageType' + 0x59, // POP_TOP + 0x11,0x07, // LOAD_NAME 'MessageType' + 0x13,0x09, // LOAD_ATTR 'Initialize' + 0x11,0x07, // LOAD_NAME 'MessageType' + 0x13,0x0a, // LOAD_ATTR 'EndSession' + 0x11,0x07, // LOAD_NAME 'MessageType' + 0x13,0x0b, // LOAD_ATTR 'GetFeatures' + 0x11,0x07, // LOAD_NAME 'MessageType' + 0x13,0x0c, // LOAD_ATTR 'Cancel' + 0x11,0x07, // LOAD_NAME 'MessageType' + 0x13,0x0d, // LOAD_ATTR 'LockDevice' + 0x11,0x07, // LOAD_NAME 'MessageType' + 0x13,0x0e, // LOAD_ATTR 'DoPreauthorized' + 0x11,0x07, // LOAD_NAME 'MessageType' + 0x13,0x0f, // LOAD_ATTR 'WipeDevice' + 0x11,0x07, // LOAD_NAME 'MessageType' + 0x13,0x10, // LOAD_ATTR 'SetBusy' + 0x2a,0x08, // BUILD_TUPLE 8 + 0x16,0x2f, // STORE_NAME 'ALLOW_WHILE_LOCKED' + 0x11,0x2b, // LOAD_NAME 'set' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x22, // STORE_NAME 'tasks' + 0x51, // LOAD_CONST_NONE + 0x17,0x30, // STORE_GLOBAL 'default_task' + 0x51, // LOAD_CONST_NONE + 0x17,0x31, // STORE_GLOBAL 'default_constructor' + 0x52, // LOAD_CONST_TRUE + 0x17,0x32, // STORE_GLOBAL 'autolock_interrupts_workflow' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x12, // STORE_NAME '_on_start' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x14, // STORE_NAME '_on_close' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x16, // STORE_NAME 'spawn' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x18, // STORE_NAME 'start_default' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x19, // STORE_NAME 'set_default' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x1a, // STORE_NAME 'close_others' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x1f, // STORE_NAME '_finalize_default' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x07, // MAKE_FUNCTION 7 + 0x10,0x11, // LOAD_CONST_STRING 'IdleTimer' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x11, // STORE_NAME 'IdleTimer' + 0x11,0x11, // LOAD_NAME 'IdleTimer' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x33, // STORE_NAME 'idle_timer' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_workflow__lt_module_gt_ +// frozen bytecode for file trezor/workflow.py, scope trezor_workflow__on_start +static const byte fun_data_trezor_workflow__on_start[19] = { + 0x19,0x0e, // prelude + 0x12,0x34, // names: _on_start, workflow + 0x80,0x2f,0x60,0x20,0x40, // code info + 0x12,0x22, // LOAD_GLOBAL 'tasks' + 0x14,0x13, // LOAD_METHOD 'add' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_workflow__on_start = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_workflow__on_start, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_trezor_workflow__on_start + 4, + .line_info_top = fun_data_trezor_workflow__on_start + 9, + .opcodes = fun_data_trezor_workflow__on_start + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_workflow__lt_module_gt_ +// frozen bytecode for file trezor/workflow.py, scope trezor_workflow__on_close +static const byte fun_data_trezor_workflow__on_close[34] = { + 0x19,0x12, // prelude + 0x14,0x34, // names: _on_close, workflow + 0x80,0x39,0x40,0x40,0x28,0x68,0x25, // code info + 0x12,0x22, // LOAD_GLOBAL 'tasks' + 0x14,0x15, // LOAD_METHOD 'remove' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x22, // LOAD_GLOBAL 'tasks' + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x12,0x31, // LOAD_GLOBAL 'default_constructor' + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x18, // LOAD_GLOBAL 'start_default' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_workflow__on_close = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_workflow__on_close, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_trezor_workflow__on_close + 4, + .line_info_top = fun_data_trezor_workflow__on_close + 11, + .opcodes = fun_data_trezor_workflow__on_close + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_workflow__lt_module_gt_ +// frozen bytecode for file trezor/workflow.py, scope trezor_workflow_spawn +static const byte fun_data_trezor_workflow_spawn[35] = { + 0x21,0x12, // prelude + 0x16,0x34, // names: spawn, workflow + 0x80,0x4a,0x60,0x40,0x28,0x26,0x28, // code info + 0x12,0x05, // LOAD_GLOBAL 'loop' + 0x14,0x16, // LOAD_METHOD 'spawn' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0x12,0x12, // LOAD_GLOBAL '_on_start' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x17, // LOAD_METHOD 'set_finalizer' + 0x12,0x14, // LOAD_GLOBAL '_on_close' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_workflow_spawn = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_workflow_spawn, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_trezor_workflow_spawn + 4, + .line_info_top = fun_data_trezor_workflow_spawn + 11, + .opcodes = fun_data_trezor_workflow_spawn + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_workflow__lt_module_gt_ +// frozen bytecode for file trezor/workflow.py, scope trezor_workflow_start_default +static const byte fun_data_trezor_workflow_start_default[48] = { + 0x10,0x1c, // prelude + 0x18, // names: start_default + 0x80,0x56,0x60,0x40,0x20,0x20,0x40,0x40,0x24,0x2c,0x40,0x4b,0x60, // code info + 0x12,0x30, // LOAD_GLOBAL 'default_task' + 0x43,0x57, // POP_JUMP_IF_TRUE 23 + 0x12,0x05, // LOAD_GLOBAL 'loop' + 0x14,0x16, // LOAD_METHOD 'spawn' + 0x12,0x31, // LOAD_GLOBAL 'default_constructor' + 0x34,0x00, // CALL_FUNCTION 0 + 0x36,0x01, // CALL_METHOD 1 + 0x17,0x30, // STORE_GLOBAL 'default_task' + 0x12,0x30, // LOAD_GLOBAL 'default_task' + 0x14,0x17, // LOAD_METHOD 'set_finalizer' + 0x12,0x1f, // LOAD_GLOBAL '_finalize_default' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x40, // JUMP 0 + 0x52, // LOAD_CONST_TRUE + 0x17,0x32, // STORE_GLOBAL 'autolock_interrupts_workflow' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_workflow_start_default = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_workflow_start_default, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 24, + .line_info = fun_data_trezor_workflow_start_default + 3, + .line_info_top = fun_data_trezor_workflow_start_default + 16, + .opcodes = fun_data_trezor_workflow_start_default + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_workflow__lt_module_gt_ +// frozen bytecode for file trezor/workflow.py, scope trezor_workflow_set_default +static const byte fun_data_trezor_workflow_set_default[14] = { + 0x09,0x0e, // prelude + 0x19,0x35, // names: set_default, constructor + 0x80,0x6e,0x20,0x20,0x40, // code info + 0xb0, // LOAD_FAST 0 + 0x17,0x31, // STORE_GLOBAL 'default_constructor' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_workflow_set_default = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_workflow_set_default, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_trezor_workflow_set_default + 4, + .line_info_top = fun_data_trezor_workflow_set_default + 9, + .opcodes = fun_data_trezor_workflow_set_default + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_workflow__lt_module_gt_ +// frozen bytecode for file trezor/workflow.py, scope trezor_workflow_close_others +static const byte fun_data_trezor_workflow_close_others[69] = { + 0x30,0x16, // prelude + 0x1a, // names: close_others + 0x80,0x88,0x60,0x60,0x2f,0x67,0x40,0x2a,0x27,0x48, // code info + 0x12,0x30, // LOAD_GLOBAL 'default_task' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x12,0x30, // LOAD_GLOBAL 'default_task' + 0x14,0x1b, // LOAD_METHOD 'is_running' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x30, // LOAD_GLOBAL 'default_task' + 0x14,0x1c, // LOAD_METHOD 'close' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x36, // LOAD_GLOBAL 'list' + 0x12,0x22, // LOAD_GLOBAL 'tasks' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x10, // FOR_ITER 16 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x14,0x1b, // LOAD_METHOD 'is_running' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb0, // LOAD_FAST 0 + 0x14,0x1c, // LOAD_METHOD 'close' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0x2e, // JUMP -18 + 0x51, // LOAD_CONST_NONE + 0x12,0x2e, // LOAD_GLOBAL 'storage' + 0x13,0x1d, // LOAD_ATTR 'cache' + 0x18,0x1e, // STORE_ATTR 'homescreen_shown' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_workflow_close_others = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_workflow_close_others, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 69, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 26, + .line_info = fun_data_trezor_workflow_close_others + 3, + .line_info_top = fun_data_trezor_workflow_close_others + 13, + .opcodes = fun_data_trezor_workflow_close_others + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_workflow__lt_module_gt_ +// frozen bytecode for file trezor/workflow.py, scope trezor_workflow__finalize_default +static const byte fun_data_trezor_workflow__finalize_default[28] = { + 0x09,0x18, // prelude + 0x1f,0x37, // names: _finalize_default, task + 0x80,0x9e,0x40,0x40,0x20,0x40,0x40,0x43,0x64,0x20, // code info + 0x51, // LOAD_CONST_NONE + 0x17,0x30, // STORE_GLOBAL 'default_task' + 0x12,0x22, // LOAD_GLOBAL 'tasks' + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0x12,0x18, // LOAD_GLOBAL 'start_default' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_workflow__finalize_default = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_workflow__finalize_default, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_trezor_workflow__finalize_default + 4, + .line_info_top = fun_data_trezor_workflow__finalize_default + 14, + .opcodes = fun_data_trezor_workflow__finalize_default + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_workflow__lt_module_gt_ +// frozen bytecode for file trezor/workflow.py, scope trezor_workflow_IdleTimer +static const byte fun_data_trezor_workflow_IdleTimer[49] = { + 0x08,0x1a, // prelude + 0x11, // names: IdleTimer + 0x88,0xb1,0x80,0x07,0x64,0x20,0x84,0x0a,0x88,0x17,0x84,0x16, // code info + 0x11,0x38, // LOAD_NAME '__name__' + 0x16,0x39, // STORE_NAME '__module__' + 0x10,0x11, // LOAD_CONST_STRING 'IdleTimer' + 0x16,0x3a, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x20, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x23, // STORE_NAME '_timeout_task' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x24, // STORE_NAME 'touch' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x2b, // STORE_NAME 'set' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x15, // STORE_NAME 'remove' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_workflow_IdleTimer +// frozen bytecode for file trezor/workflow.py, scope trezor_workflow_IdleTimer___init__ +static const byte fun_data_trezor_workflow_IdleTimer___init__[19] = { + 0x11,0x0a, // prelude + 0x20,0x3b, // names: __init__, self + 0x80,0xb9,0x25, // code info + 0x2c,0x00, // BUILD_MAP 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x21, // STORE_ATTR 'timeouts' + 0x2c,0x00, // BUILD_MAP 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x22, // STORE_ATTR 'tasks' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_workflow_IdleTimer___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_workflow_IdleTimer___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_trezor_workflow_IdleTimer___init__ + 4, + .line_info_top = fun_data_trezor_workflow_IdleTimer___init__ + 7, + .opcodes = fun_data_trezor_workflow_IdleTimer___init__ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_workflow_IdleTimer +// frozen bytecode for file trezor/workflow.py, scope trezor_workflow_IdleTimer__timeout_task +static const byte fun_data_trezor_workflow_IdleTimer__timeout_task[26] = { + 0xa2,0x40,0x0c, // prelude + 0x23,0x3b,0x3c, // names: _timeout_task, self, callback + 0x80,0xc3,0x2b, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x23, // LOAD_METHOD '_timeout_task' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'tasks' + 0xb1, // LOAD_FAST 1 + 0x56, // STORE_SUBSCR + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_workflow_IdleTimer__timeout_task = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_workflow_IdleTimer__timeout_task, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_trezor_workflow_IdleTimer__timeout_task + 6, + .line_info_top = fun_data_trezor_workflow_IdleTimer__timeout_task + 9, + .opcodes = fun_data_trezor_workflow_IdleTimer__timeout_task + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_workflow_IdleTimer +// frozen bytecode for file trezor/workflow.py, scope trezor_workflow_IdleTimer_touch +static const byte fun_data_trezor_workflow_IdleTimer_touch[101] = { + 0x8a,0x11,0x1c, // prelude + 0x24,0x3b,0x2c, // names: touch, self, _restore_from_cache + 0x80,0xc7,0x80,0x0b,0x2e,0x49,0x27,0x47,0x2e,0x26,0x29, // code info + 0xb1, // LOAD_FAST 1 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x2e, // LOAD_GLOBAL 'storage' + 0x13,0x1d, // LOAD_ATTR 'cache' + 0x13,0x25, // LOAD_ATTR 'autolock_last_touch' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x2e, // LOAD_GLOBAL 'storage' + 0x13,0x1d, // LOAD_ATTR 'cache' + 0x13,0x25, // LOAD_ATTR 'autolock_last_touch' + 0xc2, // STORE_FAST 2 + 0x42,0x47, // JUMP 7 + 0x12,0x02, // LOAD_GLOBAL 'utime' + 0x14,0x26, // LOAD_METHOD 'ticks_ms' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x12,0x2e, // LOAD_GLOBAL 'storage' + 0x13,0x1d, // LOAD_ATTR 'cache' + 0x18,0x25, // STORE_ATTR 'autolock_last_touch' + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'tasks' + 0x14,0x27, // LOAD_METHOD 'items' + 0x36,0x00, // CALL_METHOD 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x23, // FOR_ITER 35 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'timeouts' + 0xb3, // LOAD_FAST 3 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0x12,0x02, // LOAD_GLOBAL 'utime' + 0x14,0x28, // LOAD_METHOD 'ticks_add' + 0xb2, // LOAD_FAST 2 + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0xc6, // STORE_FAST 6 + 0x12,0x05, // LOAD_GLOBAL 'loop' + 0x14,0x29, // LOAD_METHOD 'schedule' + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xb6, // LOAD_FAST 6 + 0x10,0x2a, // LOAD_CONST_STRING 'reschedule' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x03, // CALL_METHOD 259 + 0x59, // POP_TOP + 0x42,0x1b, // JUMP -37 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_workflow_IdleTimer_touch = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_workflow_IdleTimer_touch, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 101, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 36, + .line_info = fun_data_trezor_workflow_IdleTimer_touch + 6, + .line_info_top = fun_data_trezor_workflow_IdleTimer_touch + 17, + .opcodes = fun_data_trezor_workflow_IdleTimer_touch + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_workflow_IdleTimer +// frozen bytecode for file trezor/workflow.py, scope trezor_workflow_IdleTimer_set +static const byte fun_data_trezor_workflow_IdleTimer_set[62] = { + 0x33,0x18, // prelude + 0x2b,0x3b,0x3d,0x3c, // names: set, self, timeout_ms, callback + 0x80,0xde,0x80,0x0e,0x27,0x4c,0x26,0x2b, // code info + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'tasks' + 0xdd, // BINARY_OP 6 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x05, // LOAD_GLOBAL 'loop' + 0x14,0x1c, // LOAD_METHOD 'close' + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'tasks' + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'timeouts' + 0xb2, // LOAD_FAST 2 + 0x56, // STORE_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x14,0x23, // LOAD_METHOD '_timeout_task' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'tasks' + 0xb2, // LOAD_FAST 2 + 0x56, // STORE_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x14,0x24, // LOAD_METHOD 'touch' + 0x10,0x2c, // LOAD_CONST_STRING '_restore_from_cache' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x00, // CALL_METHOD 256 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_workflow_IdleTimer_set = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_workflow_IdleTimer_set, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 62, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_trezor_workflow_IdleTimer_set + 6, + .line_info_top = fun_data_trezor_workflow_IdleTimer_set + 14, + .opcodes = fun_data_trezor_workflow_IdleTimer_set + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_workflow_IdleTimer +// frozen bytecode for file trezor/workflow.py, scope trezor_workflow_IdleTimer_remove +static const byte fun_data_trezor_workflow_IdleTimer_remove[47] = { + 0x32,0x12, // prelude + 0x15,0x3b,0x3c, // names: remove, self, callback + 0x80,0xf4,0x20,0x2a,0x2a,0x26, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'timeouts' + 0x14,0x2d, // LOAD_METHOD 'pop' + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'tasks' + 0x14,0x2d, // LOAD_METHOD 'pop' + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x05, // LOAD_GLOBAL 'loop' + 0x14,0x1c, // LOAD_METHOD 'close' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_workflow_IdleTimer_remove = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_workflow_IdleTimer_remove, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_trezor_workflow_IdleTimer_remove + 5, + .line_info_top = fun_data_trezor_workflow_IdleTimer_remove + 11, + .opcodes = fun_data_trezor_workflow_IdleTimer_remove + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_workflow_IdleTimer[] = { + &raw_code_trezor_workflow_IdleTimer___init__, + &raw_code_trezor_workflow_IdleTimer__timeout_task, + &raw_code_trezor_workflow_IdleTimer_touch, + &raw_code_trezor_workflow_IdleTimer_set, + &raw_code_trezor_workflow_IdleTimer_remove, +}; + +static const mp_raw_code_t raw_code_trezor_workflow_IdleTimer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_workflow_IdleTimer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = (void *)&children_trezor_workflow_IdleTimer, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_trezor_workflow_IdleTimer + 3, + .line_info_top = fun_data_trezor_workflow_IdleTimer + 15, + .opcodes = fun_data_trezor_workflow_IdleTimer + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_workflow__lt_module_gt_[] = { + &raw_code_trezor_workflow__on_start, + &raw_code_trezor_workflow__on_close, + &raw_code_trezor_workflow_spawn, + &raw_code_trezor_workflow_start_default, + &raw_code_trezor_workflow_set_default, + &raw_code_trezor_workflow_close_others, + &raw_code_trezor_workflow__finalize_default, + &raw_code_trezor_workflow_IdleTimer, +}; + +static const mp_raw_code_t raw_code_trezor_workflow__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_workflow__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 183, + #endif + .children = (void *)&children_trezor_workflow__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 8, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_workflow__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_workflow__lt_module_gt_ + 45, + .opcodes = fun_data_trezor_workflow__lt_module_gt_ + 45, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_workflow[62] = { + MP_QSTR_trezor_slash_workflow_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utime, + MP_QSTR_storage_dot_cache, + MP_QSTR_log, + MP_QSTR_loop, + MP_QSTR_trezor, + MP_QSTR_MessageType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_Initialize, + MP_QSTR_EndSession, + MP_QSTR_GetFeatures, + MP_QSTR_Cancel, + MP_QSTR_LockDevice, + MP_QSTR_DoPreauthorized, + MP_QSTR_WipeDevice, + MP_QSTR_SetBusy, + MP_QSTR_IdleTimer, + MP_QSTR__on_start, + MP_QSTR_add, + MP_QSTR__on_close, + MP_QSTR_remove, + MP_QSTR_spawn, + MP_QSTR_set_finalizer, + MP_QSTR_start_default, + MP_QSTR_set_default, + MP_QSTR_close_others, + MP_QSTR_is_running, + MP_QSTR_close, + MP_QSTR_cache, + MP_QSTR_homescreen_shown, + MP_QSTR__finalize_default, + MP_QSTR___init__, + MP_QSTR_timeouts, + MP_QSTR_tasks, + MP_QSTR__timeout_task, + MP_QSTR_touch, + MP_QSTR_autolock_last_touch, + MP_QSTR_ticks_ms, + MP_QSTR_items, + MP_QSTR_ticks_add, + MP_QSTR_schedule, + MP_QSTR_reschedule, + MP_QSTR_set, + MP_QSTR__restore_from_cache, + MP_QSTR_pop, + MP_QSTR_storage, + MP_QSTR_ALLOW_WHILE_LOCKED, + MP_QSTR_default_task, + MP_QSTR_default_constructor, + MP_QSTR_autolock_interrupts_workflow, + MP_QSTR_idle_timer, + MP_QSTR_workflow, + MP_QSTR_constructor, + MP_QSTR_list, + MP_QSTR_task, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_self, + MP_QSTR_callback, + MP_QSTR_timeout_ms, +}; + +static const mp_frozen_module_t frozen_module_trezor_workflow = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_workflow, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_workflow__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_crypto___init__ +// - original source file: build/firmware/src/trezor/crypto/__init__.mpy +// - frozen file name: trezor/crypto/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/crypto/__init__.py, scope trezor_crypto___init____lt_module_gt_ +static const byte fun_data_trezor_crypto___init____lt_module_gt_[102] = { + 0x40,0x10, // prelude + 0x01, // names: + 0x1f,0x77,0x80,0x08,0x4c,0x20,0x58, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'aes' + 0x10,0x03, // LOAD_CONST_STRING 'bip32' + 0x10,0x04, // LOAD_CONST_STRING 'bip39' + 0x10,0x05, // LOAD_CONST_STRING 'chacha20poly1305' + 0x10,0x06, // LOAD_CONST_STRING 'crc' + 0x10,0x07, // LOAD_CONST_STRING 'hmac' + 0x10,0x08, // LOAD_CONST_STRING 'pbkdf2' + 0x10,0x09, // LOAD_CONST_STRING 'random' + 0x2a,0x08, // BUILD_TUPLE 8 + 0x1b,0x0a, // IMPORT_NAME 'trezorcrypto' + 0x1c,0x02, // IMPORT_FROM 'aes' + 0x16,0x02, // STORE_NAME 'aes' + 0x1c,0x03, // IMPORT_FROM 'bip32' + 0x16,0x03, // STORE_NAME 'bip32' + 0x1c,0x04, // IMPORT_FROM 'bip39' + 0x16,0x04, // STORE_NAME 'bip39' + 0x1c,0x05, // IMPORT_FROM 'chacha20poly1305' + 0x16,0x05, // STORE_NAME 'chacha20poly1305' + 0x1c,0x06, // IMPORT_FROM 'crc' + 0x16,0x06, // STORE_NAME 'crc' + 0x1c,0x07, // IMPORT_FROM 'hmac' + 0x16,0x07, // STORE_NAME 'hmac' + 0x1c,0x08, // IMPORT_FROM 'pbkdf2' + 0x16,0x08, // STORE_NAME 'pbkdf2' + 0x1c,0x09, // IMPORT_FROM 'random' + 0x16,0x09, // STORE_NAME 'random' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor' + 0x1c,0x0b, // IMPORT_FROM 'utils' + 0x16,0x0b, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'cardano' + 0x10,0x0e, // LOAD_CONST_STRING 'monero' + 0x10,0x0f, // LOAD_CONST_STRING 'nem' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x0a, // IMPORT_NAME 'trezorcrypto' + 0x1c,0x0d, // IMPORT_FROM 'cardano' + 0x16,0x0d, // STORE_NAME 'cardano' + 0x1c,0x0e, // IMPORT_FROM 'monero' + 0x16,0x0e, // STORE_NAME 'monero' + 0x1c,0x0f, // IMPORT_FROM 'nem' + 0x16,0x0f, // STORE_NAME 'nem' + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_crypto___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 102, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_crypto___init____lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_crypto___init____lt_module_gt_ + 10, + .opcodes = fun_data_trezor_crypto___init____lt_module_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_crypto___init__[16] = { + MP_QSTR_trezor_slash_crypto_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_aes, + MP_QSTR_bip32, + MP_QSTR_bip39, + MP_QSTR_chacha20poly1305, + MP_QSTR_crc, + MP_QSTR_hmac, + MP_QSTR_pbkdf2, + MP_QSTR_random, + MP_QSTR_trezorcrypto, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_cardano, + MP_QSTR_monero, + MP_QSTR_nem, +}; + +static const mp_frozen_module_t frozen_module_trezor_crypto___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_crypto___init__, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_crypto___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_crypto_base32 +// - original source file: build/firmware/src/trezor/crypto/base32.mpy +// - frozen file name: trezor/crypto/base32.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/crypto/base32.py, scope trezor_crypto_base32__lt_module_gt_ +static const byte fun_data_trezor_crypto_base32__lt_module_gt_[44] = { + 0x10,0x10, // prelude + 0x01, // names: + 0x60,0x40,0x44,0x28,0x6c,0x84,0x2b, // code info + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x12, // STORE_NAME '_b32alphabet' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x11,0x12, // LOAD_NAME '_b32alphabet' + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x13, // STORE_NAME '_b32tab' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x11,0x14, // LOAD_NAME 'enumerate' + 0x11,0x12, // LOAD_NAME '_b32alphabet' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x15, // STORE_NAME '_b32rev' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x04, // STORE_NAME 'encode' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x08, // STORE_NAME 'decode' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_base32__lt_module_gt_ +// frozen bytecode for file trezor/crypto/base32.py, scope trezor_crypto_base32__lt_listcomp_gt_ +static const byte fun_data_trezor_crypto_base32__lt_listcomp_gt_[23] = { + 0x41,0x08, // prelude + 0x02,0x16, // names: , * + 0x80,0x07, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc1, // STORE_FAST 1 + 0x12,0x17, // LOAD_GLOBAL 'ord' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x34, // JUMP -12 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_base32__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_base32__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_trezor_crypto_base32__lt_listcomp_gt_ + 4, + .line_info_top = fun_data_trezor_crypto_base32__lt_listcomp_gt_ + 6, + .opcodes = fun_data_trezor_crypto_base32__lt_listcomp_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_base32__lt_module_gt_ +// frozen bytecode for file trezor/crypto/base32.py, scope trezor_crypto_base32__lt_dictcomp_gt_ +static const byte fun_data_trezor_crypto_base32__lt_dictcomp_gt_[27] = { + 0x51,0x08, // prelude + 0x03,0x16, // names: , * + 0x80,0x08, // code info + 0x2c,0x00, // BUILD_MAP 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0e, // FOR_ITER 14 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc1, // STORE_FAST 1 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x12,0x17, // LOAD_GLOBAL 'ord' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2f,0x19, // STORE_COMP 25 + 0x42,0x30, // JUMP -16 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_base32__lt_dictcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_base32__lt_dictcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 3, + .line_info = fun_data_trezor_crypto_base32__lt_dictcomp_gt_ + 4, + .line_info_top = fun_data_trezor_crypto_base32__lt_dictcomp_gt_ + 6, + .opcodes = fun_data_trezor_crypto_base32__lt_dictcomp_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_base32__lt_module_gt_ +// frozen bytecode for file trezor/crypto/base32.py, scope trezor_crypto_base32_encode +static const byte fun_data_trezor_crypto_base32_encode[282] = { + 0xb1,0x10,0x44, // prelude + 0x04,0x18, // names: encode, s + 0x80,0x0c,0x4b,0x4e,0x23,0x2a,0x24,0x25,0x67,0x60,0x36,0x28,0x28,0x23,0x20,0x26,0x28,0x28,0x26,0x28,0x28,0x26,0x76,0x20,0x25,0x2c,0x25,0x2c,0x25,0x2c,0x25,0x4c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'unpack' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'ustruct' + 0x1c,0x05, // IMPORT_FROM 'unpack' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x19, // LOAD_GLOBAL 'divmod' + 0x12,0x1a, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc2, // STORE_FAST 2 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb0, // LOAD_FAST 0 + 0x12,0x1b, // LOAD_GLOBAL 'bytes' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xb3, // LOAD_FAST 3 + 0xf3, // BINARY_OP 28 __sub__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc0, // STORE_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0x12,0x1c, // LOAD_GLOBAL 'bytearray' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xeb,0x80, // JUMP 107 + 0x57, // DUP_TOP + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x10,0x07, // LOAD_CONST_STRING '!HHB' + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf4, // BINARY_OP 29 __mul__ + 0xb5, // LOAD_FAST 5 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf4, // BINARY_OP 29 __mul__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x02, // CALL_FUNCTION 2 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc6, // STORE_FAST 6 + 0xc7, // STORE_FAST 7 + 0xc8, // STORE_FAST 8 + 0xb7, // LOAD_FAST 7 + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xef, // BINARY_OP 24 __and__ + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xf0, // BINARY_OP 25 __lshift__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc7, // STORE_FAST 7 + 0xb8, // LOAD_FAST 8 + 0xb7, // LOAD_FAST 7 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xef, // BINARY_OP 24 __and__ + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf0, // BINARY_OP 25 __lshift__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc8, // STORE_FAST 8 + 0xb4, // LOAD_FAST 4 + 0x12,0x1b, // LOAD_GLOBAL 'bytes' + 0x12,0x13, // LOAD_GLOBAL '_b32tab' + 0xb6, // LOAD_FAST 6 + 0x8b, // LOAD_CONST_SMALL_INT 11 + 0xf1, // BINARY_OP 26 __rshift__ + 0x55, // LOAD_SUBSCR + 0x12,0x13, // LOAD_GLOBAL '_b32tab' + 0xb6, // LOAD_FAST 6 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0xf1, // BINARY_OP 26 __rshift__ + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xef, // BINARY_OP 24 __and__ + 0x55, // LOAD_SUBSCR + 0x12,0x13, // LOAD_GLOBAL '_b32tab' + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf1, // BINARY_OP 26 __rshift__ + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xef, // BINARY_OP 24 __and__ + 0x55, // LOAD_SUBSCR + 0x12,0x13, // LOAD_GLOBAL '_b32tab' + 0xb7, // LOAD_FAST 7 + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0xf1, // BINARY_OP 26 __rshift__ + 0x55, // LOAD_SUBSCR + 0x12,0x13, // LOAD_GLOBAL '_b32tab' + 0xb7, // LOAD_FAST 7 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xf1, // BINARY_OP 26 __rshift__ + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xef, // BINARY_OP 24 __and__ + 0x55, // LOAD_SUBSCR + 0x12,0x13, // LOAD_GLOBAL '_b32tab' + 0xb7, // LOAD_FAST 7 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf1, // BINARY_OP 26 __rshift__ + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xef, // BINARY_OP 24 __and__ + 0x55, // LOAD_SUBSCR + 0x12,0x13, // LOAD_GLOBAL '_b32tab' + 0xb8, // LOAD_FAST 8 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf1, // BINARY_OP 26 __rshift__ + 0x55, // LOAD_SUBSCR + 0x12,0x13, // LOAD_GLOBAL '_b32tab' + 0xb8, // LOAD_FAST 8 + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xef, // BINARY_OP 24 __and__ + 0x55, // LOAD_SUBSCR + 0x2b,0x08, // BUILD_LIST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc4, // STORE_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x8f,0x7f, // POP_JUMP_IF_TRUE -113 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0x7a, // LOAD_CONST_SMALL_INT -6 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc4, // STORE_FAST 4 + 0x42,0x73, // JUMP 51 + 0xb3, // LOAD_FAST 3 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0x7c, // LOAD_CONST_SMALL_INT -4 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xf2, // BINARY_OP 27 __add__ + 0xc4, // STORE_FAST 4 + 0x42,0x62, // JUMP 34 + 0xb3, // LOAD_FAST 3 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0x7d, // LOAD_CONST_SMALL_INT -3 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xf2, // BINARY_OP 27 __add__ + 0xc4, // STORE_FAST 4 + 0x42,0x51, // JUMP 17 + 0xb3, // LOAD_FAST 3 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xf2, // BINARY_OP 27 __add__ + 0xc4, // STORE_FAST 4 + 0x42,0x40, // JUMP 0 + 0x12,0x1b, // LOAD_GLOBAL 'bytes' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x08, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_base32_encode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_base32_encode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 282, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 23, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_trezor_crypto_base32_encode + 5, + .line_info_top = fun_data_trezor_crypto_base32_encode + 37, + .opcodes = fun_data_trezor_crypto_base32_encode + 37, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_base32__lt_module_gt_ +// frozen bytecode for file trezor/crypto/base32.py, scope trezor_crypto_base32_decode +static const byte fun_data_trezor_crypto_base32_decode[301] = { + 0xa9,0x10,0x52, // prelude + 0x08,0x18, // names: decode, s + 0x80,0x37,0x4b,0x26,0x2e,0x23,0x67,0x20,0x28,0x25,0x28,0x4a,0x62,0x23,0x22,0x22,0x25,0x28,0x25,0x27,0x29,0x24,0x25,0x34,0x22,0x45,0x31,0x25,0x26,0x25,0x29,0x25,0x29,0x25,0x29,0x25,0x49,0x27,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'unhexlify' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'ubinascii' + 0x1c,0x09, // IMPORT_FROM 'unhexlify' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x04, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0x12,0x19, // LOAD_GLOBAL 'divmod' + 0x12,0x1a, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x34,0x02, // CALL_FUNCTION 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x1d, // LOAD_GLOBAL 'ValueError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x14,0x0b, // LOAD_METHOD 'find' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x1a, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb5, // LOAD_FAST 5 + 0xf3, // BINARY_OP 28 __sub__ + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xb5, // LOAD_FAST 5 + 0xd1, // UNARY_OP 1 __neg__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc2, // STORE_FAST 2 + 0x42,0x42, // JUMP 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc5, // STORE_FAST 5 + 0x2b,0x00, // BUILD_LIST 0 + 0xc6, // STORE_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc7, // STORE_FAST 7 + 0xa3, // LOAD_CONST_SMALL_INT 35 + 0xc8, // STORE_FAST 8 + 0xb2, // LOAD_FAST 2 + 0x5f, // GET_ITER_STACK + 0x4b,0x42, // FOR_ITER 66 + 0xc9, // STORE_FAST 9 + 0x12,0x15, // LOAD_GLOBAL '_b32rev' + 0x14,0x0c, // LOAD_METHOD 'get' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x1d, // LOAD_GLOBAL 'ValueError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb7, // LOAD_FAST 7 + 0x12,0x15, // LOAD_GLOBAL '_b32rev' + 0xb9, // LOAD_FAST 9 + 0x55, // LOAD_SUBSCR + 0xb8, // LOAD_FAST 8 + 0xf0, // BINARY_OP 25 __lshift__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc7, // STORE_FAST 7 + 0xb8, // LOAD_FAST 8 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xe6, // BINARY_OP 15 __isub__ + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0xb6, // LOAD_FAST 6 + 0x14,0x0d, // LOAD_METHOD 'append' + 0xb1, // LOAD_FAST 1 + 0x10,0x0e, // LOAD_CONST_STRING '{:010x}' + 0x14,0x0f, // LOAD_METHOD 'format' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x04, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc7, // STORE_FAST 7 + 0xa3, // LOAD_CONST_SMALL_INT 35 + 0xc8, // STORE_FAST 8 + 0x42,0xbc,0x7f, // JUMP -68 + 0xb1, // LOAD_FAST 1 + 0x12,0x1b, // LOAD_GLOBAL 'bytes' + 0x10,0x0e, // LOAD_CONST_STRING '{:010x}' + 0x14,0x0f, // LOAD_METHOD 'format' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x10, // LOAD_CONST_STRING 'ascii' + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcb, // STORE_FAST 11 + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0xcb, // STORE_FAST 11 + 0x42,0xbf,0x80, // JUMP 63 + 0xb5, // LOAD_FAST 5 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xbb, // LOAD_FAST 11 + 0x51, // LOAD_CONST_NONE + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xcb, // STORE_FAST 11 + 0x42,0x71, // JUMP 49 + 0xb5, // LOAD_FAST 5 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xbb, // LOAD_FAST 11 + 0x51, // LOAD_CONST_NONE + 0x7e, // LOAD_CONST_SMALL_INT -2 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xcb, // STORE_FAST 11 + 0x42,0x63, // JUMP 35 + 0xb5, // LOAD_FAST 5 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xbb, // LOAD_FAST 11 + 0x51, // LOAD_CONST_NONE + 0x7d, // LOAD_CONST_SMALL_INT -3 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xcb, // STORE_FAST 11 + 0x42,0x55, // JUMP 21 + 0xb5, // LOAD_FAST 5 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xbb, // LOAD_FAST 11 + 0x51, // LOAD_CONST_NONE + 0x7c, // LOAD_CONST_SMALL_INT -4 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xcb, // STORE_FAST 11 + 0x42,0x47, // JUMP 7 + 0x12,0x1d, // LOAD_GLOBAL 'ValueError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb6, // LOAD_FAST 6 + 0x14,0x0d, // LOAD_METHOD 'append' + 0xbb, // LOAD_FAST 11 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x14,0x11, // LOAD_METHOD 'join' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_base32_decode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_base32_decode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 301, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 22, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_trezor_crypto_base32_decode + 5, + .line_info_top = fun_data_trezor_crypto_base32_decode + 44, + .opcodes = fun_data_trezor_crypto_base32_decode + 44, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_base32__lt_module_gt_[] = { + &raw_code_trezor_crypto_base32__lt_listcomp_gt_, + &raw_code_trezor_crypto_base32__lt_dictcomp_gt_, + &raw_code_trezor_crypto_base32_encode, + &raw_code_trezor_crypto_base32_decode, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_base32__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_crypto_base32__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = (void *)&children_trezor_crypto_base32__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_crypto_base32__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_crypto_base32__lt_module_gt_ + 10, + .opcodes = fun_data_trezor_crypto_base32__lt_module_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_crypto_base32[30] = { + MP_QSTR_trezor_slash_crypto_slash_base32_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR__lt_dictcomp_gt_, + MP_QSTR_encode, + MP_QSTR_unpack, + MP_QSTR_ustruct, + MP_QSTR__bang_HHB, + MP_QSTR_decode, + MP_QSTR_unhexlify, + MP_QSTR_ubinascii, + MP_QSTR_find, + MP_QSTR_get, + MP_QSTR_append, + MP_QSTR__brace_open__colon_010x_brace_close_, + MP_QSTR_format, + MP_QSTR_ascii, + MP_QSTR_join, + MP_QSTR__b32alphabet, + MP_QSTR__b32tab, + MP_QSTR_enumerate, + MP_QSTR__b32rev, + MP_QSTR__star_, + MP_QSTR_ord, + MP_QSTR_s, + MP_QSTR_divmod, + MP_QSTR_len, + MP_QSTR_bytes, + MP_QSTR_bytearray, + MP_QSTR_ValueError, +}; + +// constants +static const mp_obj_str_t const_obj_trezor_crypto_base32_0 = {{&mp_type_str}, 45503, 32, (const byte*)"\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x32\x33\x34\x35\x36\x37"}; +static const mp_obj_str_t const_obj_trezor_crypto_base32_1 = {{&mp_type_bytes}, 20453, 6, (const byte*)"\x3d\x3d\x3d\x3d\x3d\x3d"}; +static const mp_obj_str_t const_obj_trezor_crypto_base32_2 = {{&mp_type_bytes}, 11333, 4, (const byte*)"\x3d\x3d\x3d\x3d"}; +static const mp_obj_str_t const_obj_trezor_crypto_base32_3 = {{&mp_type_bytes}, 32120, 3, (const byte*)"\x3d\x3d\x3d"}; +static const mp_obj_str_t const_obj_trezor_crypto_base32_4 = {{&mp_type_bytes}, 46488, 1, (const byte*)"\x3d"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_crypto_base32[8] = { + MP_ROM_PTR(&const_obj_trezor_crypto_base32_0), + MP_ROM_PTR(&const_obj_trezor_crypto_base32_1), + MP_ROM_PTR(&const_obj_trezor_crypto_base32_2), + MP_ROM_PTR(&const_obj_trezor_crypto_base32_3), + MP_ROM_PTR(&const_obj_trezor_crypto_base32_4), + MP_ROM_QSTR(MP_QSTR_Incorrect_space_padding), + MP_ROM_QSTR(MP_QSTR_Non_hyphen_base32_space_digit_space_found), + MP_ROM_PTR(&mp_const_empty_bytes_obj), +}; + +static const mp_frozen_module_t frozen_module_trezor_crypto_base32 = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_crypto_base32, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_crypto_base32, + }, + .rc = &raw_code_trezor_crypto_base32__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_crypto_base58 +// - original source file: build/firmware/src/trezor/crypto/base58.mpy +// - frozen file name: trezor/crypto/base58.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/crypto/base58.py, scope trezor_crypto_base58__lt_module_gt_ +static const byte fun_data_trezor_crypto_base58__lt_module_gt_[90] = { + 0x08,0x2c, // prelude + 0x01, // names: + 0x80,0x12,0x64,0x89,0x15,0x89,0x15,0x64,0x60,0x64,0x60,0x64,0x60,0x64,0x60,0x64,0x60,0x89,0x07,0x89,0x0a, // code info + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x1a, // STORE_NAME '_alphabet' + 0x11,0x1a, // LOAD_NAME '_alphabet' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x02, // STORE_NAME 'encode' + 0x11,0x1a, // LOAD_NAME '_alphabet' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x06, // STORE_NAME 'decode' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x09, // STORE_NAME 'sha256d_32' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x0d, // STORE_NAME 'groestl512d_32' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x0f, // STORE_NAME 'blake256d_32' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x11, // STORE_NAME 'keccak_32' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x14, // STORE_NAME 'ripemd160_32' + 0x11,0x09, // LOAD_NAME 'sha256d_32' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x07, // MAKE_FUNCTION_DEFARGS 7 + 0x16,0x16, // STORE_NAME 'encode_check' + 0x11,0x09, // LOAD_NAME 'sha256d_32' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x08, // MAKE_FUNCTION_DEFARGS 8 + 0x16,0x17, // STORE_NAME 'decode_check' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x18, // STORE_NAME 'verify_checksum' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_base58__lt_module_gt_ +// frozen bytecode for file trezor/crypto/base58.py, scope trezor_crypto_base58_encode +static const byte fun_data_trezor_crypto_base58_encode[119] = { + 0x82,0x11,0x22, // prelude + 0x02,0x1b,0x1c, // names: encode, data, alphabet + 0x80,0x16,0x60,0x26,0x28,0x46,0x26,0x29,0x26,0x46,0x23,0x22,0x2b,0x4b, // code info + 0x12,0x1d, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x03, // LOAD_METHOD 'lstrip' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc0, // STORE_FAST 0 + 0x12,0x1d, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0x12,0x1e, // LOAD_GLOBAL 'reversed' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x0d, // FOR_ITER 13 + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0xf4, // BINARY_OP 29 __mul__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf0, // BINARY_OP 25 __lshift__ + 0xc4, // STORE_FAST 4 + 0x42,0x31, // JUMP -15 + 0x10,0x04, // LOAD_CONST_STRING '' + 0xc7, // STORE_FAST 7 + 0x42,0x51, // JUMP 17 + 0x12,0x1f, // LOAD_GLOBAL 'divmod' + 0xb5, // LOAD_FAST 5 + 0x22,0x3a, // LOAD_CONST_SMALL_INT 58 + 0x34,0x02, // CALL_FUNCTION 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc5, // STORE_FAST 5 + 0xc8, // STORE_FAST 8 + 0xb7, // LOAD_FAST 7 + 0xb1, // LOAD_FAST 1 + 0xb8, // LOAD_FAST 8 + 0x55, // LOAD_SUBSCR + 0xe5, // BINARY_OP 14 __iadd__ + 0xc7, // STORE_FAST 7 + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x2a, // POP_JUMP_IF_TRUE -22 + 0x10,0x04, // LOAD_CONST_STRING '' + 0x14,0x05, // LOAD_METHOD 'join' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x12,0x1e, // LOAD_GLOBAL 'reversed' + 0xb7, // LOAD_FAST 7 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xf3, // BINARY_OP 28 __sub__ + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_base58_encode +// frozen bytecode for file trezor/crypto/base58.py, scope trezor_crypto_base58_encode__lt_genexpr_gt_ +static const byte fun_data_trezor_crypto_base58_encode__lt_genexpr_gt_[21] = { + 0xb1,0x40,0x08, // prelude + 0x19,0x24, // names: , * + 0x80,0x27, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x06, // FOR_ITER 6 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x38, // JUMP -8 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_base58_encode__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_base58_encode__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_trezor_crypto_base58_encode__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_trezor_crypto_base58_encode__lt_genexpr_gt_ + 7, + .opcodes = fun_data_trezor_crypto_base58_encode__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_base58_encode[] = { + &raw_code_trezor_crypto_base58_encode__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_base58_encode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_base58_encode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 119, + #endif + .children = (void *)&children_trezor_crypto_base58_encode, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 2, + .line_info = fun_data_trezor_crypto_base58_encode + 6, + .line_info_top = fun_data_trezor_crypto_base58_encode + 20, + .opcodes = fun_data_trezor_crypto_base58_encode + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_base58__lt_module_gt_ +// frozen bytecode for file trezor/crypto/base58.py, scope trezor_crypto_base58_decode +static const byte fun_data_trezor_crypto_base58_decode[126] = { + 0x8a,0x11,0x22, // prelude + 0x06,0x20,0x1c, // names: decode, string, alphabet + 0x80,0x2b,0x60,0x26,0x29,0x46,0x26,0x29,0x2b,0x47,0x23,0x22,0x2c,0x4c, // code info + 0x12,0x1d, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x03, // LOAD_METHOD 'lstrip' + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0xc0, // STORE_FAST 0 + 0x12,0x1d, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0x12,0x1e, // LOAD_GLOBAL 'reversed' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x13, // FOR_ITER 19 + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x14,0x07, // LOAD_METHOD 'index' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0xf4, // BINARY_OP 29 __mul__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x22,0x3a, // LOAD_CONST_SMALL_INT 58 + 0xe7, // BINARY_OP 16 __imul__ + 0xc4, // STORE_FAST 4 + 0x42,0x2b, // JUMP -21 + 0x2b,0x00, // BUILD_LIST 0 + 0xc7, // STORE_FAST 7 + 0x42,0x53, // JUMP 19 + 0x12,0x1f, // LOAD_GLOBAL 'divmod' + 0xb5, // LOAD_FAST 5 + 0x22,0x82,0x00, // LOAD_CONST_SMALL_INT 256 + 0x34,0x02, // CALL_FUNCTION 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc5, // STORE_FAST 5 + 0xc8, // STORE_FAST 8 + 0xb7, // LOAD_FAST 7 + 0x14,0x08, // LOAD_METHOD 'append' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x28, // POP_JUMP_IF_TRUE -24 + 0x12,0x21, // LOAD_GLOBAL 'bytes' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x12,0x1e, // LOAD_GLOBAL 'reversed' + 0xb7, // LOAD_FAST 7 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x01, // BUILD_LIST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xf3, // BINARY_OP 28 __sub__ + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_base58_decode +// frozen bytecode for file trezor/crypto/base58.py, scope trezor_crypto_base58_decode__lt_genexpr_gt_ +static const byte fun_data_trezor_crypto_base58_decode__lt_genexpr_gt_[21] = { + 0xb1,0x40,0x08, // prelude + 0x19,0x24, // names: , * + 0x80,0x3c, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x06, // FOR_ITER 6 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x38, // JUMP -8 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_base58_decode__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_base58_decode__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_trezor_crypto_base58_decode__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_trezor_crypto_base58_decode__lt_genexpr_gt_ + 7, + .opcodes = fun_data_trezor_crypto_base58_decode__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_base58_decode[] = { + &raw_code_trezor_crypto_base58_decode__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_base58_decode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_base58_decode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 126, + #endif + .children = (void *)&children_trezor_crypto_base58_decode, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 6, + .line_info = fun_data_trezor_crypto_base58_decode + 6, + .line_info_top = fun_data_trezor_crypto_base58_decode + 20, + .opcodes = fun_data_trezor_crypto_base58_decode + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_base58__lt_module_gt_ +// frozen bytecode for file trezor/crypto/base58.py, scope trezor_crypto_base58_sha256d_32 +static const byte fun_data_trezor_crypto_base58_sha256d_32[39] = { + 0x21,0x0a, // prelude + 0x09,0x1b, // names: sha256d_32, data + 0x80,0x40,0x4b, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0a, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'hashlib' + 0x1c,0x0a, // IMPORT_FROM 'sha256' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x0c, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x0c, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x51, // LOAD_CONST_NONE + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_base58_sha256d_32 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_base58_sha256d_32, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_trezor_crypto_base58_sha256d_32 + 4, + .line_info_top = fun_data_trezor_crypto_base58_sha256d_32 + 7, + .opcodes = fun_data_trezor_crypto_base58_sha256d_32 + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_base58__lt_module_gt_ +// frozen bytecode for file trezor/crypto/base58.py, scope trezor_crypto_base58_groestl512d_32 +static const byte fun_data_trezor_crypto_base58_groestl512d_32[39] = { + 0x21,0x0a, // prelude + 0x0d,0x1b, // names: groestl512d_32, data + 0x80,0x46,0x4b, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0e, // LOAD_CONST_STRING 'groestl512' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'hashlib' + 0x1c,0x0e, // IMPORT_FROM 'groestl512' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x0c, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x0c, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x51, // LOAD_CONST_NONE + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_base58_groestl512d_32 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_base58_groestl512d_32, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_trezor_crypto_base58_groestl512d_32 + 4, + .line_info_top = fun_data_trezor_crypto_base58_groestl512d_32 + 7, + .opcodes = fun_data_trezor_crypto_base58_groestl512d_32 + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_base58__lt_module_gt_ +// frozen bytecode for file trezor/crypto/base58.py, scope trezor_crypto_base58_blake256d_32 +static const byte fun_data_trezor_crypto_base58_blake256d_32[39] = { + 0x21,0x0a, // prelude + 0x0f,0x1b, // names: blake256d_32, data + 0x80,0x4c,0x4b, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x10, // LOAD_CONST_STRING 'blake256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'hashlib' + 0x1c,0x10, // IMPORT_FROM 'blake256' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x0c, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x0c, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x51, // LOAD_CONST_NONE + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_base58_blake256d_32 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_base58_blake256d_32, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_trezor_crypto_base58_blake256d_32 + 4, + .line_info_top = fun_data_trezor_crypto_base58_blake256d_32 + 7, + .opcodes = fun_data_trezor_crypto_base58_blake256d_32 + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_base58__lt_module_gt_ +// frozen bytecode for file trezor/crypto/base58.py, scope trezor_crypto_base58_keccak_32 +static const byte fun_data_trezor_crypto_base58_keccak_32[36] = { + 0x29,0x0a, // prelude + 0x11,0x1b, // names: keccak_32, data + 0x80,0x52,0x4b, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x12, // LOAD_CONST_STRING 'sha3_256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'hashlib' + 0x1c,0x12, // IMPORT_FROM 'sha3_256' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x10,0x13, // LOAD_CONST_STRING 'keccak' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0x14,0x0c, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x51, // LOAD_CONST_NONE + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_base58_keccak_32 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_base58_keccak_32, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_trezor_crypto_base58_keccak_32 + 4, + .line_info_top = fun_data_trezor_crypto_base58_keccak_32 + 7, + .opcodes = fun_data_trezor_crypto_base58_keccak_32 + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_base58__lt_module_gt_ +// frozen bytecode for file trezor/crypto/base58.py, scope trezor_crypto_base58_ripemd160_32 +static const byte fun_data_trezor_crypto_base58_ripemd160_32[32] = { + 0x21,0x0a, // prelude + 0x14,0x1b, // names: ripemd160_32, data + 0x80,0x58,0x4b, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x15, // LOAD_CONST_STRING 'ripemd160' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'hashlib' + 0x1c,0x15, // IMPORT_FROM 'ripemd160' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x0c, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x51, // LOAD_CONST_NONE + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_base58_ripemd160_32 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_base58_ripemd160_32, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_trezor_crypto_base58_ripemd160_32 + 4, + .line_info_top = fun_data_trezor_crypto_base58_ripemd160_32 + 7, + .opcodes = fun_data_trezor_crypto_base58_ripemd160_32 + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_base58__lt_module_gt_ +// frozen bytecode for file trezor/crypto/base58.py, scope trezor_crypto_base58_encode_check +static const byte fun_data_trezor_crypto_base58_encode_check[20] = { + 0xaa,0x01,0x0c, // prelude + 0x16,0x1b,0x22, // names: encode_check, data, digestfunc + 0x80,0x5e,0x60, // code info + 0x12,0x02, // LOAD_GLOBAL 'encode' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_base58_encode_check = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_base58_encode_check, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 22, + .line_info = fun_data_trezor_crypto_base58_encode_check + 6, + .line_info_top = fun_data_trezor_crypto_base58_encode_check + 9, + .opcodes = fun_data_trezor_crypto_base58_encode_check + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_base58__lt_module_gt_ +// frozen bytecode for file trezor/crypto/base58.py, scope trezor_crypto_base58_decode_check +static const byte fun_data_trezor_crypto_base58_decode_check[23] = { + 0xaa,0x01,0x0e, // prelude + 0x17,0x20,0x22, // names: decode_check, string, digestfunc + 0x80,0x67,0x60,0x26, // code info + 0x12,0x06, // LOAD_GLOBAL 'decode' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x12,0x18, // LOAD_GLOBAL 'verify_checksum' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_base58_decode_check = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_base58_decode_check, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 23, + .line_info = fun_data_trezor_crypto_base58_decode_check + 6, + .line_info_top = fun_data_trezor_crypto_base58_decode_check + 10, + .opcodes = fun_data_trezor_crypto_base58_decode_check + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_base58__lt_module_gt_ +// frozen bytecode for file trezor/crypto/base58.py, scope trezor_crypto_base58_verify_checksum +static const byte fun_data_trezor_crypto_base58_verify_checksum[55] = { + 0x42,0x12, // prelude + 0x18,0x1b,0x22, // names: verify_checksum, data, digestfunc + 0x80,0x6f,0x2a,0x51,0x28,0x47, // code info + 0x12,0x1d, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xb2, // LOAD_FAST 2 + 0xd1, // UNARY_OP 1 __neg__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xd1, // UNARY_OP 1 __neg__ + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x5a, // ROT_TWO + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x23, // LOAD_GLOBAL 'ValueError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_base58_verify_checksum = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_base58_verify_checksum, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 24, + .line_info = fun_data_trezor_crypto_base58_verify_checksum + 5, + .line_info_top = fun_data_trezor_crypto_base58_verify_checksum + 11, + .opcodes = fun_data_trezor_crypto_base58_verify_checksum + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_base58__lt_module_gt_[] = { + &raw_code_trezor_crypto_base58_encode, + &raw_code_trezor_crypto_base58_decode, + &raw_code_trezor_crypto_base58_sha256d_32, + &raw_code_trezor_crypto_base58_groestl512d_32, + &raw_code_trezor_crypto_base58_blake256d_32, + &raw_code_trezor_crypto_base58_keccak_32, + &raw_code_trezor_crypto_base58_ripemd160_32, + &raw_code_trezor_crypto_base58_encode_check, + &raw_code_trezor_crypto_base58_decode_check, + &raw_code_trezor_crypto_base58_verify_checksum, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_base58__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_crypto_base58__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 90, + #endif + .children = (void *)&children_trezor_crypto_base58__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 10, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_crypto_base58__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_crypto_base58__lt_module_gt_ + 24, + .opcodes = fun_data_trezor_crypto_base58__lt_module_gt_ + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_crypto_base58[37] = { + MP_QSTR_trezor_slash_crypto_slash_base58_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_encode, + MP_QSTR_lstrip, + MP_QSTR_, + MP_QSTR_join, + MP_QSTR_decode, + MP_QSTR_index, + MP_QSTR_append, + MP_QSTR_sha256d_32, + MP_QSTR_sha256, + MP_QSTR_hashlib, + MP_QSTR_digest, + MP_QSTR_groestl512d_32, + MP_QSTR_groestl512, + MP_QSTR_blake256d_32, + MP_QSTR_blake256, + MP_QSTR_keccak_32, + MP_QSTR_sha3_256, + MP_QSTR_keccak, + MP_QSTR_ripemd160_32, + MP_QSTR_ripemd160, + MP_QSTR_encode_check, + MP_QSTR_decode_check, + MP_QSTR_verify_checksum, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR__alphabet, + MP_QSTR_data, + MP_QSTR_alphabet, + MP_QSTR_len, + MP_QSTR_reversed, + MP_QSTR_divmod, + MP_QSTR_string, + MP_QSTR_bytes, + MP_QSTR_digestfunc, + MP_QSTR_ValueError, + MP_QSTR__star_, +}; + +// constants +static const mp_obj_str_t const_obj_trezor_crypto_base58_0 = {{&mp_type_str}, 14878, 58, (const byte*)"\x31\x32\x33\x34\x35\x36\x37\x38\x39\x41\x42\x43\x44\x45\x46\x47\x48\x4a\x4b\x4c\x4d\x4e\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a"}; +static const mp_obj_str_t const_obj_trezor_crypto_base58_1 = {{&mp_type_bytes}, 46501, 1, (const byte*)"\x00"}; +static const mp_rom_obj_tuple_t const_obj_trezor_crypto_base58_2 = {{&mp_type_tuple}, 2, { + MP_ROM_INT(1), + MP_ROM_INT(0), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_crypto_base58[5] = { + MP_ROM_PTR(&const_obj_trezor_crypto_base58_0), + MP_ROM_PTR(&const_obj_trezor_crypto_base58_1), + MP_ROM_PTR(&const_obj_trezor_crypto_base58_2), + MP_ROM_PTR(&mp_const_empty_bytes_obj), + MP_ROM_QSTR(MP_QSTR_Invalid_space_checksum), +}; + +static const mp_frozen_module_t frozen_module_trezor_crypto_base58 = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_crypto_base58, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_crypto_base58, + }, + .rc = &raw_code_trezor_crypto_base58__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_crypto_bech32 +// - original source file: build/firmware/src/trezor/crypto/bech32.mpy +// - frozen file name: trezor/crypto/bech32.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/crypto/bech32.py, scope trezor_crypto_bech32__lt_module_gt_ +static const byte fun_data_trezor_crypto_bech32__lt_module_gt_[111] = { + 0x18,0x34, // prelude + 0x01, // names: + 0x80,0x14,0x40,0x2c,0x6c,0x66,0x80,0x0b,0x64,0x8b,0x07,0x64,0x20,0x84,0x0c,0x64,0x40,0x84,0x08,0x64,0x60,0x88,0x2b,0x84,0x1b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'bech32' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezorcrypto' + 0x1c,0x04, // IMPORT_FROM 'bech32' + 0x16,0x04, // STORE_NAME 'bech32' + 0x59, // POP_TOP + 0x11,0x04, // LOAD_NAME 'bech32' + 0x13,0x06, // LOAD_ATTR 'decode' + 0x16,0x15, // STORE_NAME 'bech32_decode' + 0x11,0x16, // LOAD_NAME 'object' + 0x16,0x17, // STORE_NAME 'IntEnum' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x07, // LOAD_CONST_STRING 'Encoding' + 0x11,0x17, // LOAD_NAME 'IntEnum' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x07, // STORE_NAME 'Encoding' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x18, // STORE_NAME 'CHARSET' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x08, // STORE_NAME 'bech32_polymod' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x09, // STORE_NAME 'bech32_hrp_expand' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x0a, // STORE_NAME '_bech32_create_checksum' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x0c, // STORE_NAME 'bech32_encode' + 0x52, // LOAD_CONST_TRUE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x05, // MAKE_FUNCTION_DEFARGS 5 + 0x16,0x10, // STORE_NAME 'convertbits' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x06, // STORE_NAME 'decode' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x13, // STORE_NAME 'encode' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_bech32__lt_module_gt_ +// frozen bytecode for file trezor/crypto/bech32.py, scope trezor_crypto_bech32_Encoding +static const byte fun_data_trezor_crypto_bech32_Encoding[23] = { + 0x00,0x0a, // prelude + 0x07, // names: Encoding + 0x88,0x2c,0x40,0x23, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x07, // LOAD_CONST_STRING 'Encoding' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x12, // STORE_NAME 'BECH32' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x0b, // STORE_NAME 'BECH32M' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_bech32_Encoding = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_crypto_bech32_Encoding, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_trezor_crypto_bech32_Encoding + 3, + .line_info_top = fun_data_trezor_crypto_bech32_Encoding + 7, + .opcodes = fun_data_trezor_crypto_bech32_Encoding + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_bech32__lt_module_gt_ +// frozen bytecode for file trezor/crypto/bech32.py, scope trezor_crypto_bech32_bech32_polymod +static const byte fun_data_trezor_crypto_bech32_bech32_polymod[104] = { + 0x69,0x1a, // prelude + 0x08,0x1c, // names: bech32_polymod, values + 0x80,0x37,0x20,0x1f,0x22,0x22,0x25,0x24,0x2c,0x25,0x3a, // code info + 0x22,0x83,0xdb,0xa9,0xaf,0x32, // LOAD_CONST_SMALL_INT 996825010 + 0x22,0x82,0xb2,0xc2,0x9c,0x6d, // LOAD_CONST_SMALL_INT 642813549 + 0x22,0x81,0xf5,0x84,0xb3,0x7a, // LOAD_CONST_SMALL_INT 513874426 + 0x22,0x83,0xea,0x88,0xe7,0x5d, // LOAD_CONST_SMALL_INT 1027748829 + 0x22,0x82,0xd0,0xd1,0xc5,0x33, // LOAD_CONST_SMALL_INT 705979059 + 0x2b,0x05, // BUILD_LIST 5 + 0xc1, // STORE_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x30, // FOR_ITER 48 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x99, // LOAD_CONST_SMALL_INT 25 + 0xf1, // BINARY_OP 26 __rshift__ + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x22,0x8f,0xff,0xff,0x7f, // LOAD_CONST_SMALL_INT 33554431 + 0xef, // BINARY_OP 24 __and__ + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf0, // BINARY_OP 25 __lshift__ + 0xb3, // LOAD_FAST 3 + 0xee, // BINARY_OP 23 __xor__ + 0xc2, // STORE_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x54, // JUMP 20 + 0x57, // DUP_TOP + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xf1, // BINARY_OP 26 __rshift__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xef, // BINARY_OP 24 __and__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0x55, // LOAD_SUBSCR + 0x42,0x41, // JUMP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xe1, // BINARY_OP 10 __ixor__ + 0xc2, // STORE_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x57, // DUP_TOP + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x27, // POP_JUMP_IF_TRUE -25 + 0x59, // POP_TOP + 0x42,0x0e, // JUMP -50 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_bech32_bech32_polymod = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_bech32_bech32_polymod, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 104, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_trezor_crypto_bech32_bech32_polymod + 4, + .line_info_top = fun_data_trezor_crypto_bech32_bech32_polymod + 15, + .opcodes = fun_data_trezor_crypto_bech32_bech32_polymod + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_bech32__lt_module_gt_ +// frozen bytecode for file trezor/crypto/bech32.py, scope trezor_crypto_bech32_bech32_hrp_expand +static const byte fun_data_trezor_crypto_bech32_bech32_hrp_expand[23] = { + 0x19,0x0a, // prelude + 0x09,0x1d, // names: bech32_hrp_expand, hrp + 0x80,0x43,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x01, // BUILD_LIST 1 + 0xf2, // BINARY_OP 27 __add__ + 0x32,0x01, // MAKE_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_bech32_bech32_hrp_expand +// frozen bytecode for file trezor/crypto/bech32.py, scope trezor_crypto_bech32_bech32_hrp_expand__lt_listcomp_gt_ +static const byte fun_data_trezor_crypto_bech32_bech32_hrp_expand__lt_listcomp_gt_[25] = { + 0x41,0x08, // prelude + 0x14,0x2a, // names: , * + 0x80,0x44, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0c, // FOR_ITER 12 + 0xc1, // STORE_FAST 1 + 0x12,0x2b, // LOAD_GLOBAL 'ord' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf1, // BINARY_OP 26 __rshift__ + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x32, // JUMP -14 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_bech32_bech32_hrp_expand__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_bech32_bech32_hrp_expand__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_trezor_crypto_bech32_bech32_hrp_expand__lt_listcomp_gt_ + 4, + .line_info_top = fun_data_trezor_crypto_bech32_bech32_hrp_expand__lt_listcomp_gt_ + 6, + .opcodes = fun_data_trezor_crypto_bech32_bech32_hrp_expand__lt_listcomp_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_bech32_bech32_hrp_expand +// frozen bytecode for file trezor/crypto/bech32.py, scope trezor_crypto_bech32_bech32_hrp_expand__lt_listcomp_gt_2 +static const byte fun_data_trezor_crypto_bech32_bech32_hrp_expand__lt_listcomp_gt_2[25] = { + 0x41,0x08, // prelude + 0x14,0x2a, // names: , * + 0x80,0x44, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0c, // FOR_ITER 12 + 0xc1, // STORE_FAST 1 + 0x12,0x2b, // LOAD_GLOBAL 'ord' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xef, // BINARY_OP 24 __and__ + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x32, // JUMP -14 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_bech32_bech32_hrp_expand__lt_listcomp_gt_2 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_bech32_bech32_hrp_expand__lt_listcomp_gt_2, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_trezor_crypto_bech32_bech32_hrp_expand__lt_listcomp_gt_2 + 4, + .line_info_top = fun_data_trezor_crypto_bech32_bech32_hrp_expand__lt_listcomp_gt_2 + 6, + .opcodes = fun_data_trezor_crypto_bech32_bech32_hrp_expand__lt_listcomp_gt_2 + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_bech32_bech32_hrp_expand[] = { + &raw_code_trezor_crypto_bech32_bech32_hrp_expand__lt_listcomp_gt_, + &raw_code_trezor_crypto_bech32_bech32_hrp_expand__lt_listcomp_gt_2, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_bech32_bech32_hrp_expand = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_bech32_bech32_hrp_expand, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = (void *)&children_trezor_crypto_bech32_bech32_hrp_expand, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_trezor_crypto_bech32_bech32_hrp_expand + 4, + .line_info_top = fun_data_trezor_crypto_bech32_bech32_hrp_expand + 7, + .opcodes = fun_data_trezor_crypto_bech32_bech32_hrp_expand + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_bech32__lt_module_gt_ +// frozen bytecode for file trezor/crypto/bech32.py, scope trezor_crypto_bech32__bech32_create_checksum +static const byte fun_data_trezor_crypto_bech32__bech32_create_checksum[69] = { + 0x6b,0x15, // prelude + 0x0a,0x1d,0x1e,0x1f, // names: _bech32_create_checksum, hrp, data, spec + 0x80,0x48,0x20,0x28,0x32,0x32,0x05, // code info + 0x12,0x09, // LOAD_GLOBAL 'bech32_hrp_expand' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x12,0x07, // LOAD_GLOBAL 'Encoding' + 0x13,0x0b, // LOAD_ATTR 'BECH32M' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x22,0x82,0xde,0xa0,0xe1,0x23, // LOAD_CONST_SMALL_INT 734539939 + 0x42,0x41, // JUMP 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xc4, // STORE_FAST 4 + 0x12,0x08, // LOAD_GLOBAL 'bech32_polymod' + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x06, // BUILD_LIST 6 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xb4, // LOAD_FAST 4 + 0xee, // BINARY_OP 23 __xor__ + 0x27,0x05, // STORE_DEREF 5 + 0xb5, // LOAD_FAST 5 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x12,0x20, // LOAD_GLOBAL 'range' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_bech32__bech32_create_checksum +// frozen bytecode for file trezor/crypto/bech32.py, scope trezor_crypto_bech32__bech32_create_checksum__lt_listcomp_gt_ +static const byte fun_data_trezor_crypto_bech32__bech32_create_checksum__lt_listcomp_gt_[29] = { + 0x5a,0x0a, // prelude + 0x14,0x2a,0x2a, // names: , *, * + 0x80,0x4c, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x0f, // FOR_ITER 15 + 0xc2, // STORE_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xb2, // LOAD_FAST 2 + 0xf3, // BINARY_OP 28 __sub__ + 0xf4, // BINARY_OP 29 __mul__ + 0xf1, // BINARY_OP 26 __rshift__ + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xef, // BINARY_OP 24 __and__ + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x2f, // JUMP -17 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_bech32__bech32_create_checksum__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_bech32__bech32_create_checksum__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_trezor_crypto_bech32__bech32_create_checksum__lt_listcomp_gt_ + 5, + .line_info_top = fun_data_trezor_crypto_bech32__bech32_create_checksum__lt_listcomp_gt_ + 7, + .opcodes = fun_data_trezor_crypto_bech32__bech32_create_checksum__lt_listcomp_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_bech32__bech32_create_checksum[] = { + &raw_code_trezor_crypto_bech32__bech32_create_checksum__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_bech32__bech32_create_checksum = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_crypto_bech32__bech32_create_checksum, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 69, + #endif + .children = (void *)&children_trezor_crypto_bech32__bech32_create_checksum, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_trezor_crypto_bech32__bech32_create_checksum + 6, + .line_info_top = fun_data_trezor_crypto_bech32__bech32_create_checksum + 12, + .opcodes = fun_data_trezor_crypto_bech32__bech32_create_checksum + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_bech32__lt_module_gt_ +// frozen bytecode for file trezor/crypto/bech32.py, scope trezor_crypto_bech32_bech32_encode +static const byte fun_data_trezor_crypto_bech32_bech32_encode[37] = { + 0x43,0x10, // prelude + 0x0c,0x1d,0x1e,0x1f, // names: bech32_encode, hrp, data, spec + 0x80,0x50,0x20,0x2a, // code info + 0xb1, // LOAD_FAST 1 + 0x12,0x0a, // LOAD_GLOBAL '_bech32_create_checksum' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0xf2, // BINARY_OP 27 __add__ + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x10,0x0d, // LOAD_CONST_STRING '1' + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x0e, // LOAD_CONST_STRING '' + 0x14,0x0f, // LOAD_METHOD 'join' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_bech32_bech32_encode +// frozen bytecode for file trezor/crypto/bech32.py, scope trezor_crypto_bech32_bech32_encode__lt_listcomp_gt_ +static const byte fun_data_trezor_crypto_bech32_bech32_encode__lt_listcomp_gt_[22] = { + 0x41,0x08, // prelude + 0x14,0x2a, // names: , * + 0x80,0x52, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x09, // FOR_ITER 9 + 0xc1, // STORE_FAST 1 + 0x12,0x18, // LOAD_GLOBAL 'CHARSET' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x35, // JUMP -11 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_bech32_bech32_encode__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_bech32_bech32_encode__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_trezor_crypto_bech32_bech32_encode__lt_listcomp_gt_ + 4, + .line_info_top = fun_data_trezor_crypto_bech32_bech32_encode__lt_listcomp_gt_ + 6, + .opcodes = fun_data_trezor_crypto_bech32_bech32_encode__lt_listcomp_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_bech32_bech32_encode[] = { + &raw_code_trezor_crypto_bech32_bech32_encode__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_bech32_bech32_encode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_crypto_bech32_bech32_encode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = (void *)&children_trezor_crypto_bech32_bech32_encode, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_trezor_crypto_bech32_bech32_encode + 6, + .line_info_top = fun_data_trezor_crypto_bech32_bech32_encode + 10, + .opcodes = fun_data_trezor_crypto_bech32_bech32_encode + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_bech32__lt_module_gt_ +// frozen bytecode for file trezor/crypto/bech32.py, scope trezor_crypto_bech32_convertbits +static const byte fun_data_trezor_crypto_bech32_convertbits[149] = { + 0x88,0x15,0x36, // prelude + 0x10,0x1e,0x21,0x22,0x23, // names: convertbits, data, frombits, tobits, arbitrary_input + 0x80,0x58,0x80,0x0e,0x22,0x22,0x23,0x26,0x2a,0x25,0x2a,0x23,0x28,0x24,0x22,0x24,0x52,0x23,0x43,0x2f,0x6e,0x45, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc4, // STORE_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc5, // STORE_FAST 5 + 0x2b,0x00, // BUILD_LIST 0 + 0xc6, // STORE_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb2, // LOAD_FAST 2 + 0xf0, // BINARY_OP 25 __lshift__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xc7, // STORE_FAST 7 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xf2, // BINARY_OP 27 __add__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xf0, // BINARY_OP 25 __lshift__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xc8, // STORE_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x32, // FOR_ITER 50 + 0xc9, // STORE_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb9, // LOAD_FAST 9 + 0xb1, // LOAD_FAST 1 + 0xf1, // BINARY_OP 26 __rshift__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x24, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0xf0, // BINARY_OP 25 __lshift__ + 0xb9, // LOAD_FAST 9 + 0xed, // BINARY_OP 22 __or__ + 0xb8, // LOAD_FAST 8 + 0xef, // BINARY_OP 24 __and__ + 0xc4, // STORE_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc5, // STORE_FAST 5 + 0x42,0x4f, // JUMP 15 + 0xb5, // LOAD_FAST 5 + 0xb2, // LOAD_FAST 2 + 0xe6, // BINARY_OP 15 __isub__ + 0xc5, // STORE_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x14,0x11, // LOAD_METHOD 'append' + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xf1, // BINARY_OP 26 __rshift__ + 0xb7, // LOAD_FAST 7 + 0xef, // BINARY_OP 24 __and__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0xb2, // LOAD_FAST 2 + 0xdb, // BINARY_OP 4 __ge__ + 0x43,0x2c, // POP_JUMP_IF_TRUE -20 + 0x42,0x0c, // JUMP -52 + 0xb3, // LOAD_FAST 3 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb5, // LOAD_FAST 5 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb6, // LOAD_FAST 6 + 0x14,0x11, // LOAD_METHOD 'append' + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0xb5, // LOAD_FAST 5 + 0xf3, // BINARY_OP 28 __sub__ + 0xf0, // BINARY_OP 25 __lshift__ + 0xb7, // LOAD_FAST 7 + 0xef, // BINARY_OP 24 __and__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x53, // JUMP 19 + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0xdb, // BINARY_OP 4 __ge__ + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0xb5, // LOAD_FAST 5 + 0xf3, // BINARY_OP 28 __sub__ + 0xf0, // BINARY_OP 25 __lshift__ + 0xb7, // LOAD_FAST 7 + 0xef, // BINARY_OP 24 __and__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x24, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x42,0x40, // JUMP 0 + 0xb6, // LOAD_FAST 6 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_bech32_convertbits = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_trezor_crypto_bech32_convertbits, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 149, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 16, + .line_info = fun_data_trezor_crypto_bech32_convertbits + 8, + .line_info_top = fun_data_trezor_crypto_bech32_convertbits + 30, + .opcodes = fun_data_trezor_crypto_bech32_convertbits + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_bech32__lt_module_gt_ +// frozen bytecode for file trezor/crypto/bech32.py, scope trezor_crypto_bech32_decode +static const byte fun_data_trezor_crypto_bech32_decode[185] = { + 0x66,0x32, // prelude + 0x06,0x1d,0x25, // names: decode, hrp, addr + 0x80,0x81,0x20,0x4b,0x22,0x2b,0x5b,0x26,0x25,0x23,0x33,0x23,0x27,0x23,0x32,0x23,0x20,0x27,0x28,0x27,0x48,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'bech32' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezorcrypto' + 0x1c,0x04, // IMPORT_FROM 'bech32' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x48,0x1f, // SETUP_EXCEPT 31 + 0xb2, // LOAD_FAST 2 + 0x14,0x06, // LOAD_METHOD 'decode' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0x12,0x26, // LOAD_GLOBAL 'bytes' + 0x12,0x10, // LOAD_GLOBAL 'convertbits' + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x50, // LOAD_CONST_FALSE + 0x34,0x04, // CALL_FUNCTION 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc6, // STORE_FAST 6 + 0x4a,0x0d, // POP_EXCEPT_JUMP 13 + 0x57, // DUP_TOP + 0x12,0x24, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x59, // POP_TOP + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x63, // RETURN_VALUE + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x63, // RETURN_VALUE + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x12,0x27, // LOAD_GLOBAL 'len' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x04, // JUMP_IF_FALSE_OR_POP 4 + 0xa8, // LOAD_CONST_SMALL_INT 40 + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x63, // RETURN_VALUE + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x63, // RETURN_VALUE + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x27, // LOAD_GLOBAL 'len' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x63, // RETURN_VALUE + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb5, // LOAD_FAST 5 + 0x12,0x07, // LOAD_GLOBAL 'Encoding' + 0x13,0x12, // LOAD_ATTR 'BECH32' + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x4f, // POP_JUMP_IF_TRUE 15 + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb5, // LOAD_FAST 5 + 0x12,0x07, // LOAD_GLOBAL 'Encoding' + 0x13,0x0b, // LOAD_ATTR 'BECH32M' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x63, // RETURN_VALUE + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb6, // LOAD_FAST 6 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_bech32_decode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_bech32_decode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 185, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_trezor_crypto_bech32_decode + 5, + .line_info_top = fun_data_trezor_crypto_bech32_decode + 27, + .opcodes = fun_data_trezor_crypto_bech32_decode + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_bech32__lt_module_gt_ +// frozen bytecode for file trezor/crypto/bech32.py, scope trezor_crypto_bech32_encode +static const byte fun_data_trezor_crypto_bech32_encode[65] = { + 0x4b,0x18, // prelude + 0x13,0x1d,0x28,0x29, // names: encode, hrp, witver, witprog + 0x80,0x9c,0x20,0x28,0x30,0x2c,0x2b,0x22, // code info + 0x12,0x10, // LOAD_GLOBAL 'convertbits' + 0xb2, // LOAD_FAST 2 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x12,0x07, // LOAD_GLOBAL 'Encoding' + 0x13,0x12, // LOAD_ATTR 'BECH32' + 0x42,0x44, // JUMP 4 + 0x12,0x07, // LOAD_GLOBAL 'Encoding' + 0x13,0x0b, // LOAD_ATTR 'BECH32M' + 0xc4, // STORE_FAST 4 + 0x12,0x0c, // LOAD_GLOBAL 'bech32_encode' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x2b,0x01, // BUILD_LIST 1 + 0xb3, // LOAD_FAST 3 + 0xf2, // BINARY_OP 27 __add__ + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc5, // STORE_FAST 5 + 0x12,0x06, // LOAD_GLOBAL 'decode' + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb5, // LOAD_FAST 5 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_bech32_encode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_crypto_bech32_encode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 65, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_trezor_crypto_bech32_encode + 6, + .line_info_top = fun_data_trezor_crypto_bech32_encode + 14, + .opcodes = fun_data_trezor_crypto_bech32_encode + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_bech32__lt_module_gt_[] = { + &raw_code_trezor_crypto_bech32_Encoding, + &raw_code_trezor_crypto_bech32_bech32_polymod, + &raw_code_trezor_crypto_bech32_bech32_hrp_expand, + &raw_code_trezor_crypto_bech32__bech32_create_checksum, + &raw_code_trezor_crypto_bech32_bech32_encode, + &raw_code_trezor_crypto_bech32_convertbits, + &raw_code_trezor_crypto_bech32_decode, + &raw_code_trezor_crypto_bech32_encode, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_bech32__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_crypto_bech32__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 111, + #endif + .children = (void *)&children_trezor_crypto_bech32__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 8, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_crypto_bech32__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_crypto_bech32__lt_module_gt_ + 28, + .opcodes = fun_data_trezor_crypto_bech32__lt_module_gt_ + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_crypto_bech32[44] = { + MP_QSTR_trezor_slash_crypto_slash_bech32_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_bech32, + MP_QSTR_trezorcrypto, + MP_QSTR_decode, + MP_QSTR_Encoding, + MP_QSTR_bech32_polymod, + MP_QSTR_bech32_hrp_expand, + MP_QSTR__bech32_create_checksum, + MP_QSTR_BECH32M, + MP_QSTR_bech32_encode, + MP_QSTR_1, + MP_QSTR_, + MP_QSTR_join, + MP_QSTR_convertbits, + MP_QSTR_append, + MP_QSTR_BECH32, + MP_QSTR_encode, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_bech32_decode, + MP_QSTR_object, + MP_QSTR_IntEnum, + MP_QSTR_CHARSET, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_values, + MP_QSTR_hrp, + MP_QSTR_data, + MP_QSTR_spec, + MP_QSTR_range, + MP_QSTR_frombits, + MP_QSTR_tobits, + MP_QSTR_arbitrary_input, + MP_QSTR_ValueError, + MP_QSTR_addr, + MP_QSTR_bytes, + MP_QSTR_len, + MP_QSTR_witver, + MP_QSTR_witprog, + MP_QSTR__star_, + MP_QSTR_ord, +}; + +// constants +static const mp_obj_str_t const_obj_trezor_crypto_bech32_0 = {{&mp_type_str}, 62090, 32, (const byte*)"\x71\x70\x7a\x72\x79\x39\x78\x38\x67\x66\x32\x74\x76\x64\x77\x30\x73\x33\x6a\x6e\x35\x34\x6b\x68\x63\x65\x36\x6d\x75\x61\x37\x6c"}; +static const mp_rom_obj_tuple_t const_obj_trezor_crypto_bech32_1 = {{&mp_type_tuple}, 2, { + MP_ROM_NONE, + MP_ROM_NONE, +}}; +static const mp_rom_obj_tuple_t const_obj_trezor_crypto_bech32_2 = {{&mp_type_tuple}, 2, { + MP_ROM_INT(20), + MP_ROM_INT(32), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_crypto_bech32[3] = { + MP_ROM_PTR(&const_obj_trezor_crypto_bech32_0), + MP_ROM_PTR(&const_obj_trezor_crypto_bech32_1), + MP_ROM_PTR(&const_obj_trezor_crypto_bech32_2), +}; + +static const mp_frozen_module_t frozen_module_trezor_crypto_bech32 = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_crypto_bech32, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_crypto_bech32, + }, + .rc = &raw_code_trezor_crypto_bech32__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_crypto_cashaddr +// - original source file: build/firmware/src/trezor/crypto/cashaddr.mpy +// - frozen file name: trezor/crypto/cashaddr.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/crypto/cashaddr.py, scope trezor_crypto_cashaddr__lt_module_gt_ +static const byte fun_data_trezor_crypto_cashaddr__lt_module_gt_[86] = { + 0x08,0x28, // prelude + 0x01, // names: + 0x80,0x16,0x4c,0x4c,0x24,0x23,0x63,0x84,0x11,0x64,0x20,0x84,0x08,0x84,0x07,0x84,0x07,0x84,0x07, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING 'convertbits' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'bech32' + 0x1c,0x04, // IMPORT_FROM 'convertbits' + 0x16,0x04, // STORE_NAME 'convertbits' + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x13, // STORE_NAME 'CHARSET' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x14, // STORE_NAME 'ADDRESS_TYPE_P2KH' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x16,0x15, // STORE_NAME 'ADDRESS_TYPE_P2SH' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x06, // STORE_NAME 'cashaddr_polymod' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x07, // STORE_NAME 'prefix_expand' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x08, // STORE_NAME '_calculate_checksum' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x0a, // STORE_NAME '_b32decode' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x0c, // STORE_NAME '_b32encode' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x0e, // STORE_NAME 'encode' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x10, // STORE_NAME 'decode' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_cashaddr__lt_module_gt_ +// frozen bytecode for file trezor/crypto/cashaddr.py, scope trezor_crypto_cashaddr_cashaddr_polymod +static const byte fun_data_trezor_crypto_cashaddr_cashaddr_polymod[86] = { + 0x71,0x20, // prelude + 0x06,0x16, // names: cashaddr_polymod, values + 0x80,0x20,0x20,0x22,0x22,0x22,0x22,0x45,0x22,0x25,0x24,0x29,0x25,0x3a, // code info + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x2b,0x05, // BUILD_LIST 5 + 0xc1, // STORE_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x2d, // FOR_ITER 45 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0xa3, // LOAD_CONST_SMALL_INT 35 + 0xf1, // BINARY_OP 26 __rshift__ + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0xef, // BINARY_OP 24 __and__ + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf0, // BINARY_OP 25 __lshift__ + 0xb3, // LOAD_FAST 3 + 0xee, // BINARY_OP 23 __xor__ + 0xc2, // STORE_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x54, // JUMP 20 + 0x57, // DUP_TOP + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb5, // LOAD_FAST 5 + 0xf0, // BINARY_OP 25 __lshift__ + 0xef, // BINARY_OP 24 __and__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0x55, // LOAD_SUBSCR + 0x42,0x41, // JUMP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xe1, // BINARY_OP 10 __ixor__ + 0xc2, // STORE_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x57, // DUP_TOP + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x27, // POP_JUMP_IF_TRUE -25 + 0x59, // POP_TOP + 0x42,0x11, // JUMP -47 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xee, // BINARY_OP 23 __xor__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_cashaddr_cashaddr_polymod = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_cashaddr_cashaddr_polymod, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 86, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_trezor_crypto_cashaddr_cashaddr_polymod + 4, + .line_info_top = fun_data_trezor_crypto_cashaddr_cashaddr_polymod + 18, + .opcodes = fun_data_trezor_crypto_cashaddr_cashaddr_polymod + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_cashaddr__lt_module_gt_ +// frozen bytecode for file trezor/crypto/cashaddr.py, scope trezor_crypto_cashaddr_prefix_expand +static const byte fun_data_trezor_crypto_cashaddr_prefix_expand[16] = { + 0x11,0x08, // prelude + 0x07,0x17, // names: prefix_expand, prefix + 0x80,0x31, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x01, // BUILD_LIST 1 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_cashaddr_prefix_expand +// frozen bytecode for file trezor/crypto/cashaddr.py, scope trezor_crypto_cashaddr_prefix_expand__lt_listcomp_gt_ +static const byte fun_data_trezor_crypto_cashaddr_prefix_expand__lt_listcomp_gt_[25] = { + 0x41,0x08, // prelude + 0x12,0x1f, // names: , * + 0x80,0x31, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0c, // FOR_ITER 12 + 0xc1, // STORE_FAST 1 + 0x12,0x20, // LOAD_GLOBAL 'ord' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xef, // BINARY_OP 24 __and__ + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x32, // JUMP -14 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_cashaddr_prefix_expand__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_cashaddr_prefix_expand__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_trezor_crypto_cashaddr_prefix_expand__lt_listcomp_gt_ + 4, + .line_info_top = fun_data_trezor_crypto_cashaddr_prefix_expand__lt_listcomp_gt_ + 6, + .opcodes = fun_data_trezor_crypto_cashaddr_prefix_expand__lt_listcomp_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_cashaddr_prefix_expand[] = { + &raw_code_trezor_crypto_cashaddr_prefix_expand__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_cashaddr_prefix_expand = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_cashaddr_prefix_expand, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = (void *)&children_trezor_crypto_cashaddr_prefix_expand, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_trezor_crypto_cashaddr_prefix_expand + 4, + .line_info_top = fun_data_trezor_crypto_cashaddr_prefix_expand + 6, + .opcodes = fun_data_trezor_crypto_cashaddr_prefix_expand + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_cashaddr__lt_module_gt_ +// frozen bytecode for file trezor/crypto/cashaddr.py, scope trezor_crypto_cashaddr__calculate_checksum +static const byte fun_data_trezor_crypto_cashaddr__calculate_checksum[67] = { + 0x72,0x12, // prelude + 0x08,0x17,0x18, // names: _calculate_checksum, prefix, payload + 0x80,0x35,0x37,0x23,0x25,0x37, // code info + 0x12,0x06, // LOAD_GLOBAL 'cashaddr_polymod' + 0x12,0x07, // LOAD_GLOBAL 'prefix_expand' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0xf2, // BINARY_OP 27 __add__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x08, // BUILD_LIST 8 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x2b,0x00, // BUILD_LIST 0 + 0xc3, // STORE_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x53, // JUMP 19 + 0x57, // DUP_TOP + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x14,0x09, // LOAD_METHOD 'append' + 0xb2, // LOAD_FAST 2 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xb4, // LOAD_FAST 4 + 0xf3, // BINARY_OP 28 __sub__ + 0xf4, // BINARY_OP 29 __mul__ + 0xf1, // BINARY_OP 26 __rshift__ + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xef, // BINARY_OP 24 __and__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x57, // DUP_TOP + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x28, // POP_JUMP_IF_TRUE -24 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_cashaddr__calculate_checksum = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_cashaddr__calculate_checksum, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 67, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_trezor_crypto_cashaddr__calculate_checksum + 5, + .line_info_top = fun_data_trezor_crypto_cashaddr__calculate_checksum + 11, + .opcodes = fun_data_trezor_crypto_cashaddr__calculate_checksum + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_cashaddr__lt_module_gt_ +// frozen bytecode for file trezor/crypto/cashaddr.py, scope trezor_crypto_cashaddr__b32decode +static const byte fun_data_trezor_crypto_cashaddr__b32decode[34] = { + 0x59,0x0e, // prelude + 0x0a,0x19, // names: _b32decode, inputs + 0x80,0x3d,0x23,0x25,0x2f, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x10, // FOR_ITER 16 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x14,0x09, // LOAD_METHOD 'append' + 0x12,0x13, // LOAD_GLOBAL 'CHARSET' + 0x14,0x0b, // LOAD_METHOD 'find' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x2e, // JUMP -18 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_cashaddr__b32decode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_cashaddr__b32decode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_trezor_crypto_cashaddr__b32decode + 4, + .line_info_top = fun_data_trezor_crypto_cashaddr__b32decode + 9, + .opcodes = fun_data_trezor_crypto_cashaddr__b32decode + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_cashaddr__lt_module_gt_ +// frozen bytecode for file trezor/crypto/cashaddr.py, scope trezor_crypto_cashaddr__b32encode +static const byte fun_data_trezor_crypto_cashaddr__b32encode[28] = { + 0x49,0x0e, // prelude + 0x0c,0x19, // names: _b32encode, inputs + 0x80,0x44,0x23,0x25,0x29, // code info + 0x10,0x0d, // LOAD_CONST_STRING '' + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x12,0x13, // LOAD_GLOBAL 'CHARSET' + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0xe5, // BINARY_OP 14 __iadd__ + 0xc1, // STORE_FAST 1 + 0x42,0x34, // JUMP -12 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_cashaddr__b32encode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_cashaddr__b32encode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_trezor_crypto_cashaddr__b32encode + 4, + .line_info_top = fun_data_trezor_crypto_cashaddr__b32encode + 9, + .opcodes = fun_data_trezor_crypto_cashaddr__b32encode + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_cashaddr__lt_module_gt_ +// frozen bytecode for file trezor/crypto/cashaddr.py, scope trezor_crypto_cashaddr_encode +static const byte fun_data_trezor_crypto_cashaddr_encode[49] = { + 0x43,0x12, // prelude + 0x0e,0x17,0x1a,0x1b, // names: encode, prefix, version, payload_bytes + 0x80,0x4b,0x2a,0x28,0x27, // code info + 0x12,0x1c, // LOAD_GLOBAL 'bytes' + 0xb1, // LOAD_FAST 1 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0xf2, // BINARY_OP 27 __add__ + 0xc2, // STORE_FAST 2 + 0x12,0x04, // LOAD_GLOBAL 'convertbits' + 0xb2, // LOAD_FAST 2 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc3, // STORE_FAST 3 + 0x12,0x08, // LOAD_GLOBAL '_calculate_checksum' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x10,0x0f, // LOAD_CONST_STRING ':' + 0xf2, // BINARY_OP 27 __add__ + 0x12,0x0c, // LOAD_GLOBAL '_b32encode' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_cashaddr_encode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_crypto_cashaddr_encode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_trezor_crypto_cashaddr_encode + 6, + .line_info_top = fun_data_trezor_crypto_cashaddr_encode + 11, + .opcodes = fun_data_trezor_crypto_cashaddr_encode + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_cashaddr__lt_module_gt_ +// frozen bytecode for file trezor/crypto/cashaddr.py, scope trezor_crypto_cashaddr_decode +static const byte fun_data_trezor_crypto_cashaddr_decode[73] = { + 0x4a,0x16, // prelude + 0x10,0x17,0x1d, // names: decode, prefix, addr + 0x80,0x52,0x26,0x66,0x2e,0x23,0x47,0x2c, // code info + 0xb1, // LOAD_FAST 1 + 0x14,0x11, // LOAD_METHOD 'lower' + 0x36,0x00, // CALL_METHOD 0 + 0xc1, // STORE_FAST 1 + 0x12,0x0a, // LOAD_GLOBAL '_b32decode' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x12,0x06, // LOAD_GLOBAL 'cashaddr_polymod' + 0x12,0x07, // LOAD_GLOBAL 'prefix_expand' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x1e, // LOAD_GLOBAL 'ValueError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x1c, // LOAD_GLOBAL 'bytes' + 0x12,0x04, // LOAD_GLOBAL 'convertbits' + 0xb2, // LOAD_FAST 2 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x7a, // LOAD_CONST_SMALL_INT -6 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_cashaddr_decode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_cashaddr_decode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 73, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_trezor_crypto_cashaddr_decode + 5, + .line_info_top = fun_data_trezor_crypto_cashaddr_decode + 13, + .opcodes = fun_data_trezor_crypto_cashaddr_decode + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_cashaddr__lt_module_gt_[] = { + &raw_code_trezor_crypto_cashaddr_cashaddr_polymod, + &raw_code_trezor_crypto_cashaddr_prefix_expand, + &raw_code_trezor_crypto_cashaddr__calculate_checksum, + &raw_code_trezor_crypto_cashaddr__b32decode, + &raw_code_trezor_crypto_cashaddr__b32encode, + &raw_code_trezor_crypto_cashaddr_encode, + &raw_code_trezor_crypto_cashaddr_decode, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_cashaddr__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_crypto_cashaddr__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 86, + #endif + .children = (void *)&children_trezor_crypto_cashaddr__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 7, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_crypto_cashaddr__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_crypto_cashaddr__lt_module_gt_ + 22, + .opcodes = fun_data_trezor_crypto_cashaddr__lt_module_gt_ + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_crypto_cashaddr[33] = { + MP_QSTR_trezor_slash_crypto_slash_cashaddr_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_convertbits, + MP_QSTR_bech32, + MP_QSTR_cashaddr_polymod, + MP_QSTR_prefix_expand, + MP_QSTR__calculate_checksum, + MP_QSTR_append, + MP_QSTR__b32decode, + MP_QSTR_find, + MP_QSTR__b32encode, + MP_QSTR_, + MP_QSTR_encode, + MP_QSTR__colon_, + MP_QSTR_decode, + MP_QSTR_lower, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_CHARSET, + MP_QSTR_ADDRESS_TYPE_P2KH, + MP_QSTR_ADDRESS_TYPE_P2SH, + MP_QSTR_values, + MP_QSTR_prefix, + MP_QSTR_payload, + MP_QSTR_inputs, + MP_QSTR_version, + MP_QSTR_payload_bytes, + MP_QSTR_bytes, + MP_QSTR_addr, + MP_QSTR_ValueError, + MP_QSTR__star_, + MP_QSTR_ord, +}; + +// constants +static const mp_obj_str_t const_obj_trezor_crypto_cashaddr_0 = {{&mp_type_str}, 62090, 32, (const byte*)"\x71\x70\x7a\x72\x79\x39\x78\x38\x67\x66\x32\x74\x76\x64\x77\x30\x73\x33\x6a\x6e\x35\x34\x6b\x68\x63\x65\x36\x6d\x75\x61\x37\x6c"}; +static const mp_obj_int_t const_obj_trezor_crypto_cashaddr_1 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x8e61,0xf2bc,0x98}}}; +static const mp_obj_int_t const_obj_trezor_crypto_cashaddr_2 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x99e2,0xb76d,0x79}}}; +static const mp_obj_int_t const_obj_trezor_crypto_cashaddr_3 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0xb3c4,0x3e5f,0xf3}}}; +static const mp_obj_int_t const_obj_trezor_crypto_cashaddr_4 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0xe2a8,0x2eab,0xae}}}; +static const mp_obj_int_t const_obj_trezor_crypto_cashaddr_5 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0xe470,0x4f43,0x1e}}}; +static const mp_obj_int_t const_obj_trezor_crypto_cashaddr_6 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0xffff,0xffff,0x7}}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_crypto_cashaddr[8] = { + MP_ROM_PTR(&const_obj_trezor_crypto_cashaddr_0), + MP_ROM_PTR(&const_obj_trezor_crypto_cashaddr_1), + MP_ROM_PTR(&const_obj_trezor_crypto_cashaddr_2), + MP_ROM_PTR(&const_obj_trezor_crypto_cashaddr_3), + MP_ROM_PTR(&const_obj_trezor_crypto_cashaddr_4), + MP_ROM_PTR(&const_obj_trezor_crypto_cashaddr_5), + MP_ROM_PTR(&const_obj_trezor_crypto_cashaddr_6), + MP_ROM_QSTR(MP_QSTR_Bad_space_cashaddr_space_checksum), +}; + +static const mp_frozen_module_t frozen_module_trezor_crypto_cashaddr = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_crypto_cashaddr, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_crypto_cashaddr, + }, + .rc = &raw_code_trezor_crypto_cashaddr__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_crypto_cosi +// - original source file: build/firmware/src/trezor/crypto/cosi.mpy +// - frozen file name: trezor/crypto/cosi.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/crypto/cosi.py, scope trezor_crypto_cosi__lt_module_gt_ +static const byte fun_data_trezor_crypto_cosi__lt_module_gt_[57] = { + 0x08,0x12, // prelude + 0x01, // names: + 0x40,0x4c,0x26,0x26,0x26,0x66,0x84,0x0b, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x02, // LOAD_CONST_STRING 'ed25519' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'curve' + 0x1c,0x02, // IMPORT_FROM 'ed25519' + 0x16,0x02, // STORE_NAME 'ed25519' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'ed25519' + 0x13,0x04, // LOAD_ATTR 'cosi_commit' + 0x16,0x0b, // STORE_NAME 'commit' + 0x11,0x02, // LOAD_NAME 'ed25519' + 0x13,0x05, // LOAD_ATTR 'cosi_sign' + 0x16,0x0c, // STORE_NAME 'sign' + 0x11,0x02, // LOAD_NAME 'ed25519' + 0x13,0x06, // LOAD_ATTR 'cosi_combine_publickeys' + 0x16,0x0d, // STORE_NAME 'combine_publickeys' + 0x11,0x02, // LOAD_NAME 'ed25519' + 0x13,0x07, // LOAD_ATTR 'cosi_combine_signatures' + 0x16,0x0e, // STORE_NAME 'combine_signatures' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x08, // STORE_NAME 'select_keys' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0a, // STORE_NAME 'verify' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_cosi__lt_module_gt_ +// frozen bytecode for file trezor/crypto/cosi.py, scope trezor_crypto_cosi_select_keys +static const byte fun_data_trezor_crypto_cosi_select_keys[48] = { + 0x52,0x18, // prelude + 0x08,0x0f,0x10, // names: select_keys, sigmask, keys + 0x80,0x0b,0x23,0x25,0x25,0x27,0x26,0x23,0x23, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x13, // FOR_ITER 19 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xef, // BINARY_OP 24 __and__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb2, // LOAD_FAST 2 + 0x14,0x09, // LOAD_METHOD 'append' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe4, // BINARY_OP 13 __irshift__ + 0xc0, // STORE_FAST 0 + 0x42,0x2b, // JUMP -21 + 0xb0, // LOAD_FAST 0 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x11, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_cosi_select_keys = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_cosi_select_keys, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_trezor_crypto_cosi_select_keys + 5, + .line_info_top = fun_data_trezor_crypto_cosi_select_keys + 14, + .opcodes = fun_data_trezor_crypto_cosi_select_keys + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_cosi__lt_module_gt_ +// frozen bytecode for file trezor/crypto/cosi.py, scope trezor_crypto_cosi_verify +static const byte fun_data_trezor_crypto_cosi_verify[59] = { + 0xd9,0x04,0x1c, // prelude + 0x0a,0x12,0x13,0x14,0x10,0x0f, // names: verify, signature, data, threshold, keys, sigmask + 0x80,0x1c,0x25,0x43,0x27,0x29,0x42,0x26, // code info + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x11, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x08, // LOAD_GLOBAL 'select_keys' + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0x12,0x15, // LOAD_GLOBAL 'len' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0x12,0x0d, // LOAD_GLOBAL 'combine_publickeys' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc6, // STORE_FAST 6 + 0x12,0x02, // LOAD_GLOBAL 'ed25519' + 0x14,0x0a, // LOAD_METHOD 'verify' + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_cosi_verify = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_trezor_crypto_cosi_verify, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_trezor_crypto_cosi_verify + 9, + .line_info_top = fun_data_trezor_crypto_cosi_verify + 17, + .opcodes = fun_data_trezor_crypto_cosi_verify + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_cosi__lt_module_gt_[] = { + &raw_code_trezor_crypto_cosi_select_keys, + &raw_code_trezor_crypto_cosi_verify, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_cosi__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_crypto_cosi__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = (void *)&children_trezor_crypto_cosi__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_crypto_cosi__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_crypto_cosi__lt_module_gt_ + 11, + .opcodes = fun_data_trezor_crypto_cosi__lt_module_gt_ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_crypto_cosi[22] = { + MP_QSTR_trezor_slash_crypto_slash_cosi_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ed25519, + MP_QSTR_curve, + MP_QSTR_cosi_commit, + MP_QSTR_cosi_sign, + MP_QSTR_cosi_combine_publickeys, + MP_QSTR_cosi_combine_signatures, + MP_QSTR_select_keys, + MP_QSTR_append, + MP_QSTR_verify, + MP_QSTR_commit, + MP_QSTR_sign, + MP_QSTR_combine_publickeys, + MP_QSTR_combine_signatures, + MP_QSTR_sigmask, + MP_QSTR_keys, + MP_QSTR_ValueError, + MP_QSTR_signature, + MP_QSTR_data, + MP_QSTR_threshold, + MP_QSTR_len, +}; + +static const mp_frozen_module_t frozen_module_trezor_crypto_cosi = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_crypto_cosi, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_crypto_cosi__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_crypto_curve +// - original source file: build/firmware/src/trezor/crypto/curve.mpy +// - frozen file name: trezor/crypto/curve.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/crypto/curve.py, scope trezor_crypto_curve__lt_module_gt_ +static const byte fun_data_trezor_crypto_curve__lt_module_gt_[41] = { + 0x28,0x02, // prelude + 0x01, // names: + // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'bip340' + 0x10,0x03, // LOAD_CONST_STRING 'curve25519' + 0x10,0x04, // LOAD_CONST_STRING 'ed25519' + 0x10,0x05, // LOAD_CONST_STRING 'nist256p1' + 0x10,0x06, // LOAD_CONST_STRING 'secp256k1' + 0x2a,0x05, // BUILD_TUPLE 5 + 0x1b,0x07, // IMPORT_NAME 'trezorcrypto' + 0x1c,0x02, // IMPORT_FROM 'bip340' + 0x16,0x02, // STORE_NAME 'bip340' + 0x1c,0x03, // IMPORT_FROM 'curve25519' + 0x16,0x03, // STORE_NAME 'curve25519' + 0x1c,0x04, // IMPORT_FROM 'ed25519' + 0x16,0x04, // STORE_NAME 'ed25519' + 0x1c,0x05, // IMPORT_FROM 'nist256p1' + 0x16,0x05, // STORE_NAME 'nist256p1' + 0x1c,0x06, // IMPORT_FROM 'secp256k1' + 0x16,0x06, // STORE_NAME 'secp256k1' + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_curve__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_crypto_curve__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_crypto_curve__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_crypto_curve__lt_module_gt_ + 3, + .opcodes = fun_data_trezor_crypto_curve__lt_module_gt_ + 3, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_crypto_curve[8] = { + MP_QSTR_trezor_slash_crypto_slash_curve_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_bip340, + MP_QSTR_curve25519, + MP_QSTR_ed25519, + MP_QSTR_nist256p1, + MP_QSTR_secp256k1, + MP_QSTR_trezorcrypto, +}; + +static const mp_frozen_module_t frozen_module_trezor_crypto_curve = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_crypto_curve, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_crypto_curve__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_crypto_der +// - original source file: build/firmware/src/trezor/crypto/der.mpy +// - frozen file name: trezor/crypto/der.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/crypto/der.py, scope trezor_crypto_der__lt_module_gt_ +static const byte fun_data_trezor_crypto_der__lt_module_gt_[54] = { + 0x08,0x1c, // prelude + 0x01, // names: + 0x6c,0x80,0x07,0x84,0x0b,0x84,0x14,0x84,0x10,0x84,0x19,0x84,0x0c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x04, // STORE_NAME 'encode_length' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x05, // STORE_NAME 'read_length' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x08, // STORE_NAME '_write_int' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x0b, // STORE_NAME '_read_int' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x0d, // STORE_NAME 'encode_seq' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x10, // STORE_NAME 'decode_seq' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_der__lt_module_gt_ +// frozen bytecode for file trezor/crypto/der.py, scope trezor_crypto_der_encode_length +static const byte fun_data_trezor_crypto_der_encode_length[76] = { + 0x29,0x14, // prelude + 0x04,0x14, // names: encode_length, l + 0x80,0x0b,0x27,0x28,0x27,0x2b,0x28,0x52, // code info + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x15, // LOAD_GLOBAL 'bytes' + 0xb0, // LOAD_FAST 0 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x15, // LOAD_GLOBAL 'bytes' + 0x22,0x81,0x01, // LOAD_CONST_SMALL_INT 129 + 0xb0, // LOAD_FAST 0 + 0x2b,0x02, // BUILD_LIST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x22,0x83,0xff,0x7f, // LOAD_CONST_SMALL_INT 65535 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x15, // LOAD_GLOBAL 'bytes' + 0x22,0x81,0x02, // LOAD_CONST_SMALL_INT 130 + 0xb0, // LOAD_FAST 0 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf1, // BINARY_OP 26 __rshift__ + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xef, // BINARY_OP 24 __and__ + 0x2b,0x03, // BUILD_LIST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0x12,0x16, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_der_encode_length = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_der_encode_length, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 76, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_trezor_crypto_der_encode_length + 4, + .line_info_top = fun_data_trezor_crypto_der_encode_length + 12, + .opcodes = fun_data_trezor_crypto_der_encode_length + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_der__lt_module_gt_ +// frozen bytecode for file trezor/crypto/der.py, scope trezor_crypto_der_read_length +static const byte fun_data_trezor_crypto_der_read_length[102] = { + 0x41,0x1c, // prelude + 0x05,0x17, // names: read_length, r + 0x80,0x16,0x26,0x47,0x42,0x37,0x63,0x22,0x2a,0x55,0x27,0x43, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x06, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xd9, // BINARY_OP 2 __eq__ + 0x43,0x50, // POP_JUMP_IF_TRUE 16 + 0xb1, // LOAD_FAST 1 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xd9, // BINARY_OP 2 __eq__ + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x07, // LOAD_METHOD 'peek' + 0x36,0x00, // CALL_METHOD 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x16, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0xef, // BINARY_OP 24 __and__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x50, // JUMP 16 + 0x57, // DUP_TOP + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x22,0x82,0x00, // LOAD_CONST_SMALL_INT 256 + 0xf4, // BINARY_OP 29 __mul__ + 0xb0, // LOAD_FAST 0 + 0x14,0x06, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0xf2, // BINARY_OP 27 __add__ + 0xc2, // STORE_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2b, // POP_JUMP_IF_TRUE -21 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x16, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_der_read_length = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_der_read_length, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 102, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_trezor_crypto_der_read_length + 4, + .line_info_top = fun_data_trezor_crypto_der_read_length + 16, + .opcodes = fun_data_trezor_crypto_der_read_length + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_der__lt_module_gt_ +// frozen bytecode for file trezor/crypto/der.py, scope trezor_crypto_der__write_int +static const byte fun_data_trezor_crypto_der__write_int[120] = { + 0x42,0x1c, // prelude + 0x08,0x18,0x19, // names: _write_int, w, number + 0x80,0x2a,0x22,0x22,0x54,0x28,0x27,0x2e,0x2d,0x49,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc2, // STORE_FAST 2 + 0x42,0x44, // JUMP 4 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x12,0x1a, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x43,0x2c, // POP_JUMP_IF_TRUE -20 + 0x12,0x1a, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0xf3, // BINARY_OP 28 __sub__ + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x14,0x09, // LOAD_METHOD 'append' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD 'extend' + 0x12,0x04, // LOAD_GLOBAL 'encode_length' + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x09, // LOAD_METHOD 'append' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x4b, // JUMP 11 + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD 'extend' + 0x12,0x04, // LOAD_GLOBAL 'encode_length' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD 'extend' + 0x12,0x1b, // LOAD_GLOBAL 'memoryview' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_der__write_int = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_der__write_int, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 120, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_trezor_crypto_der__write_int + 5, + .line_info_top = fun_data_trezor_crypto_der__write_int + 16, + .opcodes = fun_data_trezor_crypto_der__write_int + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_der__lt_module_gt_ +// frozen bytecode for file trezor/crypto/der.py, scope trezor_crypto_der__read_int +static const byte fun_data_trezor_crypto_der__read_int[116] = { + 0x29,0x26, // prelude + 0x0b,0x17, // names: _read_int, r + 0x80,0x3a,0x44,0x29,0x43,0x26,0x25,0x43,0x29,0x43,0x2c,0x26,0x24,0x2b,0x43,0x27,0x43, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x07, // LOAD_ATTR 'peek' + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x14,0x06, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x16, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x05, // LOAD_GLOBAL 'read_length' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x16, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xef, // BINARY_OP 24 __and__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x16, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x67, // POP_JUMP_IF_FALSE 39 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x62, // POP_JUMP_IF_FALSE 34 + 0xb0, // LOAD_FAST 0 + 0x14,0x06, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe6, // BINARY_OP 15 __isub__ + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xef, // BINARY_OP 24 __and__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x16, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x16, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x14,0x0c, // LOAD_METHOD 'read_memoryview' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_der__read_int = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_der__read_int, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 116, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_trezor_crypto_der__read_int + 4, + .line_info_top = fun_data_trezor_crypto_der__read_int + 21, + .opcodes = fun_data_trezor_crypto_der__read_int + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_der__lt_module_gt_ +// frozen bytecode for file trezor/crypto/der.py, scope trezor_crypto_der_encode_seq +static const byte fun_data_trezor_crypto_der_encode_seq[71] = { + 0x51,0x14, // prelude + 0x0d,0x1c, // names: encode_seq, seq + 0x80,0x53,0x6b,0x27,0x28,0x25,0x29,0x31, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'empty_bytearray' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'trezor.utils' + 0x1c,0x0e, // IMPORT_FROM 'empty_bytearray' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x22,0x80,0x48, // LOAD_CONST_SMALL_INT 72 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x14,0x09, // LOAD_METHOD 'append' + 0x22,0x30, // LOAD_CONST_SMALL_INT 48 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc3, // STORE_FAST 3 + 0x12,0x08, // LOAD_GLOBAL '_write_int' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x12,0x04, // LOAD_GLOBAL 'encode_length' + 0x12,0x1a, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_der_encode_seq = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_der_encode_seq, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 71, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_trezor_crypto_der_encode_seq + 4, + .line_info_top = fun_data_trezor_crypto_der_encode_seq + 12, + .opcodes = fun_data_trezor_crypto_der_encode_seq + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_der__lt_module_gt_ +// frozen bytecode for file trezor/crypto/der.py, scope trezor_crypto_der_decode_seq +static const byte fun_data_trezor_crypto_der_decode_seq[103] = { + 0x49,0x20, // prelude + 0x10,0x1d, // names: decode_seq, data + 0x80,0x5f,0x4b,0x45,0x2a,0x23,0x46,0x23,0x26,0x22,0x26,0x4e,0x2e,0x43, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'BufferReader' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'trezor.utils' + 0x1c,0x11, // IMPORT_FROM 'BufferReader' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x14,0x06, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x22,0x30, // LOAD_CONST_SMALL_INT 48 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x16, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x05, // LOAD_GLOBAL 'read_length' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x2b,0x00, // BUILD_LIST 0 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x12, // LOAD_ATTR 'offset' + 0xb3, // LOAD_FAST 3 + 0xf2, // BINARY_OP 27 __add__ + 0xc5, // STORE_FAST 5 + 0x42,0x4d, // JUMP 13 + 0x12,0x0b, // LOAD_GLOBAL '_read_int' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x14,0x09, // LOAD_METHOD 'append' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x12, // LOAD_ATTR 'offset' + 0xb5, // LOAD_FAST 5 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2c, // POP_JUMP_IF_TRUE -20 + 0xb2, // LOAD_FAST 2 + 0x13,0x12, // LOAD_ATTR 'offset' + 0xb5, // LOAD_FAST 5 + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0xb2, // LOAD_FAST 2 + 0x14,0x13, // LOAD_METHOD 'remaining_count' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x16, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_der_decode_seq = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_der_decode_seq, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 103, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_trezor_crypto_der_decode_seq + 4, + .line_info_top = fun_data_trezor_crypto_der_decode_seq + 18, + .opcodes = fun_data_trezor_crypto_der_decode_seq + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_der__lt_module_gt_[] = { + &raw_code_trezor_crypto_der_encode_length, + &raw_code_trezor_crypto_der_read_length, + &raw_code_trezor_crypto_der__write_int, + &raw_code_trezor_crypto_der__read_int, + &raw_code_trezor_crypto_der_encode_seq, + &raw_code_trezor_crypto_der_decode_seq, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_der__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_crypto_der__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 54, + #endif + .children = (void *)&children_trezor_crypto_der__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_crypto_der__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_crypto_der__lt_module_gt_ + 16, + .opcodes = fun_data_trezor_crypto_der__lt_module_gt_ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_crypto_der[30] = { + MP_QSTR_trezor_slash_crypto_slash_der_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_encode_length, + MP_QSTR_read_length, + MP_QSTR_get, + MP_QSTR_peek, + MP_QSTR__write_int, + MP_QSTR_append, + MP_QSTR_extend, + MP_QSTR__read_int, + MP_QSTR_read_memoryview, + MP_QSTR_encode_seq, + MP_QSTR_empty_bytearray, + MP_QSTR_trezor_dot_utils, + MP_QSTR_decode_seq, + MP_QSTR_BufferReader, + MP_QSTR_offset, + MP_QSTR_remaining_count, + MP_QSTR_l, + MP_QSTR_bytes, + MP_QSTR_ValueError, + MP_QSTR_r, + MP_QSTR_w, + MP_QSTR_number, + MP_QSTR_len, + MP_QSTR_memoryview, + MP_QSTR_seq, + MP_QSTR_data, +}; + +static const mp_frozen_module_t frozen_module_trezor_crypto_der = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_crypto_der, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_crypto_der__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_crypto_hashlib +// - original source file: build/firmware/src/trezor/crypto/hashlib.mpy +// - frozen file name: trezor/crypto/hashlib.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/crypto/hashlib.py, scope trezor_crypto_hashlib__lt_module_gt_ +static const byte fun_data_trezor_crypto_hashlib__lt_module_gt_[71] = { + 0x50,0x02, // prelude + 0x01, // names: + // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'blake2b' + 0x10,0x03, // LOAD_CONST_STRING 'blake2s' + 0x10,0x04, // LOAD_CONST_STRING 'blake256' + 0x10,0x05, // LOAD_CONST_STRING 'groestl512' + 0x10,0x06, // LOAD_CONST_STRING 'ripemd160' + 0x10,0x07, // LOAD_CONST_STRING 'sha1' + 0x10,0x08, // LOAD_CONST_STRING 'sha3_256' + 0x10,0x09, // LOAD_CONST_STRING 'sha3_512' + 0x10,0x0a, // LOAD_CONST_STRING 'sha256' + 0x10,0x0b, // LOAD_CONST_STRING 'sha512' + 0x2a,0x0a, // BUILD_TUPLE 10 + 0x1b,0x0c, // IMPORT_NAME 'trezorcrypto' + 0x1c,0x02, // IMPORT_FROM 'blake2b' + 0x16,0x02, // STORE_NAME 'blake2b' + 0x1c,0x03, // IMPORT_FROM 'blake2s' + 0x16,0x03, // STORE_NAME 'blake2s' + 0x1c,0x04, // IMPORT_FROM 'blake256' + 0x16,0x04, // STORE_NAME 'blake256' + 0x1c,0x05, // IMPORT_FROM 'groestl512' + 0x16,0x05, // STORE_NAME 'groestl512' + 0x1c,0x06, // IMPORT_FROM 'ripemd160' + 0x16,0x06, // STORE_NAME 'ripemd160' + 0x1c,0x07, // IMPORT_FROM 'sha1' + 0x16,0x07, // STORE_NAME 'sha1' + 0x1c,0x08, // IMPORT_FROM 'sha3_256' + 0x16,0x08, // STORE_NAME 'sha3_256' + 0x1c,0x09, // IMPORT_FROM 'sha3_512' + 0x16,0x09, // STORE_NAME 'sha3_512' + 0x1c,0x0a, // IMPORT_FROM 'sha256' + 0x16,0x0a, // STORE_NAME 'sha256' + 0x1c,0x0b, // IMPORT_FROM 'sha512' + 0x16,0x0b, // STORE_NAME 'sha512' + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_hashlib__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_crypto_hashlib__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 71, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_crypto_hashlib__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_crypto_hashlib__lt_module_gt_ + 3, + .opcodes = fun_data_trezor_crypto_hashlib__lt_module_gt_ + 3, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_crypto_hashlib[13] = { + MP_QSTR_trezor_slash_crypto_slash_hashlib_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_blake2b, + MP_QSTR_blake2s, + MP_QSTR_blake256, + MP_QSTR_groestl512, + MP_QSTR_ripemd160, + MP_QSTR_sha1, + MP_QSTR_sha3_256, + MP_QSTR_sha3_512, + MP_QSTR_sha256, + MP_QSTR_sha512, + MP_QSTR_trezorcrypto, +}; + +static const mp_frozen_module_t frozen_module_trezor_crypto_hashlib = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_crypto_hashlib, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_crypto_hashlib__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_crypto_rlp +// - original source file: build/firmware/src/trezor/crypto/rlp.mpy +// - frozen file name: trezor/crypto/rlp.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/crypto/rlp.py, scope trezor_crypto_rlp__lt_module_gt_ +static const byte fun_data_trezor_crypto_rlp__lt_module_gt_[86] = { + 0x08,0x28, // prelude + 0x01, // names: + 0x6c,0x80,0x0f,0x25,0x65,0x84,0x0a,0x64,0x20,0x88,0x13,0x88,0x0b,0x84,0x10,0x64,0x40,0x84,0x07, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0x16,0x11, // STORE_NAME 'STRING_HEADER_BYTE' + 0x22,0x81,0x40, // LOAD_CONST_SMALL_INT 192 + 0x16,0x12, // STORE_NAME 'LIST_HEADER_BYTE' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x04, // STORE_NAME '_byte_size' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x05, // STORE_NAME 'int_to_bytes' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x08, // STORE_NAME 'write_header' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x03, // MAKE_FUNCTION_DEFARGS 3 + 0x16,0x0b, // STORE_NAME 'header_length' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x0c, // STORE_NAME 'length' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x0d, // STORE_NAME '_write_string' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x0e, // STORE_NAME '_write_list' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x0f, // STORE_NAME 'write' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_rlp__lt_module_gt_ +// frozen bytecode for file trezor/crypto/rlp.py, scope trezor_crypto_rlp__byte_size +static const byte fun_data_trezor_crypto_rlp__byte_size[50] = { + 0x29,0x12, // prelude + 0x04,0x13, // names: _byte_size, x + 0x80,0x17,0x25,0x23,0x25,0x29,0x4c, // code info + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x14, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x4f, // JUMP 15 + 0x57, // DUP_TOP + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x22,0x82,0x00, // LOAD_CONST_SMALL_INT 256 + 0xb1, // LOAD_FAST 1 + 0xf9, // BINARY_OP 34 __pow__ + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x57, // DUP_TOP + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2a, // POP_JUMP_IF_TRUE -22 + 0x59, // POP_TOP + 0x12,0x14, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_rlp__byte_size = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_rlp__byte_size, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_trezor_crypto_rlp__byte_size + 4, + .line_info_top = fun_data_trezor_crypto_rlp__byte_size + 11, + .opcodes = fun_data_trezor_crypto_rlp__byte_size + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_rlp__lt_module_gt_ +// frozen bytecode for file trezor/crypto/rlp.py, scope trezor_crypto_rlp_int_to_bytes +static const byte fun_data_trezor_crypto_rlp_int_to_bytes[19] = { + 0x21,0x08, // prelude + 0x05,0x13, // names: int_to_bytes, x + 0x80,0x21, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x06, // LOAD_METHOD 'to_bytes' + 0x12,0x04, // LOAD_GLOBAL '_byte_size' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x07, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_rlp_int_to_bytes = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_rlp_int_to_bytes, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_trezor_crypto_rlp_int_to_bytes + 4, + .line_info_top = fun_data_trezor_crypto_rlp_int_to_bytes + 6, + .opcodes = fun_data_trezor_crypto_rlp_int_to_bytes + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_rlp__lt_module_gt_ +// frozen bytecode for file trezor/crypto/rlp.py, scope trezor_crypto_rlp_write_header +static const byte fun_data_trezor_crypto_rlp_write_header[86] = { + 0xc8,0x05,0x1a, // prelude + 0x08,0x15,0x0c,0x16,0x17, // names: write_header, w, length, header_byte, data_start + 0x80,0x2a,0x54,0x42,0x26,0x6b,0x26,0x30, // code info + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x6e, // JUMP 46 + 0xb1, // LOAD_FAST 1 + 0x22,0x37, // LOAD_CONST_SMALL_INT 55 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x14,0x09, // LOAD_METHOD 'append' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x5d, // JUMP 29 + 0x12,0x05, // LOAD_GLOBAL 'int_to_bytes' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x09, // LOAD_METHOD 'append' + 0xb2, // LOAD_FAST 2 + 0x22,0x37, // LOAD_CONST_SMALL_INT 55 + 0xf2, // BINARY_OP 27 __add__ + 0x12,0x18, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD 'extend' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_rlp_write_header = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_trezor_crypto_rlp_write_header, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 86, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 8, + .line_info = fun_data_trezor_crypto_rlp_write_header + 8, + .line_info_top = fun_data_trezor_crypto_rlp_write_header + 16, + .opcodes = fun_data_trezor_crypto_rlp_write_header + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_rlp__lt_module_gt_ +// frozen bytecode for file trezor/crypto/rlp.py, scope trezor_crypto_rlp_header_length +static const byte fun_data_trezor_crypto_rlp_header_length[50] = { + 0xa2,0x01,0x12, // prelude + 0x0b,0x0c,0x17, // names: header_length, length, data_start + 0x80,0x38,0x54,0x42,0x26,0x42, // code info + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x22,0x37, // LOAD_CONST_SMALL_INT 55 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x63, // RETURN_VALUE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x12,0x04, // LOAD_GLOBAL '_byte_size' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_rlp_header_length = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_rlp_header_length, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 11, + .line_info = fun_data_trezor_crypto_rlp_header_length + 6, + .line_info_top = fun_data_trezor_crypto_rlp_header_length + 12, + .opcodes = fun_data_trezor_crypto_rlp_header_length + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_rlp__lt_module_gt_ +// frozen bytecode for file trezor/crypto/rlp.py, scope trezor_crypto_rlp_length +static const byte fun_data_trezor_crypto_rlp_length[98] = { + 0x31,0x1c, // prelude + 0x0c,0x19, // names: length, item + 0x80,0x43,0x22,0x29,0x26,0x28,0x2d,0x22,0x28,0x29,0x4d,0x43, // code info + 0x51, // LOAD_CONST_NONE + 0xc1, // STORE_FAST 1 + 0x12,0x1a, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x1b, // LOAD_GLOBAL 'int' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x05, // LOAD_GLOBAL 'int_to_bytes' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0x12,0x18, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x42,0x70, // JUMP 48 + 0x12,0x1a, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x1c, // LOAD_GLOBAL 'bytes' + 0x12,0x1d, // LOAD_GLOBAL 'bytearray' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb0, // LOAD_FAST 0 + 0xc1, // STORE_FAST 1 + 0x12,0x18, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x42,0x59, // JUMP 25 + 0x12,0x1a, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x1e, // LOAD_GLOBAL 'list' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x1f, // LOAD_GLOBAL 'sum' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x42,0x43, // JUMP 3 + 0x12,0x20, // LOAD_GLOBAL 'TypeError' + 0x65, // RAISE_OBJ + 0x12,0x0b, // LOAD_GLOBAL 'header_length' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb2, // LOAD_FAST 2 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_rlp_length +// frozen bytecode for file trezor/crypto/rlp.py, scope trezor_crypto_rlp_length__lt_genexpr_gt_ +static const byte fun_data_trezor_crypto_rlp_length__lt_genexpr_gt_[25] = { + 0xb9,0x40,0x08, // prelude + 0x10,0x23, // names: , * + 0x80,0x4b, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0a, // FOR_ITER 10 + 0xc1, // STORE_FAST 1 + 0x12,0x0c, // LOAD_GLOBAL 'length' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_rlp_length__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_rlp_length__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_trezor_crypto_rlp_length__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_trezor_crypto_rlp_length__lt_genexpr_gt_ + 7, + .opcodes = fun_data_trezor_crypto_rlp_length__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_rlp_length[] = { + &raw_code_trezor_crypto_rlp_length__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_rlp_length = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_rlp_length, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 98, + #endif + .children = (void *)&children_trezor_crypto_rlp_length, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_trezor_crypto_rlp_length + 4, + .line_info_top = fun_data_trezor_crypto_rlp_length + 16, + .opcodes = fun_data_trezor_crypto_rlp_length + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_rlp__lt_module_gt_ +// frozen bytecode for file trezor/crypto/rlp.py, scope trezor_crypto_rlp__write_string +static const byte fun_data_trezor_crypto_rlp__write_string[32] = { + 0x32,0x0c, // prelude + 0x0d,0x15,0x21, // names: _write_string, w, string + 0x80,0x53,0x2f, // code info + 0x12,0x08, // LOAD_GLOBAL 'write_header' + 0xb0, // LOAD_FAST 0 + 0x12,0x18, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xb1, // LOAD_FAST 1 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD 'extend' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_rlp__write_string = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_rlp__write_string, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_trezor_crypto_rlp__write_string + 5, + .line_info_top = fun_data_trezor_crypto_rlp__write_string + 8, + .opcodes = fun_data_trezor_crypto_rlp__write_string + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_rlp__lt_module_gt_ +// frozen bytecode for file trezor/crypto/rlp.py, scope trezor_crypto_rlp__write_list +static const byte fun_data_trezor_crypto_rlp__write_list[47] = { + 0x52,0x10, // prelude + 0x0e,0x15,0x22, // names: _write_list, w, lst + 0x80,0x58,0x2b,0x2a,0x25, // code info + 0x12,0x1f, // LOAD_GLOBAL 'sum' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x12,0x08, // LOAD_GLOBAL 'write_header' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x40, // LOAD_CONST_SMALL_INT 192 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc3, // STORE_FAST 3 + 0x12,0x0f, // LOAD_GLOBAL 'write' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_rlp__write_list +// frozen bytecode for file trezor/crypto/rlp.py, scope trezor_crypto_rlp__write_list__lt_genexpr_gt_ +static const byte fun_data_trezor_crypto_rlp__write_list__lt_genexpr_gt_[25] = { + 0xb9,0x40,0x08, // prelude + 0x10,0x23, // names: , * + 0x80,0x58, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0a, // FOR_ITER 10 + 0xc1, // STORE_FAST 1 + 0x12,0x0c, // LOAD_GLOBAL 'length' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_rlp__write_list__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_rlp__write_list__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_trezor_crypto_rlp__write_list__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_trezor_crypto_rlp__write_list__lt_genexpr_gt_ + 7, + .opcodes = fun_data_trezor_crypto_rlp__write_list__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_rlp__write_list[] = { + &raw_code_trezor_crypto_rlp__write_list__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_rlp__write_list = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_rlp__write_list, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = (void *)&children_trezor_crypto_rlp__write_list, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_trezor_crypto_rlp__write_list + 5, + .line_info_top = fun_data_trezor_crypto_rlp__write_list + 10, + .opcodes = fun_data_trezor_crypto_rlp__write_list + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_rlp__lt_module_gt_ +// frozen bytecode for file trezor/crypto/rlp.py, scope trezor_crypto_rlp_write +static const byte fun_data_trezor_crypto_rlp_write[80] = { + 0x2a,0x16, // prelude + 0x0f,0x15,0x19, // names: write, w, item + 0x80,0x5f,0x29,0x2d,0x2d,0x29,0x29,0x49, // code info + 0x12,0x1a, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x1b, // LOAD_GLOBAL 'int' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x0d, // LOAD_GLOBAL '_write_string' + 0xb0, // LOAD_FAST 0 + 0x12,0x05, // LOAD_GLOBAL 'int_to_bytes' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x6b, // JUMP 43 + 0x12,0x1a, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x1c, // LOAD_GLOBAL 'bytes' + 0x12,0x1d, // LOAD_GLOBAL 'bytearray' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x0d, // LOAD_GLOBAL '_write_string' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x55, // JUMP 21 + 0x12,0x1a, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x1e, // LOAD_GLOBAL 'list' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x0e, // LOAD_GLOBAL '_write_list' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x43, // JUMP 3 + 0x12,0x20, // LOAD_GLOBAL 'TypeError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_rlp_write = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_rlp_write, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 80, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_trezor_crypto_rlp_write + 5, + .line_info_top = fun_data_trezor_crypto_rlp_write + 13, + .opcodes = fun_data_trezor_crypto_rlp_write + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_rlp__lt_module_gt_[] = { + &raw_code_trezor_crypto_rlp__byte_size, + &raw_code_trezor_crypto_rlp_int_to_bytes, + &raw_code_trezor_crypto_rlp_write_header, + &raw_code_trezor_crypto_rlp_header_length, + &raw_code_trezor_crypto_rlp_length, + &raw_code_trezor_crypto_rlp__write_string, + &raw_code_trezor_crypto_rlp__write_list, + &raw_code_trezor_crypto_rlp_write, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_rlp__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_crypto_rlp__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 86, + #endif + .children = (void *)&children_trezor_crypto_rlp__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 8, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_crypto_rlp__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_crypto_rlp__lt_module_gt_ + 22, + .opcodes = fun_data_trezor_crypto_rlp__lt_module_gt_ + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_crypto_rlp[36] = { + MP_QSTR_trezor_slash_crypto_slash_rlp_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR__byte_size, + MP_QSTR_int_to_bytes, + MP_QSTR_to_bytes, + MP_QSTR_big, + MP_QSTR_write_header, + MP_QSTR_append, + MP_QSTR_extend, + MP_QSTR_header_length, + MP_QSTR_length, + MP_QSTR__write_string, + MP_QSTR__write_list, + MP_QSTR_write, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_STRING_HEADER_BYTE, + MP_QSTR_LIST_HEADER_BYTE, + MP_QSTR_x, + MP_QSTR_ValueError, + MP_QSTR_w, + MP_QSTR_header_byte, + MP_QSTR_data_start, + MP_QSTR_len, + MP_QSTR_item, + MP_QSTR_isinstance, + MP_QSTR_int, + MP_QSTR_bytes, + MP_QSTR_bytearray, + MP_QSTR_list, + MP_QSTR_sum, + MP_QSTR_TypeError, + MP_QSTR_string, + MP_QSTR_lst, + MP_QSTR__star_, +}; + +static const mp_frozen_module_t frozen_module_trezor_crypto_rlp = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_crypto_rlp, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_crypto_rlp__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_crypto_scripts +// - original source file: build/firmware/src/trezor/crypto/scripts.mpy +// - frozen file name: trezor/crypto/scripts.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/crypto/scripts.py, scope trezor_crypto_scripts__lt_module_gt_ +static const byte fun_data_trezor_crypto_scripts__lt_module_gt_[54] = { + 0x18,0x08, // prelude + 0x01, // names: + 0x78,0x6b,0x40, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'blake256' + 0x10,0x03, // LOAD_CONST_STRING 'ripemd160' + 0x10,0x04, // LOAD_CONST_STRING 'sha256' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x05, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x02, // IMPORT_FROM 'blake256' + 0x16,0x02, // STORE_NAME 'blake256' + 0x1c,0x03, // IMPORT_FROM 'ripemd160' + 0x16,0x03, // STORE_NAME 'ripemd160' + 0x1c,0x04, // IMPORT_FROM 'sha256' + 0x16,0x04, // STORE_NAME 'sha256' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x06, // LOAD_CONST_STRING 'sha256_ripemd160' + 0x11,0x04, // LOAD_NAME 'sha256' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x06, // STORE_NAME 'sha256_ripemd160' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x07, // LOAD_CONST_STRING 'blake256_ripemd160' + 0x11,0x02, // LOAD_NAME 'blake256' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x07, // STORE_NAME 'blake256_ripemd160' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_scripts__lt_module_gt_ +// frozen bytecode for file trezor/crypto/scripts.py, scope trezor_crypto_scripts_sha256_ripemd160 +static const byte fun_data_trezor_crypto_scripts_sha256_ripemd160[22] = { + 0x08,0x07, // prelude + 0x06, // names: sha256_ripemd160 + 0x68,0x20,0x00, // code info + 0x11,0x09, // LOAD_NAME '__name__' + 0x16,0x0a, // STORE_NAME '__module__' + 0x10,0x06, // LOAD_CONST_STRING 'sha256_ripemd160' + 0x16,0x0b, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x08, // STORE_NAME 'digest' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_scripts_sha256_ripemd160 +// frozen bytecode for file trezor/crypto/scripts.py, scope trezor_crypto_scripts_sha256_ripemd160_digest +static const byte fun_data_trezor_crypto_scripts_sha256_ripemd160_digest[25] = { + 0x2a,0x0a, // prelude + 0x08,0x0c,0x0d, // names: digest, *, self + 0x60,0x40, // code info + 0x12,0x03, // LOAD_GLOBAL 'ripemd160' + 0x12,0x0e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x08, // LOAD_SUPER_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x08, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_scripts_sha256_ripemd160_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_scripts_sha256_ripemd160_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_trezor_crypto_scripts_sha256_ripemd160_digest + 5, + .line_info_top = fun_data_trezor_crypto_scripts_sha256_ripemd160_digest + 7, + .opcodes = fun_data_trezor_crypto_scripts_sha256_ripemd160_digest + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_scripts_sha256_ripemd160[] = { + &raw_code_trezor_crypto_scripts_sha256_ripemd160_digest, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_scripts_sha256_ripemd160 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_crypto_scripts_sha256_ripemd160, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_trezor_crypto_scripts_sha256_ripemd160, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_trezor_crypto_scripts_sha256_ripemd160 + 3, + .line_info_top = fun_data_trezor_crypto_scripts_sha256_ripemd160 + 5, + .opcodes = fun_data_trezor_crypto_scripts_sha256_ripemd160 + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_scripts__lt_module_gt_ +// frozen bytecode for file trezor/crypto/scripts.py, scope trezor_crypto_scripts_blake256_ripemd160 +static const byte fun_data_trezor_crypto_scripts_blake256_ripemd160[22] = { + 0x08,0x07, // prelude + 0x07, // names: blake256_ripemd160 + 0x88,0x09,0x00, // code info + 0x11,0x09, // LOAD_NAME '__name__' + 0x16,0x0a, // STORE_NAME '__module__' + 0x10,0x07, // LOAD_CONST_STRING 'blake256_ripemd160' + 0x16,0x0b, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x08, // STORE_NAME 'digest' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_scripts_blake256_ripemd160 +// frozen bytecode for file trezor/crypto/scripts.py, scope trezor_crypto_scripts_blake256_ripemd160_digest +static const byte fun_data_trezor_crypto_scripts_blake256_ripemd160_digest[25] = { + 0x2a,0x0a, // prelude + 0x08,0x0c,0x0d, // names: digest, *, self + 0x80,0x0a, // code info + 0x12,0x03, // LOAD_GLOBAL 'ripemd160' + 0x12,0x0e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x08, // LOAD_SUPER_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x08, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_scripts_blake256_ripemd160_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_scripts_blake256_ripemd160_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_trezor_crypto_scripts_blake256_ripemd160_digest + 5, + .line_info_top = fun_data_trezor_crypto_scripts_blake256_ripemd160_digest + 7, + .opcodes = fun_data_trezor_crypto_scripts_blake256_ripemd160_digest + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_scripts_blake256_ripemd160[] = { + &raw_code_trezor_crypto_scripts_blake256_ripemd160_digest, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_scripts_blake256_ripemd160 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_crypto_scripts_blake256_ripemd160, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_trezor_crypto_scripts_blake256_ripemd160, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_trezor_crypto_scripts_blake256_ripemd160 + 3, + .line_info_top = fun_data_trezor_crypto_scripts_blake256_ripemd160 + 5, + .opcodes = fun_data_trezor_crypto_scripts_blake256_ripemd160 + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_scripts__lt_module_gt_[] = { + &raw_code_trezor_crypto_scripts_sha256_ripemd160, + &raw_code_trezor_crypto_scripts_blake256_ripemd160, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_scripts__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_crypto_scripts__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 54, + #endif + .children = (void *)&children_trezor_crypto_scripts__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_crypto_scripts__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_crypto_scripts__lt_module_gt_ + 6, + .opcodes = fun_data_trezor_crypto_scripts__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_crypto_scripts[15] = { + MP_QSTR_trezor_slash_crypto_slash_scripts_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_blake256, + MP_QSTR_ripemd160, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_sha256_ripemd160, + MP_QSTR_blake256_ripemd160, + MP_QSTR_digest, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR__star_, + MP_QSTR_self, + MP_QSTR_super, +}; + +static const mp_frozen_module_t frozen_module_trezor_crypto_scripts = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_crypto_scripts, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_crypto_scripts__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_crypto_slip39 +// - original source file: build/firmware/src/trezor/crypto/slip39.mpy +// - frozen file name: trezor/crypto/slip39.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__lt_module_gt_ +static const byte fun_data_trezor_crypto_slip39__lt_module_gt_[285] = { + 0x10,0xa2,0x02, // prelude + 0x01, // names: + 0x80,0x14,0x80,0x0c,0x2c,0x72,0x2c,0x4c,0x80,0x0a,0x60,0x64,0x20,0x64,0x20,0x84,0x07,0x60,0x40,0x27,0x60,0x60,0x40,0x24,0x40,0x28,0x60,0x40,0x2c,0x60,0x60,0x60,0x60,0x60,0x20,0x23,0x20,0x23,0x40,0x63,0x89,0x1a,0x88,0x1a,0x84,0x07,0x84,0x39,0x84,0x26,0x84,0x3a,0x84,0x08,0x64,0x60,0x64,0x20,0x84,0x07,0x84,0x0d,0x84,0x16,0x84,0x0a,0x84,0x0c,0x64,0x60,0x64,0x60,0x84,0x2a,0x84,0x10,0x84,0x0d,0x84,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'shamir' + 0x10,0x05, // LOAD_CONST_STRING 'slip39' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x06, // IMPORT_NAME 'trezorcrypto' + 0x1c,0x04, // IMPORT_FROM 'shamir' + 0x16,0x04, // STORE_NAME 'shamir' + 0x1c,0x05, // IMPORT_FROM 'slip39' + 0x16,0x05, // STORE_NAME 'slip39' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'random' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x07, // IMPORT_FROM 'random' + 0x16,0x07, // STORE_NAME 'random' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'MnemonicError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.errors' + 0x1c,0x09, // IMPORT_FROM 'MnemonicError' + 0x16,0x09, // STORE_NAME 'MnemonicError' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0c, // STORE_NAME '_bits_to_bytes' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0d, // STORE_NAME '_bits_to_words' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0e, // STORE_NAME '_xor' + 0x11,0x0d, // LOAD_NAME '_bits_to_words' + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x46, // STORE_NAME '_ID_EXP_LENGTH_WORDS' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x47, // STORE_NAME '_CUSTOMIZATION_STRING' + 0x11,0x46, // LOAD_NAME '_ID_EXP_LENGTH_WORDS' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf2, // BINARY_OP 27 __add__ + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xf2, // BINARY_OP 27 __add__ + 0x16,0x48, // STORE_NAME '_METADATA_LENGTH_WORDS' + 0x11,0x48, // LOAD_NAME '_METADATA_LENGTH_WORDS' + 0x11,0x0d, // LOAD_NAME '_bits_to_words' + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x16,0x49, // STORE_NAME '_MIN_MNEMONIC_LENGTH_WORDS' + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x16,0x4a, // STORE_NAME 'MAX_SHARE_COUNT' + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x16,0x4b, // STORE_NAME 'MAX_GROUP_COUNT' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x4c, // STORE_NAME 'DEFAULT_ITERATION_EXPONENT' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x03, // MAKE_FUNCTION 3 + 0x10,0x0b, // LOAD_CONST_STRING 'Share' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x0b, // STORE_NAME 'Share' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x04, // MAKE_FUNCTION_DEFARGS 4 + 0x16,0x0f, // STORE_NAME 'decrypt' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x10, // STORE_NAME 'generate_random_identifier' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x14, // STORE_NAME 'split_ems' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x17, // STORE_NAME 'recover_ems' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x1a, // STORE_NAME 'decode_mnemonic' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x1c, // STORE_NAME '_int_from_indices' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x1d, // STORE_NAME '_int_to_indices' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x1e, // STORE_NAME '_mnemonic_from_indices' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x21, // STORE_NAME '_mnemonic_to_indices' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x23, // STORE_NAME '_rs1024_create_checksum' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x16,0x24, // STORE_NAME '_rs1024_polymod' + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x16,0x25, // STORE_NAME '_rs1024_verify_checksum' + 0x32,0x10, // MAKE_FUNCTION 16 + 0x16,0x26, // STORE_NAME '_round_function' + 0x32,0x11, // MAKE_FUNCTION 17 + 0x16,0x2a, // STORE_NAME '_get_salt' + 0x32,0x12, // MAKE_FUNCTION 18 + 0x16,0x2b, // STORE_NAME '_create_digest' + 0x32,0x13, // MAKE_FUNCTION 19 + 0x16,0x2f, // STORE_NAME '_split_secret' + 0x32,0x14, // MAKE_FUNCTION 20 + 0x16,0x31, // STORE_NAME '_recover_secret' + 0x32,0x15, // MAKE_FUNCTION 21 + 0x16,0x32, // STORE_NAME '_group_prefix' + 0x32,0x16, // MAKE_FUNCTION 22 + 0x16,0x33, // STORE_NAME '_encode_mnemonic' + 0x32,0x17, // MAKE_FUNCTION 23 + 0x16,0x34, // STORE_NAME '_decode_mnemonics' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__bits_to_bytes +static const byte fun_data_trezor_crypto_slip39__bits_to_bytes[12] = { + 0x11,0x08, // prelude + 0x0c,0x4d, // names: _bits_to_bytes, n + 0x80,0x35, // code info + 0xb0, // LOAD_FAST 0 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xf2, // BINARY_OP 27 __add__ + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39__bits_to_bytes = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_slip39__bits_to_bytes, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_trezor_crypto_slip39__bits_to_bytes + 4, + .line_info_top = fun_data_trezor_crypto_slip39__bits_to_bytes + 6, + .opcodes = fun_data_trezor_crypto_slip39__bits_to_bytes + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__bits_to_words +static const byte fun_data_trezor_crypto_slip39__bits_to_words[14] = { + 0x11,0x08, // prelude + 0x0d,0x4d, // names: _bits_to_words, n + 0x80,0x39, // code info + 0xb0, // LOAD_FAST 0 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xf2, // BINARY_OP 27 __add__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39__bits_to_words = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_slip39__bits_to_words, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_trezor_crypto_slip39__bits_to_words + 4, + .line_info_top = fun_data_trezor_crypto_slip39__bits_to_words + 6, + .opcodes = fun_data_trezor_crypto_slip39__bits_to_words + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__xor +static const byte fun_data_trezor_crypto_slip39__xor[23] = { + 0x32,0x0a, // prelude + 0x0e,0x4e,0x4f, // names: _xor, a, b + 0x80,0x3d, // code info + 0x12,0x12, // LOAD_GLOBAL 'bytes' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x12,0x50, // LOAD_GLOBAL 'zip' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_slip39__xor +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__xor__lt_genexpr_gt_ +static const byte fun_data_trezor_crypto_slip39__xor__lt_genexpr_gt_[26] = { + 0xc1,0x40,0x08, // prelude + 0x40,0x71, // names: , * + 0x80,0x3d, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0b, // FOR_ITER 11 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc1, // STORE_FAST 1 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xee, // BINARY_OP 23 __xor__ + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x33, // JUMP -13 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39__xor__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_slip39__xor__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_trezor_crypto_slip39__xor__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_trezor_crypto_slip39__xor__lt_genexpr_gt_ + 7, + .opcodes = fun_data_trezor_crypto_slip39__xor__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_slip39__xor[] = { + &raw_code_trezor_crypto_slip39__xor__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_slip39__xor = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_slip39__xor, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = (void *)&children_trezor_crypto_slip39__xor, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_trezor_crypto_slip39__xor + 5, + .line_info_top = fun_data_trezor_crypto_slip39__xor + 7, + .opcodes = fun_data_trezor_crypto_slip39__xor + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39_Share +static const byte fun_data_trezor_crypto_slip39_Share[21] = { + 0x00,0x0a, // prelude + 0x0b, // names: Share + 0x88,0x74,0x60,0x20, // code info + 0x11,0x51, // LOAD_NAME '__name__' + 0x16,0x52, // STORE_NAME '__module__' + 0x10,0x0b, // LOAD_CONST_STRING 'Share' + 0x16,0x53, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x41, // STORE_NAME '__init__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_slip39_Share +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39_Share___init__ +static const byte fun_data_trezor_crypto_slip39_Share___init__[57] = { + 0xd1,0x80,0x04,0x26, // prelude + 0x41,0x72,0x36,0x37,0x3b,0x38,0x39,0x3d,0x3c,0x3e, // names: __init__, self, identifier, iteration_exponent, group_index, group_threshold, group_count, index, threshold, share_value + 0x80,0x83,0x24,0x24,0x24,0x24,0x24,0x24,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x36, // STORE_ATTR 'identifier' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x37, // STORE_ATTR 'iteration_exponent' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x3b, // STORE_ATTR 'group_index' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x38, // STORE_ATTR 'group_threshold' + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x18,0x39, // STORE_ATTR 'group_count' + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x18,0x3d, // STORE_ATTR 'index' + 0xb7, // LOAD_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x18,0x3c, // STORE_ATTR 'threshold' + 0xb8, // LOAD_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x18,0x3e, // STORE_ATTR 'share_value' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39_Share___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 9, + .fun_data = fun_data_trezor_crypto_slip39_Share___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 9, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 65, + .line_info = fun_data_trezor_crypto_slip39_Share___init__ + 14, + .line_info_top = fun_data_trezor_crypto_slip39_Share___init__ + 23, + .opcodes = fun_data_trezor_crypto_slip39_Share___init__ + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_slip39_Share[] = { + &raw_code_trezor_crypto_slip39_Share___init__, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_slip39_Share = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_crypto_slip39_Share, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = (void *)&children_trezor_crypto_slip39_Share, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_trezor_crypto_slip39_Share + 3, + .line_info_top = fun_data_trezor_crypto_slip39_Share + 7, + .opcodes = fun_data_trezor_crypto_slip39_Share + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39_decrypt +static const byte fun_data_trezor_crypto_slip39_decrypt[104] = { + 0xa9,0x15,0x24, // prelude + 0x0f,0x54,0x55,0x37,0x36,0x56, // names: decrypt, encrypted_master_secret, passphrase, iteration_exponent, identifier, progress_callback + 0x80,0x94,0x60,0x60,0x2d,0x2d,0x26,0x2d,0x41,0x54,0x23,0x2a, // code info + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc6, // STORE_FAST 6 + 0x12,0x2a, // LOAD_GLOBAL '_get_salt' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0x12,0x58, // LOAD_GLOBAL 'reversed' + 0x12,0x59, // LOAD_GLOBAL 'range' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x23, // FOR_ITER 35 + 0xc8, // STORE_FAST 8 + 0xb6, // LOAD_FAST 6 + 0x12,0x0e, // LOAD_GLOBAL '_xor' + 0xb5, // LOAD_FAST 5 + 0x12,0x26, // LOAD_GLOBAL '_round_function' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0xb6, // LOAD_FAST 6 + 0x34,0x05, // CALL_FUNCTION 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc5, // STORE_FAST 5 + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb4, // LOAD_FAST 4 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xb8, // LOAD_FAST 8 + 0xf3, // BINARY_OP 28 __sub__ + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x1b, // JUMP -37 + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39_decrypt = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_trezor_crypto_slip39_decrypt, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 104, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 22, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 15, + .line_info = fun_data_trezor_crypto_slip39_decrypt + 9, + .line_info_top = fun_data_trezor_crypto_slip39_decrypt + 21, + .opcodes = fun_data_trezor_crypto_slip39_decrypt + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39_generate_random_identifier +static const byte fun_data_trezor_crypto_slip39_generate_random_identifier[34] = { + 0x30,0x0a, // prelude + 0x10, // names: generate_random_identifier + 0x80,0xa8,0x40,0x34, // code info + 0x12,0x5a, // LOAD_GLOBAL 'int' + 0x14,0x11, // LOAD_METHOD 'from_bytes' + 0x12,0x07, // LOAD_GLOBAL 'random' + 0x14,0x12, // LOAD_METHOD 'bytes' + 0x12,0x0c, // LOAD_GLOBAL '_bits_to_bytes' + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x13, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0xff,0x7f, // LOAD_CONST_SMALL_INT 32767 + 0xef, // BINARY_OP 24 __and__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39_generate_random_identifier = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_crypto_slip39_generate_random_identifier, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_trezor_crypto_slip39_generate_random_identifier + 3, + .line_info_top = fun_data_trezor_crypto_slip39_generate_random_identifier + 7, + .opcodes = fun_data_trezor_crypto_slip39_generate_random_identifier + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39_split_ems +static const byte fun_data_trezor_crypto_slip39_split_ems[167] = { + 0x89,0x24,0x3e, // prelude + 0x14,0x38,0x5b,0x36,0x37,0x54, // names: split_ems, group_threshold, groups, identifier, iteration_exponent, encrypted_master_secret + 0x80,0xb5,0x80,0x0a,0x29,0x22,0x25,0x4a,0x6c,0x20,0x22,0x65,0x20,0x4c,0x23,0x73,0x43,0x28,0x28,0x23,0x66,0x40,0x6f,0x60,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x12,0x5c, // LOAD_GLOBAL 'ValueError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x5d, // LOAD_GLOBAL 'any' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x5c, // LOAD_GLOBAL 'ValueError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x2f, // LOAD_GLOBAL '_split_secret' + 0xb0, // LOAD_FAST 0 + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc5, // STORE_FAST 5 + 0x2b,0x00, // BUILD_LIST 0 + 0xc6, // STORE_FAST 6 + 0x12,0x50, // LOAD_GLOBAL 'zip' + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5f, // GET_ITER_STACK + 0x4b,0x3e, // FOR_ITER 62 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc7, // STORE_FAST 7 + 0xc8, // STORE_FAST 8 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc9, // STORE_FAST 9 + 0xca, // STORE_FAST 10 + 0x2b,0x00, // BUILD_LIST 0 + 0xcb, // STORE_FAST 11 + 0x12,0x2f, // LOAD_GLOBAL '_split_secret' + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0xba, // LOAD_FAST 10 + 0x34,0x03, // CALL_FUNCTION 3 + 0xcc, // STORE_FAST 12 + 0xbc, // LOAD_FAST 12 + 0x5f, // GET_ITER_STACK + 0x4b,0x1c, // FOR_ITER 28 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xcd, // STORE_FAST 13 + 0xce, // STORE_FAST 14 + 0xbb, // LOAD_FAST 11 + 0x14,0x16, // LOAD_METHOD 'append' + 0x12,0x33, // LOAD_GLOBAL '_encode_mnemonic' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb9, // LOAD_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xbd, // LOAD_FAST 13 + 0xb7, // LOAD_FAST 7 + 0xbe, // LOAD_FAST 14 + 0x34,0x08, // CALL_FUNCTION 8 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x22, // JUMP -30 + 0xb6, // LOAD_FAST 6 + 0x14,0x16, // LOAD_METHOD 'append' + 0xbb, // LOAD_FAST 11 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x00, // JUMP -64 + 0xb6, // LOAD_FAST 6 + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_slip39_split_ems +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39_split_ems__lt_genexpr_gt_ +static const byte fun_data_trezor_crypto_slip39_split_ems__lt_genexpr_gt_[31] = { + 0xc1,0x40,0x08, // prelude + 0x40,0x71, // names: , * + 0x80,0xc5, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x10, // FOR_ITER 16 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc1, // STORE_FAST 1 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x03, // JUMP_IF_FALSE_OR_POP 3 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x2e, // JUMP -18 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39_split_ems__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_slip39_split_ems__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_trezor_crypto_slip39_split_ems__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_trezor_crypto_slip39_split_ems__lt_genexpr_gt_ + 7, + .opcodes = fun_data_trezor_crypto_slip39_split_ems__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_slip39_split_ems[] = { + &raw_code_trezor_crypto_slip39_split_ems__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_slip39_split_ems = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_trezor_crypto_slip39_split_ems, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 167, + #endif + .children = (void *)&children_trezor_crypto_slip39_split_ems, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 34, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_trezor_crypto_slip39_split_ems + 9, + .line_info_top = fun_data_trezor_crypto_slip39_split_ems + 34, + .opcodes = fun_data_trezor_crypto_slip39_split_ems + 34, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39_recover_ems +static const byte fun_data_trezor_crypto_slip39_recover_ems[142] = { + 0x99,0x10,0x2e, // prelude + 0x17,0x5e, // names: recover_ems, mnemonics + 0x80,0xe8,0x60,0x60,0x23,0x47,0x60,0x60,0x4c,0x29,0x22,0x25,0x4a,0x29,0x2d,0x22,0x24,0x51,0x42,0x68,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x09, // LOAD_GLOBAL 'MnemonicError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x34, // LOAD_GLOBAL '_decode_mnemonics' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x30,0x05, // UNPACK_SEQUENCE 5 + 0xc1, // STORE_FAST 1 + 0xc2, // STORE_FAST 2 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb3, // LOAD_FAST 3 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x12,0x09, // LOAD_GLOBAL 'MnemonicError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0x14,0x18, // LOAD_METHOD 'values' + 0x36,0x00, // CALL_METHOD 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x25, // FOR_ITER 37 + 0xc6, // STORE_FAST 6 + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xb6, // LOAD_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x12,0x09, // LOAD_GLOBAL 'MnemonicError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb6, // LOAD_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x19, // JUMP -39 + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb5, // LOAD_FAST 5 + 0x14,0x19, // LOAD_METHOD 'items' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0x12,0x31, // LOAD_GLOBAL '_recover_secret' + 0xb3, // LOAD_FAST 3 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc8, // STORE_FAST 8 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb8, // LOAD_FAST 8 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_slip39_recover_ems +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39_recover_ems__lt_listcomp_gt_ +static const byte fun_data_trezor_crypto_slip39_recover_ems__lt_listcomp_gt_[38] = { + 0x69,0x08, // prelude + 0x42,0x71, // names: , * + 0x90,0x05, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x19, // FOR_ITER 25 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc1, // STORE_FAST 1 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x12,0x31, // LOAD_GLOBAL '_recover_secret' + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x12,0x73, // LOAD_GLOBAL 'list' + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x25, // JUMP -27 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39_recover_ems__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_slip39_recover_ems__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 66, + .line_info = fun_data_trezor_crypto_slip39_recover_ems__lt_listcomp_gt_ + 4, + .line_info_top = fun_data_trezor_crypto_slip39_recover_ems__lt_listcomp_gt_ + 6, + .opcodes = fun_data_trezor_crypto_slip39_recover_ems__lt_listcomp_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_slip39_recover_ems[] = { + &raw_code_trezor_crypto_slip39_recover_ems__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_slip39_recover_ems = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_slip39_recover_ems, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 142, + #endif + .children = (void *)&children_trezor_crypto_slip39_recover_ems, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 20, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_trezor_crypto_slip39_recover_ems + 5, + .line_info_top = fun_data_trezor_crypto_slip39_recover_ems + 26, + .opcodes = fun_data_trezor_crypto_slip39_recover_ems + 26, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39_decode_mnemonic +static const byte fun_data_trezor_crypto_slip39_decode_mnemonic[247] = { + 0xc1,0x10,0x46, // prelude + 0x1a,0x5f, // names: decode_mnemonic, mnemonic + 0x90,0x0e,0x40,0x4a,0x2a,0x22,0x6b,0x2d,0x25,0x47,0x27,0x47,0x2c,0x24,0x24,0x22,0x4d,0x60,0x60,0x2e,0x4a,0x25,0x22,0x65,0x2e,0x26,0x2b,0x27,0x49,0x65,0x20,0x23,0x44, // code info + 0x12,0x60, // LOAD_GLOBAL 'tuple' + 0x12,0x21, // LOAD_GLOBAL '_mnemonic_to_indices' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x49, // LOAD_GLOBAL '_MIN_MNEMONIC_LENGTH_WORDS' + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x09, // LOAD_GLOBAL 'MnemonicError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x14,0x15, // LOAD_METHOD 'format' + 0x12,0x49, // LOAD_GLOBAL '_MIN_MNEMONIC_LENGTH_WORDS' + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x48, // LOAD_GLOBAL '_METADATA_LENGTH_WORDS' + 0xf3, // BINARY_OP 28 __sub__ + 0xf4, // BINARY_OP 29 __mul__ + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xf8, // BINARY_OP 33 __mod__ + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'MnemonicError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x25, // LOAD_GLOBAL '_rs1024_verify_checksum' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x09, // LOAD_GLOBAL 'MnemonicError' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x1c, // LOAD_GLOBAL '_int_from_indices' + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0x12,0x46, // LOAD_GLOBAL '_ID_EXP_LENGTH_WORDS' + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf1, // BINARY_OP 26 __rshift__ + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xef, // BINARY_OP 24 __and__ + 0xc5, // STORE_FAST 5 + 0x12,0x1c, // LOAD_GLOBAL '_int_from_indices' + 0xb1, // LOAD_FAST 1 + 0x12,0x46, // LOAD_GLOBAL '_ID_EXP_LENGTH_WORDS' + 0x12,0x46, // LOAD_GLOBAL '_ID_EXP_LENGTH_WORDS' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf2, // BINARY_OP 27 __add__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xc6, // STORE_FAST 6 + 0x12,0x1d, // LOAD_GLOBAL '_int_to_indices' + 0xb6, // LOAD_FAST 6 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x30,0x05, // UNPACK_SEQUENCE 5 + 0xc7, // STORE_FAST 7 + 0xc8, // STORE_FAST 8 + 0xc9, // STORE_FAST 9 + 0xca, // STORE_FAST 10 + 0xcb, // STORE_FAST 11 + 0xb1, // LOAD_FAST 1 + 0x12,0x46, // LOAD_GLOBAL '_ID_EXP_LENGTH_WORDS' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf2, // BINARY_OP 27 __add__ + 0x7d, // LOAD_CONST_SMALL_INT -3 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xcc, // STORE_FAST 12 + 0xb9, // LOAD_FAST 9 + 0xb8, // LOAD_FAST 8 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'MnemonicError' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x0c, // LOAD_GLOBAL '_bits_to_bytes' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xbc, // LOAD_FAST 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf4, // BINARY_OP 29 __mul__ + 0xb2, // LOAD_FAST 2 + 0xf3, // BINARY_OP 28 __sub__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xcd, // STORE_FAST 13 + 0x12,0x1c, // LOAD_GLOBAL '_int_from_indices' + 0xbc, // LOAD_FAST 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0xce, // STORE_FAST 14 + 0xbc, // LOAD_FAST 12 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xb2, // LOAD_FAST 2 + 0xf3, // BINARY_OP 28 __sub__ + 0xf0, // BINARY_OP 25 __lshift__ + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'MnemonicError' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbe, // LOAD_FAST 14 + 0x14,0x1b, // LOAD_METHOD 'to_bytes' + 0xbd, // LOAD_FAST 13 + 0x10,0x13, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0xcf, // STORE_FAST 15 + 0x12,0x0b, // LOAD_GLOBAL 'Share' + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb9, // LOAD_FAST 9 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xba, // LOAD_FAST 10 + 0xbb, // LOAD_FAST 11 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xbf, // LOAD_FAST 15 + 0x34,0x08, // CALL_FUNCTION 8 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39_decode_mnemonic = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_slip39_decode_mnemonic, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 247, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 25, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 26, + .line_info = fun_data_trezor_crypto_slip39_decode_mnemonic + 5, + .line_info_top = fun_data_trezor_crypto_slip39_decode_mnemonic + 38, + .opcodes = fun_data_trezor_crypto_slip39_decode_mnemonic + 38, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__int_from_indices +static const byte fun_data_trezor_crypto_slip39__int_from_indices[27] = { + 0x41,0x10, // prelude + 0x1c,0x61, // names: _int_from_indices, indices + 0x90,0x48,0x20,0x22,0x25,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x09, // FOR_ITER 9 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xf0, // BINARY_OP 25 __lshift__ + 0xb2, // LOAD_FAST 2 + 0xf2, // BINARY_OP 27 __add__ + 0xc1, // STORE_FAST 1 + 0x42,0x35, // JUMP -11 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39__int_from_indices = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_slip39__int_from_indices, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_trezor_crypto_slip39__int_from_indices + 4, + .line_info_top = fun_data_trezor_crypto_slip39__int_from_indices + 10, + .opcodes = fun_data_trezor_crypto_slip39__int_from_indices + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__int_to_indices +static const byte fun_data_trezor_crypto_slip39__int_to_indices[41] = { + 0x3b,0x91,0x01, // prelude + 0x1d,0x62,0x63,0x64, // names: _int_to_indices, value, length, bits + 0x90,0x50,0x20,0x28,0x00,0x02,0x03, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x25,0x02, // LOAD_DEREF 2 + 0xf0, // BINARY_OP 25 __lshift__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x27,0x03, // STORE_DEREF 3 + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x20,0x00,0x03, // MAKE_CLOSURE 0 + 0x12,0x58, // LOAD_GLOBAL 'reversed' + 0x12,0x59, // LOAD_GLOBAL 'range' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_slip39__int_to_indices +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__int_to_indices__lt_genexpr_gt_ +static const byte fun_data_trezor_crypto_slip39__int_to_indices__lt_genexpr_gt_[33] = { + 0xd8,0x44,0x0e, // prelude + 0x40,0x71,0x71,0x71,0x71, // names: , *, *, *, * + 0x90,0x52, // code info + 0x53, // LOAD_NULL + 0xb3, // LOAD_FAST 3 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0f, // FOR_ITER 15 + 0xc4, // STORE_FAST 4 + 0x25,0x00, // LOAD_DEREF 0 + 0xb4, // LOAD_FAST 4 + 0x25,0x01, // LOAD_DEREF 1 + 0xf4, // BINARY_OP 29 __mul__ + 0xf1, // BINARY_OP 26 __rshift__ + 0x25,0x02, // LOAD_DEREF 2 + 0xef, // BINARY_OP 24 __and__ + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x2f, // JUMP -17 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39__int_to_indices__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_trezor_crypto_slip39__int_to_indices__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_trezor_crypto_slip39__int_to_indices__lt_genexpr_gt_ + 8, + .line_info_top = fun_data_trezor_crypto_slip39__int_to_indices__lt_genexpr_gt_ + 10, + .opcodes = fun_data_trezor_crypto_slip39__int_to_indices__lt_genexpr_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_slip39__int_to_indices[] = { + &raw_code_trezor_crypto_slip39__int_to_indices__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_slip39__int_to_indices = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_crypto_slip39__int_to_indices, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = (void *)&children_trezor_crypto_slip39__int_to_indices, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_trezor_crypto_slip39__int_to_indices + 7, + .line_info_top = fun_data_trezor_crypto_slip39__int_to_indices + 11, + .opcodes = fun_data_trezor_crypto_slip39__int_to_indices + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__mnemonic_from_indices +static const byte fun_data_trezor_crypto_slip39__mnemonic_from_indices[19] = { + 0x21,0x08, // prelude + 0x1e,0x61, // names: _mnemonic_from_indices, indices + 0x90,0x56, // code info + 0x10,0x1f, // LOAD_CONST_STRING ' ' + 0x14,0x20, // LOAD_METHOD 'join' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_slip39__mnemonic_from_indices +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__mnemonic_from_indices__lt_genexpr_gt_ +static const byte fun_data_trezor_crypto_slip39__mnemonic_from_indices__lt_genexpr_gt_[27] = { + 0xc1,0x40,0x08, // prelude + 0x40,0x71, // names: , * + 0x90,0x56, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0c, // FOR_ITER 12 + 0xc1, // STORE_FAST 1 + 0x12,0x05, // LOAD_GLOBAL 'slip39' + 0x14,0x43, // LOAD_METHOD 'get_word' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x32, // JUMP -14 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39__mnemonic_from_indices__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_slip39__mnemonic_from_indices__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_trezor_crypto_slip39__mnemonic_from_indices__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_trezor_crypto_slip39__mnemonic_from_indices__lt_genexpr_gt_ + 7, + .opcodes = fun_data_trezor_crypto_slip39__mnemonic_from_indices__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_slip39__mnemonic_from_indices[] = { + &raw_code_trezor_crypto_slip39__mnemonic_from_indices__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_slip39__mnemonic_from_indices = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_slip39__mnemonic_from_indices, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = (void *)&children_trezor_crypto_slip39__mnemonic_from_indices, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_trezor_crypto_slip39__mnemonic_from_indices + 4, + .line_info_top = fun_data_trezor_crypto_slip39__mnemonic_from_indices + 6, + .opcodes = fun_data_trezor_crypto_slip39__mnemonic_from_indices + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__mnemonic_to_indices +static const byte fun_data_trezor_crypto_slip39__mnemonic_to_indices[17] = { + 0x19,0x08, // prelude + 0x21,0x5f, // names: _mnemonic_to_indices, mnemonic + 0x90,0x5a, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x14,0x22, // LOAD_METHOD 'split' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_slip39__mnemonic_to_indices +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__mnemonic_to_indices__lt_genexpr_gt_ +static const byte fun_data_trezor_crypto_slip39__mnemonic_to_indices__lt_genexpr_gt_[31] = { + 0xc9,0x40,0x08, // prelude + 0x40,0x71, // names: , * + 0x90,0x5a, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x10, // FOR_ITER 16 + 0xc1, // STORE_FAST 1 + 0x12,0x05, // LOAD_GLOBAL 'slip39' + 0x14,0x44, // LOAD_METHOD 'word_index' + 0xb1, // LOAD_FAST 1 + 0x14,0x45, // LOAD_METHOD 'lower' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x2e, // JUMP -18 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39__mnemonic_to_indices__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_slip39__mnemonic_to_indices__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_trezor_crypto_slip39__mnemonic_to_indices__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_trezor_crypto_slip39__mnemonic_to_indices__lt_genexpr_gt_ + 7, + .opcodes = fun_data_trezor_crypto_slip39__mnemonic_to_indices__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_slip39__mnemonic_to_indices[] = { + &raw_code_trezor_crypto_slip39__mnemonic_to_indices__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_slip39__mnemonic_to_indices = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_slip39__mnemonic_to_indices, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = (void *)&children_trezor_crypto_slip39__mnemonic_to_indices, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_trezor_crypto_slip39__mnemonic_to_indices + 4, + .line_info_top = fun_data_trezor_crypto_slip39__mnemonic_to_indices + 6, + .opcodes = fun_data_trezor_crypto_slip39__mnemonic_to_indices + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__rs1024_create_checksum +static const byte fun_data_trezor_crypto_slip39__rs1024_create_checksum[56] = { + 0x39,0x13, // prelude + 0x23,0x65, // names: _rs1024_create_checksum, data + 0x90,0x61,0x60,0x40,0x2e,0x29,0x26,0x02, // code info + 0x12,0x60, // LOAD_GLOBAL 'tuple' + 0x12,0x47, // LOAD_GLOBAL '_CUSTOMIZATION_STRING' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0xf2, // BINARY_OP 27 __add__ + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0xc1, // STORE_FAST 1 + 0x12,0x24, // LOAD_GLOBAL '_rs1024_polymod' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xee, // BINARY_OP 23 __xor__ + 0x27,0x02, // STORE_DEREF 2 + 0x12,0x60, // LOAD_GLOBAL 'tuple' + 0xb2, // LOAD_FAST 2 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x12,0x58, // LOAD_GLOBAL 'reversed' + 0x12,0x59, // LOAD_GLOBAL 'range' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_slip39__rs1024_create_checksum +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__rs1024_create_checksum__lt_genexpr_gt_ +static const byte fun_data_trezor_crypto_slip39__rs1024_create_checksum__lt_genexpr_gt_[31] = { + 0xca,0x40,0x0a, // prelude + 0x40,0x71,0x71, // names: , *, * + 0x90,0x69, // code info + 0x53, // LOAD_NULL + 0xb1, // LOAD_FAST 1 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0f, // FOR_ITER 15 + 0xc2, // STORE_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xb2, // LOAD_FAST 2 + 0xf4, // BINARY_OP 29 __mul__ + 0xf1, // BINARY_OP 26 __rshift__ + 0x22,0x87,0x7f, // LOAD_CONST_SMALL_INT 1023 + 0xef, // BINARY_OP 24 __and__ + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x2f, // JUMP -17 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39__rs1024_create_checksum__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_slip39__rs1024_create_checksum__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_trezor_crypto_slip39__rs1024_create_checksum__lt_genexpr_gt_ + 6, + .line_info_top = fun_data_trezor_crypto_slip39__rs1024_create_checksum__lt_genexpr_gt_ + 8, + .opcodes = fun_data_trezor_crypto_slip39__rs1024_create_checksum__lt_genexpr_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_slip39__rs1024_create_checksum[] = { + &raw_code_trezor_crypto_slip39__rs1024_create_checksum__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_slip39__rs1024_create_checksum = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_slip39__rs1024_create_checksum, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = (void *)&children_trezor_crypto_slip39__rs1024_create_checksum, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_trezor_crypto_slip39__rs1024_create_checksum + 4, + .line_info_top = fun_data_trezor_crypto_slip39__rs1024_create_checksum + 11, + .opcodes = fun_data_trezor_crypto_slip39__rs1024_create_checksum + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__rs1024_polymod +static const byte fun_data_trezor_crypto_slip39__rs1024_polymod[73] = { + 0x69,0x1a, // prelude + 0x24,0x18, // names: _rs1024_polymod, values + 0x90,0x6e,0x40,0x83,0x0a,0x22,0x25,0x24,0x2b,0x25,0x3a, // code info + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0xc1, // STORE_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x2f, // FOR_ITER 47 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0xf1, // BINARY_OP 26 __rshift__ + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x22,0xbf,0xff,0x7f, // LOAD_CONST_SMALL_INT 1048575 + 0xef, // BINARY_OP 24 __and__ + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xf0, // BINARY_OP 25 __lshift__ + 0xb3, // LOAD_FAST 3 + 0xee, // BINARY_OP 23 __xor__ + 0xc2, // STORE_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x54, // JUMP 20 + 0x57, // DUP_TOP + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xf1, // BINARY_OP 26 __rshift__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xef, // BINARY_OP 24 __and__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0x55, // LOAD_SUBSCR + 0x42,0x41, // JUMP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xe1, // BINARY_OP 10 __ixor__ + 0xc2, // STORE_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x57, // DUP_TOP + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x27, // POP_JUMP_IF_TRUE -25 + 0x59, // POP_TOP + 0x42,0x0f, // JUMP -49 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39__rs1024_polymod = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_slip39__rs1024_polymod, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 73, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_trezor_crypto_slip39__rs1024_polymod + 4, + .line_info_top = fun_data_trezor_crypto_slip39__rs1024_polymod + 15, + .opcodes = fun_data_trezor_crypto_slip39__rs1024_polymod + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__rs1024_verify_checksum +static const byte fun_data_trezor_crypto_slip39__rs1024_verify_checksum[22] = { + 0x19,0x0a, // prelude + 0x25,0x65, // names: _rs1024_verify_checksum, data + 0x90,0x84,0x60, // code info + 0x12,0x24, // LOAD_GLOBAL '_rs1024_polymod' + 0x12,0x60, // LOAD_GLOBAL 'tuple' + 0x12,0x47, // LOAD_GLOBAL '_CUSTOMIZATION_STRING' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39__rs1024_verify_checksum = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_slip39__rs1024_verify_checksum, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_trezor_crypto_slip39__rs1024_verify_checksum + 4, + .line_info_top = fun_data_trezor_crypto_slip39__rs1024_verify_checksum + 7, + .opcodes = fun_data_trezor_crypto_slip39__rs1024_verify_checksum + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__round_function +static const byte fun_data_trezor_crypto_slip39__round_function[69] = { + 0xd9,0x04,0x1e, // prelude + 0x26,0x66,0x55,0x67,0x68,0x69, // names: _round_function, i, passphrase, e, salt, r + 0x90,0x8e,0x20,0x4b,0x21,0x23,0x29,0x23,0x2e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x27, // LOAD_CONST_STRING 'pbkdf2' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x27, // IMPORT_FROM 'pbkdf2' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x13,0x28, // LOAD_ATTR 'HMAC_SHA256' + 0x12,0x12, // LOAD_GLOBAL 'bytes' + 0xb0, // LOAD_FAST 0 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xf2, // BINARY_OP 27 __add__ + 0x22,0x80,0xce,0x10, // LOAD_CONST_SMALL_INT 10000 + 0xb2, // LOAD_FAST 2 + 0xf0, // BINARY_OP 25 __lshift__ + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x34,0x04, // CALL_FUNCTION 4 + 0x14,0x29, // LOAD_METHOD 'key' + 0x36,0x00, // CALL_METHOD 0 + 0x51, // LOAD_CONST_NONE + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39__round_function = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_trezor_crypto_slip39__round_function, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 69, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 38, + .line_info = fun_data_trezor_crypto_slip39__round_function + 9, + .line_info_top = fun_data_trezor_crypto_slip39__round_function + 18, + .opcodes = fun_data_trezor_crypto_slip39__round_function + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__get_salt +static const byte fun_data_trezor_crypto_slip39__get_salt[23] = { + 0x29,0x0a, // prelude + 0x2a,0x36, // names: _get_salt, identifier + 0x90,0x9a,0x25, // code info + 0x12,0x47, // LOAD_GLOBAL '_CUSTOMIZATION_STRING' + 0xb0, // LOAD_FAST 0 + 0x14,0x1b, // LOAD_METHOD 'to_bytes' + 0x12,0x0c, // LOAD_GLOBAL '_bits_to_bytes' + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x13, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39__get_salt = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_slip39__get_salt, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_trezor_crypto_slip39__get_salt + 4, + .line_info_top = fun_data_trezor_crypto_slip39__get_salt + 7, + .opcodes = fun_data_trezor_crypto_slip39__get_salt + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__create_digest +static const byte fun_data_trezor_crypto_slip39__create_digest[37] = { + 0x32,0x0c, // prelude + 0x2b,0x6a,0x6b, // names: _create_digest, random_data, shared_secret + 0x90,0xa0,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2c, // LOAD_CONST_STRING 'hmac' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x2c, // IMPORT_FROM 'hmac' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x13,0x2d, // LOAD_ATTR 'SHA256' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x14,0x2e, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x51, // LOAD_CONST_NONE + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39__create_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_slip39__create_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_trezor_crypto_slip39__create_digest + 5, + .line_info_top = fun_data_trezor_crypto_slip39__create_digest + 8, + .opcodes = fun_data_trezor_crypto_slip39__create_digest + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__split_secret +static const byte fun_data_trezor_crypto_slip39__split_secret[196] = { + 0x8b,0x10,0x39, // prelude + 0x2f,0x3c,0x6c,0x6b, // names: _split_secret, threshold, share_count, shared_secret + 0x90,0xa8,0x25,0x22,0x6a,0x25,0x22,0x6b,0x25,0x22,0x6b,0x20,0x25,0x4c,0x44,0x24,0x68,0x30,0x48,0x21,0x28,0x6b,0x26,0x5a,0x02, // code info + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x5c, // LOAD_GLOBAL 'ValueError' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x5c, // LOAD_GLOBAL 'ValueError' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x5c, // LOAD_GLOBAL 'ValueError' + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb2, // LOAD_FAST 2 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x12,0x59, // LOAD_GLOBAL 'range' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf3, // BINARY_OP 28 __sub__ + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x20,0x01,0x01, // MAKE_CLOSURE 1 + 0x12,0x59, // LOAD_GLOBAL 'range' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0x12,0x07, // LOAD_GLOBAL 'random' + 0x14,0x12, // LOAD_METHOD 'bytes' + 0x12,0x57, // LOAD_GLOBAL 'len' + 0x25,0x02, // LOAD_DEREF 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xf3, // BINARY_OP 28 __sub__ + 0x52, // LOAD_CONST_TRUE + 0x36,0x02, // CALL_METHOD 2 + 0xc5, // STORE_FAST 5 + 0x12,0x2b, // LOAD_GLOBAL '_create_digest' + 0xb5, // LOAD_FAST 5 + 0x25,0x02, // LOAD_DEREF 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x22,0x81,0x7e, // LOAD_CONST_SMALL_INT 254 + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0xf2, // BINARY_OP 27 __add__ + 0x2a,0x02, // BUILD_TUPLE 2 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0x25,0x02, // LOAD_DEREF 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x02, // BUILD_LIST 2 + 0xf2, // BINARY_OP 27 __add__ + 0xc7, // STORE_FAST 7 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x42,0x55, // JUMP 21 + 0x57, // DUP_TOP + 0xc8, // STORE_FAST 8 + 0xb4, // LOAD_FAST 4 + 0x14,0x16, // LOAD_METHOD 'append' + 0xb8, // LOAD_FAST 8 + 0x12,0x04, // LOAD_GLOBAL 'shamir' + 0x14,0x30, // LOAD_METHOD 'interpolate' + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0x36,0x02, // CALL_METHOD 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x26, // POP_JUMP_IF_TRUE -26 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_slip39__split_secret +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__split_secret__lt_listcomp_gt_ +static const byte fun_data_trezor_crypto_slip39__split_secret__lt_listcomp_gt_[24] = { + 0x4a,0x0a, // prelude + 0x42,0x71,0x71, // names: , *, * + 0x90,0xb9, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x34, // JUMP -12 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39__split_secret__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_slip39__split_secret__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 66, + .line_info = fun_data_trezor_crypto_slip39__split_secret__lt_listcomp_gt_ + 5, + .line_info_top = fun_data_trezor_crypto_slip39__split_secret__lt_listcomp_gt_ + 7, + .opcodes = fun_data_trezor_crypto_slip39__split_secret__lt_listcomp_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__split_secret +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__split_secret__lt_listcomp_gt_2 +static const byte fun_data_trezor_crypto_slip39__split_secret__lt_listcomp_gt_2[35] = { + 0x62,0x0a, // prelude + 0x42,0x71,0x71, // names: , *, * + 0x90,0xbe, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x15, // FOR_ITER 21 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x12,0x07, // LOAD_GLOBAL 'random' + 0x14,0x12, // LOAD_METHOD 'bytes' + 0x12,0x57, // LOAD_GLOBAL 'len' + 0x25,0x00, // LOAD_DEREF 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x52, // LOAD_CONST_TRUE + 0x36,0x02, // CALL_METHOD 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x29, // JUMP -23 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39__split_secret__lt_listcomp_gt_2 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_slip39__split_secret__lt_listcomp_gt_2, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 66, + .line_info = fun_data_trezor_crypto_slip39__split_secret__lt_listcomp_gt_2 + 5, + .line_info_top = fun_data_trezor_crypto_slip39__split_secret__lt_listcomp_gt_2 + 7, + .opcodes = fun_data_trezor_crypto_slip39__split_secret__lt_listcomp_gt_2 + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_slip39__split_secret[] = { + &raw_code_trezor_crypto_slip39__split_secret__lt_listcomp_gt_, + &raw_code_trezor_crypto_slip39__split_secret__lt_listcomp_gt_2, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_slip39__split_secret = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_crypto_slip39__split_secret, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 196, + #endif + .children = (void *)&children_trezor_crypto_slip39__split_secret, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_trezor_crypto_slip39__split_secret + 7, + .line_info_top = fun_data_trezor_crypto_slip39__split_secret + 31, + .opcodes = fun_data_trezor_crypto_slip39__split_secret + 32, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__recover_secret +static const byte fun_data_trezor_crypto_slip39__recover_secret[81] = { + 0x4a,0x1a, // prelude + 0x31,0x3c,0x6d, // names: _recover_secret, threshold, shares + 0x90,0xd1,0x25,0x46,0x2b,0x2b,0x27,0x47,0x2a,0x47, // code info + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE + 0x12,0x04, // LOAD_GLOBAL 'shamir' + 0x14,0x30, // LOAD_METHOD 'interpolate' + 0xb1, // LOAD_FAST 1 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0x12,0x04, // LOAD_GLOBAL 'shamir' + 0x14,0x30, // LOAD_METHOD 'interpolate' + 0xb1, // LOAD_FAST 1 + 0x22,0x81,0x7e, // LOAD_CONST_SMALL_INT 254 + 0x36,0x02, // CALL_METHOD 2 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x12,0x2b, // LOAD_GLOBAL '_create_digest' + 0xb5, // LOAD_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'MnemonicError' + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39__recover_secret = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_crypto_slip39__recover_secret, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 81, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 49, + .line_info = fun_data_trezor_crypto_slip39__recover_secret + 5, + .line_info_top = fun_data_trezor_crypto_slip39__recover_secret + 15, + .opcodes = fun_data_trezor_crypto_slip39__recover_secret + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__group_prefix +static const byte fun_data_trezor_crypto_slip39__group_prefix[50] = { + 0xd1,0x04,0x14, // prelude + 0x32,0x36,0x37,0x3b,0x38,0x39, // names: _group_prefix, identifier, iteration_exponent, group_index, group_threshold, group_count + 0x90,0xe6,0x26,0x2c, // code info + 0xb0, // LOAD_FAST 0 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf0, // BINARY_OP 25 __lshift__ + 0xb1, // LOAD_FAST 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc5, // STORE_FAST 5 + 0x12,0x60, // LOAD_GLOBAL 'tuple' + 0x12,0x1d, // LOAD_GLOBAL '_int_to_indices' + 0xb5, // LOAD_FAST 5 + 0x12,0x46, // LOAD_GLOBAL '_ID_EXP_LENGTH_WORDS' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0xf0, // BINARY_OP 25 __lshift__ + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf0, // BINARY_OP 25 __lshift__ + 0xf2, // BINARY_OP 27 __add__ + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf1, // BINARY_OP 26 __rshift__ + 0xf2, // BINARY_OP 27 __add__ + 0x2a,0x01, // BUILD_TUPLE 1 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39__group_prefix = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_trezor_crypto_slip39__group_prefix, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 50, + .line_info = fun_data_trezor_crypto_slip39__group_prefix + 9, + .line_info_top = fun_data_trezor_crypto_slip39__group_prefix + 13, + .opcodes = fun_data_trezor_crypto_slip39__group_prefix + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__encode_mnemonic +static const byte fun_data_trezor_crypto_slip39__encode_mnemonic[103] = { + 0x88,0x90,0x04,0x2e, // prelude + 0x33,0x36,0x37,0x3b,0x38,0x39,0x6e,0x6f,0x62, // names: _encode_mnemonic, identifier, iteration_exponent, group_index, group_threshold, group_count, member_index, member_threshold, value + 0x90,0xf6,0x60,0x60,0x2c,0x4a,0x20,0x69,0x20,0x27,0x24,0x47,0x4d,0x46, // code info + 0x12,0x0d, // LOAD_GLOBAL '_bits_to_words' + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf4, // BINARY_OP 29 __mul__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0x12,0x5a, // LOAD_GLOBAL 'int' + 0x14,0x11, // LOAD_METHOD 'from_bytes' + 0xb7, // LOAD_FAST 7 + 0x10,0x13, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0xc9, // STORE_FAST 9 + 0x12,0x32, // LOAD_GLOBAL '_group_prefix' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x05, // CALL_FUNCTION 5 + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xef, // BINARY_OP 24 __and__ + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf0, // BINARY_OP 25 __lshift__ + 0xb5, // LOAD_FAST 5 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xf0, // BINARY_OP 25 __lshift__ + 0xf2, // BINARY_OP 27 __add__ + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xf2, // BINARY_OP 27 __add__ + 0x2a,0x01, // BUILD_TUPLE 1 + 0xf2, // BINARY_OP 27 __add__ + 0x12,0x60, // LOAD_GLOBAL 'tuple' + 0x12,0x1d, // LOAD_GLOBAL '_int_to_indices' + 0xb9, // LOAD_FAST 9 + 0xb8, // LOAD_FAST 8 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0xca, // STORE_FAST 10 + 0x12,0x23, // LOAD_GLOBAL '_rs1024_create_checksum' + 0xba, // LOAD_FAST 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcb, // STORE_FAST 11 + 0x12,0x1e, // LOAD_GLOBAL '_mnemonic_from_indices' + 0xba, // LOAD_FAST 10 + 0xbb, // LOAD_FAST 11 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39__encode_mnemonic = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 8, + .fun_data = fun_data_trezor_crypto_slip39__encode_mnemonic, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 103, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 8, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 51, + .line_info = fun_data_trezor_crypto_slip39__encode_mnemonic + 13, + .line_info_top = fun_data_trezor_crypto_slip39__encode_mnemonic + 27, + .opcodes = fun_data_trezor_crypto_slip39__encode_mnemonic + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_crypto_slip39__lt_module_gt_ +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__decode_mnemonics +static const byte fun_data_trezor_crypto_slip39__decode_mnemonics[294] = { + 0x89,0x10,0x4a, // prelude + 0x34,0x5e, // names: _decode_mnemonics, mnemonics + 0xa0,0x12,0x25,0x25,0x25,0x65,0x23,0x25,0x26,0x29,0x29,0x29,0x29,0x32,0x29,0x22,0x45,0x53,0x32,0x22,0x6b,0x29,0x22,0x65,0x29,0x22,0x65,0x29,0x3a,0x22,0x67,0x20,0x25,0x25,0x25, // code info + 0x12,0x70, // LOAD_GLOBAL 'set' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc1, // STORE_FAST 1 + 0x12,0x70, // LOAD_GLOBAL 'set' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc2, // STORE_FAST 2 + 0x12,0x70, // LOAD_GLOBAL 'set' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc3, // STORE_FAST 3 + 0x12,0x70, // LOAD_GLOBAL 'set' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc4, // STORE_FAST 4 + 0x2c,0x00, // BUILD_MAP 0 + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x60, // FOR_ITER 96 + 0xc6, // STORE_FAST 6 + 0x12,0x1a, // LOAD_GLOBAL 'decode_mnemonic' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0xb1, // LOAD_FAST 1 + 0x14,0x35, // LOAD_METHOD 'add' + 0xb7, // LOAD_FAST 7 + 0x13,0x36, // LOAD_ATTR 'identifier' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x35, // LOAD_METHOD 'add' + 0xb7, // LOAD_FAST 7 + 0x13,0x37, // LOAD_ATTR 'iteration_exponent' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x35, // LOAD_METHOD 'add' + 0xb7, // LOAD_FAST 7 + 0x13,0x38, // LOAD_ATTR 'group_threshold' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x35, // LOAD_METHOD 'add' + 0xb7, // LOAD_FAST 7 + 0x13,0x39, // LOAD_ATTR 'group_count' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x3a, // LOAD_METHOD 'setdefault' + 0xb7, // LOAD_FAST 7 + 0x13,0x3b, // LOAD_ATTR 'group_index' + 0xb7, // LOAD_FAST 7 + 0x13,0x3c, // LOAD_ATTR 'threshold' + 0x12,0x70, // LOAD_GLOBAL 'set' + 0x34,0x00, // CALL_FUNCTION 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x02, // CALL_METHOD 2 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb7, // LOAD_FAST 7 + 0x13,0x3c, // LOAD_ATTR 'threshold' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'MnemonicError' + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb8, // LOAD_FAST 8 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x14,0x35, // LOAD_METHOD 'add' + 0xb7, // LOAD_FAST 7 + 0x13,0x3d, // LOAD_ATTR 'index' + 0xb7, // LOAD_FAST 7 + 0x13,0x3e, // LOAD_ATTR 'share_value' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x9e,0x7f, // JUMP -98 + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x09, // LOAD_GLOBAL 'MnemonicError' + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x14,0x15, // LOAD_METHOD 'format' + 0x12,0x46, // LOAD_GLOBAL '_ID_EXP_LENGTH_WORDS' + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'MnemonicError' + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'MnemonicError' + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0x14,0x18, // LOAD_METHOD 'values' + 0x36,0x00, // CALL_METHOD 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x24, // FOR_ITER 36 + 0xc8, // STORE_FAST 8 + 0x12,0x57, // LOAD_GLOBAL 'len' + 0x12,0x70, // LOAD_GLOBAL 'set' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb8, // LOAD_FAST 8 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x57, // LOAD_GLOBAL 'len' + 0xb8, // LOAD_FAST 8 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'MnemonicError' + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x1a, // JUMP -38 + 0xb1, // LOAD_FAST 1 + 0x14,0x3f, // LOAD_METHOD 'pop' + 0x36,0x00, // CALL_METHOD 0 + 0xb2, // LOAD_FAST 2 + 0x14,0x3f, // LOAD_METHOD 'pop' + 0x36,0x00, // CALL_METHOD 0 + 0xb3, // LOAD_FAST 3 + 0x14,0x3f, // LOAD_METHOD 'pop' + 0x36,0x00, // CALL_METHOD 0 + 0xb4, // LOAD_FAST 4 + 0x14,0x3f, // LOAD_METHOD 'pop' + 0x36,0x00, // CALL_METHOD 0 + 0xb5, // LOAD_FAST 5 + 0x2a,0x05, // BUILD_TUPLE 5 + 0x63, // RETURN_VALUE +}; +// child of trezor_crypto_slip39__decode_mnemonics +// frozen bytecode for file trezor/crypto/slip39.py, scope trezor_crypto_slip39__decode_mnemonics__lt_genexpr_gt_ +static const byte fun_data_trezor_crypto_slip39__decode_mnemonics__lt_genexpr_gt_[23] = { + 0xb9,0x40,0x08, // prelude + 0x40,0x71, // names: , * + 0xa0,0x36, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x08, // FOR_ITER 8 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x36, // JUMP -10 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_crypto_slip39__decode_mnemonics__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_slip39__decode_mnemonics__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_trezor_crypto_slip39__decode_mnemonics__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_trezor_crypto_slip39__decode_mnemonics__lt_genexpr_gt_ + 7, + .opcodes = fun_data_trezor_crypto_slip39__decode_mnemonics__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_slip39__decode_mnemonics[] = { + &raw_code_trezor_crypto_slip39__decode_mnemonics__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_slip39__decode_mnemonics = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_crypto_slip39__decode_mnemonics, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 294, + #endif + .children = (void *)&children_trezor_crypto_slip39__decode_mnemonics, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 52, + .line_info = fun_data_trezor_crypto_slip39__decode_mnemonics + 5, + .line_info_top = fun_data_trezor_crypto_slip39__decode_mnemonics + 40, + .opcodes = fun_data_trezor_crypto_slip39__decode_mnemonics + 40, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_crypto_slip39__lt_module_gt_[] = { + &raw_code_trezor_crypto_slip39__bits_to_bytes, + &raw_code_trezor_crypto_slip39__bits_to_words, + &raw_code_trezor_crypto_slip39__xor, + &raw_code_trezor_crypto_slip39_Share, + &raw_code_trezor_crypto_slip39_decrypt, + &raw_code_trezor_crypto_slip39_generate_random_identifier, + &raw_code_trezor_crypto_slip39_split_ems, + &raw_code_trezor_crypto_slip39_recover_ems, + &raw_code_trezor_crypto_slip39_decode_mnemonic, + &raw_code_trezor_crypto_slip39__int_from_indices, + &raw_code_trezor_crypto_slip39__int_to_indices, + &raw_code_trezor_crypto_slip39__mnemonic_from_indices, + &raw_code_trezor_crypto_slip39__mnemonic_to_indices, + &raw_code_trezor_crypto_slip39__rs1024_create_checksum, + &raw_code_trezor_crypto_slip39__rs1024_polymod, + &raw_code_trezor_crypto_slip39__rs1024_verify_checksum, + &raw_code_trezor_crypto_slip39__round_function, + &raw_code_trezor_crypto_slip39__get_salt, + &raw_code_trezor_crypto_slip39__create_digest, + &raw_code_trezor_crypto_slip39__split_secret, + &raw_code_trezor_crypto_slip39__recover_secret, + &raw_code_trezor_crypto_slip39__group_prefix, + &raw_code_trezor_crypto_slip39__encode_mnemonic, + &raw_code_trezor_crypto_slip39__decode_mnemonics, +}; + +static const mp_raw_code_t raw_code_trezor_crypto_slip39__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_crypto_slip39__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 285, + #endif + .children = (void *)&children_trezor_crypto_slip39__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 24, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_crypto_slip39__lt_module_gt_ + 4, + .line_info_top = fun_data_trezor_crypto_slip39__lt_module_gt_ + 84, + .opcodes = fun_data_trezor_crypto_slip39__lt_module_gt_ + 84, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_crypto_slip39[116] = { + MP_QSTR_trezor_slash_crypto_slash_slip39_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_shamir, + MP_QSTR_slip39, + MP_QSTR_trezorcrypto, + MP_QSTR_random, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_MnemonicError, + MP_QSTR_trezor_dot_errors, + MP_QSTR_Share, + MP_QSTR__bits_to_bytes, + MP_QSTR__bits_to_words, + MP_QSTR__xor, + MP_QSTR_decrypt, + MP_QSTR_generate_random_identifier, + MP_QSTR_from_bytes, + MP_QSTR_bytes, + MP_QSTR_big, + MP_QSTR_split_ems, + MP_QSTR_format, + MP_QSTR_append, + MP_QSTR_recover_ems, + MP_QSTR_values, + MP_QSTR_items, + MP_QSTR_decode_mnemonic, + MP_QSTR_to_bytes, + MP_QSTR__int_from_indices, + MP_QSTR__int_to_indices, + MP_QSTR__mnemonic_from_indices, + MP_QSTR__space_, + MP_QSTR_join, + MP_QSTR__mnemonic_to_indices, + MP_QSTR_split, + MP_QSTR__rs1024_create_checksum, + MP_QSTR__rs1024_polymod, + MP_QSTR__rs1024_verify_checksum, + MP_QSTR__round_function, + MP_QSTR_pbkdf2, + MP_QSTR_HMAC_SHA256, + MP_QSTR_key, + MP_QSTR__get_salt, + MP_QSTR__create_digest, + MP_QSTR_hmac, + MP_QSTR_SHA256, + MP_QSTR_digest, + MP_QSTR__split_secret, + MP_QSTR_interpolate, + MP_QSTR__recover_secret, + MP_QSTR__group_prefix, + MP_QSTR__encode_mnemonic, + MP_QSTR__decode_mnemonics, + MP_QSTR_add, + MP_QSTR_identifier, + MP_QSTR_iteration_exponent, + MP_QSTR_group_threshold, + MP_QSTR_group_count, + MP_QSTR_setdefault, + MP_QSTR_group_index, + MP_QSTR_threshold, + MP_QSTR_index, + MP_QSTR_share_value, + MP_QSTR_pop, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR___init__, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_get_word, + MP_QSTR_word_index, + MP_QSTR_lower, + MP_QSTR__ID_EXP_LENGTH_WORDS, + MP_QSTR__CUSTOMIZATION_STRING, + MP_QSTR__METADATA_LENGTH_WORDS, + MP_QSTR__MIN_MNEMONIC_LENGTH_WORDS, + MP_QSTR_MAX_SHARE_COUNT, + MP_QSTR_MAX_GROUP_COUNT, + MP_QSTR_DEFAULT_ITERATION_EXPONENT, + MP_QSTR_n, + MP_QSTR_a, + MP_QSTR_b, + MP_QSTR_zip, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_encrypted_master_secret, + MP_QSTR_passphrase, + MP_QSTR_progress_callback, + MP_QSTR_len, + MP_QSTR_reversed, + MP_QSTR_range, + MP_QSTR_int, + MP_QSTR_groups, + MP_QSTR_ValueError, + MP_QSTR_any, + MP_QSTR_mnemonics, + MP_QSTR_mnemonic, + MP_QSTR_tuple, + MP_QSTR_indices, + MP_QSTR_value, + MP_QSTR_length, + MP_QSTR_bits, + MP_QSTR_data, + MP_QSTR_i, + MP_QSTR_e, + MP_QSTR_salt, + MP_QSTR_r, + MP_QSTR_random_data, + MP_QSTR_shared_secret, + MP_QSTR_share_count, + MP_QSTR_shares, + MP_QSTR_member_index, + MP_QSTR_member_threshold, + MP_QSTR_set, + MP_QSTR__star_, + MP_QSTR_self, + MP_QSTR_list, +}; + +// constants +static const mp_obj_str_t const_obj_trezor_crypto_slip39_0 = {{&mp_type_bytes}, 13993, 6, (const byte*)"\x73\x68\x61\x6d\x69\x72"}; +static const mp_obj_str_t const_obj_trezor_crypto_slip39_1 = {{&mp_type_str}, 52165, 77, (const byte*)"\x54\x68\x65\x20\x72\x65\x71\x75\x65\x73\x74\x65\x64\x20\x67\x72\x6f\x75\x70\x20\x74\x68\x72\x65\x73\x68\x6f\x6c\x64\x20\x28\x7b\x7d\x29\x20\x6d\x75\x73\x74\x20\x6e\x6f\x74\x20\x65\x78\x63\x65\x65\x64\x20\x74\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x67\x72\x6f\x75\x70\x73\x20\x28\x7b\x7d\x29\x2e"}; +static const mp_obj_str_t const_obj_trezor_crypto_slip39_2 = {{&mp_type_str}, 19595, 106, (const byte*)"\x43\x72\x65\x61\x74\x69\x6e\x67\x20\x6d\x75\x6c\x74\x69\x70\x6c\x65\x20\x6d\x65\x6d\x62\x65\x72\x20\x73\x68\x61\x72\x65\x73\x20\x77\x69\x74\x68\x20\x6d\x65\x6d\x62\x65\x72\x20\x74\x68\x72\x65\x73\x68\x6f\x6c\x64\x20\x31\x20\x69\x73\x20\x6e\x6f\x74\x20\x61\x6c\x6c\x6f\x77\x65\x64\x2e\x20\x55\x73\x65\x20\x31\x2d\x6f\x66\x2d\x31\x20\x6d\x65\x6d\x62\x65\x72\x20\x73\x68\x61\x72\x69\x6e\x67\x20\x69\x6e\x73\x74\x65\x61\x64\x2e"}; +static const mp_obj_str_t const_obj_trezor_crypto_slip39_3 = {{&mp_type_str}, 47813, 31, (const byte*)"\x54\x68\x65\x20\x6c\x69\x73\x74\x20\x6f\x66\x20\x6d\x6e\x65\x6d\x6f\x6e\x69\x63\x73\x20\x69\x73\x20\x65\x6d\x70\x74\x79\x2e"}; +static const mp_obj_str_t const_obj_trezor_crypto_slip39_4 = {{&mp_type_str}, 37967, 74, (const byte*)"\x57\x72\x6f\x6e\x67\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x6d\x6e\x65\x6d\x6f\x6e\x69\x63\x20\x67\x72\x6f\x75\x70\x73\x2e\x20\x45\x78\x70\x65\x63\x74\x65\x64\x20\x7b\x7d\x20\x67\x72\x6f\x75\x70\x73\x2c\x20\x62\x75\x74\x20\x7b\x7d\x20\x77\x65\x72\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_trezor_crypto_slip39_5 = {{&mp_type_str}, 15823, 71, (const byte*)"\x57\x72\x6f\x6e\x67\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x6d\x6e\x65\x6d\x6f\x6e\x69\x63\x73\x2e\x20\x45\x78\x70\x65\x63\x74\x65\x64\x20\x7b\x7d\x20\x6d\x6e\x65\x6d\x6f\x6e\x69\x63\x73\x2c\x20\x62\x75\x74\x20\x7b\x7d\x20\x77\x65\x72\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_trezor_crypto_slip39_6 = {{&mp_type_str}, 62610, 79, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x6d\x6e\x65\x6d\x6f\x6e\x69\x63\x20\x6c\x65\x6e\x67\x74\x68\x2e\x20\x54\x68\x65\x20\x6c\x65\x6e\x67\x74\x68\x20\x6f\x66\x20\x65\x61\x63\x68\x20\x6d\x6e\x65\x6d\x6f\x6e\x69\x63\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x74\x20\x6c\x65\x61\x73\x74\x20\x7b\x7d\x20\x77\x6f\x72\x64\x73\x2e"}; +static const mp_obj_str_t const_obj_trezor_crypto_slip39_8 = {{&mp_type_str}, 57335, 26, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x6d\x6e\x65\x6d\x6f\x6e\x69\x63\x20\x63\x68\x65\x63\x6b\x73\x75\x6d\x2e"}; +static const mp_obj_str_t const_obj_trezor_crypto_slip39_9 = {{&mp_type_str}, 54783, 69, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x6d\x6e\x65\x6d\x6f\x6e\x69\x63\x2e\x20\x47\x72\x6f\x75\x70\x20\x74\x68\x72\x65\x73\x68\x6f\x6c\x64\x20\x63\x61\x6e\x6e\x6f\x74\x20\x62\x65\x20\x67\x72\x65\x61\x74\x65\x72\x20\x74\x68\x61\x6e\x20\x67\x72\x6f\x75\x70\x20\x63\x6f\x75\x6e\x74\x2e"}; +static const mp_rom_obj_tuple_t const_obj_trezor_crypto_slip39_11 = {{&mp_type_tuple}, 1, { + MP_ROM_INT(0), +}}; +static const mp_obj_int_t const_obj_trezor_crypto_slip39_12_0 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xe040,0xe0}}}; +static const mp_obj_int_t const_obj_trezor_crypto_slip39_12_1 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xc080,0x1c1}}}; +static const mp_obj_int_t const_obj_trezor_crypto_slip39_12_2 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0x8100,0x383}}}; +static const mp_obj_int_t const_obj_trezor_crypto_slip39_12_3 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0x200,0x707}}}; +static const mp_obj_int_t const_obj_trezor_crypto_slip39_12_4 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0x9,0xe0e}}}; +static const mp_obj_int_t const_obj_trezor_crypto_slip39_12_5 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0x2412,0x1c0c}}}; +static const mp_obj_int_t const_obj_trezor_crypto_slip39_12_6 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0x6c24,0x3808}}}; +static const mp_obj_int_t const_obj_trezor_crypto_slip39_12_7 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xfc48,0x3090}}}; +static const mp_obj_int_t const_obj_trezor_crypto_slip39_12_8 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xf890,0x21b1}}}; +static const mp_obj_int_t const_obj_trezor_crypto_slip39_12_9 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xf120,0x3f3}}}; +static const mp_rom_obj_tuple_t const_obj_trezor_crypto_slip39_12 = {{&mp_type_tuple}, 10, { + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_12_0), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_12_1), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_12_2), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_12_3), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_12_4), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_12_5), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_12_6), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_12_7), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_12_8), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_12_9), +}}; +static const mp_obj_str_t const_obj_trezor_crypto_slip39_13 = {{&mp_type_str}, 22790, 56, (const byte*)"\x54\x68\x65\x20\x72\x65\x71\x75\x65\x73\x74\x65\x64\x20\x74\x68\x72\x65\x73\x68\x6f\x6c\x64\x20\x28\x7b\x7d\x29\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x20\x70\x6f\x73\x69\x74\x69\x76\x65\x20\x69\x6e\x74\x65\x67\x65\x72\x2e"}; +static const mp_obj_str_t const_obj_trezor_crypto_slip39_14 = {{&mp_type_str}, 49480, 71, (const byte*)"\x54\x68\x65\x20\x72\x65\x71\x75\x65\x73\x74\x65\x64\x20\x74\x68\x72\x65\x73\x68\x6f\x6c\x64\x20\x28\x7b\x7d\x29\x20\x6d\x75\x73\x74\x20\x6e\x6f\x74\x20\x65\x78\x63\x65\x65\x64\x20\x74\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x73\x68\x61\x72\x65\x73\x20\x28\x7b\x7d\x29\x2e"}; +static const mp_obj_str_t const_obj_trezor_crypto_slip39_15 = {{&mp_type_str}, 17543, 55, (const byte*)"\x54\x68\x65\x20\x72\x65\x71\x75\x65\x73\x74\x65\x64\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x73\x68\x61\x72\x65\x73\x20\x28\x7b\x7d\x29\x20\x6d\x75\x73\x74\x20\x6e\x6f\x74\x20\x65\x78\x63\x65\x65\x64\x20\x7b\x7d\x2e"}; +static const mp_obj_str_t const_obj_trezor_crypto_slip39_16 = {{&mp_type_str}, 36669, 36, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x64\x69\x67\x65\x73\x74\x20\x6f\x66\x20\x74\x68\x65\x20\x73\x68\x61\x72\x65\x64\x20\x73\x65\x63\x72\x65\x74\x2e"}; +static const mp_obj_str_t const_obj_trezor_crypto_slip39_17 = {{&mp_type_str}, 63270, 87, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x73\x65\x74\x20\x6f\x66\x20\x6d\x6e\x65\x6d\x6f\x6e\x69\x63\x73\x2e\x20\x41\x6c\x6c\x20\x6d\x6e\x65\x6d\x6f\x6e\x69\x63\x73\x20\x69\x6e\x20\x61\x20\x67\x72\x6f\x75\x70\x20\x6d\x75\x73\x74\x20\x68\x61\x76\x65\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x6d\x65\x6d\x62\x65\x72\x20\x74\x68\x72\x65\x73\x68\x6f\x6c\x64\x2e"}; +static const mp_obj_str_t const_obj_trezor_crypto_slip39_18 = {{&mp_type_str}, 12764, 74, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x73\x65\x74\x20\x6f\x66\x20\x6d\x6e\x65\x6d\x6f\x6e\x69\x63\x73\x2e\x20\x41\x6c\x6c\x20\x6d\x6e\x65\x6d\x6f\x6e\x69\x63\x73\x20\x6d\x75\x73\x74\x20\x62\x65\x67\x69\x6e\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x7b\x7d\x20\x77\x6f\x72\x64\x73\x2e"}; +static const mp_obj_str_t const_obj_trezor_crypto_slip39_19 = {{&mp_type_str}, 58608, 75, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x73\x65\x74\x20\x6f\x66\x20\x6d\x6e\x65\x6d\x6f\x6e\x69\x63\x73\x2e\x20\x41\x6c\x6c\x20\x6d\x6e\x65\x6d\x6f\x6e\x69\x63\x73\x20\x6d\x75\x73\x74\x20\x68\x61\x76\x65\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x67\x72\x6f\x75\x70\x20\x74\x68\x72\x65\x73\x68\x6f\x6c\x64\x2e"}; +static const mp_obj_str_t const_obj_trezor_crypto_slip39_20 = {{&mp_type_str}, 64548, 71, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x73\x65\x74\x20\x6f\x66\x20\x6d\x6e\x65\x6d\x6f\x6e\x69\x63\x73\x2e\x20\x41\x6c\x6c\x20\x6d\x6e\x65\x6d\x6f\x6e\x69\x63\x73\x20\x6d\x75\x73\x74\x20\x68\x61\x76\x65\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x67\x72\x6f\x75\x70\x20\x63\x6f\x75\x6e\x74\x2e"}; +static const mp_obj_str_t const_obj_trezor_crypto_slip39_21 = {{&mp_type_str}, 37170, 67, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x73\x65\x74\x20\x6f\x66\x20\x73\x68\x61\x72\x65\x73\x2e\x20\x4d\x65\x6d\x62\x65\x72\x20\x69\x6e\x64\x69\x63\x65\x73\x20\x69\x6e\x20\x65\x61\x63\x68\x20\x67\x72\x6f\x75\x70\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x75\x6e\x69\x71\x75\x65\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_crypto_slip39[22] = { + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_0), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_1), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_2), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_3), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_4), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_5), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_6), + MP_ROM_QSTR(MP_QSTR_Invalid_space_mnemonic_space_length_dot_), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_8), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_9), + MP_ROM_QSTR(MP_QSTR_Invalid_space_mnemonic_space_padding), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_11), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_12), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_13), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_14), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_15), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_16), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_17), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_18), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_19), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_20), + MP_ROM_PTR(&const_obj_trezor_crypto_slip39_21), +}; + +static const mp_frozen_module_t frozen_module_trezor_crypto_slip39 = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_crypto_slip39, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_crypto_slip39, + }, + .rc = &raw_code_trezor_crypto_slip39__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_ui___init__ +// - original source file: build/firmware/src/trezor/ui/__init__.mpy +// - frozen file name: trezor/ui/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init____lt_module_gt_ +static const byte fun_data_trezor_ui___init____lt_module_gt_[285] = { + 0x20,0x52, // prelude + 0x01, // names: + 0x20,0x26,0x2c,0x6c,0x7e,0x66,0x26,0x26,0x26,0x26,0x26,0x66,0x68,0x63,0x80,0x0b,0x66,0x20,0x2f,0x66,0x20,0x6c,0x68,0x84,0x0f,0x88,0x0a,0x8c,0x15,0x45,0x85,0x07,0x89,0x42,0x8b,0x0d,0x8b,0x0b,0x8b,0x7e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'utime' + 0x16,0x02, // STORE_NAME 'utime' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'micropython' + 0x1c,0x03, // IMPORT_FROM 'const' + 0x16,0x03, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'Display' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezorui' + 0x1c,0x05, // IMPORT_FROM 'Display' + 0x16,0x05, // STORE_NAME 'Display' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'io' + 0x10,0x08, // LOAD_CONST_STRING 'loop' + 0x10,0x09, // LOAD_CONST_STRING 'utils' + 0x10,0x0a, // LOAD_CONST_STRING 'workflow' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x0b, // IMPORT_NAME 'trezor' + 0x1c,0x07, // IMPORT_FROM 'io' + 0x16,0x07, // STORE_NAME 'io' + 0x1c,0x08, // IMPORT_FROM 'loop' + 0x16,0x08, // STORE_NAME 'loop' + 0x1c,0x09, // IMPORT_FROM 'utils' + 0x16,0x09, // STORE_NAME 'utils' + 0x1c,0x0a, // IMPORT_FROM 'workflow' + 0x16,0x0a, // STORE_NAME 'workflow' + 0x59, // POP_TOP + 0x11,0x05, // LOAD_NAME 'Display' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x4b, // STORE_NAME 'display' + 0x11,0x05, // LOAD_NAME 'Display' + 0x13,0x0c, // LOAD_ATTR 'FONT_NORMAL' + 0x16,0x4c, // STORE_NAME 'NORMAL' + 0x11,0x05, // LOAD_NAME 'Display' + 0x13,0x0d, // LOAD_ATTR 'FONT_BOLD' + 0x16,0x4d, // STORE_NAME 'BOLD' + 0x11,0x05, // LOAD_NAME 'Display' + 0x13,0x0e, // LOAD_ATTR 'FONT_DEMIBOLD' + 0x16,0x4e, // STORE_NAME 'DEMIBOLD' + 0x11,0x05, // LOAD_NAME 'Display' + 0x13,0x0f, // LOAD_ATTR 'FONT_MONO' + 0x16,0x4f, // STORE_NAME 'MONO' + 0x11,0x05, // LOAD_NAME 'Display' + 0x13,0x10, // LOAD_ATTR 'WIDTH' + 0x16,0x10, // STORE_NAME 'WIDTH' + 0x11,0x05, // LOAD_NAME 'Display' + 0x13,0x11, // LOAD_ATTR 'HEIGHT' + 0x16,0x11, // STORE_NAME 'HEIGHT' + 0x11,0x08, // LOAD_NAME 'loop' + 0x14,0x12, // LOAD_METHOD 'chan' + 0x36,0x00, // CALL_METHOD 0 + 0x16,0x50, // STORE_NAME 'layout_chan' + 0x50, // LOAD_CONST_FALSE + 0x17,0x51, // STORE_GLOBAL '_alert_in_progress' + 0x11,0x4b, // LOAD_NAME 'display' + 0x13,0x13, // LOAD_ATTR 'refresh' + 0x16,0x13, // STORE_NAME 'refresh' + 0x11,0x09, // LOAD_NAME 'utils' + 0x13,0x14, // LOAD_ATTR 'EMULATOR' + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x11,0x09, // LOAD_NAME 'utils' + 0x13,0x15, // LOAD_ATTR 'INTERNAL_MODEL' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xdd, // BINARY_OP 6 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x11,0x13, // LOAD_NAME 'refresh' + 0x11,0x08, // LOAD_NAME 'loop' + 0x18,0x16, // STORE_ATTR 'after_step_hook' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING 'style' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME 'trezor.ui' + 0x1c,0x17, // IMPORT_FROM 'style' + 0x16,0x17, // STORE_NAME 'style' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x19, // LOAD_CONST_STRING '*' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1a, // IMPORT_NAME 'trezor.ui.style' + 0x69, // IMPORT_STAR + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x1f, // STORE_NAME '_alert' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x25, // STORE_NAME 'alert' + 0x22,0x80,0xed,0x30, // LOAD_CONST_SMALL_INT 14000 + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x27, // STORE_NAME 'backlight_fade' + 0x22,0xfe,0x01, // LOAD_CONST_SMALL_INT -255 + 0x16,0x52, // STORE_NAME 'RENDER' + 0x22,0xfe,0x00, // LOAD_CONST_SMALL_INT -256 + 0x16,0x53, // STORE_NAME 'REPAINT' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x03, // MAKE_FUNCTION 3 + 0x10,0x1b, // LOAD_CONST_STRING 'Component' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x1b, // STORE_NAME 'Component' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x04, // MAKE_FUNCTION 4 + 0x10,0x1c, // LOAD_CONST_STRING 'Result' + 0x11,0x54, // LOAD_NAME 'Exception' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x1c, // STORE_NAME 'Result' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x05, // MAKE_FUNCTION 5 + 0x10,0x1d, // LOAD_CONST_STRING 'Cancelled' + 0x11,0x54, // LOAD_NAME 'Exception' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x1d, // STORE_NAME 'Cancelled' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x06, // MAKE_FUNCTION 6 + 0x10,0x1e, // LOAD_CONST_STRING 'Layout' + 0x11,0x1b, // LOAD_NAME 'Component' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x1e, // STORE_NAME 'Layout' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x29, // STORE_NAME 'wait_until_layout_is_running' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_ui___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init____alert +static const byte fun_data_trezor_ui___init____alert[109] = { + 0xc1,0x40,0x1c, // prelude + 0x1f,0x55, // names: _alert, count + 0x80,0x35,0x28,0x2a,0x28,0x27,0x2b,0x47,0x2b,0x2e,0x2b,0x20, // code info + 0x12,0x08, // LOAD_GLOBAL 'loop' + 0x14,0x20, // LOAD_METHOD 'sleep' + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0x12,0x08, // LOAD_GLOBAL 'loop' + 0x14,0x20, // LOAD_METHOD 'sleep' + 0x22,0x80,0x50, // LOAD_CONST_SMALL_INT 80 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf4, // BINARY_OP 29 __mul__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x6d, // JUMP 45 + 0x57, // DUP_TOP + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf8, // BINARY_OP 33 __mod__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x4b, // LOAD_GLOBAL 'display' + 0x14,0x21, // LOAD_METHOD 'backlight' + 0x12,0x17, // LOAD_GLOBAL 'style' + 0x13,0x22, // LOAD_ATTR 'BACKLIGHT_MAX' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x50, // JUMP 16 + 0x12,0x4b, // LOAD_GLOBAL 'display' + 0x14,0x21, // LOAD_METHOD 'backlight' + 0x12,0x17, // LOAD_GLOBAL 'style' + 0x13,0x23, // LOAD_ATTR 'BACKLIGHT_DIM' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x0e, // POP_JUMP_IF_TRUE -50 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x4b, // LOAD_GLOBAL 'display' + 0x14,0x21, // LOAD_METHOD 'backlight' + 0x12,0x17, // LOAD_GLOBAL 'style' + 0x13,0x24, // LOAD_ATTR 'BACKLIGHT_NORMAL' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x50, // LOAD_CONST_FALSE + 0x17,0x51, // STORE_GLOBAL '_alert_in_progress' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init____alert = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui___init____alert, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 109, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_trezor_ui___init____alert + 5, + .line_info_top = fun_data_trezor_ui___init____alert + 17, + .opcodes = fun_data_trezor_ui___init____alert + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___alert +static const byte fun_data_trezor_ui___init___alert[35] = { + 0xa1,0x01,0x12, // prelude + 0x25,0x55, // names: alert, count + 0x80,0x44,0x20,0x20,0x24,0x42,0x23, // code info + 0x12,0x51, // LOAD_GLOBAL '_alert_in_progress' + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x52, // LOAD_CONST_TRUE + 0x17,0x51, // STORE_GLOBAL '_alert_in_progress' + 0x12,0x08, // LOAD_GLOBAL 'loop' + 0x14,0x26, // LOAD_METHOD 'schedule' + 0x12,0x1f, // LOAD_GLOBAL '_alert' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___alert = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui___init___alert, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 37, + .line_info = fun_data_trezor_ui___init___alert + 5, + .line_info_top = fun_data_trezor_ui___init___alert + 12, + .opcodes = fun_data_trezor_ui___init___alert + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___backlight_fade +static const byte fun_data_trezor_ui___init___backlight_fade[93] = { + 0xdb,0x80,0x01,0x24, // prelude + 0x27,0x56,0x57,0x58, // names: backlight_fade, val, delay, step + 0x80,0x4e,0x20,0x60,0x20,0x27,0x25,0x28,0x22,0x25,0x25,0x2b,0x28,0x2a, // code info + 0x12,0x4b, // LOAD_GLOBAL 'display' + 0x14,0x21, // LOAD_METHOD 'backlight' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x4b, // LOAD_GLOBAL 'display' + 0x14,0x21, // LOAD_METHOD 'backlight' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb2, // LOAD_FAST 2 + 0xd1, // UNARY_OP 1 __neg__ + 0xc2, // STORE_FAST 2 + 0x42,0x40, // JUMP 0 + 0x12,0x59, // LOAD_GLOBAL 'range' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5f, // GET_ITER_STACK + 0x4b,0x13, // FOR_ITER 19 + 0xc4, // STORE_FAST 4 + 0x12,0x4b, // LOAD_GLOBAL 'display' + 0x14,0x21, // LOAD_METHOD 'backlight' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'utime' + 0x14,0x28, // LOAD_METHOD 'sleep_us' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x2b, // JUMP -21 + 0x12,0x4b, // LOAD_GLOBAL 'display' + 0x14,0x21, // LOAD_METHOD 'backlight' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___backlight_fade = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui___init___backlight_fade, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 93, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 39, + .line_info = fun_data_trezor_ui___init___backlight_fade + 8, + .line_info_top = fun_data_trezor_ui___init___backlight_fade + 22, + .opcodes = fun_data_trezor_ui___init___backlight_fade + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Component +static const byte fun_data_trezor_ui___init___Component[88] = { + 0x08,0x24, // prelude + 0x1b, // names: Component + 0x88,0x6c,0x80,0x0b,0x64,0x49,0x84,0x0c,0x64,0x64,0x66,0x49,0x84,0x0a,0x64,0x66,0x64, // code info + 0x11,0x5a, // LOAD_NAME '__name__' + 0x16,0x5b, // STORE_NAME '__module__' + 0x10,0x1b, // LOAD_CONST_STRING 'Component' + 0x16,0x5c, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x2b, // STORE_NAME '__init__' + 0x11,0x09, // LOAD_NAME 'utils' + 0x13,0x15, // LOAD_ATTR 'INTERNAL_MODEL' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xdd, // BINARY_OP 6 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x2d, // STORE_NAME 'dispatch' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x30, // STORE_NAME 'on_touch_start' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x32, // STORE_NAME 'on_touch_move' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x34, // STORE_NAME 'on_touch_end' + 0x42,0x57, // JUMP 23 + 0x11,0x09, // LOAD_NAME 'utils' + 0x13,0x15, // LOAD_ATTR 'INTERNAL_MODEL' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xdd, // BINARY_OP 6 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x2d, // STORE_NAME 'dispatch' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x36, // STORE_NAME 'on_button_pressed' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x38, // STORE_NAME 'on_button_released' + 0x42,0x40, // JUMP 0 + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x2e, // STORE_NAME 'on_render' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_ui___init___Component +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Component___init__ +static const byte fun_data_trezor_ui___init___Component___init__[12] = { + 0x11,0x08, // prelude + 0x2b,0x5f, // names: __init__, self + 0x80,0x78, // code info + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x2c, // STORE_ATTR 'repaint' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___Component___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui___init___Component___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_trezor_ui___init___Component___init__ + 4, + .line_info_top = fun_data_trezor_ui___init___Component___init__ + 6, + .opcodes = fun_data_trezor_ui___init___Component___init__ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init___Component +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Component_dispatch +static const byte fun_data_trezor_ui___init___Component_dispatch[104] = { + 0xb8,0x04,0x20, // prelude + 0x2d,0x5f,0x60,0x61,0x62, // names: dispatch, self, event, x, y + 0x80,0x7d,0x27,0x29,0x28,0x2a,0x28,0x2a,0x28,0x2a,0x27, // code info + 0xb1, // LOAD_FAST 1 + 0x22,0xfe,0x01, // LOAD_CONST_SMALL_INT -255 + 0xde, // BINARY_OP 7 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x2e, // LOAD_METHOD 'on_render' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0xc3,0x80, // JUMP 67 + 0xb1, // LOAD_FAST 1 + 0x12,0x07, // LOAD_GLOBAL 'io' + 0x13,0x2f, // LOAD_ATTR 'TOUCH_START' + 0xde, // BINARY_OP 7 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb0, // LOAD_FAST 0 + 0x14,0x30, // LOAD_METHOD 'on_touch_start' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x71, // JUMP 49 + 0xb1, // LOAD_FAST 1 + 0x12,0x07, // LOAD_GLOBAL 'io' + 0x13,0x31, // LOAD_ATTR 'TOUCH_MOVE' + 0xde, // BINARY_OP 7 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb0, // LOAD_FAST 0 + 0x14,0x32, // LOAD_METHOD 'on_touch_move' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x5f, // JUMP 31 + 0xb1, // LOAD_FAST 1 + 0x12,0x07, // LOAD_GLOBAL 'io' + 0x13,0x33, // LOAD_ATTR 'TOUCH_END' + 0xde, // BINARY_OP 7 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb0, // LOAD_FAST 0 + 0x14,0x34, // LOAD_METHOD 'on_touch_end' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x4d, // JUMP 13 + 0xb1, // LOAD_FAST 1 + 0x22,0xfe,0x00, // LOAD_CONST_SMALL_INT -256 + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x2c, // STORE_ATTR 'repaint' + 0x42,0x40, // JUMP 0 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___Component_dispatch = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_trezor_ui___init___Component_dispatch, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 104, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_trezor_ui___init___Component_dispatch + 8, + .line_info_top = fun_data_trezor_ui___init___Component_dispatch + 19, + .opcodes = fun_data_trezor_ui___init___Component_dispatch + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init___Component +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Component_on_touch_start +static const byte fun_data_trezor_ui___init___Component_on_touch_start[10] = { + 0x1b,0x0c, // prelude + 0x30,0x5f,0x61,0x62, // names: on_touch_start, self, x, y + 0x80,0x89, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___Component_on_touch_start = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui___init___Component_on_touch_start, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 10, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 48, + .line_info = fun_data_trezor_ui___init___Component_on_touch_start + 6, + .line_info_top = fun_data_trezor_ui___init___Component_on_touch_start + 8, + .opcodes = fun_data_trezor_ui___init___Component_on_touch_start + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init___Component +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Component_on_touch_move +static const byte fun_data_trezor_ui___init___Component_on_touch_move[10] = { + 0x1b,0x0c, // prelude + 0x32,0x5f,0x61,0x62, // names: on_touch_move, self, x, y + 0x80,0x8c, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___Component_on_touch_move = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui___init___Component_on_touch_move, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 10, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 50, + .line_info = fun_data_trezor_ui___init___Component_on_touch_move + 6, + .line_info_top = fun_data_trezor_ui___init___Component_on_touch_move + 8, + .opcodes = fun_data_trezor_ui___init___Component_on_touch_move + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init___Component +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Component_on_touch_end +static const byte fun_data_trezor_ui___init___Component_on_touch_end[10] = { + 0x1b,0x0c, // prelude + 0x34,0x5f,0x61,0x62, // names: on_touch_end, self, x, y + 0x80,0x8f, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___Component_on_touch_end = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui___init___Component_on_touch_end, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 10, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 52, + .line_info = fun_data_trezor_ui___init___Component_on_touch_end + 6, + .line_info_top = fun_data_trezor_ui___init___Component_on_touch_end + 8, + .opcodes = fun_data_trezor_ui___init___Component_on_touch_end + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init___Component +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Component_dispatch2 +static const byte fun_data_trezor_ui___init___Component_dispatch2[81] = { + 0xb0,0x04,0x1c, // prelude + 0x2d,0x5f,0x60,0x61,0x62, // names: dispatch, self, event, x, y + 0x80,0x94,0x27,0x28,0x28,0x29,0x28,0x29,0x27, // code info + 0xb1, // LOAD_FAST 1 + 0x22,0xfe,0x01, // LOAD_CONST_SMALL_INT -255 + 0xde, // BINARY_OP 7 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb0, // LOAD_FAST 0 + 0x14,0x2e, // LOAD_METHOD 'on_render' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0x6f, // JUMP 47 + 0xb1, // LOAD_FAST 1 + 0x12,0x07, // LOAD_GLOBAL 'io' + 0x13,0x35, // LOAD_ATTR 'BUTTON_PRESSED' + 0xde, // BINARY_OP 7 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x36, // LOAD_METHOD 'on_button_pressed' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x5e, // JUMP 30 + 0xb1, // LOAD_FAST 1 + 0x12,0x07, // LOAD_GLOBAL 'io' + 0x13,0x37, // LOAD_ATTR 'BUTTON_RELEASED' + 0xde, // BINARY_OP 7 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x38, // LOAD_METHOD 'on_button_released' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x4d, // JUMP 13 + 0xb1, // LOAD_FAST 1 + 0x22,0xfe,0x00, // LOAD_CONST_SMALL_INT -256 + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x2c, // STORE_ATTR 'repaint' + 0x42,0x40, // JUMP 0 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___Component_dispatch2 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_trezor_ui___init___Component_dispatch2, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 81, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_trezor_ui___init___Component_dispatch2 + 8, + .line_info_top = fun_data_trezor_ui___init___Component_dispatch2 + 17, + .opcodes = fun_data_trezor_ui___init___Component_dispatch2 + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init___Component +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Component_on_button_pressed +static const byte fun_data_trezor_ui___init___Component_on_button_pressed[9] = { + 0x12,0x0a, // prelude + 0x36,0x5f,0x63, // names: on_button_pressed, self, button_number + 0x80,0x9e, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___Component_on_button_pressed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui___init___Component_on_button_pressed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 9, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 54, + .line_info = fun_data_trezor_ui___init___Component_on_button_pressed + 5, + .line_info_top = fun_data_trezor_ui___init___Component_on_button_pressed + 7, + .opcodes = fun_data_trezor_ui___init___Component_on_button_pressed + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init___Component +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Component_on_button_released +static const byte fun_data_trezor_ui___init___Component_on_button_released[9] = { + 0x12,0x0a, // prelude + 0x38,0x5f,0x63, // names: on_button_released, self, button_number + 0x80,0xa1, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___Component_on_button_released = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui___init___Component_on_button_released, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 9, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 56, + .line_info = fun_data_trezor_ui___init___Component_on_button_released + 5, + .line_info_top = fun_data_trezor_ui___init___Component_on_button_released + 7, + .opcodes = fun_data_trezor_ui___init___Component_on_button_released + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init___Component +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Component_on_render +static const byte fun_data_trezor_ui___init___Component_on_render[8] = { + 0x09,0x08, // prelude + 0x2e,0x5f, // names: on_render, self + 0x80,0xa4, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___Component_on_render = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui___init___Component_on_render, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 8, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_trezor_ui___init___Component_on_render + 4, + .line_info_top = fun_data_trezor_ui___init___Component_on_render + 6, + .opcodes = fun_data_trezor_ui___init___Component_on_render + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui___init___Component[] = { + &raw_code_trezor_ui___init___Component___init__, + &raw_code_trezor_ui___init___Component_dispatch, + &raw_code_trezor_ui___init___Component_on_touch_start, + &raw_code_trezor_ui___init___Component_on_touch_move, + &raw_code_trezor_ui___init___Component_on_touch_end, + &raw_code_trezor_ui___init___Component_dispatch2, + &raw_code_trezor_ui___init___Component_on_button_pressed, + &raw_code_trezor_ui___init___Component_on_button_released, + &raw_code_trezor_ui___init___Component_on_render, +}; + +static const mp_raw_code_t raw_code_trezor_ui___init___Component = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui___init___Component, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 88, + #endif + .children = (void *)&children_trezor_ui___init___Component, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 9, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 27, + .line_info = fun_data_trezor_ui___init___Component + 3, + .line_info_top = fun_data_trezor_ui___init___Component + 20, + .opcodes = fun_data_trezor_ui___init___Component + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Result +static const byte fun_data_trezor_ui___init___Result[24] = { + 0x08,0x0b, // prelude + 0x1c, // names: Result + 0x88,0xae,0x80,0x07,0x00, // code info + 0x11,0x5a, // LOAD_NAME '__name__' + 0x16,0x5b, // STORE_NAME '__module__' + 0x10,0x1c, // LOAD_CONST_STRING 'Result' + 0x16,0x5c, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x2b, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_ui___init___Result +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Result___init__ +static const byte fun_data_trezor_ui___init___Result___init__[25] = { + 0x2b,0x0e, // prelude + 0x2b,0x19,0x5f,0x39, // names: __init__, *, self, value + 0x80,0xb6,0x2a, // code info + 0x12,0x64, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x2b, // LOAD_SUPER_METHOD '__init__' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x18,0x39, // STORE_ATTR 'value' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___Result___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui___init___Result___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_trezor_ui___init___Result___init__ + 6, + .line_info_top = fun_data_trezor_ui___init___Result___init__ + 9, + .opcodes = fun_data_trezor_ui___init___Result___init__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui___init___Result[] = { + &raw_code_trezor_ui___init___Result___init__, +}; + +static const mp_raw_code_t raw_code_trezor_ui___init___Result = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui___init___Result, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = (void *)&children_trezor_ui___init___Result, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_trezor_ui___init___Result + 3, + .line_info_top = fun_data_trezor_ui___init___Result + 7, + .opcodes = fun_data_trezor_ui___init___Result + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Cancelled +static const byte fun_data_trezor_ui___init___Cancelled[15] = { + 0x00,0x06, // prelude + 0x1d, // names: Cancelled + 0x88,0xbb, // code info + 0x11,0x5a, // LOAD_NAME '__name__' + 0x16,0x5b, // STORE_NAME '__module__' + 0x10,0x1d, // LOAD_CONST_STRING 'Cancelled' + 0x16,0x5c, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___Cancelled = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui___init___Cancelled, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_trezor_ui___init___Cancelled + 3, + .line_info_top = fun_data_trezor_ui___init___Cancelled + 5, + .opcodes = fun_data_trezor_ui___init___Cancelled + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Layout +static const byte fun_data_trezor_ui___init___Layout[107] = { + 0x10,0x2e, // prelude + 0x1e, // names: Layout + 0x88,0xc6,0x80,0x09,0x26,0x49,0x84,0x1e,0x60,0x60,0x44,0x84,0x09,0x49,0x86,0x0c,0x49,0x86,0x0a,0x47,0x84,0x19, // code info + 0x11,0x5a, // LOAD_NAME '__name__' + 0x16,0x5b, // STORE_NAME '__module__' + 0x10,0x1e, // LOAD_CONST_STRING 'Layout' + 0x16,0x5c, // STORE_NAME '__qualname__' + 0x11,0x17, // LOAD_NAME 'style' + 0x13,0x24, // LOAD_ATTR 'BACKLIGHT_NORMAL' + 0x16,0x49, // STORE_NAME 'BACKLIGHT_LEVEL' + 0x11,0x08, // LOAD_NAME 'loop' + 0x14,0x20, // LOAD_METHOD 'sleep' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x36,0x01, // CALL_METHOD 1 + 0x16,0x4a, // STORE_NAME 'RENDER_SLEEP' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x3a, // STORE_NAME '__iter__' + 0x11,0x3a, // LOAD_NAME '__iter__' + 0x16,0x5d, // STORE_NAME '__await__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x3e, // STORE_NAME 'create_tasks' + 0x11,0x09, // LOAD_NAME 'utils' + 0x13,0x15, // LOAD_ATTR 'INTERNAL_MODEL' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xdd, // BINARY_OP 6 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x3f, // STORE_NAME 'handle_input' + 0x42,0x56, // JUMP 22 + 0x11,0x09, // LOAD_NAME 'utils' + 0x13,0x15, // LOAD_ATTR 'INTERNAL_MODEL' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xdd, // BINARY_OP 6 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x3f, // STORE_NAME 'handle_input' + 0x42,0x47, // JUMP 7 + 0x11,0x5e, // LOAD_NAME 'ValueError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x46, // STORE_NAME '_before_render' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x40, // STORE_NAME 'handle_rendering' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_ui___init___Layout +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Layout___iter__ +static const byte fun_data_trezor_ui___init___Layout___iter__[95] = { + 0xc1,0x42,0x24, // prelude + 0x3a,0x5f, // names: __iter__, self + 0x80,0xd3,0x60,0x20,0x60,0x60,0x22,0x62,0x20,0x26,0x6e,0x60,0x20,0x1f,0x64,0x2d, // code info + 0x51, // LOAD_CONST_NONE + 0xc1, // STORE_FAST 1 + 0x48,0x2e, // SETUP_EXCEPT 46 + 0x12,0x50, // LOAD_GLOBAL 'layout_chan' + 0x13,0x2a, // LOAD_ATTR 'takers' + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x50, // LOAD_GLOBAL 'layout_chan' + 0x14,0x3b, // LOAD_METHOD 'put' + 0x12,0x1d, // LOAD_GLOBAL 'Cancelled' + 0x34,0x00, // CALL_FUNCTION 0 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'loop' + 0x14,0x3c, // LOAD_METHOD 'race' + 0x12,0x50, // LOAD_GLOBAL 'layout_chan' + 0x14,0x3d, // LOAD_METHOD 'take' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x14,0x3e, // LOAD_METHOD 'create_tasks' + 0x36,0x00, // CALL_METHOD 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x37,0x02, // CALL_METHOD_VAR_KW 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x28, // JUMP -24 + 0x4a,0x16, // POP_EXCEPT_JUMP 22 + 0x57, // DUP_TOP + 0x12,0x1c, // LOAD_GLOBAL 'Result' + 0xdf, // BINARY_OP 8 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xc2, // STORE_FAST 2 + 0x49,0x05, // SETUP_FINALLY 5 + 0xb2, // LOAD_FAST 2 + 0x13,0x39, // LOAD_ATTR 'value' + 0xc1, // STORE_FAST 1 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xc2, // STORE_FAST 2 + 0x28,0x02, // DELETE_FAST 2 + 0x5d, // END_FINALLY + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___Layout___iter__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui___init___Layout___iter__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 95, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 2, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 58, + .line_info = fun_data_trezor_ui___init___Layout___iter__ + 5, + .line_info_top = fun_data_trezor_ui___init___Layout___iter__ + 21, + .opcodes = fun_data_trezor_ui___init___Layout___iter__ + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init___Layout +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Layout_create_tasks +static const byte fun_data_trezor_ui___init___Layout_create_tasks[21] = { + 0x19,0x0c, // prelude + 0x3e,0x5f, // names: create_tasks, self + 0x80,0xf9,0x60,0x60, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x3f, // LOAD_METHOD 'handle_input' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x14,0x40, // LOAD_METHOD 'handle_rendering' + 0x36,0x00, // CALL_METHOD 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___Layout_create_tasks = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui___init___Layout_create_tasks, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 62, + .line_info = fun_data_trezor_ui___init___Layout_create_tasks + 4, + .line_info_top = fun_data_trezor_ui___init___Layout_create_tasks + 8, + .opcodes = fun_data_trezor_ui___init___Layout_create_tasks + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init___Layout +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Layout_handle_input +static const byte fun_data_trezor_ui___init___Layout_handle_input[64] = { + 0xc9,0x40,0x14, // prelude + 0x3f,0x5f, // names: handle_input, self + 0x90,0x04,0x20,0x2b,0x40,0x27,0x29,0x69, // code info + 0x12,0x08, // LOAD_GLOBAL 'loop' + 0x14,0x41, // LOAD_METHOD 'wait' + 0x12,0x07, // LOAD_GLOBAL 'io' + 0x13,0x42, // LOAD_ATTR 'TOUCH' + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x67, // YIELD_VALUE + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc2, // STORE_FAST 2 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0x12,0x0a, // LOAD_GLOBAL 'workflow' + 0x13,0x43, // LOAD_ATTR 'idle_timer' + 0x14,0x44, // LOAD_METHOD 'touch' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x2d, // LOAD_METHOD 'dispatch' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x2d, // LOAD_METHOD 'dispatch' + 0x22,0xfe,0x01, // LOAD_CONST_SMALL_INT -255 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x42,0x1a, // JUMP -38 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___Layout_handle_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui___init___Layout_handle_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 64, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 63, + .line_info = fun_data_trezor_ui___init___Layout_handle_input + 5, + .line_info_top = fun_data_trezor_ui___init___Layout_handle_input + 13, + .opcodes = fun_data_trezor_ui___init___Layout_handle_input + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init___Layout +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Layout_handle_input2 +static const byte fun_data_trezor_ui___init___Layout_handle_input2[63] = { + 0xc1,0x40,0x14, // prelude + 0x3f,0x5f, // names: handle_input, self + 0x90,0x12,0x20,0x2b,0x20,0x26,0x29,0x29, // code info + 0x12,0x08, // LOAD_GLOBAL 'loop' + 0x14,0x41, // LOAD_METHOD 'wait' + 0x12,0x07, // LOAD_GLOBAL 'io' + 0x13,0x45, // LOAD_ATTR 'BUTTON' + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x67, // YIELD_VALUE + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc2, // STORE_FAST 2 + 0xc3, // STORE_FAST 3 + 0x12,0x0a, // LOAD_GLOBAL 'workflow' + 0x13,0x43, // LOAD_ATTR 'idle_timer' + 0x14,0x44, // LOAD_METHOD 'touch' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x2d, // LOAD_METHOD 'dispatch' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x2d, // LOAD_METHOD 'dispatch' + 0x22,0xfe,0x01, // LOAD_CONST_SMALL_INT -255 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x42,0x1b, // JUMP -37 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___Layout_handle_input2 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui___init___Layout_handle_input2, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 63, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 63, + .line_info = fun_data_trezor_ui___init___Layout_handle_input2 + 5, + .line_info_top = fun_data_trezor_ui___init___Layout_handle_input2 + 13, + .opcodes = fun_data_trezor_ui___init___Layout_handle_input2 + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init___Layout +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Layout__before_render +static const byte fun_data_trezor_ui___init___Layout__before_render[67] = { + 0x29,0x18, // prelude + 0x46,0x5f, // names: _before_render, self + 0x90,0x1f,0x69,0x20,0x27,0x2b,0x4b,0x80,0x0c,0x25, // code info + 0x12,0x27, // LOAD_GLOBAL 'backlight_fade' + 0x12,0x17, // LOAD_GLOBAL 'style' + 0x13,0x47, // LOAD_ATTR 'BACKLIGHT_NONE' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x4b, // LOAD_GLOBAL 'display' + 0x14,0x48, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x2d, // LOAD_METHOD 'dispatch' + 0x22,0xfe,0x00, // LOAD_CONST_SMALL_INT -256 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x2d, // LOAD_METHOD 'dispatch' + 0x22,0xfe,0x01, // LOAD_CONST_SMALL_INT -255 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x13, // LOAD_GLOBAL 'refresh' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x27, // LOAD_GLOBAL 'backlight_fade' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'BACKLIGHT_LEVEL' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___Layout__before_render = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui___init___Layout__before_render, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 67, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 70, + .line_info = fun_data_trezor_ui___init___Layout__before_render + 4, + .line_info_top = fun_data_trezor_ui___init___Layout__before_render + 14, + .opcodes = fun_data_trezor_ui___init___Layout__before_render + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init___Layout +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___Layout_handle_rendering +static const byte fun_data_trezor_ui___init___Layout_handle_rendering[41] = { + 0xb1,0x40,0x14, // prelude + 0x40,0x5f, // names: handle_rendering, self + 0x90,0x37,0x20,0x26,0x24,0x60,0x40,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x46, // LOAD_METHOD '_before_render' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x4a, // LOAD_ATTR 'RENDER_SLEEP' + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x2d, // LOAD_METHOD 'dispatch' + 0x22,0xfe,0x01, // LOAD_CONST_SMALL_INT -255 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x42,0x30, // JUMP -16 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___Layout_handle_rendering = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui___init___Layout_handle_rendering, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_trezor_ui___init___Layout_handle_rendering + 5, + .line_info_top = fun_data_trezor_ui___init___Layout_handle_rendering + 13, + .opcodes = fun_data_trezor_ui___init___Layout_handle_rendering + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui___init___Layout[] = { + &raw_code_trezor_ui___init___Layout___iter__, + &raw_code_trezor_ui___init___Layout_create_tasks, + &raw_code_trezor_ui___init___Layout_handle_input, + &raw_code_trezor_ui___init___Layout_handle_input2, + &raw_code_trezor_ui___init___Layout__before_render, + &raw_code_trezor_ui___init___Layout_handle_rendering, +}; + +static const mp_raw_code_t raw_code_trezor_ui___init___Layout = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui___init___Layout, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 107, + #endif + .children = (void *)&children_trezor_ui___init___Layout, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_trezor_ui___init___Layout + 3, + .line_info_top = fun_data_trezor_ui___init___Layout + 25, + .opcodes = fun_data_trezor_ui___init___Layout + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/__init__.py, scope trezor_ui___init___wait_until_layout_is_running +static const byte fun_data_trezor_ui___init___wait_until_layout_is_running[20] = { + 0x80,0x40,0x08, // prelude + 0x29, // names: wait_until_layout_is_running + 0x90,0x44,0x22, // code info + 0x42,0x43, // JUMP 3 + 0x51, // LOAD_CONST_NONE + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x12,0x50, // LOAD_GLOBAL 'layout_chan' + 0x13,0x2a, // LOAD_ATTR 'takers' + 0x44,0x37, // POP_JUMP_IF_FALSE -9 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui___init___wait_until_layout_is_running = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui___init___wait_until_layout_is_running, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_trezor_ui___init___wait_until_layout_is_running + 4, + .line_info_top = fun_data_trezor_ui___init___wait_until_layout_is_running + 7, + .opcodes = fun_data_trezor_ui___init___wait_until_layout_is_running + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui___init____lt_module_gt_[] = { + &raw_code_trezor_ui___init____alert, + &raw_code_trezor_ui___init___alert, + &raw_code_trezor_ui___init___backlight_fade, + &raw_code_trezor_ui___init___Component, + &raw_code_trezor_ui___init___Result, + &raw_code_trezor_ui___init___Cancelled, + &raw_code_trezor_ui___init___Layout, + &raw_code_trezor_ui___init___wait_until_layout_is_running, +}; + +static const mp_raw_code_t raw_code_trezor_ui___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 285, + #endif + .children = (void *)&children_trezor_ui___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 8, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_ui___init____lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_ui___init____lt_module_gt_ + 43, + .opcodes = fun_data_trezor_ui___init____lt_module_gt_ + 43, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_ui___init__[101] = { + MP_QSTR_trezor_slash_ui_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utime, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_Display, + MP_QSTR_trezorui, + MP_QSTR_io, + MP_QSTR_loop, + MP_QSTR_utils, + MP_QSTR_workflow, + MP_QSTR_trezor, + MP_QSTR_FONT_NORMAL, + MP_QSTR_FONT_BOLD, + MP_QSTR_FONT_DEMIBOLD, + MP_QSTR_FONT_MONO, + MP_QSTR_WIDTH, + MP_QSTR_HEIGHT, + MP_QSTR_chan, + MP_QSTR_refresh, + MP_QSTR_EMULATOR, + MP_QSTR_INTERNAL_MODEL, + MP_QSTR_after_step_hook, + MP_QSTR_style, + MP_QSTR_trezor_dot_ui, + MP_QSTR__star_, + MP_QSTR_trezor_dot_ui_dot_style, + MP_QSTR_Component, + MP_QSTR_Result, + MP_QSTR_Cancelled, + MP_QSTR_Layout, + MP_QSTR__alert, + MP_QSTR_sleep, + MP_QSTR_backlight, + MP_QSTR_BACKLIGHT_MAX, + MP_QSTR_BACKLIGHT_DIM, + MP_QSTR_BACKLIGHT_NORMAL, + MP_QSTR_alert, + MP_QSTR_schedule, + MP_QSTR_backlight_fade, + MP_QSTR_sleep_us, + MP_QSTR_wait_until_layout_is_running, + MP_QSTR_takers, + MP_QSTR___init__, + MP_QSTR_repaint, + MP_QSTR_dispatch, + MP_QSTR_on_render, + MP_QSTR_TOUCH_START, + MP_QSTR_on_touch_start, + MP_QSTR_TOUCH_MOVE, + MP_QSTR_on_touch_move, + MP_QSTR_TOUCH_END, + MP_QSTR_on_touch_end, + MP_QSTR_BUTTON_PRESSED, + MP_QSTR_on_button_pressed, + MP_QSTR_BUTTON_RELEASED, + MP_QSTR_on_button_released, + MP_QSTR_value, + MP_QSTR___iter__, + MP_QSTR_put, + MP_QSTR_race, + MP_QSTR_take, + MP_QSTR_create_tasks, + MP_QSTR_handle_input, + MP_QSTR_handle_rendering, + MP_QSTR_wait, + MP_QSTR_TOUCH, + MP_QSTR_idle_timer, + MP_QSTR_touch, + MP_QSTR_BUTTON, + MP_QSTR__before_render, + MP_QSTR_BACKLIGHT_NONE, + MP_QSTR_clear, + MP_QSTR_BACKLIGHT_LEVEL, + MP_QSTR_RENDER_SLEEP, + MP_QSTR_display, + MP_QSTR_NORMAL, + MP_QSTR_BOLD, + MP_QSTR_DEMIBOLD, + MP_QSTR_MONO, + MP_QSTR_layout_chan, + MP_QSTR__alert_in_progress, + MP_QSTR_RENDER, + MP_QSTR_REPAINT, + MP_QSTR_Exception, + MP_QSTR_count, + MP_QSTR_val, + MP_QSTR_delay, + MP_QSTR_step, + MP_QSTR_range, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR___await__, + MP_QSTR_ValueError, + MP_QSTR_self, + MP_QSTR_event, + MP_QSTR_x, + MP_QSTR_y, + MP_QSTR_button_number, + MP_QSTR_super, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_trezor_ui___init___0 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_T1B1), + MP_ROM_QSTR(MP_QSTR_T2B1), +}}; +static const mp_rom_obj_tuple_t const_obj_trezor_ui___init___1 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_T2T1), + MP_ROM_QSTR(MP_QSTR_D001), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_ui___init__[3] = { + MP_ROM_PTR(&const_obj_trezor_ui___init___0), + MP_ROM_PTR(&const_obj_trezor_ui___init___1), + MP_ROM_QSTR(MP_QSTR_Unknown_space_Trezor_space_model), +}; + +static const mp_frozen_module_t frozen_module_trezor_ui___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_ui___init__, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_ui___init__, + }, + .rc = &raw_code_trezor_ui___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_ui_style +// - original source file: build/firmware/src/trezor/ui/style.mpy +// - frozen file name: trezor/ui/style.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/ui/style.py, scope trezor_ui_style__lt_module_gt_ +static const byte fun_data_trezor_ui_style__lt_module_gt_[41] = { + 0x08,0x0c, // prelude + 0x01, // names: + 0x6c,0x25,0x23,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x22,0x81,0x16, // LOAD_CONST_SMALL_INT 150 + 0x16,0x04, // STORE_NAME 'BACKLIGHT_NORMAL' + 0xad, // LOAD_CONST_SMALL_INT 45 + 0x16,0x05, // STORE_NAME 'BACKLIGHT_LOW' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x16,0x06, // STORE_NAME 'BACKLIGHT_DIM' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x07, // STORE_NAME 'BACKLIGHT_NONE' + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0x16,0x08, // STORE_NAME 'BACKLIGHT_MAX' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_style__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_style__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_ui_style__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_ui_style__lt_module_gt_ + 8, + .opcodes = fun_data_trezor_ui_style__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_ui_style[9] = { + MP_QSTR_trezor_slash_ui_slash_style_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_BACKLIGHT_NORMAL, + MP_QSTR_BACKLIGHT_LOW, + MP_QSTR_BACKLIGHT_DIM, + MP_QSTR_BACKLIGHT_NONE, + MP_QSTR_BACKLIGHT_MAX, +}; + +static const mp_frozen_module_t frozen_module_trezor_ui_style = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_ui_style, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_ui_style__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_ui_layouts___init__ +// - original source file: build/firmware/src/trezor/ui/layouts/__init__.mpy +// - frozen file name: trezor/ui/layouts/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/ui/layouts/__init__.py, scope trezor_ui_layouts___init____lt_module_gt_ +static const byte fun_data_trezor_ui_layouts___init____lt_module_gt_[37] = { + 0x08,0x0a, // prelude + 0x01, // names: + 0x4c,0x68,0x20,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'utils' + 0x16,0x02, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING '*' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'common' + 0x69, // IMPORT_STAR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING '*' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'tt' + 0x69, // IMPORT_STAR + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_ui_layouts___init____lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_ui_layouts___init____lt_module_gt_ + 7, + .opcodes = fun_data_trezor_ui_layouts___init____lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_ui_layouts___init__[7] = { + MP_QSTR_trezor_slash_ui_slash_layouts_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR__star_, + MP_QSTR_common, + MP_QSTR_tt, +}; + +static const mp_frozen_module_t frozen_module_trezor_ui_layouts___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_ui_layouts___init__, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_ui_layouts___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_ui_layouts_common +// - original source file: build/firmware/src/trezor/ui/layouts/common.mpy +// - frozen file name: trezor/ui/layouts/common.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/ui/layouts/common.py, scope trezor_ui_layouts_common__lt_module_gt_ +static const byte fun_data_trezor_ui_layouts_common__lt_module_gt_[99] = { + 0x10,0x18, // prelude + 0x01, // names: + 0x40,0x32,0x2c,0x32,0x4c,0x80,0x0c,0x40,0x8c,0x09,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'log' + 0x10,0x03, // LOAD_CONST_STRING 'workflow' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x04, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'log' + 0x16,0x02, // STORE_NAME 'log' + 0x1c,0x03, // IMPORT_FROM 'workflow' + 0x16,0x03, // STORE_NAME 'workflow' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.enums' + 0x1c,0x05, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x05, // STORE_NAME 'ButtonRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'ButtonAck' + 0x10,0x08, // LOAD_CONST_STRING 'ButtonRequest' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x09, // IMPORT_NAME 'trezor.messages' + 0x1c,0x07, // IMPORT_FROM 'ButtonAck' + 0x16,0x07, // STORE_NAME 'ButtonAck' + 0x1c,0x08, // IMPORT_FROM 'ButtonRequest' + 0x16,0x08, // STORE_NAME 'ButtonRequest' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'context' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'trezor.wire' + 0x1c,0x0a, // IMPORT_FROM 'context' + 0x16,0x0a, // STORE_NAME 'context' + 0x59, // POP_TOP + 0x11,0x05, // LOAD_NAME 'ButtonRequestType' + 0x13,0x0c, // LOAD_ATTR 'Other' + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x0d, // STORE_NAME 'button_request' + 0x11,0x05, // LOAD_NAME 'ButtonRequestType' + 0x13,0x0c, // LOAD_ATTR 'Other' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x12, // STORE_NAME 'interact' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_common__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/common.py, scope trezor_ui_layouts_common_button_request +static const byte fun_data_trezor_ui_layouts_common_button_request[44] = { + 0xcb,0xc0,0x01,0x10, // prelude + 0x0d,0x15,0x10,0x11, // names: button_request, br_type, code, pages + 0x80,0x18,0x40,0x27, // code info + 0x12,0x03, // LOAD_GLOBAL 'workflow' + 0x14,0x0e, // LOAD_METHOD 'close_others' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'context' + 0x14,0x0f, // LOAD_METHOD 'maybe_call' + 0x12,0x08, // LOAD_GLOBAL 'ButtonRequest' + 0x10,0x10, // LOAD_CONST_STRING 'code' + 0xb1, // LOAD_FAST 1 + 0x10,0x11, // LOAD_CONST_STRING 'pages' + 0xb2, // LOAD_FAST 2 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x12,0x07, // LOAD_GLOBAL 'ButtonAck' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_common_button_request = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui_layouts_common_button_request, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 13, + .line_info = fun_data_trezor_ui_layouts_common_button_request + 8, + .line_info_top = fun_data_trezor_ui_layouts_common_button_request + 12, + .opcodes = fun_data_trezor_ui_layouts_common_button_request + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_common__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/common.py, scope trezor_ui_layouts_common_interact +static const byte fun_data_trezor_ui_layouts_common_interact[61] = { + 0xbb,0x41,0x14, // prelude + 0x12,0x16,0x15,0x17, // names: interact, layout, br_type, br_code + 0x80,0x23,0x22,0x52,0x26,0x2b, // code info + 0x51, // LOAD_CONST_NONE + 0xc3, // STORE_FAST 3 + 0x12,0x18, // LOAD_GLOBAL 'hasattr' + 0xb0, // LOAD_FAST 0 + 0x10,0x13, // LOAD_CONST_STRING 'page_count' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb0, // LOAD_FAST 0 + 0x14,0x13, // LOAD_METHOD 'page_count' + 0x36,0x00, // CALL_METHOD 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb0, // LOAD_FAST 0 + 0x14,0x13, // LOAD_METHOD 'page_count' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0x12,0x0d, // LOAD_GLOBAL 'button_request' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'context' + 0x14,0x14, // LOAD_METHOD 'wait' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_common_interact = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui_layouts_common_interact, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 61, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 18, + .line_info = fun_data_trezor_ui_layouts_common_interact + 7, + .line_info_top = fun_data_trezor_ui_layouts_common_interact + 13, + .opcodes = fun_data_trezor_ui_layouts_common_interact + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_common__lt_module_gt_[] = { + &raw_code_trezor_ui_layouts_common_button_request, + &raw_code_trezor_ui_layouts_common_interact, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_common__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_common__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 99, + #endif + .children = (void *)&children_trezor_ui_layouts_common__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_ui_layouts_common__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_ui_layouts_common__lt_module_gt_ + 14, + .opcodes = fun_data_trezor_ui_layouts_common__lt_module_gt_ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_ui_layouts_common[25] = { + MP_QSTR_trezor_slash_ui_slash_layouts_slash_common_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_log, + MP_QSTR_workflow, + MP_QSTR_trezor, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_ButtonAck, + MP_QSTR_ButtonRequest, + MP_QSTR_trezor_dot_messages, + MP_QSTR_context, + MP_QSTR_trezor_dot_wire, + MP_QSTR_Other, + MP_QSTR_button_request, + MP_QSTR_close_others, + MP_QSTR_maybe_call, + MP_QSTR_code, + MP_QSTR_pages, + MP_QSTR_interact, + MP_QSTR_page_count, + MP_QSTR_wait, + MP_QSTR_br_type, + MP_QSTR_layout, + MP_QSTR_br_code, + MP_QSTR_hasattr, +}; + +static const mp_frozen_module_t frozen_module_trezor_ui_layouts_common = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_ui_layouts_common, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_ui_layouts_common__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_ui_layouts_fido +// - original source file: build/firmware/src/trezor/ui/layouts/fido.mpy +// - frozen file name: trezor/ui/layouts/fido.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/ui/layouts/fido.py, scope trezor_ui_layouts_fido__lt_module_gt_ +static const byte fun_data_trezor_ui_layouts_fido__lt_module_gt_[27] = { + 0x08,0x06, // prelude + 0x01, // names: + 0x4c,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'utils' + 0x16,0x02, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING '*' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'tt.fido' + 0x69, // IMPORT_STAR + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_fido__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_fido__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_ui_layouts_fido__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_ui_layouts_fido__lt_module_gt_ + 5, + .opcodes = fun_data_trezor_ui_layouts_fido__lt_module_gt_ + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_ui_layouts_fido[6] = { + MP_QSTR_trezor_slash_ui_slash_layouts_slash_fido_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR__star_, + MP_QSTR_tt_dot_fido, +}; + +static const mp_frozen_module_t frozen_module_trezor_ui_layouts_fido = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_ui_layouts_fido, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_ui_layouts_fido__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_ui_layouts_homescreen +// - original source file: build/firmware/src/trezor/ui/layouts/homescreen.mpy +// - frozen file name: trezor/ui/layouts/homescreen.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/ui/layouts/homescreen.py, scope trezor_ui_layouts_homescreen__lt_module_gt_ +static const byte fun_data_trezor_ui_layouts_homescreen__lt_module_gt_[27] = { + 0x08,0x06, // prelude + 0x01, // names: + 0x4c,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'utils' + 0x16,0x02, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING '*' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'tt.homescreen' + 0x69, // IMPORT_STAR + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_homescreen__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_homescreen__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_ui_layouts_homescreen__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_ui_layouts_homescreen__lt_module_gt_ + 5, + .opcodes = fun_data_trezor_ui_layouts_homescreen__lt_module_gt_ + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_ui_layouts_homescreen[6] = { + MP_QSTR_trezor_slash_ui_slash_layouts_slash_homescreen_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR__star_, + MP_QSTR_tt_dot_homescreen, +}; + +static const mp_frozen_module_t frozen_module_trezor_ui_layouts_homescreen = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_ui_layouts_homescreen, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_ui_layouts_homescreen__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_ui_layouts_progress +// - original source file: build/firmware/src/trezor/ui/layouts/progress.mpy +// - frozen file name: trezor/ui/layouts/progress.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/ui/layouts/progress.py, scope trezor_ui_layouts_progress__lt_module_gt_ +static const byte fun_data_trezor_ui_layouts_progress__lt_module_gt_[27] = { + 0x08,0x06, // prelude + 0x01, // names: + 0x4c,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'utils' + 0x16,0x02, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING '*' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'tt.progress' + 0x69, // IMPORT_STAR + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_progress__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_progress__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_ui_layouts_progress__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_ui_layouts_progress__lt_module_gt_ + 5, + .opcodes = fun_data_trezor_ui_layouts_progress__lt_module_gt_ + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_ui_layouts_progress[6] = { + MP_QSTR_trezor_slash_ui_slash_layouts_slash_progress_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR__star_, + MP_QSTR_tt_dot_progress, +}; + +static const mp_frozen_module_t frozen_module_trezor_ui_layouts_progress = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_ui_layouts_progress, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_ui_layouts_progress__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_ui_layouts_recovery +// - original source file: build/firmware/src/trezor/ui/layouts/recovery.mpy +// - frozen file name: trezor/ui/layouts/recovery.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/ui/layouts/recovery.py, scope trezor_ui_layouts_recovery__lt_module_gt_ +static const byte fun_data_trezor_ui_layouts_recovery__lt_module_gt_[27] = { + 0x08,0x06, // prelude + 0x01, // names: + 0x4c,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'utils' + 0x16,0x02, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING '*' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'tt.recovery' + 0x69, // IMPORT_STAR + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_recovery__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_recovery__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_ui_layouts_recovery__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_ui_layouts_recovery__lt_module_gt_ + 5, + .opcodes = fun_data_trezor_ui_layouts_recovery__lt_module_gt_ + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_ui_layouts_recovery[6] = { + MP_QSTR_trezor_slash_ui_slash_layouts_slash_recovery_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR__star_, + MP_QSTR_tt_dot_recovery, +}; + +static const mp_frozen_module_t frozen_module_trezor_ui_layouts_recovery = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_ui_layouts_recovery, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_ui_layouts_recovery__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_ui_layouts_reset +// - original source file: build/firmware/src/trezor/ui/layouts/reset.mpy +// - frozen file name: trezor/ui/layouts/reset.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/ui/layouts/reset.py, scope trezor_ui_layouts_reset__lt_module_gt_ +static const byte fun_data_trezor_ui_layouts_reset__lt_module_gt_[27] = { + 0x08,0x06, // prelude + 0x01, // names: + 0x4c,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'utils' + 0x16,0x02, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING '*' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'tt.reset' + 0x69, // IMPORT_STAR + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_reset__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_reset__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_ui_layouts_reset__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_ui_layouts_reset__lt_module_gt_ + 5, + .opcodes = fun_data_trezor_ui_layouts_reset__lt_module_gt_ + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_ui_layouts_reset[6] = { + MP_QSTR_trezor_slash_ui_slash_layouts_slash_reset_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR__star_, + MP_QSTR_tt_dot_reset, +}; + +static const mp_frozen_module_t frozen_module_trezor_ui_layouts_reset = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_ui_layouts_reset, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_ui_layouts_reset__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_ui_layouts_tt___init__ +// - original source file: build/firmware/src/trezor/ui/layouts/tt/__init__.mpy +// - frozen file name: trezor/ui/layouts/tt/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init____lt_module_gt_ +static const byte fun_data_trezor_ui_layouts_tt___init____lt_module_gt_[748] = { + 0x48,0xfa,0x02, // prelude + 0x01, // names: + 0x40,0x26,0x38,0x2c,0x2c,0x4d,0x52,0x80,0x08,0x47,0x26,0x26,0x66,0x60,0x60,0x8d,0xbb,0x84,0x0d,0x89,0x07,0x74,0x80,0x28,0x89,0x1a,0x88,0x17,0x84,0x21,0x88,0x19,0x84,0x11,0x7f,0x80,0x07,0x25,0x4a,0x8f,0x45,0x6e,0x60,0x8e,0x0f,0x8c,0x16,0x63,0x40,0x8b,0x11,0x8a,0x16,0x62,0x40,0x8e,0x39,0x84,0x1d,0x8f,0x26,0x84,0x27,0x71,0x80,0x24,0x8e,0x11,0x8c,0x11,0x8e,0x11,0x7b,0x80,0x24,0x61,0x40,0x8c,0x14,0x63,0x40,0x22,0x65,0x8b,0x1a,0x62,0x60,0x8b,0x25,0x85,0x12,0x61,0x40,0x8f,0x10,0x85,0x0b,0x85,0x31,0x85,0x17,0x89,0x1c,0x85,0x10,0x85,0x0c,0x85,0x1b,0x75,0x80,0x16,0x85,0x09,0x85,0x0f,0x89,0x21,0x89,0x07,0x89,0x0d,0x85,0x09, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'trezorui2' + 0x16,0x02, // STORE_NAME 'trezorui2' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'io' + 0x10,0x04, // LOAD_CONST_STRING 'loop' + 0x10,0x05, // LOAD_CONST_STRING 'ui' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x03, // IMPORT_FROM 'io' + 0x16,0x03, // STORE_NAME 'io' + 0x1c,0x04, // IMPORT_FROM 'loop' + 0x16,0x04, // STORE_NAME 'loop' + 0x1c,0x05, // IMPORT_FROM 'ui' + 0x16,0x05, // STORE_NAME 'ui' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.enums' + 0x1c,0x07, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x07, // STORE_NAME 'ButtonRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'ActionCancelled' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.wire' + 0x1c,0x09, // IMPORT_FROM 'ActionCancelled' + 0x16,0x09, // STORE_NAME 'ActionCancelled' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'wait' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x0b, // IMPORT_FROM 'wait' + 0x16,0x81,0x5d, // STORE_NAME 'ctx_wait' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x0d, // LOAD_CONST_STRING 'button_request' + 0x10,0x0e, // LOAD_CONST_STRING 'interact' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0f, // IMPORT_NAME 'common' + 0x1c,0x0d, // IMPORT_FROM 'button_request' + 0x16,0x0d, // STORE_NAME 'button_request' + 0x1c,0x0e, // IMPORT_FROM 'interact' + 0x16,0x0e, // STORE_NAME 'interact' + 0x59, // POP_TOP + 0x11,0x07, // LOAD_NAME 'ButtonRequestType' + 0x13,0x10, // LOAD_ATTR 'Other' + 0x16,0x81,0x5e, // STORE_NAME 'BR_TYPE_OTHER' + 0x11,0x02, // LOAD_NAME 'trezorui2' + 0x13,0x11, // LOAD_ATTR 'CONFIRMED' + 0x16,0x11, // STORE_NAME 'CONFIRMED' + 0x11,0x02, // LOAD_NAME 'trezorui2' + 0x13,0x12, // LOAD_ATTR 'CANCELLED' + 0x16,0x12, // STORE_NAME 'CANCELLED' + 0x11,0x02, // LOAD_NAME 'trezorui2' + 0x13,0x13, // LOAD_ATTR 'INFO' + 0x16,0x13, // STORE_NAME 'INFO' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x14, // LOAD_CONST_STRING 'RustLayout' + 0x11,0x05, // LOAD_NAME 'ui' + 0x13,0x15, // LOAD_ATTR 'Layout' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x14, // STORE_NAME 'RustLayout' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x3c, // STORE_NAME 'draw_simple' + 0x11,0x09, // LOAD_NAME 'ActionCancelled' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x46, // STORE_NAME 'raise_if_not_confirmed' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x11,0x09, // LOAD_NAME 'ActionCancelled' + 0x11,0x81,0x5e, // LOAD_NAME 'BR_TYPE_OTHER' + 0x2a,0x0a, // BUILD_TUPLE 10 + 0x53, // LOAD_NULL + 0x33,0x03, // MAKE_FUNCTION_DEFARGS 3 + 0x16,0x47, // STORE_NAME 'confirm_action' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x04, // MAKE_FUNCTION_DEFARGS 4 + 0x16,0x4f, // STORE_NAME 'confirm_single' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x05, // MAKE_FUNCTION_DEFARGS 5 + 0x16,0x55, // STORE_NAME 'confirm_reset_device' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x57, // STORE_NAME 'prompt_backup' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x07, // MAKE_FUNCTION_DEFARGS 7 + 0x16,0x5c, // STORE_NAME 'confirm_path_warning' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x61, // STORE_NAME 'confirm_homescreen' + 0x53, // LOAD_NULL + 0x2c,0x00, // BUILD_MAP 0 + 0x51, // LOAD_CONST_NONE + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0x62, // STORE_MAP + 0x51, // LOAD_CONST_NONE + 0x10,0x17, // LOAD_CONST_STRING 'address_qr' + 0x62, // STORE_MAP + 0x52, // LOAD_CONST_TRUE + 0x10,0x18, // LOAD_CONST_STRING 'case_sensitive' + 0x62, // STORE_MAP + 0x51, // LOAD_CONST_NONE + 0x10,0x19, // LOAD_CONST_STRING 'path' + 0x62, // STORE_MAP + 0x51, // LOAD_CONST_NONE + 0x10,0x1a, // LOAD_CONST_STRING 'account' + 0x62, // STORE_MAP + 0x51, // LOAD_CONST_NONE + 0x10,0x1b, // LOAD_CONST_STRING 'network' + 0x62, // STORE_MAP + 0x51, // LOAD_CONST_NONE + 0x10,0x1c, // LOAD_CONST_STRING 'multisig_index' + 0x62, // STORE_MAP + 0x2a,0x00, // BUILD_TUPLE 0 + 0x10,0x1d, // LOAD_CONST_STRING 'xpubs' + 0x62, // STORE_MAP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x10,0x1e, // LOAD_CONST_STRING 'mismatch_title' + 0x62, // STORE_MAP + 0x10,0x1f, // LOAD_CONST_STRING 'show_address' + 0x10,0x20, // LOAD_CONST_STRING 'br_type' + 0x62, // STORE_MAP + 0x11,0x07, // LOAD_NAME 'ButtonRequestType' + 0x13,0x21, // LOAD_ATTR 'Address' + 0x10,0x22, // LOAD_CONST_STRING 'br_code' + 0x62, // STORE_MAP + 0x50, // LOAD_CONST_FALSE + 0x10,0x23, // LOAD_CONST_STRING 'chunkify' + 0x62, // STORE_MAP + 0x33,0x09, // MAKE_FUNCTION_DEFARGS 9 + 0x16,0x1f, // STORE_NAME 'show_address' + 0x10,0x24, // LOAD_CONST_STRING 'Public key' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x2c,0x00, // BUILD_MAP 0 + 0x51, // LOAD_CONST_NONE + 0x10,0x1a, // LOAD_CONST_STRING 'account' + 0x62, // STORE_MAP + 0x51, // LOAD_CONST_NONE + 0x10,0x19, // LOAD_CONST_STRING 'path' + 0x62, // STORE_MAP + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x10,0x1e, // LOAD_CONST_STRING 'mismatch_title' + 0x62, // STORE_MAP + 0x10,0x25, // LOAD_CONST_STRING 'show_pubkey' + 0x10,0x20, // LOAD_CONST_STRING 'br_type' + 0x62, // STORE_MAP + 0x33,0x0a, // MAKE_FUNCTION_DEFARGS 10 + 0x16,0x25, // STORE_NAME 'show_pubkey' + 0x51, // LOAD_CONST_NONE + 0x10,0x26, // LOAD_CONST_STRING 'TRY AGAIN' + 0x11,0x09, // LOAD_NAME 'ActionCancelled' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x53, // LOAD_NULL + 0x33,0x0b, // MAKE_FUNCTION_DEFARGS 11 + 0x16,0x6d, // STORE_NAME 'show_error_and_raise' + 0x51, // LOAD_CONST_NONE + 0x10,0x27, // LOAD_CONST_STRING 'CONTINUE' + 0x11,0x07, // LOAD_NAME 'ButtonRequestType' + 0x13,0x28, // LOAD_ATTR 'Warning' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x53, // LOAD_NULL + 0x33,0x0c, // MAKE_FUNCTION_DEFARGS 12 + 0x16,0x5e, // STORE_NAME 'show_warning' + 0x51, // LOAD_CONST_NONE + 0x10,0x27, // LOAD_CONST_STRING 'CONTINUE' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x0d, // MAKE_FUNCTION_DEFARGS 13 + 0x16,0x70, // STORE_NAME 'show_success' + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x11,0x07, // LOAD_NAME 'ButtonRequestType' + 0x13,0x29, // LOAD_ATTR 'ConfirmOutput' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x2a,0x06, // BUILD_TUPLE 6 + 0x53, // LOAD_NULL + 0x33,0x0e, // MAKE_FUNCTION_DEFARGS 14 + 0x16,0x72, // STORE_NAME 'confirm_output' + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x16,0x79, // STORE_NAME 'confirm_payment_request' + 0x10,0x2a, // LOAD_CONST_STRING 'Show all' + 0x10,0x2b, // LOAD_CONST_STRING 'should_show_more' + 0x11,0x81,0x5e, // LOAD_NAME 'BR_TYPE_OTHER' + 0x51, // LOAD_CONST_NONE + 0x2a,0x04, // BUILD_TUPLE 4 + 0x53, // LOAD_NULL + 0x33,0x10, // MAKE_FUNCTION_DEFARGS 16 + 0x16,0x2b, // STORE_NAME 'should_show_more' + 0x32,0x11, // MAKE_FUNCTION 17 + 0x16,0x7f, // STORE_NAME '_confirm_ask_pagination' + 0x51, // LOAD_CONST_NONE + 0x10,0x2c, // LOAD_CONST_STRING 'CONFIRM' + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x11,0x81,0x5e, // LOAD_NAME 'BR_TYPE_OTHER' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x06, // BUILD_TUPLE 6 + 0x53, // LOAD_NULL + 0x33,0x12, // MAKE_FUNCTION_DEFARGS 18 + 0x16,0x81,0x08, // STORE_NAME 'confirm_blob' + 0x10,0x2d, // LOAD_CONST_STRING 'Address:' + 0x10,0x2e, // LOAD_CONST_STRING 'confirm_address' + 0x11,0x81,0x5e, // LOAD_NAME 'BR_TYPE_OTHER' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x53, // LOAD_NULL + 0x33,0x13, // MAKE_FUNCTION_DEFARGS 19 + 0x16,0x2e, // STORE_NAME 'confirm_address' + 0x51, // LOAD_CONST_NONE + 0x11,0x81,0x5e, // LOAD_NAME 'BR_TYPE_OTHER' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x14, // MAKE_FUNCTION_DEFARGS 20 + 0x16,0x81,0x09, // STORE_NAME 'confirm_text' + 0x10,0x2f, // LOAD_CONST_STRING 'Amount:' + 0x10,0x30, // LOAD_CONST_STRING 'confirm_amount' + 0x11,0x81,0x5e, // LOAD_NAME 'BR_TYPE_OTHER' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x53, // LOAD_NULL + 0x33,0x15, // MAKE_FUNCTION_DEFARGS 21 + 0x16,0x30, // STORE_NAME 'confirm_amount' + 0x11,0x81,0x5e, // LOAD_NAME 'BR_TYPE_OTHER' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x2c,0x00, // BUILD_MAP 0 + 0x51, // LOAD_CONST_NONE + 0x10,0x31, // LOAD_CONST_STRING 'verb' + 0x62, // STORE_MAP + 0x51, // LOAD_CONST_NONE + 0x10,0x32, // LOAD_CONST_STRING 'subtitle' + 0x62, // STORE_MAP + 0x50, // LOAD_CONST_FALSE + 0x10,0x33, // LOAD_CONST_STRING 'hold' + 0x62, // STORE_MAP + 0x50, // LOAD_CONST_FALSE + 0x10,0x34, // LOAD_CONST_STRING 'info_button' + 0x62, // STORE_MAP + 0x33,0x16, // MAKE_FUNCTION_DEFARGS 22 + 0x16,0x77, // STORE_NAME 'confirm_value' + 0x50, // LOAD_CONST_FALSE + 0x11,0x07, // LOAD_NAME 'ButtonRequestType' + 0x13,0x29, // LOAD_ATTR 'ConfirmOutput' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x17, // MAKE_FUNCTION_DEFARGS 23 + 0x16,0x81,0x0a, // STORE_NAME 'confirm_properties' + 0x51, // LOAD_CONST_NONE + 0x10,0x35, // LOAD_CONST_STRING 'SUMMARY' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x51, // LOAD_CONST_NONE + 0x10,0x36, // LOAD_CONST_STRING 'confirm_total' + 0x11,0x07, // LOAD_NAME 'ButtonRequestType' + 0x13,0x37, // LOAD_ATTR 'SignTx' + 0x2a,0x07, // BUILD_TUPLE 7 + 0x53, // LOAD_NULL + 0x33,0x18, // MAKE_FUNCTION_DEFARGS 24 + 0x16,0x36, // STORE_NAME 'confirm_total' + 0x10,0x38, // LOAD_CONST_STRING 'confirm_ethereum_tx' + 0x11,0x07, // LOAD_NAME 'ButtonRequestType' + 0x13,0x37, // LOAD_ATTR 'SignTx' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x19, // MAKE_FUNCTION_DEFARGS 25 + 0x16,0x38, // STORE_NAME 'confirm_ethereum_tx' + 0x32,0x1a, // MAKE_FUNCTION 26 + 0x16,0x81,0x10, // STORE_NAME 'confirm_joint_total' + 0x51, // LOAD_CONST_NONE + 0x11,0x07, // LOAD_NAME 'ButtonRequestType' + 0x13,0x37, // LOAD_ATTR 'SignTx' + 0x50, // LOAD_CONST_FALSE + 0x10,0x27, // LOAD_CONST_STRING 'CONTINUE' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x53, // LOAD_NULL + 0x33,0x1b, // MAKE_FUNCTION_DEFARGS 27 + 0x16,0x81,0x11, // STORE_NAME 'confirm_metadata' + 0x32,0x1c, // MAKE_FUNCTION 28 + 0x16,0x81,0x13, // STORE_NAME 'confirm_replacement' + 0x32,0x1d, // MAKE_FUNCTION 29 + 0x16,0x81,0x14, // STORE_NAME 'confirm_modify_output' + 0x32,0x1e, // MAKE_FUNCTION 30 + 0x16,0x81,0x18, // STORE_NAME 'with_info' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x1f, // MAKE_FUNCTION_DEFARGS 31 + 0x16,0x81,0x19, // STORE_NAME 'confirm_modify_fee' + 0x32,0x20, // MAKE_FUNCTION 32 + 0x16,0x81,0x1e, // STORE_NAME 'confirm_coinjoin' + 0x32,0x21, // MAKE_FUNCTION 33 + 0x16,0x81,0x21, // STORE_NAME 'confirm_sign_identity' + 0x32,0x22, // MAKE_FUNCTION 34 + 0x16,0x81,0x24, // STORE_NAME 'confirm_signverify' + 0x51, // LOAD_CONST_NONE + 0x10,0x39, // LOAD_CONST_STRING '' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2c,0x00, // BUILD_MAP 0 + 0x10,0x39, // LOAD_CONST_STRING '' + 0x10,0x3a, // LOAD_CONST_STRING 'button' + 0x62, // STORE_MAP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3b, // LOAD_CONST_STRING 'timeout_ms' + 0x62, // STORE_MAP + 0x33,0x23, // MAKE_FUNCTION_DEFARGS 35 + 0x16,0x81,0x25, // STORE_NAME 'show_error_popup' + 0x32,0x24, // MAKE_FUNCTION 36 + 0x16,0x81,0x28, // STORE_NAME 'request_passphrase_on_host' + 0x32,0x25, // MAKE_FUNCTION 37 + 0x16,0x81,0x2a, // STORE_NAME 'request_passphrase_on_device' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x26, // MAKE_FUNCTION_DEFARGS 38 + 0x16,0x81,0x2f, // STORE_NAME 'request_pin_on_device' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x27, // MAKE_FUNCTION_DEFARGS 39 + 0x16,0x81,0x36, // STORE_NAME 'confirm_reenter_pin' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x28, // MAKE_FUNCTION_DEFARGS 40 + 0x16,0x81,0x37, // STORE_NAME 'pin_mismatch_popup' + 0x32,0x29, // MAKE_FUNCTION 41 + 0x16,0x81,0x3b, // STORE_NAME 'wipe_code_same_as_pin_popup' + 0x11,0x81,0x5e, // LOAD_NAME 'BR_TYPE_OTHER' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x2a, // MAKE_FUNCTION_DEFARGS 42 + 0x16,0x81,0x3c, // STORE_NAME 'confirm_set_new_pin' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___RustLayout +static const byte fun_data_trezor_ui_layouts_tt___init___RustLayout[78] = { + 0x00,0x26, // prelude + 0x14, // names: RustLayout + 0x8b,0x21,0x65,0x40,0x65,0x65,0x20,0x85,0x09,0x80,0x68,0x65,0x85,0x1c,0x85,0x10,0x85,0x09, // code info + 0x11,0x81,0x5f, // LOAD_NAME '__name__' + 0x16,0x81,0x60, // STORE_NAME '__module__' + 0x10,0x14, // LOAD_CONST_STRING 'RustLayout' + 0x16,0x81,0x61, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x3f, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x81,0x43, // STORE_NAME 'set_timer' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x81,0x07, // STORE_NAME 'request_complete_repaint' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x81,0x45, // STORE_NAME '_paint' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x81,0x49, // STORE_NAME 'create_tasks' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x81,0x4c, // STORE_NAME '_first_paint' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x81,0x4b, // STORE_NAME 'handle_input_and_rendering' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x81,0x4a, // STORE_NAME 'handle_timers' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x66, // STORE_NAME 'page_count' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt___init___RustLayout +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___RustLayout___init__ +static const byte fun_data_trezor_ui_layouts_tt___init___RustLayout___init__[43] = { + 0x22,0x14, // prelude + 0x81,0x3f,0x82,0x0f,0x81,0x40, // names: __init__, self, layout + 0x80,0x22,0x25,0x2b, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x40, // STORE_ATTR 'layout' + 0x12,0x04, // LOAD_GLOBAL 'loop' + 0x14,0x81,0x41, // LOAD_METHOD 'Timer' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x42, // STORE_ATTR 'timer' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x40, // LOAD_ATTR 'layout' + 0x14,0x3d, // LOAD_METHOD 'attach_timer_fn' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x43, // LOAD_ATTR 'set_timer' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___RustLayout___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt___init___RustLayout___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 191, + .line_info = fun_data_trezor_ui_layouts_tt___init___RustLayout___init__ + 8, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___RustLayout___init__ + 12, + .opcodes = fun_data_trezor_ui_layouts_tt___init___RustLayout___init__ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init___RustLayout +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___RustLayout_set_timer +static const byte fun_data_trezor_ui_layouts_tt___init___RustLayout_set_timer[26] = { + 0x33,0x14, // prelude + 0x81,0x43,0x82,0x0f,0x82,0x10,0x82,0x11, // names: set_timer, self, token, deadline + 0x80,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x42, // LOAD_ATTR 'timer' + 0x14,0x81,0x44, // LOAD_METHOD 'schedule' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___RustLayout_set_timer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui_layouts_tt___init___RustLayout_set_timer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 195, + .line_info = fun_data_trezor_ui_layouts_tt___init___RustLayout_set_timer + 10, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___RustLayout_set_timer + 12, + .opcodes = fun_data_trezor_ui_layouts_tt___init___RustLayout_set_timer + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init___RustLayout +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___RustLayout_request_complete_repaint +static const byte fun_data_trezor_ui_layouts_tt___init___RustLayout_request_complete_repaint[21] = { + 0x19,0x0e, // prelude + 0x81,0x07,0x82,0x0f, // names: request_complete_repaint, self + 0x80,0x2a,0x2a, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x40, // LOAD_ATTR 'layout' + 0x14,0x81,0x07, // LOAD_METHOD 'request_complete_repaint' + 0x36,0x00, // CALL_METHOD 0 + 0xc1, // STORE_FAST 1 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___RustLayout_request_complete_repaint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt___init___RustLayout_request_complete_repaint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 135, + .line_info = fun_data_trezor_ui_layouts_tt___init___RustLayout_request_complete_repaint + 6, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___RustLayout_request_complete_repaint + 9, + .opcodes = fun_data_trezor_ui_layouts_tt___init___RustLayout_request_complete_repaint + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init___RustLayout +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___RustLayout__paint +static const byte fun_data_trezor_ui_layouts_tt___init___RustLayout__paint[56] = { + 0x21,0x14, // prelude + 0x81,0x45,0x82,0x0f, // names: _paint, self + 0x80,0x2e,0x49,0x49,0x27,0x2c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x81,0x46, // IMPORT_NAME 'storage.cache' + 0x13,0x81,0x47, // LOAD_ATTR 'cache' + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x40, // LOAD_ATTR 'layout' + 0x14,0x43, // LOAD_METHOD 'paint' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x14,0x44, // LOAD_METHOD 'refresh' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x48, // LOAD_ATTR 'homescreen_shown' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x48, // STORE_ATTR 'homescreen_shown' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___RustLayout__paint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt___init___RustLayout__paint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 197, + .line_info = fun_data_trezor_ui_layouts_tt___init___RustLayout__paint + 6, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___RustLayout__paint + 12, + .opcodes = fun_data_trezor_ui_layouts_tt___init___RustLayout__paint + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init___RustLayout +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___RustLayout_create_tasks +static const byte fun_data_trezor_ui_layouts_tt___init___RustLayout_create_tasks[23] = { + 0x19,0x0c, // prelude + 0x81,0x49,0x82,0x0f, // names: create_tasks, self + 0x80,0x9f, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x4a, // LOAD_METHOD 'handle_timers' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x4b, // LOAD_METHOD 'handle_input_and_rendering' + 0x36,0x00, // CALL_METHOD 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___RustLayout_create_tasks = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt___init___RustLayout_create_tasks, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 201, + .line_info = fun_data_trezor_ui_layouts_tt___init___RustLayout_create_tasks + 6, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___RustLayout_create_tasks + 8, + .opcodes = fun_data_trezor_ui_layouts_tt___init___RustLayout_create_tasks + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init___RustLayout +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___RustLayout__first_paint +static const byte fun_data_trezor_ui_layouts_tt___init___RustLayout__first_paint[56] = { + 0x19,0x16, // prelude + 0x81,0x4c,0x82,0x0f, // names: _first_paint, self + 0x80,0xa3,0x2e,0x29,0x47,0x80,0x14, // code info + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x14,0x3e, // LOAD_METHOD 'backlight_fade' + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x13,0x3f, // LOAD_ATTR 'style' + 0x13,0x81,0x4d, // LOAD_ATTR 'BACKLIGHT_NONE' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x13,0x41, // LOAD_ATTR 'display' + 0x14,0x42, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x45, // LOAD_METHOD '_paint' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x14,0x3e, // LOAD_METHOD 'backlight_fade' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x4e, // LOAD_ATTR 'BACKLIGHT_LEVEL' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___RustLayout__first_paint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt___init___RustLayout__first_paint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 204, + .line_info = fun_data_trezor_ui_layouts_tt___init___RustLayout__first_paint + 6, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___RustLayout__first_paint + 13, + .opcodes = fun_data_trezor_ui_layouts_tt___init___RustLayout__first_paint + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init___RustLayout +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___RustLayout_handle_input_and_rendering +static const byte fun_data_trezor_ui_layouts_tt___init___RustLayout_handle_input_and_rendering[132] = { + 0xd9,0x40,0x22, // prelude + 0x81,0x4b,0x82,0x0f, // names: handle_input_and_rendering, self + 0x80,0xbe,0x4d,0x2c,0x27,0x40,0x27,0x2a,0x22,0x35,0x2d,0x26,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x4f, // LOAD_CONST_STRING 'workflow' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x81,0x4f, // IMPORT_FROM 'workflow' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'loop' + 0x14,0x0b, // LOAD_METHOD 'wait' + 0x12,0x03, // LOAD_GLOBAL 'io' + 0x13,0x81,0x50, // LOAD_ATTR 'TOUCH' + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x4c, // LOAD_METHOD '_first_paint' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x67, // YIELD_VALUE + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x51, // LOAD_ATTR 'idle_timer' + 0x14,0x81,0x52, // LOAD_METHOD 'touch' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xc6, // STORE_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x12,0x03, // LOAD_GLOBAL 'io' + 0x13,0x81,0x53, // LOAD_ATTR 'TOUCH_START' + 0x12,0x03, // LOAD_GLOBAL 'io' + 0x13,0x81,0x54, // LOAD_ATTR 'TOUCH_MOVE' + 0x12,0x03, // LOAD_GLOBAL 'io' + 0x13,0x81,0x55, // LOAD_ATTR 'TOUCH_END' + 0x2a,0x03, // BUILD_TUPLE 3 + 0xdd, // BINARY_OP 6 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x40, // LOAD_ATTR 'layout' + 0x14,0x81,0x56, // LOAD_METHOD 'touch_event' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x36,0x03, // CALL_METHOD 3 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x14,0x81,0x57, // LOAD_METHOD 'Result' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x45, // LOAD_METHOD '_paint' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0xb2,0x7f, // JUMP -78 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___RustLayout_handle_input_and_rendering = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt___init___RustLayout_handle_input_and_rendering, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 132, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 203, + .line_info = fun_data_trezor_ui_layouts_tt___init___RustLayout_handle_input_and_rendering + 7, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___RustLayout_handle_input_and_rendering + 20, + .opcodes = fun_data_trezor_ui_layouts_tt___init___RustLayout_handle_input_and_rendering + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init___RustLayout +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___RustLayout_handle_timers +static const byte fun_data_trezor_ui_layouts_tt___init___RustLayout_handle_timers[57] = { + 0xa9,0x40,0x16, // prelude + 0x81,0x4a,0x82,0x0f, // names: handle_timers, self + 0x80,0xce,0x40,0x26,0x2b,0x26,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x42, // LOAD_ATTR 'timer' + 0x67, // YIELD_VALUE + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x40, // LOAD_ATTR 'layout' + 0x14,0x81,0x42, // LOAD_METHOD 'timer' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x14,0x81,0x57, // LOAD_METHOD 'Result' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x45, // LOAD_METHOD '_paint' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0x17, // JUMP -41 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___RustLayout_handle_timers = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt___init___RustLayout_handle_timers, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 202, + .line_info = fun_data_trezor_ui_layouts_tt___init___RustLayout_handle_timers + 7, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___RustLayout_handle_timers + 14, + .opcodes = fun_data_trezor_ui_layouts_tt___init___RustLayout_handle_timers + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init___RustLayout +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___RustLayout_page_count +static const byte fun_data_trezor_ui_layouts_tt___init___RustLayout_page_count[16] = { + 0x11,0x0a, // prelude + 0x66,0x82,0x0f, // names: page_count, self + 0x80,0xd7, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x40, // LOAD_ATTR 'layout' + 0x14,0x66, // LOAD_METHOD 'page_count' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___RustLayout_page_count = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt___init___RustLayout_page_count, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 102, + .line_info = fun_data_trezor_ui_layouts_tt___init___RustLayout_page_count + 5, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___RustLayout_page_count + 7, + .opcodes = fun_data_trezor_ui_layouts_tt___init___RustLayout_page_count + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt___init___RustLayout[] = { + &raw_code_trezor_ui_layouts_tt___init___RustLayout___init__, + &raw_code_trezor_ui_layouts_tt___init___RustLayout_set_timer, + &raw_code_trezor_ui_layouts_tt___init___RustLayout_request_complete_repaint, + &raw_code_trezor_ui_layouts_tt___init___RustLayout__paint, + &raw_code_trezor_ui_layouts_tt___init___RustLayout_create_tasks, + &raw_code_trezor_ui_layouts_tt___init___RustLayout__first_paint, + &raw_code_trezor_ui_layouts_tt___init___RustLayout_handle_input_and_rendering, + &raw_code_trezor_ui_layouts_tt___init___RustLayout_handle_timers, + &raw_code_trezor_ui_layouts_tt___init___RustLayout_page_count, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___RustLayout = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt___init___RustLayout, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 78, + #endif + .children = (void *)&children_trezor_ui_layouts_tt___init___RustLayout, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 9, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_trezor_ui_layouts_tt___init___RustLayout + 3, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___RustLayout + 21, + .opcodes = fun_data_trezor_ui_layouts_tt___init___RustLayout + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___draw_simple +static const byte fun_data_trezor_ui_layouts_tt___init___draw_simple[73] = { + 0x21,0x16, // prelude + 0x3c,0x81,0x40, // names: draw_simple, layout + 0x80,0xdc,0x63,0x27,0x2d,0x29,0x26,0x27, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x14,0x3d, // LOAD_METHOD 'attach_timer_fn' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x14,0x3e, // LOAD_METHOD 'backlight_fade' + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x13,0x3f, // LOAD_ATTR 'style' + 0x13,0x40, // LOAD_ATTR 'BACKLIGHT_DIM' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x13,0x41, // LOAD_ATTR 'display' + 0x14,0x42, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x43, // LOAD_METHOD 'paint' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x14,0x44, // LOAD_METHOD 'refresh' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x14,0x3e, // LOAD_METHOD 'backlight_fade' + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x13,0x3f, // LOAD_ATTR 'style' + 0x13,0x45, // LOAD_ATTR 'BACKLIGHT_NORMAL' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt___init___draw_simple +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___draw_simple_dummy_set_timer +static const byte fun_data_trezor_ui_layouts_tt___init___draw_simple_dummy_set_timer[16] = { + 0x12,0x10, // prelude + 0x81,0x58,0x82,0x10,0x82,0x11, // names: dummy_set_timer, token, deadline + 0x80,0xdd, // code info + 0x12,0x82,0x12, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___draw_simple_dummy_set_timer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt___init___draw_simple_dummy_set_timer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 216, + .line_info = fun_data_trezor_ui_layouts_tt___init___draw_simple_dummy_set_timer + 8, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___draw_simple_dummy_set_timer + 10, + .opcodes = fun_data_trezor_ui_layouts_tt___init___draw_simple_dummy_set_timer + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt___init___draw_simple[] = { + &raw_code_trezor_ui_layouts_tt___init___draw_simple_dummy_set_timer, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___draw_simple = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt___init___draw_simple, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 73, + #endif + .children = (void *)&children_trezor_ui_layouts_tt___init___draw_simple, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 60, + .line_info = fun_data_trezor_ui_layouts_tt___init___draw_simple + 5, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___draw_simple + 13, + .opcodes = fun_data_trezor_ui_layouts_tt___init___draw_simple + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___raise_if_not_confirmed +static const byte fun_data_trezor_ui_layouts_tt___init___raise_if_not_confirmed[29] = { + 0xa2,0x41,0x14, // prelude + 0x46,0x81,0x62,0x81,0x63, // names: raise_if_not_confirmed, a, exc + 0x80,0xe8,0x25,0x27,0x22, // code info + 0xb0, // LOAD_FAST 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x12,0x11, // LOAD_GLOBAL 'CONFIRMED' + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb1, // LOAD_FAST 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___raise_if_not_confirmed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt___init___raise_if_not_confirmed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 70, + .line_info = fun_data_trezor_ui_layouts_tt___init___raise_if_not_confirmed + 8, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___raise_if_not_confirmed + 13, + .opcodes = fun_data_trezor_ui_layouts_tt___init___raise_if_not_confirmed + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_action +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_action[132] = { + 0x80,0xe4,0x85,0x80,0x01,0x36, // prelude + 0x47,0x20,0x16,0x4a,0x4b,0x81,0x12,0x31,0x4c,0x33,0x4d,0x4e,0x81,0x63,0x22, // names: confirm_action, br_type, title, action, description, description_param, verb, verb_cancel, hold, hold_danger, reverse, exc, br_code + 0x80,0xfc,0x26,0x26,0x26,0x46,0x2c,0x47,0x22,0x22,0x22,0x26, // code info + 0xb5, // LOAD_FAST 5 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb5, // LOAD_FAST 5 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0xc5, // STORE_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb6, // LOAD_FAST 6 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0xc6, // STORE_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb3, // LOAD_FAST 3 + 0x14,0x49, // LOAD_METHOD 'format' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x12,0x46, // LOAD_GLOBAL 'raise_if_not_confirmed' + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x47, // LOAD_METHOD 'confirm_action' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb1, // LOAD_FAST 1 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x4a, // LOAD_CONST_STRING 'action' + 0xb2, // LOAD_FAST 2 + 0x10,0x4b, // LOAD_CONST_STRING 'description' + 0xb3, // LOAD_FAST 3 + 0x10,0x31, // LOAD_CONST_STRING 'verb' + 0xb5, // LOAD_FAST 5 + 0x10,0x4c, // LOAD_CONST_STRING 'verb_cancel' + 0xb6, // LOAD_FAST 6 + 0x10,0x33, // LOAD_CONST_STRING 'hold' + 0xb7, // LOAD_FAST 7 + 0x10,0x4d, // LOAD_CONST_STRING 'hold_danger' + 0xb8, // LOAD_FAST 8 + 0x10,0x4e, // LOAD_CONST_STRING 'reverse' + 0xb9, // LOAD_FAST 9 + 0x36,0x90,0x00, // CALL_METHOD 2048 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0xbb, // LOAD_FAST 11 + 0x34,0x03, // CALL_FUNCTION 3 + 0xba, // LOAD_FAST 10 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_action = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 12, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_action, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 132, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 33, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 12, + .n_kwonly_args = 0, + .n_def_pos_args = 10, + .qstr_block_name_idx = 71, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_action + 21, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_action + 33, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_action + 33, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_single +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_single[104] = { + 0x91,0xd4,0x01,0x28, // prelude + 0x4f,0x20,0x16,0x4b,0x81,0x12,0x31, // names: confirm_single, br_type, title, description, description_param, verb + 0x90,0x20,0x26,0x26,0x26,0x2c,0x22,0x22,0x22,0x26,0x27,0x71,0x40, // code info + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x39, // LOAD_CONST_STRING '' + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x14,0x50, // LOAD_METHOD 'partition' + 0x10,0x51, // LOAD_CONST_STRING '{}' + 0x36,0x01, // CALL_METHOD 1 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc5, // STORE_FAST 5 + 0xc6, // STORE_FAST 6 + 0xc7, // STORE_FAST 7 + 0x12,0x46, // LOAD_GLOBAL 'raise_if_not_confirmed' + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x52, // LOAD_METHOD 'confirm_emphasized' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb1, // LOAD_FAST 1 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x53, // LOAD_CONST_STRING 'items' + 0xb5, // LOAD_FAST 5 + 0x52, // LOAD_CONST_TRUE + 0xb3, // LOAD_FAST 3 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xb7, // LOAD_FAST 7 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x10,0x31, // LOAD_CONST_STRING 'verb' + 0xb4, // LOAD_FAST 4 + 0x36,0x86,0x00, // CALL_METHOD 768 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x12,0x07, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x54, // LOAD_ATTR 'ProtectCall' + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_single = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_single, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 104, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 79, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_single + 11, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_single + 24, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_single + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_reset_device +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_reset_device[88] = { + 0xda,0x41,0x22, // prelude + 0x55,0x16,0x81,0x64, // names: confirm_reset_device, title, recovery + 0x90,0x34,0x23,0x45,0x43,0x22,0x22,0x22,0x26,0x6d,0x20,0x29,0x49, // code info + 0xb1, // LOAD_FAST 1 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xc2, // STORE_FAST 2 + 0x42,0x43, // JUMP 3 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xc2, // STORE_FAST 2 + 0x12,0x46, // LOAD_GLOBAL 'raise_if_not_confirmed' + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x55, // LOAD_METHOD 'confirm_reset_device' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb0, // LOAD_FAST 0 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x3a, // LOAD_CONST_STRING 'button' + 0xb2, // LOAD_FAST 2 + 0x36,0x84,0x00, // CALL_METHOD 512 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x42,0x42, // JUMP 2 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0xb1, // LOAD_FAST 1 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x12,0x07, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x54, // LOAD_ATTR 'ProtectCall' + 0x42,0x44, // JUMP 4 + 0x12,0x07, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x56, // LOAD_ATTR 'ResetDevice' + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_reset_device = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_reset_device, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 88, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 85, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_reset_device + 7, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_reset_device + 20, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_reset_device + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___prompt_backup +static const byte fun_data_trezor_ui_layouts_tt___init___prompt_backup[127] = { + 0xf0,0x40,0x2a, // prelude + 0x57, // names: prompt_backup + 0x90,0x4b,0x22,0x22,0x4a,0x24,0x6f,0x40,0x22,0x4a,0x26,0x42,0x22,0x22,0x4a,0x24,0x6f,0x40,0x22,0x4a, // code info + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x47, // LOAD_METHOD 'confirm_action' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0x10,0x58, // LOAD_CONST_STRING 'SUCCESS' + 0x10,0x4a, // LOAD_CONST_STRING 'action' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x10,0x4b, // LOAD_CONST_STRING 'description' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x10,0x31, // LOAD_CONST_STRING 'verb' + 0x10,0x59, // LOAD_CONST_STRING 'BACK UP' + 0x10,0x4c, // LOAD_CONST_STRING 'verb_cancel' + 0x10,0x5a, // LOAD_CONST_STRING 'SKIP' + 0x36,0x8a,0x00, // CALL_METHOD 1280 + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x12,0x07, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x56, // LOAD_ATTR 'ResetDevice' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x12,0x11, // LOAD_GLOBAL 'CONFIRMED' + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x47, // LOAD_METHOD 'confirm_action' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0x10,0x5b, // LOAD_CONST_STRING 'WARNING' + 0x10,0x4a, // LOAD_CONST_STRING 'action' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x10,0x4b, // LOAD_CONST_STRING 'description' + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x10,0x31, // LOAD_CONST_STRING 'verb' + 0x10,0x59, // LOAD_CONST_STRING 'BACK UP' + 0x10,0x4c, // LOAD_CONST_STRING 'verb_cancel' + 0x10,0x5a, // LOAD_CONST_STRING 'SKIP' + 0x36,0x8a,0x00, // CALL_METHOD 1280 + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x12,0x07, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x56, // LOAD_ATTR 'ResetDevice' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x12,0x11, // LOAD_GLOBAL 'CONFIRMED' + 0xde, // BINARY_OP 7 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___prompt_backup = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt___init___prompt_backup, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 127, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 87, + .line_info = fun_data_trezor_ui_layouts_tt___init___prompt_backup + 4, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___prompt_backup + 24, + .opcodes = fun_data_trezor_ui_layouts_tt___init___prompt_backup + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_path_warning +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_path_warning[87] = { + 0xfa,0x41,0x22, // prelude + 0x5c,0x19,0x81,0x65, // names: confirm_path_warning, path, path_type + 0x90,0x6f,0x20,0x47,0x24,0x28,0x22,0x22,0x22,0x6c,0x6b,0x20,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x42,0x4b, // JUMP 11 + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x14,0x49, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x14,0x5d, // LOAD_METHOD 'lower' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0x12,0x46, // LOAD_GLOBAL 'raise_if_not_confirmed' + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x5e, // LOAD_METHOD 'show_warning' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb2, // LOAD_FAST 2 + 0x10,0x5f, // LOAD_CONST_STRING 'value' + 0xb0, // LOAD_FAST 0 + 0x10,0x4b, // LOAD_CONST_STRING 'description' + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x10,0x3a, // LOAD_CONST_STRING 'button' + 0x10,0x27, // LOAD_CONST_STRING 'CONTINUE' + 0x36,0x88,0x00, // CALL_METHOD 1024 + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x10,0x22, // LOAD_CONST_STRING 'br_code' + 0x12,0x07, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x60, // LOAD_ATTR 'UnknownDerivationPath' + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_path_warning = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_path_warning, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 87, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 92, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_path_warning + 7, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_path_warning + 20, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_path_warning + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_homescreen +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_homescreen[52] = { + 0xc9,0x40,0x16, // prelude + 0x61,0x62, // names: confirm_homescreen, image + 0x90,0x87,0x22,0x22,0x22,0x26,0x6a,0x20,0x22, // code info + 0x12,0x46, // LOAD_GLOBAL 'raise_if_not_confirmed' + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x61, // LOAD_METHOD 'confirm_homescreen' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x10,0x62, // LOAD_CONST_STRING 'image' + 0xb0, // LOAD_FAST 0 + 0x36,0x84,0x00, // CALL_METHOD 512 + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x12,0x07, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x54, // LOAD_ATTR 'ProtectCall' + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_homescreen = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_homescreen, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 52, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 97, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_homescreen + 5, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_homescreen + 14, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_homescreen + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___show_address +static const byte fun_data_trezor_ui_layouts_tt___init___show_address[283] = { + 0xa9,0xe0,0x80,0x88,0x48,0xe6,0x01, // prelude + 0x1f,0x69,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x20,0x22,0x23, // names: show_address, address, title, address_qr, case_sensitive, path, account, network, multisig_index, xpubs, mismatch_title, br_type, br_code, chunkify + 0x90,0xa5,0x22,0x25,0x20,0x20,0x2b,0x43,0x45,0x22,0x20,0x22,0x6c,0x71,0x40,0x23,0x22,0x66,0x4c,0x6b,0x27,0x66,0x48,0x66,0x40,0x23,0x22,0x49,0x77,0x40,0x79,0x20,0x62,0x23,0x55,0x40,0x27,0x07,0x11, // code info + 0x52, // LOAD_CONST_TRUE + 0xcd, // STORE_FAST 13 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x25,0x07, // LOAD_DEREF 7 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x42,0x42, // JUMP 2 + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0xc1, // STORE_FAST 1 + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0xce, // STORE_FAST 14 + 0x42,0x42, // JUMP 2 + 0xb1, // LOAD_FAST 1 + 0xce, // STORE_FAST 14 + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x2e, // LOAD_METHOD 'confirm_address' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb1, // LOAD_FAST 1 + 0x10,0x63, // LOAD_CONST_STRING 'data' + 0xb0, // LOAD_FAST 0 + 0x10,0x4b, // LOAD_CONST_STRING 'description' + 0xb6, // LOAD_FAST 6 + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x39, // LOAD_CONST_STRING '' + 0x10,0x64, // LOAD_CONST_STRING 'extra' + 0x51, // LOAD_CONST_NONE + 0x10,0x23, // LOAD_CONST_STRING 'chunkify' + 0xbc, // LOAD_FAST 12 + 0x36,0x8a,0x00, // CALL_METHOD 1280 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcf, // STORE_FAST 15 + 0xbd, // LOAD_FAST 13 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x50, // LOAD_CONST_FALSE + 0xcd, // STORE_FAST 13 + 0x12,0x0d, // LOAD_GLOBAL 'button_request' + 0xba, // LOAD_FAST 10 + 0xbb, // LOAD_FAST 11 + 0x10,0x65, // LOAD_CONST_STRING 'pages' + 0xbf, // LOAD_FAST 15 + 0x14,0x66, // LOAD_METHOD 'page_count' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x81,0x5d, // LOAD_GLOBAL 'ctx_wait' + 0xbf, // LOAD_FAST 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x10, // STORE_FAST_N 16 + 0x24,0x10, // LOAD_FAST_N 16 + 0x12,0x11, // LOAD_GLOBAL 'CONFIRMED' + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x42,0xf6,0x80, // JUMP 118 + 0x42,0xf0,0x80, // JUMP 112 + 0x24,0x10, // LOAD_FAST_N 16 + 0x12,0x13, // LOAD_GLOBAL 'INFO' + 0xde, // BINARY_OP 7 + 0x44,0xc6,0x80, // POP_JUMP_IF_FALSE 70 + 0xb7, // LOAD_FAST 7 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x27,0x11, // STORE_DEREF 17 + 0x12,0x81,0x5d, // LOAD_GLOBAL 'ctx_wait' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x67, // LOAD_METHOD 'show_address_details' + 0x10,0x68, // LOAD_CONST_STRING 'qr_title' + 0xb1, // LOAD_FAST 1 + 0x10,0x69, // LOAD_CONST_STRING 'address' + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0xb0, // LOAD_FAST 0 + 0x42,0x41, // JUMP 1 + 0xb2, // LOAD_FAST 2 + 0x10,0x18, // LOAD_CONST_STRING 'case_sensitive' + 0xb3, // LOAD_FAST 3 + 0x10,0x6a, // LOAD_CONST_STRING 'details_title' + 0xbe, // LOAD_FAST 14 + 0x10,0x1a, // LOAD_CONST_STRING 'account' + 0xb5, // LOAD_FAST 5 + 0x10,0x19, // LOAD_CONST_STRING 'path' + 0xb4, // LOAD_FAST 4 + 0x10,0x1d, // LOAD_CONST_STRING 'xpubs' + 0x24,0x11, // LOAD_FAST_N 17 + 0x20,0x01,0x01, // MAKE_CLOSURE 1 + 0x12,0x81,0x66, // LOAD_GLOBAL 'enumerate' + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x8e,0x00, // CALL_METHOD 1792 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x10, // STORE_FAST_N 16 + 0x42,0x62, // JUMP 34 + 0x12,0x81,0x5d, // LOAD_GLOBAL 'ctx_wait' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x6b, // LOAD_METHOD 'show_mismatch' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb9, // LOAD_FAST 9 + 0x36,0x82,0x00, // CALL_METHOD 256 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x10, // STORE_FAST_N 16 + 0x24,0x10, // LOAD_FAST_N 16 + 0x12,0x11, // LOAD_GLOBAL 'CONFIRMED' + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x09, // LOAD_GLOBAL 'ActionCancelled' + 0x65, // RAISE_OBJ + 0x42,0xbf,0x7e, // JUMP -193 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt___init___show_address +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___show_address_xpub_title +static const byte fun_data_trezor_ui_layouts_tt___init___show_address_xpub_title[41] = { + 0x32,0x14, // prelude + 0x81,0x59,0x82,0x13,0x82,0x14, // names: xpub_title, *, i + 0x90,0xca,0x2a,0x31, // code info + 0x23,0x3b, // LOAD_CONST_OBJ 59 + 0x14,0x49, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x25,0x00, // LOAD_DEREF 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x81,0x5a, // LOAD_CONST_STRING '(YOURS)' + 0x42,0x43, // JUMP 3 + 0x10,0x81,0x5b, // LOAD_CONST_STRING '(COSIGNER)' + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___show_address_xpub_title = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt___init___show_address_xpub_title, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 217, + .line_info = fun_data_trezor_ui_layouts_tt___init___show_address_xpub_title + 8, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___show_address_xpub_title + 12, + .opcodes = fun_data_trezor_ui_layouts_tt___init___show_address_xpub_title + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init___show_address +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___show_address__lt_listcomp_gt_ +static const byte fun_data_trezor_ui_layouts_tt___init___show_address__lt_listcomp_gt_[33] = { + 0x52,0x10, // prelude + 0x81,0x5c,0x82,0x13,0x82,0x13, // names: , *, * + 0x90,0xd7, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x10, // FOR_ITER 16 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc2, // STORE_FAST 2 + 0xc3, // STORE_FAST 3 + 0x25,0x00, // LOAD_DEREF 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb3, // LOAD_FAST 3 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x2e, // JUMP -18 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___show_address__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt___init___show_address__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 220, + .line_info = fun_data_trezor_ui_layouts_tt___init___show_address__lt_listcomp_gt_ + 8, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___show_address__lt_listcomp_gt_ + 10, + .opcodes = fun_data_trezor_ui_layouts_tt___init___show_address__lt_listcomp_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt___init___show_address[] = { + &raw_code_trezor_ui_layouts_tt___init___show_address_xpub_title, + &raw_code_trezor_ui_layouts_tt___init___show_address__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___show_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x09, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt___init___show_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 283, + #endif + .children = (void *)&children_trezor_ui_layouts_tt___init___show_address, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 38, + .n_exc_stack = 0, + .scope_flags = 9, + .n_pos_args = 1, + .n_kwonly_args = 12, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_trezor_ui_layouts_tt___init___show_address + 21, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___show_address + 58, + .opcodes = fun_data_trezor_ui_layouts_tt___init___show_address + 60, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___show_pubkey +static const byte fun_data_trezor_ui_layouts_tt___init___show_pubkey[56] = { + 0xb2,0x91,0x80,0x88,0x40,0x1a, // prelude + 0x25,0x81,0x67,0x16,0x1a,0x19,0x1e,0x20, // names: show_pubkey, pubkey, title, account, path, mismatch_title, br_type + 0x90,0xf0,0x47,0x70,0x20, // code info + 0x12,0x1f, // LOAD_GLOBAL 'show_address' + 0x10,0x69, // LOAD_CONST_STRING 'address' + 0xb0, // LOAD_FAST 0 + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb1, // LOAD_FAST 1 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x1a, // LOAD_CONST_STRING 'account' + 0xb2, // LOAD_FAST 2 + 0x10,0x19, // LOAD_CONST_STRING 'path' + 0xb3, // LOAD_FAST 3 + 0x10,0x20, // LOAD_CONST_STRING 'br_type' + 0xb5, // LOAD_FAST 5 + 0x10,0x22, // LOAD_CONST_STRING 'br_code' + 0x12,0x07, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x6c, // LOAD_ATTR 'PublicKey' + 0x10,0x1e, // LOAD_CONST_STRING 'mismatch_title' + 0xb4, // LOAD_FAST 4 + 0x10,0x23, // LOAD_CONST_STRING 'chunkify' + 0x50, // LOAD_CONST_FALSE + 0x34,0x90,0x00, // CALL_FUNCTION 2048 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___show_pubkey = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x08, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt___init___show_pubkey, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 23, + .n_exc_stack = 0, + .scope_flags = 8, + .n_pos_args = 2, + .n_kwonly_args = 4, + .n_def_pos_args = 1, + .qstr_block_name_idx = 37, + .line_info = fun_data_trezor_ui_layouts_tt___init___show_pubkey + 14, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___show_pubkey + 19, + .opcodes = fun_data_trezor_ui_layouts_tt___init___show_pubkey + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___show_error_and_raise +static const byte fun_data_trezor_ui_layouts_tt___init___show_error_and_raise[69] = { + 0x81,0xd5,0x01,0x24, // prelude + 0x6d,0x20,0x81,0x68,0x81,0x69,0x3a,0x81,0x63, // names: show_error_and_raise, br_type, content, subheader, button, exc + 0xa0,0x03,0x22,0x22,0x26,0x4a,0x77,0x60,0x20, // code info + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x6e, // LOAD_METHOD 'show_error' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb2, // LOAD_FAST 2 + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x39, // LOAD_CONST_STRING '' + 0x10,0x4b, // LOAD_CONST_STRING 'description' + 0xb1, // LOAD_FAST 1 + 0x10,0x3a, // LOAD_CONST_STRING 'button' + 0xb3, // LOAD_FAST 3 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x6f, // LOAD_CONST_STRING 'allow_cancel' + 0x50, // LOAD_CONST_FALSE + 0x36,0x88,0x00, // CALL_METHOD 1024 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x12,0x81,0x5e, // LOAD_GLOBAL 'BR_TYPE_OTHER' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___show_error_and_raise = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_trezor_ui_layouts_tt___init___show_error_and_raise, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 69, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 3, + .qstr_block_name_idx = 109, + .line_info = fun_data_trezor_ui_layouts_tt___init___show_error_and_raise + 13, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___show_error_and_raise + 22, + .opcodes = fun_data_trezor_ui_layouts_tt___init___show_error_and_raise + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___show_warning +static const byte fun_data_trezor_ui_layouts_tt___init___show_warning[63] = { + 0x81,0xd5,0x01,0x1e, // prelude + 0x5e,0x20,0x81,0x68,0x81,0x69,0x3a,0x22, // names: show_warning, br_type, content, subheader, button, br_code + 0xa0,0x19,0x22,0x22,0x22,0x49,0x27, // code info + 0x12,0x46, // LOAD_GLOBAL 'raise_if_not_confirmed' + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x5e, // LOAD_METHOD 'show_warning' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb1, // LOAD_FAST 1 + 0x10,0x4b, // LOAD_CONST_STRING 'description' + 0xb2, // LOAD_FAST 2 + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x39, // LOAD_CONST_STRING '' + 0x10,0x3a, // LOAD_CONST_STRING 'button' + 0xb3, // LOAD_FAST 3 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x86,0x00, // CALL_METHOD 768 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___show_warning = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_trezor_ui_layouts_tt___init___show_warning, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 63, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 3, + .qstr_block_name_idx = 94, + .line_info = fun_data_trezor_ui_layouts_tt___init___show_warning + 12, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___show_warning + 19, + .opcodes = fun_data_trezor_ui_layouts_tt___init___show_warning + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___show_success +static const byte fun_data_trezor_ui_layouts_tt___init___show_success[70] = { + 0x80,0xd4,0x01,0x20, // prelude + 0x70,0x20,0x81,0x68,0x81,0x69,0x3a, // names: show_success, br_type, content, subheader, button + 0xa0,0x2e,0x22,0x22,0x22,0x49,0x27,0x6e,0x40, // code info + 0x12,0x46, // LOAD_GLOBAL 'raise_if_not_confirmed' + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x70, // LOAD_METHOD 'show_success' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb1, // LOAD_FAST 1 + 0x10,0x4b, // LOAD_CONST_STRING 'description' + 0xb2, // LOAD_FAST 2 + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x39, // LOAD_CONST_STRING '' + 0x10,0x3a, // LOAD_CONST_STRING 'button' + 0xb3, // LOAD_FAST 3 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x6f, // LOAD_CONST_STRING 'allow_cancel' + 0x50, // LOAD_CONST_FALSE + 0x36,0x88,0x00, // CALL_METHOD 1024 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x12,0x07, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x71, // LOAD_ATTR 'Success' + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___show_success = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_trezor_ui_layouts_tt___init___show_success, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 112, + .line_info = fun_data_trezor_ui_layouts_tt___init___show_success + 11, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___show_success + 20, + .opcodes = fun_data_trezor_ui_layouts_tt___init___show_success + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_output +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_output[249] = { + 0xf0,0xd0,0x85,0x01,0x50, // prelude + 0x72,0x69,0x81,0x6a,0x16,0x33,0x22,0x81,0x6b,0x81,0x6c,0x23, // names: confirm_output, address, amount, title, hold, br_code, address_label, output_index, chunkify + 0xa0,0x48,0x26,0x2d,0x2d,0x26,0x28,0x26,0x2a,0x4c,0x23,0x43,0x20,0x22,0x22,0x1f,0x8c,0x0e,0x27,0x43,0x22,0x22,0x72,0x40,0x1f,0x81,0x09,0x26, // code info + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x68, // POP_JUMP_IF_FALSE 40 + 0xb2, // LOAD_FAST 2 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x14,0x73, // LOAD_METHOD 'startswith' + 0x10,0x74, // LOAD_CONST_STRING 'CONFIRM ' + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb2, // LOAD_FAST 2 + 0x12,0x81,0x6d, // LOAD_GLOBAL 'len' + 0x10,0x74, // LOAD_CONST_STRING 'CONFIRM ' + 0x34,0x01, // CALL_FUNCTION 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0xc8, // STORE_FAST 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0xc9, // STORE_FAST 9 + 0x42,0x62, // JUMP 34 + 0xb6, // LOAD_FAST 6 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0x10,0x75, // LOAD_CONST_STRING 'AMOUNT #{}' + 0x14,0x49, // LOAD_METHOD 'format' + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xc8, // STORE_FAST 8 + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0x14,0x49, // LOAD_METHOD 'format' + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xc9, // STORE_FAST 9 + 0x42,0x46, // JUMP 6 + 0x23,0x17, // LOAD_CONST_OBJ 23 + 0xc8, // STORE_FAST 8 + 0x10,0x76, // LOAD_CONST_STRING 'SENDING TO' + 0xc9, // STORE_FAST 9 + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x77, // LOAD_METHOD 'confirm_value' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb9, // LOAD_FAST 9 + 0x10,0x32, // LOAD_CONST_STRING 'subtitle' + 0xb5, // LOAD_FAST 5 + 0x10,0x4b, // LOAD_CONST_STRING 'description' + 0x51, // LOAD_CONST_NONE + 0x10,0x5f, // LOAD_CONST_STRING 'value' + 0xb0, // LOAD_FAST 0 + 0x10,0x31, // LOAD_CONST_STRING 'verb' + 0x10,0x27, // LOAD_CONST_STRING 'CONTINUE' + 0x10,0x33, // LOAD_CONST_STRING 'hold' + 0x50, // LOAD_CONST_FALSE + 0x10,0x34, // LOAD_CONST_STRING 'info_button' + 0x50, // LOAD_CONST_FALSE + 0x10,0x23, // LOAD_CONST_STRING 'chunkify' + 0xb7, // LOAD_FAST 7 + 0x36,0x90,0x00, // CALL_METHOD 2048 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x72, // LOAD_CONST_STRING 'confirm_output' + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0x12,0x11, // LOAD_GLOBAL 'CONFIRMED' + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x09, // LOAD_GLOBAL 'ActionCancelled' + 0x65, // RAISE_OBJ + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x77, // LOAD_METHOD 'confirm_value' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb8, // LOAD_FAST 8 + 0x10,0x32, // LOAD_CONST_STRING 'subtitle' + 0x51, // LOAD_CONST_NONE + 0x10,0x4b, // LOAD_CONST_STRING 'description' + 0x51, // LOAD_CONST_NONE + 0x10,0x5f, // LOAD_CONST_STRING 'value' + 0xb1, // LOAD_FAST 1 + 0x10,0x31, // LOAD_CONST_STRING 'verb' + 0xb3, // LOAD_FAST 3 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x51, // LOAD_CONST_NONE + 0x42,0x42, // JUMP 2 + 0x10,0x2c, // LOAD_CONST_STRING 'CONFIRM' + 0x10,0x4c, // LOAD_CONST_STRING 'verb_cancel' + 0x10,0x78, // LOAD_CONST_STRING '^' + 0x10,0x33, // LOAD_CONST_STRING 'hold' + 0xb3, // LOAD_FAST 3 + 0x10,0x34, // LOAD_CONST_STRING 'info_button' + 0x50, // LOAD_CONST_FALSE + 0x36,0x90,0x00, // CALL_METHOD 2048 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x72, // LOAD_CONST_STRING 'confirm_output' + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0x12,0x11, // LOAD_GLOBAL 'CONFIRMED' + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x42,0x86,0x7f, // JUMP -122 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 8, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 249, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 31, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 8, + .n_kwonly_args = 0, + .n_def_pos_args = 6, + .qstr_block_name_idx = 114, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_output + 17, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_output + 45, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_output + 45, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_payment_request +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_payment_request[106] = { + 0xfb,0x40,0x2a, // prelude + 0x79,0x81,0x6e,0x81,0x6a,0x81,0x6f, // names: confirm_payment_request, recipient_name, amount, memos + 0xa0,0x81,0x22,0x22,0x4a,0x30,0x75,0x60,0x6a,0x40,0x26,0x22,0x26,0x42, // code info + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x7a, // LOAD_METHOD 'confirm_with_info' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0x10,0x7b, // LOAD_CONST_STRING 'SENDING' + 0x10,0x53, // LOAD_CONST_STRING 'items' + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x13,0x7c, // LOAD_ATTR 'NORMAL' + 0x10,0x7d, // LOAD_CONST_STRING '{} to\n{}' + 0x14,0x49, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x01, // BUILD_LIST 1 + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x3a, // LOAD_CONST_STRING 'button' + 0x10,0x2c, // LOAD_CONST_STRING 'CONFIRM' + 0x10,0x34, // LOAD_CONST_STRING 'info_button' + 0x10,0x7e, // LOAD_CONST_STRING 'DETAILS' + 0x36,0x88,0x00, // CALL_METHOD 1024 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x79, // LOAD_CONST_STRING 'confirm_payment_request' + 0x12,0x07, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x29, // LOAD_ATTR 'ConfirmOutput' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x12,0x11, // LOAD_GLOBAL 'CONFIRMED' + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE + 0xb3, // LOAD_FAST 3 + 0x12,0x13, // LOAD_GLOBAL 'INFO' + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0x12,0x09, // LOAD_GLOBAL 'ActionCancelled' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt___init___confirm_payment_request +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_payment_request__lt_listcomp_gt_ +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_payment_request__lt_listcomp_gt_[27] = { + 0x41,0x0c, // prelude + 0x81,0x5c,0x82,0x13, // names: , * + 0xa0,0x86, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0c, // FOR_ITER 12 + 0xc1, // STORE_FAST 1 + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x13,0x7c, // LOAD_ATTR 'NORMAL' + 0xb1, // LOAD_FAST 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x32, // JUMP -14 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_payment_request__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_payment_request__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 220, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_payment_request__lt_listcomp_gt_ + 6, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_payment_request__lt_listcomp_gt_ + 8, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_payment_request__lt_listcomp_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt___init___confirm_payment_request[] = { + &raw_code_trezor_ui_layouts_tt___init___confirm_payment_request__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_payment_request = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_payment_request, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 106, + #endif + .children = (void *)&children_trezor_ui_layouts_tt___init___confirm_payment_request, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 121, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_payment_request + 10, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_payment_request + 24, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_payment_request + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___should_show_more +static const byte fun_data_trezor_ui_layouts_tt___init___should_show_more[119] = { + 0x9a,0xd4,0x80,0x01,0x3a, // prelude + 0x2b,0x16,0x81,0x03,0x81,0x70,0x20,0x22,0x81,0x71, // names: should_show_more, title, para, button_text, br_type, br_code, confirm + 0xa0,0xa1,0x60,0x40,0x30,0x43,0x22,0x22,0x26,0x4a,0x27,0x72,0x60,0x20,0x26,0x22,0x26,0x42,0x20, // code info + 0xb5, // LOAD_FAST 5 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0x12,0x81,0x72, // LOAD_GLOBAL 'isinstance' + 0xb5, // LOAD_FAST 5 + 0x12,0x81,0x73, // LOAD_GLOBAL 'str' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x10,0x2c, // LOAD_CONST_STRING 'CONFIRM' + 0xc5, // STORE_FAST 5 + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x7a, // LOAD_METHOD 'confirm_with_info' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb0, // LOAD_FAST 0 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x53, // LOAD_CONST_STRING 'items' + 0xb1, // LOAD_FAST 1 + 0x10,0x3a, // LOAD_CONST_STRING 'button' + 0xb5, // LOAD_FAST 5 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x34, // LOAD_CONST_STRING 'info_button' + 0xb2, // LOAD_FAST 2 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x88,0x00, // CALL_METHOD 1024 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x12,0x11, // LOAD_GLOBAL 'CONFIRMED' + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0xb6, // LOAD_FAST 6 + 0x12,0x13, // LOAD_GLOBAL 'INFO' + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE + 0x12,0x09, // LOAD_GLOBAL 'ActionCancelled' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___should_show_more = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 6, + .fun_data = fun_data_trezor_ui_layouts_tt___init___should_show_more, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 119, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 20, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 4, + .qstr_block_name_idx = 43, + .line_info = fun_data_trezor_ui_layouts_tt___init___should_show_more + 15, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___should_show_more + 34, + .opcodes = fun_data_trezor_ui_layouts_tt___init___should_show_more + 34, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init____confirm_ask_pagination +static const byte fun_data_trezor_ui_layouts_tt___init____confirm_ask_pagination[167] = { + 0x89,0x54,0x32, // prelude + 0x7f,0x20,0x16,0x63,0x4b,0x22, // names: _confirm_ask_pagination, br_type, title, data, description, br_code + 0xa0,0xc6,0x42,0x2b,0x4e,0x2a,0x20,0x46,0x7f,0x20,0x42,0x25,0x22,0x6f,0x72,0x20,0x47,0x2b,0x43, // code info + 0x51, // LOAD_CONST_NONE + 0xc5, // STORE_FAST 5 + 0x12,0x81,0x72, // LOAD_GLOBAL 'isinstance' + 0xb2, // LOAD_FAST 2 + 0x12,0x81,0x74, // LOAD_GLOBAL 'bytes' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x00, // LOAD_CONST_STRING 'hexlify' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x81,0x01, // IMPORT_NAME 'ubinascii' + 0x1c,0x81,0x00, // IMPORT_FROM 'hexlify' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x81,0x02, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0x12,0x2b, // LOAD_GLOBAL 'should_show_more' + 0xb1, // LOAD_FAST 1 + 0x10,0x81,0x03, // LOAD_CONST_STRING 'para' + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x13,0x7c, // LOAD_ATTR 'NORMAL' + 0xb3, // LOAD_FAST 3 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x13,0x81,0x04, // LOAD_ATTR 'MONO' + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x02, // BUILD_LIST 2 + 0x10,0x20, // LOAD_CONST_STRING 'br_type' + 0xb0, // LOAD_FAST 0 + 0x10,0x22, // LOAD_CONST_STRING 'br_code' + 0xb4, // LOAD_FAST 4 + 0x34,0x86,0x01, // CALL_FUNCTION 769 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb5, // LOAD_FAST 5 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x63, // POP_JUMP_IF_FALSE 35 + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x81,0x05, // LOAD_METHOD 'confirm_more' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb1, // LOAD_FAST 1 + 0x10,0x3a, // LOAD_CONST_STRING 'button' + 0x10,0x81,0x06, // LOAD_CONST_STRING 'CLOSE' + 0x10,0x53, // LOAD_CONST_STRING 'items' + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x13,0x81,0x04, // LOAD_ATTR 'MONO' + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x01, // BUILD_LIST 1 + 0x36,0x86,0x00, // CALL_METHOD 768 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0x42,0x47, // JUMP 7 + 0xb5, // LOAD_FAST 5 + 0x14,0x81,0x07, // LOAD_METHOD 'request_complete_repaint' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc7, // STORE_FAST 7 + 0x42,0x9c,0x7f, // JUMP -100 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init____confirm_ask_pagination = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_trezor_ui_layouts_tt___init____confirm_ask_pagination, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 167, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 127, + .line_info = fun_data_trezor_ui_layouts_tt___init____confirm_ask_pagination + 9, + .line_info_top = fun_data_trezor_ui_layouts_tt___init____confirm_ask_pagination + 28, + .opcodes = fun_data_trezor_ui_layouts_tt___init____confirm_ask_pagination + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_blob +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_blob[119] = { + 0xd1,0xd0,0x85,0x01,0x30, // prelude + 0x81,0x08,0x20,0x16,0x63,0x4b,0x31,0x4c,0x33,0x22,0x81,0x75, // names: confirm_blob, br_type, title, data, description, verb, verb_cancel, hold, br_code, ask_pagination + 0xa0,0xf1,0x26,0x26,0x22,0x1f,0x81,0x0b,0x2c,0x20,0x6f,0x22, // code info + 0xb1, // LOAD_FAST 1 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0xc1, // STORE_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x39, // LOAD_CONST_STRING '' + 0xc3, // STORE_FAST 3 + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x81,0x08, // LOAD_METHOD 'confirm_blob' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb1, // LOAD_FAST 1 + 0x10,0x4b, // LOAD_CONST_STRING 'description' + 0xb3, // LOAD_FAST 3 + 0x10,0x63, // LOAD_CONST_STRING 'data' + 0xb2, // LOAD_FAST 2 + 0x10,0x64, // LOAD_CONST_STRING 'extra' + 0x51, // LOAD_CONST_NONE + 0x10,0x33, // LOAD_CONST_STRING 'hold' + 0xb6, // LOAD_FAST 6 + 0x10,0x31, // LOAD_CONST_STRING 'verb' + 0xb4, // LOAD_FAST 4 + 0x10,0x4c, // LOAD_CONST_STRING 'verb_cancel' + 0xb5, // LOAD_FAST 5 + 0x36,0x8e,0x00, // CALL_METHOD 1792 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0xb8, // LOAD_FAST 8 + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0xb9, // LOAD_FAST 9 + 0x14,0x66, // LOAD_METHOD 'page_count' + 0x36,0x00, // CALL_METHOD 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x12,0x7f, // LOAD_GLOBAL '_confirm_ask_pagination' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb7, // LOAD_FAST 7 + 0x34,0x05, // CALL_FUNCTION 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x4f, // JUMP 15 + 0x12,0x46, // LOAD_GLOBAL 'raise_if_not_confirmed' + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0xb9, // LOAD_FAST 9 + 0xb0, // LOAD_FAST 0 + 0xb7, // LOAD_FAST 7 + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_blob = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 9, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_blob, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 119, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 27, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 9, + .n_kwonly_args = 0, + .n_def_pos_args = 6, + .qstr_block_name_idx = 136, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_blob + 17, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_blob + 29, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_blob + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_address +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_address[35] = { + 0xe1,0xc5,0x01,0x12, // prelude + 0x2e,0x16,0x69,0x4b,0x20,0x22, // names: confirm_address, title, address, description, br_type, br_code + 0xb0,0x14,0x64, // code info + 0x12,0x77, // LOAD_GLOBAL 'confirm_value' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x39, // LOAD_CONST_STRING '' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x10,0x31, // LOAD_CONST_STRING 'verb' + 0x10,0x2c, // LOAD_CONST_STRING 'CONFIRM' + 0x34,0x82,0x05, // CALL_FUNCTION 261 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 3, + .qstr_block_name_idx = 46, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_address + 10, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_address + 13, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_address + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_text +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_text[36] = { + 0xe1,0xc4,0x01,0x14, // prelude + 0x81,0x09,0x20,0x16,0x63,0x4b,0x22, // names: confirm_text, br_type, title, data, description, br_code + 0xb0,0x25,0x64, // code info + 0x12,0x77, // LOAD_GLOBAL 'confirm_value' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x39, // LOAD_CONST_STRING '' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x10,0x31, // LOAD_CONST_STRING 'verb' + 0x10,0x2c, // LOAD_CONST_STRING 'CONFIRM' + 0x34,0x82,0x05, // CALL_FUNCTION 261 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_text = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_text, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 137, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_text + 11, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_text + 14, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_text + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_amount +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_amount[28] = { + 0xe1,0x85,0x01,0x12, // prelude + 0x30,0x16,0x81,0x6a,0x4b,0x20,0x22, // names: confirm_amount, title, amount, description, br_type, br_code + 0xb0,0x36, // code info + 0x12,0x77, // LOAD_GLOBAL 'confirm_value' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x10,0x31, // LOAD_CONST_STRING 'verb' + 0x10,0x2c, // LOAD_CONST_STRING 'CONFIRM' + 0x34,0x82,0x05, // CALL_FUNCTION 261 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_amount = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_amount, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 3, + .qstr_block_name_idx = 48, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_amount + 11, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_amount + 13, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_amount + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_value +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_value[97] = { + 0xd9,0x95,0x80,0x88,0x40,0x2a, // prelude + 0x77,0x16,0x5f,0x4b,0x20,0x22,0x31,0x32,0x33,0x34, // names: confirm_value, title, value, description, br_type, br_code, verb, subtitle, hold, info_button + 0xb0,0x4c,0x40,0x26,0x48,0x23,0x46,0x22,0x22,0x22,0x26, // code info + 0xb5, // LOAD_FAST 5 + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0xb7, // LOAD_FAST 7 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0x12,0x81,0x76, // LOAD_GLOBAL 'ValueError' + 0x23,0x18, // LOAD_CONST_OBJ 24 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb5, // LOAD_FAST 5 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0xc5, // STORE_FAST 5 + 0x12,0x46, // LOAD_GLOBAL 'raise_if_not_confirmed' + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x77, // LOAD_METHOD 'confirm_value' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb0, // LOAD_FAST 0 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x32, // LOAD_CONST_STRING 'subtitle' + 0xb6, // LOAD_FAST 6 + 0x10,0x4b, // LOAD_CONST_STRING 'description' + 0xb2, // LOAD_FAST 2 + 0x10,0x5f, // LOAD_CONST_STRING 'value' + 0xb1, // LOAD_FAST 1 + 0x10,0x31, // LOAD_CONST_STRING 'verb' + 0xb5, // LOAD_FAST 5 + 0x10,0x33, // LOAD_CONST_STRING 'hold' + 0xb7, // LOAD_FAST 7 + 0x10,0x34, // LOAD_CONST_STRING 'info_button' + 0xb8, // LOAD_FAST 8 + 0x36,0x8e,0x00, // CALL_METHOD 1792 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_value = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x08, + .n_pos_args = 5, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_value, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 97, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 28, + .n_exc_stack = 0, + .scope_flags = 8, + .n_pos_args = 5, + .n_kwonly_args = 4, + .n_def_pos_args = 1, + .qstr_block_name_idx = 119, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_value + 16, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_value + 27, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_value + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_properties +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_properties[66] = { + 0x81,0xd4,0x01,0x1e, // prelude + 0x81,0x0a,0x20,0x16,0x81,0x77,0x33,0x22, // names: confirm_properties, br_type, title, props, hold, br_code + 0xb0,0x6f,0x46,0x22,0x22,0x22,0x27, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0x12,0x46, // LOAD_GLOBAL 'raise_if_not_confirmed' + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x81,0x0a, // LOAD_METHOD 'confirm_properties' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb1, // LOAD_FAST 1 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x53, // LOAD_CONST_STRING 'items' + 0xb5, // LOAD_FAST 5 + 0x10,0x33, // LOAD_CONST_STRING 'hold' + 0xb3, // LOAD_FAST 3 + 0x36,0x86,0x00, // CALL_METHOD 768 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt___init___confirm_properties +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_properties__lt_listcomp_gt_ +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_properties__lt_listcomp_gt_[39] = { + 0x59,0x0c, // prelude + 0x81,0x5c,0x82,0x13, // names: , * + 0xb0,0x6f, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x18, // FOR_ITER 24 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x12,0x81,0x72, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x12,0x81,0x74, // LOAD_GLOBAL 'bytes' + 0x34,0x02, // CALL_FUNCTION 2 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x26, // JUMP -26 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_properties__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_properties__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 220, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_properties__lt_listcomp_gt_ + 6, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_properties__lt_listcomp_gt_ + 8, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_properties__lt_listcomp_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt___init___confirm_properties[] = { + &raw_code_trezor_ui_layouts_tt___init___confirm_properties__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_properties = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_properties, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 66, + #endif + .children = (void *)&children_trezor_ui_layouts_tt___init___confirm_properties, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 138, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_properties + 12, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_properties + 19, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_properties + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_total +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_total[145] = { + 0xa9,0xd1,0x85,0x01,0x42, // prelude + 0x36,0x81,0x78,0x81,0x79,0x81,0x1c,0x16,0x81,0x7a,0x81,0x7b,0x81,0x7c,0x20,0x22, // names: confirm_total, total_amount, fee_amount, fee_rate_amount, title, total_label, fee_label, account_label, br_type, br_code + 0xb0,0x8b,0x22,0x49,0x20,0x24,0x48,0x6f,0x23,0x23,0x2c,0x23,0x2d,0x22,0x27,0x6b,0x20, // code info + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x36, // LOAD_METHOD 'confirm_total' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb3, // LOAD_FAST 3 + 0x10,0x53, // LOAD_CONST_STRING 'items' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x02, // BUILD_LIST 2 + 0x10,0x34, // LOAD_CONST_STRING 'info_button' + 0x12,0x81,0x7d, // LOAD_GLOBAL 'bool' + 0xb6, // LOAD_FAST 6 + 0x45,0x01, // JUMP_IF_TRUE_OR_POP 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x86,0x00, // CALL_METHOD 768 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0x2b,0x00, // BUILD_LIST 0 + 0xca, // STORE_FAST 10 + 0xb6, // LOAD_FAST 6 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xba, // LOAD_FAST 10 + 0x14,0x81,0x0b, // LOAD_METHOD 'append' + 0x23,0x19, // LOAD_CONST_OBJ 25 + 0xb6, // LOAD_FAST 6 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xba, // LOAD_FAST 10 + 0x14,0x81,0x0b, // LOAD_METHOD 'append' + 0x10,0x81,0x0c, // LOAD_CONST_STRING 'Fee rate:' + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x81,0x0d, // LOAD_METHOD 'show_info_with_cancel' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0x23,0x1a, // LOAD_CONST_OBJ 26 + 0x10,0x53, // LOAD_CONST_STRING 'items' + 0xba, // LOAD_FAST 10 + 0x36,0x84,0x00, // CALL_METHOD 512 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcb, // STORE_FAST 11 + 0x12,0x81,0x18, // LOAD_GLOBAL 'with_info' + 0xb9, // LOAD_FAST 9 + 0xbb, // LOAD_FAST 11 + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_total = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 9, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_total, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 145, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 22, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 9, + .n_kwonly_args = 0, + .n_def_pos_args = 7, + .qstr_block_name_idx = 54, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_total + 21, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_total + 38, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_total + 38, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_ethereum_tx +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_ethereum_tx[154] = { + 0x96,0xd4,0x01,0x3c, // prelude + 0x38,0x81,0x7e,0x81,0x78,0x81,0x7f,0x53,0x20,0x22, // names: confirm_ethereum_tx, recipient, total_amount, maximum_fee, items, br_type, br_code + 0xb0,0xab,0x22,0x4a,0x20,0x25,0x74,0x60,0x22,0x27,0x6b,0x40,0x40,0x73,0x60,0x20,0x22,0x27,0x2d,0x4c, // code info + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x36, // LOAD_METHOD 'confirm_total' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0x10,0x35, // LOAD_CONST_STRING 'SUMMARY' + 0x10,0x53, // LOAD_CONST_STRING 'items' + 0x10,0x2f, // LOAD_CONST_STRING 'Amount:' + 0xb1, // LOAD_FAST 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x1b, // LOAD_CONST_OBJ 27 + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x02, // BUILD_LIST 2 + 0x10,0x34, // LOAD_CONST_STRING 'info_button' + 0x52, // LOAD_CONST_TRUE + 0x10,0x81,0x0e, // LOAD_CONST_STRING 'cancel_arrow' + 0x52, // LOAD_CONST_TRUE + 0x36,0x88,0x00, // CALL_METHOD 1024 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc6, // STORE_FAST 6 + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x81,0x0d, // LOAD_METHOD 'show_info_with_cancel' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0x23,0x1c, // LOAD_CONST_OBJ 28 + 0x10,0x53, // LOAD_CONST_STRING 'items' + 0xb3, // LOAD_FAST 3 + 0x36,0x84,0x00, // CALL_METHOD 512 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0x12,0x81,0x08, // LOAD_GLOBAL 'confirm_blob' + 0xb4, // LOAD_FAST 4 + 0x10,0x81,0x0f, // LOAD_CONST_STRING 'RECIPIENT' + 0xb0, // LOAD_FAST 0 + 0x10,0x31, // LOAD_CONST_STRING 'verb' + 0x10,0x27, // LOAD_CONST_STRING 'CONTINUE' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x48,0x19, // SETUP_EXCEPT 25 + 0xb6, // LOAD_FAST 6 + 0x14,0x81,0x07, // LOAD_METHOD 'request_complete_repaint' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x81,0x18, // LOAD_GLOBAL 'with_info' + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x40,0x52,0x01, // UNWIND_JUMP 18 + 0x4a,0x0d, // POP_EXCEPT_JUMP 13 + 0x57, // DUP_TOP + 0x12,0x09, // LOAD_GLOBAL 'ActionCancelled' + 0xdf, // BINARY_OP 8 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x59, // POP_TOP + 0x40,0x44,0x01, // UNWIND_JUMP 4 + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x42,0x03, // JUMP -61 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_ethereum_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 6, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_ethereum_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 154, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 56, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_ethereum_tx + 14, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_ethereum_tx + 34, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_ethereum_tx + 34, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_joint_total +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_joint_total[70] = { + 0xe2,0x40,0x22, // prelude + 0x81,0x10,0x82,0x00,0x81,0x78, // names: confirm_joint_total, spending_amount, total_amount + 0xb0,0xcf,0x22,0x22,0x22,0x26,0x24,0x20,0x25,0x6f,0x40, // code info + 0x12,0x46, // LOAD_GLOBAL 'raise_if_not_confirmed' + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x36, // LOAD_METHOD 'confirm_total' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0x23,0x1d, // LOAD_CONST_OBJ 29 + 0x10,0x53, // LOAD_CONST_STRING 'items' + 0x23,0x1e, // LOAD_CONST_OBJ 30 + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x1f, // LOAD_CONST_OBJ 31 + 0xb1, // LOAD_FAST 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x02, // BUILD_LIST 2 + 0x36,0x84,0x00, // CALL_METHOD 512 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x81,0x10, // LOAD_CONST_STRING 'confirm_joint_total' + 0x12,0x07, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x37, // LOAD_ATTR 'SignTx' + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_joint_total = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_joint_total, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 144, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_joint_total + 9, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_joint_total + 20, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_joint_total + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_metadata +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_metadata[64] = { + 0xb3,0xd4,0x80,0x01,0x20, // prelude + 0x81,0x11,0x20,0x16,0x81,0x68,0x82,0x01,0x22,0x33,0x31, // names: confirm_metadata, br_type, title, content, param, br_code, hold, verb + 0xb0,0xe9,0x45,0x72,0x20, // code info + 0x12,0x47, // LOAD_GLOBAL 'confirm_action' + 0xb0, // LOAD_FAST 0 + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb1, // LOAD_FAST 1 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x4a, // LOAD_CONST_STRING 'action' + 0x10,0x39, // LOAD_CONST_STRING '' + 0x10,0x4b, // LOAD_CONST_STRING 'description' + 0xb2, // LOAD_FAST 2 + 0x10,0x81,0x12, // LOAD_CONST_STRING 'description_param' + 0xb3, // LOAD_FAST 3 + 0x10,0x31, // LOAD_CONST_STRING 'verb' + 0xb6, // LOAD_FAST 6 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x33, // LOAD_CONST_STRING 'hold' + 0xb5, // LOAD_FAST 5 + 0x10,0x22, // LOAD_CONST_STRING 'br_code' + 0xb4, // LOAD_FAST 4 + 0x34,0x8e,0x01, // CALL_FUNCTION 1793 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_metadata = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 7, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_metadata, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 64, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 23, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 4, + .qstr_block_name_idx = 145, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_metadata + 16, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_metadata + 21, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_metadata + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_replacement +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_replacement[54] = { + 0xf2,0x40,0x14, // prelude + 0x81,0x13,0x16,0x82,0x02, // names: confirm_replacement, title, txid + 0xb0,0xf6,0x25,0x4a,0x6d, // code info + 0x12,0x81,0x08, // LOAD_GLOBAL 'confirm_blob' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb0, // LOAD_FAST 0 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x63, // LOAD_CONST_STRING 'data' + 0xb1, // LOAD_FAST 1 + 0x10,0x4b, // LOAD_CONST_STRING 'description' + 0x23,0x20, // LOAD_CONST_OBJ 32 + 0x10,0x31, // LOAD_CONST_STRING 'verb' + 0x10,0x27, // LOAD_CONST_STRING 'CONTINUE' + 0x10,0x20, // LOAD_CONST_STRING 'br_type' + 0x10,0x81,0x13, // LOAD_CONST_STRING 'confirm_replacement' + 0x10,0x22, // LOAD_CONST_STRING 'br_code' + 0x12,0x07, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x37, // LOAD_ATTR 'SignTx' + 0x34,0x8c,0x00, // CALL_FUNCTION 1536 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_replacement = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_replacement, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 54, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 147, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_replacement + 8, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_replacement + 13, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_replacement + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_modify_output +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_modify_output[171] = { + 0xb0,0x54,0x46, // prelude + 0x81,0x14,0x69,0x81,0x15,0x81,0x16,0x81,0x17, // names: confirm_modify_output, address, sign, amount_change, amount_new + 0xc0,0x06,0x22,0x20,0x23,0x22,0x22,0x4a,0x22,0x23,0x22,0x27,0x1f,0x81,0x0b,0x23,0x22,0x22,0x22,0x4a,0x23,0x22,0x7f,0x60,0x60,0x26, // code info + 0x52, // LOAD_CONST_TRUE + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x0d, // LOAD_GLOBAL 'button_request' + 0x23,0x21, // LOAD_CONST_OBJ 33 + 0x12,0x07, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x29, // LOAD_ATTR 'ConfirmOutput' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x46, // LOAD_GLOBAL 'raise_if_not_confirmed' + 0x12,0x81,0x5d, // LOAD_GLOBAL 'ctx_wait' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x81,0x08, // LOAD_METHOD 'confirm_blob' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0x23,0x22, // LOAD_CONST_OBJ 34 + 0x10,0x63, // LOAD_CONST_STRING 'data' + 0xb0, // LOAD_FAST 0 + 0x10,0x31, // LOAD_CONST_STRING 'verb' + 0x10,0x27, // LOAD_CONST_STRING 'CONTINUE' + 0x10,0x4c, // LOAD_CONST_STRING 'verb_cancel' + 0x51, // LOAD_CONST_NONE + 0x10,0x4b, // LOAD_CONST_STRING 'description' + 0x10,0x2d, // LOAD_CONST_STRING 'Address:' + 0x10,0x64, // LOAD_CONST_STRING 'extra' + 0x51, // LOAD_CONST_NONE + 0x36,0x8c,0x00, // CALL_METHOD 1536 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x50, // LOAD_CONST_FALSE + 0xc4, // STORE_FAST 4 + 0x12,0x0d, // LOAD_GLOBAL 'button_request' + 0x23,0x21, // LOAD_CONST_OBJ 33 + 0x12,0x07, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x29, // LOAD_ATTR 'ConfirmOutput' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x81,0x5d, // LOAD_GLOBAL 'ctx_wait' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x81,0x14, // LOAD_METHOD 'confirm_modify_output' + 0x10,0x69, // LOAD_CONST_STRING 'address' + 0xb0, // LOAD_FAST 0 + 0x10,0x81,0x15, // LOAD_CONST_STRING 'sign' + 0xb1, // LOAD_FAST 1 + 0x10,0x81,0x16, // LOAD_CONST_STRING 'amount_change' + 0xb2, // LOAD_FAST 2 + 0x10,0x81,0x17, // LOAD_CONST_STRING 'amount_new' + 0xb3, // LOAD_FAST 3 + 0x36,0x88,0x00, // CALL_METHOD 1024 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x12,0x11, // LOAD_GLOBAL 'CONFIRMED' + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x43, // JUMP 3 + 0x42,0xff,0x7e, // JUMP -129 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_modify_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_modify_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 171, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 23, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 148, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_modify_output + 12, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_modify_output + 38, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_modify_output + 38, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___with_info +static const byte fun_data_trezor_ui_layouts_tt___init___with_info[101] = { + 0xd0,0x44,0x2a, // prelude + 0x81,0x18,0x82,0x03,0x82,0x04,0x20,0x22, // names: with_info, main_layout, info_layout, br_type, br_code + 0xc0,0x37,0x52,0x20,0x4a,0x26,0x22,0x26,0x27,0x2a,0x20,0x27,0x44, // code info + 0x12,0x0d, // LOAD_GLOBAL 'button_request' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x10,0x65, // LOAD_CONST_STRING 'pages' + 0xb0, // LOAD_FAST 0 + 0x14,0x66, // LOAD_METHOD 'page_count' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x81,0x5d, // LOAD_GLOBAL 'ctx_wait' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x12,0x11, // LOAD_GLOBAL 'CONFIRMED' + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb4, // LOAD_FAST 4 + 0x12,0x13, // LOAD_GLOBAL 'INFO' + 0xde, // BINARY_OP 7 + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x07, // LOAD_METHOD 'request_complete_repaint' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x81,0x5d, // LOAD_GLOBAL 'ctx_wait' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x07, // LOAD_METHOD 'request_complete_repaint' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0x45, // JUMP 5 + 0x42,0x40, // JUMP 0 + 0x12,0x09, // LOAD_GLOBAL 'ActionCancelled' + 0x65, // RAISE_OBJ + 0x42,0x07, // JUMP -57 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___with_info = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_trezor_ui_layouts_tt___init___with_info, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 101, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 152, + .line_info = fun_data_trezor_ui_layouts_tt___init___with_info + 11, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___with_info + 24, + .opcodes = fun_data_trezor_ui_layouts_tt___init___with_info + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_modify_fee +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_modify_fee[122] = { + 0xa1,0x55,0x32, // prelude + 0x81,0x19,0x16,0x81,0x15,0x81,0x1a,0x81,0x1b,0x81,0x1c, // names: confirm_modify_fee, title, sign, user_fee_change, total_fee_new, fee_rate_amount + 0xc0,0x4f,0x22,0x27,0x7b,0x60,0x20,0x23,0x23,0x2c,0x22,0x27,0x6b,0x20, // code info + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x81,0x19, // LOAD_METHOD 'confirm_modify_fee' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb0, // LOAD_FAST 0 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x81,0x15, // LOAD_CONST_STRING 'sign' + 0xb1, // LOAD_FAST 1 + 0x10,0x81,0x1a, // LOAD_CONST_STRING 'user_fee_change' + 0xb2, // LOAD_FAST 2 + 0x10,0x81,0x1b, // LOAD_CONST_STRING 'total_fee_new' + 0xb3, // LOAD_FAST 3 + 0x10,0x81,0x1c, // LOAD_CONST_STRING 'fee_rate_amount' + 0xb4, // LOAD_FAST 4 + 0x36,0x8a,0x00, // CALL_METHOD 1280 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0x2b,0x00, // BUILD_LIST 0 + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb6, // LOAD_FAST 6 + 0x14,0x81,0x0b, // LOAD_METHOD 'append' + 0x23,0x23, // LOAD_CONST_OBJ 35 + 0xb4, // LOAD_FAST 4 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x81,0x0d, // LOAD_METHOD 'show_info_with_cancel' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0x23,0x1c, // LOAD_CONST_OBJ 28 + 0x10,0x53, // LOAD_CONST_STRING 'items' + 0xb6, // LOAD_FAST 6 + 0x36,0x84,0x00, // CALL_METHOD 512 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0x12,0x81,0x18, // LOAD_GLOBAL 'with_info' + 0xb5, // LOAD_FAST 5 + 0xb7, // LOAD_FAST 7 + 0x10,0x81,0x1d, // LOAD_CONST_STRING 'modify_fee' + 0x12,0x07, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x37, // LOAD_ATTR 'SignTx' + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_modify_fee = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_modify_fee, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 122, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 21, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 153, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_modify_fee + 14, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_modify_fee + 28, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_modify_fee + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_coinjoin +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_coinjoin[61] = { + 0xd2,0x40,0x1c, // prelude + 0x81,0x1e,0x81,0x1f,0x82,0x05, // names: confirm_coinjoin, max_rounds, max_fee_per_vbyte + 0xc0,0x65,0x22,0x22,0x22,0x28,0x6f,0x20, // code info + 0x12,0x46, // LOAD_GLOBAL 'raise_if_not_confirmed' + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x81,0x1e, // LOAD_METHOD 'confirm_coinjoin' + 0x10,0x81,0x1f, // LOAD_CONST_STRING 'max_rounds' + 0x12,0x81,0x73, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x81,0x20, // LOAD_CONST_STRING 'max_feerate' + 0xb1, // LOAD_FAST 1 + 0x36,0x84,0x00, // CALL_METHOD 512 + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x24, // LOAD_CONST_OBJ 36 + 0x12,0x81,0x5e, // LOAD_GLOBAL 'BR_TYPE_OTHER' + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_coinjoin = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_coinjoin, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 61, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 158, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_coinjoin + 9, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_coinjoin + 17, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_coinjoin + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_sign_identity +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_sign_identity[64] = { + 0xeb,0x40,0x1a, // prelude + 0x81,0x21,0x82,0x06,0x82,0x07,0x82,0x08, // names: confirm_sign_identity, proto, identity, challenge_visual + 0xc0,0x77,0x25,0x4d,0x2e, // code info + 0x12,0x81,0x08, // LOAD_GLOBAL 'confirm_blob' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0x10,0x81,0x22, // LOAD_CONST_STRING 'Sign {}' + 0x14,0x49, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x63, // LOAD_CONST_STRING 'data' + 0xb1, // LOAD_FAST 1 + 0x10,0x4b, // LOAD_CONST_STRING 'description' + 0xb2, // LOAD_FAST 2 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb2, // LOAD_FAST 2 + 0x10,0x81,0x23, // LOAD_CONST_STRING '\n' + 0xf2, // BINARY_OP 27 __add__ + 0x42,0x42, // JUMP 2 + 0x10,0x39, // LOAD_CONST_STRING '' + 0x10,0x20, // LOAD_CONST_STRING 'br_type' + 0x23,0x25, // LOAD_CONST_OBJ 37 + 0x10,0x22, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5e, // LOAD_GLOBAL 'BR_TYPE_OTHER' + 0x34,0x8a,0x00, // CALL_FUNCTION 1280 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_sign_identity = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_sign_identity, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 64, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 161, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_sign_identity + 11, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_sign_identity + 16, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_sign_identity + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_signverify +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_signverify[94] = { + 0xe0,0x44,0x2c, // prelude + 0x81,0x24,0x82,0x09,0x82,0x0a,0x69,0x82,0x0b, // names: confirm_signverify, coin, message, address, verify + 0xc0,0x83,0x23,0x28,0x45,0x28,0x43,0x66,0x20,0x6e,0x20,0x66,0x20, // code info + 0xb3, // LOAD_FAST 3 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x23,0x26, // LOAD_CONST_OBJ 38 + 0x14,0x49, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0x23,0x27, // LOAD_CONST_OBJ 39 + 0xc5, // STORE_FAST 5 + 0x42,0x4b, // JUMP 11 + 0x23,0x28, // LOAD_CONST_OBJ 40 + 0x14,0x49, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0x23,0x29, // LOAD_CONST_OBJ 41 + 0xc5, // STORE_FAST 5 + 0x12,0x81,0x08, // LOAD_GLOBAL 'confirm_blob' + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x23,0x2a, // LOAD_CONST_OBJ 42 + 0x10,0x22, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5e, // LOAD_GLOBAL 'BR_TYPE_OTHER' + 0x34,0x82,0x04, // CALL_FUNCTION 260 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x81,0x08, // LOAD_GLOBAL 'confirm_blob' + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x23,0x2b, // LOAD_CONST_OBJ 43 + 0x10,0x22, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5e, // LOAD_GLOBAL 'BR_TYPE_OTHER' + 0x34,0x82,0x04, // CALL_FUNCTION 260 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_signverify = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_signverify, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 94, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 164, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_signverify + 12, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_signverify + 25, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_signverify + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___show_error_popup +static const byte fun_data_trezor_ui_layouts_tt___init___show_error_popup[89] = { + 0x90,0xd4,0x89,0x80,0x40,0x22, // prelude + 0x81,0x25,0x16,0x4b,0x32,0x81,0x12,0x3a,0x3b, // names: show_error_popup, title, description, subtitle, description_param, button, timeout_ms + 0xc0,0xa4,0x26,0x48,0x23,0x2b,0x22,0x49, // code info + 0xb4, // LOAD_FAST 4 + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0xb5, // LOAD_FAST 5 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0x12,0x81,0x76, // LOAD_GLOBAL 'ValueError' + 0x23,0x2c, // LOAD_CONST_OBJ 44 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x10,0x81,0x26, // LOAD_CONST_STRING '\n{}' + 0x14,0x49, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc0, // STORE_FAST 0 + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x6e, // LOAD_METHOD 'show_error' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb0, // LOAD_FAST 0 + 0x10,0x4b, // LOAD_CONST_STRING 'description' + 0xb1, // LOAD_FAST 1 + 0x14,0x49, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x3a, // LOAD_CONST_STRING 'button' + 0xb4, // LOAD_FAST 4 + 0x10,0x81,0x27, // LOAD_CONST_STRING 'time_ms' + 0xb5, // LOAD_FAST 5 + 0x10,0x6f, // LOAD_CONST_STRING 'allow_cancel' + 0x50, // LOAD_CONST_FALSE + 0x36,0x8a,0x00, // CALL_METHOD 1280 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___show_error_popup = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x09, + .n_pos_args = 4, + .fun_data = fun_data_trezor_ui_layouts_tt___init___show_error_popup, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 89, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 0, + .scope_flags = 9, + .n_pos_args = 4, + .n_kwonly_args = 2, + .n_def_pos_args = 2, + .qstr_block_name_idx = 165, + .line_info = fun_data_trezor_ui_layouts_tt___init___show_error_popup + 15, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___show_error_popup + 23, + .opcodes = fun_data_trezor_ui_layouts_tt___init___show_error_popup + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___request_passphrase_on_host +static const byte fun_data_trezor_ui_layouts_tt___init___request_passphrase_on_host[30] = { + 0x30,0x0c, // prelude + 0x81,0x28, // names: request_passphrase_on_host + 0xc0,0xb5,0x22,0x4a, // code info + 0x12,0x3c, // LOAD_GLOBAL 'draw_simple' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x81,0x29, // LOAD_METHOD 'show_simple' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0x51, // LOAD_CONST_NONE + 0x10,0x4b, // LOAD_CONST_STRING 'description' + 0x23,0x2d, // LOAD_CONST_OBJ 45 + 0x36,0x84,0x00, // CALL_METHOD 512 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___request_passphrase_on_host = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt___init___request_passphrase_on_host, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 168, + .line_info = fun_data_trezor_ui_layouts_tt___init___request_passphrase_on_host + 4, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___request_passphrase_on_host + 8, + .opcodes = fun_data_trezor_ui_layouts_tt___init___request_passphrase_on_host + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___request_passphrase_on_device +static const byte fun_data_trezor_ui_layouts_tt___init___request_passphrase_on_device[68] = { + 0xc9,0x40,0x1c, // prelude + 0x81,0x2a,0x81,0x2d, // names: request_passphrase_on_device, max_len + 0xc0,0xbe,0x22,0x22,0x53,0x22,0x4b,0x26,0x47,0x20, // code info + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x81,0x2b, // LOAD_METHOD 'request_passphrase' + 0x10,0x81,0x2c, // LOAD_CONST_STRING 'prompt' + 0x23,0x2e, // LOAD_CONST_OBJ 46 + 0x10,0x81,0x2d, // LOAD_CONST_STRING 'max_len' + 0xb0, // LOAD_FAST 0 + 0x36,0x84,0x00, // CALL_METHOD 512 + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x2f, // LOAD_CONST_OBJ 47 + 0x12,0x07, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x81,0x2e, // LOAD_ATTR 'PassphraseEntry' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x12,0x12, // LOAD_GLOBAL 'CANCELLED' + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'ActionCancelled' + 0x23,0x30, // LOAD_CONST_OBJ 48 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___request_passphrase_on_device = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt___init___request_passphrase_on_device, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 68, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 170, + .line_info = fun_data_trezor_ui_layouts_tt___init___request_passphrase_on_device + 7, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___request_passphrase_on_device + 17, + .opcodes = fun_data_trezor_ui_layouts_tt___init___request_passphrase_on_device + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___request_pin_on_device +static const byte fun_data_trezor_ui_layouts_tt___init___request_pin_on_device[123] = { + 0x90,0x55,0x34, // prelude + 0x81,0x2f,0x81,0x2c,0x82,0x0c,0x6f,0x81,0x33, // names: request_pin_on_device, prompt, attempts_remaining, allow_cancel, wrong_pin + 0xc0,0xd2,0x4d,0x25,0x25,0x25,0x45,0x48,0x22,0x22,0x7c,0x60,0x40,0x4b,0x26,0x22,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x30, // LOAD_CONST_STRING 'PinCancelled' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.wire' + 0x1c,0x81,0x30, // IMPORT_FROM 'PinCancelled' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x39, // LOAD_CONST_STRING '' + 0xc5, // STORE_FAST 5 + 0x42,0x52, // JUMP 18 + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x31, // LOAD_CONST_OBJ 49 + 0xc5, // STORE_FAST 5 + 0x42,0x48, // JUMP 8 + 0x23,0x32, // LOAD_CONST_OBJ 50 + 0x14,0x49, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x81,0x31, // LOAD_METHOD 'request_pin' + 0x10,0x81,0x2c, // LOAD_CONST_STRING 'prompt' + 0xb0, // LOAD_FAST 0 + 0x10,0x81,0x32, // LOAD_CONST_STRING 'subprompt' + 0xb5, // LOAD_FAST 5 + 0x10,0x6f, // LOAD_CONST_STRING 'allow_cancel' + 0xb2, // LOAD_FAST 2 + 0x10,0x81,0x33, // LOAD_CONST_STRING 'wrong_pin' + 0xb3, // LOAD_FAST 3 + 0x36,0x88,0x00, // CALL_METHOD 1024 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x81,0x34, // LOAD_CONST_STRING 'pin_device' + 0x12,0x07, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x81,0x35, // LOAD_ATTR 'PinEntry' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x12,0x12, // LOAD_GLOBAL 'CANCELLED' + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb4, // LOAD_FAST 4 + 0x65, // RAISE_OBJ + 0xb6, // LOAD_FAST 6 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___request_pin_on_device = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_trezor_ui_layouts_tt___init___request_pin_on_device, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 123, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 175, + .line_info = fun_data_trezor_ui_layouts_tt___init___request_pin_on_device + 12, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___request_pin_on_device + 29, + .opcodes = fun_data_trezor_ui_layouts_tt___init___request_pin_on_device + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_reenter_pin +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_reenter_pin[12] = { + 0x89,0x41,0x0e, // prelude + 0x81,0x36,0x82,0x0d, // names: confirm_reenter_pin, is_wipe_code + 0xc0,0xf0,0x20, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_reenter_pin = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_reenter_pin, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 182, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_reenter_pin + 7, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_reenter_pin + 10, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_reenter_pin + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___pin_mismatch_popup +static const byte fun_data_trezor_ui_layouts_tt___init___pin_mismatch_popup[74] = { + 0xb9,0x41,0x14, // prelude + 0x81,0x37,0x82,0x0d, // names: pin_mismatch_popup, is_wipe_code + 0xc0,0xf7,0x31,0x2a,0x2c,0x44, // code info + 0x12,0x0d, // LOAD_GLOBAL 'button_request' + 0x23,0x33, // LOAD_CONST_OBJ 51 + 0x10,0x81,0x38, // LOAD_CONST_STRING 'code' + 0x12,0x81,0x5e, // LOAD_GLOBAL 'BR_TYPE_OTHER' + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x34, // LOAD_CONST_OBJ 52 + 0x42,0x42, // JUMP 2 + 0x23,0x35, // LOAD_CONST_OBJ 53 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x81,0x39, // LOAD_CONST_STRING 'wipe codes' + 0x42,0x43, // JUMP 3 + 0x10,0x81,0x3a, // LOAD_CONST_STRING 'PINs' + 0xc2, // STORE_FAST 2 + 0x12,0x81,0x25, // LOAD_GLOBAL 'show_error_popup' + 0xb1, // LOAD_FAST 1 + 0x23,0x36, // LOAD_CONST_OBJ 54 + 0x14,0x49, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x3a, // LOAD_CONST_STRING 'button' + 0x10,0x26, // LOAD_CONST_STRING 'TRY AGAIN' + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___pin_mismatch_popup = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt___init___pin_mismatch_popup, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 74, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 183, + .line_info = fun_data_trezor_ui_layouts_tt___init___pin_mismatch_popup + 7, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___pin_mismatch_popup + 13, + .opcodes = fun_data_trezor_ui_layouts_tt___init___pin_mismatch_popup + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___wipe_code_same_as_pin_popup +static const byte fun_data_trezor_ui_layouts_tt___init___wipe_code_same_as_pin_popup[45] = { + 0xa0,0x40,0x0e, // prelude + 0x81,0x3b, // names: wipe_code_same_as_pin_popup + 0xd0,0x02,0x31,0x23,0x22, // code info + 0x12,0x0d, // LOAD_GLOBAL 'button_request' + 0x23,0x37, // LOAD_CONST_OBJ 55 + 0x10,0x81,0x38, // LOAD_CONST_STRING 'code' + 0x12,0x81,0x5e, // LOAD_GLOBAL 'BR_TYPE_OTHER' + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x81,0x25, // LOAD_GLOBAL 'show_error_popup' + 0x23,0x38, // LOAD_CONST_OBJ 56 + 0x23,0x39, // LOAD_CONST_OBJ 57 + 0x10,0x3a, // LOAD_CONST_STRING 'button' + 0x10,0x26, // LOAD_CONST_STRING 'TRY AGAIN' + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___wipe_code_same_as_pin_popup = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt___init___wipe_code_same_as_pin_popup, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 187, + .line_info = fun_data_trezor_ui_layouts_tt___init___wipe_code_same_as_pin_popup + 5, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___wipe_code_same_as_pin_popup + 10, + .opcodes = fun_data_trezor_ui_layouts_tt___init___wipe_code_same_as_pin_popup + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt___init____lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/__init__.py, scope trezor_ui_layouts_tt___init___confirm_set_new_pin +static const byte fun_data_trezor_ui_layouts_tt___init___confirm_set_new_pin[73] = { + 0x81,0x55,0x22, // prelude + 0x81,0x3c,0x20,0x16,0x4b,0x82,0x0e,0x22, // names: confirm_set_new_pin, br_type, title, description, information, br_code + 0xd0,0x11,0x22,0x22,0x22,0x26,0x27,0x43,0x24, // code info + 0x12,0x46, // LOAD_GLOBAL 'raise_if_not_confirmed' + 0x12,0x0e, // LOAD_GLOBAL 'interact' + 0x12,0x14, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x52, // LOAD_METHOD 'confirm_emphasized' + 0x10,0x16, // LOAD_CONST_STRING 'title' + 0xb1, // LOAD_FAST 1 + 0x14,0x48, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x53, // LOAD_CONST_STRING 'items' + 0x10,0x81,0x3d, // LOAD_CONST_STRING 'Turn on ' + 0x52, // LOAD_CONST_TRUE + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x3a, // LOAD_CONST_OBJ 58 + 0xb3, // LOAD_FAST 3 + 0x2a,0x04, // BUILD_TUPLE 4 + 0x10,0x31, // LOAD_CONST_STRING 'verb' + 0x10,0x81,0x3e, // LOAD_CONST_STRING 'TURN ON' + 0x36,0x86,0x00, // CALL_METHOD 768 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init___confirm_set_new_pin = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_trezor_ui_layouts_tt___init___confirm_set_new_pin, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 73, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 188, + .line_info = fun_data_trezor_ui_layouts_tt___init___confirm_set_new_pin + 11, + .line_info_top = fun_data_trezor_ui_layouts_tt___init___confirm_set_new_pin + 20, + .opcodes = fun_data_trezor_ui_layouts_tt___init___confirm_set_new_pin + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt___init____lt_module_gt_[] = { + &raw_code_trezor_ui_layouts_tt___init___RustLayout, + &raw_code_trezor_ui_layouts_tt___init___draw_simple, + &raw_code_trezor_ui_layouts_tt___init___raise_if_not_confirmed, + &raw_code_trezor_ui_layouts_tt___init___confirm_action, + &raw_code_trezor_ui_layouts_tt___init___confirm_single, + &raw_code_trezor_ui_layouts_tt___init___confirm_reset_device, + &raw_code_trezor_ui_layouts_tt___init___prompt_backup, + &raw_code_trezor_ui_layouts_tt___init___confirm_path_warning, + &raw_code_trezor_ui_layouts_tt___init___confirm_homescreen, + &raw_code_trezor_ui_layouts_tt___init___show_address, + &raw_code_trezor_ui_layouts_tt___init___show_pubkey, + &raw_code_trezor_ui_layouts_tt___init___show_error_and_raise, + &raw_code_trezor_ui_layouts_tt___init___show_warning, + &raw_code_trezor_ui_layouts_tt___init___show_success, + &raw_code_trezor_ui_layouts_tt___init___confirm_output, + &raw_code_trezor_ui_layouts_tt___init___confirm_payment_request, + &raw_code_trezor_ui_layouts_tt___init___should_show_more, + &raw_code_trezor_ui_layouts_tt___init____confirm_ask_pagination, + &raw_code_trezor_ui_layouts_tt___init___confirm_blob, + &raw_code_trezor_ui_layouts_tt___init___confirm_address, + &raw_code_trezor_ui_layouts_tt___init___confirm_text, + &raw_code_trezor_ui_layouts_tt___init___confirm_amount, + &raw_code_trezor_ui_layouts_tt___init___confirm_value, + &raw_code_trezor_ui_layouts_tt___init___confirm_properties, + &raw_code_trezor_ui_layouts_tt___init___confirm_total, + &raw_code_trezor_ui_layouts_tt___init___confirm_ethereum_tx, + &raw_code_trezor_ui_layouts_tt___init___confirm_joint_total, + &raw_code_trezor_ui_layouts_tt___init___confirm_metadata, + &raw_code_trezor_ui_layouts_tt___init___confirm_replacement, + &raw_code_trezor_ui_layouts_tt___init___confirm_modify_output, + &raw_code_trezor_ui_layouts_tt___init___with_info, + &raw_code_trezor_ui_layouts_tt___init___confirm_modify_fee, + &raw_code_trezor_ui_layouts_tt___init___confirm_coinjoin, + &raw_code_trezor_ui_layouts_tt___init___confirm_sign_identity, + &raw_code_trezor_ui_layouts_tt___init___confirm_signverify, + &raw_code_trezor_ui_layouts_tt___init___show_error_popup, + &raw_code_trezor_ui_layouts_tt___init___request_passphrase_on_host, + &raw_code_trezor_ui_layouts_tt___init___request_passphrase_on_device, + &raw_code_trezor_ui_layouts_tt___init___request_pin_on_device, + &raw_code_trezor_ui_layouts_tt___init___confirm_reenter_pin, + &raw_code_trezor_ui_layouts_tt___init___pin_mismatch_popup, + &raw_code_trezor_ui_layouts_tt___init___wipe_code_same_as_pin_popup, + &raw_code_trezor_ui_layouts_tt___init___confirm_set_new_pin, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 748, + #endif + .children = (void *)&children_trezor_ui_layouts_tt___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 43, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_ui_layouts_tt___init____lt_module_gt_ + 4, + .line_info_top = fun_data_trezor_ui_layouts_tt___init____lt_module_gt_ + 128, + .opcodes = fun_data_trezor_ui_layouts_tt___init____lt_module_gt_ + 128, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_ui_layouts_tt___init__[277] = { + MP_QSTR_trezor_slash_ui_slash_layouts_slash_tt_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_trezorui2, + MP_QSTR_io, + MP_QSTR_loop, + MP_QSTR_ui, + MP_QSTR_trezor, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_ActionCancelled, + MP_QSTR_trezor_dot_wire, + MP_QSTR_wait, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_button_request, + MP_QSTR_interact, + MP_QSTR_common, + MP_QSTR_Other, + MP_QSTR_CONFIRMED, + MP_QSTR_CANCELLED, + MP_QSTR_INFO, + MP_QSTR_RustLayout, + MP_QSTR_Layout, + MP_QSTR_title, + MP_QSTR_address_qr, + MP_QSTR_case_sensitive, + MP_QSTR_path, + MP_QSTR_account, + MP_QSTR_network, + MP_QSTR_multisig_index, + MP_QSTR_xpubs, + MP_QSTR_mismatch_title, + MP_QSTR_show_address, + MP_QSTR_br_type, + MP_QSTR_Address, + MP_QSTR_br_code, + MP_QSTR_chunkify, + MP_QSTR_Public_space_key, + MP_QSTR_show_pubkey, + MP_QSTR_TRY_space_AGAIN, + MP_QSTR_CONTINUE, + MP_QSTR_Warning, + MP_QSTR_ConfirmOutput, + MP_QSTR_Show_space_all, + MP_QSTR_should_show_more, + MP_QSTR_CONFIRM, + MP_QSTR_Address_colon_, + MP_QSTR_confirm_address, + MP_QSTR_Amount_colon_, + MP_QSTR_confirm_amount, + MP_QSTR_verb, + MP_QSTR_subtitle, + MP_QSTR_hold, + MP_QSTR_info_button, + MP_QSTR_SUMMARY, + MP_QSTR_confirm_total, + MP_QSTR_SignTx, + MP_QSTR_confirm_ethereum_tx, + MP_QSTR_, + MP_QSTR_button, + MP_QSTR_timeout_ms, + MP_QSTR_draw_simple, + MP_QSTR_attach_timer_fn, + MP_QSTR_backlight_fade, + MP_QSTR_style, + MP_QSTR_BACKLIGHT_DIM, + MP_QSTR_display, + MP_QSTR_clear, + MP_QSTR_paint, + MP_QSTR_refresh, + MP_QSTR_BACKLIGHT_NORMAL, + MP_QSTR_raise_if_not_confirmed, + MP_QSTR_confirm_action, + MP_QSTR_upper, + MP_QSTR_format, + MP_QSTR_action, + MP_QSTR_description, + MP_QSTR_verb_cancel, + MP_QSTR_hold_danger, + MP_QSTR_reverse, + MP_QSTR_confirm_single, + MP_QSTR_partition, + MP_QSTR__brace_open__brace_close_, + MP_QSTR_confirm_emphasized, + MP_QSTR_items, + MP_QSTR_ProtectCall, + MP_QSTR_confirm_reset_device, + MP_QSTR_ResetDevice, + MP_QSTR_prompt_backup, + MP_QSTR_SUCCESS, + MP_QSTR_BACK_space_UP, + MP_QSTR_SKIP, + MP_QSTR_WARNING, + MP_QSTR_confirm_path_warning, + MP_QSTR_lower, + MP_QSTR_show_warning, + MP_QSTR_value, + MP_QSTR_UnknownDerivationPath, + MP_QSTR_confirm_homescreen, + MP_QSTR_image, + MP_QSTR_data, + MP_QSTR_extra, + MP_QSTR_pages, + MP_QSTR_page_count, + MP_QSTR_show_address_details, + MP_QSTR_qr_title, + MP_QSTR_address, + MP_QSTR_details_title, + MP_QSTR_show_mismatch, + MP_QSTR_PublicKey, + MP_QSTR_show_error_and_raise, + MP_QSTR_show_error, + MP_QSTR_allow_cancel, + MP_QSTR_show_success, + MP_QSTR_Success, + MP_QSTR_confirm_output, + MP_QSTR_startswith, + MP_QSTR_CONFIRM_space_, + MP_QSTR_AMOUNT_space__hash__brace_open__brace_close_, + MP_QSTR_SENDING_space_TO, + MP_QSTR_confirm_value, + MP_QSTR__caret_, + MP_QSTR_confirm_payment_request, + MP_QSTR_confirm_with_info, + MP_QSTR_SENDING, + MP_QSTR_NORMAL, + MP_QSTR__brace_open__brace_close__space_to_0x0a__brace_open__brace_close_, + MP_QSTR_DETAILS, + MP_QSTR__confirm_ask_pagination, + MP_QSTR_hexlify, + MP_QSTR_ubinascii, + MP_QSTR_decode, + MP_QSTR_para, + MP_QSTR_MONO, + MP_QSTR_confirm_more, + MP_QSTR_CLOSE, + MP_QSTR_request_complete_repaint, + MP_QSTR_confirm_blob, + MP_QSTR_confirm_text, + MP_QSTR_confirm_properties, + MP_QSTR_append, + MP_QSTR_Fee_space_rate_colon_, + MP_QSTR_show_info_with_cancel, + MP_QSTR_cancel_arrow, + MP_QSTR_RECIPIENT, + MP_QSTR_confirm_joint_total, + MP_QSTR_confirm_metadata, + MP_QSTR_description_param, + MP_QSTR_confirm_replacement, + MP_QSTR_confirm_modify_output, + MP_QSTR_sign, + MP_QSTR_amount_change, + MP_QSTR_amount_new, + MP_QSTR_with_info, + MP_QSTR_confirm_modify_fee, + MP_QSTR_user_fee_change, + MP_QSTR_total_fee_new, + MP_QSTR_fee_rate_amount, + MP_QSTR_modify_fee, + MP_QSTR_confirm_coinjoin, + MP_QSTR_max_rounds, + MP_QSTR_max_feerate, + MP_QSTR_confirm_sign_identity, + MP_QSTR_Sign_space__brace_open__brace_close_, + MP_QSTR__0x0a_, + MP_QSTR_confirm_signverify, + MP_QSTR_show_error_popup, + MP_QSTR__0x0a__brace_open__brace_close_, + MP_QSTR_time_ms, + MP_QSTR_request_passphrase_on_host, + MP_QSTR_show_simple, + MP_QSTR_request_passphrase_on_device, + MP_QSTR_request_passphrase, + MP_QSTR_prompt, + MP_QSTR_max_len, + MP_QSTR_PassphraseEntry, + MP_QSTR_request_pin_on_device, + MP_QSTR_PinCancelled, + MP_QSTR_request_pin, + MP_QSTR_subprompt, + MP_QSTR_wrong_pin, + MP_QSTR_pin_device, + MP_QSTR_PinEntry, + MP_QSTR_confirm_reenter_pin, + MP_QSTR_pin_mismatch_popup, + MP_QSTR_code, + MP_QSTR_wipe_space_codes, + MP_QSTR_PINs, + MP_QSTR_wipe_code_same_as_pin_popup, + MP_QSTR_confirm_set_new_pin, + MP_QSTR_Turn_space_on_space_, + MP_QSTR_TURN_space_ON, + MP_QSTR___init__, + MP_QSTR_layout, + MP_QSTR_Timer, + MP_QSTR_timer, + MP_QSTR_set_timer, + MP_QSTR_schedule, + MP_QSTR__paint, + MP_QSTR_storage_dot_cache, + MP_QSTR_cache, + MP_QSTR_homescreen_shown, + MP_QSTR_create_tasks, + MP_QSTR_handle_timers, + MP_QSTR_handle_input_and_rendering, + MP_QSTR__first_paint, + MP_QSTR_BACKLIGHT_NONE, + MP_QSTR_BACKLIGHT_LEVEL, + MP_QSTR_workflow, + MP_QSTR_TOUCH, + MP_QSTR_idle_timer, + MP_QSTR_touch, + MP_QSTR_TOUCH_START, + MP_QSTR_TOUCH_MOVE, + MP_QSTR_TOUCH_END, + MP_QSTR_touch_event, + MP_QSTR_Result, + MP_QSTR_dummy_set_timer, + MP_QSTR_xpub_title, + MP_QSTR__paren_open_YOURS_paren_close_, + MP_QSTR__paren_open_COSIGNER_paren_close_, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_ctx_wait, + MP_QSTR_BR_TYPE_OTHER, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_a, + MP_QSTR_exc, + MP_QSTR_recovery, + MP_QSTR_path_type, + MP_QSTR_enumerate, + MP_QSTR_pubkey, + MP_QSTR_content, + MP_QSTR_subheader, + MP_QSTR_amount, + MP_QSTR_address_label, + MP_QSTR_output_index, + MP_QSTR_len, + MP_QSTR_recipient_name, + MP_QSTR_memos, + MP_QSTR_button_text, + MP_QSTR_confirm, + MP_QSTR_isinstance, + MP_QSTR_str, + MP_QSTR_bytes, + MP_QSTR_ask_pagination, + MP_QSTR_ValueError, + MP_QSTR_props, + MP_QSTR_total_amount, + MP_QSTR_fee_amount, + MP_QSTR_total_label, + MP_QSTR_fee_label, + MP_QSTR_account_label, + MP_QSTR_bool, + MP_QSTR_recipient, + MP_QSTR_maximum_fee, + MP_QSTR_spending_amount, + MP_QSTR_param, + MP_QSTR_txid, + MP_QSTR_main_layout, + MP_QSTR_info_layout, + MP_QSTR_max_fee_per_vbyte, + MP_QSTR_proto, + MP_QSTR_identity, + MP_QSTR_challenge_visual, + MP_QSTR_coin, + MP_QSTR_message, + MP_QSTR_verify, + MP_QSTR_attempts_remaining, + MP_QSTR_is_wipe_code, + MP_QSTR_information, + MP_QSTR_self, + MP_QSTR_token, + MP_QSTR_deadline, + MP_QSTR_RuntimeError, + MP_QSTR__star_, + MP_QSTR_i, +}; + +// constants +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt___init___8 = {{&mp_type_str}, 60953, 32, (const byte*)"\x4e\x65\x77\x20\x77\x61\x6c\x6c\x65\x74\x20\x63\x72\x65\x61\x74\x65\x64\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt___init___9 = {{&mp_type_str}, 41491, 45, (const byte*)"\x59\x6f\x75\x20\x73\x68\x6f\x75\x6c\x64\x20\x62\x61\x63\x6b\x20\x75\x70\x20\x79\x6f\x75\x72\x20\x6e\x65\x77\x20\x77\x61\x6c\x6c\x65\x74\x20\x72\x69\x67\x68\x74\x20\x6e\x6f\x77\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt___init___11 = {{&mp_type_str}, 44508, 41, (const byte*)"\x41\x72\x65\x20\x79\x6f\x75\x20\x73\x75\x72\x65\x20\x79\x6f\x75\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x73\x6b\x69\x70\x20\x74\x68\x65\x20\x62\x61\x63\x6b\x75\x70\x3f"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt___init___12 = {{&mp_type_str}, 21282, 46, (const byte*)"\x59\x6f\x75\x20\x63\x61\x6e\x20\x62\x61\x63\x6b\x20\x75\x70\x20\x79\x6f\x75\x72\x20\x54\x72\x65\x7a\x6f\x72\x20\x6f\x6e\x63\x65\x2c\x20\x61\x74\x20\x61\x6e\x79\x20\x74\x69\x6d\x65\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt___init___13 = {{&mp_type_str}, 23719, 43, (const byte*)"\x57\x72\x6f\x6e\x67\x20\x64\x65\x72\x69\x76\x61\x74\x69\x6f\x6e\x20\x70\x61\x74\x68\x20\x66\x6f\x72\x20\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x61\x63\x63\x6f\x75\x6e\x74\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt___init___19 = {{&mp_type_str}, 7431, 26, (const byte*)"\x52\x45\x43\x45\x49\x56\x45\x20\x41\x44\x44\x52\x45\x53\x53\x0a\x28\x4d\x55\x4c\x54\x49\x53\x49\x47\x29"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt___init___24 = {{&mp_type_str}, 31490, 36, (const byte*)"\x45\x69\x74\x68\x65\x72\x20\x76\x65\x72\x62\x20\x6f\x72\x20\x68\x6f\x6c\x64\x3d\x54\x72\x75\x65\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x73\x65\x74"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt___init___44 = {{&mp_type_str}, 52713, 39, (const byte*)"\x45\x69\x74\x68\x65\x72\x20\x62\x75\x74\x74\x6f\x6e\x20\x6f\x72\x20\x74\x69\x6d\x65\x6f\x75\x74\x5f\x6d\x73\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x73\x65\x74"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt___init___45 = {{&mp_type_str}, 29072, 29, (const byte*)"\x50\x6c\x65\x61\x73\x65\x20\x65\x6e\x74\x65\x72\x20\x79\x6f\x75\x72\x20\x70\x61\x73\x73\x70\x68\x72\x61\x73\x65\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt___init___48 = {{&mp_type_str}, 47894, 26, (const byte*)"\x50\x61\x73\x73\x70\x68\x72\x61\x73\x65\x20\x65\x6e\x74\x72\x79\x20\x63\x61\x6e\x63\x65\x6c\x6c\x65\x64"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt___init___54 = {{&mp_type_str}, 9683, 32, (const byte*)"\x54\x68\x65\x20\x7b\x7d\x20\x79\x6f\x75\x20\x65\x6e\x74\x65\x72\x65\x64\x20\x64\x6f\x20\x6e\x6f\x74\x20\x6d\x61\x74\x63\x68\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt___init___57 = {{&mp_type_str}, 61497, 46, (const byte*)"\x54\x68\x65\x20\x77\x69\x70\x65\x20\x63\x6f\x64\x65\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x64\x69\x66\x66\x65\x72\x65\x6e\x74\x20\x66\x72\x6f\x6d\x20\x79\x6f\x75\x72\x20\x50\x49\x4e\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_ui_layouts_tt___init__[60] = { + MP_ROM_QSTR(MP_QSTR_Address_space_mismatch_question_), + MP_ROM_QSTR(MP_QSTR_Key_space_mismatch_question_), + MP_ROM_QSTR(MP_QSTR_Total_space_amount_colon_), + MP_ROM_QSTR(MP_QSTR_Including_space_fee_colon_), + MP_ROM_QSTR(MP_QSTR_RECOVER_space_WALLET), + MP_ROM_QSTR(MP_QSTR_CREATE_space_WALLET), + MP_ROM_QSTR(MP_QSTR_recover_device), + MP_ROM_QSTR(MP_QSTR_setup_device), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt___init___8), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt___init___9), + MP_ROM_QSTR(MP_QSTR_backup_device), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt___init___11), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt___init___12), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt___init___13), + MP_ROM_QSTR(MP_QSTR_Unknown_space__brace_open__brace_close__dot_), + MP_ROM_QSTR(MP_QSTR_Continue_space_anyway_question_), + MP_ROM_QSTR(MP_QSTR_path_warning), + MP_ROM_QSTR(MP_QSTR_CHANGE_space_HOMESCREEN), + MP_ROM_QSTR(MP_QSTR_set_homesreen), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt___init___19), + MP_ROM_QSTR(MP_QSTR_RECEIVE_space_ADDRESS), + MP_ROM_QSTR(MP_QSTR_RECEIVING_space_TO), + MP_ROM_QSTR(MP_QSTR_RECIPIENT_space__hash__brace_open__brace_close_), + MP_ROM_QSTR(MP_QSTR_SENDING_space_AMOUNT), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt___init___24), + MP_ROM_QSTR(MP_QSTR_Sending_space_from_space_account_colon_), + MP_ROM_QSTR(MP_QSTR_INFORMATION), + MP_ROM_QSTR(MP_QSTR_Maximum_space_fee_colon_), + MP_ROM_QSTR(MP_QSTR_FEE_space_INFORMATION), + MP_ROM_QSTR(MP_QSTR_JOINT_space_TRANSACTION), + MP_ROM_QSTR(MP_QSTR_You_space_are_space_contributing_colon_), + MP_ROM_QSTR(MP_QSTR_To_space_the_space_total_space_amount_colon_), + MP_ROM_QSTR(MP_QSTR_Transaction_space_ID_colon_), + MP_ROM_QSTR(MP_QSTR_modify_output), + MP_ROM_QSTR(MP_QSTR_MODIFY_space_AMOUNT), + MP_ROM_QSTR(MP_QSTR_New_space_fee_space_rate_colon_), + MP_ROM_QSTR(MP_QSTR_coinjoin_final), + MP_ROM_QSTR(MP_QSTR_sign_identity), + MP_ROM_QSTR(MP_QSTR_VERIFY_space__brace_open__brace_close__space_MESSAGE), + MP_ROM_QSTR(MP_QSTR_verify_message), + MP_ROM_QSTR(MP_QSTR_SIGN_space__brace_open__brace_close__space_MESSAGE), + MP_ROM_QSTR(MP_QSTR_sign_message), + MP_ROM_QSTR(MP_QSTR_Confirm_space_address_colon_), + MP_ROM_QSTR(MP_QSTR_Confirm_space_message_colon_), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt___init___44), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt___init___45), + MP_ROM_QSTR(MP_QSTR_Enter_space_passphrase), + MP_ROM_QSTR(MP_QSTR_passphrase_device), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt___init___48), + MP_ROM_QSTR(MP_QSTR_Last_space_attempt), + MP_ROM_QSTR(MP_QSTR__brace_open__brace_close__space_tries_space_left), + MP_ROM_QSTR(MP_QSTR_pin_mismatch), + MP_ROM_QSTR(MP_QSTR_Wipe_space_code_space_mismatch), + MP_ROM_QSTR(MP_QSTR_PIN_space_mismatch), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt___init___54), + MP_ROM_QSTR(MP_QSTR_wipe_code_same_as_pin), + MP_ROM_QSTR(MP_QSTR_Invalid_space_wipe_space_code), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt___init___57), + MP_ROM_QSTR(MP_QSTR__space_protection_question__0x0a__0x0a_), + MP_ROM_QSTR(MP_QSTR_MULTISIG_space_XPUB_space__hash__brace_open__brace_close__0x0a_), +}; + +static const mp_frozen_module_t frozen_module_trezor_ui_layouts_tt___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_ui_layouts_tt___init__, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_ui_layouts_tt___init__, + }, + .rc = &raw_code_trezor_ui_layouts_tt___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_ui_layouts_tt_fido +// - original source file: build/firmware/src/trezor/ui/layouts/tt/fido.mpy +// - frozen file name: trezor/ui/layouts/tt/fido.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/ui/layouts/tt/fido.py, scope trezor_ui_layouts_tt_fido__lt_module_gt_ +static const byte fun_data_trezor_ui_layouts_tt_fido__lt_module_gt_[71] = { + 0x08,0x1a, // prelude + 0x01, // names: + 0x40,0x26,0x4c,0x2c,0x4c,0x60,0x20,0x80,0x22,0x64,0x84,0x1c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'trezorui2' + 0x16,0x02, // STORE_NAME 'trezorui2' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor.enums' + 0x1c,0x03, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x03, // STORE_NAME 'ButtonRequestType' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x05, // LOAD_CONST_STRING 'interact' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'common' + 0x1c,0x05, // IMPORT_FROM 'interact' + 0x16,0x05, // STORE_NAME 'interact' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x07, // LOAD_CONST_STRING 'RustLayout' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME '' + 0x1c,0x07, // IMPORT_FROM 'RustLayout' + 0x16,0x07, // STORE_NAME 'RustLayout' + 0x59, // POP_TOP + 0x11,0x07, // LOAD_NAME 'RustLayout' + 0x16,0x18, // STORE_NAME '_RustFidoLayout' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x09, // STORE_NAME 'confirm_fido' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x12, // STORE_NAME 'confirm_fido_reset' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt_fido__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/fido.py, scope trezor_ui_layouts_tt_fido_confirm_fido +static const byte fun_data_trezor_ui_layouts_tt_fido_confirm_fido[89] = { + 0x88,0x54,0x22, // prelude + 0x09,0x19,0x0c,0x0d,0x0e, // names: confirm_fido, header, app_name, icon_name, accounts + 0x80,0x37,0x20,0x22,0x26,0x74,0x60,0x6f,0x20,0x29,0x62,0x4b, // code info + 0x12,0x18, // LOAD_GLOBAL '_RustFidoLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x09, // LOAD_METHOD 'confirm_fido' + 0x10,0x0a, // LOAD_CONST_STRING 'title' + 0xb0, // LOAD_FAST 0 + 0x14,0x0b, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x0c, // LOAD_CONST_STRING 'app_name' + 0xb1, // LOAD_FAST 1 + 0x10,0x0d, // LOAD_CONST_STRING 'icon_name' + 0xb2, // LOAD_FAST 2 + 0x10,0x0e, // LOAD_CONST_STRING 'accounts' + 0xb3, // LOAD_FAST 3 + 0x36,0x88,0x00, // CALL_METHOD 1024 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0x12,0x05, // LOAD_GLOBAL 'interact' + 0xb4, // LOAD_FAST 4 + 0x10,0x09, // LOAD_CONST_STRING 'confirm_fido' + 0x12,0x03, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x0f, // LOAD_ATTR 'Other' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0x12,0x1a, // LOAD_GLOBAL 'isinstance' + 0xb5, // LOAD_FAST 5 + 0x12,0x1b, // LOAD_GLOBAL 'int' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb5, // LOAD_FAST 5 + 0x63, // RETURN_VALUE + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'ActionCancelled' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'trezor.wire' + 0x1c,0x10, // IMPORT_FROM 'ActionCancelled' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_fido_confirm_fido = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_trezor_ui_layouts_tt_fido_confirm_fido, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 89, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_trezor_ui_layouts_tt_fido_confirm_fido + 8, + .line_info_top = fun_data_trezor_ui_layouts_tt_fido_confirm_fido + 20, + .opcodes = fun_data_trezor_ui_layouts_tt_fido_confirm_fido + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_fido__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/fido.py, scope trezor_ui_layouts_tt_fido_confirm_fido_reset +static const byte fun_data_trezor_ui_layouts_tt_fido_confirm_fido_reset[49] = { + 0xd8,0x40,0x12, // prelude + 0x12, // names: confirm_fido_reset + 0x80,0x4e,0x22,0x26,0x24,0x24,0x6b,0x20, // code info + 0x12,0x07, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x13, // LOAD_METHOD 'confirm_action' + 0x10,0x0a, // LOAD_CONST_STRING 'title' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x10,0x14, // LOAD_CONST_STRING 'action' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x10,0x15, // LOAD_CONST_STRING 'description' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x10,0x16, // LOAD_CONST_STRING 'reverse' + 0x52, // LOAD_CONST_TRUE + 0x36,0x88,0x00, // CALL_METHOD 1024 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x13,0x17, // LOAD_ATTR 'CONFIRMED' + 0xde, // BINARY_OP 7 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_fido_confirm_fido_reset = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt_fido_confirm_fido_reset, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_trezor_ui_layouts_tt_fido_confirm_fido_reset + 4, + .line_info_top = fun_data_trezor_ui_layouts_tt_fido_confirm_fido_reset + 12, + .opcodes = fun_data_trezor_ui_layouts_tt_fido_confirm_fido_reset + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt_fido__lt_module_gt_[] = { + &raw_code_trezor_ui_layouts_tt_fido_confirm_fido, + &raw_code_trezor_ui_layouts_tt_fido_confirm_fido_reset, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_fido__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt_fido__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 71, + #endif + .children = (void *)&children_trezor_ui_layouts_tt_fido__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_ui_layouts_tt_fido__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_ui_layouts_tt_fido__lt_module_gt_ + 15, + .opcodes = fun_data_trezor_ui_layouts_tt_fido__lt_module_gt_ + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_ui_layouts_tt_fido[28] = { + MP_QSTR_trezor_slash_ui_slash_layouts_slash_tt_slash_fido_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_trezorui2, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_interact, + MP_QSTR_common, + MP_QSTR_RustLayout, + MP_QSTR_, + MP_QSTR_confirm_fido, + MP_QSTR_title, + MP_QSTR_upper, + MP_QSTR_app_name, + MP_QSTR_icon_name, + MP_QSTR_accounts, + MP_QSTR_Other, + MP_QSTR_ActionCancelled, + MP_QSTR_trezor_dot_wire, + MP_QSTR_confirm_fido_reset, + MP_QSTR_confirm_action, + MP_QSTR_action, + MP_QSTR_description, + MP_QSTR_reverse, + MP_QSTR_CONFIRMED, + MP_QSTR__RustFidoLayout, + MP_QSTR_header, + MP_QSTR_isinstance, + MP_QSTR_int, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_ui_layouts_tt_fido[3] = { + MP_ROM_QSTR(MP_QSTR_FIDO2_space_RESET), + MP_ROM_QSTR(MP_QSTR_erase_space_all_space_credentials_question_), + MP_ROM_QSTR(MP_QSTR_Do_space_you_space_really_space_want_space_to), +}; + +static const mp_frozen_module_t frozen_module_trezor_ui_layouts_tt_fido = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_ui_layouts_tt_fido, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_ui_layouts_tt_fido, + }, + .rc = &raw_code_trezor_ui_layouts_tt_fido__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_ui_layouts_tt_homescreen +// - original source file: build/firmware/src/trezor/ui/layouts/tt/homescreen.mpy +// - frozen file name: trezor/ui/layouts/tt/homescreen.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/ui/layouts/tt/homescreen.py, scope trezor_ui_layouts_tt_homescreen__lt_module_gt_ +static const byte fun_data_trezor_ui_layouts_tt_homescreen__lt_module_gt_[100] = { + 0x18,0x1c, // prelude + 0x01, // names: + 0x40,0x28,0x26,0x4c,0x4c,0x60,0x60,0x8b,0x1b,0x8b,0x2d,0x8b,0x1f, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'storage.cache' + 0x13,0x03, // LOAD_ATTR 'cache' + 0x16,0x38, // STORE_NAME 'storage_cache' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x04, // IMPORT_NAME 'trezorui2' + 0x16,0x04, // STORE_NAME 'trezorui2' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'ui' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x05, // IMPORT_FROM 'ui' + 0x16,0x05, // STORE_NAME 'ui' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x07, // LOAD_CONST_STRING 'RustLayout' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME '' + 0x1c,0x07, // IMPORT_FROM 'RustLayout' + 0x16,0x07, // STORE_NAME 'RustLayout' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x09, // LOAD_CONST_STRING 'HomescreenBase' + 0x11,0x07, // LOAD_NAME 'RustLayout' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x09, // STORE_NAME 'HomescreenBase' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x0a, // LOAD_CONST_STRING 'Homescreen' + 0x11,0x09, // LOAD_NAME 'HomescreenBase' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0a, // STORE_NAME 'Homescreen' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x02, // MAKE_FUNCTION 2 + 0x10,0x0b, // LOAD_CONST_STRING 'Lockscreen' + 0x11,0x09, // LOAD_NAME 'HomescreenBase' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0b, // STORE_NAME 'Lockscreen' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x03, // MAKE_FUNCTION 3 + 0x10,0x0c, // LOAD_CONST_STRING 'Busyscreen' + 0x11,0x09, // LOAD_NAME 'HomescreenBase' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0c, // STORE_NAME 'Busyscreen' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt_homescreen__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/homescreen.py, scope trezor_ui_layouts_tt_homescreen_HomescreenBase +static const byte fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase[41] = { + 0x08,0x13, // prelude + 0x09, // names: HomescreenBase + 0x88,0x0f,0x43,0x66,0x64,0x20,0x86,0x07,0x00, // code info + 0x11,0x39, // LOAD_NAME '__name__' + 0x16,0x3a, // STORE_NAME '__module__' + 0x10,0x09, // LOAD_CONST_STRING 'HomescreenBase' + 0x16,0x3b, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x16,0x18, // STORE_NAME 'RENDER_INDICATOR' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x11, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x13, // STORE_NAME '_paint' + 0xb0, // LOAD_FAST 0 + 0x20,0x02,0x01, // MAKE_CLOSURE 2 + 0x16,0x16, // STORE_NAME '_first_paint' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt_homescreen_HomescreenBase +// frozen bytecode for file trezor/ui/layouts/tt/homescreen.py, scope trezor_ui_layouts_tt_homescreen_HomescreenBase___init__ +static const byte fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase___init__[24] = { + 0x33,0x0c, // prelude + 0x11,0x3c,0x3d,0x12, // names: __init__, *, self, layout + 0x80,0x12, // code info + 0x12,0x3e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x11, // LOAD_SUPER_METHOD '__init__' + 0x10,0x12, // LOAD_CONST_STRING 'layout' + 0xb2, // LOAD_FAST 2 + 0x36,0x82,0x00, // CALL_METHOD 256 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_homescreen_HomescreenBase___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase___init__ + 6, + .line_info_top = fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase___init__ + 8, + .opcodes = fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase___init__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_homescreen_HomescreenBase +// frozen bytecode for file trezor/ui/layouts/tt/homescreen.py, scope trezor_ui_layouts_tt_homescreen_HomescreenBase__paint +static const byte fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase__paint[24] = { + 0x11,0x0a, // prelude + 0x13,0x3d, // names: _paint, self + 0x80,0x15,0x28, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'layout' + 0x14,0x14, // LOAD_METHOD 'paint' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x14,0x15, // LOAD_METHOD 'refresh' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_homescreen_HomescreenBase__paint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase__paint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase__paint + 4, + .line_info_top = fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase__paint + 7, + .opcodes = fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase__paint + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_homescreen_HomescreenBase +// frozen bytecode for file trezor/ui/layouts/tt/homescreen.py, scope trezor_ui_layouts_tt_homescreen_HomescreenBase__first_paint +static const byte fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase__first_paint[48] = { + 0x22,0x10, // prelude + 0x16,0x3c,0x3d, // names: _first_paint, *, self + 0x80,0x19,0x2b,0x2a,0x49, // code info + 0x12,0x38, // LOAD_GLOBAL 'storage_cache' + 0x13,0x17, // LOAD_ATTR 'homescreen_shown' + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'RENDER_INDICATOR' + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x3e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x16, // LOAD_SUPER_METHOD '_first_paint' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'RENDER_INDICATOR' + 0x12,0x38, // LOAD_GLOBAL 'storage_cache' + 0x18,0x17, // STORE_ATTR 'homescreen_shown' + 0x42,0x46, // JUMP 6 + 0xb1, // LOAD_FAST 1 + 0x14,0x13, // LOAD_METHOD '_paint' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_homescreen_HomescreenBase__first_paint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase__first_paint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase__first_paint + 5, + .line_info_top = fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase__first_paint + 10, + .opcodes = fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase__first_paint + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt_homescreen_HomescreenBase[] = { + &raw_code_trezor_ui_layouts_tt_homescreen_HomescreenBase___init__, + &raw_code_trezor_ui_layouts_tt_homescreen_HomescreenBase__paint, + &raw_code_trezor_ui_layouts_tt_homescreen_HomescreenBase__first_paint, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_homescreen_HomescreenBase = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = (void *)&children_trezor_ui_layouts_tt_homescreen_HomescreenBase, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase + 3, + .line_info_top = fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase + 11, + .opcodes = fun_data_trezor_ui_layouts_tt_homescreen_HomescreenBase + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_homescreen__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/homescreen.py, scope trezor_ui_layouts_tt_homescreen_Homescreen +static const byte fun_data_trezor_ui_layouts_tt_homescreen_Homescreen[43] = { + 0x08,0x11, // prelude + 0x0a, // names: Homescreen + 0x88,0x2a,0x46,0x86,0x1c,0x84,0x0a,0x00, // code info + 0x11,0x39, // LOAD_NAME '__name__' + 0x16,0x3a, // STORE_NAME '__module__' + 0x10,0x0a, // LOAD_CONST_STRING 'Homescreen' + 0x16,0x3b, // STORE_NAME '__qualname__' + 0x11,0x38, // LOAD_NAME 'storage_cache' + 0x13,0x0d, // LOAD_ATTR 'HOMESCREEN_ON' + 0x16,0x18, // STORE_NAME 'RENDER_INDICATOR' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x11, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x23, // STORE_NAME 'usb_checker_task' + 0xb0, // LOAD_FAST 0 + 0x20,0x02,0x01, // MAKE_CLOSURE 2 + 0x16,0x29, // STORE_NAME 'create_tasks' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt_homescreen_Homescreen +// frozen bytecode for file trezor/ui/layouts/tt/homescreen.py, scope trezor_ui_layouts_tt_homescreen_Homescreen___init__ +static const byte fun_data_trezor_ui_layouts_tt_homescreen_Homescreen___init__[119] = { + 0xb2,0x14,0x26, // prelude + 0x11,0x3c,0x3d,0x1e,0x1f,0x3f,0x40, // names: __init__, *, self, label, notification, notification_is_error, hold_to_lock + 0x80,0x33,0x22,0x26,0x28,0x2a,0x24,0x2a,0x47,0x44,0x29,0x29, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xc6, // STORE_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x6b, // POP_JUMP_IF_FALSE 43 + 0xb3, // LOAD_FAST 3 + 0x14,0x19, // LOAD_METHOD 'rstrip' + 0x10,0x1a, // LOAD_CONST_STRING '!' + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x10,0x1b, // LOAD_CONST_STRING 'COINJOIN' + 0xb3, // LOAD_FAST 3 + 0x14,0x1c, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0xdd, // BINARY_OP 6 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xc6, // STORE_FAST 6 + 0x42,0x55, // JUMP 21 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xb3, // LOAD_FAST 3 + 0x14,0x1c, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0xdd, // BINARY_OP 6 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xc6, // STORE_FAST 6 + 0x42,0x47, // JUMP 7 + 0xb4, // LOAD_FAST 4 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc6, // STORE_FAST 6 + 0x42,0x40, // JUMP 0 + 0x12,0x38, // LOAD_GLOBAL 'storage_cache' + 0x13,0x17, // LOAD_ATTR 'homescreen_shown' + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'RENDER_INDICATOR' + 0xde, // BINARY_OP 7 + 0xc7, // STORE_FAST 7 + 0x12,0x3e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x11, // LOAD_SUPER_METHOD '__init__' + 0x10,0x12, // LOAD_CONST_STRING 'layout' + 0x12,0x04, // LOAD_GLOBAL 'trezorui2' + 0x14,0x1d, // LOAD_METHOD 'show_homescreen' + 0x10,0x1e, // LOAD_CONST_STRING 'label' + 0xb2, // LOAD_FAST 2 + 0x10,0x1f, // LOAD_CONST_STRING 'notification' + 0xb3, // LOAD_FAST 3 + 0x10,0x20, // LOAD_CONST_STRING 'notification_level' + 0xb6, // LOAD_FAST 6 + 0x10,0x21, // LOAD_CONST_STRING 'hold' + 0xb5, // LOAD_FAST 5 + 0x10,0x22, // LOAD_CONST_STRING 'skip_first_paint' + 0xb7, // LOAD_FAST 7 + 0x36,0x8a,0x00, // CALL_METHOD 1280 + 0x36,0x82,0x00, // CALL_METHOD 256 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_homescreen_Homescreen___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 6, + .fun_data = fun_data_trezor_ui_layouts_tt_homescreen_Homescreen___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 119, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 23, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_trezor_ui_layouts_tt_homescreen_Homescreen___init__ + 10, + .line_info_top = fun_data_trezor_ui_layouts_tt_homescreen_Homescreen___init__ + 22, + .opcodes = fun_data_trezor_ui_layouts_tt_homescreen_Homescreen___init__ + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_homescreen_Homescreen +// frozen bytecode for file trezor/ui/layouts/tt/homescreen.py, scope trezor_ui_layouts_tt_homescreen_Homescreen_usb_checker_task +static const byte fun_data_trezor_ui_layouts_tt_homescreen_Homescreen_usb_checker_task[71] = { + 0xb9,0x40,0x14, // prelude + 0x23,0x3d, // names: usb_checker_task, self + 0x80,0x49,0x50,0x29,0x20,0x25,0x29,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x24, // LOAD_CONST_STRING 'io' + 0x10,0x25, // LOAD_CONST_STRING 'loop' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x24, // IMPORT_FROM 'io' + 0xc1, // STORE_FAST 1 + 0x1c,0x25, // IMPORT_FROM 'loop' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x26, // LOAD_METHOD 'wait' + 0xb1, // LOAD_FAST 1 + 0x13,0x27, // LOAD_ATTR 'USB_CHECK' + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'layout' + 0x14,0x28, // LOAD_METHOD 'usb_event' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'layout' + 0x14,0x14, // LOAD_METHOD 'paint' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x14,0x15, // LOAD_METHOD 'refresh' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0x21, // JUMP -31 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_homescreen_Homescreen_usb_checker_task = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt_homescreen_Homescreen_usb_checker_task, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 71, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_trezor_ui_layouts_tt_homescreen_Homescreen_usb_checker_task + 5, + .line_info_top = fun_data_trezor_ui_layouts_tt_homescreen_Homescreen_usb_checker_task + 13, + .opcodes = fun_data_trezor_ui_layouts_tt_homescreen_Homescreen_usb_checker_task + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_homescreen_Homescreen +// frozen bytecode for file trezor/ui/layouts/tt/homescreen.py, scope trezor_ui_layouts_tt_homescreen_Homescreen_create_tasks +static const byte fun_data_trezor_ui_layouts_tt_homescreen_Homescreen_create_tasks[25] = { + 0x22,0x0a, // prelude + 0x29,0x3c,0x3d, // names: create_tasks, *, self + 0x80,0x53, // code info + 0x12,0x3e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x29, // LOAD_SUPER_METHOD 'create_tasks' + 0x36,0x00, // CALL_METHOD 0 + 0xb1, // LOAD_FAST 1 + 0x14,0x23, // LOAD_METHOD 'usb_checker_task' + 0x36,0x00, // CALL_METHOD 0 + 0x2a,0x01, // BUILD_TUPLE 1 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_homescreen_Homescreen_create_tasks = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt_homescreen_Homescreen_create_tasks, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_trezor_ui_layouts_tt_homescreen_Homescreen_create_tasks + 5, + .line_info_top = fun_data_trezor_ui_layouts_tt_homescreen_Homescreen_create_tasks + 7, + .opcodes = fun_data_trezor_ui_layouts_tt_homescreen_Homescreen_create_tasks + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt_homescreen_Homescreen[] = { + &raw_code_trezor_ui_layouts_tt_homescreen_Homescreen___init__, + &raw_code_trezor_ui_layouts_tt_homescreen_Homescreen_usb_checker_task, + &raw_code_trezor_ui_layouts_tt_homescreen_Homescreen_create_tasks, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_homescreen_Homescreen = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt_homescreen_Homescreen, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = (void *)&children_trezor_ui_layouts_tt_homescreen_Homescreen, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_trezor_ui_layouts_tt_homescreen_Homescreen + 3, + .line_info_top = fun_data_trezor_ui_layouts_tt_homescreen_Homescreen + 10, + .opcodes = fun_data_trezor_ui_layouts_tt_homescreen_Homescreen + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_homescreen__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/homescreen.py, scope trezor_ui_layouts_tt_homescreen_Lockscreen +static const byte fun_data_trezor_ui_layouts_tt_homescreen_Lockscreen[48] = { + 0x18,0x0f, // prelude + 0x0b, // names: Lockscreen + 0x88,0x57,0x26,0x46,0x8a,0x14,0x00, // code info + 0x11,0x39, // LOAD_NAME '__name__' + 0x16,0x3a, // STORE_NAME '__module__' + 0x10,0x0b, // LOAD_CONST_STRING 'Lockscreen' + 0x16,0x3b, // STORE_NAME '__qualname__' + 0x11,0x38, // LOAD_NAME 'storage_cache' + 0x13,0x0e, // LOAD_ATTR 'LOCKSCREEN_ON' + 0x16,0x18, // STORE_NAME 'RENDER_INDICATOR' + 0x11,0x05, // LOAD_NAME 'ui' + 0x13,0x0f, // LOAD_ATTR 'BACKLIGHT_LOW' + 0x16,0x2c, // STORE_NAME 'BACKLIGHT_LEVEL' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x21,0x00,0x01, // MAKE_CLOSURE_DEFARGS 0 + 0x16,0x11, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x20,0x01,0x01, // MAKE_CLOSURE 1 + 0x16,0x2e, // STORE_NAME '__iter__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt_homescreen_Lockscreen +// frozen bytecode for file trezor/ui/layouts/tt/homescreen.py, scope trezor_ui_layouts_tt_homescreen_Lockscreen___init__ +static const byte fun_data_trezor_ui_layouts_tt_homescreen_Lockscreen___init__[74] = { + 0xf8,0x05,0x1a, // prelude + 0x11,0x3c,0x3d,0x1e,0x2a, // names: __init__, *, self, label, bootscreen + 0x80,0x5f,0x24,0x23,0x47,0x20,0x4d,0x29, // code info + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x18,0x2a, // STORE_ATTR 'bootscreen' + 0xb3, // LOAD_FAST 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x05, // LOAD_GLOBAL 'ui' + 0x13,0x2b, // LOAD_ATTR 'BACKLIGHT_NORMAL' + 0xb1, // LOAD_FAST 1 + 0x18,0x2c, // STORE_ATTR 'BACKLIGHT_LEVEL' + 0xb3, // LOAD_FAST 3 + 0xd3, // UNARY_OP 3 + 0x46,0x08, // JUMP_IF_FALSE_OR_POP 8 + 0x12,0x38, // LOAD_GLOBAL 'storage_cache' + 0x13,0x17, // LOAD_ATTR 'homescreen_shown' + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'RENDER_INDICATOR' + 0xde, // BINARY_OP 7 + 0xc4, // STORE_FAST 4 + 0x12,0x3e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x11, // LOAD_SUPER_METHOD '__init__' + 0x10,0x12, // LOAD_CONST_STRING 'layout' + 0x12,0x04, // LOAD_GLOBAL 'trezorui2' + 0x14,0x2d, // LOAD_METHOD 'show_lockscreen' + 0x10,0x1e, // LOAD_CONST_STRING 'label' + 0xb2, // LOAD_FAST 2 + 0x10,0x2a, // LOAD_CONST_STRING 'bootscreen' + 0xb3, // LOAD_FAST 3 + 0x10,0x22, // LOAD_CONST_STRING 'skip_first_paint' + 0xb4, // LOAD_FAST 4 + 0x36,0x86,0x00, // CALL_METHOD 768 + 0x36,0x82,0x00, // CALL_METHOD 256 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_homescreen_Lockscreen___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_trezor_ui_layouts_tt_homescreen_Lockscreen___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 74, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 17, + .line_info = fun_data_trezor_ui_layouts_tt_homescreen_Lockscreen___init__ + 8, + .line_info_top = fun_data_trezor_ui_layouts_tt_homescreen_Lockscreen___init__ + 16, + .opcodes = fun_data_trezor_ui_layouts_tt_homescreen_Lockscreen___init__ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_homescreen_Lockscreen +// frozen bytecode for file trezor/ui/layouts/tt/homescreen.py, scope trezor_ui_layouts_tt_homescreen_Lockscreen___iter__ +static const byte fun_data_trezor_ui_layouts_tt_homescreen_Lockscreen___iter__[37] = { + 0xaa,0x40,0x10, // prelude + 0x2e,0x3c,0x3d, // names: __iter__, *, self + 0x80,0x6f,0x2d,0x25,0x26, // code info + 0x12,0x3e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x2e, // LOAD_SUPER_METHOD '__iter__' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x2a, // LOAD_ATTR 'bootscreen' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb1, // LOAD_FAST 1 + 0x14,0x2f, // LOAD_METHOD 'request_complete_repaint' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_homescreen_Lockscreen___iter__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt_homescreen_Lockscreen___iter__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_trezor_ui_layouts_tt_homescreen_Lockscreen___iter__ + 6, + .line_info_top = fun_data_trezor_ui_layouts_tt_homescreen_Lockscreen___iter__ + 11, + .opcodes = fun_data_trezor_ui_layouts_tt_homescreen_Lockscreen___iter__ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt_homescreen_Lockscreen[] = { + &raw_code_trezor_ui_layouts_tt_homescreen_Lockscreen___init__, + &raw_code_trezor_ui_layouts_tt_homescreen_Lockscreen___iter__, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_homescreen_Lockscreen = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt_homescreen_Lockscreen, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = (void *)&children_trezor_ui_layouts_tt_homescreen_Lockscreen, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_trezor_ui_layouts_tt_homescreen_Lockscreen + 3, + .line_info_top = fun_data_trezor_ui_layouts_tt_homescreen_Lockscreen + 9, + .opcodes = fun_data_trezor_ui_layouts_tt_homescreen_Lockscreen + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_homescreen__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/homescreen.py, scope trezor_ui_layouts_tt_homescreen_Busyscreen +static const byte fun_data_trezor_ui_layouts_tt_homescreen_Busyscreen[37] = { + 0x08,0x0d, // prelude + 0x0c, // names: Busyscreen + 0x88,0x76,0x46,0x86,0x0b,0x00, // code info + 0x11,0x39, // LOAD_NAME '__name__' + 0x16,0x3a, // STORE_NAME '__module__' + 0x10,0x0c, // LOAD_CONST_STRING 'Busyscreen' + 0x16,0x3b, // STORE_NAME '__qualname__' + 0x11,0x38, // LOAD_NAME 'storage_cache' + 0x13,0x10, // LOAD_ATTR 'BUSYSCREEN_ON' + 0x16,0x18, // STORE_NAME 'RENDER_INDICATOR' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x11, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x20,0x01,0x01, // MAKE_CLOSURE 1 + 0x16,0x2e, // STORE_NAME '__iter__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt_homescreen_Busyscreen +// frozen bytecode for file trezor/ui/layouts/tt/homescreen.py, scope trezor_ui_layouts_tt_homescreen_Busyscreen___init__ +static const byte fun_data_trezor_ui_layouts_tt_homescreen_Busyscreen___init__[56] = { + 0x83,0x10,0x12, // prelude + 0x11,0x3c,0x3d,0x41, // names: __init__, *, self, delay_ms + 0x80,0x79,0x29,0x29,0x26, // code info + 0x12,0x38, // LOAD_GLOBAL 'storage_cache' + 0x13,0x17, // LOAD_ATTR 'homescreen_shown' + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'RENDER_INDICATOR' + 0xde, // BINARY_OP 7 + 0xc3, // STORE_FAST 3 + 0x12,0x3e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x11, // LOAD_SUPER_METHOD '__init__' + 0x10,0x12, // LOAD_CONST_STRING 'layout' + 0x12,0x04, // LOAD_GLOBAL 'trezorui2' + 0x14,0x30, // LOAD_METHOD 'show_progress_coinjoin' + 0x10,0x31, // LOAD_CONST_STRING 'title' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x10,0x32, // LOAD_CONST_STRING 'indeterminate' + 0x52, // LOAD_CONST_TRUE + 0x10,0x33, // LOAD_CONST_STRING 'time_ms' + 0xb2, // LOAD_FAST 2 + 0x10,0x22, // LOAD_CONST_STRING 'skip_first_paint' + 0xb3, // LOAD_FAST 3 + 0x36,0x88,0x00, // CALL_METHOD 1024 + 0x36,0x82,0x00, // CALL_METHOD 256 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_homescreen_Busyscreen___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui_layouts_tt_homescreen_Busyscreen___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_trezor_ui_layouts_tt_homescreen_Busyscreen___init__ + 7, + .line_info_top = fun_data_trezor_ui_layouts_tt_homescreen_Busyscreen___init__ + 12, + .opcodes = fun_data_trezor_ui_layouts_tt_homescreen_Busyscreen___init__ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_homescreen_Busyscreen +// frozen bytecode for file trezor/ui/layouts/tt/homescreen.py, scope trezor_ui_layouts_tt_homescreen_Busyscreen___iter__ +static const byte fun_data_trezor_ui_layouts_tt_homescreen_Busyscreen___iter__[54] = { + 0xb2,0x40,0x14, // prelude + 0x2e,0x3c,0x3d, // names: __iter__, *, self + 0x80,0x84,0x6b,0x2d,0x20,0x2b,0x24, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x34, // LOAD_CONST_STRING 'set_homescreen' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x35, // IMPORT_NAME 'apps.base' + 0x1c,0x34, // IMPORT_FROM 'set_homescreen' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x3e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x2e, // LOAD_SUPER_METHOD '__iter__' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0x12,0x38, // LOAD_GLOBAL 'storage_cache' + 0x14,0x36, // LOAD_METHOD 'delete' + 0x12,0x38, // LOAD_GLOBAL 'storage_cache' + 0x13,0x37, // LOAD_ATTR 'APP_COMMON_BUSY_DEADLINE_MS' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_homescreen_Busyscreen___iter__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt_homescreen_Busyscreen___iter__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 54, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_trezor_ui_layouts_tt_homescreen_Busyscreen___iter__ + 6, + .line_info_top = fun_data_trezor_ui_layouts_tt_homescreen_Busyscreen___iter__ + 13, + .opcodes = fun_data_trezor_ui_layouts_tt_homescreen_Busyscreen___iter__ + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt_homescreen_Busyscreen[] = { + &raw_code_trezor_ui_layouts_tt_homescreen_Busyscreen___init__, + &raw_code_trezor_ui_layouts_tt_homescreen_Busyscreen___iter__, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_homescreen_Busyscreen = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt_homescreen_Busyscreen, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = (void *)&children_trezor_ui_layouts_tt_homescreen_Busyscreen, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_trezor_ui_layouts_tt_homescreen_Busyscreen + 3, + .line_info_top = fun_data_trezor_ui_layouts_tt_homescreen_Busyscreen + 8, + .opcodes = fun_data_trezor_ui_layouts_tt_homescreen_Busyscreen + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt_homescreen__lt_module_gt_[] = { + &raw_code_trezor_ui_layouts_tt_homescreen_HomescreenBase, + &raw_code_trezor_ui_layouts_tt_homescreen_Homescreen, + &raw_code_trezor_ui_layouts_tt_homescreen_Lockscreen, + &raw_code_trezor_ui_layouts_tt_homescreen_Busyscreen, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_homescreen__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt_homescreen__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 100, + #endif + .children = (void *)&children_trezor_ui_layouts_tt_homescreen__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_ui_layouts_tt_homescreen__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_ui_layouts_tt_homescreen__lt_module_gt_ + 16, + .opcodes = fun_data_trezor_ui_layouts_tt_homescreen__lt_module_gt_ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_ui_layouts_tt_homescreen[66] = { + MP_QSTR_trezor_slash_ui_slash_layouts_slash_tt_slash_homescreen_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_storage_dot_cache, + MP_QSTR_cache, + MP_QSTR_trezorui2, + MP_QSTR_ui, + MP_QSTR_trezor, + MP_QSTR_RustLayout, + MP_QSTR_, + MP_QSTR_HomescreenBase, + MP_QSTR_Homescreen, + MP_QSTR_Lockscreen, + MP_QSTR_Busyscreen, + MP_QSTR_HOMESCREEN_ON, + MP_QSTR_LOCKSCREEN_ON, + MP_QSTR_BACKLIGHT_LOW, + MP_QSTR_BUSYSCREEN_ON, + MP_QSTR___init__, + MP_QSTR_layout, + MP_QSTR__paint, + MP_QSTR_paint, + MP_QSTR_refresh, + MP_QSTR__first_paint, + MP_QSTR_homescreen_shown, + MP_QSTR_RENDER_INDICATOR, + MP_QSTR_rstrip, + MP_QSTR__bang_, + MP_QSTR_COINJOIN, + MP_QSTR_upper, + MP_QSTR_show_homescreen, + MP_QSTR_label, + MP_QSTR_notification, + MP_QSTR_notification_level, + MP_QSTR_hold, + MP_QSTR_skip_first_paint, + MP_QSTR_usb_checker_task, + MP_QSTR_io, + MP_QSTR_loop, + MP_QSTR_wait, + MP_QSTR_USB_CHECK, + MP_QSTR_usb_event, + MP_QSTR_create_tasks, + MP_QSTR_bootscreen, + MP_QSTR_BACKLIGHT_NORMAL, + MP_QSTR_BACKLIGHT_LEVEL, + MP_QSTR_show_lockscreen, + MP_QSTR___iter__, + MP_QSTR_request_complete_repaint, + MP_QSTR_show_progress_coinjoin, + MP_QSTR_title, + MP_QSTR_indeterminate, + MP_QSTR_time_ms, + MP_QSTR_set_homescreen, + MP_QSTR_apps_dot_base, + MP_QSTR_delete, + MP_QSTR_APP_COMMON_BUSY_DEADLINE_MS, + MP_QSTR_storage_cache, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR__star_, + MP_QSTR_self, + MP_QSTR_super, + MP_QSTR_notification_is_error, + MP_QSTR_hold_to_lock, + MP_QSTR_delay_ms, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_ui_layouts_tt_homescreen[2] = { + MP_ROM_QSTR(MP_QSTR_EXPERIMENTAL), + MP_ROM_QSTR(MP_QSTR_Waiting_space_for_space_others), +}; + +static const mp_frozen_module_t frozen_module_trezor_ui_layouts_tt_homescreen = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_ui_layouts_tt_homescreen, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_ui_layouts_tt_homescreen, + }, + .rc = &raw_code_trezor_ui_layouts_tt_homescreen__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_ui_layouts_tt_progress +// - original source file: build/firmware/src/trezor/ui/layouts/tt/progress.mpy +// - frozen file name: trezor/ui/layouts/tt/progress.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/ui/layouts/tt/progress.py, scope trezor_ui_layouts_tt_progress__lt_module_gt_ +static const byte fun_data_trezor_ui_layouts_tt_progress__lt_module_gt_[87] = { + 0x10,0x2a, // prelude + 0x01, // names: + 0x40,0x26,0x4c,0x60,0x60,0x89,0x16,0x20,0x8b,0x0d,0x64,0x20,0x64,0x60,0x64,0x20,0x64,0x20,0x64,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'trezorui2' + 0x16,0x02, // STORE_NAME 'trezorui2' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'ui' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor' + 0x1c,0x03, // IMPORT_FROM 'ui' + 0x16,0x03, // STORE_NAME 'ui' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x05, // LOAD_CONST_STRING 'RustProgress' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x05, // STORE_NAME 'RustProgress' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x2a,0x03, // BUILD_TUPLE 3 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x06, // STORE_NAME 'progress' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0e, // STORE_NAME 'bitcoin_progress' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x0f, // STORE_NAME 'coinjoin_progress' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x11, // STORE_NAME 'pin_progress' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x12, // STORE_NAME 'monero_keyimage_sync_progress' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x14, // STORE_NAME 'monero_live_refresh_progress' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x16, // STORE_NAME 'monero_transaction_progress_inner' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt_progress__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/progress.py, scope trezor_ui_layouts_tt_progress_RustProgress +static const byte fun_data_trezor_ui_layouts_tt_progress_RustProgress[34] = { + 0x08,0x0c, // prelude + 0x05, // names: RustProgress + 0x88,0x0c,0x84,0x0b,0x64, // code info + 0x11,0x24, // LOAD_NAME '__name__' + 0x16,0x25, // STORE_NAME '__module__' + 0x10,0x05, // LOAD_CONST_STRING 'RustProgress' + 0x16,0x26, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x17, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x1e, // STORE_NAME 'set_timer' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x21, // STORE_NAME 'report' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt_progress_RustProgress +// frozen bytecode for file trezor/ui/layouts/tt/progress.py, scope trezor_ui_layouts_tt_progress_RustProgress___init__ +static const byte fun_data_trezor_ui_layouts_tt_progress_RustProgress___init__[72] = { + 0x22,0x14, // prelude + 0x17,0x28,0x07, // names: __init__, self, layout + 0x80,0x10,0x24,0x2d,0x29,0x2b,0x28, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x07, // STORE_ATTR 'layout' + 0x12,0x03, // LOAD_GLOBAL 'ui' + 0x14,0x18, // LOAD_METHOD 'backlight_fade' + 0x12,0x03, // LOAD_GLOBAL 'ui' + 0x13,0x19, // LOAD_ATTR 'style' + 0x13,0x1a, // LOAD_ATTR 'BACKLIGHT_DIM' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'ui' + 0x13,0x1b, // LOAD_ATTR 'display' + 0x14,0x1c, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x07, // LOAD_ATTR 'layout' + 0x14,0x1d, // LOAD_METHOD 'attach_timer_fn' + 0xb0, // LOAD_FAST 0 + 0x13,0x1e, // LOAD_ATTR 'set_timer' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x07, // LOAD_ATTR 'layout' + 0x14,0x1f, // LOAD_METHOD 'paint' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'ui' + 0x14,0x18, // LOAD_METHOD 'backlight_fade' + 0x12,0x03, // LOAD_GLOBAL 'ui' + 0x13,0x19, // LOAD_ATTR 'style' + 0x13,0x20, // LOAD_ATTR 'BACKLIGHT_NORMAL' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_progress_RustProgress___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt_progress_RustProgress___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_trezor_ui_layouts_tt_progress_RustProgress___init__ + 5, + .line_info_top = fun_data_trezor_ui_layouts_tt_progress_RustProgress___init__ + 12, + .opcodes = fun_data_trezor_ui_layouts_tt_progress_RustProgress___init__ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_progress_RustProgress +// frozen bytecode for file trezor/ui/layouts/tt/progress.py, scope trezor_ui_layouts_tt_progress_RustProgress_set_timer +static const byte fun_data_trezor_ui_layouts_tt_progress_RustProgress_set_timer[13] = { + 0x1b,0x0c, // prelude + 0x1e,0x28,0x29,0x2a, // names: set_timer, self, token, deadline + 0x80,0x18, // code info + 0x12,0x2b, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_progress_RustProgress_set_timer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui_layouts_tt_progress_RustProgress_set_timer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_trezor_ui_layouts_tt_progress_RustProgress_set_timer + 6, + .line_info_top = fun_data_trezor_ui_layouts_tt_progress_RustProgress_set_timer + 8, + .opcodes = fun_data_trezor_ui_layouts_tt_progress_RustProgress_set_timer + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_progress_RustProgress +// frozen bytecode for file trezor/ui/layouts/tt/progress.py, scope trezor_ui_layouts_tt_progress_RustProgress_report +static const byte fun_data_trezor_ui_layouts_tt_progress_RustProgress_report[43] = { + 0xbb,0x01,0x12, // prelude + 0x21,0x28,0x2c,0x0c, // names: report, self, value, description + 0x80,0x1b,0x2e,0x20,0x28, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x07, // LOAD_ATTR 'layout' + 0x14,0x22, // LOAD_METHOD 'progress_event' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x0d, // LOAD_CONST_STRING '' + 0x36,0x02, // CALL_METHOD 2 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x07, // LOAD_ATTR 'layout' + 0x14,0x1f, // LOAD_METHOD 'paint' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'ui' + 0x14,0x23, // LOAD_METHOD 'refresh' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_progress_RustProgress_report = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui_layouts_tt_progress_RustProgress_report, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 33, + .line_info = fun_data_trezor_ui_layouts_tt_progress_RustProgress_report + 7, + .line_info_top = fun_data_trezor_ui_layouts_tt_progress_RustProgress_report + 12, + .opcodes = fun_data_trezor_ui_layouts_tt_progress_RustProgress_report + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt_progress_RustProgress[] = { + &raw_code_trezor_ui_layouts_tt_progress_RustProgress___init__, + &raw_code_trezor_ui_layouts_tt_progress_RustProgress_set_timer, + &raw_code_trezor_ui_layouts_tt_progress_RustProgress_report, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_progress_RustProgress = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt_progress_RustProgress, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = (void *)&children_trezor_ui_layouts_tt_progress_RustProgress, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_trezor_ui_layouts_tt_progress_RustProgress + 3, + .line_info_top = fun_data_trezor_ui_layouts_tt_progress_RustProgress + 8, + .opcodes = fun_data_trezor_ui_layouts_tt_progress_RustProgress + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_progress__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/progress.py, scope trezor_ui_layouts_tt_progress_progress +static const byte fun_data_trezor_ui_layouts_tt_progress_progress[45] = { + 0xe3,0x81,0x01,0x12, // prelude + 0x06,0x27,0x0c,0x0b, // names: progress, message, description, indeterminate + 0x80,0x26,0x24,0x26,0x4a, // code info + 0x12,0x05, // LOAD_GLOBAL 'RustProgress' + 0x10,0x07, // LOAD_CONST_STRING 'layout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x08, // LOAD_METHOD 'show_progress' + 0x10,0x09, // LOAD_CONST_STRING 'title' + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x0b, // LOAD_CONST_STRING 'indeterminate' + 0xb2, // LOAD_FAST 2 + 0x10,0x0c, // LOAD_CONST_STRING 'description' + 0xb1, // LOAD_FAST 1 + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x0d, // LOAD_CONST_STRING '' + 0x36,0x86,0x00, // CALL_METHOD 768 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_progress_progress = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui_layouts_tt_progress_progress, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 3, + .qstr_block_name_idx = 6, + .line_info = fun_data_trezor_ui_layouts_tt_progress_progress + 8, + .line_info_top = fun_data_trezor_ui_layouts_tt_progress_progress + 13, + .opcodes = fun_data_trezor_ui_layouts_tt_progress_progress + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_progress__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/progress.py, scope trezor_ui_layouts_tt_progress_bitcoin_progress +static const byte fun_data_trezor_ui_layouts_tt_progress_bitcoin_progress[12] = { + 0x11,0x08, // prelude + 0x0e,0x27, // names: bitcoin_progress, message + 0x80,0x30, // code info + 0x12,0x06, // LOAD_GLOBAL 'progress' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_progress_bitcoin_progress = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt_progress_bitcoin_progress, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_trezor_ui_layouts_tt_progress_bitcoin_progress + 4, + .line_info_top = fun_data_trezor_ui_layouts_tt_progress_bitcoin_progress + 6, + .opcodes = fun_data_trezor_ui_layouts_tt_progress_bitcoin_progress + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_progress__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/progress.py, scope trezor_ui_layouts_tt_progress_coinjoin_progress +static const byte fun_data_trezor_ui_layouts_tt_progress_coinjoin_progress[28] = { + 0x41,0x0a, // prelude + 0x0f,0x27, // names: coinjoin_progress, message + 0x80,0x34,0x24, // code info + 0x12,0x05, // LOAD_GLOBAL 'RustProgress' + 0x10,0x07, // LOAD_CONST_STRING 'layout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x10, // LOAD_METHOD 'show_progress_coinjoin' + 0x10,0x09, // LOAD_CONST_STRING 'title' + 0xb0, // LOAD_FAST 0 + 0x10,0x0b, // LOAD_CONST_STRING 'indeterminate' + 0x50, // LOAD_CONST_FALSE + 0x36,0x84,0x00, // CALL_METHOD 512 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_progress_coinjoin_progress = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt_progress_coinjoin_progress, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_trezor_ui_layouts_tt_progress_coinjoin_progress + 4, + .line_info_top = fun_data_trezor_ui_layouts_tt_progress_coinjoin_progress + 7, + .opcodes = fun_data_trezor_ui_layouts_tt_progress_coinjoin_progress + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_progress__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/progress.py, scope trezor_ui_layouts_tt_progress_pin_progress +static const byte fun_data_trezor_ui_layouts_tt_progress_pin_progress[17] = { + 0x2a,0x0a, // prelude + 0x11,0x27,0x0c, // names: pin_progress, message, description + 0x80,0x3a, // code info + 0x12,0x06, // LOAD_GLOBAL 'progress' + 0xb0, // LOAD_FAST 0 + 0x10,0x0c, // LOAD_CONST_STRING 'description' + 0xb1, // LOAD_FAST 1 + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_progress_pin_progress = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt_progress_pin_progress, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_trezor_ui_layouts_tt_progress_pin_progress + 5, + .line_info_top = fun_data_trezor_ui_layouts_tt_progress_pin_progress + 7, + .opcodes = fun_data_trezor_ui_layouts_tt_progress_pin_progress + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_progress__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/progress.py, scope trezor_ui_layouts_tt_progress_monero_keyimage_sync_progress +static const byte fun_data_trezor_ui_layouts_tt_progress_monero_keyimage_sync_progress[12] = { + 0x08,0x06, // prelude + 0x12, // names: monero_keyimage_sync_progress + 0x80,0x3e, // code info + 0x12,0x06, // LOAD_GLOBAL 'progress' + 0x10,0x13, // LOAD_CONST_STRING 'SYNCING' + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_progress_monero_keyimage_sync_progress = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt_progress_monero_keyimage_sync_progress, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_trezor_ui_layouts_tt_progress_monero_keyimage_sync_progress + 3, + .line_info_top = fun_data_trezor_ui_layouts_tt_progress_monero_keyimage_sync_progress + 5, + .opcodes = fun_data_trezor_ui_layouts_tt_progress_monero_keyimage_sync_progress + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_progress__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/progress.py, scope trezor_ui_layouts_tt_progress_monero_live_refresh_progress +static const byte fun_data_trezor_ui_layouts_tt_progress_monero_live_refresh_progress[16] = { + 0x18,0x06, // prelude + 0x14, // names: monero_live_refresh_progress + 0x80,0x42, // code info + 0x12,0x06, // LOAD_GLOBAL 'progress' + 0x10,0x15, // LOAD_CONST_STRING 'REFRESHING' + 0x10,0x0b, // LOAD_CONST_STRING 'indeterminate' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_progress_monero_live_refresh_progress = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt_progress_monero_live_refresh_progress, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_trezor_ui_layouts_tt_progress_monero_live_refresh_progress + 3, + .line_info_top = fun_data_trezor_ui_layouts_tt_progress_monero_live_refresh_progress + 5, + .opcodes = fun_data_trezor_ui_layouts_tt_progress_monero_live_refresh_progress + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_progress__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/progress.py, scope trezor_ui_layouts_tt_progress_monero_transaction_progress_inner +static const byte fun_data_trezor_ui_layouts_tt_progress_monero_transaction_progress_inner[12] = { + 0x08,0x06, // prelude + 0x16, // names: monero_transaction_progress_inner + 0x80,0x46, // code info + 0x12,0x06, // LOAD_GLOBAL 'progress' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_progress_monero_transaction_progress_inner = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt_progress_monero_transaction_progress_inner, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_trezor_ui_layouts_tt_progress_monero_transaction_progress_inner + 3, + .line_info_top = fun_data_trezor_ui_layouts_tt_progress_monero_transaction_progress_inner + 5, + .opcodes = fun_data_trezor_ui_layouts_tt_progress_monero_transaction_progress_inner + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt_progress__lt_module_gt_[] = { + &raw_code_trezor_ui_layouts_tt_progress_RustProgress, + &raw_code_trezor_ui_layouts_tt_progress_progress, + &raw_code_trezor_ui_layouts_tt_progress_bitcoin_progress, + &raw_code_trezor_ui_layouts_tt_progress_coinjoin_progress, + &raw_code_trezor_ui_layouts_tt_progress_pin_progress, + &raw_code_trezor_ui_layouts_tt_progress_monero_keyimage_sync_progress, + &raw_code_trezor_ui_layouts_tt_progress_monero_live_refresh_progress, + &raw_code_trezor_ui_layouts_tt_progress_monero_transaction_progress_inner, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_progress__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt_progress__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 87, + #endif + .children = (void *)&children_trezor_ui_layouts_tt_progress__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 8, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_ui_layouts_tt_progress__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_ui_layouts_tt_progress__lt_module_gt_ + 23, + .opcodes = fun_data_trezor_ui_layouts_tt_progress__lt_module_gt_ + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_ui_layouts_tt_progress[45] = { + MP_QSTR_trezor_slash_ui_slash_layouts_slash_tt_slash_progress_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_trezorui2, + MP_QSTR_ui, + MP_QSTR_trezor, + MP_QSTR_RustProgress, + MP_QSTR_progress, + MP_QSTR_layout, + MP_QSTR_show_progress, + MP_QSTR_title, + MP_QSTR_upper, + MP_QSTR_indeterminate, + MP_QSTR_description, + MP_QSTR_, + MP_QSTR_bitcoin_progress, + MP_QSTR_coinjoin_progress, + MP_QSTR_show_progress_coinjoin, + MP_QSTR_pin_progress, + MP_QSTR_monero_keyimage_sync_progress, + MP_QSTR_SYNCING, + MP_QSTR_monero_live_refresh_progress, + MP_QSTR_REFRESHING, + MP_QSTR_monero_transaction_progress_inner, + MP_QSTR___init__, + MP_QSTR_backlight_fade, + MP_QSTR_style, + MP_QSTR_BACKLIGHT_DIM, + MP_QSTR_display, + MP_QSTR_clear, + MP_QSTR_attach_timer_fn, + MP_QSTR_set_timer, + MP_QSTR_paint, + MP_QSTR_BACKLIGHT_NORMAL, + MP_QSTR_report, + MP_QSTR_progress_event, + MP_QSTR_refresh, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_message, + MP_QSTR_self, + MP_QSTR_token, + MP_QSTR_deadline, + MP_QSTR_RuntimeError, + MP_QSTR_value, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_ui_layouts_tt_progress[2] = { + MP_ROM_QSTR(MP_QSTR_PLEASE_space_WAIT), + MP_ROM_QSTR(MP_QSTR_SIGNING_space_TRANSACTION), +}; + +static const mp_frozen_module_t frozen_module_trezor_ui_layouts_tt_progress = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_ui_layouts_tt_progress, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_ui_layouts_tt_progress, + }, + .rc = &raw_code_trezor_ui_layouts_tt_progress__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_ui_layouts_tt_recovery +// - original source file: build/firmware/src/trezor/ui/layouts/tt/recovery.mpy +// - frozen file name: trezor/ui/layouts/tt/recovery.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/ui/layouts/tt/recovery.py, scope trezor_ui_layouts_tt_recovery__lt_module_gt_ +static const byte fun_data_trezor_ui_layouts_tt_recovery__lt_module_gt_[141] = { + 0x10,0x2e, // prelude + 0x01, // names: + 0x40,0x26,0x2c,0x4c,0x2c,0x52,0x26,0x66,0x84,0x0e,0x64,0x60,0x84,0x0b,0x84,0x23,0x84,0x13,0x88,0x23,0x63,0x40, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'trezorui2' + 0x16,0x02, // STORE_NAME 'trezorui2' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor.enums' + 0x1c,0x03, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x03, // STORE_NAME 'ButtonRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'wait' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x05, // IMPORT_FROM 'wait' + 0x16,0x3c, // STORE_NAME 'ctx_wait' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x07, // LOAD_CONST_STRING 'interact' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'common' + 0x1c,0x07, // IMPORT_FROM 'interact' + 0x16,0x07, // STORE_NAME 'interact' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x09, // LOAD_CONST_STRING 'RustLayout' + 0x10,0x0a, // LOAD_CONST_STRING 'raise_if_not_confirmed' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0b, // IMPORT_NAME '' + 0x1c,0x09, // IMPORT_FROM 'RustLayout' + 0x16,0x09, // STORE_NAME 'RustLayout' + 0x1c,0x0a, // IMPORT_FROM 'raise_if_not_confirmed' + 0x16,0x0a, // STORE_NAME 'raise_if_not_confirmed' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'trezorui2' + 0x13,0x0c, // LOAD_ATTR 'CONFIRMED' + 0x16,0x0c, // STORE_NAME 'CONFIRMED' + 0x11,0x02, // LOAD_NAME 'trezorui2' + 0x13,0x0d, // LOAD_ATTR 'INFO' + 0x16,0x0d, // STORE_NAME 'INFO' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x10, // STORE_NAME '_is_confirmed_info' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x12, // STORE_NAME 'request_word_count' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x17, // STORE_NAME 'request_word' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x1c, // STORE_NAME 'show_remaining_shares' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x2a, // STORE_NAME 'show_group_share_success' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x05, // MAKE_FUNCTION_DEFARGS 5 + 0x16,0x2f, // STORE_NAME 'continue_recovery' + 0x51, // LOAD_CONST_NONE + 0x10,0x0e, // LOAD_CONST_STRING 'TRY AGAIN' + 0x11,0x03, // LOAD_NAME 'ButtonRequestType' + 0x13,0x0f, // LOAD_ATTR 'Warning' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x53, // LOAD_NULL + 0x33,0x06, // MAKE_FUNCTION_DEFARGS 6 + 0x16,0x39, // STORE_NAME 'show_recovery_warning' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt_recovery__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/recovery.py, scope trezor_ui_layouts_tt_recovery__is_confirmed_info +static const byte fun_data_trezor_ui_layouts_tt_recovery__is_confirmed_info[54] = { + 0xa2,0x40,0x14, // prelude + 0x10,0x3d,0x3e, // names: _is_confirmed_info, dialog, info_func + 0x80,0x11,0x20,0x49,0x28,0x27,0x48, // code info + 0x12,0x3c, // LOAD_GLOBAL 'ctx_wait' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x13,0x0d, // LOAD_ATTR 'INFO' + 0xde, // BINARY_OP 7 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x11, // LOAD_METHOD 'request_complete_repaint' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0x45, // JUMP 5 + 0xb2, // LOAD_FAST 2 + 0x12,0x0c, // LOAD_GLOBAL 'CONFIRMED' + 0xde, // BINARY_OP 7 + 0x63, // RETURN_VALUE + 0x42,0x19, // JUMP -39 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_recovery__is_confirmed_info = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt_recovery__is_confirmed_info, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 54, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_trezor_ui_layouts_tt_recovery__is_confirmed_info + 6, + .line_info_top = fun_data_trezor_ui_layouts_tt_recovery__is_confirmed_info + 13, + .opcodes = fun_data_trezor_ui_layouts_tt_recovery__is_confirmed_info + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_recovery__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/recovery.py, scope trezor_ui_layouts_tt_recovery_request_word_count +static const byte fun_data_trezor_ui_layouts_tt_recovery_request_word_count[45] = { + 0xb9,0x40,0x0c, // prelude + 0x12,0x14, // names: request_word_count, dry_run + 0x80,0x1c,0x2f,0x2f, // code info + 0x12,0x09, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x13, // LOAD_METHOD 'select_word_count' + 0x10,0x14, // LOAD_CONST_STRING 'dry_run' + 0xb0, // LOAD_FAST 0 + 0x36,0x82,0x00, // CALL_METHOD 256 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0x12,0x07, // LOAD_GLOBAL 'interact' + 0xb1, // LOAD_FAST 1 + 0x10,0x15, // LOAD_CONST_STRING 'word_count' + 0x12,0x03, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x16, // LOAD_ATTR 'MnemonicWordCount' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0x12,0x3f, // LOAD_GLOBAL 'int' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_recovery_request_word_count = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt_recovery_request_word_count, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_trezor_ui_layouts_tt_recovery_request_word_count + 5, + .line_info_top = fun_data_trezor_ui_layouts_tt_recovery_request_word_count + 9, + .opcodes = fun_data_trezor_ui_layouts_tt_recovery_request_word_count + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_recovery__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/recovery.py, scope trezor_ui_layouts_tt_recovery_request_word +static const byte fun_data_trezor_ui_layouts_tt_recovery_request_word[71] = { + 0xd3,0x40,0x16, // prelude + 0x17,0x40,0x15,0x41, // names: request_word, word_index, word_count, is_slip39 + 0x80,0x22,0x2b,0x23,0x51,0x4f,0x29, // code info + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x14,0x18, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x12,0x09, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x19, // LOAD_METHOD 'request_slip39' + 0x10,0x1a, // LOAD_CONST_STRING 'prompt' + 0xb3, // LOAD_FAST 3 + 0x36,0x82,0x00, // CALL_METHOD 256 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0x42,0x4f, // JUMP 15 + 0x12,0x09, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x1b, // LOAD_METHOD 'request_bip39' + 0x10,0x1a, // LOAD_CONST_STRING 'prompt' + 0xb3, // LOAD_FAST 3 + 0x36,0x82,0x00, // CALL_METHOD 256 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0x12,0x3c, // LOAD_GLOBAL 'ctx_wait' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_recovery_request_word = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui_layouts_tt_recovery_request_word, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 71, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_trezor_ui_layouts_tt_recovery_request_word + 7, + .line_info_top = fun_data_trezor_ui_layouts_tt_recovery_request_word + 14, + .opcodes = fun_data_trezor_ui_layouts_tt_recovery_request_word + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_recovery__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/recovery.py, scope trezor_ui_layouts_tt_recovery_show_remaining_shares +static const byte fun_data_trezor_ui_layouts_tt_recovery_show_remaining_shares[199] = { + 0x9b,0x50,0x32, // prelude + 0x1c,0x42,0x43,0x44, // names: show_remaining_shares, groups, shares_remaining, group_threshold + 0x80,0x31,0x2b,0x4b,0x23,0x28,0x2f,0x23,0x48,0x28,0x4c,0x4f,0x29,0x23,0x48,0x28,0x4f,0x22,0x22,0x2e,0x22, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1d, // LOAD_CONST_STRING 'strings' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME 'trezor' + 0x1c,0x1d, // IMPORT_FROM 'strings' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1f, // LOAD_CONST_STRING 'MAX_SHARE_COUNT' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x20, // IMPORT_NAME 'trezor.crypto.slip39' + 0x1c,0x1f, // IMPORT_FROM 'MAX_SHARE_COUNT' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x2b,0x00, // BUILD_LIST 0 + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x6c, // FOR_ITER 108 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc6, // STORE_FAST 6 + 0xc7, // STORE_FAST 7 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb6, // LOAD_FAST 6 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xd7, // BINARY_OP 0 __lt__ + 0x46,0x04, // JUMP_IF_FALSE_OR_POP 4 + 0xb4, // LOAD_FAST 4 + 0xd7, // BINARY_OP 0 __lt__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x44,0x5f, // POP_JUMP_IF_FALSE 31 + 0xb3, // LOAD_FAST 3 + 0x14,0x21, // LOAD_METHOD 'format_plural' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xb6, // LOAD_FAST 6 + 0x10,0x22, // LOAD_CONST_STRING 'share' + 0x36,0x03, // CALL_METHOD 3 + 0xc8, // STORE_FAST 8 + 0x10,0x23, // LOAD_CONST_STRING '\n' + 0x14,0x24, // LOAD_METHOD 'join' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0xc9, // STORE_FAST 9 + 0xb5, // LOAD_FAST 5 + 0x14,0x25, // LOAD_METHOD 'append' + 0xb8, // LOAD_FAST 8 + 0xb9, // LOAD_FAST 9 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x77, // JUMP 55 + 0xb6, // LOAD_FAST 6 + 0xb4, // LOAD_FAST 4 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x72, // POP_JUMP_IF_FALSE 50 + 0xb1, // LOAD_FAST 1 + 0x14,0x26, // LOAD_METHOD 'count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0xb2, // LOAD_FAST 2 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x68, // POP_JUMP_IF_FALSE 40 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x14,0x26, // LOAD_METHOD 'count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xca, // STORE_FAST 10 + 0xb3, // LOAD_FAST 3 + 0x14,0x21, // LOAD_METHOD 'format_plural' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xba, // LOAD_FAST 10 + 0x10,0x27, // LOAD_CONST_STRING 'group' + 0x36,0x03, // CALL_METHOD 3 + 0xc8, // STORE_FAST 8 + 0x10,0x23, // LOAD_CONST_STRING '\n' + 0x14,0x24, // LOAD_METHOD 'join' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0xc9, // STORE_FAST 9 + 0xb5, // LOAD_FAST 5 + 0x14,0x25, // LOAD_METHOD 'append' + 0xb8, // LOAD_FAST 8 + 0xb9, // LOAD_FAST 9 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x40, // JUMP 0 + 0x42,0x92,0x7f, // JUMP -110 + 0x12,0x0a, // LOAD_GLOBAL 'raise_if_not_confirmed' + 0x12,0x07, // LOAD_GLOBAL 'interact' + 0x12,0x09, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x1c, // LOAD_METHOD 'show_remaining_shares' + 0x10,0x28, // LOAD_CONST_STRING 'pages' + 0xb5, // LOAD_FAST 5 + 0x36,0x82,0x00, // CALL_METHOD 256 + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x12,0x03, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x29, // LOAD_ATTR 'Other' + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_recovery_show_remaining_shares = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui_layouts_tt_recovery_show_remaining_shares, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 199, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 20, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_trezor_ui_layouts_tt_recovery_show_remaining_shares + 7, + .line_info_top = fun_data_trezor_ui_layouts_tt_recovery_show_remaining_shares + 28, + .opcodes = fun_data_trezor_ui_layouts_tt_recovery_show_remaining_shares + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_recovery__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/recovery.py, scope trezor_ui_layouts_tt_recovery_show_group_share_success +static const byte fun_data_trezor_ui_layouts_tt_recovery_show_group_share_success[75] = { + 0xf2,0x40,0x1e, // prelude + 0x2a,0x45,0x46, // names: show_group_share_success, share_index, group_index + 0x80,0x50,0x22,0x22,0x22,0x26,0x20,0x22,0x4b,0x70,0x20,0x22, // code info + 0x12,0x0a, // LOAD_GLOBAL 'raise_if_not_confirmed' + 0x12,0x07, // LOAD_GLOBAL 'interact' + 0x12,0x09, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x2a, // LOAD_METHOD 'show_group_share_success' + 0x10,0x2b, // LOAD_CONST_STRING 'lines' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x10,0x2c, // LOAD_CONST_STRING 'Share {}' + 0x14,0x18, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x2d, // LOAD_CONST_STRING 'from' + 0x10,0x2e, // LOAD_CONST_STRING 'Group {}' + 0x14,0x18, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x2b,0x04, // BUILD_LIST 4 + 0x36,0x82,0x00, // CALL_METHOD 256 + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x12,0x03, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x29, // LOAD_ATTR 'Other' + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_recovery_show_group_share_success = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt_recovery_show_group_share_success, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 75, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_trezor_ui_layouts_tt_recovery_show_group_share_success + 6, + .line_info_top = fun_data_trezor_ui_layouts_tt_recovery_show_group_share_success + 18, + .opcodes = fun_data_trezor_ui_layouts_tt_recovery_show_group_share_success + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_recovery__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/recovery.py, scope trezor_ui_layouts_tt_recovery_continue_recovery +static const byte fun_data_trezor_ui_layouts_tt_recovery_continue_recovery[129] = { + 0xb2,0x55,0x2c, // prelude + 0x2f,0x47,0x48,0x49,0x3e,0x14,0x4a, // names: continue_recovery, button_label, text, subtext, info_func, dry_run, show_info + 0x80,0x6a,0x4b,0x43,0x45,0x46,0x22,0x6c,0x27,0x6d,0x40,0x4d,0x26,0x4a,0x29, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x30, // LOAD_CONST_STRING 'button_request' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'common' + 0x1c,0x30, // IMPORT_FROM 'button_request' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xc7, // STORE_FAST 7 + 0x42,0x46, // JUMP 6 + 0xb2, // LOAD_FAST 2 + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x0b, // LOAD_CONST_STRING '' + 0xc7, // STORE_FAST 7 + 0x12,0x09, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x31, // LOAD_METHOD 'confirm_recovery' + 0x10,0x32, // LOAD_CONST_STRING 'title' + 0xb1, // LOAD_FAST 1 + 0x10,0x33, // LOAD_CONST_STRING 'description' + 0xb7, // LOAD_FAST 7 + 0x10,0x34, // LOAD_CONST_STRING 'button' + 0xb0, // LOAD_FAST 0 + 0x14,0x35, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x36, // LOAD_CONST_STRING 'info_button' + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x10,0x14, // LOAD_CONST_STRING 'dry_run' + 0xb4, // LOAD_FAST 4 + 0x36,0x8a,0x00, // CALL_METHOD 1280 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0xb6, // LOAD_FAST 6 + 0x10,0x37, // LOAD_CONST_STRING 'recovery' + 0x12,0x03, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x38, // LOAD_ATTR 'RecoveryHomepage' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x10, // LOAD_GLOBAL '_is_confirmed_info' + 0xb8, // LOAD_FAST 8 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE + 0x12,0x3c, // LOAD_GLOBAL 'ctx_wait' + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc9, // STORE_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x12,0x0c, // LOAD_GLOBAL 'CONFIRMED' + 0xde, // BINARY_OP 7 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_recovery_continue_recovery = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 6, + .fun_data = fun_data_trezor_ui_layouts_tt_recovery_continue_recovery, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 129, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 23, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 47, + .line_info = fun_data_trezor_ui_layouts_tt_recovery_continue_recovery + 10, + .line_info_top = fun_data_trezor_ui_layouts_tt_recovery_continue_recovery + 25, + .opcodes = fun_data_trezor_ui_layouts_tt_recovery_continue_recovery + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_recovery__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/recovery.py, scope trezor_ui_layouts_tt_recovery_show_recovery_warning +static const byte fun_data_trezor_ui_layouts_tt_recovery_show_recovery_warning[64] = { + 0x89,0xd5,0x01,0x1a, // prelude + 0x39,0x4b,0x4c,0x4d,0x34,0x4e, // names: show_recovery_warning, br_type, content, subheader, button, br_code + 0x80,0x8c,0x22,0x22,0x22,0x49,0x27, // code info + 0x12,0x0a, // LOAD_GLOBAL 'raise_if_not_confirmed' + 0x12,0x07, // LOAD_GLOBAL 'interact' + 0x12,0x09, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x3a, // LOAD_METHOD 'show_warning' + 0x10,0x32, // LOAD_CONST_STRING 'title' + 0xb1, // LOAD_FAST 1 + 0x10,0x33, // LOAD_CONST_STRING 'description' + 0xb2, // LOAD_FAST 2 + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x0b, // LOAD_CONST_STRING '' + 0x10,0x34, // LOAD_CONST_STRING 'button' + 0xb3, // LOAD_FAST 3 + 0x14,0x35, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x3b, // LOAD_CONST_STRING 'allow_cancel' + 0x50, // LOAD_CONST_FALSE + 0x36,0x88,0x00, // CALL_METHOD 1024 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_recovery_show_recovery_warning = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_trezor_ui_layouts_tt_recovery_show_recovery_warning, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 64, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 3, + .qstr_block_name_idx = 57, + .line_info = fun_data_trezor_ui_layouts_tt_recovery_show_recovery_warning + 10, + .line_info_top = fun_data_trezor_ui_layouts_tt_recovery_show_recovery_warning + 17, + .opcodes = fun_data_trezor_ui_layouts_tt_recovery_show_recovery_warning + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt_recovery__lt_module_gt_[] = { + &raw_code_trezor_ui_layouts_tt_recovery__is_confirmed_info, + &raw_code_trezor_ui_layouts_tt_recovery_request_word_count, + &raw_code_trezor_ui_layouts_tt_recovery_request_word, + &raw_code_trezor_ui_layouts_tt_recovery_show_remaining_shares, + &raw_code_trezor_ui_layouts_tt_recovery_show_group_share_success, + &raw_code_trezor_ui_layouts_tt_recovery_continue_recovery, + &raw_code_trezor_ui_layouts_tt_recovery_show_recovery_warning, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_recovery__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt_recovery__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 141, + #endif + .children = (void *)&children_trezor_ui_layouts_tt_recovery__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 7, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_ui_layouts_tt_recovery__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_ui_layouts_tt_recovery__lt_module_gt_ + 25, + .opcodes = fun_data_trezor_ui_layouts_tt_recovery__lt_module_gt_ + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_ui_layouts_tt_recovery[79] = { + MP_QSTR_trezor_slash_ui_slash_layouts_slash_tt_slash_recovery_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_trezorui2, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_wait, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_interact, + MP_QSTR_common, + MP_QSTR_RustLayout, + MP_QSTR_raise_if_not_confirmed, + MP_QSTR_, + MP_QSTR_CONFIRMED, + MP_QSTR_INFO, + MP_QSTR_TRY_space_AGAIN, + MP_QSTR_Warning, + MP_QSTR__is_confirmed_info, + MP_QSTR_request_complete_repaint, + MP_QSTR_request_word_count, + MP_QSTR_select_word_count, + MP_QSTR_dry_run, + MP_QSTR_word_count, + MP_QSTR_MnemonicWordCount, + MP_QSTR_request_word, + MP_QSTR_format, + MP_QSTR_request_slip39, + MP_QSTR_prompt, + MP_QSTR_request_bip39, + MP_QSTR_show_remaining_shares, + MP_QSTR_strings, + MP_QSTR_trezor, + MP_QSTR_MAX_SHARE_COUNT, + MP_QSTR_trezor_dot_crypto_dot_slip39, + MP_QSTR_format_plural, + MP_QSTR_share, + MP_QSTR__0x0a_, + MP_QSTR_join, + MP_QSTR_append, + MP_QSTR_count, + MP_QSTR_group, + MP_QSTR_pages, + MP_QSTR_Other, + MP_QSTR_show_group_share_success, + MP_QSTR_lines, + MP_QSTR_Share_space__brace_open__brace_close_, + MP_QSTR_from, + MP_QSTR_Group_space__brace_open__brace_close_, + MP_QSTR_continue_recovery, + MP_QSTR_button_request, + MP_QSTR_confirm_recovery, + MP_QSTR_title, + MP_QSTR_description, + MP_QSTR_button, + MP_QSTR_upper, + MP_QSTR_info_button, + MP_QSTR_recovery, + MP_QSTR_RecoveryHomepage, + MP_QSTR_show_recovery_warning, + MP_QSTR_show_warning, + MP_QSTR_allow_cancel, + MP_QSTR_ctx_wait, + MP_QSTR_dialog, + MP_QSTR_info_func, + MP_QSTR_int, + MP_QSTR_word_index, + MP_QSTR_is_slip39, + MP_QSTR_groups, + MP_QSTR_shares_remaining, + MP_QSTR_group_threshold, + MP_QSTR_share_index, + MP_QSTR_group_index, + MP_QSTR_button_label, + MP_QSTR_text, + MP_QSTR_subtext, + MP_QSTR_show_info, + MP_QSTR_br_type, + MP_QSTR_content, + MP_QSTR_subheader, + MP_QSTR_br_code, +}; + +// constants +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_recovery_1 = {{&mp_type_str}, 48741, 30, (const byte*)"\x7b\x63\x6f\x75\x6e\x74\x7d\x20\x6d\x6f\x72\x65\x20\x7b\x70\x6c\x75\x72\x61\x6c\x7d\x20\x73\x74\x61\x72\x74\x69\x6e\x67"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_recovery_5 = {{&mp_type_str}, 24664, 62, (const byte*)"\x59\x6f\x75\x27\x6c\x6c\x20\x6f\x6e\x6c\x79\x20\x68\x61\x76\x65\x20\x74\x6f\x20\x73\x65\x6c\x65\x63\x74\x20\x74\x68\x65\x20\x66\x69\x72\x73\x74\x20\x32\x2d\x33\x20\x6c\x65\x74\x74\x65\x72\x73\x20\x6f\x66\x20\x65\x61\x63\x68\x20\x77\x6f\x72\x64\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_ui_layouts_tt_recovery[6] = { + MP_ROM_QSTR(MP_QSTR_Type_space_word_space__brace_open__brace_close__space_of_space__brace_open__brace_close_), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_recovery_1), + MP_ROM_QSTR(MP_QSTR_show_shares), + MP_ROM_QSTR(MP_QSTR_You_space_have_space_entered), + MP_ROM_QSTR(MP_QSTR_share_success), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_recovery_5), +}; + +static const mp_frozen_module_t frozen_module_trezor_ui_layouts_tt_recovery = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_ui_layouts_tt_recovery, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_ui_layouts_tt_recovery, + }, + .rc = &raw_code_trezor_ui_layouts_tt_recovery__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_ui_layouts_tt_reset +// - original source file: build/firmware/src/trezor/ui/layouts/tt/reset.mpy +// - frozen file name: trezor/ui/layouts/tt/reset.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset__lt_module_gt_ +static const byte fun_data_trezor_ui_layouts_tt_reset__lt_module_gt_[196] = { + 0x10,0x46, // prelude + 0x01, // names: + 0x40,0x26,0x2c,0x2c,0x4c,0x2c,0x52,0x60,0x60,0x66,0x88,0x18,0x89,0x1c,0x88,0x24,0x84,0x23,0x84,0x2e,0x88,0x36,0x88,0x1e,0x84,0x12,0x84,0x12,0x84,0x18,0x84,0x07,0x63,0x40, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'trezorui2' + 0x16,0x02, // STORE_NAME 'trezorui2' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor.enums' + 0x1c,0x03, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x03, // STORE_NAME 'ButtonRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'ActionCancelled' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.wire' + 0x1c,0x05, // IMPORT_FROM 'ActionCancelled' + 0x16,0x05, // STORE_NAME 'ActionCancelled' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'wait' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x07, // IMPORT_FROM 'wait' + 0x16,0x3c, // STORE_NAME 'ctx_wait' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x09, // LOAD_CONST_STRING 'interact' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'common' + 0x1c,0x09, // IMPORT_FROM 'interact' + 0x16,0x09, // STORE_NAME 'interact' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0b, // LOAD_CONST_STRING 'RustLayout' + 0x10,0x0c, // LOAD_CONST_STRING 'raise_if_not_confirmed' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0d, // IMPORT_NAME '' + 0x1c,0x0b, // IMPORT_FROM 'RustLayout' + 0x16,0x0b, // STORE_NAME 'RustLayout' + 0x1c,0x0c, // IMPORT_FROM 'raise_if_not_confirmed' + 0x16,0x0c, // STORE_NAME 'raise_if_not_confirmed' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'trezorui2' + 0x13,0x0e, // LOAD_ATTR 'CONFIRMED' + 0x16,0x0e, // STORE_NAME 'CONFIRMED' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x11, // STORE_NAME '_split_share_into_pages' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x16, // STORE_NAME 'show_share_words' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x1a, // STORE_NAME 'select_word' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x1e, // STORE_NAME 'slip39_show_checklist' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x26, // STORE_NAME '_prompt_number' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x05, // MAKE_FUNCTION_DEFARGS 5 + 0x16,0x2e, // STORE_NAME 'slip39_prompt_threshold' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x06, // MAKE_FUNCTION_DEFARGS 6 + 0x16,0x2f, // STORE_NAME 'slip39_prompt_number_of_shares' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x30, // STORE_NAME 'slip39_advanced_prompt_number_of_groups' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x31, // STORE_NAME 'slip39_advanced_prompt_group_threshold' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x32, // STORE_NAME 'show_warning_backup' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x35, // STORE_NAME 'show_success_backup' + 0x51, // LOAD_CONST_NONE + 0x10,0x0f, // LOAD_CONST_STRING 'TRY AGAIN' + 0x11,0x03, // LOAD_NAME 'ButtonRequestType' + 0x13,0x10, // LOAD_ATTR 'Warning' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x53, // LOAD_NULL + 0x33,0x0b, // MAKE_FUNCTION_DEFARGS 11 + 0x16,0x37, // STORE_NAME 'show_reset_warning' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt_reset__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset__split_share_into_pages +static const byte fun_data_trezor_ui_layouts_tt_reset__split_share_into_pages[116] = { + 0x8a,0x11,0x26, // prelude + 0x11,0x3d,0x3e, // names: _split_share_into_pages, share_words, per_page + 0x80,0x14,0x23,0x23,0x42,0x2c,0x27,0x25,0x27,0x63,0x26,0x4c,0x25,0x51,0x23,0x47, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xc2, // STORE_FAST 2 + 0x10,0x0d, // LOAD_CONST_STRING '' + 0xc3, // STORE_FAST 3 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xc4, // STORE_FAST 4 + 0x12,0x3f, // LOAD_GLOBAL 'enumerate' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x42, // FOR_ITER 66 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc5, // STORE_FAST 5 + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0xf8, // BINARY_OP 33 __mod__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x61, // POP_JUMP_IF_FALSE 33 + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb2, // LOAD_FAST 2 + 0x14,0x12, // LOAD_METHOD 'append' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x10,0x0d, // LOAD_CONST_STRING '' + 0xc3, // STORE_FAST 3 + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0xf2, // BINARY_OP 27 __add__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x42,0x41, // JUMP 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xc4, // STORE_FAST 4 + 0x42,0x45, // JUMP 5 + 0xb3, // LOAD_FAST 3 + 0x10,0x13, // LOAD_CONST_STRING '\n' + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x10,0x14, // LOAD_CONST_STRING '{:>{}}. {}' + 0x14,0x15, // LOAD_METHOD 'format' + 0xb5, // LOAD_FAST 5 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0x36,0x03, // CALL_METHOD 3 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0x42,0xbc,0x7f, // JUMP -68 + 0xb3, // LOAD_FAST 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb2, // LOAD_FAST 2 + 0x14,0x12, // LOAD_METHOD 'append' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset__split_share_into_pages = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt_reset__split_share_into_pages, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 116, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 17, + .line_info = fun_data_trezor_ui_layouts_tt_reset__split_share_into_pages + 6, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset__split_share_into_pages + 22, + .opcodes = fun_data_trezor_ui_layouts_tt_reset__split_share_into_pages + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_reset__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset_show_share_words +static const byte fun_data_trezor_ui_layouts_tt_reset_show_share_words[111] = { + 0xeb,0xc0,0x01,0x26, // prelude + 0x16,0x3d,0x40,0x41, // names: show_share_words, share_words, share_index, group_index + 0x80,0x30,0x25,0x25,0x25,0x4c,0x4d,0x46,0x22,0x22,0x6f,0x40,0x22,0x4a,0x26, // code info + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xc3, // STORE_FAST 3 + 0x42,0x5e, // JUMP 30 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x42,0x4d, // JUMP 13 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x02, // CALL_METHOD 2 + 0xc3, // STORE_FAST 3 + 0x12,0x11, // LOAD_GLOBAL '_split_share_into_pages' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0x12,0x09, // LOAD_GLOBAL 'interact' + 0x12,0x0b, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x16, // LOAD_METHOD 'show_share_words' + 0x10,0x17, // LOAD_CONST_STRING 'title' + 0xb3, // LOAD_FAST 3 + 0x10,0x18, // LOAD_CONST_STRING 'pages' + 0xb4, // LOAD_FAST 4 + 0x36,0x84,0x00, // CALL_METHOD 512 + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x12,0x03, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x19, // LOAD_ATTR 'ResetDevice' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x12,0x0e, // LOAD_GLOBAL 'CONFIRMED' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x05, // LOAD_GLOBAL 'ActionCancelled' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset_show_share_words = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui_layouts_tt_reset_show_share_words, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 111, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 22, + .line_info = fun_data_trezor_ui_layouts_tt_reset_show_share_words + 8, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset_show_share_words + 23, + .opcodes = fun_data_trezor_ui_layouts_tt_reset_show_share_words + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_reset__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset_select_word +static const byte fun_data_trezor_ui_layouts_tt_reset_select_word[145] = { + 0x99,0x55,0x32, // prelude + 0x1a,0x1d,0x40,0x42,0x29,0x41, // names: select_word, words, share_index, checked_index, count, group_index + 0x80,0x4e,0x25,0x25,0x25,0x4c,0x6d,0x40,0x26,0x22,0x52,0x22,0x22,0x49,0x2c,0x76,0x20,0x40,0x20, // code info + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x1b, // LOAD_CONST_STRING 'CHECK SEED' + 0xc5, // STORE_FAST 5 + 0x42,0x5e, // JUMP 30 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0x42,0x4d, // JUMP 13 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x02, // CALL_METHOD 2 + 0xc5, // STORE_FAST 5 + 0x12,0x43, // LOAD_GLOBAL 'list' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x42,0x49, // JUMP 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x12, // LOAD_METHOD 'append' + 0xb0, // LOAD_FAST 0 + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x44, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2e, // POP_JUMP_IF_TRUE -18 + 0x12,0x3c, // LOAD_GLOBAL 'ctx_wait' + 0x12,0x0b, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x1a, // LOAD_METHOD 'select_word' + 0x10,0x17, // LOAD_CONST_STRING 'title' + 0xb5, // LOAD_FAST 5 + 0x10,0x1c, // LOAD_CONST_STRING 'description' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x10,0x1d, // LOAD_CONST_STRING 'words' + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x55, // LOAD_SUBSCR + 0x2a,0x03, // BUILD_TUPLE 3 + 0x36,0x86,0x00, // CALL_METHOD 768 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0xb6, // LOAD_FAST 6 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset_select_word = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_trezor_ui_layouts_tt_reset_select_word, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 145, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 20, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 26, + .line_info = fun_data_trezor_ui_layouts_tt_reset_select_word + 9, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset_select_word + 28, + .opcodes = fun_data_trezor_ui_layouts_tt_reset_select_word + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_reset__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset_slip39_show_checklist +static const byte fun_data_trezor_ui_layouts_tt_reset_slip39_show_checklist[99] = { + 0x82,0x50,0x2a, // prelude + 0x1e,0x45,0x46, // names: slip39_show_checklist, step, backup_type + 0x80,0x6c,0x4b,0x40,0x20,0x60,0x40,0x6b,0x63,0x40,0x22,0x22,0x26,0x71,0x60,0x22,0x4a,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1f, // LOAD_CONST_STRING 'BackupType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor.enums' + 0x1c,0x1f, // IMPORT_FROM 'BackupType' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x20, // LOAD_ATTR 'Slip39_Basic' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x42,0x42, // JUMP 2 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0xc3, // STORE_FAST 3 + 0x12,0x09, // LOAD_GLOBAL 'interact' + 0x12,0x0b, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x21, // LOAD_METHOD 'show_checklist' + 0x10,0x17, // LOAD_CONST_STRING 'title' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x10,0x22, // LOAD_CONST_STRING 'button' + 0x10,0x23, // LOAD_CONST_STRING 'CONTINUE' + 0x10,0x24, // LOAD_CONST_STRING 'active' + 0xb0, // LOAD_FAST 0 + 0x10,0x25, // LOAD_CONST_STRING 'items' + 0xb3, // LOAD_FAST 3 + 0x36,0x88,0x00, // CALL_METHOD 1024 + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x12,0x03, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x19, // LOAD_ATTR 'ResetDevice' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x12,0x0e, // LOAD_GLOBAL 'CONFIRMED' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x05, // LOAD_GLOBAL 'ActionCancelled' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset_slip39_show_checklist = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt_reset_slip39_show_checklist, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 99, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_trezor_ui_layouts_tt_reset_slip39_show_checklist + 6, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset_slip39_show_checklist + 24, + .opcodes = fun_data_trezor_ui_layouts_tt_reset_slip39_show_checklist + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_reset__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset__prompt_number +static const byte fun_data_trezor_ui_layouts_tt_reset__prompt_number[133] = { + 0xbb,0x54,0x3a, // prelude + 0x26,0x17,0x1c,0x39,0x29,0x2a,0x2b,0x47, // names: _prompt_number, title, description, info, count, min_count, max_count, br_name + 0x80,0x97,0x22,0x26,0x77,0x60,0x40,0x20,0x64,0x4a,0x60,0x40,0x45,0x26,0x20,0x42,0x22,0x22,0x29,0x73,0x20, // code info + 0x12,0x0b, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x27, // LOAD_METHOD 'request_number' + 0x10,0x17, // LOAD_CONST_STRING 'title' + 0xb0, // LOAD_FAST 0 + 0x14,0x28, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x1c, // LOAD_CONST_STRING 'description' + 0xb1, // LOAD_FAST 1 + 0x10,0x29, // LOAD_CONST_STRING 'count' + 0xb3, // LOAD_FAST 3 + 0x10,0x2a, // LOAD_CONST_STRING 'min_count' + 0xb4, // LOAD_FAST 4 + 0x10,0x2b, // LOAD_CONST_STRING 'max_count' + 0xb5, // LOAD_FAST 5 + 0x36,0x8a,0x00, // CALL_METHOD 1280 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0x12,0x09, // LOAD_GLOBAL 'interact' + 0xb7, // LOAD_FAST 7 + 0xb6, // LOAD_FAST 6 + 0x12,0x03, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x19, // LOAD_ATTR 'ResetDevice' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc9, // STORE_FAST 9 + 0xca, // STORE_FAST 10 + 0xb9, // LOAD_FAST 9 + 0x12,0x0e, // LOAD_GLOBAL 'CONFIRMED' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xba, // LOAD_FAST 10 + 0x63, // RETURN_VALUE + 0x12,0x3c, // LOAD_GLOBAL 'ctx_wait' + 0x12,0x0b, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x2c, // LOAD_METHOD 'show_simple' + 0x10,0x17, // LOAD_CONST_STRING 'title' + 0x51, // LOAD_CONST_NONE + 0x10,0x1c, // LOAD_CONST_STRING 'description' + 0xb2, // LOAD_FAST 2 + 0xba, // LOAD_FAST 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x22, // LOAD_CONST_STRING 'button' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x36,0x86,0x00, // CALL_METHOD 768 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x2d, // LOAD_METHOD 'request_complete_repaint' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0xbc,0x7f, // JUMP -68 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset__prompt_number = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 7, + .fun_data = fun_data_trezor_ui_layouts_tt_reset__prompt_number, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 133, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 24, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 38, + .line_info = fun_data_trezor_ui_layouts_tt_reset__prompt_number + 11, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset__prompt_number + 32, + .opcodes = fun_data_trezor_ui_layouts_tt_reset__prompt_number + 32, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_reset__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset_slip39_prompt_threshold +static const byte fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_threshold[71] = { + 0xf2,0x41,0x9f,0x01, // prelude + 0x2e,0x48,0x49, // names: slip39_prompt_threshold, num_of_shares, group_id + 0x80,0xbf,0x67,0x28,0x44,0x86,0x0b,0x86,0x17,0x22,0x68,0x60,0x00,0x01,0x06, // code info + 0x25,0x00, // LOAD_DEREF 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc2, // STORE_FAST 2 + 0x12,0x4a, // LOAD_GLOBAL 'min' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x25,0x00, // LOAD_DEREF 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc3, // STORE_FAST 3 + 0x25,0x00, // LOAD_DEREF 0 + 0x27,0x06, // STORE_DEREF 6 + 0xb1, // LOAD_FAST 1 + 0xb6, // LOAD_FAST 6 + 0x20,0x00,0x02, // MAKE_CLOSURE 0 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x20,0x01,0x02, // MAKE_CLOSURE 1 + 0xc5, // STORE_FAST 5 + 0x12,0x26, // LOAD_GLOBAL '_prompt_number' + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x25,0x06, // LOAD_DEREF 6 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x34,0x07, // CALL_FUNCTION 7 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt_reset_slip39_prompt_threshold +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset_slip39_prompt_threshold_description +static const byte fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_threshold_description[65] = { + 0x33,0x18, // prelude + 0x1c,0x51,0x51,0x29, // names: description, *, *, count + 0x80,0xc6,0x26,0x25,0x23,0x26,0x48,0x4a, // code info + 0x25,0x00, // LOAD_DEREF 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x20, // LOAD_CONST_OBJ 32 + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x25,0x01, // LOAD_DEREF 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x23,0x21, // LOAD_CONST_OBJ 33 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0x23,0x22, // LOAD_CONST_OBJ 34 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0x42,0x4b, // JUMP 11 + 0x23,0x23, // LOAD_CONST_OBJ 35 + 0x14,0x15, // LOAD_METHOD 'format' + 0x25,0x00, // LOAD_DEREF 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset_slip39_prompt_threshold_description = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_threshold_description, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 65, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_threshold_description + 6, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_threshold_description + 14, + .opcodes = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_threshold_description + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_reset_slip39_prompt_threshold +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset_slip39_prompt_threshold_info +static const byte fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_threshold_info[173] = { + 0x43,0x2e, // prelude + 0x39,0x51,0x51,0x29, // names: info, *, *, count + 0x80,0xd1,0x23,0x27,0x25,0x2a,0x26,0x27,0x26,0x4e,0x4f,0x25,0x2a,0x26,0x27,0x26,0x4e,0x2c,0x2d, // code info + 0x23,0x24, // LOAD_CONST_OBJ 36 + 0xc3, // STORE_FAST 3 + 0x25,0x01, // LOAD_DEREF 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0xbf,0x80, // POP_JUMP_IF_FALSE 63 + 0xb3, // LOAD_FAST 3 + 0x23,0x25, // LOAD_CONST_OBJ 37 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x23,0x26, // LOAD_CONST_OBJ 38 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0x25,0x00, // LOAD_DEREF 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb3, // LOAD_FAST 3 + 0x10,0x3a, // LOAD_CONST_STRING '1 share.' + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0x42,0x60, // JUMP 32 + 0x25,0x00, // LOAD_DEREF 0 + 0xb2, // LOAD_FAST 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb3, // LOAD_FAST 3 + 0x23,0x27, // LOAD_CONST_OBJ 39 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0x36,0x02, // CALL_METHOD 2 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0x42,0x4c, // JUMP 12 + 0xb3, // LOAD_FAST 3 + 0x23,0x28, // LOAD_CONST_OBJ 40 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0x36,0x02, // CALL_METHOD 2 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0x42,0xc9,0x80, // JUMP 73 + 0xb3, // LOAD_FAST 3 + 0x23,0x29, // LOAD_CONST_OBJ 41 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x23,0x2a, // LOAD_CONST_OBJ 42 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0x25,0x00, // LOAD_DEREF 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb3, // LOAD_FAST 3 + 0x23,0x2b, // LOAD_CONST_OBJ 43 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0x42,0x60, // JUMP 32 + 0x25,0x00, // LOAD_DEREF 0 + 0xb2, // LOAD_FAST 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb3, // LOAD_FAST 3 + 0x23,0x2c, // LOAD_CONST_OBJ 44 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0x36,0x02, // CALL_METHOD 2 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0x42,0x4c, // JUMP 12 + 0xb3, // LOAD_FAST 3 + 0x23,0x2d, // LOAD_CONST_OBJ 45 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0x36,0x02, // CALL_METHOD 2 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x23,0x2e, // LOAD_CONST_OBJ 46 + 0x14,0x15, // LOAD_METHOD 'format' + 0x25,0x01, // LOAD_DEREF 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset_slip39_prompt_threshold_info = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_threshold_info, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 173, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 57, + .line_info = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_threshold_info + 6, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_threshold_info + 25, + .opcodes = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_threshold_info + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt_reset_slip39_prompt_threshold[] = { + &raw_code_trezor_ui_layouts_tt_reset_slip39_prompt_threshold_description, + &raw_code_trezor_ui_layouts_tt_reset_slip39_prompt_threshold_info, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset_slip39_prompt_threshold = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_threshold, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 71, + #endif + .children = (void *)&children_trezor_ui_layouts_tt_reset_slip39_prompt_threshold, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 46, + .line_info = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_threshold + 7, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_threshold + 19, + .opcodes = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_threshold + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_reset__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares +static const byte fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares[77] = { + 0xe9,0x41,0xa0,0x01, // prelude + 0x2f,0x49, // names: slip39_prompt_number_of_shares, group_id + 0x80,0xf3,0x22,0x22,0x42,0x85,0x09,0x26,0x46,0x4c,0x22,0x43,0x67,0x20,0x00,0x05, // code info + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xc1, // STORE_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xc2, // STORE_FAST 2 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xc4, // STORE_FAST 4 + 0x25,0x00, // LOAD_DEREF 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x27,0x05, // STORE_DEREF 5 + 0x42,0x4c, // JUMP 12 + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x14,0x15, // LOAD_METHOD 'format' + 0x25,0x00, // LOAD_DEREF 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x27,0x05, // STORE_DEREF 5 + 0x12,0x26, // LOAD_GLOBAL '_prompt_number' + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x20,0x01,0x01, // MAKE_CLOSURE 1 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x34,0x07, // CALL_FUNCTION 7 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares_description +static const byte fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares_description[48] = { + 0x2a,0x12, // prelude + 0x1c,0x51,0x52, // names: description, *, i + 0x80,0xf8,0x26,0x25,0x43,0x4a, // code info + 0x25,0x00, // LOAD_DEREF 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x2f, // LOAD_CONST_OBJ 47 + 0x63, // RETURN_VALUE + 0x23,0x30, // LOAD_CONST_OBJ 48 + 0x14,0x15, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0x42,0x4b, // JUMP 11 + 0x23,0x31, // LOAD_CONST_OBJ 49 + 0x14,0x15, // LOAD_METHOD 'format' + 0x25,0x00, // LOAD_DEREF 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares_description = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares_description, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares_description + 5, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares_description + 11, + .opcodes = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares_description + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares__lt_lambda_gt_ +static const byte fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares__lt_lambda_gt_[10] = { + 0x12,0x0a, // prelude + 0x3b,0x51,0x52, // names: , *, i + 0x90,0x08, // code info + 0x25,0x00, // LOAD_DEREF 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares__lt_lambda_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares__lt_lambda_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 10, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 59, + .line_info = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares__lt_lambda_gt_ + 5, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares__lt_lambda_gt_ + 7, + .opcodes = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares__lt_lambda_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares[] = { + &raw_code_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares_description, + &raw_code_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares__lt_lambda_gt_, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 77, + #endif + .children = (void *)&children_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 47, + .line_info = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares + 6, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares + 20, + .opcodes = fun_data_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_reset__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups +static const byte fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups[56] = { + 0xe0,0x40,0x9a,0x01, // prelude + 0x30, // names: slip39_advanced_prompt_number_of_groups + 0x90,0x11,0x22,0x22,0x22,0x24,0x44,0x22,0x22,0x24,0x67,0x20,0x03,0x04, // code info + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xc0, // STORE_FAST 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xc1, // STORE_FAST 1 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xc2, // STORE_FAST 2 + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x27,0x03, // STORE_DEREF 3 + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x27,0x04, // STORE_DEREF 4 + 0x12,0x26, // LOAD_GLOBAL '_prompt_number' + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0xb3, // LOAD_FAST 3 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xb4, // LOAD_FAST 4 + 0x20,0x01,0x01, // MAKE_CLOSURE 1 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0x34,0x07, // CALL_FUNCTION 7 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups__lt_lambda_gt_ +static const byte fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups__lt_lambda_gt_[10] = { + 0x12,0x0a, // prelude + 0x3b,0x51,0x52, // names: , *, i + 0x90,0x19, // code info + 0x25,0x00, // LOAD_DEREF 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups__lt_lambda_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups__lt_lambda_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 10, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 59, + .line_info = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups__lt_lambda_gt_ + 5, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups__lt_lambda_gt_ + 7, + .opcodes = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups__lt_lambda_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups__lt_lambda_gt_2 +static const byte fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups__lt_lambda_gt_2[10] = { + 0x12,0x0a, // prelude + 0x3b,0x51,0x52, // names: , *, i + 0x90,0x1a, // code info + 0x25,0x00, // LOAD_DEREF 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups__lt_lambda_gt_2 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups__lt_lambda_gt_2, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 10, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 59, + .line_info = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups__lt_lambda_gt_2 + 5, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups__lt_lambda_gt_2 + 7, + .opcodes = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups__lt_lambda_gt_2 + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups[] = { + &raw_code_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups__lt_lambda_gt_, + &raw_code_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups__lt_lambda_gt_2, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = (void *)&children_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 48, + .line_info = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups + 5, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups + 17, + .opcodes = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_reset__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold +static const byte fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold[61] = { + 0xe9,0x40,0x9c,0x01, // prelude + 0x31,0x4b, // names: slip39_advanced_prompt_group_threshold, num_of_groups + 0x90,0x23,0x26,0x22,0x22,0x24,0x44,0x22,0x22,0x24,0x67,0x20,0x04,0x05, // code info + 0xb0, // LOAD_FAST 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc1, // STORE_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xc3, // STORE_FAST 3 + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0x27,0x04, // STORE_DEREF 4 + 0x23,0x17, // LOAD_CONST_OBJ 23 + 0x27,0x05, // STORE_DEREF 5 + 0x12,0x26, // LOAD_GLOBAL '_prompt_number' + 0x23,0x18, // LOAD_CONST_OBJ 24 + 0xb4, // LOAD_FAST 4 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xb5, // LOAD_FAST 5 + 0x20,0x01,0x01, // MAKE_CLOSURE 1 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x23,0x19, // LOAD_CONST_OBJ 25 + 0x34,0x07, // CALL_FUNCTION 7 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +// child of trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold__lt_lambda_gt_ +static const byte fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold__lt_lambda_gt_[10] = { + 0x12,0x0a, // prelude + 0x3b,0x51,0x52, // names: , *, i + 0x90,0x2b, // code info + 0x25,0x00, // LOAD_DEREF 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold__lt_lambda_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold__lt_lambda_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 10, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 59, + .line_info = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold__lt_lambda_gt_ + 5, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold__lt_lambda_gt_ + 7, + .opcodes = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold__lt_lambda_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold__lt_lambda_gt_2 +static const byte fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold__lt_lambda_gt_2[10] = { + 0x12,0x0a, // prelude + 0x3b,0x51,0x52, // names: , *, i + 0x90,0x2c, // code info + 0x25,0x00, // LOAD_DEREF 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold__lt_lambda_gt_2 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold__lt_lambda_gt_2, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 10, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 59, + .line_info = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold__lt_lambda_gt_2 + 5, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold__lt_lambda_gt_2 + 7, + .opcodes = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold__lt_lambda_gt_2 + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold[] = { + &raw_code_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold__lt_lambda_gt_, + &raw_code_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold__lt_lambda_gt_2, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 61, + #endif + .children = (void *)&children_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 49, + .line_info = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold + 6, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold + 18, + .opcodes = fun_data_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_reset__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset_show_warning_backup +static const byte fun_data_trezor_ui_layouts_tt_reset_show_warning_backup[77] = { + 0xe1,0x40,0x22, // prelude + 0x32,0x4c, // names: show_warning_backup, slip39 + 0x90,0x35,0x23,0x20,0x65,0x20,0x43,0x22,0x22,0x49,0x6a,0x20,0x22,0x4a,0x26, // code info + 0xb0, // LOAD_FAST 0 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x1a, // LOAD_CONST_OBJ 26 + 0xc1, // STORE_FAST 1 + 0x42,0x43, // JUMP 3 + 0x23,0x1b, // LOAD_CONST_OBJ 27 + 0xc1, // STORE_FAST 1 + 0x12,0x09, // LOAD_GLOBAL 'interact' + 0x12,0x0b, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x33, // LOAD_METHOD 'show_info' + 0x10,0x17, // LOAD_CONST_STRING 'title' + 0xb1, // LOAD_FAST 1 + 0x10,0x22, // LOAD_CONST_STRING 'button' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x10,0x34, // LOAD_CONST_STRING 'allow_cancel' + 0x50, // LOAD_CONST_FALSE + 0x36,0x86,0x00, // CALL_METHOD 768 + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x1c, // LOAD_CONST_OBJ 28 + 0x12,0x03, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x19, // LOAD_ATTR 'ResetDevice' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x12,0x0e, // LOAD_GLOBAL 'CONFIRMED' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x05, // LOAD_GLOBAL 'ActionCancelled' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset_show_warning_backup = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_trezor_ui_layouts_tt_reset_show_warning_backup, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 77, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 50, + .line_info = fun_data_trezor_ui_layouts_tt_reset_show_warning_backup + 5, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset_show_warning_backup + 20, + .opcodes = fun_data_trezor_ui_layouts_tt_reset_show_warning_backup + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_reset__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset_show_success_backup +static const byte fun_data_trezor_ui_layouts_tt_reset_show_success_backup[36] = { + 0xa8,0x40,0x0a, // prelude + 0x35, // names: show_success_backup + 0x90,0x4d,0x4b,0x23, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x36, // LOAD_CONST_STRING 'show_success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME '' + 0x1c,0x36, // IMPORT_FROM 'show_success' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0x23,0x1d, // LOAD_CONST_OBJ 29 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x23,0x1e, // LOAD_CONST_OBJ 30 + 0xb1, // LOAD_FAST 1 + 0x23,0x1f, // LOAD_CONST_OBJ 31 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset_show_success_backup = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt_reset_show_success_backup, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 53, + .line_info = fun_data_trezor_ui_layouts_tt_reset_show_success_backup + 4, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset_show_success_backup + 8, + .opcodes = fun_data_trezor_ui_layouts_tt_reset_show_success_backup + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_ui_layouts_tt_reset__lt_module_gt_ +// frozen bytecode for file trezor/ui/layouts/tt/reset.py, scope trezor_ui_layouts_tt_reset_show_reset_warning +static const byte fun_data_trezor_ui_layouts_tt_reset_show_reset_warning[64] = { + 0x89,0xd5,0x01,0x1a, // prelude + 0x37,0x4d,0x4e,0x4f,0x22,0x50, // names: show_reset_warning, br_type, content, subheader, button, br_code + 0x90,0x5a,0x22,0x22,0x22,0x26,0x4a, // code info + 0x12,0x0c, // LOAD_GLOBAL 'raise_if_not_confirmed' + 0x12,0x09, // LOAD_GLOBAL 'interact' + 0x12,0x0b, // LOAD_GLOBAL 'RustLayout' + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x38, // LOAD_METHOD 'show_warning' + 0x10,0x17, // LOAD_CONST_STRING 'title' + 0xb2, // LOAD_FAST 2 + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x0d, // LOAD_CONST_STRING '' + 0x10,0x1c, // LOAD_CONST_STRING 'description' + 0xb1, // LOAD_FAST 1 + 0x10,0x22, // LOAD_CONST_STRING 'button' + 0xb3, // LOAD_FAST 3 + 0x14,0x28, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x34, // LOAD_CONST_STRING 'allow_cancel' + 0x50, // LOAD_CONST_FALSE + 0x36,0x88,0x00, // CALL_METHOD 1024 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset_show_reset_warning = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_trezor_ui_layouts_tt_reset_show_reset_warning, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 64, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 3, + .qstr_block_name_idx = 55, + .line_info = fun_data_trezor_ui_layouts_tt_reset_show_reset_warning + 10, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset_show_reset_warning + 17, + .opcodes = fun_data_trezor_ui_layouts_tt_reset_show_reset_warning + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_ui_layouts_tt_reset__lt_module_gt_[] = { + &raw_code_trezor_ui_layouts_tt_reset__split_share_into_pages, + &raw_code_trezor_ui_layouts_tt_reset_show_share_words, + &raw_code_trezor_ui_layouts_tt_reset_select_word, + &raw_code_trezor_ui_layouts_tt_reset_slip39_show_checklist, + &raw_code_trezor_ui_layouts_tt_reset__prompt_number, + &raw_code_trezor_ui_layouts_tt_reset_slip39_prompt_threshold, + &raw_code_trezor_ui_layouts_tt_reset_slip39_prompt_number_of_shares, + &raw_code_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_number_of_groups, + &raw_code_trezor_ui_layouts_tt_reset_slip39_advanced_prompt_group_threshold, + &raw_code_trezor_ui_layouts_tt_reset_show_warning_backup, + &raw_code_trezor_ui_layouts_tt_reset_show_success_backup, + &raw_code_trezor_ui_layouts_tt_reset_show_reset_warning, +}; + +static const mp_raw_code_t raw_code_trezor_ui_layouts_tt_reset__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_ui_layouts_tt_reset__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 196, + #endif + .children = (void *)&children_trezor_ui_layouts_tt_reset__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 12, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_ui_layouts_tt_reset__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_ui_layouts_tt_reset__lt_module_gt_ + 37, + .opcodes = fun_data_trezor_ui_layouts_tt_reset__lt_module_gt_ + 37, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_ui_layouts_tt_reset[83] = { + MP_QSTR_trezor_slash_ui_slash_layouts_slash_tt_slash_reset_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_trezorui2, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_ActionCancelled, + MP_QSTR_trezor_dot_wire, + MP_QSTR_wait, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_interact, + MP_QSTR_common, + MP_QSTR_RustLayout, + MP_QSTR_raise_if_not_confirmed, + MP_QSTR_, + MP_QSTR_CONFIRMED, + MP_QSTR_TRY_space_AGAIN, + MP_QSTR_Warning, + MP_QSTR__split_share_into_pages, + MP_QSTR_append, + MP_QSTR__0x0a_, + MP_QSTR__brace_open__colon__gt__brace_open__brace_close__brace_close__dot__space__brace_open__brace_close_, + MP_QSTR_format, + MP_QSTR_show_share_words, + MP_QSTR_title, + MP_QSTR_pages, + MP_QSTR_ResetDevice, + MP_QSTR_select_word, + MP_QSTR_CHECK_space_SEED, + MP_QSTR_description, + MP_QSTR_words, + MP_QSTR_slip39_show_checklist, + MP_QSTR_BackupType, + MP_QSTR_Slip39_Basic, + MP_QSTR_show_checklist, + MP_QSTR_button, + MP_QSTR_CONTINUE, + MP_QSTR_active, + MP_QSTR_items, + MP_QSTR__prompt_number, + MP_QSTR_request_number, + MP_QSTR_upper, + MP_QSTR_count, + MP_QSTR_min_count, + MP_QSTR_max_count, + MP_QSTR_show_simple, + MP_QSTR_request_complete_repaint, + MP_QSTR_slip39_prompt_threshold, + MP_QSTR_slip39_prompt_number_of_shares, + MP_QSTR_slip39_advanced_prompt_number_of_groups, + MP_QSTR_slip39_advanced_prompt_group_threshold, + MP_QSTR_show_warning_backup, + MP_QSTR_show_info, + MP_QSTR_allow_cancel, + MP_QSTR_show_success_backup, + MP_QSTR_show_success, + MP_QSTR_show_reset_warning, + MP_QSTR_show_warning, + MP_QSTR_info, + MP_QSTR_1_space_share_dot_, + MP_QSTR__lt_lambda_gt_, + MP_QSTR_ctx_wait, + MP_QSTR_share_words, + MP_QSTR_per_page, + MP_QSTR_enumerate, + MP_QSTR_share_index, + MP_QSTR_group_index, + MP_QSTR_checked_index, + MP_QSTR_list, + MP_QSTR_len, + MP_QSTR_step, + MP_QSTR_backup_type, + MP_QSTR_br_name, + MP_QSTR_num_of_shares, + MP_QSTR_group_id, + MP_QSTR_min, + MP_QSTR_num_of_groups, + MP_QSTR_slip39, + MP_QSTR_br_type, + MP_QSTR_content, + MP_QSTR_subheader, + MP_QSTR_br_code, + MP_QSTR__star_, + MP_QSTR_i, +}; + +// constants +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_7_2 = {{&mp_type_str}, 2619, 40, (const byte*)"\x57\x72\x69\x74\x65\x20\x64\x6f\x77\x6e\x20\x61\x6e\x64\x20\x63\x68\x65\x63\x6b\x20\x61\x6c\x6c\x20\x72\x65\x63\x6f\x76\x65\x72\x79\x20\x73\x68\x61\x72\x65\x73"}; +static const mp_rom_obj_tuple_t const_obj_trezor_ui_layouts_tt_reset_7 = {{&mp_type_tuple}, 3, { + MP_ROM_QSTR(MP_QSTR_Set_space_number_space_of_space_shares), + MP_ROM_QSTR(MP_QSTR_Set_space_threshold), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_7_2), +}}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_8_2 = {{&mp_type_str}, 64917, 37, (const byte*)"\x53\x65\x74\x20\x73\x69\x7a\x65\x20\x61\x6e\x64\x20\x74\x68\x72\x65\x73\x68\x6f\x6c\x64\x20\x66\x6f\x72\x20\x65\x61\x63\x68\x20\x67\x72\x6f\x75\x70"}; +static const mp_rom_obj_tuple_t const_obj_trezor_ui_layouts_tt_reset_8 = {{&mp_type_tuple}, 3, { + MP_ROM_QSTR(MP_QSTR_Set_space_number_space_of_space_groups), + MP_ROM_QSTR(MP_QSTR_Set_space_number_space_of_space_shares), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_8_2), +}}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_14 = {{&mp_type_str}, 12410, 116, (const byte*)"\x45\x61\x63\x68\x20\x72\x65\x63\x6f\x76\x65\x72\x79\x20\x73\x68\x61\x72\x65\x20\x69\x73\x20\x61\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x20\x6f\x66\x20\x32\x30\x20\x77\x6f\x72\x64\x73\x2e\x20\x4e\x65\x78\x74\x20\x79\x6f\x75\x20\x77\x69\x6c\x6c\x20\x63\x68\x6f\x6f\x73\x65\x20\x68\x6f\x77\x20\x6d\x61\x6e\x79\x20\x73\x68\x61\x72\x65\x73\x20\x79\x6f\x75\x20\x6e\x65\x65\x64\x20\x74\x6f\x20\x72\x65\x63\x6f\x76\x65\x72\x20\x79\x6f\x75\x72\x20\x77\x61\x6c\x6c\x65\x74\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_15 = {{&mp_type_str}, 58836, 123, (const byte*)"\x45\x61\x63\x68\x20\x72\x65\x63\x6f\x76\x65\x72\x79\x20\x73\x68\x61\x72\x65\x20\x69\x73\x20\x61\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x20\x6f\x66\x20\x32\x30\x20\x77\x6f\x72\x64\x73\x2e\x20\x4e\x65\x78\x74\x20\x79\x6f\x75\x20\x77\x69\x6c\x6c\x20\x63\x68\x6f\x6f\x73\x65\x20\x74\x68\x65\x20\x74\x68\x72\x65\x73\x68\x6f\x6c\x64\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x73\x68\x61\x72\x65\x73\x20\x6e\x65\x65\x64\x65\x64\x20\x74\x6f\x20\x66\x6f\x72\x6d\x20\x47\x72\x6f\x75\x70\x20\x7b\x7d\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_18 = {{&mp_type_str}, 61907, 38, (const byte*)"\x41\x20\x67\x72\x6f\x75\x70\x20\x69\x73\x20\x6d\x61\x64\x65\x20\x75\x70\x20\x6f\x66\x20\x72\x65\x63\x6f\x76\x65\x72\x79\x20\x73\x68\x61\x72\x65\x73\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_19 = {{&mp_type_str}, 50643, 133, (const byte*)"\x45\x61\x63\x68\x20\x67\x72\x6f\x75\x70\x20\x68\x61\x73\x20\x61\x20\x73\x65\x74\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x73\x68\x61\x72\x65\x73\x20\x61\x6e\x64\x20\x69\x74\x73\x20\x6f\x77\x6e\x20\x74\x68\x72\x65\x73\x68\x6f\x6c\x64\x2e\x20\x49\x6e\x20\x74\x68\x65\x20\x6e\x65\x78\x74\x20\x73\x74\x65\x70\x73\x20\x79\x6f\x75\x20\x77\x69\x6c\x6c\x20\x73\x65\x74\x20\x74\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\x73\x20\x6f\x66\x20\x73\x68\x61\x72\x65\x73\x20\x61\x6e\x64\x20\x74\x68\x65\x20\x74\x68\x72\x65\x73\x68\x6f\x6c\x64\x73\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_22 = {{&mp_type_str}, 35205, 43, (const byte*)"\x54\x68\x65\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x67\x72\x6f\x75\x70\x73\x20\x66\x6f\x72\x20\x72\x65\x63\x6f\x76\x65\x72\x79\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_23 = {{&mp_type_str}, 19758, 83, (const byte*)"\x54\x68\x65\x20\x67\x72\x6f\x75\x70\x20\x74\x68\x72\x65\x73\x68\x6f\x6c\x64\x20\x73\x70\x65\x63\x69\x66\x69\x65\x73\x20\x74\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x67\x72\x6f\x75\x70\x73\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x74\x6f\x20\x72\x65\x63\x6f\x76\x65\x72\x20\x79\x6f\x75\x72\x20\x77\x61\x6c\x6c\x65\x74\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_26 = {{&mp_type_str}, 42466, 70, (const byte*)"\x4e\x65\x76\x65\x72\x20\x6d\x61\x6b\x65\x20\x61\x20\x64\x69\x67\x69\x74\x61\x6c\x20\x63\x6f\x70\x79\x20\x6f\x66\x20\x79\x6f\x75\x72\x20\x73\x68\x61\x72\x65\x73\x20\x61\x6e\x64\x20\x6e\x65\x76\x65\x72\x20\x75\x70\x6c\x6f\x61\x64\x20\x74\x68\x65\x6d\x20\x6f\x6e\x6c\x69\x6e\x65\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_27 = {{&mp_type_str}, 42370, 66, (const byte*)"\x4e\x65\x76\x65\x72\x20\x6d\x61\x6b\x65\x20\x61\x20\x64\x69\x67\x69\x74\x61\x6c\x20\x63\x6f\x70\x79\x20\x6f\x66\x20\x79\x6f\x75\x72\x20\x73\x65\x65\x64\x20\x61\x6e\x64\x20\x6e\x65\x76\x65\x72\x20\x75\x70\x6c\x6f\x61\x64\x20\x69\x74\x20\x6f\x6e\x6c\x69\x6e\x65\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_29 = {{&mp_type_str}, 47677, 53, (const byte*)"\x55\x73\x65\x20\x79\x6f\x75\x72\x20\x62\x61\x63\x6b\x75\x70\x20\x77\x68\x65\x6e\x20\x79\x6f\x75\x20\x6e\x65\x65\x64\x20\x74\x6f\x20\x72\x65\x63\x6f\x76\x65\x72\x20\x79\x6f\x75\x72\x20\x77\x61\x6c\x6c\x65\x74\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_32 = {{&mp_type_str}, 56326, 30, (const byte*)"\x46\x6f\x72\x20\x72\x65\x63\x6f\x76\x65\x72\x79\x20\x79\x6f\x75\x20\x6e\x65\x65\x64\x20\x31\x20\x73\x68\x61\x72\x65\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_33 = {{&mp_type_str}, 57427, 43, (const byte*)"\x46\x6f\x72\x20\x72\x65\x63\x6f\x76\x65\x72\x79\x20\x79\x6f\x75\x20\x6e\x65\x65\x64\x20\x61\x6c\x6c\x20\x7b\x7d\x20\x6f\x66\x20\x74\x68\x65\x20\x73\x68\x61\x72\x65\x73\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_34 = {{&mp_type_str}, 60484, 43, (const byte*)"\x46\x6f\x72\x20\x72\x65\x63\x6f\x76\x65\x72\x79\x20\x79\x6f\x75\x20\x6e\x65\x65\x64\x20\x61\x6e\x79\x20\x7b\x7d\x20\x6f\x66\x20\x74\x68\x65\x20\x73\x68\x61\x72\x65\x73\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_35 = {{&mp_type_str}, 4571, 47, (const byte*)"\x54\x68\x65\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x73\x68\x61\x72\x65\x73\x20\x74\x6f\x20\x66\x6f\x72\x6d\x20\x47\x72\x6f\x75\x70\x20\x7b\x7d\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_36 = {{&mp_type_str}, 13335, 40, (const byte*)"\x54\x68\x65\x20\x74\x68\x72\x65\x73\x68\x6f\x6c\x64\x20\x73\x65\x74\x73\x20\x74\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x73\x68\x61\x72\x65\x73\x20"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_37 = {{&mp_type_str}, 24823, 31, (const byte*)"\x6e\x65\x65\x64\x65\x64\x20\x74\x6f\x20\x72\x65\x63\x6f\x76\x65\x72\x20\x79\x6f\x75\x72\x20\x77\x61\x6c\x6c\x65\x74\x2e\x20"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_38 = {{&mp_type_str}, 54171, 31, (const byte*)"\x53\x65\x74\x20\x69\x74\x20\x74\x6f\x20\x7b\x7d\x20\x61\x6e\x64\x20\x79\x6f\x75\x20\x77\x69\x6c\x6c\x20\x6e\x65\x65\x64\x20"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_39 = {{&mp_type_str}, 60972, 25, (const byte*)"\x61\x6c\x6c\x20\x7b\x7d\x20\x6f\x66\x20\x79\x6f\x75\x72\x20\x7b\x7d\x20\x73\x68\x61\x72\x65\x73\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_40 = {{&mp_type_str}, 62267, 25, (const byte*)"\x61\x6e\x79\x20\x7b\x7d\x20\x6f\x66\x20\x79\x6f\x75\x72\x20\x7b\x7d\x20\x73\x68\x61\x72\x65\x73\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_42 = {{&mp_type_str}, 11953, 26, (const byte*)"\x53\x65\x74\x20\x69\x74\x20\x74\x6f\x20\x7b\x7d\x20\x61\x6e\x64\x20\x79\x6f\x75\x20\x77\x69\x6c\x6c\x20"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_44 = {{&mp_type_str}, 58425, 25, (const byte*)"\x6e\x65\x65\x64\x20\x61\x6c\x6c\x20\x7b\x7d\x20\x6f\x66\x20\x7b\x7d\x20\x73\x68\x61\x72\x65\x73\x20"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_45 = {{&mp_type_str}, 37838, 25, (const byte*)"\x6e\x65\x65\x64\x20\x61\x6e\x79\x20\x7b\x7d\x20\x6f\x66\x20\x7b\x7d\x20\x73\x68\x61\x72\x65\x73\x20"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_47 = {{&mp_type_str}, 10735, 31, (const byte*)"\x4f\x6e\x6c\x79\x20\x6f\x6e\x65\x20\x73\x68\x61\x72\x65\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x63\x72\x65\x61\x74\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_48 = {{&mp_type_str}, 59466, 48, (const byte*)"\x7b\x7d\x20\x70\x65\x6f\x70\x6c\x65\x20\x6f\x72\x20\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x73\x20\x77\x69\x6c\x6c\x20\x65\x61\x63\x68\x20\x68\x6f\x6c\x64\x20\x6f\x6e\x65\x20\x73\x68\x61\x72\x65\x2e"}; +static const mp_obj_str_t const_obj_trezor_ui_layouts_tt_reset_49 = {{&mp_type_str}, 21176, 43, (const byte*)"\x53\x65\x74\x20\x74\x68\x65\x20\x74\x6f\x74\x61\x6c\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x73\x68\x61\x72\x65\x73\x20\x69\x6e\x20\x47\x72\x6f\x75\x70\x20\x7b\x7d\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_ui_layouts_tt_reset[50] = { + MP_ROM_QSTR(MP_QSTR_RECOVERY_space_SEED), + MP_ROM_QSTR(MP_QSTR_RECOVERY_space_SHARE_space__hash__brace_open__brace_close_), + MP_ROM_QSTR(MP_QSTR_GROUP_space__brace_open__brace_close__space__hyphen__space_SHARE_space__brace_open__brace_close_), + MP_ROM_QSTR(MP_QSTR_backup_words), + MP_ROM_QSTR(MP_QSTR_CHECK_space_SHARE_space__hash__brace_open__brace_close_), + MP_ROM_QSTR(MP_QSTR_CHECK_space_G_brace_open__brace_close__space__hyphen__space_SHARE_space__brace_open__brace_close_), + MP_ROM_QSTR(MP_QSTR_Select_space_word_space__brace_open__brace_close__space_of_space__brace_open__brace_close__colon_), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_7), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_8), + MP_ROM_QSTR(MP_QSTR_BACKUP_space_CHECKLIST), + MP_ROM_QSTR(MP_QSTR_slip39_checklist), + MP_ROM_QSTR(MP_QSTR_OK_comma__space_I_space_UNDERSTAND), + MP_ROM_QSTR(MP_QSTR_SET_space_THRESHOLD), + MP_ROM_QSTR(MP_QSTR_slip39_threshold), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_14), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_15), + MP_ROM_QSTR(MP_QSTR_SET_space_NUMBER_space_OF_space_SHARES), + MP_ROM_QSTR(MP_QSTR_slip39_shares), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_18), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_19), + MP_ROM_QSTR(MP_QSTR_SET_space_NUMBER_space_OF_space_GROUPS), + MP_ROM_QSTR(MP_QSTR_slip39_groups), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_22), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_23), + MP_ROM_QSTR(MP_QSTR_SET_space_GROUP_space_THRESHOLD), + MP_ROM_QSTR(MP_QSTR_slip39_group_threshold), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_26), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_27), + MP_ROM_QSTR(MP_QSTR_backup_warning), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_29), + MP_ROM_QSTR(MP_QSTR_success_backup), + MP_ROM_QSTR(MP_QSTR_Your_space_backup_space_is_space_done_dot_), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_32), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_33), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_34), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_35), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_36), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_37), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_38), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_39), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_40), + MP_ROM_QSTR(MP_QSTR_needed_space_to_space_form_space_a_space_group_dot__space_), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_42), + MP_ROM_QSTR(MP_QSTR_need_space_1_space_share_space_), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_44), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_45), + MP_ROM_QSTR(MP_QSTR_to_space_form_space_Group_space__brace_open__brace_close__dot_), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_47), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_48), + MP_ROM_PTR(&const_obj_trezor_ui_layouts_tt_reset_49), +}; + +static const mp_frozen_module_t frozen_module_trezor_ui_layouts_tt_reset = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_ui_layouts_tt_reset, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_ui_layouts_tt_reset, + }, + .rc = &raw_code_trezor_ui_layouts_tt_reset__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_wire___init__ +// - original source file: build/firmware/src/trezor/wire/__init__.mpy +// - frozen file name: trezor/wire/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/wire/__init__.py, scope trezor_wire___init____lt_module_gt_ +static const byte fun_data_trezor_wire___init____lt_module_gt_[228] = { + 0x28,0x42, // prelude + 0x01, // names: + 0x80,0x25,0x6c,0x2c,0x1f,0x25,0x2c,0x2c,0x32,0x78,0x20,0x68,0x80,0x0c,0x63,0x68,0x40,0x84,0x16,0x4a,0x60,0x40,0x84,0x69,0x88,0x43,0x64,0x40,0x24,0x64,0x84,0x11, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'InvalidSessionError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'storage.cache' + 0x1c,0x04, // IMPORT_FROM 'InvalidSessionError' + 0x16,0x04, // STORE_NAME 'InvalidSessionError' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'log' + 0x10,0x07, // LOAD_CONST_STRING 'loop' + 0x10,0x08, // LOAD_CONST_STRING 'protobuf' + 0x10,0x09, // LOAD_CONST_STRING 'utils' + 0x10,0x0a, // LOAD_CONST_STRING 'workflow' + 0x2a,0x05, // BUILD_TUPLE 5 + 0x1b,0x0b, // IMPORT_NAME 'trezor' + 0x1c,0x06, // IMPORT_FROM 'log' + 0x16,0x06, // STORE_NAME 'log' + 0x1c,0x07, // IMPORT_FROM 'loop' + 0x16,0x07, // STORE_NAME 'loop' + 0x1c,0x08, // IMPORT_FROM 'protobuf' + 0x16,0x08, // STORE_NAME 'protobuf' + 0x1c,0x09, // IMPORT_FROM 'utils' + 0x16,0x09, // STORE_NAME 'utils' + 0x1c,0x0a, // IMPORT_FROM 'workflow' + 0x16,0x0a, // STORE_NAME 'workflow' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'FailureType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'trezor.enums' + 0x1c,0x0c, // IMPORT_FROM 'FailureType' + 0x16,0x0c, // STORE_NAME 'FailureType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'Failure' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0e, // IMPORT_FROM 'Failure' + 0x16,0x0e, // STORE_NAME 'Failure' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'codec_v1' + 0x10,0x11, // LOAD_CONST_STRING 'context' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x12, // IMPORT_NAME 'trezor.wire' + 0x1c,0x10, // IMPORT_FROM 'codec_v1' + 0x16,0x10, // STORE_NAME 'codec_v1' + 0x1c,0x11, // IMPORT_FROM 'context' + 0x16,0x11, // STORE_NAME 'context' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'ActionCancelled' + 0x10,0x14, // LOAD_CONST_STRING 'DataError' + 0x10,0x15, // LOAD_CONST_STRING 'Error' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x16, // IMPORT_NAME 'trezor.wire.errors' + 0x1c,0x13, // IMPORT_FROM 'ActionCancelled' + 0x16,0x13, // STORE_NAME 'ActionCancelled' + 0x1c,0x14, // IMPORT_FROM 'DataError' + 0x16,0x14, // STORE_NAME 'DataError' + 0x1c,0x15, // IMPORT_FROM 'Error' + 0x16,0x15, // STORE_NAME 'Error' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING '*' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x16, // IMPORT_NAME 'trezor.wire.errors' + 0x69, // IMPORT_STAR + 0x50, // LOAD_CONST_FALSE + 0x16,0x3d, // STORE_NAME 'EXPERIMENTAL_ENABLED' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x18, // STORE_NAME 'setup' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x1b, // STORE_NAME 'wrap_protobuf_load' + 0x11,0x3e, // LOAD_NAME 'bytearray' + 0x22,0x80,0xc0,0x00, // LOAD_CONST_SMALL_INT 8192 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x3f, // STORE_NAME 'WIRE_BUFFER' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x20, // STORE_NAME '_handle_single_message' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x03, // MAKE_FUNCTION_DEFARGS 3 + 0x16,0x2c, // STORE_NAME 'handle_session' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x34, // STORE_NAME '_find_handler_placeholder' + 0x11,0x34, // LOAD_NAME '_find_handler_placeholder' + 0x16,0x40, // STORE_NAME 'find_handler' + 0x2a,0x00, // BUILD_TUPLE 0 + 0x16,0x41, // STORE_NAME 'AVOID_RESTARTING_FOR' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x35, // STORE_NAME 'failure' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x3c, // STORE_NAME 'unexpected_message' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_wire___init____lt_module_gt_ +// frozen bytecode for file trezor/wire/__init__.py, scope trezor_wire___init___setup +static const byte fun_data_trezor_wire___init___setup[28] = { + 0xba,0x01,0x0c, // prelude + 0x18,0x21,0x42, // names: setup, iface, is_debug_session + 0x80,0x44,0x20, // code info + 0x12,0x07, // LOAD_GLOBAL 'loop' + 0x14,0x19, // LOAD_METHOD 'schedule' + 0x12,0x2c, // LOAD_GLOBAL 'handle_session' + 0xb0, // LOAD_FAST 0 + 0x12,0x10, // LOAD_GLOBAL 'codec_v1' + 0x13,0x1a, // LOAD_ATTR 'SESSION_ID' + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire___init___setup = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_wire___init___setup, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 24, + .line_info = fun_data_trezor_wire___init___setup + 6, + .line_info_top = fun_data_trezor_wire___init___setup + 9, + .opcodes = fun_data_trezor_wire___init___setup + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire___init____lt_module_gt_ +// frozen bytecode for file trezor/wire/__init__.py, scope trezor_wire___init___wrap_protobuf_load +static const byte fun_data_trezor_wire___init___wrap_protobuf_load[84] = { + 0xda,0x02,0x1a, // prelude + 0x1b,0x43,0x44, // names: wrap_protobuf_load, buffer, expected_type + 0x80,0x4c,0x22,0x2b,0x60,0x20,0x4d,0x40,0x25,0x53, // code info + 0x48,0x0f, // SETUP_EXCEPT 15 + 0x12,0x08, // LOAD_GLOBAL 'protobuf' + 0x14,0x1c, // LOAD_METHOD 'decode' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x12,0x3d, // LOAD_GLOBAL 'EXPERIMENTAL_ENABLED' + 0x36,0x03, // CALL_METHOD 3 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE + 0x4a,0x31, // POP_EXCEPT_JUMP 49 + 0x57, // DUP_TOP + 0x12,0x45, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x6a, // POP_JUMP_IF_FALSE 42 + 0xc3, // STORE_FAST 3 + 0x49,0x20, // SETUP_FINALLY 32 + 0xb3, // LOAD_FAST 3 + 0x13,0x1d, // LOAD_ATTR 'args' + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x14, // LOAD_GLOBAL 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x10,0x1e, // LOAD_CONST_STRING ' ' + 0x14,0x1f, // LOAD_METHOD 'join' + 0xb3, // LOAD_FAST 3 + 0x13,0x1d, // LOAD_ATTR 'args' + 0x36,0x01, // CALL_METHOD 1 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x47, // JUMP 7 + 0x12,0x14, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xc3, // STORE_FAST 3 + 0x28,0x03, // DELETE_FAST 3 + 0x5d, // END_FINALLY + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire___init___wrap_protobuf_load = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_wire___init___wrap_protobuf_load, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 84, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 2, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 27, + .line_info = fun_data_trezor_wire___init___wrap_protobuf_load + 6, + .line_info_top = fun_data_trezor_wire___init___wrap_protobuf_load + 16, + .opcodes = fun_data_trezor_wire___init___wrap_protobuf_load + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire___init____lt_module_gt_ +// frozen bytecode for file trezor/wire/__init__.py, scope trezor_wire___init____handle_single_message +static const byte fun_data_trezor_wire___init____handle_single_message[210] = { + 0xf3,0x42,0x4c, // prelude + 0x20,0x46,0x2b,0x31, // names: _handle_single_message, ctx, msg, use_workflow + 0x80,0x68,0x80,0x0e,0x80,0x0d,0x62,0x4b,0x65,0x2d,0x42,0x2a,0x65,0x20,0x62,0x6a,0x20,0x69,0x65,0x60,0x63,0x74,0x20,0x48,0x8a,0x09,0x75,0x60,0x60,0x80,0x07,0x4f,0x66,0x2a, // code info + 0x51, // LOAD_CONST_NONE + 0xc3, // STORE_FAST 3 + 0x12,0x40, // LOAD_GLOBAL 'find_handler' + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'iface' + 0xb1, // LOAD_FAST 1 + 0x13,0x22, // LOAD_ATTR 'type' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb0, // LOAD_FAST 0 + 0x14,0x23, // LOAD_METHOD 'write' + 0x12,0x3c, // LOAD_GLOBAL 'unexpected_message' + 0x34,0x00, // CALL_FUNCTION 0 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x22, // LOAD_ATTR 'type' + 0x12,0x0a, // LOAD_GLOBAL 'workflow' + 0x13,0x24, // LOAD_ATTR 'ALLOW_WHILE_LOCKED' + 0xdd, // BINARY_OP 6 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x50, // LOAD_CONST_FALSE + 0x12,0x0a, // LOAD_GLOBAL 'workflow' + 0x18,0x25, // STORE_ATTR 'autolock_interrupts_workflow' + 0x48,0x36, // SETUP_EXCEPT 54 + 0x12,0x08, // LOAD_GLOBAL 'protobuf' + 0x14,0x26, // LOAD_METHOD 'type_for_wire' + 0xb1, // LOAD_FAST 1 + 0x13,0x22, // LOAD_ATTR 'type' + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0x12,0x1b, // LOAD_GLOBAL 'wrap_protobuf_load' + 0xb1, // LOAD_FAST 1 + 0x13,0x27, // LOAD_ATTR 'data' + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0xb2, // LOAD_FAST 2 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x0a, // LOAD_GLOBAL 'workflow' + 0x14,0x28, // LOAD_METHOD 'spawn' + 0x12,0x11, // LOAD_GLOBAL 'context' + 0x14,0x29, // LOAD_METHOD 'with_context' + 0xb0, // LOAD_FAST 0 + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0x42,0x45, // JUMP 5 + 0xb7, // LOAD_FAST 7 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0x4a,0x2f, // POP_EXCEPT_JUMP 47 + 0x57, // DUP_TOP + 0x12,0x11, // LOAD_GLOBAL 'context' + 0x13,0x2a, // LOAD_ATTR 'UnexpectedMessage' + 0xdf, // BINARY_OP 8 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xc8, // STORE_FAST 8 + 0x49,0x05, // SETUP_FINALLY 5 + 0xb8, // LOAD_FAST 8 + 0x13,0x2b, // LOAD_ATTR 'msg' + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xc8, // STORE_FAST 8 + 0x28,0x08, // DELETE_FAST 8 + 0x5d, // END_FINALLY + 0x4a,0x18, // POP_EXCEPT_JUMP 24 + 0x57, // DUP_TOP + 0x12,0x47, // LOAD_GLOBAL 'BaseException' + 0xdf, // BINARY_OP 8 + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xc8, // STORE_FAST 8 + 0x49,0x07, // SETUP_FINALLY 7 + 0x12,0x35, // LOAD_GLOBAL 'failure' + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xc8, // STORE_FAST 8 + 0x28,0x08, // DELETE_FAST 8 + 0x5d, // END_FINALLY + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb0, // LOAD_FAST 0 + 0x14,0x23, // LOAD_METHOD 'write' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire___init____handle_single_message = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire___init____handle_single_message, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 210, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 2, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_trezor_wire___init____handle_single_message + 7, + .line_info_top = fun_data_trezor_wire___init____handle_single_message + 41, + .opcodes = fun_data_trezor_wire___init____handle_single_message + 41, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire___init____lt_module_gt_ +// frozen bytecode for file trezor/wire/__init__.py, scope trezor_wire___init___handle_session +static const byte fun_data_trezor_wire___init___handle_session[225] = { + 0xfb,0xc1,0x02,0x4a, // prelude + 0x2c,0x21,0x48,0x42, // names: handle_session, iface, session_id, is_debug_session + 0x80,0xd1,0x60,0x43,0x2a,0x42,0x80,0x07,0x27,0x20,0x23,0x65,0x22,0x2c,0x2a,0x40,0x2e,0x6f,0x20,0x22,0x42,0x24,0x26,0x74,0x40,0x6a,0x60,0x40,0x48,0x6e,0x27,0x6e,0x40, // code info + 0x12,0x3f, // LOAD_GLOBAL 'WIRE_BUFFER' + 0xc3, // STORE_FAST 3 + 0x12,0x11, // LOAD_GLOBAL 'context' + 0x14,0x2d, // LOAD_METHOD 'Context' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0xc4, // STORE_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xc5, // STORE_FAST 5 + 0x12,0x09, // LOAD_GLOBAL 'utils' + 0x14,0x2e, // LOAD_METHOD 'unimport_begin' + 0x36,0x00, // CALL_METHOD 0 + 0xc6, // STORE_FAST 6 + 0x48,0x88,0x01, // SETUP_EXCEPT 136 + 0xb5, // LOAD_FAST 5 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x75, // POP_JUMP_IF_FALSE 53 + 0x48,0x0b, // SETUP_EXCEPT 11 + 0xb4, // LOAD_FAST 4 + 0x14,0x2f, // LOAD_METHOD 'read_from_wire' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc7, // STORE_FAST 7 + 0x4a,0x26, // POP_EXCEPT_JUMP 38 + 0x57, // DUP_TOP + 0x12,0x10, // LOAD_GLOBAL 'codec_v1' + 0x13,0x30, // LOAD_ATTR 'CodecError' + 0xdf, // BINARY_OP 8 + 0x44,0x5d, // POP_JUMP_IF_FALSE 29 + 0xc8, // STORE_FAST 8 + 0x49,0x13, // SETUP_FINALLY 19 + 0xb4, // LOAD_FAST 4 + 0x14,0x23, // LOAD_METHOD 'write' + 0x12,0x35, // LOAD_GLOBAL 'failure' + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x40,0xec,0x80,0x03, // UNWIND_JUMP 108 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xc8, // STORE_FAST 8 + 0x28,0x08, // DELETE_FAST 8 + 0x5d, // END_FINALLY + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x42,0x44, // JUMP 4 + 0xb5, // LOAD_FAST 5 + 0xc7, // STORE_FAST 7 + 0x51, // LOAD_CONST_NONE + 0xc5, // STORE_FAST 5 + 0x49,0x26, // SETUP_FINALLY 38 + 0x48,0x11, // SETUP_EXCEPT 17 + 0x12,0x20, // LOAD_GLOBAL '_handle_single_message' + 0xb4, // LOAD_FAST 4 + 0xb7, // LOAD_FAST 7 + 0x10,0x31, // LOAD_CONST_STRING 'use_workflow' + 0xb2, // LOAD_FAST 2 + 0xd3, // UNARY_OP 3 + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0x4a,0x12, // POP_EXCEPT_JUMP 18 + 0x57, // DUP_TOP + 0x12,0x45, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xc8, // STORE_FAST 8 + 0x49,0x01, // SETUP_FINALLY 1 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xc8, // STORE_FAST 8 + 0x28,0x08, // DELETE_FAST 8 + 0x5d, // END_FINALLY + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x12,0x09, // LOAD_GLOBAL 'utils' + 0x14,0x32, // LOAD_METHOD 'unimport_end' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb7, // LOAD_FAST 7 + 0x13,0x22, // LOAD_ATTR 'type' + 0x12,0x41, // LOAD_GLOBAL 'AVOID_RESTARTING_FOR' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x07, // LOAD_GLOBAL 'loop' + 0x14,0x33, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x5d, // END_FINALLY + 0x4a,0x12, // POP_EXCEPT_JUMP 18 + 0x57, // DUP_TOP + 0x12,0x45, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xc8, // STORE_FAST 8 + 0x49,0x01, // SETUP_FINALLY 1 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xc8, // STORE_FAST 8 + 0x28,0x08, // DELETE_FAST 8 + 0x5d, // END_FINALLY + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x42,0xe0,0x7e, // JUMP -160 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire___init___handle_session = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire___init___handle_session, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 225, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 4, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 44, + .line_info = fun_data_trezor_wire___init___handle_session + 8, + .line_info_top = fun_data_trezor_wire___init___handle_session + 41, + .opcodes = fun_data_trezor_wire___init___handle_session + 41, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire___init____lt_module_gt_ +// frozen bytecode for file trezor/wire/__init__.py, scope trezor_wire___init____find_handler_placeholder +static const byte fun_data_trezor_wire___init____find_handler_placeholder[10] = { + 0x12,0x0c, // prelude + 0x34,0x21,0x49, // names: _find_handler_placeholder, iface, msg_type + 0x90,0x12,0x20, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire___init____find_handler_placeholder = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_trezor_wire___init____find_handler_placeholder, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 10, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 52, + .line_info = fun_data_trezor_wire___init____find_handler_placeholder + 5, + .line_info_top = fun_data_trezor_wire___init____find_handler_placeholder + 8, + .opcodes = fun_data_trezor_wire___init____find_handler_placeholder + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire___init____lt_module_gt_ +// frozen bytecode for file trezor/wire/__init__.py, scope trezor_wire___init___failure +static const byte fun_data_trezor_wire___init___failure[112] = { + 0x31,0x1a, // prelude + 0x35,0x4a, // names: failure, exc + 0x90,0x1b,0x29,0x30,0x2b,0x30,0x29,0x70,0x20,0x60,0x23, // code info + 0x12,0x4b, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x15, // LOAD_GLOBAL 'Error' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x12,0x0e, // LOAD_GLOBAL 'Failure' + 0x10,0x36, // LOAD_CONST_STRING 'code' + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'code' + 0x10,0x37, // LOAD_CONST_STRING 'message' + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'message' + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE + 0x12,0x4b, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x07, // LOAD_GLOBAL 'loop' + 0x13,0x38, // LOAD_ATTR 'TaskClosed' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x12,0x0e, // LOAD_GLOBAL 'Failure' + 0x10,0x36, // LOAD_CONST_STRING 'code' + 0x12,0x0c, // LOAD_GLOBAL 'FailureType' + 0x13,0x13, // LOAD_ATTR 'ActionCancelled' + 0x10,0x37, // LOAD_CONST_STRING 'message' + 0x10,0x39, // LOAD_CONST_STRING 'Cancelled' + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE + 0x12,0x4b, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x04, // LOAD_GLOBAL 'InvalidSessionError' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x12,0x0e, // LOAD_GLOBAL 'Failure' + 0x10,0x36, // LOAD_CONST_STRING 'code' + 0x12,0x0c, // LOAD_GLOBAL 'FailureType' + 0x13,0x3a, // LOAD_ATTR 'InvalidSession' + 0x10,0x37, // LOAD_CONST_STRING 'message' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xc1, // STORE_FAST 1 + 0x12,0x0e, // LOAD_GLOBAL 'Failure' + 0x10,0x36, // LOAD_CONST_STRING 'code' + 0x12,0x0c, // LOAD_GLOBAL 'FailureType' + 0x13,0x3b, // LOAD_ATTR 'FirmwareError' + 0x10,0x37, // LOAD_CONST_STRING 'message' + 0xb1, // LOAD_FAST 1 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire___init___failure = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_wire___init___failure, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 112, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 53, + .line_info = fun_data_trezor_wire___init___failure + 4, + .line_info_top = fun_data_trezor_wire___init___failure + 15, + .opcodes = fun_data_trezor_wire___init___failure + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire___init____lt_module_gt_ +// frozen bytecode for file trezor/wire/__init__.py, scope trezor_wire___init___unexpected_message +static const byte fun_data_trezor_wire___init___unexpected_message[21] = { + 0x20,0x06, // prelude + 0x3c, // names: unexpected_message + 0x90,0x2c, // code info + 0x12,0x0e, // LOAD_GLOBAL 'Failure' + 0x10,0x36, // LOAD_CONST_STRING 'code' + 0x12,0x0c, // LOAD_GLOBAL 'FailureType' + 0x13,0x2a, // LOAD_ATTR 'UnexpectedMessage' + 0x10,0x37, // LOAD_CONST_STRING 'message' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire___init___unexpected_message = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire___init___unexpected_message, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 60, + .line_info = fun_data_trezor_wire___init___unexpected_message + 3, + .line_info_top = fun_data_trezor_wire___init___unexpected_message + 5, + .opcodes = fun_data_trezor_wire___init___unexpected_message + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire___init____lt_module_gt_[] = { + &raw_code_trezor_wire___init___setup, + &raw_code_trezor_wire___init___wrap_protobuf_load, + &raw_code_trezor_wire___init____handle_single_message, + &raw_code_trezor_wire___init___handle_session, + &raw_code_trezor_wire___init____find_handler_placeholder, + &raw_code_trezor_wire___init___failure, + &raw_code_trezor_wire___init___unexpected_message, +}; + +static const mp_raw_code_t raw_code_trezor_wire___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 228, + #endif + .children = (void *)&children_trezor_wire___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 7, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_wire___init____lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_wire___init____lt_module_gt_ + 35, + .opcodes = fun_data_trezor_wire___init____lt_module_gt_ + 35, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_wire___init__[76] = { + MP_QSTR_trezor_slash_wire_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_InvalidSessionError, + MP_QSTR_storage_dot_cache, + MP_QSTR_log, + MP_QSTR_loop, + MP_QSTR_protobuf, + MP_QSTR_utils, + MP_QSTR_workflow, + MP_QSTR_trezor, + MP_QSTR_FailureType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_Failure, + MP_QSTR_trezor_dot_messages, + MP_QSTR_codec_v1, + MP_QSTR_context, + MP_QSTR_trezor_dot_wire, + MP_QSTR_ActionCancelled, + MP_QSTR_DataError, + MP_QSTR_Error, + MP_QSTR_trezor_dot_wire_dot_errors, + MP_QSTR__star_, + MP_QSTR_setup, + MP_QSTR_schedule, + MP_QSTR_SESSION_ID, + MP_QSTR_wrap_protobuf_load, + MP_QSTR_decode, + MP_QSTR_args, + MP_QSTR__space_, + MP_QSTR_join, + MP_QSTR__handle_single_message, + MP_QSTR_iface, + MP_QSTR_type, + MP_QSTR_write, + MP_QSTR_ALLOW_WHILE_LOCKED, + MP_QSTR_autolock_interrupts_workflow, + MP_QSTR_type_for_wire, + MP_QSTR_data, + MP_QSTR_spawn, + MP_QSTR_with_context, + MP_QSTR_UnexpectedMessage, + MP_QSTR_msg, + MP_QSTR_handle_session, + MP_QSTR_Context, + MP_QSTR_unimport_begin, + MP_QSTR_read_from_wire, + MP_QSTR_CodecError, + MP_QSTR_use_workflow, + MP_QSTR_unimport_end, + MP_QSTR_clear, + MP_QSTR__find_handler_placeholder, + MP_QSTR_failure, + MP_QSTR_code, + MP_QSTR_message, + MP_QSTR_TaskClosed, + MP_QSTR_Cancelled, + MP_QSTR_InvalidSession, + MP_QSTR_FirmwareError, + MP_QSTR_unexpected_message, + MP_QSTR_EXPERIMENTAL_ENABLED, + MP_QSTR_bytearray, + MP_QSTR_WIRE_BUFFER, + MP_QSTR_find_handler, + MP_QSTR_AVOID_RESTARTING_FOR, + MP_QSTR_is_debug_session, + MP_QSTR_buffer, + MP_QSTR_expected_type, + MP_QSTR_Exception, + MP_QSTR_ctx, + MP_QSTR_BaseException, + MP_QSTR_session_id, + MP_QSTR_msg_type, + MP_QSTR_exc, + MP_QSTR_isinstance, +}; + +// constants +static const mp_obj_str_t const_obj_trezor_wire___init___0 = {{&mp_type_str}, 41728, 26, (const byte*)"\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x64\x65\x63\x6f\x64\x65\x20\x6d\x65\x73\x73\x61\x67\x65\x3a\x20"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_wire___init__[5] = { + MP_ROM_PTR(&const_obj_trezor_wire___init___0), + MP_ROM_QSTR(MP_QSTR_Failed_space_to_space_decode_space_message), + MP_ROM_QSTR(MP_QSTR_Invalid_space_session), + MP_ROM_QSTR(MP_QSTR_Firmware_space_error), + MP_ROM_QSTR(MP_QSTR_Unexpected_space_message), +}; + +static const mp_frozen_module_t frozen_module_trezor_wire___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_wire___init__, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_wire___init__, + }, + .rc = &raw_code_trezor_wire___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_wire_codec_v1 +// - original source file: build/firmware/src/trezor/wire/codec_v1.mpy +// - frozen file name: trezor/wire/codec_v1.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/wire/codec_v1.py, scope trezor_wire_codec_v1__lt_module_gt_ +static const byte fun_data_trezor_wire_codec_v1__lt_module_gt_[96] = { + 0x18,0x1e, // prelude + 0x01, // names: + 0x26,0x6c,0x58,0x80,0x07,0x64,0x20,0x63,0x6b,0x20,0x69,0x60,0x84,0x2d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'ustruct' + 0x16,0x02, // STORE_NAME 'ustruct' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'micropython' + 0x1c,0x03, // IMPORT_FROM 'const' + 0x16,0x03, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'io' + 0x10,0x06, // LOAD_CONST_STRING 'loop' + 0x10,0x07, // LOAD_CONST_STRING 'utils' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x08, // IMPORT_NAME 'trezor' + 0x1c,0x05, // IMPORT_FROM 'io' + 0x16,0x05, // STORE_NAME 'io' + 0x1c,0x06, // IMPORT_FROM 'loop' + 0x16,0x06, // STORE_NAME 'loop' + 0x1c,0x07, // IMPORT_FROM 'utils' + 0x16,0x07, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x10,0x09, // LOAD_CONST_STRING '>BBBHL' + 0x16,0x19, // STORE_NAME '_REP_INIT' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x1a, // STORE_NAME 'SESSION_ID' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x0a, // LOAD_CONST_STRING 'CodecError' + 0x11,0x1b, // LOAD_NAME 'Exception' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0a, // STORE_NAME 'CodecError' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x0b, // LOAD_CONST_STRING 'Message' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x0b, // STORE_NAME 'Message' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0c, // STORE_NAME 'read_message' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x12, // STORE_NAME 'write_message' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_codec_v1__lt_module_gt_ +// frozen bytecode for file trezor/wire/codec_v1.py, scope trezor_wire_codec_v1_CodecError +static const byte fun_data_trezor_wire_codec_v1_CodecError[15] = { + 0x00,0x06, // prelude + 0x0a, // names: CodecError + 0x88,0x15, // code info + 0x11,0x1c, // LOAD_NAME '__name__' + 0x16,0x1d, // STORE_NAME '__module__' + 0x10,0x0a, // LOAD_CONST_STRING 'CodecError' + 0x16,0x1e, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_codec_v1_CodecError = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_codec_v1_CodecError, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_trezor_wire_codec_v1_CodecError + 3, + .line_info_top = fun_data_trezor_wire_codec_v1_CodecError + 5, + .opcodes = fun_data_trezor_wire_codec_v1_CodecError + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_codec_v1__lt_module_gt_ +// frozen bytecode for file trezor/wire/codec_v1.py, scope trezor_wire_codec_v1_Message +static const byte fun_data_trezor_wire_codec_v1_Message[19] = { + 0x00,0x06, // prelude + 0x0b, // names: Message + 0x88,0x19, // code info + 0x11,0x1c, // LOAD_NAME '__name__' + 0x16,0x1d, // STORE_NAME '__module__' + 0x10,0x0b, // LOAD_CONST_STRING 'Message' + 0x16,0x1e, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x16, // STORE_NAME '__init__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_codec_v1_Message +// frozen bytecode for file trezor/wire/codec_v1.py, scope trezor_wire_codec_v1_Message___init__ +static const byte fun_data_trezor_wire_codec_v1_Message___init__[19] = { + 0x23,0x0e, // prelude + 0x16,0x27,0x25,0x26, // names: __init__, self, mtype, mdata + 0x80,0x1a,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x17, // STORE_ATTR 'type' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x18, // STORE_ATTR 'data' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_codec_v1_Message___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire_codec_v1_Message___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_trezor_wire_codec_v1_Message___init__ + 6, + .line_info_top = fun_data_trezor_wire_codec_v1_Message___init__ + 9, + .opcodes = fun_data_trezor_wire_codec_v1_Message___init__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_codec_v1_Message[] = { + &raw_code_trezor_wire_codec_v1_Message___init__, +}; + +static const mp_raw_code_t raw_code_trezor_wire_codec_v1_Message = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_codec_v1_Message, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = (void *)&children_trezor_wire_codec_v1_Message, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_trezor_wire_codec_v1_Message + 3, + .line_info_top = fun_data_trezor_wire_codec_v1_Message + 5, + .opcodes = fun_data_trezor_wire_codec_v1_Message + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_codec_v1__lt_module_gt_ +// frozen bytecode for file trezor/wire/codec_v1.py, scope trezor_wire_codec_v1_read_message +static const byte fun_data_trezor_wire_codec_v1_read_message[239] = { + 0x96,0x50,0x3a, // prelude + 0x0c,0x1f,0x20, // names: read_message, iface, buffer + 0x80,0x1f,0x71,0x25,0x28,0x27,0x30,0x2a,0x47,0x42,0x49,0x22,0x4f,0x28,0x67,0x6b,0x4b,0x42,0x25,0x28,0x67,0x23,0x4c,0x52,0x23,0x47, // code info + 0x12,0x06, // LOAD_GLOBAL 'loop' + 0x14,0x0d, // LOAD_METHOD 'wait' + 0xb0, // LOAD_FAST 0 + 0x14,0x0e, // LOAD_METHOD 'iface_num' + 0x36,0x00, // CALL_METHOD 0 + 0x12,0x05, // LOAD_GLOBAL 'io' + 0x13,0x0f, // LOAD_ATTR 'POLL_READ' + 0xed, // BINARY_OP 22 __or__ + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x22,0x3f, // LOAD_CONST_SMALL_INT 63 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0a, // LOAD_GLOBAL 'CodecError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x02, // LOAD_GLOBAL 'ustruct' + 0x14,0x10, // LOAD_METHOD 'unpack' + 0x12,0x19, // LOAD_GLOBAL '_REP_INIT' + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x30,0x05, // UNPACK_SEQUENCE 5 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0xc6, // STORE_FAST 6 + 0xc7, // STORE_FAST 7 + 0xc8, // STORE_FAST 8 + 0xb5, // LOAD_FAST 5 + 0xa3, // LOAD_CONST_SMALL_INT 35 + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb6, // LOAD_FAST 6 + 0xa3, // LOAD_CONST_SMALL_INT 35 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0a, // LOAD_GLOBAL 'CodecError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x50, // LOAD_CONST_FALSE + 0xc9, // STORE_FAST 9 + 0xb8, // LOAD_FAST 8 + 0x12,0x21, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0x48,0x08, // SETUP_EXCEPT 8 + 0x12,0x22, // LOAD_GLOBAL 'bytearray' + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0xca, // STORE_FAST 10 + 0x4a,0x14, // POP_EXCEPT_JUMP 20 + 0x57, // DUP_TOP + 0x12,0x23, // LOAD_GLOBAL 'MemoryError' + 0xdf, // BINARY_OP 8 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x59, // POP_TOP + 0x12,0x22, // LOAD_GLOBAL 'bytearray' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x34,0x01, // CALL_FUNCTION 1 + 0xca, // STORE_FAST 10 + 0x52, // LOAD_CONST_TRUE + 0xc9, // STORE_FAST 9 + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x42,0x4b, // JUMP 11 + 0x12,0x24, // LOAD_GLOBAL 'memoryview' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x51, // LOAD_CONST_NONE + 0xb8, // LOAD_FAST 8 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xca, // STORE_FAST 10 + 0x12,0x07, // LOAD_GLOBAL 'utils' + 0x14,0x11, // LOAD_METHOD 'memcpy' + 0xba, // LOAD_FAST 10 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb3, // LOAD_FAST 3 + 0x89, // LOAD_CONST_SMALL_INT 9 + 0x36,0x04, // CALL_METHOD 4 + 0xcb, // STORE_FAST 11 + 0x42,0x70, // JUMP 48 + 0xb2, // LOAD_FAST 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x22,0x3f, // LOAD_CONST_SMALL_INT 63 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0a, // LOAD_GLOBAL 'CodecError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb9, // LOAD_FAST 9 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xbb, // LOAD_FAST 11 + 0x12,0x21, // LOAD_GLOBAL 'len' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xcb, // STORE_FAST 11 + 0x42,0x4d, // JUMP 13 + 0xbb, // LOAD_FAST 11 + 0x12,0x07, // LOAD_GLOBAL 'utils' + 0x14,0x11, // LOAD_METHOD 'memcpy' + 0xba, // LOAD_FAST 10 + 0xbb, // LOAD_FAST 11 + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x36,0x04, // CALL_METHOD 4 + 0xe5, // BINARY_OP 14 __iadd__ + 0xcb, // STORE_FAST 11 + 0xbb, // LOAD_FAST 11 + 0xb8, // LOAD_FAST 8 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x0b, // POP_JUMP_IF_TRUE -53 + 0xb9, // LOAD_FAST 9 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0a, // LOAD_GLOBAL 'CodecError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x0b, // LOAD_GLOBAL 'Message' + 0xb7, // LOAD_FAST 7 + 0xba, // LOAD_FAST 10 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_codec_v1_read_message = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_wire_codec_v1_read_message, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 239, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_trezor_wire_codec_v1_read_message + 6, + .line_info_top = fun_data_trezor_wire_codec_v1_read_message + 32, + .opcodes = fun_data_trezor_wire_codec_v1_read_message + 32, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_codec_v1__lt_module_gt_ +// frozen bytecode for file trezor/wire/codec_v1.py, scope trezor_wire_codec_v1_write_message +static const byte fun_data_trezor_wire_codec_v1_write_message[130] = { + 0x93,0x50,0x2c, // prelude + 0x12,0x1f,0x25,0x26, // names: write_message, iface, mtype, mdata + 0x80,0x4c,0x71,0x66,0x28,0x22,0x71,0x20,0x22,0x40,0x6d,0x20,0x25,0x27,0x29,0x64,0x25,0x44, // code info + 0x12,0x06, // LOAD_GLOBAL 'loop' + 0x14,0x0d, // LOAD_METHOD 'wait' + 0xb0, // LOAD_FAST 0 + 0x14,0x0e, // LOAD_METHOD 'iface_num' + 0x36,0x00, // CALL_METHOD 0 + 0x12,0x05, // LOAD_GLOBAL 'io' + 0x13,0x13, // LOAD_ATTR 'POLL_WRITE' + 0xed, // BINARY_OP 22 __or__ + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x12,0x21, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0x12,0x22, // LOAD_GLOBAL 'bytearray' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0x89, // LOAD_CONST_SMALL_INT 9 + 0xc6, // STORE_FAST 6 + 0x12,0x02, // LOAD_GLOBAL 'ustruct' + 0x14,0x14, // LOAD_METHOD 'pack_into' + 0x12,0x19, // LOAD_GLOBAL '_REP_INIT' + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x22,0x3f, // LOAD_CONST_SMALL_INT 63 + 0xa3, // LOAD_CONST_SMALL_INT 35 + 0xa3, // LOAD_CONST_SMALL_INT 35 + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x36,0x08, // CALL_METHOD 8 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x12,0x07, // LOAD_GLOBAL 'utils' + 0x14,0x11, // LOAD_METHOD 'memcpy' + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x36,0x04, // CALL_METHOD 4 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc7, // STORE_FAST 7 + 0xb3, // LOAD_FAST 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x15, // LOAD_METHOD 'write' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x12,0x21, // LOAD_GLOBAL 'len' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x42, // JUMP 2 + 0x42,0x27, // JUMP -25 + 0xb7, // LOAD_FAST 7 + 0xb4, // LOAD_FAST 4 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xc6, // STORE_FAST 6 + 0x42,0x42, // JUMP 2 + 0x42,0x42, // JUMP 2 + 0x42,0x0d, // JUMP -51 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_codec_v1_write_message = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire_codec_v1_write_message, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 130, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_trezor_wire_codec_v1_write_message + 7, + .line_info_top = fun_data_trezor_wire_codec_v1_write_message + 25, + .opcodes = fun_data_trezor_wire_codec_v1_write_message + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_codec_v1__lt_module_gt_[] = { + &raw_code_trezor_wire_codec_v1_CodecError, + &raw_code_trezor_wire_codec_v1_Message, + &raw_code_trezor_wire_codec_v1_read_message, + &raw_code_trezor_wire_codec_v1_write_message, +}; + +static const mp_raw_code_t raw_code_trezor_wire_codec_v1__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_codec_v1__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 96, + #endif + .children = (void *)&children_trezor_wire_codec_v1__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_wire_codec_v1__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_wire_codec_v1__lt_module_gt_ + 17, + .opcodes = fun_data_trezor_wire_codec_v1__lt_module_gt_ + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_wire_codec_v1[40] = { + MP_QSTR_trezor_slash_wire_slash_codec_v1_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ustruct, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_io, + MP_QSTR_loop, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR__gt_BBBHL, + MP_QSTR_CodecError, + MP_QSTR_Message, + MP_QSTR_read_message, + MP_QSTR_wait, + MP_QSTR_iface_num, + MP_QSTR_POLL_READ, + MP_QSTR_unpack, + MP_QSTR_memcpy, + MP_QSTR_write_message, + MP_QSTR_POLL_WRITE, + MP_QSTR_pack_into, + MP_QSTR_write, + MP_QSTR___init__, + MP_QSTR_type, + MP_QSTR_data, + MP_QSTR__REP_INIT, + MP_QSTR_SESSION_ID, + MP_QSTR_Exception, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_iface, + MP_QSTR_buffer, + MP_QSTR_len, + MP_QSTR_bytearray, + MP_QSTR_MemoryError, + MP_QSTR_memoryview, + MP_QSTR_mtype, + MP_QSTR_mdata, + MP_QSTR_self, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_wire_codec_v1[2] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_magic), + MP_ROM_QSTR(MP_QSTR_Message_space_too_space_large), +}; + +static const mp_frozen_module_t frozen_module_trezor_wire_codec_v1 = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_wire_codec_v1, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_wire_codec_v1, + }, + .rc = &raw_code_trezor_wire_codec_v1__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_wire_context +// - original source file: build/firmware/src/trezor/wire/context.mpy +// - frozen file name: trezor/wire/context.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/wire/context.py, scope trezor_wire_context__lt_module_gt_ +static const byte fun_data_trezor_wire_context__lt_module_gt_[109] = { + 0x18,0x2c, // prelude + 0x01, // names: + 0x80,0x11,0x58,0x4c,0x80,0x14,0x8b,0x0c,0x89,0x69,0x63,0x84,0x0f,0x84,0x11,0x84,0x10,0x84,0x0e,0x84,0x0e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'log' + 0x10,0x03, // LOAD_CONST_STRING 'loop' + 0x10,0x04, // LOAD_CONST_STRING 'protobuf' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x05, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'log' + 0x16,0x02, // STORE_NAME 'log' + 0x1c,0x03, // IMPORT_FROM 'loop' + 0x16,0x03, // STORE_NAME 'loop' + 0x1c,0x04, // IMPORT_FROM 'protobuf' + 0x16,0x04, // STORE_NAME 'protobuf' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x06, // LOAD_CONST_STRING 'codec_v1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME '' + 0x1c,0x06, // IMPORT_FROM 'codec_v1' + 0x16,0x06, // STORE_NAME 'codec_v1' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x08, // LOAD_CONST_STRING 'UnexpectedMessage' + 0x11,0x25, // LOAD_NAME 'Exception' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x08, // STORE_NAME 'UnexpectedMessage' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x09, // LOAD_CONST_STRING 'Context' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x09, // STORE_NAME 'Context' + 0x51, // LOAD_CONST_NONE + 0x17,0x26, // STORE_GLOBAL 'CURRENT_CONTEXT' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0a, // STORE_NAME 'wait' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x0d, // STORE_NAME 'call' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x10, // STORE_NAME 'call_any' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x11, // STORE_NAME 'maybe_call' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x12, // STORE_NAME 'get_context' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x13, // STORE_NAME 'with_context' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_context__lt_module_gt_ +// frozen bytecode for file trezor/wire/context.py, scope trezor_wire_context_UnexpectedMessage +static const byte fun_data_trezor_wire_context_UnexpectedMessage[24] = { + 0x08,0x0b, // prelude + 0x08, // names: UnexpectedMessage + 0x88,0x2a,0x60,0x60,0x00, // code info + 0x11,0x27, // LOAD_NAME '__name__' + 0x16,0x28, // STORE_NAME '__module__' + 0x10,0x08, // LOAD_CONST_STRING 'UnexpectedMessage' + 0x16,0x29, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x17, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_context_UnexpectedMessage +// frozen bytecode for file trezor/wire/context.py, scope trezor_wire_context_UnexpectedMessage___init__ +static const byte fun_data_trezor_wire_context_UnexpectedMessage___init__[25] = { + 0x2b,0x0e, // prelude + 0x17,0x30,0x31,0x18, // names: __init__, *, self, msg + 0x80,0x31,0x2a, // code info + 0x12,0x32, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x17, // LOAD_SUPER_METHOD '__init__' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x18,0x18, // STORE_ATTR 'msg' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_context_UnexpectedMessage___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire_context_UnexpectedMessage___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_trezor_wire_context_UnexpectedMessage___init__ + 6, + .line_info_top = fun_data_trezor_wire_context_UnexpectedMessage___init__ + 9, + .opcodes = fun_data_trezor_wire_context_UnexpectedMessage___init__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_context_UnexpectedMessage[] = { + &raw_code_trezor_wire_context_UnexpectedMessage___init__, +}; + +static const mp_raw_code_t raw_code_trezor_wire_context_UnexpectedMessage = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_context_UnexpectedMessage, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = (void *)&children_trezor_wire_context_UnexpectedMessage, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_trezor_wire_context_UnexpectedMessage + 3, + .line_info_top = fun_data_trezor_wire_context_UnexpectedMessage + 7, + .opcodes = fun_data_trezor_wire_context_UnexpectedMessage + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_context__lt_module_gt_ +// frozen bytecode for file trezor/wire/context.py, scope trezor_wire_context_Context +static const byte fun_data_trezor_wire_context_Context[45] = { + 0x08,0x1a, // prelude + 0x09, // names: Context + 0x88,0x36,0x60,0x60,0x64,0x40,0x64,0x20,0x80,0x0c,0x88,0x2d, // code info + 0x11,0x27, // LOAD_NAME '__name__' + 0x16,0x28, // STORE_NAME '__module__' + 0x10,0x09, // LOAD_CONST_STRING 'Context' + 0x16,0x29, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x17, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x1c, // STORE_NAME 'read_from_wire' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x0c, // STORE_NAME 'read' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x0e, // STORE_NAME 'write' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_context_Context +// frozen bytecode for file trezor/wire/context.py, scope trezor_wire_context_Context___init__ +static const byte fun_data_trezor_wire_context_Context___init__[26] = { + 0xa8,0x04,0x12, // prelude + 0x17,0x31,0x19,0x1a,0x1b, // names: __init__, self, iface, sid, buffer + 0x80,0x3d,0x24,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x19, // STORE_ATTR 'iface' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x1a, // STORE_ATTR 'sid' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x1b, // STORE_ATTR 'buffer' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_context_Context___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_trezor_wire_context_Context___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_trezor_wire_context_Context___init__ + 8, + .line_info_top = fun_data_trezor_wire_context_Context___init__ + 12, + .opcodes = fun_data_trezor_wire_context_Context___init__ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_context_Context +// frozen bytecode for file trezor/wire/context.py, scope trezor_wire_context_Context_read_from_wire +static const byte fun_data_trezor_wire_context_Context_read_from_wire[20] = { + 0x21,0x0a, // prelude + 0x1c,0x31, // names: read_from_wire, self + 0x80,0x42,0x20, // code info + 0x12,0x06, // LOAD_GLOBAL 'codec_v1' + 0x14,0x1d, // LOAD_METHOD 'read_message' + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'iface' + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'buffer' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_context_Context_read_from_wire = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_trezor_wire_context_Context_read_from_wire, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_trezor_wire_context_Context_read_from_wire + 4, + .line_info_top = fun_data_trezor_wire_context_Context_read_from_wire + 7, + .opcodes = fun_data_trezor_wire_context_Context_read_from_wire + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_context_Context +// frozen bytecode for file trezor/wire/context.py, scope trezor_wire_context_Context_read +static const byte fun_data_trezor_wire_context_Context_read[79] = { + 0xbb,0x41,0x26, // prelude + 0x0c,0x31,0x33,0x2a, // names: read, self, expected_types, expected_type + 0x80,0x56,0x60,0x60,0x80,0x0a,0x69,0x20,0x28,0x46,0x25,0x4a,0x80,0x0a,0x4b, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x1c, // LOAD_METHOD 'read_from_wire' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x13,0x1e, // LOAD_ATTR 'type' + 0xb1, // LOAD_FAST 1 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x12,0x08, // LOAD_GLOBAL 'UnexpectedMessage' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x04, // LOAD_GLOBAL 'protobuf' + 0x14,0x1f, // LOAD_METHOD 'type_for_wire' + 0xb3, // LOAD_FAST 3 + 0x13,0x1e, // LOAD_ATTR 'type' + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x20, // LOAD_CONST_STRING 'wrap_protobuf_load' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME '' + 0x1c,0x20, // IMPORT_FROM 'wrap_protobuf_load' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x13,0x21, // LOAD_ATTR 'data' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_context_Context_read = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire_context_Context_read, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 79, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 12, + .line_info = fun_data_trezor_wire_context_Context_read + 7, + .line_info_top = fun_data_trezor_wire_context_Context_read + 22, + .opcodes = fun_data_trezor_wire_context_Context_read + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_context_Context +// frozen bytecode for file trezor/wire/context.py, scope trezor_wire_context_Context_write +static const byte fun_data_trezor_wire_context_Context_write[88] = { + 0xd2,0x40,0x22, // prelude + 0x0e,0x31,0x18, // names: write, self, msg + 0x80,0x7f,0x20,0x80,0x0a,0x40,0x48,0x4b,0x66,0x46,0x49,0x24,0x23,0x23, // code info + 0x12,0x04, // LOAD_GLOBAL 'protobuf' + 0x14,0x22, // LOAD_METHOD 'encoded_length' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x12,0x34, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'buffer' + 0x34,0x01, // CALL_FUNCTION 1 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'buffer' + 0xc3, // STORE_FAST 3 + 0x42,0x46, // JUMP 6 + 0x12,0x35, // LOAD_GLOBAL 'bytearray' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x12,0x04, // LOAD_GLOBAL 'protobuf' + 0x14,0x23, // LOAD_METHOD 'encode' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0x12,0x06, // LOAD_GLOBAL 'codec_v1' + 0x14,0x24, // LOAD_METHOD 'write_message' + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'iface' + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'MESSAGE_WIRE_TYPE' + 0x12,0x36, // LOAD_GLOBAL 'memoryview' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x51, // LOAD_CONST_NONE + 0xb2, // LOAD_FAST 2 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_context_Context_write = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_wire_context_Context_write, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 88, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_trezor_wire_context_Context_write + 6, + .line_info_top = fun_data_trezor_wire_context_Context_write + 20, + .opcodes = fun_data_trezor_wire_context_Context_write + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_context_Context[] = { + &raw_code_trezor_wire_context_Context___init__, + &raw_code_trezor_wire_context_Context_read_from_wire, + &raw_code_trezor_wire_context_Context_read, + &raw_code_trezor_wire_context_Context_write, +}; + +static const mp_raw_code_t raw_code_trezor_wire_context_Context = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_context_Context, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = (void *)&children_trezor_wire_context_Context, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_trezor_wire_context_Context + 3, + .line_info_top = fun_data_trezor_wire_context_Context + 15, + .opcodes = fun_data_trezor_wire_context_Context + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_context__lt_module_gt_ +// frozen bytecode for file trezor/wire/context.py, scope trezor_wire_context_wait +static const byte fun_data_trezor_wire_context_wait[46] = { + 0xa8,0x80,0x80,0x40,0x0e, // prelude + 0x0a, // names: wait + 0x80,0xa2,0x80,0x08,0x26,0x49, // code info + 0x12,0x26, // LOAD_GLOBAL 'CURRENT_CONTEXT' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x03, // LOAD_GLOBAL 'loop' + 0x14,0x0b, // LOAD_METHOD 'race' + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x37,0x01, // CALL_METHOD_VAR_KW 1 + 0x63, // RETURN_VALUE + 0x12,0x03, // LOAD_GLOBAL 'loop' + 0x14,0x0b, // LOAD_METHOD 'race' + 0x12,0x26, // LOAD_GLOBAL 'CURRENT_CONTEXT' + 0x14,0x0c, // LOAD_METHOD 'read' + 0x2a,0x00, // BUILD_TUPLE 0 + 0x36,0x01, // CALL_METHOD 1 + 0xb0, // LOAD_FAST 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x37,0x02, // CALL_METHOD_VAR_KW 2 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_context_wait = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x04, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_context_wait, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 4, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_trezor_wire_context_wait + 6, + .line_info_top = fun_data_trezor_wire_context_wait + 12, + .opcodes = fun_data_trezor_wire_context_wait + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_context__lt_module_gt_ +// frozen bytecode for file trezor/wire/context.py, scope trezor_wire_context_call +static const byte fun_data_trezor_wire_context_call[56] = { + 0xaa,0x40,0x16, // prelude + 0x0d,0x18,0x2a, // names: call, msg, expected_type + 0x80,0xb4,0x60,0x26,0x47,0x40,0x2b,0x22, // code info + 0x12,0x26, // LOAD_GLOBAL 'CURRENT_CONTEXT' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x2b, // LOAD_GLOBAL 'RuntimeError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x26, // LOAD_GLOBAL 'CURRENT_CONTEXT' + 0x14,0x0e, // LOAD_METHOD 'write' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x28,0x00, // DELETE_FAST 0 + 0x12,0x26, // LOAD_GLOBAL 'CURRENT_CONTEXT' + 0x14,0x0c, // LOAD_METHOD 'read' + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'MESSAGE_WIRE_TYPE' + 0x2a,0x01, // BUILD_TUPLE 1 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_context_call = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_wire_context_call, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_trezor_wire_context_call + 6, + .line_info_top = fun_data_trezor_wire_context_call + 14, + .opcodes = fun_data_trezor_wire_context_call + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_context__lt_module_gt_ +// frozen bytecode for file trezor/wire/context.py, scope trezor_wire_context_call_any +static const byte fun_data_trezor_wire_context_call_any[52] = { + 0xa1,0xc0,0x80,0x40,0x14, // prelude + 0x10,0x18, // names: call_any, msg + 0x80,0xc4,0x60,0x40,0x26,0x47,0x2b,0x22, // code info + 0x12,0x26, // LOAD_GLOBAL 'CURRENT_CONTEXT' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x2b, // LOAD_GLOBAL 'RuntimeError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x26, // LOAD_GLOBAL 'CURRENT_CONTEXT' + 0x14,0x0e, // LOAD_METHOD 'write' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x28,0x00, // DELETE_FAST 0 + 0x12,0x26, // LOAD_GLOBAL 'CURRENT_CONTEXT' + 0x14,0x0c, // LOAD_METHOD 'read' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_context_call_any = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x05, + .n_pos_args = 1, + .fun_data = fun_data_trezor_wire_context_call_any, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 52, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 5, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_trezor_wire_context_call_any + 7, + .line_info_top = fun_data_trezor_wire_context_call_any + 15, + .opcodes = fun_data_trezor_wire_context_call_any + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_context__lt_module_gt_ +// frozen bytecode for file trezor/wire/context.py, scope trezor_wire_context_maybe_call +static const byte fun_data_trezor_wire_context_maybe_call[32] = { + 0xa2,0x40,0x12, // prelude + 0x11,0x18,0x2a, // names: maybe_call, msg, expected_type + 0x80,0xd4,0x60,0x40,0x26,0x42, // code info + 0x12,0x26, // LOAD_GLOBAL 'CURRENT_CONTEXT' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x0d, // LOAD_GLOBAL 'call' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_context_maybe_call = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_wire_context_maybe_call, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_trezor_wire_context_maybe_call + 6, + .line_info_top = fun_data_trezor_wire_context_maybe_call + 12, + .opcodes = fun_data_trezor_wire_context_maybe_call + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_context__lt_module_gt_ +// frozen bytecode for file trezor/wire/context.py, scope trezor_wire_context_get_context +static const byte fun_data_trezor_wire_context_get_context[25] = { + 0x08,0x0e, // prelude + 0x12, // names: get_context + 0x80,0xe0,0x80,0x08,0x26,0x27, // code info + 0x12,0x26, // LOAD_GLOBAL 'CURRENT_CONTEXT' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x2b, // LOAD_GLOBAL 'RuntimeError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x26, // LOAD_GLOBAL 'CURRENT_CONTEXT' + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_context_get_context = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_context_get_context, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_trezor_wire_context_get_context + 3, + .line_info_top = fun_data_trezor_wire_context_get_context + 9, + .opcodes = fun_data_trezor_wire_context_get_context + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_context__lt_module_gt_ +// frozen bytecode for file trezor/wire/context.py, scope trezor_wire_context_with_context +static const byte fun_data_trezor_wire_context_with_context[120] = { + 0xe6,0x42,0x2a, // prelude + 0x13,0x2c,0x2d, // names: with_context, ctx, workflow + 0x80,0xee,0x60,0x60,0x20,0x22,0x42,0x20,0x23,0x24,0x26,0x49,0x52,0x4e,0x44,0x22,0x4e,0x4b, // code info + 0x51, // LOAD_CONST_NONE + 0xc2, // STORE_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x17,0x26, // STORE_GLOBAL 'CURRENT_CONTEXT' + 0x49,0x31, // SETUP_FINALLY 49 + 0x48,0x18, // SETUP_EXCEPT 24 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb1, // LOAD_FAST 1 + 0x14,0x14, // LOAD_METHOD 'throw' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0x42,0x47, // JUMP 7 + 0xb1, // LOAD_FAST 1 + 0x14,0x15, // LOAD_METHOD 'send' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0x4a,0x16, // POP_EXCEPT_JUMP 22 + 0x57, // DUP_TOP + 0x12,0x2e, // LOAD_GLOBAL 'StopIteration' + 0xdf, // BINARY_OP 8 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xc5, // STORE_FAST 5 + 0x49,0x05, // SETUP_FINALLY 5 + 0xb5, // LOAD_FAST 5 + 0x13,0x16, // LOAD_ATTR 'value' + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xc5, // STORE_FAST 5 + 0x28,0x05, // DELETE_FAST 5 + 0x5d, // END_FINALLY + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x17,0x26, // STORE_GLOBAL 'CURRENT_CONTEXT' + 0x5d, // END_FINALLY + 0x48,0x05, // SETUP_EXCEPT 5 + 0xb4, // LOAD_FAST 4 + 0x67, // YIELD_VALUE + 0xc2, // STORE_FAST 2 + 0x4a,0x14, // POP_EXCEPT_JUMP 20 + 0x57, // DUP_TOP + 0x12,0x2f, // LOAD_GLOBAL 'BaseException' + 0xdf, // BINARY_OP 8 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xc6, // STORE_FAST 6 + 0x49,0x03, // SETUP_FINALLY 3 + 0xb6, // LOAD_FAST 6 + 0xc3, // STORE_FAST 3 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xc6, // STORE_FAST 6 + 0x28,0x06, // DELETE_FAST 6 + 0x5d, // END_FINALLY + 0x4a,0x03, // POP_EXCEPT_JUMP 3 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0xc3, // STORE_FAST 3 + 0x42,0xa6,0x7f, // JUMP -90 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_context_with_context = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_trezor_wire_context_with_context, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 120, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 3, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_trezor_wire_context_with_context + 6, + .line_info_top = fun_data_trezor_wire_context_with_context + 24, + .opcodes = fun_data_trezor_wire_context_with_context + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_context__lt_module_gt_[] = { + &raw_code_trezor_wire_context_UnexpectedMessage, + &raw_code_trezor_wire_context_Context, + &raw_code_trezor_wire_context_wait, + &raw_code_trezor_wire_context_call, + &raw_code_trezor_wire_context_call_any, + &raw_code_trezor_wire_context_maybe_call, + &raw_code_trezor_wire_context_get_context, + &raw_code_trezor_wire_context_with_context, +}; + +static const mp_raw_code_t raw_code_trezor_wire_context__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_context__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 109, + #endif + .children = (void *)&children_trezor_wire_context__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 8, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_wire_context__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_wire_context__lt_module_gt_ + 24, + .opcodes = fun_data_trezor_wire_context__lt_module_gt_ + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_wire_context[55] = { + MP_QSTR_trezor_slash_wire_slash_context_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_log, + MP_QSTR_loop, + MP_QSTR_protobuf, + MP_QSTR_trezor, + MP_QSTR_codec_v1, + MP_QSTR_, + MP_QSTR_UnexpectedMessage, + MP_QSTR_Context, + MP_QSTR_wait, + MP_QSTR_race, + MP_QSTR_read, + MP_QSTR_call, + MP_QSTR_write, + MP_QSTR_MESSAGE_WIRE_TYPE, + MP_QSTR_call_any, + MP_QSTR_maybe_call, + MP_QSTR_get_context, + MP_QSTR_with_context, + MP_QSTR_throw, + MP_QSTR_send, + MP_QSTR_value, + MP_QSTR___init__, + MP_QSTR_msg, + MP_QSTR_iface, + MP_QSTR_sid, + MP_QSTR_buffer, + MP_QSTR_read_from_wire, + MP_QSTR_read_message, + MP_QSTR_type, + MP_QSTR_type_for_wire, + MP_QSTR_wrap_protobuf_load, + MP_QSTR_data, + MP_QSTR_encoded_length, + MP_QSTR_encode, + MP_QSTR_write_message, + MP_QSTR_Exception, + MP_QSTR_CURRENT_CONTEXT, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_expected_type, + MP_QSTR_RuntimeError, + MP_QSTR_ctx, + MP_QSTR_workflow, + MP_QSTR_StopIteration, + MP_QSTR_BaseException, + MP_QSTR__star_, + MP_QSTR_self, + MP_QSTR_super, + MP_QSTR_expected_types, + MP_QSTR_len, + MP_QSTR_bytearray, + MP_QSTR_memoryview, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_wire_context[1] = { + MP_ROM_QSTR(MP_QSTR_No_space_wire_space_context), +}; + +static const mp_frozen_module_t frozen_module_trezor_wire_context = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_wire_context, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_wire_context, + }, + .rc = &raw_code_trezor_wire_context__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_wire_errors +// - original source file: build/firmware/src/trezor/wire/errors.mpy +// - frozen file name: trezor/wire/errors.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors__lt_module_gt_ +static const byte fun_data_trezor_wire_errors__lt_module_gt_[224] = { + 0x18,0x40, // prelude + 0x01, // names: + 0x6c,0x8b,0x07,0x6b,0x40,0x6b,0x40,0x6b,0x40,0x6b,0x40,0x6b,0x40,0x6b,0x40,0x6b,0x40,0x6b,0x40,0x6b,0x40,0x6b,0x40,0x6b,0x40,0x6b,0x40,0x6b,0x40,0x6b,0x40, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'FailureType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x02, // IMPORT_FROM 'FailureType' + 0x16,0x02, // STORE_NAME 'FailureType' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x04, // LOAD_CONST_STRING 'Error' + 0x11,0x18, // LOAD_NAME 'Exception' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x04, // STORE_NAME 'Error' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x05, // LOAD_CONST_STRING 'UnexpectedMessage' + 0x11,0x04, // LOAD_NAME 'Error' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x05, // STORE_NAME 'UnexpectedMessage' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x02, // MAKE_FUNCTION 2 + 0x10,0x06, // LOAD_CONST_STRING 'ButtonExpected' + 0x11,0x04, // LOAD_NAME 'Error' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x06, // STORE_NAME 'ButtonExpected' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x03, // MAKE_FUNCTION 3 + 0x10,0x07, // LOAD_CONST_STRING 'DataError' + 0x11,0x04, // LOAD_NAME 'Error' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x07, // STORE_NAME 'DataError' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x04, // MAKE_FUNCTION 4 + 0x10,0x08, // LOAD_CONST_STRING 'ActionCancelled' + 0x11,0x04, // LOAD_NAME 'Error' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x08, // STORE_NAME 'ActionCancelled' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x05, // MAKE_FUNCTION 5 + 0x10,0x09, // LOAD_CONST_STRING 'PinExpected' + 0x11,0x04, // LOAD_NAME 'Error' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x09, // STORE_NAME 'PinExpected' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x06, // MAKE_FUNCTION 6 + 0x10,0x0a, // LOAD_CONST_STRING 'PinCancelled' + 0x11,0x04, // LOAD_NAME 'Error' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0a, // STORE_NAME 'PinCancelled' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x07, // MAKE_FUNCTION 7 + 0x10,0x0b, // LOAD_CONST_STRING 'PinInvalid' + 0x11,0x04, // LOAD_NAME 'Error' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0b, // STORE_NAME 'PinInvalid' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x08, // MAKE_FUNCTION 8 + 0x10,0x0c, // LOAD_CONST_STRING 'InvalidSignature' + 0x11,0x04, // LOAD_NAME 'Error' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0c, // STORE_NAME 'InvalidSignature' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x09, // MAKE_FUNCTION 9 + 0x10,0x0d, // LOAD_CONST_STRING 'ProcessError' + 0x11,0x04, // LOAD_NAME 'Error' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0d, // STORE_NAME 'ProcessError' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x10,0x0e, // LOAD_CONST_STRING 'NotEnoughFunds' + 0x11,0x04, // LOAD_NAME 'Error' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0e, // STORE_NAME 'NotEnoughFunds' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x10,0x0f, // LOAD_CONST_STRING 'NotInitialized' + 0x11,0x04, // LOAD_NAME 'Error' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0f, // STORE_NAME 'NotInitialized' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x10,0x10, // LOAD_CONST_STRING 'PinMismatch' + 0x11,0x04, // LOAD_NAME 'Error' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x10, // STORE_NAME 'PinMismatch' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x10,0x11, // LOAD_CONST_STRING 'WipeCodeMismatch' + 0x11,0x04, // LOAD_NAME 'Error' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x11, // STORE_NAME 'WipeCodeMismatch' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x10,0x12, // LOAD_CONST_STRING 'InvalidSession' + 0x11,0x04, // LOAD_NAME 'Error' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x12, // STORE_NAME 'InvalidSession' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x10,0x13, // LOAD_CONST_STRING 'FirmwareError' + 0x11,0x04, // LOAD_NAME 'Error' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x13, // STORE_NAME 'FirmwareError' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_errors__lt_module_gt_ +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_Error +static const byte fun_data_trezor_wire_errors_Error[22] = { + 0x08,0x07, // prelude + 0x04, // names: Error + 0x68,0x20,0x00, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x04, // LOAD_CONST_STRING 'Error' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x15, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_errors_Error +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_Error___init__ +static const byte fun_data_trezor_wire_errors_Error___init__[32] = { + 0xb0,0x04,0x12, // prelude + 0x15,0x1c,0x1d,0x16,0x17, // names: __init__, *, self, code, message + 0x60,0x40,0x2a,0x24, // code info + 0x12,0x1e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x15, // LOAD_SUPER_METHOD '__init__' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x18,0x16, // STORE_ATTR 'code' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x18,0x17, // STORE_ATTR 'message' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_errors_Error___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_trezor_wire_errors_Error___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_trezor_wire_errors_Error___init__ + 8, + .line_info_top = fun_data_trezor_wire_errors_Error___init__ + 12, + .opcodes = fun_data_trezor_wire_errors_Error___init__ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_errors_Error[] = { + &raw_code_trezor_wire_errors_Error___init__, +}; + +static const mp_raw_code_t raw_code_trezor_wire_errors_Error = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_errors_Error, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_trezor_wire_errors_Error, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_trezor_wire_errors_Error + 3, + .line_info_top = fun_data_trezor_wire_errors_Error + 5, + .opcodes = fun_data_trezor_wire_errors_Error + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_errors__lt_module_gt_ +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_UnexpectedMessage +static const byte fun_data_trezor_wire_errors_UnexpectedMessage[22] = { + 0x08,0x07, // prelude + 0x05, // names: UnexpectedMessage + 0x88,0x0b,0x00, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x05, // LOAD_CONST_STRING 'UnexpectedMessage' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x15, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_errors_UnexpectedMessage +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_UnexpectedMessage___init__ +static const byte fun_data_trezor_wire_errors_UnexpectedMessage___init__[25] = { + 0x33,0x0c, // prelude + 0x15,0x1c,0x1d,0x17, // names: __init__, *, self, message + 0x80,0x0c, // code info + 0x12,0x1e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x15, // LOAD_SUPER_METHOD '__init__' + 0x12,0x02, // LOAD_GLOBAL 'FailureType' + 0x13,0x05, // LOAD_ATTR 'UnexpectedMessage' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_errors_UnexpectedMessage___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire_errors_UnexpectedMessage___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_trezor_wire_errors_UnexpectedMessage___init__ + 6, + .line_info_top = fun_data_trezor_wire_errors_UnexpectedMessage___init__ + 8, + .opcodes = fun_data_trezor_wire_errors_UnexpectedMessage___init__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_errors_UnexpectedMessage[] = { + &raw_code_trezor_wire_errors_UnexpectedMessage___init__, +}; + +static const mp_raw_code_t raw_code_trezor_wire_errors_UnexpectedMessage = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_errors_UnexpectedMessage, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_trezor_wire_errors_UnexpectedMessage, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_trezor_wire_errors_UnexpectedMessage + 3, + .line_info_top = fun_data_trezor_wire_errors_UnexpectedMessage + 5, + .opcodes = fun_data_trezor_wire_errors_UnexpectedMessage + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_errors__lt_module_gt_ +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_ButtonExpected +static const byte fun_data_trezor_wire_errors_ButtonExpected[22] = { + 0x08,0x07, // prelude + 0x06, // names: ButtonExpected + 0x88,0x10,0x00, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x06, // LOAD_CONST_STRING 'ButtonExpected' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x15, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_errors_ButtonExpected +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_ButtonExpected___init__ +static const byte fun_data_trezor_wire_errors_ButtonExpected___init__[25] = { + 0x33,0x0c, // prelude + 0x15,0x1c,0x1d,0x17, // names: __init__, *, self, message + 0x80,0x11, // code info + 0x12,0x1e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x15, // LOAD_SUPER_METHOD '__init__' + 0x12,0x02, // LOAD_GLOBAL 'FailureType' + 0x13,0x06, // LOAD_ATTR 'ButtonExpected' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_errors_ButtonExpected___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire_errors_ButtonExpected___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_trezor_wire_errors_ButtonExpected___init__ + 6, + .line_info_top = fun_data_trezor_wire_errors_ButtonExpected___init__ + 8, + .opcodes = fun_data_trezor_wire_errors_ButtonExpected___init__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_errors_ButtonExpected[] = { + &raw_code_trezor_wire_errors_ButtonExpected___init__, +}; + +static const mp_raw_code_t raw_code_trezor_wire_errors_ButtonExpected = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_errors_ButtonExpected, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_trezor_wire_errors_ButtonExpected, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_trezor_wire_errors_ButtonExpected + 3, + .line_info_top = fun_data_trezor_wire_errors_ButtonExpected + 5, + .opcodes = fun_data_trezor_wire_errors_ButtonExpected + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_errors__lt_module_gt_ +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_DataError +static const byte fun_data_trezor_wire_errors_DataError[22] = { + 0x08,0x07, // prelude + 0x07, // names: DataError + 0x88,0x15,0x00, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x07, // LOAD_CONST_STRING 'DataError' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x15, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_errors_DataError +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_DataError___init__ +static const byte fun_data_trezor_wire_errors_DataError___init__[25] = { + 0x33,0x0c, // prelude + 0x15,0x1c,0x1d,0x17, // names: __init__, *, self, message + 0x80,0x16, // code info + 0x12,0x1e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x15, // LOAD_SUPER_METHOD '__init__' + 0x12,0x02, // LOAD_GLOBAL 'FailureType' + 0x13,0x07, // LOAD_ATTR 'DataError' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_errors_DataError___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire_errors_DataError___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_trezor_wire_errors_DataError___init__ + 6, + .line_info_top = fun_data_trezor_wire_errors_DataError___init__ + 8, + .opcodes = fun_data_trezor_wire_errors_DataError___init__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_errors_DataError[] = { + &raw_code_trezor_wire_errors_DataError___init__, +}; + +static const mp_raw_code_t raw_code_trezor_wire_errors_DataError = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_errors_DataError, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_trezor_wire_errors_DataError, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_trezor_wire_errors_DataError + 3, + .line_info_top = fun_data_trezor_wire_errors_DataError + 5, + .opcodes = fun_data_trezor_wire_errors_DataError + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_errors__lt_module_gt_ +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_ActionCancelled +static const byte fun_data_trezor_wire_errors_ActionCancelled[27] = { + 0x18,0x07, // prelude + 0x08, // names: ActionCancelled + 0x88,0x1a,0x00, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x08, // LOAD_CONST_STRING 'ActionCancelled' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0x10,0x14, // LOAD_CONST_STRING 'Cancelled' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x21,0x00,0x01, // MAKE_CLOSURE_DEFARGS 0 + 0x16,0x15, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_errors_ActionCancelled +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_ActionCancelled___init__ +static const byte fun_data_trezor_wire_errors_ActionCancelled___init__[26] = { + 0xb3,0x01,0x0c, // prelude + 0x15,0x1c,0x1d,0x17, // names: __init__, *, self, message + 0x80,0x1b, // code info + 0x12,0x1e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x15, // LOAD_SUPER_METHOD '__init__' + 0x12,0x02, // LOAD_GLOBAL 'FailureType' + 0x13,0x08, // LOAD_ATTR 'ActionCancelled' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_errors_ActionCancelled___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire_errors_ActionCancelled___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 21, + .line_info = fun_data_trezor_wire_errors_ActionCancelled___init__ + 7, + .line_info_top = fun_data_trezor_wire_errors_ActionCancelled___init__ + 9, + .opcodes = fun_data_trezor_wire_errors_ActionCancelled___init__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_errors_ActionCancelled[] = { + &raw_code_trezor_wire_errors_ActionCancelled___init__, +}; + +static const mp_raw_code_t raw_code_trezor_wire_errors_ActionCancelled = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_errors_ActionCancelled, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = (void *)&children_trezor_wire_errors_ActionCancelled, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_trezor_wire_errors_ActionCancelled + 3, + .line_info_top = fun_data_trezor_wire_errors_ActionCancelled + 5, + .opcodes = fun_data_trezor_wire_errors_ActionCancelled + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_errors__lt_module_gt_ +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_PinExpected +static const byte fun_data_trezor_wire_errors_PinExpected[22] = { + 0x08,0x07, // prelude + 0x09, // names: PinExpected + 0x88,0x1f,0x00, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x09, // LOAD_CONST_STRING 'PinExpected' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x15, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_errors_PinExpected +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_PinExpected___init__ +static const byte fun_data_trezor_wire_errors_PinExpected___init__[25] = { + 0x33,0x0c, // prelude + 0x15,0x1c,0x1d,0x17, // names: __init__, *, self, message + 0x80,0x20, // code info + 0x12,0x1e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x15, // LOAD_SUPER_METHOD '__init__' + 0x12,0x02, // LOAD_GLOBAL 'FailureType' + 0x13,0x09, // LOAD_ATTR 'PinExpected' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_errors_PinExpected___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire_errors_PinExpected___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_trezor_wire_errors_PinExpected___init__ + 6, + .line_info_top = fun_data_trezor_wire_errors_PinExpected___init__ + 8, + .opcodes = fun_data_trezor_wire_errors_PinExpected___init__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_errors_PinExpected[] = { + &raw_code_trezor_wire_errors_PinExpected___init__, +}; + +static const mp_raw_code_t raw_code_trezor_wire_errors_PinExpected = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_errors_PinExpected, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_trezor_wire_errors_PinExpected, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_trezor_wire_errors_PinExpected + 3, + .line_info_top = fun_data_trezor_wire_errors_PinExpected + 5, + .opcodes = fun_data_trezor_wire_errors_PinExpected + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_errors__lt_module_gt_ +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_PinCancelled +static const byte fun_data_trezor_wire_errors_PinCancelled[27] = { + 0x18,0x07, // prelude + 0x0a, // names: PinCancelled + 0x88,0x24,0x00, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x0a, // LOAD_CONST_STRING 'PinCancelled' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x21,0x00,0x01, // MAKE_CLOSURE_DEFARGS 0 + 0x16,0x15, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_errors_PinCancelled +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_PinCancelled___init__ +static const byte fun_data_trezor_wire_errors_PinCancelled___init__[26] = { + 0xb3,0x01,0x0c, // prelude + 0x15,0x1c,0x1d,0x17, // names: __init__, *, self, message + 0x80,0x25, // code info + 0x12,0x1e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x15, // LOAD_SUPER_METHOD '__init__' + 0x12,0x02, // LOAD_GLOBAL 'FailureType' + 0x13,0x0a, // LOAD_ATTR 'PinCancelled' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_errors_PinCancelled___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire_errors_PinCancelled___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 21, + .line_info = fun_data_trezor_wire_errors_PinCancelled___init__ + 7, + .line_info_top = fun_data_trezor_wire_errors_PinCancelled___init__ + 9, + .opcodes = fun_data_trezor_wire_errors_PinCancelled___init__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_errors_PinCancelled[] = { + &raw_code_trezor_wire_errors_PinCancelled___init__, +}; + +static const mp_raw_code_t raw_code_trezor_wire_errors_PinCancelled = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_errors_PinCancelled, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = (void *)&children_trezor_wire_errors_PinCancelled, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_trezor_wire_errors_PinCancelled + 3, + .line_info_top = fun_data_trezor_wire_errors_PinCancelled + 5, + .opcodes = fun_data_trezor_wire_errors_PinCancelled + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_errors__lt_module_gt_ +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_PinInvalid +static const byte fun_data_trezor_wire_errors_PinInvalid[27] = { + 0x18,0x07, // prelude + 0x0b, // names: PinInvalid + 0x88,0x29,0x00, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x0b, // LOAD_CONST_STRING 'PinInvalid' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x21,0x00,0x01, // MAKE_CLOSURE_DEFARGS 0 + 0x16,0x15, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_errors_PinInvalid +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_PinInvalid___init__ +static const byte fun_data_trezor_wire_errors_PinInvalid___init__[26] = { + 0xb3,0x01,0x0c, // prelude + 0x15,0x1c,0x1d,0x17, // names: __init__, *, self, message + 0x80,0x2a, // code info + 0x12,0x1e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x15, // LOAD_SUPER_METHOD '__init__' + 0x12,0x02, // LOAD_GLOBAL 'FailureType' + 0x13,0x0b, // LOAD_ATTR 'PinInvalid' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_errors_PinInvalid___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire_errors_PinInvalid___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 21, + .line_info = fun_data_trezor_wire_errors_PinInvalid___init__ + 7, + .line_info_top = fun_data_trezor_wire_errors_PinInvalid___init__ + 9, + .opcodes = fun_data_trezor_wire_errors_PinInvalid___init__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_errors_PinInvalid[] = { + &raw_code_trezor_wire_errors_PinInvalid___init__, +}; + +static const mp_raw_code_t raw_code_trezor_wire_errors_PinInvalid = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_errors_PinInvalid, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = (void *)&children_trezor_wire_errors_PinInvalid, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_trezor_wire_errors_PinInvalid + 3, + .line_info_top = fun_data_trezor_wire_errors_PinInvalid + 5, + .opcodes = fun_data_trezor_wire_errors_PinInvalid + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_errors__lt_module_gt_ +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_InvalidSignature +static const byte fun_data_trezor_wire_errors_InvalidSignature[22] = { + 0x08,0x07, // prelude + 0x0c, // names: InvalidSignature + 0x88,0x2e,0x00, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x0c, // LOAD_CONST_STRING 'InvalidSignature' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x15, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_errors_InvalidSignature +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_InvalidSignature___init__ +static const byte fun_data_trezor_wire_errors_InvalidSignature___init__[25] = { + 0x33,0x0c, // prelude + 0x15,0x1c,0x1d,0x17, // names: __init__, *, self, message + 0x80,0x2f, // code info + 0x12,0x1e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x15, // LOAD_SUPER_METHOD '__init__' + 0x12,0x02, // LOAD_GLOBAL 'FailureType' + 0x13,0x0c, // LOAD_ATTR 'InvalidSignature' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_errors_InvalidSignature___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire_errors_InvalidSignature___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_trezor_wire_errors_InvalidSignature___init__ + 6, + .line_info_top = fun_data_trezor_wire_errors_InvalidSignature___init__ + 8, + .opcodes = fun_data_trezor_wire_errors_InvalidSignature___init__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_errors_InvalidSignature[] = { + &raw_code_trezor_wire_errors_InvalidSignature___init__, +}; + +static const mp_raw_code_t raw_code_trezor_wire_errors_InvalidSignature = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_errors_InvalidSignature, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_trezor_wire_errors_InvalidSignature, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_trezor_wire_errors_InvalidSignature + 3, + .line_info_top = fun_data_trezor_wire_errors_InvalidSignature + 5, + .opcodes = fun_data_trezor_wire_errors_InvalidSignature + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_errors__lt_module_gt_ +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_ProcessError +static const byte fun_data_trezor_wire_errors_ProcessError[22] = { + 0x08,0x07, // prelude + 0x0d, // names: ProcessError + 0x88,0x33,0x00, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x0d, // LOAD_CONST_STRING 'ProcessError' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x15, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_errors_ProcessError +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_ProcessError___init__ +static const byte fun_data_trezor_wire_errors_ProcessError___init__[25] = { + 0x33,0x0c, // prelude + 0x15,0x1c,0x1d,0x17, // names: __init__, *, self, message + 0x80,0x34, // code info + 0x12,0x1e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x15, // LOAD_SUPER_METHOD '__init__' + 0x12,0x02, // LOAD_GLOBAL 'FailureType' + 0x13,0x0d, // LOAD_ATTR 'ProcessError' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_errors_ProcessError___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire_errors_ProcessError___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_trezor_wire_errors_ProcessError___init__ + 6, + .line_info_top = fun_data_trezor_wire_errors_ProcessError___init__ + 8, + .opcodes = fun_data_trezor_wire_errors_ProcessError___init__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_errors_ProcessError[] = { + &raw_code_trezor_wire_errors_ProcessError___init__, +}; + +static const mp_raw_code_t raw_code_trezor_wire_errors_ProcessError = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_errors_ProcessError, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_trezor_wire_errors_ProcessError, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_trezor_wire_errors_ProcessError + 3, + .line_info_top = fun_data_trezor_wire_errors_ProcessError + 5, + .opcodes = fun_data_trezor_wire_errors_ProcessError + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_errors__lt_module_gt_ +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_NotEnoughFunds +static const byte fun_data_trezor_wire_errors_NotEnoughFunds[22] = { + 0x08,0x07, // prelude + 0x0e, // names: NotEnoughFunds + 0x88,0x38,0x00, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x0e, // LOAD_CONST_STRING 'NotEnoughFunds' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x15, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_errors_NotEnoughFunds +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_NotEnoughFunds___init__ +static const byte fun_data_trezor_wire_errors_NotEnoughFunds___init__[25] = { + 0x33,0x0c, // prelude + 0x15,0x1c,0x1d,0x17, // names: __init__, *, self, message + 0x80,0x39, // code info + 0x12,0x1e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x15, // LOAD_SUPER_METHOD '__init__' + 0x12,0x02, // LOAD_GLOBAL 'FailureType' + 0x13,0x0e, // LOAD_ATTR 'NotEnoughFunds' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_errors_NotEnoughFunds___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire_errors_NotEnoughFunds___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_trezor_wire_errors_NotEnoughFunds___init__ + 6, + .line_info_top = fun_data_trezor_wire_errors_NotEnoughFunds___init__ + 8, + .opcodes = fun_data_trezor_wire_errors_NotEnoughFunds___init__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_errors_NotEnoughFunds[] = { + &raw_code_trezor_wire_errors_NotEnoughFunds___init__, +}; + +static const mp_raw_code_t raw_code_trezor_wire_errors_NotEnoughFunds = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_errors_NotEnoughFunds, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_trezor_wire_errors_NotEnoughFunds, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_trezor_wire_errors_NotEnoughFunds + 3, + .line_info_top = fun_data_trezor_wire_errors_NotEnoughFunds + 5, + .opcodes = fun_data_trezor_wire_errors_NotEnoughFunds + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_errors__lt_module_gt_ +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_NotInitialized +static const byte fun_data_trezor_wire_errors_NotInitialized[22] = { + 0x08,0x07, // prelude + 0x0f, // names: NotInitialized + 0x88,0x3d,0x00, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x0f, // LOAD_CONST_STRING 'NotInitialized' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x15, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_errors_NotInitialized +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_NotInitialized___init__ +static const byte fun_data_trezor_wire_errors_NotInitialized___init__[25] = { + 0x33,0x0c, // prelude + 0x15,0x1c,0x1d,0x17, // names: __init__, *, self, message + 0x80,0x3e, // code info + 0x12,0x1e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x15, // LOAD_SUPER_METHOD '__init__' + 0x12,0x02, // LOAD_GLOBAL 'FailureType' + 0x13,0x0f, // LOAD_ATTR 'NotInitialized' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_errors_NotInitialized___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire_errors_NotInitialized___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_trezor_wire_errors_NotInitialized___init__ + 6, + .line_info_top = fun_data_trezor_wire_errors_NotInitialized___init__ + 8, + .opcodes = fun_data_trezor_wire_errors_NotInitialized___init__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_errors_NotInitialized[] = { + &raw_code_trezor_wire_errors_NotInitialized___init__, +}; + +static const mp_raw_code_t raw_code_trezor_wire_errors_NotInitialized = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_errors_NotInitialized, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_trezor_wire_errors_NotInitialized, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_trezor_wire_errors_NotInitialized + 3, + .line_info_top = fun_data_trezor_wire_errors_NotInitialized + 5, + .opcodes = fun_data_trezor_wire_errors_NotInitialized + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_errors__lt_module_gt_ +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_PinMismatch +static const byte fun_data_trezor_wire_errors_PinMismatch[22] = { + 0x08,0x07, // prelude + 0x10, // names: PinMismatch + 0x88,0x42,0x00, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x10, // LOAD_CONST_STRING 'PinMismatch' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x15, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_errors_PinMismatch +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_PinMismatch___init__ +static const byte fun_data_trezor_wire_errors_PinMismatch___init__[25] = { + 0x33,0x0c, // prelude + 0x15,0x1c,0x1d,0x17, // names: __init__, *, self, message + 0x80,0x43, // code info + 0x12,0x1e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x15, // LOAD_SUPER_METHOD '__init__' + 0x12,0x02, // LOAD_GLOBAL 'FailureType' + 0x13,0x10, // LOAD_ATTR 'PinMismatch' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_errors_PinMismatch___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire_errors_PinMismatch___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_trezor_wire_errors_PinMismatch___init__ + 6, + .line_info_top = fun_data_trezor_wire_errors_PinMismatch___init__ + 8, + .opcodes = fun_data_trezor_wire_errors_PinMismatch___init__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_errors_PinMismatch[] = { + &raw_code_trezor_wire_errors_PinMismatch___init__, +}; + +static const mp_raw_code_t raw_code_trezor_wire_errors_PinMismatch = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_errors_PinMismatch, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_trezor_wire_errors_PinMismatch, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_trezor_wire_errors_PinMismatch + 3, + .line_info_top = fun_data_trezor_wire_errors_PinMismatch + 5, + .opcodes = fun_data_trezor_wire_errors_PinMismatch + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_errors__lt_module_gt_ +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_WipeCodeMismatch +static const byte fun_data_trezor_wire_errors_WipeCodeMismatch[22] = { + 0x08,0x07, // prelude + 0x11, // names: WipeCodeMismatch + 0x88,0x47,0x00, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x11, // LOAD_CONST_STRING 'WipeCodeMismatch' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x15, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_errors_WipeCodeMismatch +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_WipeCodeMismatch___init__ +static const byte fun_data_trezor_wire_errors_WipeCodeMismatch___init__[25] = { + 0x33,0x0c, // prelude + 0x15,0x1c,0x1d,0x17, // names: __init__, *, self, message + 0x80,0x48, // code info + 0x12,0x1e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x15, // LOAD_SUPER_METHOD '__init__' + 0x12,0x02, // LOAD_GLOBAL 'FailureType' + 0x13,0x11, // LOAD_ATTR 'WipeCodeMismatch' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_errors_WipeCodeMismatch___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire_errors_WipeCodeMismatch___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_trezor_wire_errors_WipeCodeMismatch___init__ + 6, + .line_info_top = fun_data_trezor_wire_errors_WipeCodeMismatch___init__ + 8, + .opcodes = fun_data_trezor_wire_errors_WipeCodeMismatch___init__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_errors_WipeCodeMismatch[] = { + &raw_code_trezor_wire_errors_WipeCodeMismatch___init__, +}; + +static const mp_raw_code_t raw_code_trezor_wire_errors_WipeCodeMismatch = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_errors_WipeCodeMismatch, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_trezor_wire_errors_WipeCodeMismatch, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_trezor_wire_errors_WipeCodeMismatch + 3, + .line_info_top = fun_data_trezor_wire_errors_WipeCodeMismatch + 5, + .opcodes = fun_data_trezor_wire_errors_WipeCodeMismatch + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_errors__lt_module_gt_ +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_InvalidSession +static const byte fun_data_trezor_wire_errors_InvalidSession[27] = { + 0x18,0x07, // prelude + 0x12, // names: InvalidSession + 0x88,0x4c,0x00, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x12, // LOAD_CONST_STRING 'InvalidSession' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x21,0x00,0x01, // MAKE_CLOSURE_DEFARGS 0 + 0x16,0x15, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_errors_InvalidSession +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_InvalidSession___init__ +static const byte fun_data_trezor_wire_errors_InvalidSession___init__[26] = { + 0xb3,0x01,0x0c, // prelude + 0x15,0x1c,0x1d,0x17, // names: __init__, *, self, message + 0x80,0x4d, // code info + 0x12,0x1e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x15, // LOAD_SUPER_METHOD '__init__' + 0x12,0x02, // LOAD_GLOBAL 'FailureType' + 0x13,0x12, // LOAD_ATTR 'InvalidSession' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_errors_InvalidSession___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire_errors_InvalidSession___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 21, + .line_info = fun_data_trezor_wire_errors_InvalidSession___init__ + 7, + .line_info_top = fun_data_trezor_wire_errors_InvalidSession___init__ + 9, + .opcodes = fun_data_trezor_wire_errors_InvalidSession___init__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_errors_InvalidSession[] = { + &raw_code_trezor_wire_errors_InvalidSession___init__, +}; + +static const mp_raw_code_t raw_code_trezor_wire_errors_InvalidSession = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_errors_InvalidSession, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = (void *)&children_trezor_wire_errors_InvalidSession, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_trezor_wire_errors_InvalidSession + 3, + .line_info_top = fun_data_trezor_wire_errors_InvalidSession + 5, + .opcodes = fun_data_trezor_wire_errors_InvalidSession + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of trezor_wire_errors__lt_module_gt_ +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_FirmwareError +static const byte fun_data_trezor_wire_errors_FirmwareError[22] = { + 0x08,0x07, // prelude + 0x13, // names: FirmwareError + 0x88,0x51,0x00, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x13, // LOAD_CONST_STRING 'FirmwareError' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x15, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of trezor_wire_errors_FirmwareError +// frozen bytecode for file trezor/wire/errors.py, scope trezor_wire_errors_FirmwareError___init__ +static const byte fun_data_trezor_wire_errors_FirmwareError___init__[25] = { + 0x33,0x0c, // prelude + 0x15,0x1c,0x1d,0x17, // names: __init__, *, self, message + 0x80,0x52, // code info + 0x12,0x1e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x15, // LOAD_SUPER_METHOD '__init__' + 0x12,0x02, // LOAD_GLOBAL 'FailureType' + 0x13,0x13, // LOAD_ATTR 'FirmwareError' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_wire_errors_FirmwareError___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_trezor_wire_errors_FirmwareError___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_trezor_wire_errors_FirmwareError___init__ + 6, + .line_info_top = fun_data_trezor_wire_errors_FirmwareError___init__ + 8, + .opcodes = fun_data_trezor_wire_errors_FirmwareError___init__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_errors_FirmwareError[] = { + &raw_code_trezor_wire_errors_FirmwareError___init__, +}; + +static const mp_raw_code_t raw_code_trezor_wire_errors_FirmwareError = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_errors_FirmwareError, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_trezor_wire_errors_FirmwareError, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_trezor_wire_errors_FirmwareError + 3, + .line_info_top = fun_data_trezor_wire_errors_FirmwareError + 5, + .opcodes = fun_data_trezor_wire_errors_FirmwareError + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_trezor_wire_errors__lt_module_gt_[] = { + &raw_code_trezor_wire_errors_Error, + &raw_code_trezor_wire_errors_UnexpectedMessage, + &raw_code_trezor_wire_errors_ButtonExpected, + &raw_code_trezor_wire_errors_DataError, + &raw_code_trezor_wire_errors_ActionCancelled, + &raw_code_trezor_wire_errors_PinExpected, + &raw_code_trezor_wire_errors_PinCancelled, + &raw_code_trezor_wire_errors_PinInvalid, + &raw_code_trezor_wire_errors_InvalidSignature, + &raw_code_trezor_wire_errors_ProcessError, + &raw_code_trezor_wire_errors_NotEnoughFunds, + &raw_code_trezor_wire_errors_NotInitialized, + &raw_code_trezor_wire_errors_PinMismatch, + &raw_code_trezor_wire_errors_WipeCodeMismatch, + &raw_code_trezor_wire_errors_InvalidSession, + &raw_code_trezor_wire_errors_FirmwareError, +}; + +static const mp_raw_code_t raw_code_trezor_wire_errors__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_wire_errors__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 224, + #endif + .children = (void *)&children_trezor_wire_errors__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 16, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_wire_errors__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_wire_errors__lt_module_gt_ + 34, + .opcodes = fun_data_trezor_wire_errors__lt_module_gt_ + 34, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_wire_errors[31] = { + MP_QSTR_trezor_slash_wire_slash_errors_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_FailureType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_Error, + MP_QSTR_UnexpectedMessage, + MP_QSTR_ButtonExpected, + MP_QSTR_DataError, + MP_QSTR_ActionCancelled, + MP_QSTR_PinExpected, + MP_QSTR_PinCancelled, + MP_QSTR_PinInvalid, + MP_QSTR_InvalidSignature, + MP_QSTR_ProcessError, + MP_QSTR_NotEnoughFunds, + MP_QSTR_NotInitialized, + MP_QSTR_PinMismatch, + MP_QSTR_WipeCodeMismatch, + MP_QSTR_InvalidSession, + MP_QSTR_FirmwareError, + MP_QSTR_Cancelled, + MP_QSTR___init__, + MP_QSTR_code, + MP_QSTR_message, + MP_QSTR_Exception, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR__star_, + MP_QSTR_self, + MP_QSTR_super, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_trezor_wire_errors[3] = { + MP_ROM_QSTR(MP_QSTR_PIN_space_entry_space_cancelled), + MP_ROM_QSTR(MP_QSTR_PIN_space_invalid), + MP_ROM_QSTR(MP_QSTR_Invalid_space_session), +}; + +static const mp_frozen_module_t frozen_module_trezor_wire_errors = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_wire_errors, + .obj_table = (mp_obj_t *)&const_obj_table_data_trezor_wire_errors, + }, + .rc = &raw_code_trezor_wire_errors__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module storage___init__ +// - original source file: build/firmware/src/storage/__init__.mpy +// - frozen file name: storage/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file storage/__init__.py, scope storage___init____lt_module_gt_ +static const byte fun_data_storage___init____lt_module_gt_[46] = { + 0x10,0x10, // prelude + 0x01, // names: + 0x72,0x84,0x08,0x84,0x0c,0x84,0x09, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'common' + 0x10,0x03, // LOAD_CONST_STRING 'device' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x04, // IMPORT_NAME 'storage' + 0x1c,0x02, // IMPORT_FROM 'common' + 0x16,0x02, // STORE_NAME 'common' + 0x1c,0x03, // IMPORT_FROM 'device' + 0x16,0x03, // STORE_NAME 'device' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x05, // STORE_NAME 'wipe' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0a, // STORE_NAME 'init_unlocked' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x13, // STORE_NAME 'reset' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x18, // STORE_NAME '_migrate_from_version_01' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of storage___init____lt_module_gt_ +// frozen bytecode for file storage/__init__.py, scope storage___init___wipe +static const byte fun_data_storage___init___wipe[44] = { + 0x18,0x0c, // prelude + 0x05, // names: wipe + 0x60,0x20,0x2b,0x4b,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'cache' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'storage' + 0x1c,0x06, // IMPORT_FROM 'cache' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'config' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor' + 0x1c,0x07, // IMPORT_FROM 'config' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x05, // LOAD_METHOD 'wipe' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x09, // LOAD_METHOD 'clear_all' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage___init___wipe = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage___init___wipe, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_storage___init___wipe + 3, + .line_info_top = fun_data_storage___init___wipe + 8, + .opcodes = fun_data_storage___init___wipe + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage___init____lt_module_gt_ +// frozen bytecode for file storage/__init__.py, scope storage___init___init_unlocked +static const byte fun_data_storage___init___init_unlocked[68] = { + 0x38,0x10, // prelude + 0x0a, // names: init_unlocked + 0x80,0x0d,0x27,0x28,0x65,0x20,0x30, // code info + 0x12,0x03, // LOAD_GLOBAL 'device' + 0x14,0x0b, // LOAD_METHOD 'get_version' + 0x36,0x00, // CALL_METHOD 0 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x12,0x02, // LOAD_GLOBAL 'common' + 0x13,0x0c, // LOAD_ATTR 'STORAGE_VERSION_01' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x18, // LOAD_GLOBAL '_migrate_from_version_01' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'device' + 0x14,0x0d, // LOAD_METHOD 'is_version_stored' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0x12,0x03, // LOAD_GLOBAL 'device' + 0x14,0x0e, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x54, // POP_JUMP_IF_TRUE 20 + 0x12,0x02, // LOAD_GLOBAL 'common' + 0x14,0x0f, // LOAD_METHOD 'set_bool' + 0x12,0x02, // LOAD_GLOBAL 'common' + 0x13,0x10, // LOAD_ATTR 'APP_DEVICE' + 0x12,0x03, // LOAD_GLOBAL 'device' + 0x13,0x11, // LOAD_ATTR 'INITIALIZED' + 0x52, // LOAD_CONST_TRUE + 0x10,0x12, // LOAD_CONST_STRING 'public' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x03, // CALL_METHOD 259 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage___init___init_unlocked = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage___init___init_unlocked, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 68, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_storage___init___init_unlocked + 3, + .line_info_top = fun_data_storage___init___init_unlocked + 10, + .opcodes = fun_data_storage___init___init_unlocked + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage___init____lt_module_gt_ +// frozen bytecode for file storage/__init__.py, scope storage___init___reset +static const byte fun_data_storage___init___reset[46] = { + 0x38,0x0c, // prelude + 0x13, // names: reset + 0x80,0x18,0x60,0x27,0x25, // code info + 0x12,0x03, // LOAD_GLOBAL 'device' + 0x14,0x14, // LOAD_METHOD 'get_device_id' + 0x36,0x00, // CALL_METHOD 0 + 0xc0, // STORE_FAST 0 + 0x12,0x05, // LOAD_GLOBAL 'wipe' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'common' + 0x14,0x15, // LOAD_METHOD 'set' + 0x12,0x02, // LOAD_GLOBAL 'common' + 0x13,0x10, // LOAD_ATTR 'APP_DEVICE' + 0x12,0x03, // LOAD_GLOBAL 'device' + 0x13,0x16, // LOAD_ATTR 'DEVICE_ID' + 0xb0, // LOAD_FAST 0 + 0x14,0x17, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x12, // LOAD_CONST_STRING 'public' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x03, // CALL_METHOD 259 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage___init___reset = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage___init___reset, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_storage___init___reset + 3, + .line_info_top = fun_data_storage___init___reset + 8, + .opcodes = fun_data_storage___init___reset + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage___init____lt_module_gt_ +// frozen bytecode for file storage/__init__.py, scope storage___init____migrate_from_version_01 +static const byte fun_data_storage___init____migrate_from_version_01[74] = { + 0x30,0x0e, // prelude + 0x18, // names: _migrate_from_version_01 + 0x80,0x23,0x2f,0x26,0x50,0x4f, // code info + 0x12,0x02, // LOAD_GLOBAL 'common' + 0x14,0x19, // LOAD_METHOD 'get' + 0x12,0x02, // LOAD_GLOBAL 'common' + 0x13,0x10, // LOAD_ATTR 'APP_DEVICE' + 0x12,0x03, // LOAD_GLOBAL 'device' + 0x13,0x1a, // LOAD_ATTR 'U2F_COUNTER' + 0x36,0x02, // CALL_METHOD 2 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x5f, // POP_JUMP_IF_FALSE 31 + 0x12,0x03, // LOAD_GLOBAL 'device' + 0x14,0x1b, // LOAD_METHOD 'set_u2f_counter' + 0x12,0x21, // LOAD_GLOBAL 'int' + 0x14,0x1c, // LOAD_METHOD 'from_bytes' + 0xb0, // LOAD_FAST 0 + 0x10,0x1d, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'common' + 0x14,0x1e, // LOAD_METHOD 'delete' + 0x12,0x02, // LOAD_GLOBAL 'common' + 0x13,0x10, // LOAD_ATTR 'APP_DEVICE' + 0x12,0x03, // LOAD_GLOBAL 'device' + 0x13,0x1a, // LOAD_ATTR 'U2F_COUNTER' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'device' + 0x14,0x1f, // LOAD_METHOD 'set_version' + 0x12,0x02, // LOAD_GLOBAL 'common' + 0x13,0x20, // LOAD_ATTR 'STORAGE_VERSION_CURRENT' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage___init____migrate_from_version_01 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage___init____migrate_from_version_01, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 74, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 24, + .line_info = fun_data_storage___init____migrate_from_version_01 + 3, + .line_info_top = fun_data_storage___init____migrate_from_version_01 + 9, + .opcodes = fun_data_storage___init____migrate_from_version_01 + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_storage___init____lt_module_gt_[] = { + &raw_code_storage___init___wipe, + &raw_code_storage___init___init_unlocked, + &raw_code_storage___init___reset, + &raw_code_storage___init____migrate_from_version_01, +}; + +static const mp_raw_code_t raw_code_storage___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = (void *)&children_storage___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_storage___init____lt_module_gt_ + 3, + .line_info_top = fun_data_storage___init____lt_module_gt_ + 10, + .opcodes = fun_data_storage___init____lt_module_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_storage___init__[34] = { + MP_QSTR_storage_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_common, + MP_QSTR_device, + MP_QSTR_storage, + MP_QSTR_wipe, + MP_QSTR_cache, + MP_QSTR_config, + MP_QSTR_trezor, + MP_QSTR_clear_all, + MP_QSTR_init_unlocked, + MP_QSTR_get_version, + MP_QSTR_STORAGE_VERSION_01, + MP_QSTR_is_version_stored, + MP_QSTR_is_initialized, + MP_QSTR_set_bool, + MP_QSTR_APP_DEVICE, + MP_QSTR_INITIALIZED, + MP_QSTR_public, + MP_QSTR_reset, + MP_QSTR_get_device_id, + MP_QSTR_set, + MP_QSTR_DEVICE_ID, + MP_QSTR_encode, + MP_QSTR__migrate_from_version_01, + MP_QSTR_get, + MP_QSTR_U2F_COUNTER, + MP_QSTR_set_u2f_counter, + MP_QSTR_from_bytes, + MP_QSTR_big, + MP_QSTR_delete, + MP_QSTR_set_version, + MP_QSTR_STORAGE_VERSION_CURRENT, + MP_QSTR_int, +}; + +static const mp_frozen_module_t frozen_module_storage___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_storage___init__, + .obj_table = NULL, + }, + .rc = &raw_code_storage___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module storage_cache +// - original source file: build/firmware/src/storage/cache.mpy +// - frozen file name: storage/cache.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file storage/cache.py, scope storage_cache__lt_module_gt_ +static const byte fun_data_storage_cache__lt_module_gt_[371] = { + 0x28,0x94,0x02, // prelude + 0x01, // names: + 0x26,0x26,0x6c,0x4c,0x80,0x0b,0x23,0x23,0x23,0x23,0x20,0x23,0x23,0x23,0x63,0x25,0x25,0x25,0x25,0x25,0x25,0x85,0x09,0x26,0x26,0x26,0x63,0x20,0x63,0x6b,0x20,0x89,0x29,0x8b,0x27,0x8b,0x16,0x24,0x26,0x53,0x46,0x27,0x29,0x47,0x67,0x23,0x63,0x88,0x28,0x84,0x0a,0x84,0x09,0x84,0x11,0x80,0x0b,0x88,0x08,0x88,0x08,0x84,0x0a,0x84,0x08,0x84,0x08,0x80,0x08,0x84,0x0e,0x84,0x0e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'builtins' + 0x16,0x02, // STORE_NAME 'builtins' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'gc' + 0x16,0x03, // STORE_NAME 'gc' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'micropython' + 0x1c,0x04, // IMPORT_FROM 'const' + 0x16,0x04, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor' + 0x1c,0x06, // IMPORT_FROM 'utils' + 0x16,0x06, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x2c, // STORE_NAME 'APP_COMMON_SEED' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x2d, // STORE_NAME 'APP_COMMON_AUTHORIZATION_TYPE' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x2e, // STORE_NAME 'APP_COMMON_AUTHORIZATION_DATA' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x2f, // STORE_NAME 'APP_COMMON_NONCE' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x16,0x30, // STORE_NAME 'APP_COMMON_DERIVE_CARDANO' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x16,0x31, // STORE_NAME 'APP_CARDANO_ICARUS_SECRET' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x16,0x32, // STORE_NAME 'APP_CARDANO_ICARUS_TREZOR_SECRET' + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x16,0x33, // STORE_NAME 'APP_MONERO_LIVE_REFRESH' + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0x16,0x34, // STORE_NAME 'APP_COMMON_SEED_WITHOUT_PASSPHRASE' + 0x22,0x81,0x01, // LOAD_CONST_SMALL_INT 129 + 0x16,0x35, // STORE_NAME 'APP_COMMON_SAFETY_CHECKS_TEMPORARY' + 0x22,0x81,0x02, // LOAD_CONST_SMALL_INT 130 + 0x16,0x36, // STORE_NAME 'STORAGE_DEVICE_EXPERIMENTAL_FEATURES' + 0x22,0x81,0x03, // LOAD_CONST_SMALL_INT 131 + 0x16,0x37, // STORE_NAME 'APP_COMMON_REQUEST_PIN_LAST_UNLOCK' + 0x22,0x81,0x04, // LOAD_CONST_SMALL_INT 132 + 0x16,0x38, // STORE_NAME 'APP_COMMON_BUSY_DEADLINE_MS' + 0x22,0x81,0x05, // LOAD_CONST_SMALL_INT 133 + 0x16,0x39, // STORE_NAME 'APP_MISC_COSI_NONCE' + 0x22,0x81,0x06, // LOAD_CONST_SMALL_INT 134 + 0x16,0x3a, // STORE_NAME 'APP_MISC_COSI_COMMITMENT' + 0x11,0x3b, // LOAD_NAME 'object' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x3c, // STORE_NAME 'HOMESCREEN_ON' + 0x11,0x3b, // LOAD_NAME 'object' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x3d, // STORE_NAME 'LOCKSCREEN_ON' + 0x11,0x3b, // LOAD_NAME 'object' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x3e, // STORE_NAME 'BUSYSCREEN_ON' + 0x51, // LOAD_CONST_NONE + 0x16,0x3f, // STORE_NAME 'homescreen_shown' + 0x51, // LOAD_CONST_NONE + 0x17,0x40, // STORE_GLOBAL 'autolock_last_touch' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x08, // LOAD_CONST_STRING 'InvalidSessionError' + 0x11,0x41, // LOAD_NAME 'Exception' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x08, // STORE_NAME 'InvalidSessionError' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x09, // LOAD_CONST_STRING 'DataCache' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x09, // STORE_NAME 'DataCache' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x02, // MAKE_FUNCTION 2 + 0x10,0x0a, // LOAD_CONST_STRING 'SessionCache' + 0x11,0x09, // LOAD_NAME 'DataCache' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0a, // STORE_NAME 'SessionCache' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x03, // MAKE_FUNCTION 3 + 0x10,0x0b, // LOAD_CONST_STRING 'SessionlessCache' + 0x11,0x09, // LOAD_NAME 'DataCache' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0b, // STORE_NAME 'SessionlessCache' + 0x2b,0x00, // BUILD_LIST 0 + 0x16,0x42, // STORE_NAME '_SESSIONS' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x50, // JUMP 16 + 0x57, // DUP_TOP + 0x16,0x43, // STORE_NAME '_' + 0x11,0x42, // LOAD_NAME '_SESSIONS' + 0x14,0x0c, // LOAD_METHOD 'append' + 0x11,0x0a, // LOAD_NAME 'SessionCache' + 0x34,0x00, // CALL_FUNCTION 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x57, // DUP_TOP + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2b, // POP_JUMP_IF_TRUE -21 + 0x59, // POP_TOP + 0x11,0x0b, // LOAD_NAME 'SessionlessCache' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x44, // STORE_NAME '_SESSIONLESS_CACHE' + 0x11,0x42, // LOAD_NAME '_SESSIONS' + 0x5f, // GET_ITER_STACK + 0x4b,0x0b, // FOR_ITER 11 + 0x16,0x45, // STORE_NAME 'session' + 0x11,0x45, // LOAD_NAME 'session' + 0x14,0x0d, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0x33, // JUMP -13 + 0x11,0x44, // LOAD_NAME '_SESSIONLESS_CACHE' + 0x14,0x0d, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x11,0x03, // LOAD_NAME 'gc' + 0x14,0x0e, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x17,0x46, // STORE_GLOBAL '_active_session_idx' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x17,0x47, // STORE_GLOBAL '_session_usage_counter' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x04, // MAKE_FUNCTION_DEFARGS 4 + 0x16,0x0f, // STORE_NAME 'start_session' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x13, // STORE_NAME 'end_current_session' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x14, // STORE_NAME 'set' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x15, // STORE_NAME 'set_int' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x08, // MAKE_FUNCTION_DEFARGS 8 + 0x16,0x19, // STORE_NAME 'get' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x09, // MAKE_FUNCTION_DEFARGS 9 + 0x16,0x1a, // STORE_NAME 'get_int' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x1c, // STORE_NAME 'get_int_all_sessions' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x1e, // STORE_NAME 'is_set' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x1f, // STORE_NAME 'delete' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x20, // STORE_NAME 'stored' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x16,0x21, // STORE_NAME 'stored_async' + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x16,0x22, // STORE_NAME 'clear_all' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of storage_cache__lt_module_gt_ +// frozen bytecode for file storage/cache.py, scope storage_cache_InvalidSessionError +static const byte fun_data_storage_cache_InvalidSessionError[15] = { + 0x00,0x06, // prelude + 0x08, // names: InvalidSessionError + 0x88,0x37, // code info + 0x11,0x48, // LOAD_NAME '__name__' + 0x16,0x49, // STORE_NAME '__module__' + 0x10,0x08, // LOAD_CONST_STRING 'InvalidSessionError' + 0x16,0x4a, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_InvalidSessionError = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_cache_InvalidSessionError, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_storage_cache_InvalidSessionError + 3, + .line_info_top = fun_data_storage_cache_InvalidSessionError + 5, + .opcodes = fun_data_storage_cache_InvalidSessionError + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache__lt_module_gt_ +// frozen bytecode for file storage/cache.py, scope storage_cache_DataCache +static const byte fun_data_storage_cache_DataCache[55] = { + 0x08,0x1e, // prelude + 0x09, // names: DataCache + 0x88,0x3b,0x40,0x64,0x64,0x60,0x80,0x0a,0x68,0x60,0x64,0x20,0x64,0x20, // code info + 0x11,0x48, // LOAD_NAME '__name__' + 0x16,0x49, // STORE_NAME '__module__' + 0x10,0x09, // LOAD_CONST_STRING 'DataCache' + 0x16,0x4a, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x23, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x14, // STORE_NAME 'set' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x19, // STORE_NAME 'get' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x1e, // STORE_NAME 'is_set' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x1f, // STORE_NAME 'delete' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x0d, // STORE_NAME 'clear' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of storage_cache_DataCache +// frozen bytecode for file storage/cache.py, scope storage_cache_DataCache___init__ +static const byte fun_data_storage_cache_DataCache___init__[18] = { + 0x11,0x08, // prelude + 0x23,0x51, // names: __init__, self + 0x80,0x3e, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'fields' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x24, // STORE_ATTR 'data' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of storage_cache_DataCache___init__ +// frozen bytecode for file storage/cache.py, scope storage_cache_DataCache___init____lt_listcomp_gt_ +static const byte fun_data_storage_cache_DataCache___init____lt_listcomp_gt_[25] = { + 0x49,0x08, // prelude + 0x2a,0x52, // names: , * + 0x80,0x3e, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0c, // FOR_ITER 12 + 0xc1, // STORE_FAST 1 + 0x12,0x53, // LOAD_GLOBAL 'bytearray' + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x32, // JUMP -14 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_DataCache___init____lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_cache_DataCache___init____lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_storage_cache_DataCache___init____lt_listcomp_gt_ + 4, + .line_info_top = fun_data_storage_cache_DataCache___init____lt_listcomp_gt_ + 6, + .opcodes = fun_data_storage_cache_DataCache___init____lt_listcomp_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_storage_cache_DataCache___init__[] = { + &raw_code_storage_cache_DataCache___init____lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_storage_cache_DataCache___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_cache_DataCache___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = (void *)&children_storage_cache_DataCache___init__, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_storage_cache_DataCache___init__ + 4, + .line_info_top = fun_data_storage_cache_DataCache___init__ + 6, + .opcodes = fun_data_storage_cache_DataCache___init__ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache_DataCache +// frozen bytecode for file storage/cache.py, scope storage_cache_DataCache_set +static const byte fun_data_storage_cache_DataCache_set[66] = { + 0x3b,0x12, // prelude + 0x14,0x51,0x4d,0x4e, // names: set, self, key, value + 0x80,0x41,0x30,0x32,0x28, // code info + 0x12,0x06, // LOAD_GLOBAL 'utils' + 0x14,0x25, // LOAD_METHOD 'ensure' + 0xb1, // LOAD_FAST 1 + 0x12,0x4c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'fields' + 0x34,0x01, // CALL_FUNCTION 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'utils' + 0x14,0x25, // LOAD_METHOD 'ensure' + 0x12,0x4c, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'fields' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0xda, // BINARY_OP 3 __le__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'data' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x56, // STORE_SUBSCR + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'data' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_DataCache_set = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_storage_cache_DataCache_set, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 66, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_storage_cache_DataCache_set + 6, + .line_info_top = fun_data_storage_cache_DataCache_set + 11, + .opcodes = fun_data_storage_cache_DataCache_set + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache_DataCache +// frozen bytecode for file storage/cache.py, scope storage_cache_DataCache_get +static const byte fun_data_storage_cache_DataCache_get[56] = { + 0xbb,0x01,0x12, // prelude + 0x19,0x51,0x4d,0x4f, // names: get, self, key, default + 0x80,0x51,0x30,0x2b,0x22, // code info + 0x12,0x06, // LOAD_GLOBAL 'utils' + 0x14,0x25, // LOAD_METHOD 'ensure' + 0xb1, // LOAD_FAST 1 + 0x12,0x4c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'fields' + 0x34,0x01, // CALL_FUNCTION 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'data' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE + 0x12,0x28, // LOAD_GLOBAL 'bytes' + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'data' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_DataCache_get = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_storage_cache_DataCache_get, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 25, + .line_info = fun_data_storage_cache_DataCache_get + 7, + .line_info_top = fun_data_storage_cache_DataCache_get + 12, + .opcodes = fun_data_storage_cache_DataCache_get + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache_DataCache +// frozen bytecode for file storage/cache.py, scope storage_cache_DataCache_is_set +static const byte fun_data_storage_cache_DataCache_is_set[34] = { + 0x32,0x0c, // prelude + 0x1e,0x51,0x4d, // names: is_set, self, key + 0x80,0x57,0x30, // code info + 0x12,0x06, // LOAD_GLOBAL 'utils' + 0x14,0x25, // LOAD_METHOD 'ensure' + 0xb1, // LOAD_FAST 1 + 0x12,0x4c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'fields' + 0x34,0x01, // CALL_FUNCTION 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'data' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_DataCache_is_set = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_storage_cache_DataCache_is_set, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_storage_cache_DataCache_is_set + 5, + .line_info_top = fun_data_storage_cache_DataCache_is_set + 8, + .opcodes = fun_data_storage_cache_DataCache_is_set + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache_DataCache +// frozen bytecode for file storage/cache.py, scope storage_cache_DataCache_delete +static const byte fun_data_storage_cache_DataCache_delete[38] = { + 0x32,0x0c, // prelude + 0x1f,0x51,0x4d, // names: delete, self, key + 0x80,0x5b,0x30, // code info + 0x12,0x06, // LOAD_GLOBAL 'utils' + 0x14,0x25, // LOAD_METHOD 'ensure' + 0xb1, // LOAD_FAST 1 + 0x12,0x4c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'fields' + 0x34,0x01, // CALL_FUNCTION 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'data' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_DataCache_delete = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_storage_cache_DataCache_delete, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_storage_cache_DataCache_delete + 5, + .line_info_top = fun_data_storage_cache_DataCache_delete + 8, + .opcodes = fun_data_storage_cache_DataCache_delete + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache_DataCache +// frozen bytecode for file storage/cache.py, scope storage_cache_DataCache_clear +static const byte fun_data_storage_cache_DataCache_clear[37] = { + 0x31,0x0a, // prelude + 0x0d,0x51, // names: clear, self + 0x80,0x5f,0x2c, // code info + 0x12,0x4c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'fields' + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x4b, // JUMP 11 + 0x57, // DUP_TOP + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x14,0x1f, // LOAD_METHOD 'delete' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x30, // POP_JUMP_IF_TRUE -16 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_DataCache_clear = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_cache_DataCache_clear, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_storage_cache_DataCache_clear + 4, + .line_info_top = fun_data_storage_cache_DataCache_clear + 7, + .opcodes = fun_data_storage_cache_DataCache_clear + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_storage_cache_DataCache[] = { + &raw_code_storage_cache_DataCache___init__, + &raw_code_storage_cache_DataCache_set, + &raw_code_storage_cache_DataCache_get, + &raw_code_storage_cache_DataCache_is_set, + &raw_code_storage_cache_DataCache_delete, + &raw_code_storage_cache_DataCache_clear, +}; + +static const mp_raw_code_t raw_code_storage_cache_DataCache = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_cache_DataCache, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = (void *)&children_storage_cache_DataCache, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_storage_cache_DataCache + 3, + .line_info_top = fun_data_storage_cache_DataCache + 17, + .opcodes = fun_data_storage_cache_DataCache + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache__lt_module_gt_ +// frozen bytecode for file storage/cache.py, scope storage_cache_SessionCache +static const byte fun_data_storage_cache_SessionCache[36] = { + 0x08,0x0f, // prelude + 0x0a, // names: SessionCache + 0x88,0x64,0x86,0x17,0x84,0x09,0x00, // code info + 0x11,0x48, // LOAD_NAME '__name__' + 0x16,0x49, // STORE_NAME '__module__' + 0x10,0x0a, // LOAD_CONST_STRING 'SessionCache' + 0x16,0x4a, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x23, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x12, // STORE_NAME 'export_session_id' + 0xb0, // LOAD_FAST 0 + 0x20,0x02,0x01, // MAKE_CLOSURE 2 + 0x16,0x0d, // STORE_NAME 'clear' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of storage_cache_SessionCache +// frozen bytecode for file storage/cache.py, scope storage_cache_SessionCache___init__ +static const byte fun_data_storage_cache_SessionCache___init__[43] = { + 0x22,0x18, // prelude + 0x23,0x52,0x51, // names: __init__, *, self + 0x80,0x65,0x28,0x80,0x08,0x40,0x85,0x08,0x24, // code info + 0x12,0x53, // LOAD_GLOBAL 'bytearray' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0x18,0x10, // STORE_ATTR 'session_id' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xb1, // LOAD_FAST 1 + 0x18,0x16, // STORE_ATTR 'fields' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x11, // STORE_ATTR 'last_usage' + 0x12,0x54, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x23, // LOAD_SUPER_METHOD '__init__' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_SessionCache___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_storage_cache_SessionCache___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_storage_cache_SessionCache___init__ + 5, + .line_info_top = fun_data_storage_cache_SessionCache___init__ + 14, + .opcodes = fun_data_storage_cache_SessionCache___init__ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache_SessionCache +// frozen bytecode for file storage/cache.py, scope storage_cache_SessionCache_export_session_id +static const byte fun_data_storage_cache_SessionCache_export_session_id[47] = { + 0x29,0x0e, // prelude + 0x12,0x51, // names: export_session_id, self + 0x80,0x7c,0x6b,0x25,0x4e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x26, // LOAD_CONST_STRING 'random' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x27, // IMPORT_NAME 'trezorcrypto' + 0x1c,0x26, // IMPORT_FROM 'random' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'session_id' + 0x43,0x4e, // POP_JUMP_IF_TRUE 14 + 0xb1, // LOAD_FAST 1 + 0x14,0x28, // LOAD_METHOD 'bytes' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x01, // CALL_METHOD 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'session_id' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0x12,0x28, // LOAD_GLOBAL 'bytes' + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'session_id' + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_SessionCache_export_session_id = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_cache_SessionCache_export_session_id, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_storage_cache_SessionCache_export_session_id + 4, + .line_info_top = fun_data_storage_cache_SessionCache_export_session_id + 9, + .opcodes = fun_data_storage_cache_SessionCache_export_session_id + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache_SessionCache +// frozen bytecode for file storage/cache.py, scope storage_cache_SessionCache_clear +static const byte fun_data_storage_cache_SessionCache_clear[35] = { + 0x2a,0x0e, // prelude + 0x0d,0x52,0x51, // names: clear, *, self + 0x80,0x85,0x2a,0x24, // code info + 0x12,0x54, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x0d, // LOAD_SUPER_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x11, // STORE_ATTR 'last_usage' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x10, // LOAD_ATTR 'session_id' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_SessionCache_clear = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_storage_cache_SessionCache_clear, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_storage_cache_SessionCache_clear + 5, + .line_info_top = fun_data_storage_cache_SessionCache_clear + 9, + .opcodes = fun_data_storage_cache_SessionCache_clear + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_storage_cache_SessionCache[] = { + &raw_code_storage_cache_SessionCache___init__, + &raw_code_storage_cache_SessionCache_export_session_id, + &raw_code_storage_cache_SessionCache_clear, +}; + +static const mp_raw_code_t raw_code_storage_cache_SessionCache = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_cache_SessionCache, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = (void *)&children_storage_cache_SessionCache, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_storage_cache_SessionCache + 3, + .line_info_top = fun_data_storage_cache_SessionCache + 9, + .opcodes = fun_data_storage_cache_SessionCache + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache__lt_module_gt_ +// frozen bytecode for file storage/cache.py, scope storage_cache_SessionlessCache +static const byte fun_data_storage_cache_SessionlessCache[22] = { + 0x08,0x07, // prelude + 0x0b, // names: SessionlessCache + 0x88,0x8b,0x00, // code info + 0x11,0x48, // LOAD_NAME '__name__' + 0x16,0x49, // STORE_NAME '__module__' + 0x10,0x0b, // LOAD_CONST_STRING 'SessionlessCache' + 0x16,0x4a, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x23, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of storage_cache_SessionlessCache +// frozen bytecode for file storage/cache.py, scope storage_cache_SessionlessCache___init__ +static const byte fun_data_storage_cache_SessionlessCache___init__[27] = { + 0x22,0x10, // prelude + 0x23,0x52,0x51, // names: __init__, *, self + 0x80,0x8c,0x40,0x85,0x07, // code info + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xb1, // LOAD_FAST 1 + 0x18,0x16, // STORE_ATTR 'fields' + 0x12,0x54, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x23, // LOAD_SUPER_METHOD '__init__' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_SessionlessCache___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_storage_cache_SessionlessCache___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_storage_cache_SessionlessCache___init__ + 5, + .line_info_top = fun_data_storage_cache_SessionlessCache___init__ + 10, + .opcodes = fun_data_storage_cache_SessionlessCache___init__ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_storage_cache_SessionlessCache[] = { + &raw_code_storage_cache_SessionlessCache___init__, +}; + +static const mp_raw_code_t raw_code_storage_cache_SessionlessCache = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_cache_SessionlessCache, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_storage_cache_SessionlessCache, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_storage_cache_SessionlessCache + 3, + .line_info_top = fun_data_storage_cache_SessionlessCache + 5, + .opcodes = fun_data_storage_cache_SessionlessCache + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache__lt_module_gt_ +// frozen bytecode for file storage/cache.py, scope storage_cache_start_session +static const byte fun_data_storage_cache_start_session[155] = { + 0xc1,0x01,0x38, // prelude + 0x0f,0x4b, // names: start_session, received_session_id + 0x80,0xb2,0x20,0x40,0x20,0x26,0x89,0x07,0x42,0x66,0x23,0x25,0x2a,0x23,0x28,0x6a,0x23,0x22,0x25,0x2a,0x27,0x4a,0x23,0x25,0x26,0x25, // code info + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x4c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0xc0, // STORE_FAST 0 + 0x12,0x47, // LOAD_GLOBAL '_session_usage_counter' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x17,0x47, // STORE_GLOBAL '_session_usage_counter' + 0xb0, // LOAD_FAST 0 + 0x44,0x64, // POP_JUMP_IF_FALSE 36 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x5b, // JUMP 27 + 0x57, // DUP_TOP + 0xc1, // STORE_FAST 1 + 0x12,0x42, // LOAD_GLOBAL '_SESSIONS' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x13,0x10, // LOAD_ATTR 'session_id' + 0xb0, // LOAD_FAST 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb1, // LOAD_FAST 1 + 0x17,0x46, // STORE_GLOBAL '_active_session_idx' + 0x12,0x47, // LOAD_GLOBAL '_session_usage_counter' + 0x12,0x42, // LOAD_GLOBAL '_SESSIONS' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x18,0x11, // STORE_ATTR 'last_usage' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x57, // DUP_TOP + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x20, // POP_JUMP_IF_TRUE -32 + 0x59, // POP_TOP + 0x12,0x47, // LOAD_GLOBAL '_session_usage_counter' + 0xc2, // STORE_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc3, // STORE_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x57, // JUMP 23 + 0x57, // DUP_TOP + 0xc1, // STORE_FAST 1 + 0x12,0x42, // LOAD_GLOBAL '_SESSIONS' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x13,0x11, // LOAD_ATTR 'last_usage' + 0xb2, // LOAD_FAST 2 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x42, // LOAD_GLOBAL '_SESSIONS' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x13,0x11, // LOAD_ATTR 'last_usage' + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xc3, // STORE_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x57, // DUP_TOP + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x24, // POP_JUMP_IF_TRUE -28 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x17,0x46, // STORE_GLOBAL '_active_session_idx' + 0x12,0x42, // LOAD_GLOBAL '_SESSIONS' + 0xb3, // LOAD_FAST 3 + 0x55, // LOAD_SUBSCR + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x14,0x0d, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x47, // LOAD_GLOBAL '_session_usage_counter' + 0xb4, // LOAD_FAST 4 + 0x18,0x11, // STORE_ATTR 'last_usage' + 0xb4, // LOAD_FAST 4 + 0x14,0x12, // LOAD_METHOD 'export_session_id' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_start_session = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_cache_start_session, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 155, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 15, + .line_info = fun_data_storage_cache_start_session + 5, + .line_info_top = fun_data_storage_cache_start_session + 31, + .opcodes = fun_data_storage_cache_start_session + 31, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache__lt_module_gt_ +// frozen bytecode for file storage/cache.py, scope storage_cache_end_current_session +static const byte fun_data_storage_cache_end_current_session[32] = { + 0x08,0x0e, // prelude + 0x13, // names: end_current_session + 0x80,0xda,0x40,0x26,0x42,0x2a, // code info + 0x12,0x46, // LOAD_GLOBAL '_active_session_idx' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x42, // LOAD_GLOBAL '_SESSIONS' + 0x12,0x46, // LOAD_GLOBAL '_active_session_idx' + 0x55, // LOAD_SUBSCR + 0x14,0x0d, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x17,0x46, // STORE_GLOBAL '_active_session_idx' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_end_current_session = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_cache_end_current_session, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_storage_cache_end_current_session + 3, + .line_info_top = fun_data_storage_cache_end_current_session + 9, + .opcodes = fun_data_storage_cache_end_current_session + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache__lt_module_gt_ +// frozen bytecode for file storage/cache.py, scope storage_cache_set +static const byte fun_data_storage_cache_set[57] = { + 0x2a,0x14, // prelude + 0x14,0x4d,0x4e, // names: set, key, value + 0x80,0xe4,0x27,0x2d,0x22,0x26,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xef, // BINARY_OP 24 __and__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x12,0x44, // LOAD_GLOBAL '_SESSIONLESS_CACHE' + 0x14,0x14, // LOAD_METHOD 'set' + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xee, // BINARY_OP 23 __xor__ + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x46, // LOAD_GLOBAL '_active_session_idx' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x08, // LOAD_GLOBAL 'InvalidSessionError' + 0x65, // RAISE_OBJ + 0x12,0x42, // LOAD_GLOBAL '_SESSIONS' + 0x12,0x46, // LOAD_GLOBAL '_active_session_idx' + 0x55, // LOAD_SUBSCR + 0x14,0x14, // LOAD_METHOD 'set' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_set = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_storage_cache_set, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_storage_cache_set + 5, + .line_info_top = fun_data_storage_cache_set + 12, + .opcodes = fun_data_storage_cache_set + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache__lt_module_gt_ +// frozen bytecode for file storage/cache.py, scope storage_cache_set_int +static const byte fun_data_storage_cache_set_int[74] = { + 0x3a,0x1a, // prelude + 0x15,0x4d,0x4e, // names: set_int, key, value + 0x80,0xed,0x27,0x2d,0x26,0x45,0x4a,0x69,0x20,0x40, // code info + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xef, // BINARY_OP 24 __and__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x44, // LOAD_GLOBAL '_SESSIONLESS_CACHE' + 0x13,0x16, // LOAD_ATTR 'fields' + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xee, // BINARY_OP 23 __xor__ + 0x55, // LOAD_SUBSCR + 0xc2, // STORE_FAST 2 + 0x42,0x55, // JUMP 21 + 0x12,0x46, // LOAD_GLOBAL '_active_session_idx' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x08, // LOAD_GLOBAL 'InvalidSessionError' + 0x65, // RAISE_OBJ + 0x42,0x4a, // JUMP 10 + 0x12,0x42, // LOAD_GLOBAL '_SESSIONS' + 0x12,0x46, // LOAD_GLOBAL '_active_session_idx' + 0x55, // LOAD_SUBSCR + 0x13,0x16, // LOAD_ATTR 'fields' + 0xb0, // LOAD_FAST 0 + 0x55, // LOAD_SUBSCR + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x14,0x17, // LOAD_METHOD 'to_bytes' + 0xb2, // LOAD_FAST 2 + 0x10,0x18, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0xc3, // STORE_FAST 3 + 0x12,0x14, // LOAD_GLOBAL 'set' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_set_int = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_storage_cache_set_int, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 74, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_storage_cache_set_int + 5, + .line_info_top = fun_data_storage_cache_set_int + 15, + .opcodes = fun_data_storage_cache_set_int + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache__lt_module_gt_ +// frozen bytecode for file storage/cache.py, scope storage_cache_get +static const byte fun_data_storage_cache_get[53] = { + 0xaa,0x01,0x12, // prelude + 0x19,0x4d,0x4f, // names: get, key, default + 0x90,0x09,0x27,0x2d,0x26,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xef, // BINARY_OP 24 __and__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x44, // LOAD_GLOBAL '_SESSIONLESS_CACHE' + 0x14,0x19, // LOAD_METHOD 'get' + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xee, // BINARY_OP 23 __xor__ + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE + 0x12,0x46, // LOAD_GLOBAL '_active_session_idx' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x08, // LOAD_GLOBAL 'InvalidSessionError' + 0x65, // RAISE_OBJ + 0x12,0x42, // LOAD_GLOBAL '_SESSIONS' + 0x12,0x46, // LOAD_GLOBAL '_active_session_idx' + 0x55, // LOAD_SUBSCR + 0x14,0x19, // LOAD_METHOD 'get' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_get = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_storage_cache_get, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 53, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 25, + .line_info = fun_data_storage_cache_get + 6, + .line_info_top = fun_data_storage_cache_get + 12, + .opcodes = fun_data_storage_cache_get + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache__lt_module_gt_ +// frozen bytecode for file storage/cache.py, scope storage_cache_get_int +static const byte fun_data_storage_cache_get_int[36] = { + 0xb2,0x01,0x10, // prelude + 0x1a,0x4d,0x4f, // names: get_int, key, default + 0x90,0x11,0x26,0x25,0x42, // code info + 0x12,0x19, // LOAD_GLOBAL 'get' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE + 0x12,0x50, // LOAD_GLOBAL 'int' + 0x14,0x1b, // LOAD_METHOD 'from_bytes' + 0xb2, // LOAD_FAST 2 + 0x10,0x18, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_get_int = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_storage_cache_get_int, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 26, + .line_info = fun_data_storage_cache_get_int + 6, + .line_info_top = fun_data_storage_cache_get_int + 11, + .opcodes = fun_data_storage_cache_get_int + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache__lt_module_gt_ +// frozen bytecode for file storage/cache.py, scope storage_cache_get_int_all_sessions +static const byte fun_data_storage_cache_get_int_all_sessions[72] = { + 0x71,0x14, // prelude + 0x1c,0x4d, // names: get_int_all_sessions, key + 0x90,0x19,0x30,0x27,0x25,0x27,0x26,0x31, // code info + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xef, // BINARY_OP 24 __and__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x12,0x44, // LOAD_GLOBAL '_SESSIONLESS_CACHE' + 0x2b,0x01, // BUILD_LIST 1 + 0x42,0x42, // JUMP 2 + 0x12,0x42, // LOAD_GLOBAL '_SESSIONS' + 0xc1, // STORE_FAST 1 + 0x12,0x02, // LOAD_GLOBAL 'builtins' + 0x14,0x14, // LOAD_METHOD 'set' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x1f, // FOR_ITER 31 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x14,0x19, // LOAD_METHOD 'get' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb2, // LOAD_FAST 2 + 0x14,0x1d, // LOAD_METHOD 'add' + 0x12,0x50, // LOAD_GLOBAL 'int' + 0x14,0x1b, // LOAD_METHOD 'from_bytes' + 0xb4, // LOAD_FAST 4 + 0x10,0x18, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x1f, // JUMP -33 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_get_int_all_sessions = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_cache_get_int_all_sessions, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_storage_cache_get_int_all_sessions + 4, + .line_info_top = fun_data_storage_cache_get_int_all_sessions + 12, + .opcodes = fun_data_storage_cache_get_int_all_sessions + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache__lt_module_gt_ +// frozen bytecode for file storage/cache.py, scope storage_cache_is_set +static const byte fun_data_storage_cache_is_set[49] = { + 0x21,0x10, // prelude + 0x1e,0x4d, // names: is_set, key + 0x90,0x23,0x27,0x2c,0x26,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xef, // BINARY_OP 24 __and__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x44, // LOAD_GLOBAL '_SESSIONLESS_CACHE' + 0x14,0x1e, // LOAD_METHOD 'is_set' + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xee, // BINARY_OP 23 __xor__ + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0x12,0x46, // LOAD_GLOBAL '_active_session_idx' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x08, // LOAD_GLOBAL 'InvalidSessionError' + 0x65, // RAISE_OBJ + 0x12,0x42, // LOAD_GLOBAL '_SESSIONS' + 0x12,0x46, // LOAD_GLOBAL '_active_session_idx' + 0x55, // LOAD_SUBSCR + 0x14,0x1e, // LOAD_METHOD 'is_set' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_is_set = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_cache_is_set, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_storage_cache_is_set + 4, + .line_info_top = fun_data_storage_cache_is_set + 10, + .opcodes = fun_data_storage_cache_is_set + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache__lt_module_gt_ +// frozen bytecode for file storage/cache.py, scope storage_cache_delete +static const byte fun_data_storage_cache_delete[49] = { + 0x21,0x10, // prelude + 0x1f,0x4d, // names: delete, key + 0x90,0x2b,0x27,0x2c,0x26,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xef, // BINARY_OP 24 __and__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x44, // LOAD_GLOBAL '_SESSIONLESS_CACHE' + 0x14,0x1f, // LOAD_METHOD 'delete' + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xee, // BINARY_OP 23 __xor__ + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0x12,0x46, // LOAD_GLOBAL '_active_session_idx' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x08, // LOAD_GLOBAL 'InvalidSessionError' + 0x65, // RAISE_OBJ + 0x12,0x42, // LOAD_GLOBAL '_SESSIONS' + 0x12,0x46, // LOAD_GLOBAL '_active_session_idx' + 0x55, // LOAD_SUBSCR + 0x14,0x1f, // LOAD_METHOD 'delete' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_delete = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_cache_delete, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_storage_cache_delete + 4, + .line_info_top = fun_data_storage_cache_delete + 10, + .opcodes = fun_data_storage_cache_delete + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache__lt_module_gt_ +// frozen bytecode for file storage/cache.py, scope storage_cache_stored +static const byte fun_data_storage_cache_stored[16] = { + 0x11,0x0d, // prelude + 0x20,0x4d, // names: stored, key + 0x90,0x3b,0x85,0x0a,0x00, // code info + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +// child of storage_cache_stored +// frozen bytecode for file storage/cache.py, scope storage_cache_stored_decorator +static const byte fun_data_storage_cache_stored_decorator[18] = { + 0x22,0x0f, // prelude + 0x29,0x52,0x55, // names: decorator, *, func + 0x90,0x3c,0x86,0x07,0x01, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x02, // MAKE_CLOSURE 0 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +// child of storage_cache_stored_decorator +// frozen bytecode for file storage/cache.py, scope storage_cache_stored_decorator_wrapper +static const byte fun_data_storage_cache_stored_decorator_wrapper[46] = { + 0xca,0x80,0xc0,0x40,0x12, // prelude + 0x2b,0x52,0x52, // names: wrapper, *, * + 0x90,0x3d,0x27,0x25,0x2a,0x28, // code info + 0x12,0x19, // LOAD_GLOBAL 'get' + 0x25,0x01, // LOAD_DEREF 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x25,0x00, // LOAD_DEREF 0 + 0xb2, // LOAD_FAST 2 + 0x53, // LOAD_NULL + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x35,0x82,0x01, // CALL_FUNCTION_VAR_KW 257 + 0xc4, // STORE_FAST 4 + 0x12,0x14, // LOAD_GLOBAL 'set' + 0x25,0x01, // LOAD_DEREF 1 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_stored_decorator_wrapper = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x06, + .n_pos_args = 2, + .fun_data = fun_data_storage_cache_stored_decorator_wrapper, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 6, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_storage_cache_stored_decorator_wrapper + 8, + .line_info_top = fun_data_storage_cache_stored_decorator_wrapper + 14, + .opcodes = fun_data_storage_cache_stored_decorator_wrapper + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_storage_cache_stored_decorator[] = { + &raw_code_storage_cache_stored_decorator_wrapper, +}; + +static const mp_raw_code_t raw_code_storage_cache_stored_decorator = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_storage_cache_stored_decorator, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = (void *)&children_storage_cache_stored_decorator, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_storage_cache_stored_decorator + 5, + .line_info_top = fun_data_storage_cache_stored_decorator + 9, + .opcodes = fun_data_storage_cache_stored_decorator + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_storage_cache_stored[] = { + &raw_code_storage_cache_stored_decorator, +}; + +static const mp_raw_code_t raw_code_storage_cache_stored = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_cache_stored, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = (void *)&children_storage_cache_stored, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_storage_cache_stored + 4, + .line_info_top = fun_data_storage_cache_stored + 8, + .opcodes = fun_data_storage_cache_stored + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache__lt_module_gt_ +// frozen bytecode for file storage/cache.py, scope storage_cache_stored_async +static const byte fun_data_storage_cache_stored_async[16] = { + 0x11,0x0d, // prelude + 0x21,0x4d, // names: stored_async, key + 0x90,0x49,0x85,0x0a,0x00, // code info + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +// child of storage_cache_stored_async +// frozen bytecode for file storage/cache.py, scope storage_cache_stored_async_decorator +static const byte fun_data_storage_cache_stored_async_decorator[18] = { + 0x22,0x0f, // prelude + 0x29,0x52,0x55, // names: decorator, *, func + 0x90,0x4a,0x86,0x07,0x01, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x02, // MAKE_CLOSURE 0 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +// child of storage_cache_stored_async_decorator +// frozen bytecode for file storage/cache.py, scope storage_cache_stored_async_decorator_wrapper +static const byte fun_data_storage_cache_stored_async_decorator_wrapper[49] = { + 0xca,0xc0,0xc0,0x40,0x12, // prelude + 0x2b,0x52,0x52, // names: wrapper, *, * + 0x90,0x4b,0x27,0x25,0x2d,0x28, // code info + 0x12,0x19, // LOAD_GLOBAL 'get' + 0x25,0x01, // LOAD_DEREF 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x25,0x00, // LOAD_DEREF 0 + 0xb2, // LOAD_FAST 2 + 0x53, // LOAD_NULL + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x35,0x82,0x01, // CALL_FUNCTION_VAR_KW 257 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0x12,0x14, // LOAD_GLOBAL 'set' + 0x25,0x01, // LOAD_DEREF 1 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_stored_async_decorator_wrapper = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x07, + .n_pos_args = 2, + .fun_data = fun_data_storage_cache_stored_async_decorator_wrapper, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 7, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_storage_cache_stored_async_decorator_wrapper + 8, + .line_info_top = fun_data_storage_cache_stored_async_decorator_wrapper + 14, + .opcodes = fun_data_storage_cache_stored_async_decorator_wrapper + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_storage_cache_stored_async_decorator[] = { + &raw_code_storage_cache_stored_async_decorator_wrapper, +}; + +static const mp_raw_code_t raw_code_storage_cache_stored_async_decorator = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_storage_cache_stored_async_decorator, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = (void *)&children_storage_cache_stored_async_decorator, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_storage_cache_stored_async_decorator + 5, + .line_info_top = fun_data_storage_cache_stored_async_decorator + 9, + .opcodes = fun_data_storage_cache_stored_async_decorator + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_storage_cache_stored_async[] = { + &raw_code_storage_cache_stored_async_decorator, +}; + +static const mp_raw_code_t raw_code_storage_cache_stored_async = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_cache_stored_async, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = (void *)&children_storage_cache_stored_async, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_storage_cache_stored_async + 4, + .line_info_top = fun_data_storage_cache_stored_async + 8, + .opcodes = fun_data_storage_cache_stored_async + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_cache__lt_module_gt_ +// frozen bytecode for file storage/cache.py, scope storage_cache_clear_all +static const byte fun_data_storage_cache_clear_all[40] = { + 0x30,0x12, // prelude + 0x22, // names: clear_all + 0x90,0x57,0x20,0x40,0x23,0x27,0x26,0x48, // code info + 0x51, // LOAD_CONST_NONE + 0x17,0x46, // STORE_GLOBAL '_active_session_idx' + 0x12,0x44, // LOAD_GLOBAL '_SESSIONLESS_CACHE' + 0x14,0x0d, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x42, // LOAD_GLOBAL '_SESSIONS' + 0x5f, // GET_ITER_STACK + 0x4b,0x09, // FOR_ITER 9 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x14,0x0d, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0x35, // JUMP -11 + 0x51, // LOAD_CONST_NONE + 0x17,0x40, // STORE_GLOBAL 'autolock_last_touch' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_cache_clear_all = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_cache_clear_all, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 40, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_storage_cache_clear_all + 3, + .line_info_top = fun_data_storage_cache_clear_all + 11, + .opcodes = fun_data_storage_cache_clear_all + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_storage_cache__lt_module_gt_[] = { + &raw_code_storage_cache_InvalidSessionError, + &raw_code_storage_cache_DataCache, + &raw_code_storage_cache_SessionCache, + &raw_code_storage_cache_SessionlessCache, + &raw_code_storage_cache_start_session, + &raw_code_storage_cache_end_current_session, + &raw_code_storage_cache_set, + &raw_code_storage_cache_set_int, + &raw_code_storage_cache_get, + &raw_code_storage_cache_get_int, + &raw_code_storage_cache_get_int_all_sessions, + &raw_code_storage_cache_is_set, + &raw_code_storage_cache_delete, + &raw_code_storage_cache_stored, + &raw_code_storage_cache_stored_async, + &raw_code_storage_cache_clear_all, +}; + +static const mp_raw_code_t raw_code_storage_cache__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_cache__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 371, + #endif + .children = (void *)&children_storage_cache__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 16, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_storage_cache__lt_module_gt_ + 4, + .line_info_top = fun_data_storage_cache__lt_module_gt_ + 77, + .opcodes = fun_data_storage_cache__lt_module_gt_ + 77, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_storage_cache[86] = { + MP_QSTR_storage_slash_cache_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_builtins, + MP_QSTR_gc, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_InvalidSessionError, + MP_QSTR_DataCache, + MP_QSTR_SessionCache, + MP_QSTR_SessionlessCache, + MP_QSTR_append, + MP_QSTR_clear, + MP_QSTR_collect, + MP_QSTR_start_session, + MP_QSTR_session_id, + MP_QSTR_last_usage, + MP_QSTR_export_session_id, + MP_QSTR_end_current_session, + MP_QSTR_set, + MP_QSTR_set_int, + MP_QSTR_fields, + MP_QSTR_to_bytes, + MP_QSTR_big, + MP_QSTR_get, + MP_QSTR_get_int, + MP_QSTR_from_bytes, + MP_QSTR_get_int_all_sessions, + MP_QSTR_add, + MP_QSTR_is_set, + MP_QSTR_delete, + MP_QSTR_stored, + MP_QSTR_stored_async, + MP_QSTR_clear_all, + MP_QSTR___init__, + MP_QSTR_data, + MP_QSTR_ensure, + MP_QSTR_random, + MP_QSTR_trezorcrypto, + MP_QSTR_bytes, + MP_QSTR_decorator, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_wrapper, + MP_QSTR_APP_COMMON_SEED, + MP_QSTR_APP_COMMON_AUTHORIZATION_TYPE, + MP_QSTR_APP_COMMON_AUTHORIZATION_DATA, + MP_QSTR_APP_COMMON_NONCE, + MP_QSTR_APP_COMMON_DERIVE_CARDANO, + MP_QSTR_APP_CARDANO_ICARUS_SECRET, + MP_QSTR_APP_CARDANO_ICARUS_TREZOR_SECRET, + MP_QSTR_APP_MONERO_LIVE_REFRESH, + MP_QSTR_APP_COMMON_SEED_WITHOUT_PASSPHRASE, + MP_QSTR_APP_COMMON_SAFETY_CHECKS_TEMPORARY, + MP_QSTR_STORAGE_DEVICE_EXPERIMENTAL_FEATURES, + MP_QSTR_APP_COMMON_REQUEST_PIN_LAST_UNLOCK, + MP_QSTR_APP_COMMON_BUSY_DEADLINE_MS, + MP_QSTR_APP_MISC_COSI_NONCE, + MP_QSTR_APP_MISC_COSI_COMMITMENT, + MP_QSTR_object, + MP_QSTR_HOMESCREEN_ON, + MP_QSTR_LOCKSCREEN_ON, + MP_QSTR_BUSYSCREEN_ON, + MP_QSTR_homescreen_shown, + MP_QSTR_autolock_last_touch, + MP_QSTR_Exception, + MP_QSTR__SESSIONS, + MP_QSTR__, + MP_QSTR__SESSIONLESS_CACHE, + MP_QSTR_session, + MP_QSTR__active_session_idx, + MP_QSTR__session_usage_counter, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_received_session_id, + MP_QSTR_len, + MP_QSTR_key, + MP_QSTR_value, + MP_QSTR_default, + MP_QSTR_int, + MP_QSTR_self, + MP_QSTR__star_, + MP_QSTR_bytearray, + MP_QSTR_super, + MP_QSTR_func, +}; + +// constants +static const mp_obj_str_t const_obj_storage_cache_0 = {{&mp_type_bytes}, 46501, 1, (const byte*)"\x00"}; +static const mp_rom_obj_tuple_t const_obj_storage_cache_1 = {{&mp_type_tuple}, 8, { + MP_ROM_INT(64), + MP_ROM_INT(2), + MP_ROM_INT(128), + MP_ROM_INT(32), + MP_ROM_INT(1), + MP_ROM_INT(96), + MP_ROM_INT(96), + MP_ROM_INT(1), +}}; +static const mp_rom_obj_tuple_t const_obj_storage_cache_3 = {{&mp_type_tuple}, 7, { + MP_ROM_INT(64), + MP_ROM_INT(1), + MP_ROM_INT(1), + MP_ROM_INT(8), + MP_ROM_INT(8), + MP_ROM_INT(32), + MP_ROM_INT(32), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_storage_cache[4] = { + MP_ROM_PTR(&const_obj_storage_cache_0), + MP_ROM_PTR(&const_obj_storage_cache_1), + MP_ROM_PTR(&mp_const_empty_bytes_obj), + MP_ROM_PTR(&const_obj_storage_cache_3), +}; + +static const mp_frozen_module_t frozen_module_storage_cache = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_storage_cache, + .obj_table = (mp_obj_t *)&const_obj_table_data_storage_cache, + }, + .rc = &raw_code_storage_cache__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module storage_common +// - original source file: build/firmware/src/storage/common.mpy +// - frozen file name: storage/common.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file storage/common.py, scope storage_common__lt_module_gt_ +static const byte fun_data_storage_common__lt_module_gt_[167] = { + 0x08,0x44, // prelude + 0x01, // names: + 0x4c,0x6c,0x20,0x23,0x23,0x23,0x63,0x24,0x44,0x24,0x64,0x68,0x20,0x68,0x20,0x69,0x60,0x84,0x07,0x88,0x07,0x68,0x20,0x64,0x20,0x84,0x07,0x64,0x20,0x84,0x07,0x68,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'config' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor' + 0x1c,0x04, // IMPORT_FROM 'config' + 0x16,0x04, // STORE_NAME 'config' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x15, // STORE_NAME 'APP_DEVICE' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x16, // STORE_NAME 'APP_RECOVERY' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x17, // STORE_NAME 'APP_RECOVERY_SHARES' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x16,0x18, // STORE_NAME 'APP_WEBAUTHN' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x19, // STORE_NAME '_FALSE_BYTE' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x16,0x1a, // STORE_NAME '_TRUE_BYTE' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x16,0x1b, // STORE_NAME 'STORAGE_VERSION_01' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x16,0x1c, // STORE_NAME 'STORAGE_VERSION_CURRENT' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x06, // STORE_NAME 'set' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x07, // STORE_NAME 'get' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x08, // STORE_NAME 'delete' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x09, // STORE_NAME 'set_true_or_delete' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x04, // MAKE_FUNCTION_DEFARGS 4 + 0x16,0x0a, // STORE_NAME 'set_bool' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x05, // MAKE_FUNCTION_DEFARGS 5 + 0x16,0x0b, // STORE_NAME 'get_bool' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x0c, // STORE_NAME 'set_uint8' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x0f, // STORE_NAME 'get_uint8' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x11, // STORE_NAME 'set_uint16' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x12, // STORE_NAME 'get_uint16' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x0a, // MAKE_FUNCTION_DEFARGS 10 + 0x16,0x13, // STORE_NAME 'next_counter' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x0b, // MAKE_FUNCTION_DEFARGS 11 + 0x16,0x14, // STORE_NAME 'set_counter' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of storage_common__lt_module_gt_ +// frozen bytecode for file storage/common.py, scope storage_common_set +static const byte fun_data_storage_common_set[23] = { + 0xc8,0x05,0x0e, // prelude + 0x06,0x1d,0x1e,0x1f,0x20, // names: set, app, key, data, public + 0x80,0x14, // code info + 0x12,0x04, // LOAD_GLOBAL 'config' + 0x14,0x06, // LOAD_METHOD 'set' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_common_set = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_storage_common_set, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 6, + .line_info = fun_data_storage_common_set + 8, + .line_info_top = fun_data_storage_common_set + 10, + .opcodes = fun_data_storage_common_set + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_common__lt_module_gt_ +// frozen bytecode for file storage/common.py, scope storage_common_get +static const byte fun_data_storage_common_get[19] = { + 0xbb,0x01,0x0c, // prelude + 0x07,0x1d,0x1e,0x20, // names: get, app, key, public + 0x80,0x18, // code info + 0x12,0x04, // LOAD_GLOBAL 'config' + 0x14,0x07, // LOAD_METHOD 'get' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_common_get = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_storage_common_get, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 7, + .line_info = fun_data_storage_common_get + 7, + .line_info_top = fun_data_storage_common_get + 9, + .opcodes = fun_data_storage_common_get + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_common__lt_module_gt_ +// frozen bytecode for file storage/common.py, scope storage_common_delete +static const byte fun_data_storage_common_delete[24] = { + 0xc8,0x84,0x01,0x0e, // prelude + 0x08,0x1d,0x1e,0x20,0x21, // names: delete, app, key, public, writable_locked + 0x80,0x1e, // code info + 0x12,0x04, // LOAD_GLOBAL 'config' + 0x14,0x08, // LOAD_METHOD 'delete' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_common_delete = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_storage_common_delete, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 8, + .line_info = fun_data_storage_common_delete + 9, + .line_info_top = fun_data_storage_common_delete + 11, + .opcodes = fun_data_storage_common_delete + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_common__lt_module_gt_ +// frozen bytecode for file storage/common.py, scope storage_common_set_true_or_delete +static const byte fun_data_storage_common_set_true_or_delete[32] = { + 0x33,0x10, // prelude + 0x09,0x1d,0x1e,0x22, // names: set_true_or_delete, app, key, value + 0x80,0x22,0x23,0x4a, // code info + 0xb2, // LOAD_FAST 2 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x0a, // LOAD_GLOBAL 'set_bool' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0x12,0x08, // LOAD_GLOBAL 'delete' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_common_set_true_or_delete = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_storage_common_set_true_or_delete, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_storage_common_set_true_or_delete + 6, + .line_info_top = fun_data_storage_common_set_true_or_delete + 10, + .opcodes = fun_data_storage_common_set_true_or_delete + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_common__lt_module_gt_ +// frozen bytecode for file storage/common.py, scope storage_common_set_bool +static const byte fun_data_storage_common_set_bool[39] = { + 0xc0,0x05,0x12, // prelude + 0x0a,0x1d,0x1e,0x22,0x20, // names: set_bool, app, key, value, public + 0x80,0x29,0x23,0x4c, // code info + 0xb2, // LOAD_FAST 2 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x06, // LOAD_GLOBAL 'set' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x12,0x1a, // LOAD_GLOBAL '_TRUE_BYTE' + 0xb3, // LOAD_FAST 3 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x42,0x4a, // JUMP 10 + 0x12,0x06, // LOAD_GLOBAL 'set' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x12,0x19, // LOAD_GLOBAL '_FALSE_BYTE' + 0xb3, // LOAD_FAST 3 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_common_set_bool = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_storage_common_set_bool, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 10, + .line_info = fun_data_storage_common_set_bool + 8, + .line_info_top = fun_data_storage_common_set_bool + 12, + .opcodes = fun_data_storage_common_set_bool + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_common__lt_module_gt_ +// frozen bytecode for file storage/common.py, scope storage_common_get_bool +static const byte fun_data_storage_common_get_bool[20] = { + 0xb3,0x01,0x0c, // prelude + 0x0b,0x1d,0x1e,0x20, // names: get_bool, app, key, public + 0x80,0x30, // code info + 0x12,0x07, // LOAD_GLOBAL 'get' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x12,0x1a, // LOAD_GLOBAL '_TRUE_BYTE' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_common_get_bool = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_storage_common_get_bool, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 11, + .line_info = fun_data_storage_common_get_bool + 7, + .line_info_top = fun_data_storage_common_get_bool + 9, + .opcodes = fun_data_storage_common_get_bool + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_common__lt_module_gt_ +// frozen bytecode for file storage/common.py, scope storage_common_set_uint8 +static const byte fun_data_storage_common_set_uint8[25] = { + 0x4b,0x0c, // prelude + 0x0c,0x1d,0x1e,0x23, // names: set_uint8, app, key, val + 0x80,0x34, // code info + 0x12,0x06, // LOAD_GLOBAL 'set' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x14,0x0d, // LOAD_METHOD 'to_bytes' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0e, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_common_set_uint8 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_storage_common_set_uint8, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_storage_common_set_uint8 + 6, + .line_info_top = fun_data_storage_common_set_uint8 + 8, + .opcodes = fun_data_storage_common_set_uint8 + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_common__lt_module_gt_ +// frozen bytecode for file storage/common.py, scope storage_common_get_uint8 +static const byte fun_data_storage_common_get_uint8[32] = { + 0x32,0x10, // prelude + 0x0f,0x1d,0x1e, // names: get_uint8, app, key + 0x80,0x38,0x27,0x23,0x22, // code info + 0x12,0x07, // LOAD_GLOBAL 'get' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x24, // LOAD_GLOBAL 'int' + 0x14,0x10, // LOAD_METHOD 'from_bytes' + 0xb2, // LOAD_FAST 2 + 0x10,0x0e, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_common_get_uint8 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_storage_common_get_uint8, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_storage_common_get_uint8 + 5, + .line_info_top = fun_data_storage_common_get_uint8 + 10, + .opcodes = fun_data_storage_common_get_uint8 + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_common__lt_module_gt_ +// frozen bytecode for file storage/common.py, scope storage_common_set_uint16 +static const byte fun_data_storage_common_set_uint16[25] = { + 0x4b,0x0c, // prelude + 0x11,0x1d,0x1e,0x23, // names: set_uint16, app, key, val + 0x80,0x3f, // code info + 0x12,0x06, // LOAD_GLOBAL 'set' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x14,0x0d, // LOAD_METHOD 'to_bytes' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x0e, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_common_set_uint16 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_storage_common_set_uint16, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_storage_common_set_uint16 + 6, + .line_info_top = fun_data_storage_common_set_uint16 + 8, + .opcodes = fun_data_storage_common_set_uint16 + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_common__lt_module_gt_ +// frozen bytecode for file storage/common.py, scope storage_common_get_uint16 +static const byte fun_data_storage_common_get_uint16[32] = { + 0x32,0x10, // prelude + 0x12,0x1d,0x1e, // names: get_uint16, app, key + 0x80,0x43,0x27,0x23,0x22, // code info + 0x12,0x07, // LOAD_GLOBAL 'get' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x24, // LOAD_GLOBAL 'int' + 0x14,0x10, // LOAD_METHOD 'from_bytes' + 0xb2, // LOAD_FAST 2 + 0x10,0x0e, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_common_get_uint16 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_storage_common_get_uint16, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_storage_common_get_uint16 + 5, + .line_info_top = fun_data_storage_common_get_uint16 + 10, + .opcodes = fun_data_storage_common_get_uint16 + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_common__lt_module_gt_ +// frozen bytecode for file storage/common.py, scope storage_common_next_counter +static const byte fun_data_storage_common_next_counter[19] = { + 0xbb,0x01,0x0c, // prelude + 0x13,0x1d,0x1e,0x21, // names: next_counter, app, key, writable_locked + 0x80,0x4a, // code info + 0x12,0x04, // LOAD_GLOBAL 'config' + 0x14,0x13, // LOAD_METHOD 'next_counter' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_common_next_counter = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_storage_common_next_counter, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 19, + .line_info = fun_data_storage_common_next_counter + 7, + .line_info_top = fun_data_storage_common_next_counter + 9, + .opcodes = fun_data_storage_common_next_counter + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_common__lt_module_gt_ +// frozen bytecode for file storage/common.py, scope storage_common_set_counter +static const byte fun_data_storage_common_set_counter[23] = { + 0xc8,0x05,0x0e, // prelude + 0x14,0x1d,0x1e,0x25,0x21, // names: set_counter, app, key, count, writable_locked + 0x80,0x4e, // code info + 0x12,0x04, // LOAD_GLOBAL 'config' + 0x14,0x14, // LOAD_METHOD 'set_counter' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_common_set_counter = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_storage_common_set_counter, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 20, + .line_info = fun_data_storage_common_set_counter + 8, + .line_info_top = fun_data_storage_common_set_counter + 10, + .opcodes = fun_data_storage_common_set_counter + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_storage_common__lt_module_gt_[] = { + &raw_code_storage_common_set, + &raw_code_storage_common_get, + &raw_code_storage_common_delete, + &raw_code_storage_common_set_true_or_delete, + &raw_code_storage_common_set_bool, + &raw_code_storage_common_get_bool, + &raw_code_storage_common_set_uint8, + &raw_code_storage_common_get_uint8, + &raw_code_storage_common_set_uint16, + &raw_code_storage_common_get_uint16, + &raw_code_storage_common_next_counter, + &raw_code_storage_common_set_counter, +}; + +static const mp_raw_code_t raw_code_storage_common__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_common__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 167, + #endif + .children = (void *)&children_storage_common__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 12, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_storage_common__lt_module_gt_ + 3, + .line_info_top = fun_data_storage_common__lt_module_gt_ + 36, + .opcodes = fun_data_storage_common__lt_module_gt_ + 36, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_storage_common[38] = { + MP_QSTR_storage_slash_common_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_config, + MP_QSTR_trezor, + MP_QSTR_set, + MP_QSTR_get, + MP_QSTR_delete, + MP_QSTR_set_true_or_delete, + MP_QSTR_set_bool, + MP_QSTR_get_bool, + MP_QSTR_set_uint8, + MP_QSTR_to_bytes, + MP_QSTR_big, + MP_QSTR_get_uint8, + MP_QSTR_from_bytes, + MP_QSTR_set_uint16, + MP_QSTR_get_uint16, + MP_QSTR_next_counter, + MP_QSTR_set_counter, + MP_QSTR_APP_DEVICE, + MP_QSTR_APP_RECOVERY, + MP_QSTR_APP_RECOVERY_SHARES, + MP_QSTR_APP_WEBAUTHN, + MP_QSTR__FALSE_BYTE, + MP_QSTR__TRUE_BYTE, + MP_QSTR_STORAGE_VERSION_01, + MP_QSTR_STORAGE_VERSION_CURRENT, + MP_QSTR_app, + MP_QSTR_key, + MP_QSTR_data, + MP_QSTR_public, + MP_QSTR_writable_locked, + MP_QSTR_value, + MP_QSTR_val, + MP_QSTR_int, + MP_QSTR_count, +}; + +// constants +static const mp_obj_str_t const_obj_storage_common_0 = {{&mp_type_bytes}, 46501, 1, (const byte*)"\x00"}; +static const mp_obj_str_t const_obj_storage_common_1 = {{&mp_type_bytes}, 46500, 1, (const byte*)"\x01"}; +static const mp_obj_str_t const_obj_storage_common_2 = {{&mp_type_bytes}, 46503, 1, (const byte*)"\x02"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_storage_common[3] = { + MP_ROM_PTR(&const_obj_storage_common_0), + MP_ROM_PTR(&const_obj_storage_common_1), + MP_ROM_PTR(&const_obj_storage_common_2), +}; + +static const mp_frozen_module_t frozen_module_storage_common = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_storage_common, + .obj_table = (mp_obj_t *)&const_obj_table_data_storage_common, + }, + .rc = &raw_code_storage_common__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module storage_debug +// - original source file: build/firmware/src/storage/debug.mpy +// - frozen file name: storage/debug.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file storage/debug.py, scope storage_debug__lt_module_gt_ +static const byte fun_data_storage_debug__lt_module_gt_[27] = { + 0x08,0x08, // prelude + 0x01, // names: + 0x4c,0x20,0x47, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'halt' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezorutils' + 0x1c,0x02, // IMPORT_FROM 'halt' + 0x16,0x02, // STORE_NAME 'halt' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'halt' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_debug__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_debug__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_storage_debug__lt_module_gt_ + 3, + .line_info_top = fun_data_storage_debug__lt_module_gt_ + 6, + .opcodes = fun_data_storage_debug__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_storage_debug[4] = { + MP_QSTR_storage_slash_debug_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_halt, + MP_QSTR_trezorutils, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_storage_debug[1] = { + MP_ROM_QSTR(MP_QSTR_Debugging_space_is_space_disabled), +}; + +static const mp_frozen_module_t frozen_module_storage_debug = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_storage_debug, + .obj_table = (mp_obj_t *)&const_obj_table_data_storage_debug, + }, + .rc = &raw_code_storage_debug__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module storage_device +// - original source file: build/firmware/src/storage/device.mpy +// - frozen file name: storage/device.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file storage/device.py, scope storage_device__lt_module_gt_ +static const byte fun_data_storage_device__lt_module_gt_[397] = { + 0x08,0xdc,0x02, // prelude + 0x01, // names: + 0x6c,0x28,0x4c,0x60,0x40,0x66,0x20,0x83,0x08,0x83,0x0a,0x63,0x40,0x27,0x27,0x24,0x60,0x20,0x26,0x43,0x60,0x26,0x46,0x68,0x20,0x63,0x64,0x20,0x64,0x20,0x64,0x20,0x64,0x20,0x84,0x0d,0x84,0x07,0x64,0x60,0x84,0x07,0x64,0x60,0x64,0x20,0x84,0x11,0x64,0x20,0x64,0x60,0x64,0x60,0x89,0x0f,0x64,0x20,0x64,0x20,0x64,0x20,0x64,0x20,0x64,0x20,0x84,0x0a,0x64,0x20,0x84,0x08,0x84,0x0b,0x64,0x60,0x84,0x08,0x64,0x40,0x64,0x20,0x64,0x20,0x84,0x09,0x64,0x40,0x84,0x09,0x84,0x07,0x84,0x0a,0x84,0x0d,0x84,0x09,0x64,0x60,0x70,0x60,0x40,0x64,0x20,0x64,0x60,0x84,0x07, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x04, // IMPORT_NAME 'storage.cache' + 0x13,0x05, // LOAD_ATTR 'cache' + 0x16,0x54, // STORE_NAME 'storage_cache' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'common' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'storage' + 0x1c,0x06, // IMPORT_FROM 'common' + 0x16,0x06, // STORE_NAME 'common' + 0x59, // POP_TOP + 0x11,0x06, // LOAD_NAME 'common' + 0x13,0x08, // LOAD_ATTR 'APP_DEVICE' + 0x16,0x55, // STORE_NAME '_NAMESPACE' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x56, // STORE_NAME 'DEVICE_ID' + 0x89, // LOAD_CONST_SMALL_INT 9 + 0x16,0x57, // STORE_NAME 'U2F_COUNTER' + 0x93, // LOAD_CONST_SMALL_INT 19 + 0x16,0x58, // STORE_NAME 'INITIALIZED' + 0x11,0x02, // LOAD_NAME 'const' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x59, // STORE_NAME 'SAFETY_CHECK_LEVEL_STRICT' + 0x11,0x02, // LOAD_NAME 'const' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x5a, // STORE_NAME 'SAFETY_CHECK_LEVEL_PROMPT' + 0x11,0x59, // LOAD_NAME 'SAFETY_CHECK_LEVEL_STRICT' + 0x16,0x5b, // STORE_NAME '_DEFAULT_SAFETY_CHECK_LEVEL' + 0x22,0x81,0x80,0x00, // LOAD_CONST_SMALL_INT 16384 + 0x16,0x5c, // STORE_NAME 'HOMESCREEN_MAXSIZE' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x16,0x5d, // STORE_NAME 'LABEL_MAXLENGTH' + 0x22,0x83,0xd4,0x60, // LOAD_CONST_SMALL_INT 60000 + 0x16,0x5e, // STORE_NAME 'AUTOLOCK_DELAY_MINIMUM' + 0x22,0xa4,0xcf,0x40, // LOAD_CONST_SMALL_INT 600000 + 0x16,0x5f, // STORE_NAME 'AUTOLOCK_DELAY_DEFAULT' + 0x22,0x82,0x80,0x80,0x80,0x00, // LOAD_CONST_SMALL_INT 536870912 + 0x16,0x60, // STORE_NAME 'AUTOLOCK_DELAY_MAXIMUM' + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x16,0x61, // STORE_NAME 'SD_SALT_AUTH_KEY_LEN_BYTES' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0b, // STORE_NAME 'is_version_stored' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0d, // STORE_NAME 'get_version' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0e, // STORE_NAME 'set_version' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x10, // STORE_NAME 'is_initialized' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x13, // STORE_NAME 'get_device_id' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x1c, // STORE_NAME 'get_rotation' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x1f, // STORE_NAME 'set_rotation' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x21, // STORE_NAME 'get_label' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x22, // STORE_NAME 'set_label' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x23, // STORE_NAME 'get_mnemonic_secret' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x24, // STORE_NAME 'get_backup_type' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x2b, // STORE_NAME 'is_passphrase_enabled' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x2c, // STORE_NAME 'set_passphrase_enabled' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x2e, // STORE_NAME 'set_homescreen' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x0e, // MAKE_FUNCTION_DEFARGS 14 + 0x16,0x2f, // STORE_NAME 'store_mnemonic_secret' + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x16,0x33, // STORE_NAME 'needs_backup' + 0x32,0x10, // MAKE_FUNCTION 16 + 0x16,0x34, // STORE_NAME 'set_backed_up' + 0x32,0x11, // MAKE_FUNCTION 17 + 0x16,0x36, // STORE_NAME 'unfinished_backup' + 0x32,0x12, // MAKE_FUNCTION 18 + 0x16,0x37, // STORE_NAME 'set_unfinished_backup' + 0x32,0x13, // MAKE_FUNCTION 19 + 0x16,0x38, // STORE_NAME 'no_backup' + 0x32,0x14, // MAKE_FUNCTION 20 + 0x16,0x39, // STORE_NAME 'get_passphrase_always_on_device' + 0x32,0x15, // MAKE_FUNCTION 21 + 0x16,0x3a, // STORE_NAME 'set_passphrase_always_on_device' + 0x32,0x16, // MAKE_FUNCTION 22 + 0x16,0x3b, // STORE_NAME 'get_flags' + 0x32,0x17, // MAKE_FUNCTION 23 + 0x16,0x3c, // STORE_NAME 'set_flags' + 0x32,0x18, // MAKE_FUNCTION 24 + 0x16,0x3d, // STORE_NAME '_normalize_autolock_delay' + 0x32,0x19, // MAKE_FUNCTION 25 + 0x16,0x3e, // STORE_NAME 'get_autolock_delay_ms' + 0x32,0x1a, // MAKE_FUNCTION 26 + 0x16,0x3f, // STORE_NAME 'set_autolock_delay_ms' + 0x32,0x1b, // MAKE_FUNCTION 27 + 0x16,0x40, // STORE_NAME 'next_u2f_counter' + 0x32,0x1c, // MAKE_FUNCTION 28 + 0x16,0x43, // STORE_NAME 'set_u2f_counter' + 0x32,0x1d, // MAKE_FUNCTION 29 + 0x16,0x45, // STORE_NAME 'set_slip39_identifier' + 0x32,0x1e, // MAKE_FUNCTION 30 + 0x16,0x47, // STORE_NAME 'get_slip39_identifier' + 0x32,0x1f, // MAKE_FUNCTION 31 + 0x16,0x49, // STORE_NAME 'set_slip39_iteration_exponent' + 0x32,0x20, // MAKE_FUNCTION 32 + 0x16,0x4a, // STORE_NAME 'get_slip39_iteration_exponent' + 0x32,0x21, // MAKE_FUNCTION 33 + 0x16,0x4b, // STORE_NAME 'get_sd_salt_auth_key' + 0x32,0x22, // MAKE_FUNCTION 34 + 0x16,0x4c, // STORE_NAME 'set_sd_salt_auth_key' + 0x32,0x23, // MAKE_FUNCTION 35 + 0x16,0x4d, // STORE_NAME 'safety_check_level' + 0x32,0x24, // MAKE_FUNCTION 36 + 0x16,0x4e, // STORE_NAME 'set_safety_check_level' + 0x11,0x54, // LOAD_NAME 'storage_cache' + 0x13,0x09, // LOAD_ATTR 'stored' + 0x11,0x54, // LOAD_NAME 'storage_cache' + 0x13,0x0a, // LOAD_ATTR 'STORAGE_DEVICE_EXPERIMENTAL_FEATURES' + 0x34,0x01, // CALL_FUNCTION 1 + 0x32,0x25, // MAKE_FUNCTION 37 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x4f, // STORE_NAME '_get_experimental_features' + 0x32,0x26, // MAKE_FUNCTION 38 + 0x16,0x50, // STORE_NAME 'get_experimental_features' + 0x32,0x27, // MAKE_FUNCTION 39 + 0x16,0x51, // STORE_NAME 'set_experimental_features' + 0x32,0x28, // MAKE_FUNCTION 40 + 0x16,0x52, // STORE_NAME 'set_hide_passphrase_from_host' + 0x32,0x29, // MAKE_FUNCTION 41 + 0x16,0x53, // STORE_NAME 'get_hide_passphrase_from_host' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_is_version_stored +static const byte fun_data_storage_device_is_version_stored[19] = { + 0x20,0x06, // prelude + 0x0b, // names: is_version_stored + 0x80,0x3e, // code info + 0x12,0x62, // LOAD_GLOBAL 'bool' + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x0c, // LOAD_METHOD 'get' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_is_version_stored = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_is_version_stored, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_storage_device_is_version_stored + 3, + .line_info_top = fun_data_storage_device_is_version_stored + 5, + .opcodes = fun_data_storage_device_is_version_stored + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_get_version +static const byte fun_data_storage_device_get_version[15] = { + 0x18,0x06, // prelude + 0x0d, // names: get_version + 0x80,0x42, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x0c, // LOAD_METHOD 'get' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_get_version = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_get_version, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_storage_device_get_version + 3, + .line_info_top = fun_data_storage_device_get_version + 5, + .opcodes = fun_data_storage_device_get_version + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_set_version +static const byte fun_data_storage_device_set_version[19] = { + 0x29,0x08, // prelude + 0x0e,0x63, // names: set_version, version + 0x80,0x46, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x0f, // LOAD_METHOD 'set' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_set_version = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_device_set_version, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_storage_device_set_version + 4, + .line_info_top = fun_data_storage_device_set_version + 6, + .opcodes = fun_data_storage_device_set_version + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_is_initialized +static const byte fun_data_storage_device_is_initialized[19] = { + 0x28,0x06, // prelude + 0x10, // names: is_initialized + 0x80,0x4a, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x11, // LOAD_METHOD 'get_bool' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x93, // LOAD_CONST_SMALL_INT 19 + 0x10,0x12, // LOAD_CONST_STRING 'public' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x02, // CALL_METHOD 258 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_is_initialized = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_is_initialized, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_storage_device_is_initialized + 3, + .line_info_top = fun_data_storage_device_is_initialized + 5, + .opcodes = fun_data_storage_device_is_initialized + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_get_device_id +static const byte fun_data_storage_device_get_device_id[96] = { + 0x50,0x14, // prelude + 0x13, // names: get_device_id + 0x80,0x4e,0x2b,0x4b,0x2e,0x43,0x32,0x26,0x2f, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x14, // LOAD_CONST_STRING 'random' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x15, // IMPORT_NAME 'trezorcrypto' + 0x1c,0x14, // IMPORT_FROM 'random' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x16, // LOAD_CONST_STRING 'hexlify' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x17, // IMPORT_NAME 'ubinascii' + 0x1c,0x16, // IMPORT_FROM 'hexlify' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x0c, // LOAD_METHOD 'get' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x12, // LOAD_CONST_STRING 'public' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x02, // CALL_METHOD 258 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x43,0x67, // POP_JUMP_IF_TRUE 39 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x14,0x18, // LOAD_METHOD 'bytes' + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x19, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0x14,0x1a, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x14,0x1b, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x0f, // LOAD_METHOD 'set' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb2, // LOAD_FAST 2 + 0x10,0x12, // LOAD_CONST_STRING 'public' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x03, // CALL_METHOD 259 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x19, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_get_device_id = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_get_device_id, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 96, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_storage_device_get_device_id + 3, + .line_info_top = fun_data_storage_device_get_device_id + 12, + .opcodes = fun_data_storage_device_get_device_id + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_get_rotation +static const byte fun_data_storage_device_get_rotation[37] = { + 0x30,0x0c, // prelude + 0x1c, // names: get_rotation + 0x80,0x5b,0x2e,0x23,0x22, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x0c, // LOAD_METHOD 'get' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0x10,0x12, // LOAD_CONST_STRING 'public' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x02, // CALL_METHOD 258 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x63, // RETURN_VALUE + 0x12,0x64, // LOAD_GLOBAL 'int' + 0x14,0x1d, // LOAD_METHOD 'from_bytes' + 0xb0, // LOAD_FAST 0 + 0x10,0x1e, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_get_rotation = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_get_rotation, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_storage_device_get_rotation + 3, + .line_info_top = fun_data_storage_device_get_rotation + 8, + .opcodes = fun_data_storage_device_get_rotation + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_set_rotation +static const byte fun_data_storage_device_set_rotation[39] = { + 0x41,0x0c, // prelude + 0x1f,0x65, // names: set_rotation, value + 0x80,0x62,0x27,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x66, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x0f, // LOAD_METHOD 'set' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0xb0, // LOAD_FAST 0 + 0x14,0x20, // LOAD_METHOD 'to_bytes' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x1e, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x52, // LOAD_CONST_TRUE + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_set_rotation = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_device_set_rotation, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_storage_device_set_rotation + 4, + .line_info_top = fun_data_storage_device_set_rotation + 8, + .opcodes = fun_data_storage_device_set_rotation + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_get_label +static const byte fun_data_storage_device_get_label[32] = { + 0x28,0x0c, // prelude + 0x21, // names: get_label + 0x80,0x68,0x2b,0x25,0x22, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x0c, // LOAD_METHOD 'get' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x52, // LOAD_CONST_TRUE + 0x36,0x03, // CALL_METHOD 3 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x14,0x19, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_get_label = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_get_label, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_storage_device_get_label + 3, + .line_info_top = fun_data_storage_device_get_label + 8, + .opcodes = fun_data_storage_device_get_label + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_set_label +static const byte fun_data_storage_device_set_label[38] = { + 0x31,0x0c, // prelude + 0x22,0x67, // names: set_label, label + 0x80,0x6f,0x29,0x23, // code info + 0x12,0x68, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x66, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x0f, // LOAD_METHOD 'set' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x1b, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x52, // LOAD_CONST_TRUE + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_set_label = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_device_set_label, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_storage_device_set_label + 4, + .line_info_top = fun_data_storage_device_set_label + 8, + .opcodes = fun_data_storage_device_set_label + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_get_mnemonic_secret +static const byte fun_data_storage_device_get_mnemonic_secret[15] = { + 0x18,0x06, // prelude + 0x23, // names: get_mnemonic_secret + 0x80,0x75, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x0c, // LOAD_METHOD 'get' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_get_mnemonic_secret = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_get_mnemonic_secret, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_storage_device_get_mnemonic_secret + 3, + .line_info_top = fun_data_storage_device_get_mnemonic_secret + 5, + .opcodes = fun_data_storage_device_get_mnemonic_secret + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_get_backup_type +static const byte fun_data_storage_device_get_backup_type[65] = { + 0x28,0x18, // prelude + 0x24, // names: get_backup_type + 0x80,0x79,0x4b,0x2a,0x25,0x44,0x21,0x23,0x23,0x69,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x25, // LOAD_CONST_STRING 'BackupType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x26, // IMPORT_NAME 'trezor.enums' + 0x1c,0x25, // IMPORT_FROM 'BackupType' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x27, // LOAD_METHOD 'get_uint8' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x8e, // LOAD_CONST_SMALL_INT 14 + 0x36,0x02, // CALL_METHOD 2 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'Bip39' + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'Bip39' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'Slip39_Basic' + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'Slip39_Advanced' + 0x2a,0x03, // BUILD_TUPLE 3 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x69, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_get_backup_type = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_get_backup_type, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 65, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_storage_device_get_backup_type + 3, + .line_info_top = fun_data_storage_device_get_backup_type + 14, + .opcodes = fun_data_storage_device_get_backup_type + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_is_passphrase_enabled +static const byte fun_data_storage_device_is_passphrase_enabled[15] = { + 0x18,0x06, // prelude + 0x2b, // names: is_passphrase_enabled + 0x80,0x8a, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x11, // LOAD_METHOD 'get_bool' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_is_passphrase_enabled = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_is_passphrase_enabled, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_storage_device_is_passphrase_enabled + 3, + .line_info_top = fun_data_storage_device_is_passphrase_enabled + 5, + .opcodes = fun_data_storage_device_is_passphrase_enabled + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_set_passphrase_enabled +static const byte fun_data_storage_device_set_passphrase_enabled[30] = { + 0x29,0x0c, // prelude + 0x2c,0x6a, // names: set_passphrase_enabled, enable + 0x80,0x8e,0x2b,0x23, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x2d, // LOAD_METHOD 'set_bool' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0x12,0x3a, // LOAD_GLOBAL 'set_passphrase_always_on_device' + 0x50, // LOAD_CONST_FALSE + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_set_passphrase_enabled = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_device_set_passphrase_enabled, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 44, + .line_info = fun_data_storage_device_set_passphrase_enabled + 4, + .line_info_top = fun_data_storage_device_set_passphrase_enabled + 8, + .opcodes = fun_data_storage_device_set_passphrase_enabled + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_set_homescreen +static const byte fun_data_storage_device_set_homescreen[40] = { + 0x39,0x0c, // prelude + 0x2e,0x6b, // names: set_homescreen, homescreen + 0x80,0x94,0x2c,0x23, // code info + 0x12,0x68, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x81,0x80,0x00, // LOAD_CONST_SMALL_INT 16384 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x66, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x0f, // LOAD_METHOD 'set' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0xb0, // LOAD_FAST 0 + 0x10,0x12, // LOAD_CONST_STRING 'public' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x03, // CALL_METHOD 259 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_set_homescreen = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_device_set_homescreen, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 40, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_storage_device_set_homescreen + 4, + .line_info_top = fun_data_storage_device_set_homescreen + 8, + .opcodes = fun_data_storage_device_set_homescreen + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_store_mnemonic_secret +static const byte fun_data_storage_device_store_mnemonic_secret[90] = { + 0xd0,0x84,0x01,0x1a, // prelude + 0x2f,0x6c,0x6d,0x33,0x38, // names: store_mnemonic_secret, secret, backup_type, needs_backup, no_backup + 0x80,0x9f,0x29,0x2b,0x2b,0x2b,0x2f,0x23, // code info + 0x12,0x0e, // LOAD_GLOBAL 'set_version' + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x13,0x30, // LOAD_ATTR 'STORAGE_VERSION_CURRENT' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x0f, // LOAD_METHOD 'set' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x31, // LOAD_METHOD 'set_uint8' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x8e, // LOAD_CONST_SMALL_INT 14 + 0xb1, // LOAD_FAST 1 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x32, // LOAD_METHOD 'set_true_or_delete' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x8d, // LOAD_CONST_SMALL_INT 13 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x2d, // LOAD_METHOD 'set_bool' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x93, // LOAD_CONST_SMALL_INT 19 + 0x52, // LOAD_CONST_TRUE + 0x10,0x12, // LOAD_CONST_STRING 'public' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x03, // CALL_METHOD 259 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x32, // LOAD_METHOD 'set_true_or_delete' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_store_mnemonic_secret = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_storage_device_store_mnemonic_secret, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 90, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 47, + .line_info = fun_data_storage_device_store_mnemonic_secret + 9, + .line_info_top = fun_data_storage_device_store_mnemonic_secret + 17, + .opcodes = fun_data_storage_device_store_mnemonic_secret + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_needs_backup +static const byte fun_data_storage_device_needs_backup[15] = { + 0x18,0x06, // prelude + 0x33, // names: needs_backup + 0x80,0xa9, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x11, // LOAD_METHOD 'get_bool' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_needs_backup = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_needs_backup, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 51, + .line_info = fun_data_storage_device_needs_backup + 3, + .line_info_top = fun_data_storage_device_needs_backup + 5, + .opcodes = fun_data_storage_device_needs_backup + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_set_backed_up +static const byte fun_data_storage_device_set_backed_up[17] = { + 0x18,0x06, // prelude + 0x34, // names: set_backed_up + 0x80,0xad, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x35, // LOAD_METHOD 'delete' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_set_backed_up = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_set_backed_up, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 52, + .line_info = fun_data_storage_device_set_backed_up + 3, + .line_info_top = fun_data_storage_device_set_backed_up + 5, + .opcodes = fun_data_storage_device_set_backed_up + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_unfinished_backup +static const byte fun_data_storage_device_unfinished_backup[15] = { + 0x18,0x06, // prelude + 0x36, // names: unfinished_backup + 0x80,0xb1, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x11, // LOAD_METHOD 'get_bool' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x8b, // LOAD_CONST_SMALL_INT 11 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_unfinished_backup = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_unfinished_backup, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 54, + .line_info = fun_data_storage_device_unfinished_backup + 3, + .line_info_top = fun_data_storage_device_unfinished_backup + 5, + .opcodes = fun_data_storage_device_unfinished_backup + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_set_unfinished_backup +static const byte fun_data_storage_device_set_unfinished_backup[19] = { + 0x29,0x08, // prelude + 0x37,0x6e, // names: set_unfinished_backup, state + 0x80,0xb5, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x2d, // LOAD_METHOD 'set_bool' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x8b, // LOAD_CONST_SMALL_INT 11 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_set_unfinished_backup = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_device_set_unfinished_backup, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 55, + .line_info = fun_data_storage_device_set_unfinished_backup + 4, + .line_info_top = fun_data_storage_device_set_unfinished_backup + 6, + .opcodes = fun_data_storage_device_set_unfinished_backup + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_no_backup +static const byte fun_data_storage_device_no_backup[15] = { + 0x18,0x06, // prelude + 0x38, // names: no_backup + 0x80,0xb9, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x11, // LOAD_METHOD 'get_bool' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x8d, // LOAD_CONST_SMALL_INT 13 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_no_backup = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_no_backup, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 56, + .line_info = fun_data_storage_device_no_backup + 3, + .line_info_top = fun_data_storage_device_no_backup + 5, + .opcodes = fun_data_storage_device_no_backup + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_get_passphrase_always_on_device +static const byte fun_data_storage_device_get_passphrase_always_on_device[17] = { + 0x18,0x0a, // prelude + 0x39, // names: get_passphrase_always_on_device + 0x80,0xbd,0x60,0x60, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x11, // LOAD_METHOD 'get_bool' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_get_passphrase_always_on_device = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_get_passphrase_always_on_device, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 57, + .line_info = fun_data_storage_device_get_passphrase_always_on_device + 3, + .line_info_top = fun_data_storage_device_get_passphrase_always_on_device + 7, + .opcodes = fun_data_storage_device_get_passphrase_always_on_device + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_set_passphrase_always_on_device +static const byte fun_data_storage_device_set_passphrase_always_on_device[19] = { + 0x29,0x08, // prelude + 0x3a,0x6a, // names: set_passphrase_always_on_device, enable + 0x80,0xc7, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x2d, // LOAD_METHOD 'set_bool' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_set_passphrase_always_on_device = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_device_set_passphrase_always_on_device, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 58, + .line_info = fun_data_storage_device_set_passphrase_always_on_device + 4, + .line_info_top = fun_data_storage_device_set_passphrase_always_on_device + 6, + .opcodes = fun_data_storage_device_set_passphrase_always_on_device + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_get_flags +static const byte fun_data_storage_device_get_flags[37] = { + 0x20,0x0c, // prelude + 0x3b, // names: get_flags + 0x80,0xcb,0x2a,0x25,0x42, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x0c, // LOAD_METHOD 'get' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x36,0x02, // CALL_METHOD 2 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x63, // RETURN_VALUE + 0x12,0x64, // LOAD_GLOBAL 'int' + 0x14,0x1d, // LOAD_METHOD 'from_bytes' + 0xb0, // LOAD_FAST 0 + 0x10,0x1e, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_get_flags = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_get_flags, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 59, + .line_info = fun_data_storage_device_get_flags + 3, + .line_info_top = fun_data_storage_device_get_flags + 8, + .opcodes = fun_data_storage_device_get_flags + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_set_flags +static const byte fun_data_storage_device_set_flags[73] = { + 0x51,0x14, // prelude + 0x3c,0x6f, // names: set_flags, flags + 0x80,0xd3,0x2a,0x25,0x44,0x2a,0x27,0x25, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x0c, // LOAD_METHOD 'get' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x36,0x02, // CALL_METHOD 2 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc2, // STORE_FAST 2 + 0x42,0x4a, // JUMP 10 + 0x12,0x64, // LOAD_GLOBAL 'int' + 0x14,0x1d, // LOAD_METHOD 'from_bytes' + 0xb1, // LOAD_FAST 1 + 0x10,0x1e, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xed, // BINARY_OP 22 __or__ + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xef, // BINARY_OP 24 __and__ + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x0f, // LOAD_METHOD 'set' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xb0, // LOAD_FAST 0 + 0x14,0x20, // LOAD_METHOD 'to_bytes' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x10,0x1e, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_set_flags = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_device_set_flags, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 73, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 60, + .line_info = fun_data_storage_device_set_flags + 4, + .line_info_top = fun_data_storage_device_set_flags + 12, + .opcodes = fun_data_storage_device_set_flags + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device__normalize_autolock_delay +static const byte fun_data_storage_device__normalize_autolock_delay[30] = { + 0x19,0x0c, // prelude + 0x3d,0x70, // names: _normalize_autolock_delay, delay_ms + 0x80,0xde,0x28,0x2c, // code info + 0x12,0x71, // LOAD_GLOBAL 'max' + 0xb0, // LOAD_FAST 0 + 0x12,0x5e, // LOAD_GLOBAL 'AUTOLOCK_DELAY_MINIMUM' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc0, // STORE_FAST 0 + 0x12,0x72, // LOAD_GLOBAL 'min' + 0xb0, // LOAD_FAST 0 + 0x22,0x82,0x80,0x80,0x80,0x00, // LOAD_CONST_SMALL_INT 536870912 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device__normalize_autolock_delay = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_device__normalize_autolock_delay, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 61, + .line_info = fun_data_storage_device__normalize_autolock_delay + 4, + .line_info_top = fun_data_storage_device__normalize_autolock_delay + 8, + .opcodes = fun_data_storage_device__normalize_autolock_delay + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_get_autolock_delay_ms +static const byte fun_data_storage_device_get_autolock_delay_ms[44] = { + 0x28,0x0c, // prelude + 0x3e, // names: get_autolock_delay_ms + 0x80,0xe4,0x2a,0x25,0x45, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x0c, // LOAD_METHOD 'get' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0x36,0x02, // CALL_METHOD 2 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x22,0xa4,0xcf,0x40, // LOAD_CONST_SMALL_INT 600000 + 0x63, // RETURN_VALUE + 0x12,0x3d, // LOAD_GLOBAL '_normalize_autolock_delay' + 0x12,0x64, // LOAD_GLOBAL 'int' + 0x14,0x1d, // LOAD_METHOD 'from_bytes' + 0xb0, // LOAD_FAST 0 + 0x10,0x1e, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_get_autolock_delay_ms = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_get_autolock_delay_ms, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 62, + .line_info = fun_data_storage_device_get_autolock_delay_ms + 3, + .line_info_top = fun_data_storage_device_get_autolock_delay_ms + 8, + .opcodes = fun_data_storage_device_get_autolock_delay_ms + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_set_autolock_delay_ms +static const byte fun_data_storage_device_set_autolock_delay_ms[33] = { + 0x41,0x0a, // prelude + 0x3f,0x70, // names: set_autolock_delay_ms, delay_ms + 0x80,0xec,0x26, // code info + 0x12,0x3d, // LOAD_GLOBAL '_normalize_autolock_delay' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x0f, // LOAD_METHOD 'set' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0xb0, // LOAD_FAST 0 + 0x14,0x20, // LOAD_METHOD 'to_bytes' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x10,0x1e, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_set_autolock_delay_ms = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_device_set_autolock_delay_ms, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 63, + .line_info = fun_data_storage_device_set_autolock_delay_ms + 4, + .line_info_top = fun_data_storage_device_set_autolock_delay_ms + 7, + .opcodes = fun_data_storage_device_set_autolock_delay_ms + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_next_u2f_counter +static const byte fun_data_storage_device_next_u2f_counter[19] = { + 0x28,0x06, // prelude + 0x40, // names: next_u2f_counter + 0x80,0xf1, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x41, // LOAD_METHOD 'next_counter' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x89, // LOAD_CONST_SMALL_INT 9 + 0x10,0x42, // LOAD_CONST_STRING 'writable_locked' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x02, // CALL_METHOD 258 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_next_u2f_counter = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_next_u2f_counter, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_storage_device_next_u2f_counter + 3, + .line_info_top = fun_data_storage_device_next_u2f_counter + 5, + .opcodes = fun_data_storage_device_next_u2f_counter + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_set_u2f_counter +static const byte fun_data_storage_device_set_u2f_counter[23] = { + 0x39,0x08, // prelude + 0x43,0x73, // names: set_u2f_counter, count + 0x80,0xf5, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x44, // LOAD_METHOD 'set_counter' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x89, // LOAD_CONST_SMALL_INT 9 + 0xb0, // LOAD_FAST 0 + 0x10,0x42, // LOAD_CONST_STRING 'writable_locked' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x03, // CALL_METHOD 259 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_set_u2f_counter = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_device_set_u2f_counter, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 67, + .line_info = fun_data_storage_device_set_u2f_counter + 4, + .line_info_top = fun_data_storage_device_set_u2f_counter + 6, + .opcodes = fun_data_storage_device_set_u2f_counter + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_set_slip39_identifier +static const byte fun_data_storage_device_set_slip39_identifier[21] = { + 0x29,0x0c, // prelude + 0x45,0x74, // names: set_slip39_identifier, identifier + 0x80,0xf9,0x60,0x40, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x46, // LOAD_METHOD 'set_uint16' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_set_slip39_identifier = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_device_set_slip39_identifier, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 69, + .line_info = fun_data_storage_device_set_slip39_identifier + 4, + .line_info_top = fun_data_storage_device_set_slip39_identifier + 8, + .opcodes = fun_data_storage_device_set_slip39_identifier + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_get_slip39_identifier +static const byte fun_data_storage_device_get_slip39_identifier[16] = { + 0x18,0x08, // prelude + 0x47, // names: get_slip39_identifier + 0x90,0x02,0x20, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x48, // LOAD_METHOD 'get_uint16' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_get_slip39_identifier = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_get_slip39_identifier, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 71, + .line_info = fun_data_storage_device_get_slip39_identifier + 3, + .line_info_top = fun_data_storage_device_get_slip39_identifier + 6, + .opcodes = fun_data_storage_device_get_slip39_identifier + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_set_slip39_iteration_exponent +static const byte fun_data_storage_device_set_slip39_iteration_exponent[21] = { + 0x29,0x0c, // prelude + 0x49,0x75, // names: set_slip39_iteration_exponent, exponent + 0x90,0x07,0x60,0x40, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x31, // LOAD_METHOD 'set_uint8' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x91, // LOAD_CONST_SMALL_INT 17 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_set_slip39_iteration_exponent = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_device_set_slip39_iteration_exponent, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 73, + .line_info = fun_data_storage_device_set_slip39_iteration_exponent + 4, + .line_info_top = fun_data_storage_device_set_slip39_iteration_exponent + 8, + .opcodes = fun_data_storage_device_set_slip39_iteration_exponent + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_get_slip39_iteration_exponent +static const byte fun_data_storage_device_get_slip39_iteration_exponent[16] = { + 0x18,0x08, // prelude + 0x4a, // names: get_slip39_iteration_exponent + 0x90,0x10,0x60, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x27, // LOAD_METHOD 'get_uint8' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x91, // LOAD_CONST_SMALL_INT 17 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_get_slip39_iteration_exponent = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_get_slip39_iteration_exponent, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 74, + .line_info = fun_data_storage_device_get_slip39_iteration_exponent + 3, + .line_info_top = fun_data_storage_device_get_slip39_iteration_exponent + 6, + .opcodes = fun_data_storage_device_get_slip39_iteration_exponent + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_get_sd_salt_auth_key +static const byte fun_data_storage_device_get_sd_salt_auth_key[43] = { + 0x30,0x0e, // prelude + 0x4b, // names: get_sd_salt_auth_key + 0x90,0x17,0x60,0x2e,0x2f,0x23, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x0c, // LOAD_METHOD 'get' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x92, // LOAD_CONST_SMALL_INT 18 + 0x10,0x12, // LOAD_CONST_STRING 'public' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x02, // CALL_METHOD 258 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x68, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x66, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_get_sd_salt_auth_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_get_sd_salt_auth_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 75, + .line_info = fun_data_storage_device_get_sd_salt_auth_key + 3, + .line_info_top = fun_data_storage_device_get_sd_salt_auth_key + 9, + .opcodes = fun_data_storage_device_get_sd_salt_auth_key + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_set_sd_salt_auth_key +static const byte fun_data_storage_device_set_sd_salt_auth_key[60] = { + 0x39,0x12, // prelude + 0x4c,0x76, // names: set_sd_salt_auth_key, auth_key + 0x90,0x21,0x60,0x26,0x29,0x23,0x4f, // code info + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x5b, // POP_JUMP_IF_FALSE 27 + 0x12,0x68, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x66, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x0f, // LOAD_METHOD 'set' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x92, // LOAD_CONST_SMALL_INT 18 + 0xb0, // LOAD_FAST 0 + 0x10,0x12, // LOAD_CONST_STRING 'public' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x03, // CALL_METHOD 259 + 0x63, // RETURN_VALUE + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x35, // LOAD_METHOD 'delete' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x92, // LOAD_CONST_SMALL_INT 18 + 0x10,0x12, // LOAD_CONST_STRING 'public' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x02, // CALL_METHOD 258 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_set_sd_salt_auth_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_device_set_sd_salt_auth_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 60, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 76, + .line_info = fun_data_storage_device_set_sd_salt_auth_key + 4, + .line_info_top = fun_data_storage_device_set_sd_salt_auth_key + 11, + .opcodes = fun_data_storage_device_set_sd_salt_auth_key + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_safety_check_level +static const byte fun_data_storage_device_safety_check_level[36] = { + 0x20,0x0c, // prelude + 0x4d, // names: safety_check_level + 0x90,0x2e,0x2a,0x2b,0x43, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x27, // LOAD_METHOD 'get_uint8' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x36,0x02, // CALL_METHOD 2 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x12,0x59, // LOAD_GLOBAL 'SAFETY_CHECK_LEVEL_STRICT' + 0x12,0x5a, // LOAD_GLOBAL 'SAFETY_CHECK_LEVEL_PROMPT' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x5b, // LOAD_GLOBAL '_DEFAULT_SAFETY_CHECK_LEVEL' + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_safety_check_level = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_safety_check_level, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 77, + .line_info = fun_data_storage_device_safety_check_level + 3, + .line_info_top = fun_data_storage_device_safety_check_level + 8, + .opcodes = fun_data_storage_device_safety_check_level + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_set_safety_check_level +static const byte fun_data_storage_device_set_safety_check_level[35] = { + 0x29,0x0c, // prelude + 0x4e,0x77, // names: set_safety_check_level, level + 0x90,0x37,0x2b,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x12,0x59, // LOAD_GLOBAL 'SAFETY_CHECK_LEVEL_STRICT' + 0x12,0x5a, // LOAD_GLOBAL 'SAFETY_CHECK_LEVEL_PROMPT' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x66, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x31, // LOAD_METHOD 'set_uint8' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x94, // LOAD_CONST_SMALL_INT 20 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_set_safety_check_level = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_device_set_safety_check_level, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 78, + .line_info = fun_data_storage_device_set_safety_check_level + 4, + .line_info_top = fun_data_storage_device_set_safety_check_level + 8, + .opcodes = fun_data_storage_device_set_safety_check_level + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device__get_experimental_features +static const byte fun_data_storage_device__get_experimental_features[26] = { + 0x18,0x0a, // prelude + 0x4f, // names: _get_experimental_features + 0x90,0x3e,0x2b,0x43, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x11, // LOAD_METHOD 'get_bool' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x95, // LOAD_CONST_SMALL_INT 21 + 0x36,0x02, // CALL_METHOD 2 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x63, // RETURN_VALUE + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device__get_experimental_features = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device__get_experimental_features, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 79, + .line_info = fun_data_storage_device__get_experimental_features + 3, + .line_info_top = fun_data_storage_device__get_experimental_features + 7, + .opcodes = fun_data_storage_device__get_experimental_features + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_get_experimental_features +static const byte fun_data_storage_device_get_experimental_features[14] = { + 0x08,0x06, // prelude + 0x50, // names: get_experimental_features + 0x90,0x45, // code info + 0x12,0x62, // LOAD_GLOBAL 'bool' + 0x12,0x4f, // LOAD_GLOBAL '_get_experimental_features' + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_get_experimental_features = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_get_experimental_features, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 80, + .line_info = fun_data_storage_device_get_experimental_features + 3, + .line_info_top = fun_data_storage_device_get_experimental_features + 5, + .opcodes = fun_data_storage_device_get_experimental_features + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_set_experimental_features +static const byte fun_data_storage_device_set_experimental_features[43] = { + 0x31,0x0c, // prelude + 0x51,0x78, // names: set_experimental_features, enabled + 0x90,0x49,0x2a,0x2c, // code info + 0xb0, // LOAD_FAST 0 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x42,0x42, // JUMP 2 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xc1, // STORE_FAST 1 + 0x12,0x54, // LOAD_GLOBAL 'storage_cache' + 0x14,0x0f, // LOAD_METHOD 'set' + 0x12,0x54, // LOAD_GLOBAL 'storage_cache' + 0x13,0x0a, // LOAD_ATTR 'STORAGE_DEVICE_EXPERIMENTAL_FEATURES' + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x32, // LOAD_METHOD 'set_true_or_delete' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x95, // LOAD_CONST_SMALL_INT 21 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_set_experimental_features = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_device_set_experimental_features, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 81, + .line_info = fun_data_storage_device_set_experimental_features + 4, + .line_info_top = fun_data_storage_device_set_experimental_features + 8, + .opcodes = fun_data_storage_device_set_experimental_features + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_set_hide_passphrase_from_host +static const byte fun_data_storage_device_set_hide_passphrase_from_host[20] = { + 0x29,0x0a, // prelude + 0x52,0x79, // names: set_hide_passphrase_from_host, hide + 0x90,0x4f,0x60, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x2d, // LOAD_METHOD 'set_bool' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x96, // LOAD_CONST_SMALL_INT 22 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_set_hide_passphrase_from_host = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_device_set_hide_passphrase_from_host, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 82, + .line_info = fun_data_storage_device_set_hide_passphrase_from_host + 4, + .line_info_top = fun_data_storage_device_set_hide_passphrase_from_host + 7, + .opcodes = fun_data_storage_device_set_hide_passphrase_from_host + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_device__lt_module_gt_ +// frozen bytecode for file storage/device.py, scope storage_device_get_hide_passphrase_from_host +static const byte fun_data_storage_device_get_hide_passphrase_from_host[16] = { + 0x18,0x08, // prelude + 0x53, // names: get_hide_passphrase_from_host + 0x90,0x56,0x60, // code info + 0x12,0x06, // LOAD_GLOBAL 'common' + 0x14,0x11, // LOAD_METHOD 'get_bool' + 0x12,0x55, // LOAD_GLOBAL '_NAMESPACE' + 0x96, // LOAD_CONST_SMALL_INT 22 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_device_get_hide_passphrase_from_host = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device_get_hide_passphrase_from_host, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 83, + .line_info = fun_data_storage_device_get_hide_passphrase_from_host + 3, + .line_info_top = fun_data_storage_device_get_hide_passphrase_from_host + 6, + .opcodes = fun_data_storage_device_get_hide_passphrase_from_host + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_storage_device__lt_module_gt_[] = { + &raw_code_storage_device_is_version_stored, + &raw_code_storage_device_get_version, + &raw_code_storage_device_set_version, + &raw_code_storage_device_is_initialized, + &raw_code_storage_device_get_device_id, + &raw_code_storage_device_get_rotation, + &raw_code_storage_device_set_rotation, + &raw_code_storage_device_get_label, + &raw_code_storage_device_set_label, + &raw_code_storage_device_get_mnemonic_secret, + &raw_code_storage_device_get_backup_type, + &raw_code_storage_device_is_passphrase_enabled, + &raw_code_storage_device_set_passphrase_enabled, + &raw_code_storage_device_set_homescreen, + &raw_code_storage_device_store_mnemonic_secret, + &raw_code_storage_device_needs_backup, + &raw_code_storage_device_set_backed_up, + &raw_code_storage_device_unfinished_backup, + &raw_code_storage_device_set_unfinished_backup, + &raw_code_storage_device_no_backup, + &raw_code_storage_device_get_passphrase_always_on_device, + &raw_code_storage_device_set_passphrase_always_on_device, + &raw_code_storage_device_get_flags, + &raw_code_storage_device_set_flags, + &raw_code_storage_device__normalize_autolock_delay, + &raw_code_storage_device_get_autolock_delay_ms, + &raw_code_storage_device_set_autolock_delay_ms, + &raw_code_storage_device_next_u2f_counter, + &raw_code_storage_device_set_u2f_counter, + &raw_code_storage_device_set_slip39_identifier, + &raw_code_storage_device_get_slip39_identifier, + &raw_code_storage_device_set_slip39_iteration_exponent, + &raw_code_storage_device_get_slip39_iteration_exponent, + &raw_code_storage_device_get_sd_salt_auth_key, + &raw_code_storage_device_set_sd_salt_auth_key, + &raw_code_storage_device_safety_check_level, + &raw_code_storage_device_set_safety_check_level, + &raw_code_storage_device__get_experimental_features, + &raw_code_storage_device_get_experimental_features, + &raw_code_storage_device_set_experimental_features, + &raw_code_storage_device_set_hide_passphrase_from_host, + &raw_code_storage_device_get_hide_passphrase_from_host, +}; + +static const mp_raw_code_t raw_code_storage_device__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_device__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 397, + #endif + .children = (void *)&children_storage_device__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 42, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_storage_device__lt_module_gt_ + 4, + .line_info_top = fun_data_storage_device__lt_module_gt_ + 113, + .opcodes = fun_data_storage_device__lt_module_gt_ + 113, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_storage_device[122] = { + MP_QSTR_storage_slash_device_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_storage_dot_cache, + MP_QSTR_cache, + MP_QSTR_common, + MP_QSTR_storage, + MP_QSTR_APP_DEVICE, + MP_QSTR_stored, + MP_QSTR_STORAGE_DEVICE_EXPERIMENTAL_FEATURES, + MP_QSTR_is_version_stored, + MP_QSTR_get, + MP_QSTR_get_version, + MP_QSTR_set_version, + MP_QSTR_set, + MP_QSTR_is_initialized, + MP_QSTR_get_bool, + MP_QSTR_public, + MP_QSTR_get_device_id, + MP_QSTR_random, + MP_QSTR_trezorcrypto, + MP_QSTR_hexlify, + MP_QSTR_ubinascii, + MP_QSTR_bytes, + MP_QSTR_decode, + MP_QSTR_upper, + MP_QSTR_encode, + MP_QSTR_get_rotation, + MP_QSTR_from_bytes, + MP_QSTR_big, + MP_QSTR_set_rotation, + MP_QSTR_to_bytes, + MP_QSTR_get_label, + MP_QSTR_set_label, + MP_QSTR_get_mnemonic_secret, + MP_QSTR_get_backup_type, + MP_QSTR_BackupType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_get_uint8, + MP_QSTR_Bip39, + MP_QSTR_Slip39_Basic, + MP_QSTR_Slip39_Advanced, + MP_QSTR_is_passphrase_enabled, + MP_QSTR_set_passphrase_enabled, + MP_QSTR_set_bool, + MP_QSTR_set_homescreen, + MP_QSTR_store_mnemonic_secret, + MP_QSTR_STORAGE_VERSION_CURRENT, + MP_QSTR_set_uint8, + MP_QSTR_set_true_or_delete, + MP_QSTR_needs_backup, + MP_QSTR_set_backed_up, + MP_QSTR_delete, + MP_QSTR_unfinished_backup, + MP_QSTR_set_unfinished_backup, + MP_QSTR_no_backup, + MP_QSTR_get_passphrase_always_on_device, + MP_QSTR_set_passphrase_always_on_device, + MP_QSTR_get_flags, + MP_QSTR_set_flags, + MP_QSTR__normalize_autolock_delay, + MP_QSTR_get_autolock_delay_ms, + MP_QSTR_set_autolock_delay_ms, + MP_QSTR_next_u2f_counter, + MP_QSTR_next_counter, + MP_QSTR_writable_locked, + MP_QSTR_set_u2f_counter, + MP_QSTR_set_counter, + MP_QSTR_set_slip39_identifier, + MP_QSTR_set_uint16, + MP_QSTR_get_slip39_identifier, + MP_QSTR_get_uint16, + MP_QSTR_set_slip39_iteration_exponent, + MP_QSTR_get_slip39_iteration_exponent, + MP_QSTR_get_sd_salt_auth_key, + MP_QSTR_set_sd_salt_auth_key, + MP_QSTR_safety_check_level, + MP_QSTR_set_safety_check_level, + MP_QSTR__get_experimental_features, + MP_QSTR_get_experimental_features, + MP_QSTR_set_experimental_features, + MP_QSTR_set_hide_passphrase_from_host, + MP_QSTR_get_hide_passphrase_from_host, + MP_QSTR_storage_cache, + MP_QSTR__NAMESPACE, + MP_QSTR_DEVICE_ID, + MP_QSTR_U2F_COUNTER, + MP_QSTR_INITIALIZED, + MP_QSTR_SAFETY_CHECK_LEVEL_STRICT, + MP_QSTR_SAFETY_CHECK_LEVEL_PROMPT, + MP_QSTR__DEFAULT_SAFETY_CHECK_LEVEL, + MP_QSTR_HOMESCREEN_MAXSIZE, + MP_QSTR_LABEL_MAXLENGTH, + MP_QSTR_AUTOLOCK_DELAY_MINIMUM, + MP_QSTR_AUTOLOCK_DELAY_DEFAULT, + MP_QSTR_AUTOLOCK_DELAY_MAXIMUM, + MP_QSTR_SD_SALT_AUTH_KEY_LEN_BYTES, + MP_QSTR_bool, + MP_QSTR_version, + MP_QSTR_int, + MP_QSTR_value, + MP_QSTR_ValueError, + MP_QSTR_label, + MP_QSTR_len, + MP_QSTR_RuntimeError, + MP_QSTR_enable, + MP_QSTR_homescreen, + MP_QSTR_secret, + MP_QSTR_backup_type, + MP_QSTR_state, + MP_QSTR_flags, + MP_QSTR_delay_ms, + MP_QSTR_max, + MP_QSTR_min, + MP_QSTR_count, + MP_QSTR_identifier, + MP_QSTR_exponent, + MP_QSTR_auth_key, + MP_QSTR_level, + MP_QSTR_enabled, + MP_QSTR_hide, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_storage_device_0 = {{&mp_type_tuple}, 4, { + MP_ROM_INT(0), + MP_ROM_INT(90), + MP_ROM_INT(180), + MP_ROM_INT(270), +}}; +static const mp_obj_int_t const_obj_storage_device_1 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xffff,0xffff}}}; +static const mp_obj_str_t const_obj_storage_device_2 = {{&mp_type_bytes}, 46500, 1, (const byte*)"\x01"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_storage_device[4] = { + MP_ROM_PTR(&const_obj_storage_device_0), + MP_ROM_PTR(&const_obj_storage_device_1), + MP_ROM_PTR(&const_obj_storage_device_2), + MP_ROM_PTR(&mp_const_empty_bytes_obj), +}; + +static const mp_frozen_module_t frozen_module_storage_device = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_storage_device, + .obj_table = (mp_obj_t *)&const_obj_table_data_storage_device, + }, + .rc = &raw_code_storage_device__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module storage_fido2 +// - original source file: build/firmware/src/storage/fido2.mpy +// - frozen file name: storage/fido2.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file storage/fido2.py, scope storage_fido2__lt_module_gt_ +static const byte fun_data_storage_fido2__lt_module_gt_[40] = { + 0x18,0x0a, // prelude + 0x01, // names: + 0x80,0x07,0x6c,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'nist256p1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezorcrypto' + 0x1c,0x02, // IMPORT_FROM 'nist256p1' + 0x16,0x02, // STORE_NAME 'nist256p1' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'nist256p1' + 0x14,0x04, // LOAD_METHOD 'generate_secret' + 0x36,0x00, // CALL_METHOD 0 + 0x16,0x06, // STORE_NAME 'KEY_AGREEMENT_PRIVKEY' + 0x11,0x02, // LOAD_NAME 'nist256p1' + 0x14,0x05, // LOAD_METHOD 'publickey' + 0x11,0x06, // LOAD_NAME 'KEY_AGREEMENT_PRIVKEY' + 0x50, // LOAD_CONST_FALSE + 0x36,0x02, // CALL_METHOD 2 + 0x16,0x07, // STORE_NAME 'KEY_AGREEMENT_PUBKEY' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_fido2__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_fido2__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 40, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_storage_fido2__lt_module_gt_ + 3, + .line_info_top = fun_data_storage_fido2__lt_module_gt_ + 7, + .opcodes = fun_data_storage_fido2__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_storage_fido2[8] = { + MP_QSTR_storage_slash_fido2_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_nist256p1, + MP_QSTR_trezorcrypto, + MP_QSTR_generate_secret, + MP_QSTR_publickey, + MP_QSTR_KEY_AGREEMENT_PRIVKEY, + MP_QSTR_KEY_AGREEMENT_PUBKEY, +}; + +static const mp_frozen_module_t frozen_module_storage_fido2 = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_storage_fido2, + .obj_table = NULL, + }, + .rc = &raw_code_storage_fido2__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module storage_recovery +// - original source file: build/firmware/src/storage/recovery.mpy +// - frozen file name: storage/recovery.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file storage/recovery.py, scope storage_recovery__lt_module_gt_ +static const byte fun_data_storage_recovery__lt_module_gt_[127] = { + 0x08,0x42, // prelude + 0x01, // names: + 0x4c,0x6c,0x86,0x14,0x64,0x40,0x64,0x20,0x64,0x20,0x64,0x40,0x64,0x40,0x64,0x40,0x64,0x40,0x64,0x40,0x64,0x40,0x64,0x40,0x84,0x07,0x84,0x15,0x84,0x0b,0x84,0x0c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'common' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'storage' + 0x1c,0x04, // IMPORT_FROM 'common' + 0x16,0x04, // STORE_NAME 'common' + 0x59, // POP_TOP + 0x11,0x04, // LOAD_NAME 'common' + 0x13,0x06, // LOAD_ATTR 'APP_RECOVERY' + 0x16,0x23, // STORE_NAME '_NAMESPACE' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x07, // STORE_NAME '_require_progress' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x08, // STORE_NAME 'set_in_progress' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0a, // STORE_NAME 'is_in_progress' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x0c, // STORE_NAME 'set_dry_run' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x0d, // STORE_NAME 'is_dry_run' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x0e, // STORE_NAME 'set_slip39_identifier' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x10, // STORE_NAME 'get_slip39_identifier' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x12, // STORE_NAME 'set_slip39_iteration_exponent' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x14, // STORE_NAME 'get_slip39_iteration_exponent' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x16, // STORE_NAME 'set_slip39_group_count' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x17, // STORE_NAME 'get_slip39_group_count' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x18, // STORE_NAME 'set_slip39_remaining_shares' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x1d, // STORE_NAME 'get_slip39_remaining_shares' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x1e, // STORE_NAME 'fetch_slip39_remaining_shares' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x16,0x1f, // STORE_NAME 'end_progress' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of storage_recovery__lt_module_gt_ +// frozen bytecode for file storage/recovery.py, scope storage_recovery__require_progress +static const byte fun_data_storage_recovery__require_progress[17] = { + 0x00,0x08, // prelude + 0x07, // names: _require_progress + 0x80,0x1a,0x26, // code info + 0x12,0x0a, // LOAD_GLOBAL 'is_in_progress' + 0x34,0x00, // CALL_FUNCTION 0 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x12,0x24, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_recovery__require_progress = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_recovery__require_progress, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_storage_recovery__require_progress + 3, + .line_info_top = fun_data_storage_recovery__require_progress + 6, + .opcodes = fun_data_storage_recovery__require_progress + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_recovery__lt_module_gt_ +// frozen bytecode for file storage/recovery.py, scope storage_recovery_set_in_progress +static const byte fun_data_storage_recovery_set_in_progress[19] = { + 0x29,0x08, // prelude + 0x08,0x25, // names: set_in_progress, val + 0x80,0x1f, // code info + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x09, // LOAD_METHOD 'set_bool' + 0x12,0x23, // LOAD_GLOBAL '_NAMESPACE' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_recovery_set_in_progress = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_recovery_set_in_progress, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_storage_recovery_set_in_progress + 4, + .line_info_top = fun_data_storage_recovery_set_in_progress + 6, + .opcodes = fun_data_storage_recovery_set_in_progress + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_recovery__lt_module_gt_ +// frozen bytecode for file storage/recovery.py, scope storage_recovery_is_in_progress +static const byte fun_data_storage_recovery_is_in_progress[15] = { + 0x18,0x06, // prelude + 0x0a, // names: is_in_progress + 0x80,0x23, // code info + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x0b, // LOAD_METHOD 'get_bool' + 0x12,0x23, // LOAD_GLOBAL '_NAMESPACE' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_recovery_is_in_progress = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_recovery_is_in_progress, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_storage_recovery_is_in_progress + 3, + .line_info_top = fun_data_storage_recovery_is_in_progress + 5, + .opcodes = fun_data_storage_recovery_is_in_progress + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_recovery__lt_module_gt_ +// frozen bytecode for file storage/recovery.py, scope storage_recovery_set_dry_run +static const byte fun_data_storage_recovery_set_dry_run[25] = { + 0x29,0x0a, // prelude + 0x0c,0x25, // names: set_dry_run, val + 0x80,0x27,0x25, // code info + 0x12,0x07, // LOAD_GLOBAL '_require_progress' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x09, // LOAD_METHOD 'set_bool' + 0x12,0x23, // LOAD_GLOBAL '_NAMESPACE' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_recovery_set_dry_run = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_recovery_set_dry_run, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_storage_recovery_set_dry_run + 4, + .line_info_top = fun_data_storage_recovery_set_dry_run + 7, + .opcodes = fun_data_storage_recovery_set_dry_run + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_recovery__lt_module_gt_ +// frozen bytecode for file storage/recovery.py, scope storage_recovery_is_dry_run +static const byte fun_data_storage_recovery_is_dry_run[21] = { + 0x18,0x08, // prelude + 0x0d, // names: is_dry_run + 0x80,0x2c,0x25, // code info + 0x12,0x07, // LOAD_GLOBAL '_require_progress' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x0b, // LOAD_METHOD 'get_bool' + 0x12,0x23, // LOAD_GLOBAL '_NAMESPACE' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_recovery_is_dry_run = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_recovery_is_dry_run, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_storage_recovery_is_dry_run + 3, + .line_info_top = fun_data_storage_recovery_is_dry_run + 6, + .opcodes = fun_data_storage_recovery_is_dry_run + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_recovery__lt_module_gt_ +// frozen bytecode for file storage/recovery.py, scope storage_recovery_set_slip39_identifier +static const byte fun_data_storage_recovery_set_slip39_identifier[25] = { + 0x29,0x0a, // prelude + 0x0e,0x26, // names: set_slip39_identifier, identifier + 0x80,0x31,0x25, // code info + 0x12,0x07, // LOAD_GLOBAL '_require_progress' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x0f, // LOAD_METHOD 'set_uint16' + 0x12,0x23, // LOAD_GLOBAL '_NAMESPACE' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_recovery_set_slip39_identifier = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_recovery_set_slip39_identifier, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_storage_recovery_set_slip39_identifier + 4, + .line_info_top = fun_data_storage_recovery_set_slip39_identifier + 7, + .opcodes = fun_data_storage_recovery_set_slip39_identifier + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_recovery__lt_module_gt_ +// frozen bytecode for file storage/recovery.py, scope storage_recovery_get_slip39_identifier +static const byte fun_data_storage_recovery_get_slip39_identifier[21] = { + 0x18,0x08, // prelude + 0x10, // names: get_slip39_identifier + 0x80,0x36,0x25, // code info + 0x12,0x07, // LOAD_GLOBAL '_require_progress' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x11, // LOAD_METHOD 'get_uint16' + 0x12,0x23, // LOAD_GLOBAL '_NAMESPACE' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_recovery_get_slip39_identifier = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_recovery_get_slip39_identifier, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_storage_recovery_get_slip39_identifier + 3, + .line_info_top = fun_data_storage_recovery_get_slip39_identifier + 6, + .opcodes = fun_data_storage_recovery_get_slip39_identifier + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_recovery__lt_module_gt_ +// frozen bytecode for file storage/recovery.py, scope storage_recovery_set_slip39_iteration_exponent +static const byte fun_data_storage_recovery_set_slip39_iteration_exponent[25] = { + 0x29,0x0a, // prelude + 0x12,0x27, // names: set_slip39_iteration_exponent, exponent + 0x80,0x3b,0x25, // code info + 0x12,0x07, // LOAD_GLOBAL '_require_progress' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x13, // LOAD_METHOD 'set_uint8' + 0x12,0x23, // LOAD_GLOBAL '_NAMESPACE' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_recovery_set_slip39_iteration_exponent = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_recovery_set_slip39_iteration_exponent, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_storage_recovery_set_slip39_iteration_exponent + 4, + .line_info_top = fun_data_storage_recovery_set_slip39_iteration_exponent + 7, + .opcodes = fun_data_storage_recovery_set_slip39_iteration_exponent + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_recovery__lt_module_gt_ +// frozen bytecode for file storage/recovery.py, scope storage_recovery_get_slip39_iteration_exponent +static const byte fun_data_storage_recovery_get_slip39_iteration_exponent[21] = { + 0x18,0x08, // prelude + 0x14, // names: get_slip39_iteration_exponent + 0x80,0x40,0x25, // code info + 0x12,0x07, // LOAD_GLOBAL '_require_progress' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x15, // LOAD_METHOD 'get_uint8' + 0x12,0x23, // LOAD_GLOBAL '_NAMESPACE' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_recovery_get_slip39_iteration_exponent = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_recovery_get_slip39_iteration_exponent, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_storage_recovery_get_slip39_iteration_exponent + 3, + .line_info_top = fun_data_storage_recovery_get_slip39_iteration_exponent + 6, + .opcodes = fun_data_storage_recovery_get_slip39_iteration_exponent + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_recovery__lt_module_gt_ +// frozen bytecode for file storage/recovery.py, scope storage_recovery_set_slip39_group_count +static const byte fun_data_storage_recovery_set_slip39_group_count[25] = { + 0x29,0x0a, // prelude + 0x16,0x28, // names: set_slip39_group_count, group_count + 0x80,0x45,0x25, // code info + 0x12,0x07, // LOAD_GLOBAL '_require_progress' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x13, // LOAD_METHOD 'set_uint8' + 0x12,0x23, // LOAD_GLOBAL '_NAMESPACE' + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_recovery_set_slip39_group_count = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_recovery_set_slip39_group_count, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_storage_recovery_set_slip39_group_count + 4, + .line_info_top = fun_data_storage_recovery_set_slip39_group_count + 7, + .opcodes = fun_data_storage_recovery_set_slip39_group_count + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_recovery__lt_module_gt_ +// frozen bytecode for file storage/recovery.py, scope storage_recovery_get_slip39_group_count +static const byte fun_data_storage_recovery_get_slip39_group_count[25] = { + 0x18,0x0a, // prelude + 0x17, // names: get_slip39_group_count + 0x80,0x4a,0x25,0x20, // code info + 0x12,0x07, // LOAD_GLOBAL '_require_progress' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x15, // LOAD_METHOD 'get_uint8' + 0x12,0x23, // LOAD_GLOBAL '_NAMESPACE' + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x36,0x02, // CALL_METHOD 2 + 0x45,0x01, // JUMP_IF_TRUE_OR_POP 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_recovery_get_slip39_group_count = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_recovery_get_slip39_group_count, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_storage_recovery_get_slip39_group_count + 3, + .line_info_top = fun_data_storage_recovery_get_slip39_group_count + 7, + .opcodes = fun_data_storage_recovery_get_slip39_group_count + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_recovery__lt_module_gt_ +// frozen bytecode for file storage/recovery.py, scope storage_recovery_set_slip39_remaining_shares +static const byte fun_data_storage_recovery_set_slip39_remaining_shares[94] = { + 0x4a,0x22, // prelude + 0x18,0x29,0x2a, // names: set_slip39_remaining_shares, shares_remaining, group_index + 0x80,0x51,0x60,0x60,0x4b,0x25,0x2a,0x25,0x23,0x23,0x25,0x2a,0x26,0x24, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x19, // LOAD_CONST_STRING 'MAX_SHARE_COUNT' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1a, // IMPORT_NAME 'trezor.crypto.slip39' + 0x1c,0x19, // IMPORT_FROM 'MAX_SHARE_COUNT' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL '_require_progress' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x1b, // LOAD_METHOD 'get' + 0x12,0x23, // LOAD_GLOBAL '_NAMESPACE' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x36,0x02, // CALL_METHOD 2 + 0xc3, // STORE_FAST 3 + 0x12,0x17, // LOAD_GLOBAL 'get_slip39_group_count' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x12,0x24, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x2b, // LOAD_GLOBAL 'bytearray' + 0xb2, // LOAD_FAST 2 + 0x2b,0x01, // BUILD_LIST 1 + 0xb4, // LOAD_FAST 4 + 0xf4, // BINARY_OP 29 __mul__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x12,0x2b, // LOAD_GLOBAL 'bytearray' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x56, // STORE_SUBSCR + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x1c, // LOAD_METHOD 'set' + 0x12,0x23, // LOAD_GLOBAL '_NAMESPACE' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_recovery_set_slip39_remaining_shares = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_storage_recovery_set_slip39_remaining_shares, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 94, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 24, + .line_info = fun_data_storage_recovery_set_slip39_remaining_shares + 5, + .line_info_top = fun_data_storage_recovery_set_slip39_remaining_shares + 19, + .opcodes = fun_data_storage_recovery_set_slip39_remaining_shares + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_recovery__lt_module_gt_ +// frozen bytecode for file storage/recovery.py, scope storage_recovery_get_slip39_remaining_shares +static const byte fun_data_storage_recovery_get_slip39_remaining_shares[57] = { + 0x31,0x12, // prelude + 0x1d,0x2a, // names: get_slip39_remaining_shares, group_index + 0x80,0x66,0x4b,0x25,0x2a,0x2c,0x42, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x19, // LOAD_CONST_STRING 'MAX_SHARE_COUNT' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1a, // IMPORT_NAME 'trezor.crypto.slip39' + 0x1c,0x19, // IMPORT_FROM 'MAX_SHARE_COUNT' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL '_require_progress' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x1b, // LOAD_METHOD 'get' + 0x12,0x23, // LOAD_GLOBAL '_NAMESPACE' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_recovery_get_slip39_remaining_shares = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_recovery_get_slip39_remaining_shares, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_storage_recovery_get_slip39_remaining_shares + 4, + .line_info_top = fun_data_storage_recovery_get_slip39_remaining_shares + 11, + .opcodes = fun_data_storage_recovery_get_slip39_remaining_shares + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_recovery__lt_module_gt_ +// frozen bytecode for file storage/recovery.py, scope storage_recovery_fetch_slip39_remaining_shares +static const byte fun_data_storage_recovery_fetch_slip39_remaining_shares[54] = { + 0x28,0x14, // prelude + 0x1e, // names: fetch_slip39_remaining_shares + 0x80,0x71,0x25,0x2a,0x23,0x42,0x25,0x23,0x23, // code info + 0x12,0x07, // LOAD_GLOBAL '_require_progress' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x1b, // LOAD_METHOD 'get' + 0x12,0x23, // LOAD_GLOBAL '_NAMESPACE' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x36,0x02, // CALL_METHOD 2 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x17, // LOAD_GLOBAL 'get_slip39_group_count' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x12,0x24, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x12,0x2c, // LOAD_GLOBAL 'list' + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_recovery_fetch_slip39_remaining_shares = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_recovery_fetch_slip39_remaining_shares, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 54, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_storage_recovery_fetch_slip39_remaining_shares + 3, + .line_info_top = fun_data_storage_recovery_fetch_slip39_remaining_shares + 12, + .opcodes = fun_data_storage_recovery_fetch_slip39_remaining_shares + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_recovery__lt_module_gt_ +// frozen bytecode for file storage/recovery.py, scope storage_recovery_end_progress +static const byte fun_data_storage_recovery_end_progress[53] = { + 0x48,0x12, // prelude + 0x1f, // names: end_progress + 0x80,0x7d,0x4b,0x25,0x40,0x66,0x60,0x4c, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x20, // LOAD_CONST_STRING 'recovery_shares' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x21, // IMPORT_NAME '' + 0x1c,0x20, // IMPORT_FROM 'recovery_shares' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL '_require_progress' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0d, // FOR_ITER 13 + 0xc1, // STORE_FAST 1 + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x22, // LOAD_METHOD 'delete' + 0x12,0x23, // LOAD_GLOBAL '_NAMESPACE' + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x31, // JUMP -15 + 0xb0, // LOAD_FAST 0 + 0x14,0x22, // LOAD_METHOD 'delete' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_recovery_end_progress = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_recovery_end_progress, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 53, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_storage_recovery_end_progress + 3, + .line_info_top = fun_data_storage_recovery_end_progress + 11, + .opcodes = fun_data_storage_recovery_end_progress + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_storage_recovery__lt_module_gt_[] = { + &raw_code_storage_recovery__require_progress, + &raw_code_storage_recovery_set_in_progress, + &raw_code_storage_recovery_is_in_progress, + &raw_code_storage_recovery_set_dry_run, + &raw_code_storage_recovery_is_dry_run, + &raw_code_storage_recovery_set_slip39_identifier, + &raw_code_storage_recovery_get_slip39_identifier, + &raw_code_storage_recovery_set_slip39_iteration_exponent, + &raw_code_storage_recovery_get_slip39_iteration_exponent, + &raw_code_storage_recovery_set_slip39_group_count, + &raw_code_storage_recovery_get_slip39_group_count, + &raw_code_storage_recovery_set_slip39_remaining_shares, + &raw_code_storage_recovery_get_slip39_remaining_shares, + &raw_code_storage_recovery_fetch_slip39_remaining_shares, + &raw_code_storage_recovery_end_progress, +}; + +static const mp_raw_code_t raw_code_storage_recovery__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_recovery__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 127, + #endif + .children = (void *)&children_storage_recovery__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 15, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_storage_recovery__lt_module_gt_ + 3, + .line_info_top = fun_data_storage_recovery__lt_module_gt_ + 35, + .opcodes = fun_data_storage_recovery__lt_module_gt_ + 35, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_storage_recovery[45] = { + MP_QSTR_storage_slash_recovery_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_common, + MP_QSTR_storage, + MP_QSTR_APP_RECOVERY, + MP_QSTR__require_progress, + MP_QSTR_set_in_progress, + MP_QSTR_set_bool, + MP_QSTR_is_in_progress, + MP_QSTR_get_bool, + MP_QSTR_set_dry_run, + MP_QSTR_is_dry_run, + MP_QSTR_set_slip39_identifier, + MP_QSTR_set_uint16, + MP_QSTR_get_slip39_identifier, + MP_QSTR_get_uint16, + MP_QSTR_set_slip39_iteration_exponent, + MP_QSTR_set_uint8, + MP_QSTR_get_slip39_iteration_exponent, + MP_QSTR_get_uint8, + MP_QSTR_set_slip39_group_count, + MP_QSTR_get_slip39_group_count, + MP_QSTR_set_slip39_remaining_shares, + MP_QSTR_MAX_SHARE_COUNT, + MP_QSTR_trezor_dot_crypto_dot_slip39, + MP_QSTR_get, + MP_QSTR_set, + MP_QSTR_get_slip39_remaining_shares, + MP_QSTR_fetch_slip39_remaining_shares, + MP_QSTR_end_progress, + MP_QSTR_recovery_shares, + MP_QSTR_, + MP_QSTR_delete, + MP_QSTR__NAMESPACE, + MP_QSTR_RuntimeError, + MP_QSTR_val, + MP_QSTR_identifier, + MP_QSTR_exponent, + MP_QSTR_group_count, + MP_QSTR_shares_remaining, + MP_QSTR_group_index, + MP_QSTR_bytearray, + MP_QSTR_list, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_storage_recovery_0 = {{&mp_type_tuple}, 6, { + MP_ROM_INT(0), + MP_ROM_INT(1), + MP_ROM_INT(3), + MP_ROM_INT(5), + MP_ROM_INT(6), + MP_ROM_INT(7), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_storage_recovery[1] = { + MP_ROM_PTR(&const_obj_storage_recovery_0), +}; + +static const mp_frozen_module_t frozen_module_storage_recovery = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_storage_recovery, + .obj_table = (mp_obj_t *)&const_obj_table_data_storage_recovery, + }, + .rc = &raw_code_storage_recovery__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module storage_recovery_shares +// - original source file: build/firmware/src/storage/recovery_shares.mpy +// - frozen file name: storage/recovery_shares.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file storage/recovery_shares.py, scope storage_recovery_shares__lt_module_gt_ +static const byte fun_data_storage_recovery_shares__lt_module_gt_[54] = { + 0x08,0x14, // prelude + 0x01, // names: + 0x2c,0x6c,0x60,0x84,0x08,0x84,0x09,0x84,0x0a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'common' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'storage' + 0x1c,0x02, // IMPORT_FROM 'common' + 0x16,0x02, // STORE_NAME 'common' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'slip39' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x04, // IMPORT_FROM 'slip39' + 0x16,0x04, // STORE_NAME 'slip39' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x06, // STORE_NAME 'set' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0a, // STORE_NAME 'get' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0c, // STORE_NAME 'fetch_group' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x0e, // STORE_NAME 'delete' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of storage_recovery_shares__lt_module_gt_ +// frozen bytecode for file storage/recovery_shares.py, scope storage_recovery_shares_set +static const byte fun_data_storage_recovery_shares_set[37] = { + 0x43,0x12, // prelude + 0x06,0x10,0x11,0x12, // names: set, index, group_index, mnemonic + 0x80,0x08,0x24,0x24,0x28, // code info + 0x12,0x02, // LOAD_GLOBAL 'common' + 0x14,0x06, // LOAD_METHOD 'set' + 0x12,0x02, // LOAD_GLOBAL 'common' + 0x13,0x07, // LOAD_ATTR 'APP_RECOVERY_SHARES' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x12,0x04, // LOAD_GLOBAL 'slip39' + 0x13,0x08, // LOAD_ATTR 'MAX_SHARE_COUNT' + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0xb2, // LOAD_FAST 2 + 0x14,0x09, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_recovery_shares_set = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_storage_recovery_shares_set, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_storage_recovery_shares_set + 6, + .line_info_top = fun_data_storage_recovery_shares_set + 11, + .opcodes = fun_data_storage_recovery_shares_set + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_recovery_shares__lt_module_gt_ +// frozen bytecode for file storage/recovery_shares.py, scope storage_recovery_shares_get +static const byte fun_data_storage_recovery_shares_get[41] = { + 0x42,0x12, // prelude + 0x0a,0x10,0x11, // names: get, index, group_index + 0x80,0x10,0x24,0x4f,0x23,0x26, // code info + 0x12,0x02, // LOAD_GLOBAL 'common' + 0x14,0x0a, // LOAD_METHOD 'get' + 0x12,0x02, // LOAD_GLOBAL 'common' + 0x13,0x07, // LOAD_ATTR 'APP_RECOVERY_SHARES' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x12,0x04, // LOAD_GLOBAL 'slip39' + 0x13,0x08, // LOAD_ATTR 'MAX_SHARE_COUNT' + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb2, // LOAD_FAST 2 + 0x14,0x0b, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_recovery_shares_get = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_storage_recovery_shares_get, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_storage_recovery_shares_get + 5, + .line_info_top = fun_data_storage_recovery_shares_get + 11, + .opcodes = fun_data_storage_recovery_shares_get + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_recovery_shares__lt_module_gt_ +// frozen bytecode for file storage/recovery_shares.py, scope storage_recovery_shares_fetch_group +static const byte fun_data_storage_recovery_shares_fetch_group[51] = { + 0x41,0x12, // prelude + 0x0c,0x11, // names: fetch_group, group_index + 0x80,0x19,0x23,0x29,0x27,0x23,0x50, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xc1, // STORE_FAST 1 + 0x12,0x04, // LOAD_GLOBAL 'slip39' + 0x13,0x08, // LOAD_ATTR 'MAX_SHARE_COUNT' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x55, // JUMP 21 + 0x57, // DUP_TOP + 0xc2, // STORE_FAST 2 + 0x12,0x0a, // LOAD_GLOBAL 'get' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb1, // LOAD_FAST 1 + 0x14,0x0d, // LOAD_METHOD 'append' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x26, // POP_JUMP_IF_TRUE -26 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_recovery_shares_fetch_group = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_recovery_shares_fetch_group, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_storage_recovery_shares_fetch_group + 4, + .line_info_top = fun_data_storage_recovery_shares_fetch_group + 11, + .opcodes = fun_data_storage_recovery_shares_fetch_group + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_recovery_shares__lt_module_gt_ +// frozen bytecode for file storage/recovery_shares.py, scope storage_recovery_shares_delete +static const byte fun_data_storage_recovery_shares_delete[43] = { + 0x30,0x08, // prelude + 0x0e, // names: delete + 0x80,0x23,0x2e, // code info + 0x12,0x04, // LOAD_GLOBAL 'slip39' + 0x13,0x08, // LOAD_ATTR 'MAX_SHARE_COUNT' + 0x12,0x04, // LOAD_GLOBAL 'slip39' + 0x13,0x0f, // LOAD_ATTR 'MAX_GROUP_COUNT' + 0xf4, // BINARY_OP 29 __mul__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x50, // JUMP 16 + 0x57, // DUP_TOP + 0xc0, // STORE_FAST 0 + 0x12,0x02, // LOAD_GLOBAL 'common' + 0x14,0x0e, // LOAD_METHOD 'delete' + 0x12,0x02, // LOAD_GLOBAL 'common' + 0x13,0x07, // LOAD_ATTR 'APP_RECOVERY_SHARES' + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2b, // POP_JUMP_IF_TRUE -21 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_recovery_shares_delete = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_recovery_shares_delete, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_storage_recovery_shares_delete + 3, + .line_info_top = fun_data_storage_recovery_shares_delete + 6, + .opcodes = fun_data_storage_recovery_shares_delete + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_storage_recovery_shares__lt_module_gt_[] = { + &raw_code_storage_recovery_shares_set, + &raw_code_storage_recovery_shares_get, + &raw_code_storage_recovery_shares_fetch_group, + &raw_code_storage_recovery_shares_delete, +}; + +static const mp_raw_code_t raw_code_storage_recovery_shares__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_recovery_shares__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 54, + #endif + .children = (void *)&children_storage_recovery_shares__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_storage_recovery_shares__lt_module_gt_ + 3, + .line_info_top = fun_data_storage_recovery_shares__lt_module_gt_ + 12, + .opcodes = fun_data_storage_recovery_shares__lt_module_gt_ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_storage_recovery_shares[19] = { + MP_QSTR_storage_slash_recovery_shares_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_common, + MP_QSTR_storage, + MP_QSTR_slip39, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_set, + MP_QSTR_APP_RECOVERY_SHARES, + MP_QSTR_MAX_SHARE_COUNT, + MP_QSTR_encode, + MP_QSTR_get, + MP_QSTR_decode, + MP_QSTR_fetch_group, + MP_QSTR_append, + MP_QSTR_delete, + MP_QSTR_MAX_GROUP_COUNT, + MP_QSTR_index, + MP_QSTR_group_index, + MP_QSTR_mnemonic, +}; + +static const mp_frozen_module_t frozen_module_storage_recovery_shares = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_storage_recovery_shares, + .obj_table = NULL, + }, + .rc = &raw_code_storage_recovery_shares__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module storage_resident_credentials +// - original source file: build/firmware/src/storage/resident_credentials.mpy +// - frozen file name: storage/resident_credentials.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file storage/resident_credentials.py, scope storage_resident_credentials__lt_module_gt_ +static const byte fun_data_storage_resident_credentials__lt_module_gt_[60] = { + 0x08,0x16, // prelude + 0x01, // names: + 0x4c,0x6c,0x20,0x65,0x84,0x07,0x84,0x07,0x84,0x07, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'common' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'storage' + 0x1c,0x04, // IMPORT_FROM 'common' + 0x16,0x04, // STORE_NAME 'common' + 0x59, // POP_TOP + 0x22,0x80,0x64, // LOAD_CONST_SMALL_INT 100 + 0x16,0x0b, // STORE_NAME 'MAX_RESIDENT_CREDENTIALS' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x06, // STORE_NAME 'get' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x08, // STORE_NAME 'set' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x09, // STORE_NAME 'delete' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x0a, // STORE_NAME 'delete_all' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of storage_resident_credentials__lt_module_gt_ +// frozen bytecode for file storage/resident_credentials.py, scope storage_resident_credentials_get +static const byte fun_data_storage_resident_credentials_get[42] = { + 0x29,0x0c, // prelude + 0x06,0x0c, // names: get, index + 0x80,0x0a,0x31,0x43, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0x22,0x80,0x64, // LOAD_CONST_SMALL_INT 100 + 0xd7, // BINARY_OP 0 __lt__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x12,0x0d, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x06, // LOAD_METHOD 'get' + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x13,0x07, // LOAD_ATTR 'APP_WEBAUTHN' + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_resident_credentials_get = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_resident_credentials_get, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_storage_resident_credentials_get + 4, + .line_info_top = fun_data_storage_resident_credentials_get + 8, + .opcodes = fun_data_storage_resident_credentials_get + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_resident_credentials__lt_module_gt_ +// frozen bytecode for file storage/resident_credentials.py, scope storage_resident_credentials_set +static const byte fun_data_storage_resident_credentials_set[46] = { + 0x32,0x0e, // prelude + 0x08,0x0c,0x0e, // names: set, index, data + 0x80,0x11,0x31,0x43, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0x22,0x80,0x64, // LOAD_CONST_SMALL_INT 100 + 0xd7, // BINARY_OP 0 __lt__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x12,0x0d, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x08, // LOAD_METHOD 'set' + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x13,0x07, // LOAD_ATTR 'APP_WEBAUTHN' + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb1, // LOAD_FAST 1 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_resident_credentials_set = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_storage_resident_credentials_set, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_storage_resident_credentials_set + 5, + .line_info_top = fun_data_storage_resident_credentials_set + 9, + .opcodes = fun_data_storage_resident_credentials_set + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_resident_credentials__lt_module_gt_ +// frozen bytecode for file storage/resident_credentials.py, scope storage_resident_credentials_delete +static const byte fun_data_storage_resident_credentials_delete[44] = { + 0x29,0x0c, // prelude + 0x09,0x0c, // names: delete, index + 0x80,0x18,0x31,0x43, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0x22,0x80,0x64, // LOAD_CONST_SMALL_INT 100 + 0xd7, // BINARY_OP 0 __lt__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x12,0x0d, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x09, // LOAD_METHOD 'delete' + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x13,0x07, // LOAD_ATTR 'APP_WEBAUTHN' + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_resident_credentials_delete = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_resident_credentials_delete, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_storage_resident_credentials_delete + 4, + .line_info_top = fun_data_storage_resident_credentials_delete + 8, + .opcodes = fun_data_storage_resident_credentials_delete + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_resident_credentials__lt_module_gt_ +// frozen bytecode for file storage/resident_credentials.py, scope storage_resident_credentials_delete_all +static const byte fun_data_storage_resident_credentials_delete_all[37] = { + 0x30,0x08, // prelude + 0x0a, // names: delete_all + 0x80,0x1f,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x52, // JUMP 18 + 0x57, // DUP_TOP + 0xc0, // STORE_FAST 0 + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x09, // LOAD_METHOD 'delete' + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x13,0x07, // LOAD_ATTR 'APP_WEBAUTHN' + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x57, // DUP_TOP + 0x22,0x80,0x64, // LOAD_CONST_SMALL_INT 100 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x27, // POP_JUMP_IF_TRUE -25 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_resident_credentials_delete_all = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_resident_credentials_delete_all, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_storage_resident_credentials_delete_all + 3, + .line_info_top = fun_data_storage_resident_credentials_delete_all + 6, + .opcodes = fun_data_storage_resident_credentials_delete_all + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_storage_resident_credentials__lt_module_gt_[] = { + &raw_code_storage_resident_credentials_get, + &raw_code_storage_resident_credentials_set, + &raw_code_storage_resident_credentials_delete, + &raw_code_storage_resident_credentials_delete_all, +}; + +static const mp_raw_code_t raw_code_storage_resident_credentials__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_resident_credentials__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 60, + #endif + .children = (void *)&children_storage_resident_credentials__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_storage_resident_credentials__lt_module_gt_ + 3, + .line_info_top = fun_data_storage_resident_credentials__lt_module_gt_ + 13, + .opcodes = fun_data_storage_resident_credentials__lt_module_gt_ + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_storage_resident_credentials[15] = { + MP_QSTR_storage_slash_resident_credentials_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_common, + MP_QSTR_storage, + MP_QSTR_get, + MP_QSTR_APP_WEBAUTHN, + MP_QSTR_set, + MP_QSTR_delete, + MP_QSTR_delete_all, + MP_QSTR_MAX_RESIDENT_CREDENTIALS, + MP_QSTR_index, + MP_QSTR_ValueError, + MP_QSTR_data, +}; + +static const mp_frozen_module_t frozen_module_storage_resident_credentials = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_storage_resident_credentials, + .obj_table = NULL, + }, + .rc = &raw_code_storage_resident_credentials__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module storage_sd_salt +// - original source file: build/firmware/src/storage/sd_salt.mpy +// - frozen file name: storage/sd_salt.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file storage/sd_salt.py, scope storage_sd_salt__lt_module_gt_ +static const byte fun_data_storage_sd_salt__lt_module_gt_[175] = { + 0x18,0x3c, // prelude + 0x01, // names: + 0x6c,0x26,0x32,0x4c,0x60,0x40,0x26,0x46,0x23,0x63,0x20,0x6b,0x20,0x64,0x20,0x84,0x07,0x64,0x20,0x68,0x40,0x88,0x16,0x88,0x21,0x8c,0x0a,0x88,0x0c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x04, // IMPORT_NAME 'storage.device' + 0x16,0x2f, // STORE_NAME 'storage' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'io' + 0x10,0x06, // LOAD_CONST_STRING 'utils' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x07, // IMPORT_NAME 'trezor' + 0x1c,0x05, // IMPORT_FROM 'io' + 0x16,0x05, // STORE_NAME 'io' + 0x1c,0x06, // IMPORT_FROM 'utils' + 0x16,0x06, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'with_filesystem' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.sdcard' + 0x1c,0x08, // IMPORT_FROM 'with_filesystem' + 0x16,0x08, // STORE_NAME 'with_filesystem' + 0x59, // POP_TOP + 0x11,0x06, // LOAD_NAME 'utils' + 0x13,0x0a, // LOAD_ATTR 'USE_SD_CARD' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x11,0x05, // LOAD_NAME 'io' + 0x13,0x0b, // LOAD_ATTR 'fatfs' + 0x16,0x0b, // STORE_NAME 'fatfs' + 0x50, // LOAD_CONST_FALSE + 0x16,0x30, // STORE_NAME 'SD_CARD_HOT_SWAPPABLE' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x16,0x31, // STORE_NAME 'SD_SALT_LEN_BYTES' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x0c, // LOAD_CONST_STRING 'WrongSdCard' + 0x11,0x32, // LOAD_NAME 'Exception' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0c, // STORE_NAME 'WrongSdCard' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0d, // STORE_NAME 'is_enabled' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x10, // STORE_NAME 'compute_auth_tag' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x15, // STORE_NAME '_get_device_dir' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x04, // MAKE_FUNCTION_DEFARGS 4 + 0x16,0x19, // STORE_NAME '_get_salt_path' + 0x11,0x08, // LOAD_NAME 'with_filesystem' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x1d, // STORE_NAME '_load_salt' + 0x11,0x08, // LOAD_NAME 'with_filesystem' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x24, // STORE_NAME 'load_sd_salt' + 0x11,0x08, // LOAD_NAME 'with_filesystem' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x07, // MAKE_FUNCTION_DEFARGS 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x28, // STORE_NAME 'set_sd_salt' + 0x11,0x08, // LOAD_NAME 'with_filesystem' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x2d, // STORE_NAME 'commit_sd_salt' + 0x11,0x08, // LOAD_NAME 'with_filesystem' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x2e, // STORE_NAME 'remove_sd_salt' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of storage_sd_salt__lt_module_gt_ +// frozen bytecode for file storage/sd_salt.py, scope storage_sd_salt_WrongSdCard +static const byte fun_data_storage_sd_salt_WrongSdCard[15] = { + 0x00,0x06, // prelude + 0x0c, // names: WrongSdCard + 0x88,0x15, // code info + 0x11,0x33, // LOAD_NAME '__name__' + 0x16,0x34, // STORE_NAME '__module__' + 0x10,0x0c, // LOAD_CONST_STRING 'WrongSdCard' + 0x16,0x35, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_sd_salt_WrongSdCard = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_sd_salt_WrongSdCard, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_storage_sd_salt_WrongSdCard + 3, + .line_info_top = fun_data_storage_sd_salt_WrongSdCard + 5, + .opcodes = fun_data_storage_sd_salt_WrongSdCard + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_sd_salt__lt_module_gt_ +// frozen bytecode for file storage/sd_salt.py, scope storage_sd_salt_is_enabled +static const byte fun_data_storage_sd_salt_is_enabled[17] = { + 0x08,0x06, // prelude + 0x0d, // names: is_enabled + 0x80,0x19, // code info + 0x12,0x2f, // LOAD_GLOBAL 'storage' + 0x13,0x0e, // LOAD_ATTR 'device' + 0x14,0x0f, // LOAD_METHOD 'get_sd_salt_auth_key' + 0x36,0x00, // CALL_METHOD 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_sd_salt_is_enabled = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_sd_salt_is_enabled, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_storage_sd_salt_is_enabled + 3, + .line_info_top = fun_data_storage_sd_salt_is_enabled + 5, + .opcodes = fun_data_storage_sd_salt_is_enabled + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_sd_salt__lt_module_gt_ +// frozen bytecode for file storage/sd_salt.py, scope storage_sd_salt_compute_auth_tag +static const byte fun_data_storage_sd_salt_compute_auth_tag[40] = { + 0x3a,0x0e, // prelude + 0x10,0x36,0x37, // names: compute_auth_tag, salt, auth_key + 0x80,0x1d,0x4b,0x2d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'hmac' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x12, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x11, // IMPORT_FROM 'hmac' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x13,0x13, // LOAD_ATTR 'SHA256' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x03, // CALL_FUNCTION 3 + 0x14,0x14, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_sd_salt_compute_auth_tag = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_storage_sd_salt_compute_auth_tag, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 40, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_storage_sd_salt_compute_auth_tag + 5, + .line_info_top = fun_data_storage_sd_salt_compute_auth_tag + 9, + .opcodes = fun_data_storage_sd_salt_compute_auth_tag + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_sd_salt__lt_module_gt_ +// frozen bytecode for file storage/sd_salt.py, scope storage_sd_salt__get_device_dir +static const byte fun_data_storage_sd_salt__get_device_dir[24] = { + 0x18,0x06, // prelude + 0x15, // names: _get_device_dir + 0x80,0x24, // code info + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x14,0x16, // LOAD_METHOD 'format' + 0x12,0x2f, // LOAD_GLOBAL 'storage' + 0x13,0x0e, // LOAD_ATTR 'device' + 0x14,0x17, // LOAD_METHOD 'get_device_id' + 0x36,0x00, // CALL_METHOD 0 + 0x14,0x18, // LOAD_METHOD 'lower' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_sd_salt__get_device_dir = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_sd_salt__get_device_dir, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_storage_sd_salt__get_device_dir + 3, + .line_info_top = fun_data_storage_sd_salt__get_device_dir + 5, + .opcodes = fun_data_storage_sd_salt__get_device_dir + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_sd_salt__lt_module_gt_ +// frozen bytecode for file storage/sd_salt.py, scope storage_sd_salt__get_salt_path +static const byte fun_data_storage_sd_salt__get_salt_path[30] = { + 0xa9,0x01,0x0a, // prelude + 0x19,0x25, // names: _get_salt_path, new + 0x80,0x28,0x2a, // code info + 0xb0, // LOAD_FAST 0 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x10,0x1a, // LOAD_CONST_STRING '.new' + 0x42,0x42, // JUMP 2 + 0x10,0x1b, // LOAD_CONST_STRING '' + 0xc1, // STORE_FAST 1 + 0x10,0x1c, // LOAD_CONST_STRING '{}/salt{}' + 0x14,0x16, // LOAD_METHOD 'format' + 0x12,0x15, // LOAD_GLOBAL '_get_device_dir' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_sd_salt__get_salt_path = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_storage_sd_salt__get_salt_path, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 25, + .line_info = fun_data_storage_sd_salt__get_salt_path + 5, + .line_info_top = fun_data_storage_sd_salt__get_salt_path + 8, + .opcodes = fun_data_storage_sd_salt__get_salt_path + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_sd_salt__lt_module_gt_ +// frozen bytecode for file storage/sd_salt.py, scope storage_sd_salt__load_salt +static const byte fun_data_storage_sd_salt__load_salt[108] = { + 0xe2,0x02,0x22, // prelude + 0x1d,0x37,0x38, // names: _load_salt, auth_key, path + 0x80,0x2e,0x6b,0x22,0x2c,0x26,0x26,0x27,0x2d,0x28,0x65,0x27,0x27,0x42, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1e, // LOAD_CONST_STRING 'consteq' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1f, // IMPORT_NAME 'trezor.utils' + 0x1c,0x1e, // IMPORT_FROM 'consteq' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x48,0x2b, // SETUP_EXCEPT 43 + 0x12,0x0b, // LOAD_GLOBAL 'fatfs' + 0x14,0x20, // LOAD_METHOD 'open' + 0xb1, // LOAD_FAST 1 + 0x10,0x21, // LOAD_CONST_STRING 'r' + 0x36,0x02, // CALL_METHOD 2 + 0x47,0x1c, // SETUP_WITH 28 + 0xc3, // STORE_FAST 3 + 0x12,0x39, // LOAD_GLOBAL 'bytearray' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0x12,0x39, // LOAD_GLOBAL 'bytearray' + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x14,0x22, // LOAD_METHOD 'read' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x22, // LOAD_METHOD 'read' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x4a,0x0e, // POP_EXCEPT_JUMP 14 + 0x57, // DUP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'fatfs' + 0x13,0x23, // LOAD_ATTR 'FatFSError' + 0xdf, // BINARY_OP 8 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x12,0x10, // LOAD_GLOBAL 'compute_auth_tag' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc6, // STORE_FAST 6 + 0xb2, // LOAD_FAST 2 + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_sd_salt__load_salt = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_storage_sd_salt__load_salt, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 108, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 2, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_storage_sd_salt__load_salt + 6, + .line_info_top = fun_data_storage_sd_salt__load_salt + 20, + .opcodes = fun_data_storage_sd_salt__load_salt + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_sd_salt__lt_module_gt_ +// frozen bytecode for file storage/sd_salt.py, scope storage_sd_salt_load_sd_salt +static const byte fun_data_storage_sd_salt_load_sd_salt[118] = { + 0x4c,0x2a, // prelude + 0x24, // names: load_sd_salt + 0x80,0x44,0x29,0x25,0x42,0x25,0x49,0x27,0x26,0x62,0x27,0x45,0x63,0x40,0x22,0x2b,0x28,0x63,0x20,0x29, // code info + 0x12,0x2f, // LOAD_GLOBAL 'storage' + 0x13,0x0e, // LOAD_ATTR 'device' + 0x14,0x0f, // LOAD_METHOD 'get_sd_salt_auth_key' + 0x36,0x00, // CALL_METHOD 0 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x19, // LOAD_GLOBAL '_get_salt_path' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc1, // STORE_FAST 1 + 0x12,0x19, // LOAD_GLOBAL '_get_salt_path' + 0x10,0x25, // LOAD_CONST_STRING 'new' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0xc2, // STORE_FAST 2 + 0x12,0x1d, // LOAD_GLOBAL '_load_salt' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE + 0x12,0x1d, // LOAD_GLOBAL '_load_salt' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x0c, // LOAD_GLOBAL 'WrongSdCard' + 0x65, // RAISE_OBJ + 0x48,0x0a, // SETUP_EXCEPT 10 + 0x12,0x0b, // LOAD_GLOBAL 'fatfs' + 0x14,0x26, // LOAD_METHOD 'unlink' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x4a,0x0c, // POP_EXCEPT_JUMP 12 + 0x57, // DUP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'fatfs' + 0x13,0x23, // LOAD_ATTR 'FatFSError' + 0xdf, // BINARY_OP 8 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x59, // POP_TOP + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x12,0x0b, // LOAD_GLOBAL 'fatfs' + 0x14,0x27, // LOAD_METHOD 'rename' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_sd_salt_load_sd_salt = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_sd_salt_load_sd_salt, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 118, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_storage_sd_salt_load_sd_salt + 3, + .line_info_top = fun_data_storage_sd_salt_load_sd_salt + 23, + .opcodes = fun_data_storage_sd_salt_load_sd_salt + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_sd_salt__lt_module_gt_ +// frozen bytecode for file storage/sd_salt.py, scope storage_sd_salt_set_sd_salt +static const byte fun_data_storage_sd_salt_set_sd_salt[73] = { + 0xcf,0x01,0x16, // prelude + 0x28,0x36,0x3a,0x3b, // names: set_sd_salt, salt, salt_tag, stage + 0x80,0x65,0x26,0x2a,0x2c,0x2c,0x27, // code info + 0x12,0x19, // LOAD_GLOBAL '_get_salt_path' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x12,0x0b, // LOAD_GLOBAL 'fatfs' + 0x14,0x29, // LOAD_METHOD 'mkdir' + 0x10,0x2a, // LOAD_CONST_STRING '/trezor' + 0x52, // LOAD_CONST_TRUE + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'fatfs' + 0x14,0x29, // LOAD_METHOD 'mkdir' + 0x12,0x15, // LOAD_GLOBAL '_get_device_dir' + 0x34,0x00, // CALL_FUNCTION 0 + 0x52, // LOAD_CONST_TRUE + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'fatfs' + 0x14,0x20, // LOAD_METHOD 'open' + 0xb3, // LOAD_FAST 3 + 0x10,0x2b, // LOAD_CONST_STRING 'w' + 0x36,0x02, // CALL_METHOD 2 + 0x47,0x10, // SETUP_WITH 16 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x14,0x2c, // LOAD_METHOD 'write' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x2c, // LOAD_METHOD 'write' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_sd_salt_set_sd_salt = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_storage_sd_salt_set_sd_salt, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 73, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 40, + .line_info = fun_data_storage_sd_salt_set_sd_salt + 7, + .line_info_top = fun_data_storage_sd_salt_set_sd_salt + 14, + .opcodes = fun_data_storage_sd_salt_set_sd_salt + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_sd_salt__lt_module_gt_ +// frozen bytecode for file storage/sd_salt.py, scope storage_sd_salt_commit_sd_salt +static const byte fun_data_storage_sd_salt_commit_sd_salt[64] = { + 0x3c,0x12, // prelude + 0x2d, // names: commit_sd_salt + 0x80,0x6f,0x29,0x49,0x22,0x2b,0x28,0x23, // code info + 0x12,0x19, // LOAD_GLOBAL '_get_salt_path' + 0x10,0x25, // LOAD_CONST_STRING 'new' + 0x50, // LOAD_CONST_FALSE + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0xc0, // STORE_FAST 0 + 0x12,0x19, // LOAD_GLOBAL '_get_salt_path' + 0x10,0x25, // LOAD_CONST_STRING 'new' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0xc1, // STORE_FAST 1 + 0x48,0x0a, // SETUP_EXCEPT 10 + 0x12,0x0b, // LOAD_GLOBAL 'fatfs' + 0x14,0x26, // LOAD_METHOD 'unlink' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x4a,0x0c, // POP_EXCEPT_JUMP 12 + 0x57, // DUP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'fatfs' + 0x13,0x23, // LOAD_ATTR 'FatFSError' + 0xdf, // BINARY_OP 8 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x59, // POP_TOP + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x12,0x0b, // LOAD_GLOBAL 'fatfs' + 0x14,0x27, // LOAD_METHOD 'rename' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_sd_salt_commit_sd_salt = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_sd_salt_commit_sd_salt, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 64, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_storage_sd_salt_commit_sd_salt + 3, + .line_info_top = fun_data_storage_sd_salt_commit_sd_salt + 11, + .opcodes = fun_data_storage_sd_salt_commit_sd_salt + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of storage_sd_salt__lt_module_gt_ +// frozen bytecode for file storage/sd_salt.py, scope storage_sd_salt_remove_sd_salt +static const byte fun_data_storage_sd_salt_remove_sd_salt[21] = { + 0x18,0x08, // prelude + 0x2e, // names: remove_sd_salt + 0x80,0x7b,0x45, // code info + 0x12,0x19, // LOAD_GLOBAL '_get_salt_path' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc0, // STORE_FAST 0 + 0x12,0x0b, // LOAD_GLOBAL 'fatfs' + 0x14,0x26, // LOAD_METHOD 'unlink' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_storage_sd_salt_remove_sd_salt = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_sd_salt_remove_sd_salt, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_storage_sd_salt_remove_sd_salt + 3, + .line_info_top = fun_data_storage_sd_salt_remove_sd_salt + 6, + .opcodes = fun_data_storage_sd_salt_remove_sd_salt + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_storage_sd_salt__lt_module_gt_[] = { + &raw_code_storage_sd_salt_WrongSdCard, + &raw_code_storage_sd_salt_is_enabled, + &raw_code_storage_sd_salt_compute_auth_tag, + &raw_code_storage_sd_salt__get_device_dir, + &raw_code_storage_sd_salt__get_salt_path, + &raw_code_storage_sd_salt__load_salt, + &raw_code_storage_sd_salt_load_sd_salt, + &raw_code_storage_sd_salt_set_sd_salt, + &raw_code_storage_sd_salt_commit_sd_salt, + &raw_code_storage_sd_salt_remove_sd_salt, +}; + +static const mp_raw_code_t raw_code_storage_sd_salt__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_storage_sd_salt__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 175, + #endif + .children = (void *)&children_storage_sd_salt__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 10, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_storage_sd_salt__lt_module_gt_ + 3, + .line_info_top = fun_data_storage_sd_salt__lt_module_gt_ + 32, + .opcodes = fun_data_storage_sd_salt__lt_module_gt_ + 32, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_storage_sd_salt[60] = { + MP_QSTR_storage_slash_sd_salt_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_storage_dot_device, + MP_QSTR_io, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_with_filesystem, + MP_QSTR_trezor_dot_sdcard, + MP_QSTR_USE_SD_CARD, + MP_QSTR_fatfs, + MP_QSTR_WrongSdCard, + MP_QSTR_is_enabled, + MP_QSTR_device, + MP_QSTR_get_sd_salt_auth_key, + MP_QSTR_compute_auth_tag, + MP_QSTR_hmac, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_SHA256, + MP_QSTR_digest, + MP_QSTR__get_device_dir, + MP_QSTR_format, + MP_QSTR_get_device_id, + MP_QSTR_lower, + MP_QSTR__get_salt_path, + MP_QSTR__dot_new, + MP_QSTR_, + MP_QSTR__brace_open__brace_close__slash_salt_brace_open__brace_close_, + MP_QSTR__load_salt, + MP_QSTR_consteq, + MP_QSTR_trezor_dot_utils, + MP_QSTR_open, + MP_QSTR_r, + MP_QSTR_read, + MP_QSTR_FatFSError, + MP_QSTR_load_sd_salt, + MP_QSTR_new, + MP_QSTR_unlink, + MP_QSTR_rename, + MP_QSTR_set_sd_salt, + MP_QSTR_mkdir, + MP_QSTR__slash_trezor, + MP_QSTR_w, + MP_QSTR_write, + MP_QSTR_commit_sd_salt, + MP_QSTR_remove_sd_salt, + MP_QSTR_storage, + MP_QSTR_SD_CARD_HOT_SWAPPABLE, + MP_QSTR_SD_SALT_LEN_BYTES, + MP_QSTR_Exception, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_salt, + MP_QSTR_auth_key, + MP_QSTR_path, + MP_QSTR_bytearray, + MP_QSTR_salt_tag, + MP_QSTR_stage, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_storage_sd_salt[1] = { + MP_ROM_QSTR(MP_QSTR__slash_trezor_slash_device__brace_open__brace_close_), +}; + +static const mp_frozen_module_t frozen_module_storage_sd_salt = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_storage_sd_salt, + .obj_table = (mp_obj_t *)&const_obj_table_data_storage_sd_salt, + }, + .rc = &raw_code_storage_sd_salt__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_AmountUnit +// - original source file: build/firmware/src/trezor/enums/AmountUnit.mpy +// - frozen file name: trezor/enums/AmountUnit.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/AmountUnit.py, scope trezor_enums_AmountUnit__lt_module_gt_ +static const byte fun_data_trezor_enums_AmountUnit__lt_module_gt_[22] = { + 0x00,0x0c, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'BITCOIN' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'MILLIBITCOIN' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'MICROBITCOIN' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x05, // STORE_NAME 'SATOSHI' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_AmountUnit__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_AmountUnit__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_AmountUnit__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_AmountUnit__lt_module_gt_ + 8, + .opcodes = fun_data_trezor_enums_AmountUnit__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_AmountUnit[6] = { + MP_QSTR_trezor_slash_enums_slash_AmountUnit_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_BITCOIN, + MP_QSTR_MILLIBITCOIN, + MP_QSTR_MICROBITCOIN, + MP_QSTR_SATOSHI, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_AmountUnit = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_AmountUnit, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_AmountUnit__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_BackupType +// - original source file: build/firmware/src/trezor/enums/BackupType.mpy +// - frozen file name: trezor/enums/BackupType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/BackupType.py, scope trezor_enums_BackupType__lt_module_gt_ +static const byte fun_data_trezor_enums_BackupType__lt_module_gt_[18] = { + 0x00,0x0a, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'Bip39' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'Slip39_Basic' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'Slip39_Advanced' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_BackupType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_BackupType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_BackupType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_BackupType__lt_module_gt_ + 7, + .opcodes = fun_data_trezor_enums_BackupType__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_BackupType[5] = { + MP_QSTR_trezor_slash_enums_slash_BackupType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_Bip39, + MP_QSTR_Slip39_Basic, + MP_QSTR_Slip39_Advanced, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_BackupType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_BackupType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_BackupType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_ButtonRequestType +// - original source file: build/firmware/src/trezor/enums/ButtonRequestType.mpy +// - frozen file name: trezor/enums/ButtonRequestType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/ButtonRequestType.py, scope trezor_enums_ButtonRequestType__lt_module_gt_ +static const byte fun_data_trezor_enums_ButtonRequestType__lt_module_gt_[82] = { + 0x00,0x2a, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x02, // STORE_NAME 'Other' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x03, // STORE_NAME 'FeeOverThreshold' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x04, // STORE_NAME 'ConfirmOutput' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x16,0x05, // STORE_NAME 'ResetDevice' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x16,0x06, // STORE_NAME 'ConfirmWord' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x16,0x07, // STORE_NAME 'WipeDevice' + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x16,0x08, // STORE_NAME 'ProtectCall' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x16,0x09, // STORE_NAME 'SignTx' + 0x89, // LOAD_CONST_SMALL_INT 9 + 0x16,0x0a, // STORE_NAME 'FirmwareCheck' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x16,0x0b, // STORE_NAME 'Address' + 0x8b, // LOAD_CONST_SMALL_INT 11 + 0x16,0x0c, // STORE_NAME 'PublicKey' + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0x16,0x0d, // STORE_NAME 'MnemonicWordCount' + 0x8d, // LOAD_CONST_SMALL_INT 13 + 0x16,0x0e, // STORE_NAME 'MnemonicInput' + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0x16,0x0f, // STORE_NAME 'UnknownDerivationPath' + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x16,0x10, // STORE_NAME 'RecoveryHomepage' + 0x91, // LOAD_CONST_SMALL_INT 17 + 0x16,0x11, // STORE_NAME 'Success' + 0x92, // LOAD_CONST_SMALL_INT 18 + 0x16,0x12, // STORE_NAME 'Warning' + 0x93, // LOAD_CONST_SMALL_INT 19 + 0x16,0x13, // STORE_NAME 'PassphraseEntry' + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x16,0x14, // STORE_NAME 'PinEntry' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_ButtonRequestType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_ButtonRequestType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 82, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_ButtonRequestType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_ButtonRequestType__lt_module_gt_ + 23, + .opcodes = fun_data_trezor_enums_ButtonRequestType__lt_module_gt_ + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_ButtonRequestType[21] = { + MP_QSTR_trezor_slash_enums_slash_ButtonRequestType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_Other, + MP_QSTR_FeeOverThreshold, + MP_QSTR_ConfirmOutput, + MP_QSTR_ResetDevice, + MP_QSTR_ConfirmWord, + MP_QSTR_WipeDevice, + MP_QSTR_ProtectCall, + MP_QSTR_SignTx, + MP_QSTR_FirmwareCheck, + MP_QSTR_Address, + MP_QSTR_PublicKey, + MP_QSTR_MnemonicWordCount, + MP_QSTR_MnemonicInput, + MP_QSTR_UnknownDerivationPath, + MP_QSTR_RecoveryHomepage, + MP_QSTR_Success, + MP_QSTR_Warning, + MP_QSTR_PassphraseEntry, + MP_QSTR_PinEntry, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_ButtonRequestType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_ButtonRequestType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_ButtonRequestType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_Capability +// - original source file: build/firmware/src/trezor/enums/Capability.mpy +// - frozen file name: trezor/enums/Capability.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/Capability.py, scope trezor_enums_Capability__lt_module_gt_ +static const byte fun_data_trezor_enums_Capability__lt_module_gt_[84] = { + 0x08,0x28, // prelude + 0x01, // names: + 0x60,0x20,0x4c,0x23,0x23,0x23,0x23,0x23,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'utils' + 0x16,0x02, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x04, // STORE_NAME 'Bitcoin' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x16,0x05, // STORE_NAME 'Crypto' + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0x16,0x06, // STORE_NAME 'Shamir' + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x16,0x07, // STORE_NAME 'ShamirGroups' + 0x91, // LOAD_CONST_SMALL_INT 17 + 0x16,0x08, // STORE_NAME 'PassphraseEntry' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x09, // STORE_NAME 'Bitcoin_like' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x0a, // STORE_NAME 'Binance' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x16,0x0b, // STORE_NAME 'Cardano' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x16,0x0c, // STORE_NAME 'EOS' + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x16,0x0d, // STORE_NAME 'Ethereum' + 0x89, // LOAD_CONST_SMALL_INT 9 + 0x16,0x0e, // STORE_NAME 'Monero' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x16,0x0f, // STORE_NAME 'NEM' + 0x8b, // LOAD_CONST_SMALL_INT 11 + 0x16,0x10, // STORE_NAME 'Ripple' + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0x16,0x11, // STORE_NAME 'Stellar' + 0x8d, // LOAD_CONST_SMALL_INT 13 + 0x16,0x12, // STORE_NAME 'Tezos' + 0x8e, // LOAD_CONST_SMALL_INT 14 + 0x16,0x13, // STORE_NAME 'U2F' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_Capability__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_Capability__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 84, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_Capability__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_Capability__lt_module_gt_ + 22, + .opcodes = fun_data_trezor_enums_Capability__lt_module_gt_ + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_Capability[20] = { + MP_QSTR_trezor_slash_enums_slash_Capability_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_Bitcoin, + MP_QSTR_Crypto, + MP_QSTR_Shamir, + MP_QSTR_ShamirGroups, + MP_QSTR_PassphraseEntry, + MP_QSTR_Bitcoin_like, + MP_QSTR_Binance, + MP_QSTR_Cardano, + MP_QSTR_EOS, + MP_QSTR_Ethereum, + MP_QSTR_Monero, + MP_QSTR_NEM, + MP_QSTR_Ripple, + MP_QSTR_Stellar, + MP_QSTR_Tezos, + MP_QSTR_U2F, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_Capability = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_Capability, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_Capability__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_DebugButton +// - original source file: build/firmware/src/trezor/enums/DebugButton.mpy +// - frozen file name: trezor/enums/DebugButton.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/DebugButton.py, scope trezor_enums_DebugButton__lt_module_gt_ +static const byte fun_data_trezor_enums_DebugButton__lt_module_gt_[18] = { + 0x00,0x0a, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'NO' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'YES' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'INFO' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_DebugButton__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_DebugButton__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_DebugButton__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_DebugButton__lt_module_gt_ + 7, + .opcodes = fun_data_trezor_enums_DebugButton__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_DebugButton[5] = { + MP_QSTR_trezor_slash_enums_slash_DebugButton_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_NO, + MP_QSTR_YES, + MP_QSTR_INFO, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_DebugButton = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_DebugButton, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_DebugButton__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_DebugPhysicalButton +// - original source file: build/firmware/src/trezor/enums/DebugPhysicalButton.mpy +// - frozen file name: trezor/enums/DebugPhysicalButton.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/DebugPhysicalButton.py, scope trezor_enums_DebugPhysicalButton__lt_module_gt_ +static const byte fun_data_trezor_enums_DebugPhysicalButton__lt_module_gt_[18] = { + 0x00,0x0a, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'LEFT_BTN' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'MIDDLE_BTN' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'RIGHT_BTN' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_DebugPhysicalButton__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_DebugPhysicalButton__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_DebugPhysicalButton__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_DebugPhysicalButton__lt_module_gt_ + 7, + .opcodes = fun_data_trezor_enums_DebugPhysicalButton__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_DebugPhysicalButton[5] = { + MP_QSTR_trezor_slash_enums_slash_DebugPhysicalButton_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_LEFT_BTN, + MP_QSTR_MIDDLE_BTN, + MP_QSTR_RIGHT_BTN, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_DebugPhysicalButton = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_DebugPhysicalButton, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_DebugPhysicalButton__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_DebugSwipeDirection +// - original source file: build/firmware/src/trezor/enums/DebugSwipeDirection.mpy +// - frozen file name: trezor/enums/DebugSwipeDirection.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/DebugSwipeDirection.py, scope trezor_enums_DebugSwipeDirection__lt_module_gt_ +static const byte fun_data_trezor_enums_DebugSwipeDirection__lt_module_gt_[22] = { + 0x00,0x0c, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'UP' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'DOWN' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'LEFT' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x05, // STORE_NAME 'RIGHT' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_DebugSwipeDirection__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_DebugSwipeDirection__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_DebugSwipeDirection__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_DebugSwipeDirection__lt_module_gt_ + 8, + .opcodes = fun_data_trezor_enums_DebugSwipeDirection__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_DebugSwipeDirection[6] = { + MP_QSTR_trezor_slash_enums_slash_DebugSwipeDirection_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_UP, + MP_QSTR_DOWN, + MP_QSTR_LEFT, + MP_QSTR_RIGHT, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_DebugSwipeDirection = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_DebugSwipeDirection, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_DebugSwipeDirection__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_DecredStakingSpendType +// - original source file: build/firmware/src/trezor/enums/DecredStakingSpendType.mpy +// - frozen file name: trezor/enums/DecredStakingSpendType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/DecredStakingSpendType.py, scope trezor_enums_DecredStakingSpendType__lt_module_gt_ +static const byte fun_data_trezor_enums_DecredStakingSpendType__lt_module_gt_[14] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x60,0x20,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'SSGen' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'SSRTX' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_DecredStakingSpendType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_DecredStakingSpendType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_DecredStakingSpendType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_DecredStakingSpendType__lt_module_gt_ + 6, + .opcodes = fun_data_trezor_enums_DecredStakingSpendType__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_DecredStakingSpendType[4] = { + MP_QSTR_trezor_slash_enums_slash_DecredStakingSpendType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_SSGen, + MP_QSTR_SSRTX, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_DecredStakingSpendType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_DecredStakingSpendType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_DecredStakingSpendType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_FailureType +// - original source file: build/firmware/src/trezor/enums/FailureType.mpy +// - frozen file name: trezor/enums/FailureType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/FailureType.py, scope trezor_enums_FailureType__lt_module_gt_ +static const byte fun_data_trezor_enums_FailureType__lt_module_gt_[68] = { + 0x00,0x22, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x02, // STORE_NAME 'UnexpectedMessage' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x03, // STORE_NAME 'ButtonExpected' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x04, // STORE_NAME 'DataError' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x16,0x05, // STORE_NAME 'ActionCancelled' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x16,0x06, // STORE_NAME 'PinExpected' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x16,0x07, // STORE_NAME 'PinCancelled' + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x16,0x08, // STORE_NAME 'PinInvalid' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x16,0x09, // STORE_NAME 'InvalidSignature' + 0x89, // LOAD_CONST_SMALL_INT 9 + 0x16,0x0a, // STORE_NAME 'ProcessError' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x16,0x0b, // STORE_NAME 'NotEnoughFunds' + 0x8b, // LOAD_CONST_SMALL_INT 11 + 0x16,0x0c, // STORE_NAME 'NotInitialized' + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0x16,0x0d, // STORE_NAME 'PinMismatch' + 0x8d, // LOAD_CONST_SMALL_INT 13 + 0x16,0x0e, // STORE_NAME 'WipeCodeMismatch' + 0x8e, // LOAD_CONST_SMALL_INT 14 + 0x16,0x0f, // STORE_NAME 'InvalidSession' + 0x22,0x80,0x63, // LOAD_CONST_SMALL_INT 99 + 0x16,0x10, // STORE_NAME 'FirmwareError' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_FailureType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_FailureType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 68, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_FailureType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_FailureType__lt_module_gt_ + 19, + .opcodes = fun_data_trezor_enums_FailureType__lt_module_gt_ + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_FailureType[17] = { + MP_QSTR_trezor_slash_enums_slash_FailureType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_UnexpectedMessage, + MP_QSTR_ButtonExpected, + MP_QSTR_DataError, + MP_QSTR_ActionCancelled, + MP_QSTR_PinExpected, + MP_QSTR_PinCancelled, + MP_QSTR_PinInvalid, + MP_QSTR_InvalidSignature, + MP_QSTR_ProcessError, + MP_QSTR_NotEnoughFunds, + MP_QSTR_NotInitialized, + MP_QSTR_PinMismatch, + MP_QSTR_WipeCodeMismatch, + MP_QSTR_InvalidSession, + MP_QSTR_FirmwareError, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_FailureType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_FailureType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_FailureType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_HomescreenFormat +// - original source file: build/firmware/src/trezor/enums/HomescreenFormat.mpy +// - frozen file name: trezor/enums/HomescreenFormat.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/HomescreenFormat.py, scope trezor_enums_HomescreenFormat__lt_module_gt_ +static const byte fun_data_trezor_enums_HomescreenFormat__lt_module_gt_[18] = { + 0x00,0x0a, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x02, // STORE_NAME 'Toif' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x03, // STORE_NAME 'Jpeg' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x04, // STORE_NAME 'ToiG' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_HomescreenFormat__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_HomescreenFormat__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_HomescreenFormat__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_HomescreenFormat__lt_module_gt_ + 7, + .opcodes = fun_data_trezor_enums_HomescreenFormat__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_HomescreenFormat[5] = { + MP_QSTR_trezor_slash_enums_slash_HomescreenFormat_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_Toif, + MP_QSTR_Jpeg, + MP_QSTR_ToiG, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_HomescreenFormat = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_HomescreenFormat, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_HomescreenFormat__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_InputScriptType +// - original source file: build/firmware/src/trezor/enums/InputScriptType.mpy +// - frozen file name: trezor/enums/InputScriptType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/InputScriptType.py, scope trezor_enums_InputScriptType__lt_module_gt_ +static const byte fun_data_trezor_enums_InputScriptType__lt_module_gt_[30] = { + 0x00,0x10, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23,0x23,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'SPENDADDRESS' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'SPENDMULTISIG' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'EXTERNAL' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x05, // STORE_NAME 'SPENDWITNESS' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x16,0x06, // STORE_NAME 'SPENDP2SHWITNESS' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x16,0x07, // STORE_NAME 'SPENDTAPROOT' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_InputScriptType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_InputScriptType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_InputScriptType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_InputScriptType__lt_module_gt_ + 10, + .opcodes = fun_data_trezor_enums_InputScriptType__lt_module_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_InputScriptType[8] = { + MP_QSTR_trezor_slash_enums_slash_InputScriptType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_SPENDADDRESS, + MP_QSTR_SPENDMULTISIG, + MP_QSTR_EXTERNAL, + MP_QSTR_SPENDWITNESS, + MP_QSTR_SPENDP2SHWITNESS, + MP_QSTR_SPENDTAPROOT, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_InputScriptType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_InputScriptType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_InputScriptType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_MessageType +// - original source file: build/firmware/src/trezor/enums/MessageType.mpy +// - frozen file name: trezor/enums/MessageType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/MessageType.py, scope trezor_enums_MessageType__lt_module_gt_ +static const byte fun_data_trezor_enums_MessageType__lt_module_gt_[1409] = { + 0x08,0xd6,0x06, // prelude + 0x01, // names: + 0x60,0x20,0x4c,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x24,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x24,0x24,0x24,0x23,0x24,0x24,0x24,0x24,0x24,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x26,0x26,0x26,0x26,0x26,0x26,0x20,0x24,0x25,0x25,0x23,0x25,0x25,0x24,0x24,0x24,0x25,0x24,0x24,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'utils' + 0x16,0x02, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x04, // STORE_NAME 'Initialize' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x05, // STORE_NAME 'Ping' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x06, // STORE_NAME 'Success' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x07, // STORE_NAME 'Failure' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x16,0x08, // STORE_NAME 'ChangePin' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x16,0x09, // STORE_NAME 'WipeDevice' + 0x89, // LOAD_CONST_SMALL_INT 9 + 0x16,0x0a, // STORE_NAME 'GetEntropy' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x16,0x0b, // STORE_NAME 'Entropy' + 0x8d, // LOAD_CONST_SMALL_INT 13 + 0x16,0x0c, // STORE_NAME 'LoadDevice' + 0x8e, // LOAD_CONST_SMALL_INT 14 + 0x16,0x0d, // STORE_NAME 'ResetDevice' + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x16,0x0e, // STORE_NAME 'SetBusy' + 0x91, // LOAD_CONST_SMALL_INT 17 + 0x16,0x0f, // STORE_NAME 'Features' + 0x92, // LOAD_CONST_SMALL_INT 18 + 0x16,0x10, // STORE_NAME 'PinMatrixRequest' + 0x93, // LOAD_CONST_SMALL_INT 19 + 0x16,0x11, // STORE_NAME 'PinMatrixAck' + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x16,0x12, // STORE_NAME 'Cancel' + 0x98, // LOAD_CONST_SMALL_INT 24 + 0x16,0x13, // STORE_NAME 'LockDevice' + 0x99, // LOAD_CONST_SMALL_INT 25 + 0x16,0x14, // STORE_NAME 'ApplySettings' + 0x9a, // LOAD_CONST_SMALL_INT 26 + 0x16,0x15, // STORE_NAME 'ButtonRequest' + 0x9b, // LOAD_CONST_SMALL_INT 27 + 0x16,0x16, // STORE_NAME 'ButtonAck' + 0x9c, // LOAD_CONST_SMALL_INT 28 + 0x16,0x17, // STORE_NAME 'ApplyFlags' + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0x16,0x18, // STORE_NAME 'GetNonce' + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x16,0x19, // STORE_NAME 'Nonce' + 0xa2, // LOAD_CONST_SMALL_INT 34 + 0x16,0x1a, // STORE_NAME 'BackupDevice' + 0xa3, // LOAD_CONST_SMALL_INT 35 + 0x16,0x1b, // STORE_NAME 'EntropyRequest' + 0xa4, // LOAD_CONST_SMALL_INT 36 + 0x16,0x1c, // STORE_NAME 'EntropyAck' + 0xa9, // LOAD_CONST_SMALL_INT 41 + 0x16,0x1d, // STORE_NAME 'PassphraseRequest' + 0xaa, // LOAD_CONST_SMALL_INT 42 + 0x16,0x1e, // STORE_NAME 'PassphraseAck' + 0xad, // LOAD_CONST_SMALL_INT 45 + 0x16,0x1f, // STORE_NAME 'RecoveryDevice' + 0xae, // LOAD_CONST_SMALL_INT 46 + 0x16,0x20, // STORE_NAME 'WordRequest' + 0xaf, // LOAD_CONST_SMALL_INT 47 + 0x16,0x21, // STORE_NAME 'WordAck' + 0x22,0x37, // LOAD_CONST_SMALL_INT 55 + 0x16,0x22, // STORE_NAME 'GetFeatures' + 0x22,0x80,0x4f, // LOAD_CONST_SMALL_INT 79 + 0x16,0x23, // STORE_NAME 'SdProtect' + 0x22,0x80,0x52, // LOAD_CONST_SMALL_INT 82 + 0x16,0x24, // STORE_NAME 'ChangeWipeCode' + 0x22,0x80,0x53, // LOAD_CONST_SMALL_INT 83 + 0x16,0x25, // STORE_NAME 'EndSession' + 0x22,0x80,0x54, // LOAD_CONST_SMALL_INT 84 + 0x16,0x26, // STORE_NAME 'DoPreauthorized' + 0x22,0x80,0x55, // LOAD_CONST_SMALL_INT 85 + 0x16,0x27, // STORE_NAME 'PreauthorizedRequest' + 0x22,0x80,0x56, // LOAD_CONST_SMALL_INT 86 + 0x16,0x28, // STORE_NAME 'CancelAuthorization' + 0x22,0x80,0x57, // LOAD_CONST_SMALL_INT 87 + 0x16,0x29, // STORE_NAME 'RebootToBootloader' + 0x22,0x80,0x58, // LOAD_CONST_SMALL_INT 88 + 0x16,0x2a, // STORE_NAME 'GetFirmwareHash' + 0x22,0x80,0x59, // LOAD_CONST_SMALL_INT 89 + 0x16,0x2b, // STORE_NAME 'FirmwareHash' + 0x22,0x80,0x5d, // LOAD_CONST_SMALL_INT 93 + 0x16,0x2c, // STORE_NAME 'UnlockPath' + 0x22,0x80,0x5e, // LOAD_CONST_SMALL_INT 94 + 0x16,0x2d, // STORE_NAME 'UnlockedPathRequest' + 0x22,0x80,0x5f, // LOAD_CONST_SMALL_INT 95 + 0x16,0x2e, // STORE_NAME 'ShowDeviceTutorial' + 0x22,0x80,0x60, // LOAD_CONST_SMALL_INT 96 + 0x16,0x2f, // STORE_NAME 'UnlockBootloader' + 0x22,0x80,0x61, // LOAD_CONST_SMALL_INT 97 + 0x16,0x30, // STORE_NAME 'AuthenticateDevice' + 0x22,0x80,0x62, // LOAD_CONST_SMALL_INT 98 + 0x16,0x31, // STORE_NAME 'AuthenticityProof' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x16,0x32, // STORE_NAME 'FirmwareErase' + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x16,0x33, // STORE_NAME 'FirmwareUpload' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x16,0x34, // STORE_NAME 'FirmwareRequest' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x16,0x35, // STORE_NAME 'SelfTest' + 0x8b, // LOAD_CONST_SMALL_INT 11 + 0x16,0x36, // STORE_NAME 'GetPublicKey' + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0x16,0x37, // STORE_NAME 'PublicKey' + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0x16,0x38, // STORE_NAME 'SignTx' + 0x95, // LOAD_CONST_SMALL_INT 21 + 0x16,0x39, // STORE_NAME 'TxRequest' + 0x96, // LOAD_CONST_SMALL_INT 22 + 0x16,0x3a, // STORE_NAME 'TxAck' + 0x9d, // LOAD_CONST_SMALL_INT 29 + 0x16,0x3b, // STORE_NAME 'GetAddress' + 0x9e, // LOAD_CONST_SMALL_INT 30 + 0x16,0x3c, // STORE_NAME 'Address' + 0xa6, // LOAD_CONST_SMALL_INT 38 + 0x16,0x3d, // STORE_NAME 'SignMessage' + 0xa7, // LOAD_CONST_SMALL_INT 39 + 0x16,0x3e, // STORE_NAME 'VerifyMessage' + 0xa8, // LOAD_CONST_SMALL_INT 40 + 0x16,0x3f, // STORE_NAME 'MessageSignature' + 0xab, // LOAD_CONST_SMALL_INT 43 + 0x16,0x40, // STORE_NAME 'GetOwnershipId' + 0xac, // LOAD_CONST_SMALL_INT 44 + 0x16,0x41, // STORE_NAME 'OwnershipId' + 0x22,0x31, // LOAD_CONST_SMALL_INT 49 + 0x16,0x42, // STORE_NAME 'GetOwnershipProof' + 0x22,0x32, // LOAD_CONST_SMALL_INT 50 + 0x16,0x43, // STORE_NAME 'OwnershipProof' + 0x22,0x33, // LOAD_CONST_SMALL_INT 51 + 0x16,0x44, // STORE_NAME 'AuthorizeCoinJoin' + 0x97, // LOAD_CONST_SMALL_INT 23 + 0x16,0x45, // STORE_NAME 'CipherKeyValue' + 0x22,0x30, // LOAD_CONST_SMALL_INT 48 + 0x16,0x46, // STORE_NAME 'CipheredKeyValue' + 0x22,0x35, // LOAD_CONST_SMALL_INT 53 + 0x16,0x47, // STORE_NAME 'SignIdentity' + 0x22,0x36, // LOAD_CONST_SMALL_INT 54 + 0x16,0x48, // STORE_NAME 'SignedIdentity' + 0x22,0x3d, // LOAD_CONST_SMALL_INT 61 + 0x16,0x49, // STORE_NAME 'GetECDHSessionKey' + 0x22,0x3e, // LOAD_CONST_SMALL_INT 62 + 0x16,0x4a, // STORE_NAME 'ECDHSessionKey' + 0x22,0x80,0x47, // LOAD_CONST_SMALL_INT 71 + 0x16,0x4b, // STORE_NAME 'CosiCommit' + 0x22,0x80,0x48, // LOAD_CONST_SMALL_INT 72 + 0x16,0x4c, // STORE_NAME 'CosiCommitment' + 0x22,0x80,0x49, // LOAD_CONST_SMALL_INT 73 + 0x16,0x4d, // STORE_NAME 'CosiSign' + 0x22,0x80,0x4a, // LOAD_CONST_SMALL_INT 74 + 0x16,0x4e, // STORE_NAME 'CosiSignature' + 0x22,0x80,0x64, // LOAD_CONST_SMALL_INT 100 + 0x16,0x4f, // STORE_NAME 'DebugLinkDecision' + 0x22,0x80,0x65, // LOAD_CONST_SMALL_INT 101 + 0x16,0x50, // STORE_NAME 'DebugLinkGetState' + 0x22,0x80,0x66, // LOAD_CONST_SMALL_INT 102 + 0x16,0x51, // STORE_NAME 'DebugLinkState' + 0x22,0x80,0x67, // LOAD_CONST_SMALL_INT 103 + 0x16,0x52, // STORE_NAME 'DebugLinkStop' + 0x22,0x80,0x68, // LOAD_CONST_SMALL_INT 104 + 0x16,0x53, // STORE_NAME 'DebugLinkLog' + 0x22,0x80,0x6e, // LOAD_CONST_SMALL_INT 110 + 0x16,0x54, // STORE_NAME 'DebugLinkMemoryRead' + 0x22,0x80,0x6f, // LOAD_CONST_SMALL_INT 111 + 0x16,0x55, // STORE_NAME 'DebugLinkMemory' + 0x22,0x80,0x70, // LOAD_CONST_SMALL_INT 112 + 0x16,0x56, // STORE_NAME 'DebugLinkMemoryWrite' + 0x22,0x80,0x71, // LOAD_CONST_SMALL_INT 113 + 0x16,0x57, // STORE_NAME 'DebugLinkFlashErase' + 0x22,0x80,0xc6,0x29, // LOAD_CONST_SMALL_INT 9001 + 0x16,0x58, // STORE_NAME 'DebugLinkLayout' + 0x22,0x80,0xc6,0x2a, // LOAD_CONST_SMALL_INT 9002 + 0x16,0x59, // STORE_NAME 'DebugLinkReseedRandom' + 0x22,0x80,0xc6,0x2b, // LOAD_CONST_SMALL_INT 9003 + 0x16,0x5a, // STORE_NAME 'DebugLinkRecordScreen' + 0x22,0x80,0xc6,0x2d, // LOAD_CONST_SMALL_INT 9005 + 0x16,0x5b, // STORE_NAME 'DebugLinkEraseSdCard' + 0x22,0x80,0xc6,0x2e, // LOAD_CONST_SMALL_INT 9006 + 0x16,0x5c, // STORE_NAME 'DebugLinkWatchLayout' + 0x22,0x80,0xc6,0x2f, // LOAD_CONST_SMALL_INT 9007 + 0x16,0x5d, // STORE_NAME 'DebugLinkResetDebugEvents' + 0x22,0x3f, // LOAD_CONST_SMALL_INT 63 + 0x16,0x5e, // STORE_NAME 'SetU2FCounter' + 0x22,0x80,0x50, // LOAD_CONST_SMALL_INT 80 + 0x16,0x5f, // STORE_NAME 'GetNextU2FCounter' + 0x22,0x80,0x51, // LOAD_CONST_SMALL_INT 81 + 0x16,0x60, // STORE_NAME 'NextU2FCounter' + 0xa5, // LOAD_CONST_SMALL_INT 37 + 0x16,0x61, // STORE_NAME 'TxAckPaymentRequest' + 0x22,0x83,0x42, // LOAD_CONST_SMALL_INT 450 + 0x16,0x62, // STORE_NAME 'EthereumGetPublicKey' + 0x22,0x83,0x43, // LOAD_CONST_SMALL_INT 451 + 0x16,0x63, // STORE_NAME 'EthereumPublicKey' + 0x22,0x38, // LOAD_CONST_SMALL_INT 56 + 0x16,0x64, // STORE_NAME 'EthereumGetAddress' + 0x22,0x39, // LOAD_CONST_SMALL_INT 57 + 0x16,0x65, // STORE_NAME 'EthereumAddress' + 0x22,0x3a, // LOAD_CONST_SMALL_INT 58 + 0x16,0x66, // STORE_NAME 'EthereumSignTx' + 0x22,0x83,0x44, // LOAD_CONST_SMALL_INT 452 + 0x16,0x67, // STORE_NAME 'EthereumSignTxEIP1559' + 0x22,0x3b, // LOAD_CONST_SMALL_INT 59 + 0x16,0x68, // STORE_NAME 'EthereumTxRequest' + 0x22,0x3c, // LOAD_CONST_SMALL_INT 60 + 0x16,0x69, // STORE_NAME 'EthereumTxAck' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x16,0x6a, // STORE_NAME 'EthereumSignMessage' + 0x22,0x80,0x41, // LOAD_CONST_SMALL_INT 65 + 0x16,0x6b, // STORE_NAME 'EthereumVerifyMessage' + 0x22,0x80,0x42, // LOAD_CONST_SMALL_INT 66 + 0x16,0x6c, // STORE_NAME 'EthereumMessageSignature' + 0x22,0x83,0x50, // LOAD_CONST_SMALL_INT 464 + 0x16,0x6d, // STORE_NAME 'EthereumSignTypedData' + 0x22,0x83,0x51, // LOAD_CONST_SMALL_INT 465 + 0x16,0x6e, // STORE_NAME 'EthereumTypedDataStructRequest' + 0x22,0x83,0x52, // LOAD_CONST_SMALL_INT 466 + 0x16,0x6f, // STORE_NAME 'EthereumTypedDataStructAck' + 0x22,0x83,0x53, // LOAD_CONST_SMALL_INT 467 + 0x16,0x70, // STORE_NAME 'EthereumTypedDataValueRequest' + 0x22,0x83,0x54, // LOAD_CONST_SMALL_INT 468 + 0x16,0x71, // STORE_NAME 'EthereumTypedDataValueAck' + 0x22,0x83,0x55, // LOAD_CONST_SMALL_INT 469 + 0x16,0x72, // STORE_NAME 'EthereumTypedDataSignature' + 0x22,0x83,0x56, // LOAD_CONST_SMALL_INT 470 + 0x16,0x73, // STORE_NAME 'EthereumSignTypedHash' + 0x22,0x80,0x43, // LOAD_CONST_SMALL_INT 67 + 0x16,0x74, // STORE_NAME 'NEMGetAddress' + 0x22,0x80,0x44, // LOAD_CONST_SMALL_INT 68 + 0x16,0x75, // STORE_NAME 'NEMAddress' + 0x22,0x80,0x45, // LOAD_CONST_SMALL_INT 69 + 0x16,0x76, // STORE_NAME 'NEMSignTx' + 0x22,0x80,0x46, // LOAD_CONST_SMALL_INT 70 + 0x16,0x77, // STORE_NAME 'NEMSignedTx' + 0x22,0x80,0x4b, // LOAD_CONST_SMALL_INT 75 + 0x16,0x78, // STORE_NAME 'NEMDecryptMessage' + 0x22,0x80,0x4c, // LOAD_CONST_SMALL_INT 76 + 0x16,0x79, // STORE_NAME 'NEMDecryptedMessage' + 0x22,0x81,0x16, // LOAD_CONST_SMALL_INT 150 + 0x16,0x7a, // STORE_NAME 'TezosGetAddress' + 0x22,0x81,0x17, // LOAD_CONST_SMALL_INT 151 + 0x16,0x7b, // STORE_NAME 'TezosAddress' + 0x22,0x81,0x18, // LOAD_CONST_SMALL_INT 152 + 0x16,0x7c, // STORE_NAME 'TezosSignTx' + 0x22,0x81,0x19, // LOAD_CONST_SMALL_INT 153 + 0x16,0x7d, // STORE_NAME 'TezosSignedTx' + 0x22,0x81,0x1a, // LOAD_CONST_SMALL_INT 154 + 0x16,0x7e, // STORE_NAME 'TezosGetPublicKey' + 0x22,0x81,0x1b, // LOAD_CONST_SMALL_INT 155 + 0x16,0x7f, // STORE_NAME 'TezosPublicKey' + 0x22,0x81,0x4a, // LOAD_CONST_SMALL_INT 202 + 0x16,0x81,0x00, // STORE_NAME 'StellarSignTx' + 0x22,0x81,0x4b, // LOAD_CONST_SMALL_INT 203 + 0x16,0x81,0x01, // STORE_NAME 'StellarTxOpRequest' + 0x22,0x81,0x4f, // LOAD_CONST_SMALL_INT 207 + 0x16,0x81,0x02, // STORE_NAME 'StellarGetAddress' + 0x22,0x81,0x50, // LOAD_CONST_SMALL_INT 208 + 0x16,0x81,0x03, // STORE_NAME 'StellarAddress' + 0x22,0x81,0x52, // LOAD_CONST_SMALL_INT 210 + 0x16,0x81,0x04, // STORE_NAME 'StellarCreateAccountOp' + 0x22,0x81,0x53, // LOAD_CONST_SMALL_INT 211 + 0x16,0x81,0x05, // STORE_NAME 'StellarPaymentOp' + 0x22,0x81,0x54, // LOAD_CONST_SMALL_INT 212 + 0x16,0x81,0x06, // STORE_NAME 'StellarPathPaymentStrictReceiveOp' + 0x22,0x81,0x55, // LOAD_CONST_SMALL_INT 213 + 0x16,0x81,0x07, // STORE_NAME 'StellarManageSellOfferOp' + 0x22,0x81,0x56, // LOAD_CONST_SMALL_INT 214 + 0x16,0x81,0x08, // STORE_NAME 'StellarCreatePassiveSellOfferOp' + 0x22,0x81,0x57, // LOAD_CONST_SMALL_INT 215 + 0x16,0x81,0x09, // STORE_NAME 'StellarSetOptionsOp' + 0x22,0x81,0x58, // LOAD_CONST_SMALL_INT 216 + 0x16,0x81,0x0a, // STORE_NAME 'StellarChangeTrustOp' + 0x22,0x81,0x59, // LOAD_CONST_SMALL_INT 217 + 0x16,0x81,0x0b, // STORE_NAME 'StellarAllowTrustOp' + 0x22,0x81,0x5a, // LOAD_CONST_SMALL_INT 218 + 0x16,0x81,0x0c, // STORE_NAME 'StellarAccountMergeOp' + 0x22,0x81,0x5c, // LOAD_CONST_SMALL_INT 220 + 0x16,0x81,0x0d, // STORE_NAME 'StellarManageDataOp' + 0x22,0x81,0x5d, // LOAD_CONST_SMALL_INT 221 + 0x16,0x81,0x0e, // STORE_NAME 'StellarBumpSequenceOp' + 0x22,0x81,0x5e, // LOAD_CONST_SMALL_INT 222 + 0x16,0x81,0x0f, // STORE_NAME 'StellarManageBuyOfferOp' + 0x22,0x81,0x5f, // LOAD_CONST_SMALL_INT 223 + 0x16,0x81,0x10, // STORE_NAME 'StellarPathPaymentStrictSendOp' + 0x22,0x81,0x66, // LOAD_CONST_SMALL_INT 230 + 0x16,0x81,0x11, // STORE_NAME 'StellarSignedTx' + 0x22,0x82,0x31, // LOAD_CONST_SMALL_INT 305 + 0x16,0x81,0x12, // STORE_NAME 'CardanoGetPublicKey' + 0x22,0x82,0x32, // LOAD_CONST_SMALL_INT 306 + 0x16,0x81,0x13, // STORE_NAME 'CardanoPublicKey' + 0x22,0x82,0x33, // LOAD_CONST_SMALL_INT 307 + 0x16,0x81,0x14, // STORE_NAME 'CardanoGetAddress' + 0x22,0x82,0x34, // LOAD_CONST_SMALL_INT 308 + 0x16,0x81,0x15, // STORE_NAME 'CardanoAddress' + 0x22,0x82,0x39, // LOAD_CONST_SMALL_INT 313 + 0x16,0x81,0x16, // STORE_NAME 'CardanoTxItemAck' + 0x22,0x82,0x3a, // LOAD_CONST_SMALL_INT 314 + 0x16,0x81,0x17, // STORE_NAME 'CardanoTxAuxiliaryDataSupplement' + 0x22,0x82,0x3b, // LOAD_CONST_SMALL_INT 315 + 0x16,0x81,0x18, // STORE_NAME 'CardanoTxWitnessRequest' + 0x22,0x82,0x3c, // LOAD_CONST_SMALL_INT 316 + 0x16,0x81,0x19, // STORE_NAME 'CardanoTxWitnessResponse' + 0x22,0x82,0x3d, // LOAD_CONST_SMALL_INT 317 + 0x16,0x81,0x1a, // STORE_NAME 'CardanoTxHostAck' + 0x22,0x82,0x3e, // LOAD_CONST_SMALL_INT 318 + 0x16,0x81,0x1b, // STORE_NAME 'CardanoTxBodyHash' + 0x22,0x82,0x3f, // LOAD_CONST_SMALL_INT 319 + 0x16,0x81,0x1c, // STORE_NAME 'CardanoSignTxFinished' + 0x22,0x82,0x40, // LOAD_CONST_SMALL_INT 320 + 0x16,0x81,0x1d, // STORE_NAME 'CardanoSignTxInit' + 0x22,0x82,0x41, // LOAD_CONST_SMALL_INT 321 + 0x16,0x81,0x1e, // STORE_NAME 'CardanoTxInput' + 0x22,0x82,0x42, // LOAD_CONST_SMALL_INT 322 + 0x16,0x81,0x1f, // STORE_NAME 'CardanoTxOutput' + 0x22,0x82,0x43, // LOAD_CONST_SMALL_INT 323 + 0x16,0x81,0x20, // STORE_NAME 'CardanoAssetGroup' + 0x22,0x82,0x44, // LOAD_CONST_SMALL_INT 324 + 0x16,0x81,0x21, // STORE_NAME 'CardanoToken' + 0x22,0x82,0x45, // LOAD_CONST_SMALL_INT 325 + 0x16,0x81,0x22, // STORE_NAME 'CardanoTxCertificate' + 0x22,0x82,0x46, // LOAD_CONST_SMALL_INT 326 + 0x16,0x81,0x23, // STORE_NAME 'CardanoTxWithdrawal' + 0x22,0x82,0x47, // LOAD_CONST_SMALL_INT 327 + 0x16,0x81,0x24, // STORE_NAME 'CardanoTxAuxiliaryData' + 0x22,0x82,0x48, // LOAD_CONST_SMALL_INT 328 + 0x16,0x81,0x25, // STORE_NAME 'CardanoPoolOwner' + 0x22,0x82,0x49, // LOAD_CONST_SMALL_INT 329 + 0x16,0x81,0x26, // STORE_NAME 'CardanoPoolRelayParameters' + 0x22,0x82,0x4a, // LOAD_CONST_SMALL_INT 330 + 0x16,0x81,0x27, // STORE_NAME 'CardanoGetNativeScriptHash' + 0x22,0x82,0x4b, // LOAD_CONST_SMALL_INT 331 + 0x16,0x81,0x28, // STORE_NAME 'CardanoNativeScriptHash' + 0x22,0x82,0x4c, // LOAD_CONST_SMALL_INT 332 + 0x16,0x81,0x29, // STORE_NAME 'CardanoTxMint' + 0x22,0x82,0x4d, // LOAD_CONST_SMALL_INT 333 + 0x16,0x81,0x2a, // STORE_NAME 'CardanoTxCollateralInput' + 0x22,0x82,0x4e, // LOAD_CONST_SMALL_INT 334 + 0x16,0x81,0x2b, // STORE_NAME 'CardanoTxRequiredSigner' + 0x22,0x82,0x4f, // LOAD_CONST_SMALL_INT 335 + 0x16,0x81,0x2c, // STORE_NAME 'CardanoTxInlineDatumChunk' + 0x22,0x82,0x50, // LOAD_CONST_SMALL_INT 336 + 0x16,0x81,0x2d, // STORE_NAME 'CardanoTxReferenceScriptChunk' + 0x22,0x82,0x51, // LOAD_CONST_SMALL_INT 337 + 0x16,0x81,0x2e, // STORE_NAME 'CardanoTxReferenceInput' + 0x22,0x83,0x10, // LOAD_CONST_SMALL_INT 400 + 0x16,0x81,0x2f, // STORE_NAME 'RippleGetAddress' + 0x22,0x83,0x11, // LOAD_CONST_SMALL_INT 401 + 0x16,0x81,0x30, // STORE_NAME 'RippleAddress' + 0x22,0x83,0x12, // LOAD_CONST_SMALL_INT 402 + 0x16,0x81,0x31, // STORE_NAME 'RippleSignTx' + 0x22,0x83,0x13, // LOAD_CONST_SMALL_INT 403 + 0x16,0x81,0x32, // STORE_NAME 'RippleSignedTx' + 0x22,0x83,0x75, // LOAD_CONST_SMALL_INT 501 + 0x16,0x81,0x33, // STORE_NAME 'MoneroTransactionInitRequest' + 0x22,0x83,0x76, // LOAD_CONST_SMALL_INT 502 + 0x16,0x81,0x34, // STORE_NAME 'MoneroTransactionInitAck' + 0x22,0x83,0x77, // LOAD_CONST_SMALL_INT 503 + 0x16,0x81,0x35, // STORE_NAME 'MoneroTransactionSetInputRequest' + 0x22,0x83,0x78, // LOAD_CONST_SMALL_INT 504 + 0x16,0x81,0x36, // STORE_NAME 'MoneroTransactionSetInputAck' + 0x22,0x83,0x7b, // LOAD_CONST_SMALL_INT 507 + 0x16,0x81,0x37, // STORE_NAME 'MoneroTransactionInputViniRequest' + 0x22,0x83,0x7c, // LOAD_CONST_SMALL_INT 508 + 0x16,0x81,0x38, // STORE_NAME 'MoneroTransactionInputViniAck' + 0x22,0x83,0x7d, // LOAD_CONST_SMALL_INT 509 + 0x16,0x81,0x39, // STORE_NAME 'MoneroTransactionAllInputsSetRequest' + 0x22,0x83,0x7e, // LOAD_CONST_SMALL_INT 510 + 0x16,0x81,0x3a, // STORE_NAME 'MoneroTransactionAllInputsSetAck' + 0x22,0x83,0x7f, // LOAD_CONST_SMALL_INT 511 + 0x16,0x81,0x3b, // STORE_NAME 'MoneroTransactionSetOutputRequest' + 0x22,0x84,0x00, // LOAD_CONST_SMALL_INT 512 + 0x16,0x81,0x3c, // STORE_NAME 'MoneroTransactionSetOutputAck' + 0x22,0x84,0x01, // LOAD_CONST_SMALL_INT 513 + 0x16,0x81,0x3d, // STORE_NAME 'MoneroTransactionAllOutSetRequest' + 0x22,0x84,0x02, // LOAD_CONST_SMALL_INT 514 + 0x16,0x81,0x3e, // STORE_NAME 'MoneroTransactionAllOutSetAck' + 0x22,0x84,0x03, // LOAD_CONST_SMALL_INT 515 + 0x16,0x81,0x3f, // STORE_NAME 'MoneroTransactionSignInputRequest' + 0x22,0x84,0x04, // LOAD_CONST_SMALL_INT 516 + 0x16,0x81,0x40, // STORE_NAME 'MoneroTransactionSignInputAck' + 0x22,0x84,0x05, // LOAD_CONST_SMALL_INT 517 + 0x16,0x81,0x41, // STORE_NAME 'MoneroTransactionFinalRequest' + 0x22,0x84,0x06, // LOAD_CONST_SMALL_INT 518 + 0x16,0x81,0x42, // STORE_NAME 'MoneroTransactionFinalAck' + 0x22,0x84,0x12, // LOAD_CONST_SMALL_INT 530 + 0x16,0x81,0x43, // STORE_NAME 'MoneroKeyImageExportInitRequest' + 0x22,0x84,0x13, // LOAD_CONST_SMALL_INT 531 + 0x16,0x81,0x44, // STORE_NAME 'MoneroKeyImageExportInitAck' + 0x22,0x84,0x14, // LOAD_CONST_SMALL_INT 532 + 0x16,0x81,0x45, // STORE_NAME 'MoneroKeyImageSyncStepRequest' + 0x22,0x84,0x15, // LOAD_CONST_SMALL_INT 533 + 0x16,0x81,0x46, // STORE_NAME 'MoneroKeyImageSyncStepAck' + 0x22,0x84,0x16, // LOAD_CONST_SMALL_INT 534 + 0x16,0x81,0x47, // STORE_NAME 'MoneroKeyImageSyncFinalRequest' + 0x22,0x84,0x17, // LOAD_CONST_SMALL_INT 535 + 0x16,0x81,0x48, // STORE_NAME 'MoneroKeyImageSyncFinalAck' + 0x22,0x84,0x1c, // LOAD_CONST_SMALL_INT 540 + 0x16,0x81,0x49, // STORE_NAME 'MoneroGetAddress' + 0x22,0x84,0x1d, // LOAD_CONST_SMALL_INT 541 + 0x16,0x81,0x4a, // STORE_NAME 'MoneroAddress' + 0x22,0x84,0x1e, // LOAD_CONST_SMALL_INT 542 + 0x16,0x81,0x4b, // STORE_NAME 'MoneroGetWatchKey' + 0x22,0x84,0x1f, // LOAD_CONST_SMALL_INT 543 + 0x16,0x81,0x4c, // STORE_NAME 'MoneroWatchKey' + 0x22,0x84,0x22, // LOAD_CONST_SMALL_INT 546 + 0x16,0x81,0x4d, // STORE_NAME 'DebugMoneroDiagRequest' + 0x22,0x84,0x23, // LOAD_CONST_SMALL_INT 547 + 0x16,0x81,0x4e, // STORE_NAME 'DebugMoneroDiagAck' + 0x22,0x84,0x26, // LOAD_CONST_SMALL_INT 550 + 0x16,0x81,0x4f, // STORE_NAME 'MoneroGetTxKeyRequest' + 0x22,0x84,0x27, // LOAD_CONST_SMALL_INT 551 + 0x16,0x81,0x50, // STORE_NAME 'MoneroGetTxKeyAck' + 0x22,0x84,0x28, // LOAD_CONST_SMALL_INT 552 + 0x16,0x81,0x51, // STORE_NAME 'MoneroLiveRefreshStartRequest' + 0x22,0x84,0x29, // LOAD_CONST_SMALL_INT 553 + 0x16,0x81,0x52, // STORE_NAME 'MoneroLiveRefreshStartAck' + 0x22,0x84,0x2a, // LOAD_CONST_SMALL_INT 554 + 0x16,0x81,0x53, // STORE_NAME 'MoneroLiveRefreshStepRequest' + 0x22,0x84,0x2b, // LOAD_CONST_SMALL_INT 555 + 0x16,0x81,0x54, // STORE_NAME 'MoneroLiveRefreshStepAck' + 0x22,0x84,0x2c, // LOAD_CONST_SMALL_INT 556 + 0x16,0x81,0x55, // STORE_NAME 'MoneroLiveRefreshFinalRequest' + 0x22,0x84,0x2d, // LOAD_CONST_SMALL_INT 557 + 0x16,0x81,0x56, // STORE_NAME 'MoneroLiveRefreshFinalAck' + 0x22,0x84,0x58, // LOAD_CONST_SMALL_INT 600 + 0x16,0x81,0x57, // STORE_NAME 'EosGetPublicKey' + 0x22,0x84,0x59, // LOAD_CONST_SMALL_INT 601 + 0x16,0x81,0x58, // STORE_NAME 'EosPublicKey' + 0x22,0x84,0x5a, // LOAD_CONST_SMALL_INT 602 + 0x16,0x81,0x59, // STORE_NAME 'EosSignTx' + 0x22,0x84,0x5b, // LOAD_CONST_SMALL_INT 603 + 0x16,0x81,0x5a, // STORE_NAME 'EosTxActionRequest' + 0x22,0x84,0x5c, // LOAD_CONST_SMALL_INT 604 + 0x16,0x81,0x5b, // STORE_NAME 'EosTxActionAck' + 0x22,0x84,0x5d, // LOAD_CONST_SMALL_INT 605 + 0x16,0x81,0x5c, // STORE_NAME 'EosSignedTx' + 0x22,0x85,0x3c, // LOAD_CONST_SMALL_INT 700 + 0x16,0x81,0x5d, // STORE_NAME 'BinanceGetAddress' + 0x22,0x85,0x3d, // LOAD_CONST_SMALL_INT 701 + 0x16,0x81,0x5e, // STORE_NAME 'BinanceAddress' + 0x22,0x85,0x3e, // LOAD_CONST_SMALL_INT 702 + 0x16,0x81,0x5f, // STORE_NAME 'BinanceGetPublicKey' + 0x22,0x85,0x3f, // LOAD_CONST_SMALL_INT 703 + 0x16,0x81,0x60, // STORE_NAME 'BinancePublicKey' + 0x22,0x85,0x40, // LOAD_CONST_SMALL_INT 704 + 0x16,0x81,0x61, // STORE_NAME 'BinanceSignTx' + 0x22,0x85,0x41, // LOAD_CONST_SMALL_INT 705 + 0x16,0x81,0x62, // STORE_NAME 'BinanceTxRequest' + 0x22,0x85,0x42, // LOAD_CONST_SMALL_INT 706 + 0x16,0x81,0x63, // STORE_NAME 'BinanceTransferMsg' + 0x22,0x85,0x43, // LOAD_CONST_SMALL_INT 707 + 0x16,0x81,0x64, // STORE_NAME 'BinanceOrderMsg' + 0x22,0x85,0x44, // LOAD_CONST_SMALL_INT 708 + 0x16,0x81,0x65, // STORE_NAME 'BinanceCancelMsg' + 0x22,0x85,0x45, // LOAD_CONST_SMALL_INT 709 + 0x16,0x81,0x66, // STORE_NAME 'BinanceSignedTx' + 0x22,0x86,0x20, // LOAD_CONST_SMALL_INT 800 + 0x16,0x81,0x67, // STORE_NAME 'WebAuthnListResidentCredentials' + 0x22,0x86,0x21, // LOAD_CONST_SMALL_INT 801 + 0x16,0x81,0x68, // STORE_NAME 'WebAuthnCredentials' + 0x22,0x86,0x22, // LOAD_CONST_SMALL_INT 802 + 0x16,0x81,0x69, // STORE_NAME 'WebAuthnAddResidentCredential' + 0x22,0x86,0x23, // LOAD_CONST_SMALL_INT 803 + 0x16,0x81,0x6a, // STORE_NAME 'WebAuthnRemoveResidentCredential' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_MessageType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_MessageType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 1409, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_MessageType__lt_module_gt_ + 4, + .line_info_top = fun_data_trezor_enums_MessageType__lt_module_gt_ + 238, + .opcodes = fun_data_trezor_enums_MessageType__lt_module_gt_ + 238, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_MessageType[235] = { + MP_QSTR_trezor_slash_enums_slash_MessageType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_Initialize, + MP_QSTR_Ping, + MP_QSTR_Success, + MP_QSTR_Failure, + MP_QSTR_ChangePin, + MP_QSTR_WipeDevice, + MP_QSTR_GetEntropy, + MP_QSTR_Entropy, + MP_QSTR_LoadDevice, + MP_QSTR_ResetDevice, + MP_QSTR_SetBusy, + MP_QSTR_Features, + MP_QSTR_PinMatrixRequest, + MP_QSTR_PinMatrixAck, + MP_QSTR_Cancel, + MP_QSTR_LockDevice, + MP_QSTR_ApplySettings, + MP_QSTR_ButtonRequest, + MP_QSTR_ButtonAck, + MP_QSTR_ApplyFlags, + MP_QSTR_GetNonce, + MP_QSTR_Nonce, + MP_QSTR_BackupDevice, + MP_QSTR_EntropyRequest, + MP_QSTR_EntropyAck, + MP_QSTR_PassphraseRequest, + MP_QSTR_PassphraseAck, + MP_QSTR_RecoveryDevice, + MP_QSTR_WordRequest, + MP_QSTR_WordAck, + MP_QSTR_GetFeatures, + MP_QSTR_SdProtect, + MP_QSTR_ChangeWipeCode, + MP_QSTR_EndSession, + MP_QSTR_DoPreauthorized, + MP_QSTR_PreauthorizedRequest, + MP_QSTR_CancelAuthorization, + MP_QSTR_RebootToBootloader, + MP_QSTR_GetFirmwareHash, + MP_QSTR_FirmwareHash, + MP_QSTR_UnlockPath, + MP_QSTR_UnlockedPathRequest, + MP_QSTR_ShowDeviceTutorial, + MP_QSTR_UnlockBootloader, + MP_QSTR_AuthenticateDevice, + MP_QSTR_AuthenticityProof, + MP_QSTR_FirmwareErase, + MP_QSTR_FirmwareUpload, + MP_QSTR_FirmwareRequest, + MP_QSTR_SelfTest, + MP_QSTR_GetPublicKey, + MP_QSTR_PublicKey, + MP_QSTR_SignTx, + MP_QSTR_TxRequest, + MP_QSTR_TxAck, + MP_QSTR_GetAddress, + MP_QSTR_Address, + MP_QSTR_SignMessage, + MP_QSTR_VerifyMessage, + MP_QSTR_MessageSignature, + MP_QSTR_GetOwnershipId, + MP_QSTR_OwnershipId, + MP_QSTR_GetOwnershipProof, + MP_QSTR_OwnershipProof, + MP_QSTR_AuthorizeCoinJoin, + MP_QSTR_CipherKeyValue, + MP_QSTR_CipheredKeyValue, + MP_QSTR_SignIdentity, + MP_QSTR_SignedIdentity, + MP_QSTR_GetECDHSessionKey, + MP_QSTR_ECDHSessionKey, + MP_QSTR_CosiCommit, + MP_QSTR_CosiCommitment, + MP_QSTR_CosiSign, + MP_QSTR_CosiSignature, + MP_QSTR_DebugLinkDecision, + MP_QSTR_DebugLinkGetState, + MP_QSTR_DebugLinkState, + MP_QSTR_DebugLinkStop, + MP_QSTR_DebugLinkLog, + MP_QSTR_DebugLinkMemoryRead, + MP_QSTR_DebugLinkMemory, + MP_QSTR_DebugLinkMemoryWrite, + MP_QSTR_DebugLinkFlashErase, + MP_QSTR_DebugLinkLayout, + MP_QSTR_DebugLinkReseedRandom, + MP_QSTR_DebugLinkRecordScreen, + MP_QSTR_DebugLinkEraseSdCard, + MP_QSTR_DebugLinkWatchLayout, + MP_QSTR_DebugLinkResetDebugEvents, + MP_QSTR_SetU2FCounter, + MP_QSTR_GetNextU2FCounter, + MP_QSTR_NextU2FCounter, + MP_QSTR_TxAckPaymentRequest, + MP_QSTR_EthereumGetPublicKey, + MP_QSTR_EthereumPublicKey, + MP_QSTR_EthereumGetAddress, + MP_QSTR_EthereumAddress, + MP_QSTR_EthereumSignTx, + MP_QSTR_EthereumSignTxEIP1559, + MP_QSTR_EthereumTxRequest, + MP_QSTR_EthereumTxAck, + MP_QSTR_EthereumSignMessage, + MP_QSTR_EthereumVerifyMessage, + MP_QSTR_EthereumMessageSignature, + MP_QSTR_EthereumSignTypedData, + MP_QSTR_EthereumTypedDataStructRequest, + MP_QSTR_EthereumTypedDataStructAck, + MP_QSTR_EthereumTypedDataValueRequest, + MP_QSTR_EthereumTypedDataValueAck, + MP_QSTR_EthereumTypedDataSignature, + MP_QSTR_EthereumSignTypedHash, + MP_QSTR_NEMGetAddress, + MP_QSTR_NEMAddress, + MP_QSTR_NEMSignTx, + MP_QSTR_NEMSignedTx, + MP_QSTR_NEMDecryptMessage, + MP_QSTR_NEMDecryptedMessage, + MP_QSTR_TezosGetAddress, + MP_QSTR_TezosAddress, + MP_QSTR_TezosSignTx, + MP_QSTR_TezosSignedTx, + MP_QSTR_TezosGetPublicKey, + MP_QSTR_TezosPublicKey, + MP_QSTR_StellarSignTx, + MP_QSTR_StellarTxOpRequest, + MP_QSTR_StellarGetAddress, + MP_QSTR_StellarAddress, + MP_QSTR_StellarCreateAccountOp, + MP_QSTR_StellarPaymentOp, + MP_QSTR_StellarPathPaymentStrictReceiveOp, + MP_QSTR_StellarManageSellOfferOp, + MP_QSTR_StellarCreatePassiveSellOfferOp, + MP_QSTR_StellarSetOptionsOp, + MP_QSTR_StellarChangeTrustOp, + MP_QSTR_StellarAllowTrustOp, + MP_QSTR_StellarAccountMergeOp, + MP_QSTR_StellarManageDataOp, + MP_QSTR_StellarBumpSequenceOp, + MP_QSTR_StellarManageBuyOfferOp, + MP_QSTR_StellarPathPaymentStrictSendOp, + MP_QSTR_StellarSignedTx, + MP_QSTR_CardanoGetPublicKey, + MP_QSTR_CardanoPublicKey, + MP_QSTR_CardanoGetAddress, + MP_QSTR_CardanoAddress, + MP_QSTR_CardanoTxItemAck, + MP_QSTR_CardanoTxAuxiliaryDataSupplement, + MP_QSTR_CardanoTxWitnessRequest, + MP_QSTR_CardanoTxWitnessResponse, + MP_QSTR_CardanoTxHostAck, + MP_QSTR_CardanoTxBodyHash, + MP_QSTR_CardanoSignTxFinished, + MP_QSTR_CardanoSignTxInit, + MP_QSTR_CardanoTxInput, + MP_QSTR_CardanoTxOutput, + MP_QSTR_CardanoAssetGroup, + MP_QSTR_CardanoToken, + MP_QSTR_CardanoTxCertificate, + MP_QSTR_CardanoTxWithdrawal, + MP_QSTR_CardanoTxAuxiliaryData, + MP_QSTR_CardanoPoolOwner, + MP_QSTR_CardanoPoolRelayParameters, + MP_QSTR_CardanoGetNativeScriptHash, + MP_QSTR_CardanoNativeScriptHash, + MP_QSTR_CardanoTxMint, + MP_QSTR_CardanoTxCollateralInput, + MP_QSTR_CardanoTxRequiredSigner, + MP_QSTR_CardanoTxInlineDatumChunk, + MP_QSTR_CardanoTxReferenceScriptChunk, + MP_QSTR_CardanoTxReferenceInput, + MP_QSTR_RippleGetAddress, + MP_QSTR_RippleAddress, + MP_QSTR_RippleSignTx, + MP_QSTR_RippleSignedTx, + MP_QSTR_MoneroTransactionInitRequest, + MP_QSTR_MoneroTransactionInitAck, + MP_QSTR_MoneroTransactionSetInputRequest, + MP_QSTR_MoneroTransactionSetInputAck, + MP_QSTR_MoneroTransactionInputViniRequest, + MP_QSTR_MoneroTransactionInputViniAck, + MP_QSTR_MoneroTransactionAllInputsSetRequest, + MP_QSTR_MoneroTransactionAllInputsSetAck, + MP_QSTR_MoneroTransactionSetOutputRequest, + MP_QSTR_MoneroTransactionSetOutputAck, + MP_QSTR_MoneroTransactionAllOutSetRequest, + MP_QSTR_MoneroTransactionAllOutSetAck, + MP_QSTR_MoneroTransactionSignInputRequest, + MP_QSTR_MoneroTransactionSignInputAck, + MP_QSTR_MoneroTransactionFinalRequest, + MP_QSTR_MoneroTransactionFinalAck, + MP_QSTR_MoneroKeyImageExportInitRequest, + MP_QSTR_MoneroKeyImageExportInitAck, + MP_QSTR_MoneroKeyImageSyncStepRequest, + MP_QSTR_MoneroKeyImageSyncStepAck, + MP_QSTR_MoneroKeyImageSyncFinalRequest, + MP_QSTR_MoneroKeyImageSyncFinalAck, + MP_QSTR_MoneroGetAddress, + MP_QSTR_MoneroAddress, + MP_QSTR_MoneroGetWatchKey, + MP_QSTR_MoneroWatchKey, + MP_QSTR_DebugMoneroDiagRequest, + MP_QSTR_DebugMoneroDiagAck, + MP_QSTR_MoneroGetTxKeyRequest, + MP_QSTR_MoneroGetTxKeyAck, + MP_QSTR_MoneroLiveRefreshStartRequest, + MP_QSTR_MoneroLiveRefreshStartAck, + MP_QSTR_MoneroLiveRefreshStepRequest, + MP_QSTR_MoneroLiveRefreshStepAck, + MP_QSTR_MoneroLiveRefreshFinalRequest, + MP_QSTR_MoneroLiveRefreshFinalAck, + MP_QSTR_EosGetPublicKey, + MP_QSTR_EosPublicKey, + MP_QSTR_EosSignTx, + MP_QSTR_EosTxActionRequest, + MP_QSTR_EosTxActionAck, + MP_QSTR_EosSignedTx, + MP_QSTR_BinanceGetAddress, + MP_QSTR_BinanceAddress, + MP_QSTR_BinanceGetPublicKey, + MP_QSTR_BinancePublicKey, + MP_QSTR_BinanceSignTx, + MP_QSTR_BinanceTxRequest, + MP_QSTR_BinanceTransferMsg, + MP_QSTR_BinanceOrderMsg, + MP_QSTR_BinanceCancelMsg, + MP_QSTR_BinanceSignedTx, + MP_QSTR_WebAuthnListResidentCredentials, + MP_QSTR_WebAuthnCredentials, + MP_QSTR_WebAuthnAddResidentCredential, + MP_QSTR_WebAuthnRemoveResidentCredential, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_MessageType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_MessageType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_MessageType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_OutputScriptType +// - original source file: build/firmware/src/trezor/enums/OutputScriptType.mpy +// - frozen file name: trezor/enums/OutputScriptType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/OutputScriptType.py, scope trezor_enums_OutputScriptType__lt_module_gt_ +static const byte fun_data_trezor_enums_OutputScriptType__lt_module_gt_[34] = { + 0x00,0x12, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23,0x23,0x23,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'PAYTOADDRESS' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'PAYTOSCRIPTHASH' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'PAYTOMULTISIG' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x05, // STORE_NAME 'PAYTOOPRETURN' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x16,0x06, // STORE_NAME 'PAYTOWITNESS' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x16,0x07, // STORE_NAME 'PAYTOP2SHWITNESS' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x16,0x08, // STORE_NAME 'PAYTOTAPROOT' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_OutputScriptType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_OutputScriptType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_OutputScriptType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_OutputScriptType__lt_module_gt_ + 11, + .opcodes = fun_data_trezor_enums_OutputScriptType__lt_module_gt_ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_OutputScriptType[9] = { + MP_QSTR_trezor_slash_enums_slash_OutputScriptType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_PAYTOADDRESS, + MP_QSTR_PAYTOSCRIPTHASH, + MP_QSTR_PAYTOMULTISIG, + MP_QSTR_PAYTOOPRETURN, + MP_QSTR_PAYTOWITNESS, + MP_QSTR_PAYTOP2SHWITNESS, + MP_QSTR_PAYTOTAPROOT, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_OutputScriptType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_OutputScriptType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_OutputScriptType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_PinMatrixRequestType +// - original source file: build/firmware/src/trezor/enums/PinMatrixRequestType.mpy +// - frozen file name: trezor/enums/PinMatrixRequestType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/PinMatrixRequestType.py, scope trezor_enums_PinMatrixRequestType__lt_module_gt_ +static const byte fun_data_trezor_enums_PinMatrixRequestType__lt_module_gt_[26] = { + 0x00,0x0e, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23,0x23,0x23, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x02, // STORE_NAME 'Current' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x03, // STORE_NAME 'NewFirst' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x04, // STORE_NAME 'NewSecond' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x16,0x05, // STORE_NAME 'WipeCodeFirst' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x16,0x06, // STORE_NAME 'WipeCodeSecond' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_PinMatrixRequestType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_PinMatrixRequestType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_PinMatrixRequestType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_PinMatrixRequestType__lt_module_gt_ + 9, + .opcodes = fun_data_trezor_enums_PinMatrixRequestType__lt_module_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_PinMatrixRequestType[7] = { + MP_QSTR_trezor_slash_enums_slash_PinMatrixRequestType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_Current, + MP_QSTR_NewFirst, + MP_QSTR_NewSecond, + MP_QSTR_WipeCodeFirst, + MP_QSTR_WipeCodeSecond, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_PinMatrixRequestType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_PinMatrixRequestType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_PinMatrixRequestType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_RecoveryDeviceType +// - original source file: build/firmware/src/trezor/enums/RecoveryDeviceType.mpy +// - frozen file name: trezor/enums/RecoveryDeviceType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/RecoveryDeviceType.py, scope trezor_enums_RecoveryDeviceType__lt_module_gt_ +static const byte fun_data_trezor_enums_RecoveryDeviceType__lt_module_gt_[14] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x60,0x20,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'ScrambledWords' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'Matrix' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_RecoveryDeviceType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_RecoveryDeviceType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_RecoveryDeviceType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_RecoveryDeviceType__lt_module_gt_ + 6, + .opcodes = fun_data_trezor_enums_RecoveryDeviceType__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_RecoveryDeviceType[4] = { + MP_QSTR_trezor_slash_enums_slash_RecoveryDeviceType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ScrambledWords, + MP_QSTR_Matrix, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_RecoveryDeviceType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_RecoveryDeviceType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_RecoveryDeviceType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_RequestType +// - original source file: build/firmware/src/trezor/enums/RequestType.mpy +// - frozen file name: trezor/enums/RequestType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/RequestType.py, scope trezor_enums_RequestType__lt_module_gt_ +static const byte fun_data_trezor_enums_RequestType__lt_module_gt_[38] = { + 0x00,0x14, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'TXINPUT' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'TXOUTPUT' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'TXMETA' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x05, // STORE_NAME 'TXFINISHED' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x16,0x06, // STORE_NAME 'TXEXTRADATA' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x16,0x07, // STORE_NAME 'TXORIGINPUT' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x16,0x08, // STORE_NAME 'TXORIGOUTPUT' + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x16,0x09, // STORE_NAME 'TXPAYMENTREQ' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_RequestType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_RequestType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_RequestType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_RequestType__lt_module_gt_ + 12, + .opcodes = fun_data_trezor_enums_RequestType__lt_module_gt_ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_RequestType[10] = { + MP_QSTR_trezor_slash_enums_slash_RequestType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_TXINPUT, + MP_QSTR_TXOUTPUT, + MP_QSTR_TXMETA, + MP_QSTR_TXFINISHED, + MP_QSTR_TXEXTRADATA, + MP_QSTR_TXORIGINPUT, + MP_QSTR_TXORIGOUTPUT, + MP_QSTR_TXPAYMENTREQ, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_RequestType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_RequestType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_RequestType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_SafetyCheckLevel +// - original source file: build/firmware/src/trezor/enums/SafetyCheckLevel.mpy +// - frozen file name: trezor/enums/SafetyCheckLevel.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/SafetyCheckLevel.py, scope trezor_enums_SafetyCheckLevel__lt_module_gt_ +static const byte fun_data_trezor_enums_SafetyCheckLevel__lt_module_gt_[18] = { + 0x00,0x0a, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'Strict' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'PromptAlways' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'PromptTemporarily' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_SafetyCheckLevel__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_SafetyCheckLevel__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_SafetyCheckLevel__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_SafetyCheckLevel__lt_module_gt_ + 7, + .opcodes = fun_data_trezor_enums_SafetyCheckLevel__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_SafetyCheckLevel[5] = { + MP_QSTR_trezor_slash_enums_slash_SafetyCheckLevel_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_Strict, + MP_QSTR_PromptAlways, + MP_QSTR_PromptTemporarily, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_SafetyCheckLevel = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_SafetyCheckLevel, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_SafetyCheckLevel__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_SdProtectOperationType +// - original source file: build/firmware/src/trezor/enums/SdProtectOperationType.mpy +// - frozen file name: trezor/enums/SdProtectOperationType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/SdProtectOperationType.py, scope trezor_enums_SdProtectOperationType__lt_module_gt_ +static const byte fun_data_trezor_enums_SdProtectOperationType__lt_module_gt_[18] = { + 0x00,0x0a, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'DISABLE' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'ENABLE' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'REFRESH' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_SdProtectOperationType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_SdProtectOperationType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_SdProtectOperationType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_SdProtectOperationType__lt_module_gt_ + 7, + .opcodes = fun_data_trezor_enums_SdProtectOperationType__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_SdProtectOperationType[5] = { + MP_QSTR_trezor_slash_enums_slash_SdProtectOperationType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_DISABLE, + MP_QSTR_ENABLE, + MP_QSTR_REFRESH, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_SdProtectOperationType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_SdProtectOperationType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_SdProtectOperationType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_WordRequestType +// - original source file: build/firmware/src/trezor/enums/WordRequestType.mpy +// - frozen file name: trezor/enums/WordRequestType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/WordRequestType.py, scope trezor_enums_WordRequestType__lt_module_gt_ +static const byte fun_data_trezor_enums_WordRequestType__lt_module_gt_[18] = { + 0x00,0x0a, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'Plain' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'Matrix9' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'Matrix6' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_WordRequestType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_WordRequestType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_WordRequestType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_WordRequestType__lt_module_gt_ + 7, + .opcodes = fun_data_trezor_enums_WordRequestType__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_WordRequestType[5] = { + MP_QSTR_trezor_slash_enums_slash_WordRequestType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_Plain, + MP_QSTR_Matrix9, + MP_QSTR_Matrix6, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_WordRequestType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_WordRequestType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_WordRequestType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums___init__ +// - original source file: build/firmware/src/trezor/enums/__init__.mpy +// - frozen file name: trezor/enums/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/__init__.py, scope trezor_enums___init____lt_module_gt_ +static const byte fun_data_trezor_enums___init____lt_module_gt_[6] = { + 0x00,0x04, // prelude + 0x01, // names: + 0x40, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 6, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums___init____lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums___init____lt_module_gt_ + 4, + .opcodes = fun_data_trezor_enums___init____lt_module_gt_ + 4, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums___init__[2] = { + MP_QSTR_trezor_slash_enums_slash___init___dot_py, + MP_QSTR__lt_module_gt_, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums___init__, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps___init__ +// - original source file: build/firmware/src/apps/__init__.mpy +// - frozen file name: apps/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/__init__.py, scope apps___init____lt_module_gt_ +static const byte fun_data_apps___init____lt_module_gt_[5] = { + 0x00,0x02, // prelude + 0x01, // names: + // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 5, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps___init____lt_module_gt_ + 3, + .opcodes = fun_data_apps___init____lt_module_gt_ + 3, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps___init__[2] = { + MP_QSTR_apps_slash___init___dot_py, + MP_QSTR__lt_module_gt_, +}; + +static const mp_frozen_module_t frozen_module_apps___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_base +// - original source file: build/firmware/src/apps/base.mpy +// - frozen file name: apps/base.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/base.py, scope apps_base__lt_module_gt_ +static const byte fun_data_apps_base__lt_module_gt_[242] = { + 0x20,0x5c, // prelude + 0x01, // names: + 0x40,0x29,0x29,0x3e,0x32,0x52,0x4c,0x80,0x10,0x84,0x0f,0x84,0x6e,0x84,0x1d,0x65,0x20,0x65,0x20,0x65,0x40,0x85,0x10,0x65,0x40,0x85,0x09,0x85,0x18,0x85,0x33,0x85,0x08,0x85,0x1a,0x89,0x09,0x65,0x40,0x85,0x10,0x85,0x18,0x85,0x0a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'storage.cache' + 0x13,0x03, // LOAD_ATTR 'cache' + 0x16,0x81,0x6b, // STORE_NAME 'storage_cache' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x04, // IMPORT_NAME 'storage.device' + 0x13,0x05, // LOAD_ATTR 'device' + 0x16,0x81,0x6c, // STORE_NAME 'storage_device' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'config' + 0x10,0x07, // LOAD_CONST_STRING 'utils' + 0x10,0x08, // LOAD_CONST_STRING 'wire' + 0x10,0x09, // LOAD_CONST_STRING 'workflow' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x0a, // IMPORT_NAME 'trezor' + 0x1c,0x06, // IMPORT_FROM 'config' + 0x16,0x06, // STORE_NAME 'config' + 0x1c,0x07, // IMPORT_FROM 'utils' + 0x16,0x07, // STORE_NAME 'utils' + 0x1c,0x08, // IMPORT_FROM 'wire' + 0x16,0x08, // STORE_NAME 'wire' + 0x1c,0x09, // IMPORT_FROM 'workflow' + 0x16,0x09, // STORE_NAME 'workflow' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'HomescreenFormat' + 0x10,0x0c, // LOAD_CONST_STRING 'MessageType' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0d, // IMPORT_NAME 'trezor.enums' + 0x1c,0x0b, // IMPORT_FROM 'HomescreenFormat' + 0x16,0x0b, // STORE_NAME 'HomescreenFormat' + 0x1c,0x0c, // IMPORT_FROM 'MessageType' + 0x16,0x0c, // STORE_NAME 'MessageType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'Success' + 0x10,0x0f, // LOAD_CONST_STRING 'UnlockPath' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x10, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0e, // IMPORT_FROM 'Success' + 0x16,0x0e, // STORE_NAME 'Success' + 0x1c,0x0f, // IMPORT_FROM 'UnlockPath' + 0x16,0x0f, // STORE_NAME 'UnlockPath' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x11, // LOAD_CONST_STRING 'workflow_handlers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x12, // IMPORT_NAME '' + 0x1c,0x11, // IMPORT_FROM 'workflow_handlers' + 0x16,0x11, // STORE_NAME 'workflow_handlers' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x13, // STORE_NAME 'busy_expiry_ms' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x19, // STORE_NAME 'get_features' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x7b, // STORE_NAME 'handle_Initialize' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x81,0x05, // STORE_NAME 'handle_GetFeatures' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x81,0x06, // STORE_NAME 'handle_Cancel' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x81,0x08, // STORE_NAME 'handle_LockDevice' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x81,0x09, // STORE_NAME 'handle_SetBusy' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x81,0x10, // STORE_NAME 'handle_EndSession' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x81,0x11, // STORE_NAME 'handle_Ping' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x81,0x1b, // STORE_NAME 'handle_DoPreauthorized' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x81,0x28, // STORE_NAME 'handle_UnlockPath' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x81,0x44, // STORE_NAME 'handle_CancelAuthorization' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x81,0x46, // STORE_NAME 'set_homescreen' + 0x52, // LOAD_CONST_TRUE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x0d, // MAKE_FUNCTION_DEFARGS 13 + 0x16,0x81,0x4e, // STORE_NAME 'lock_device' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x16,0x81,0x51, // STORE_NAME 'lock_device_if_unlocked' + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x16,0x81,0x54, // STORE_NAME 'unlock_device' + 0x32,0x10, // MAKE_FUNCTION 16 + 0x16,0x81,0x57, // STORE_NAME 'get_pinlocked_handler' + 0x32,0x11, // MAKE_FUNCTION 17 + 0x16,0x81,0x59, // STORE_NAME 'reload_settings_from_storage' + 0x32,0x12, // MAKE_FUNCTION 18 + 0x16,0x81,0x5f, // STORE_NAME 'boot' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_base__lt_module_gt_ +// frozen bytecode for file apps/base.py, scope apps_base_busy_expiry_ms +static const byte fun_data_apps_base_busy_expiry_ms[58] = { + 0x38,0x14, // prelude + 0x13, // names: busy_expiry_ms + 0x80,0x1b,0x60,0x20,0x2d,0x25,0x42,0x45,0x2c, // code info + 0x12,0x81,0x6b, // LOAD_GLOBAL 'storage_cache' + 0x14,0x14, // LOAD_METHOD 'get_int' + 0x12,0x81,0x6b, // LOAD_GLOBAL 'storage_cache' + 0x13,0x15, // LOAD_ATTR 'APP_COMMON_BUSY_DEADLINE_MS' + 0x36,0x01, // CALL_METHOD 1 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x63, // RETURN_VALUE + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x16, // IMPORT_NAME 'utime' + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x17, // LOAD_METHOD 'ticks_diff' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x14,0x18, // LOAD_METHOD 'ticks_ms' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_base_busy_expiry_ms = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_base_busy_expiry_ms, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 58, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_base_busy_expiry_ms + 3, + .line_info_top = fun_data_apps_base_busy_expiry_ms + 12, + .opcodes = fun_data_apps_base_busy_expiry_ms + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_base__lt_module_gt_ +// frozen bytecode for file apps/base.py, scope apps_base_get_features +static const byte fun_data_apps_base_get_features[569] = { + 0x88,0x30,0x96,0x02, // prelude + 0x19, // names: get_features + 0x80,0x2a,0x27,0x2b,0x2b,0x50,0x50,0x47,0x4c,0x26,0x26,0x26,0x26,0x26,0x26,0x29,0x29,0x28,0x28,0x6e,0x28,0x28,0x6a,0x29,0x49,0x47,0x80,0x09,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x68,0x20,0x20,0x25,0x20,0x23,0x68,0x40,0x26,0x4b,0x4a,0x44,0x6a,0x49,0x2a,0x2a,0x2a,0x2a,0x2a,0x28,0x68,0x26,0x47,0x4a,0x44,0x29,0x2a,0x28,0x2a,0x2a,0x2a,0x4a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x1a, // IMPORT_NAME 'storage.recovery' + 0x13,0x1b, // LOAD_ATTR 'recovery' + 0xc0, // STORE_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1c, // LOAD_CONST_STRING 'Capability' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'trezor.enums' + 0x1c,0x1c, // IMPORT_FROM 'Capability' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1d, // LOAD_CONST_STRING 'Features' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'trezor.messages' + 0x1c,0x1d, // IMPORT_FROM 'Features' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1e, // LOAD_CONST_STRING 'HEIGHT' + 0x10,0x1f, // LOAD_CONST_STRING 'WIDTH' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x20, // IMPORT_NAME 'trezor.ui' + 0x1c,0x1e, // IMPORT_FROM 'HEIGHT' + 0xc3, // STORE_FAST 3 + 0x1c,0x1f, // IMPORT_FROM 'WIDTH' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x21, // LOAD_CONST_STRING 'mnemonic' + 0x10,0x22, // LOAD_CONST_STRING 'safety_checks' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x23, // IMPORT_NAME 'apps.common' + 0x1c,0x21, // IMPORT_FROM 'mnemonic' + 0xc5, // STORE_FAST 5 + 0x1c,0x22, // IMPORT_FROM 'safety_checks' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x10,0x24, // LOAD_CONST_STRING 'vendor' + 0x10,0x25, // LOAD_CONST_STRING 'trezor.io' + 0x10,0x26, // LOAD_CONST_STRING 'fw_vendor' + 0x12,0x07, // LOAD_GLOBAL 'utils' + 0x14,0x27, // LOAD_METHOD 'firmware_vendor' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x28, // LOAD_CONST_STRING 'language' + 0x10,0x29, // LOAD_CONST_STRING 'en-US' + 0x10,0x2a, // LOAD_CONST_STRING 'major_version' + 0x12,0x07, // LOAD_GLOBAL 'utils' + 0x13,0x2b, // LOAD_ATTR 'VERSION_MAJOR' + 0x10,0x2c, // LOAD_CONST_STRING 'minor_version' + 0x12,0x07, // LOAD_GLOBAL 'utils' + 0x13,0x2d, // LOAD_ATTR 'VERSION_MINOR' + 0x10,0x2e, // LOAD_CONST_STRING 'patch_version' + 0x12,0x07, // LOAD_GLOBAL 'utils' + 0x13,0x2f, // LOAD_ATTR 'VERSION_PATCH' + 0x10,0x30, // LOAD_CONST_STRING 'revision' + 0x12,0x07, // LOAD_GLOBAL 'utils' + 0x13,0x31, // LOAD_ATTR 'SCM_REVISION' + 0x10,0x32, // LOAD_CONST_STRING 'model' + 0x12,0x07, // LOAD_GLOBAL 'utils' + 0x13,0x33, // LOAD_ATTR 'MODEL' + 0x10,0x34, // LOAD_CONST_STRING 'internal_model' + 0x12,0x07, // LOAD_GLOBAL 'utils' + 0x13,0x35, // LOAD_ATTR 'INTERNAL_MODEL' + 0x10,0x36, // LOAD_CONST_STRING 'device_id' + 0x12,0x81,0x6c, // LOAD_GLOBAL 'storage_device' + 0x14,0x37, // LOAD_METHOD 'get_device_id' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x38, // LOAD_CONST_STRING 'label' + 0x12,0x81,0x6c, // LOAD_GLOBAL 'storage_device' + 0x14,0x39, // LOAD_METHOD 'get_label' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x3a, // LOAD_CONST_STRING 'pin_protection' + 0x12,0x06, // LOAD_GLOBAL 'config' + 0x14,0x3b, // LOAD_METHOD 'has_pin' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x3c, // LOAD_CONST_STRING 'unlocked' + 0x12,0x06, // LOAD_GLOBAL 'config' + 0x14,0x3d, // LOAD_METHOD 'is_unlocked' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x3e, // LOAD_CONST_STRING 'busy' + 0x12,0x13, // LOAD_GLOBAL 'busy_expiry_ms' + 0x34,0x00, // CALL_FUNCTION 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x10,0x3f, // LOAD_CONST_STRING 'homescreen_width' + 0xb4, // LOAD_FAST 4 + 0x10,0x40, // LOAD_CONST_STRING 'homescreen_height' + 0xb3, // LOAD_FAST 3 + 0x10,0x41, // LOAD_CONST_STRING 'unit_color' + 0x12,0x07, // LOAD_GLOBAL 'utils' + 0x14,0x41, // LOAD_METHOD 'unit_color' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x42, // LOAD_CONST_STRING 'unit_btconly' + 0x12,0x07, // LOAD_GLOBAL 'utils' + 0x14,0x42, // LOAD_METHOD 'unit_btconly' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x43, // LOAD_CONST_STRING 'bootloader_locked' + 0x12,0x07, // LOAD_GLOBAL 'utils' + 0x14,0x43, // LOAD_METHOD 'bootloader_locked' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0xa6,0x00, // CALL_FUNCTION 4864 + 0xc7, // STORE_FAST 7 + 0x12,0x07, // LOAD_GLOBAL 'utils' + 0x13,0x35, // LOAD_ATTR 'INTERNAL_MODEL' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xdd, // BINARY_OP 6 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x0b, // LOAD_GLOBAL 'HomescreenFormat' + 0x13,0x44, // LOAD_ATTR 'ToiG' + 0xb7, // LOAD_FAST 7 + 0x18,0x45, // STORE_ATTR 'homescreen_format' + 0x42,0x47, // JUMP 7 + 0x12,0x0b, // LOAD_GLOBAL 'HomescreenFormat' + 0x13,0x46, // LOAD_ATTR 'Jpeg' + 0xb7, // LOAD_FAST 7 + 0x18,0x45, // STORE_ATTR 'homescreen_format' + 0xb1, // LOAD_FAST 1 + 0x13,0x47, // LOAD_ATTR 'Bitcoin' + 0xb1, // LOAD_FAST 1 + 0x13,0x48, // LOAD_ATTR 'Bitcoin_like' + 0xb1, // LOAD_FAST 1 + 0x13,0x49, // LOAD_ATTR 'Binance' + 0xb1, // LOAD_FAST 1 + 0x13,0x4a, // LOAD_ATTR 'Cardano' + 0xb1, // LOAD_FAST 1 + 0x13,0x4b, // LOAD_ATTR 'Crypto' + 0xb1, // LOAD_FAST 1 + 0x13,0x4c, // LOAD_ATTR 'Ethereum' + 0xb1, // LOAD_FAST 1 + 0x13,0x4d, // LOAD_ATTR 'Monero' + 0xb1, // LOAD_FAST 1 + 0x13,0x4e, // LOAD_ATTR 'Ripple' + 0xb1, // LOAD_FAST 1 + 0x13,0x4f, // LOAD_ATTR 'Stellar' + 0xb1, // LOAD_FAST 1 + 0x13,0x50, // LOAD_ATTR 'Tezos' + 0xb1, // LOAD_FAST 1 + 0x13,0x51, // LOAD_ATTR 'U2F' + 0xb1, // LOAD_FAST 1 + 0x13,0x52, // LOAD_ATTR 'Shamir' + 0xb1, // LOAD_FAST 1 + 0x13,0x53, // LOAD_ATTR 'ShamirGroups' + 0xb1, // LOAD_FAST 1 + 0x13,0x54, // LOAD_ATTR 'PassphraseEntry' + 0x2b,0x0e, // BUILD_LIST 14 + 0xb7, // LOAD_FAST 7 + 0x18,0x55, // STORE_ATTR 'capabilities' + 0xb7, // LOAD_FAST 7 + 0x13,0x55, // LOAD_ATTR 'capabilities' + 0x14,0x56, // LOAD_METHOD 'extend' + 0xb1, // LOAD_FAST 1 + 0x13,0x57, // LOAD_ATTR 'NEM' + 0xb1, // LOAD_FAST 1 + 0x13,0x58, // LOAD_ATTR 'EOS' + 0x2b,0x02, // BUILD_LIST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'utils' + 0x13,0x59, // LOAD_ATTR 'USE_SD_CARD' + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x5a, // LOAD_CONST_STRING 'sdcard' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor' + 0x1c,0x5a, // IMPORT_FROM 'sdcard' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x5b, // LOAD_METHOD 'is_present' + 0x36,0x00, // CALL_METHOD 0 + 0xb7, // LOAD_FAST 7 + 0x18,0x5c, // STORE_ATTR 'sd_card_present' + 0x42,0x44, // JUMP 4 + 0x50, // LOAD_CONST_FALSE + 0xb7, // LOAD_FAST 7 + 0x18,0x5c, // STORE_ATTR 'sd_card_present' + 0x12,0x81,0x6c, // LOAD_GLOBAL 'storage_device' + 0x14,0x5d, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0xb7, // LOAD_FAST 7 + 0x18,0x5e, // STORE_ATTR 'initialized' + 0x12,0x06, // LOAD_GLOBAL 'config' + 0x14,0x3d, // LOAD_METHOD 'is_unlocked' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0xa0,0x81, // POP_JUMP_IF_FALSE 160 + 0x12,0x81,0x6c, // LOAD_GLOBAL 'storage_device' + 0x14,0x5f, // LOAD_METHOD 'is_passphrase_enabled' + 0x36,0x00, // CALL_METHOD 0 + 0xb7, // LOAD_FAST 7 + 0x18,0x60, // STORE_ATTR 'passphrase_protection' + 0x12,0x81,0x6c, // LOAD_GLOBAL 'storage_device' + 0x14,0x61, // LOAD_METHOD 'needs_backup' + 0x36,0x00, // CALL_METHOD 0 + 0xb7, // LOAD_FAST 7 + 0x18,0x61, // STORE_ATTR 'needs_backup' + 0x12,0x81,0x6c, // LOAD_GLOBAL 'storage_device' + 0x14,0x62, // LOAD_METHOD 'unfinished_backup' + 0x36,0x00, // CALL_METHOD 0 + 0xb7, // LOAD_FAST 7 + 0x18,0x62, // STORE_ATTR 'unfinished_backup' + 0x12,0x81,0x6c, // LOAD_GLOBAL 'storage_device' + 0x14,0x63, // LOAD_METHOD 'no_backup' + 0x36,0x00, // CALL_METHOD 0 + 0xb7, // LOAD_FAST 7 + 0x18,0x63, // STORE_ATTR 'no_backup' + 0x12,0x81,0x6c, // LOAD_GLOBAL 'storage_device' + 0x14,0x64, // LOAD_METHOD 'get_flags' + 0x36,0x00, // CALL_METHOD 0 + 0xb7, // LOAD_FAST 7 + 0x18,0x65, // STORE_ATTR 'flags' + 0xb0, // LOAD_FAST 0 + 0x14,0x66, // LOAD_METHOD 'is_in_progress' + 0x36,0x00, // CALL_METHOD 0 + 0xb7, // LOAD_FAST 7 + 0x18,0x67, // STORE_ATTR 'recovery_mode' + 0xb5, // LOAD_FAST 5 + 0x14,0x68, // LOAD_METHOD 'get_type' + 0x36,0x00, // CALL_METHOD 0 + 0xb7, // LOAD_FAST 7 + 0x18,0x69, // STORE_ATTR 'backup_type' + 0x12,0x07, // LOAD_GLOBAL 'utils' + 0x13,0x59, // LOAD_ATTR 'USE_SD_CARD' + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x6a, // IMPORT_NAME 'storage.sd_salt' + 0x13,0x6b, // LOAD_ATTR 'sd_salt' + 0xc9, // STORE_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x14,0x6c, // LOAD_METHOD 'is_enabled' + 0x36,0x00, // CALL_METHOD 0 + 0xb7, // LOAD_FAST 7 + 0x18,0x6d, // STORE_ATTR 'sd_protection' + 0x42,0x44, // JUMP 4 + 0x50, // LOAD_CONST_FALSE + 0xb7, // LOAD_FAST 7 + 0x18,0x6d, // STORE_ATTR 'sd_protection' + 0x12,0x06, // LOAD_GLOBAL 'config' + 0x14,0x6e, // LOAD_METHOD 'has_wipe_code' + 0x36,0x00, // CALL_METHOD 0 + 0xb7, // LOAD_FAST 7 + 0x18,0x6f, // STORE_ATTR 'wipe_code_protection' + 0x12,0x81,0x6c, // LOAD_GLOBAL 'storage_device' + 0x14,0x70, // LOAD_METHOD 'get_passphrase_always_on_device' + 0x36,0x00, // CALL_METHOD 0 + 0xb7, // LOAD_FAST 7 + 0x18,0x71, // STORE_ATTR 'passphrase_always_on_device' + 0xb6, // LOAD_FAST 6 + 0x14,0x72, // LOAD_METHOD 'read_setting' + 0x36,0x00, // CALL_METHOD 0 + 0xb7, // LOAD_FAST 7 + 0x18,0x22, // STORE_ATTR 'safety_checks' + 0x12,0x81,0x6c, // LOAD_GLOBAL 'storage_device' + 0x14,0x73, // LOAD_METHOD 'get_autolock_delay_ms' + 0x36,0x00, // CALL_METHOD 0 + 0xb7, // LOAD_FAST 7 + 0x18,0x74, // STORE_ATTR 'auto_lock_delay_ms' + 0x12,0x81,0x6c, // LOAD_GLOBAL 'storage_device' + 0x14,0x75, // LOAD_METHOD 'get_rotation' + 0x36,0x00, // CALL_METHOD 0 + 0xb7, // LOAD_FAST 7 + 0x18,0x76, // STORE_ATTR 'display_rotation' + 0x12,0x81,0x6c, // LOAD_GLOBAL 'storage_device' + 0x14,0x77, // LOAD_METHOD 'get_experimental_features' + 0x36,0x00, // CALL_METHOD 0 + 0xb7, // LOAD_FAST 7 + 0x18,0x78, // STORE_ATTR 'experimental_features' + 0x12,0x81,0x6c, // LOAD_GLOBAL 'storage_device' + 0x14,0x79, // LOAD_METHOD 'get_hide_passphrase_from_host' + 0x36,0x00, // CALL_METHOD 0 + 0xb7, // LOAD_FAST 7 + 0x18,0x7a, // STORE_ATTR 'hide_passphrase_from_host' + 0xb7, // LOAD_FAST 7 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_base_get_features = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_base_get_features, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 569, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 50, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_apps_base_get_features + 5, + .line_info_top = fun_data_apps_base_get_features + 79, + .opcodes = fun_data_apps_base_get_features + 79, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_base__lt_module_gt_ +// frozen bytecode for file apps/base.py, scope apps_base_handle_Initialize +static const byte fun_data_apps_base_handle_Initialize[148] = { + 0xc1,0x40,0x2c, // prelude + 0x7b,0x81,0x6d, // names: handle_Initialize, msg + 0x80,0x98,0x4b,0x20,0x2d,0x4f,0x43,0x29,0x6d,0x20,0x29,0x28,0x42,0x23,0x26,0x25,0x6f,0x25,0x24, // code info + 0x12,0x81,0x6b, // LOAD_GLOBAL 'storage_cache' + 0x14,0x7c, // LOAD_METHOD 'start_session' + 0xb0, // LOAD_FAST 0 + 0x13,0x7d, // LOAD_ATTR 'session_id' + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0x12,0x81,0x6b, // LOAD_GLOBAL 'storage_cache' + 0x14,0x7e, // LOAD_METHOD 'get' + 0x12,0x81,0x6b, // LOAD_GLOBAL 'storage_cache' + 0x13,0x7f, // LOAD_ATTR 'APP_COMMON_DERIVE_CARDANO' + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0x12,0x81,0x6b, // LOAD_GLOBAL 'storage_cache' + 0x14,0x81,0x00, // LOAD_METHOD 'is_set' + 0x12,0x81,0x6b, // LOAD_GLOBAL 'storage_cache' + 0x13,0x81,0x01, // LOAD_ATTR 'APP_COMMON_SEED' + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x44,0x69, // POP_JUMP_IF_FALSE 41 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x02, // LOAD_ATTR 'derive_cardano' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x02, // LOAD_ATTR 'derive_cardano' + 0x12,0x81,0x6e, // LOAD_GLOBAL 'bool' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x81,0x6b, // LOAD_GLOBAL 'storage_cache' + 0x14,0x81,0x03, // LOAD_METHOD 'end_current_session' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x81,0x6b, // LOAD_GLOBAL 'storage_cache' + 0x14,0x7c, // LOAD_METHOD 'start_session' + 0x36,0x00, // CALL_METHOD 0 + 0xc1, // STORE_FAST 1 + 0x50, // LOAD_CONST_FALSE + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x43,0x5a, // POP_JUMP_IF_TRUE 26 + 0x12,0x81,0x6b, // LOAD_GLOBAL 'storage_cache' + 0x14,0x81,0x04, // LOAD_METHOD 'set' + 0x12,0x81,0x6b, // LOAD_GLOBAL 'storage_cache' + 0x13,0x7f, // LOAD_ATTR 'APP_COMMON_DERIVE_CARDANO' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x02, // LOAD_ATTR 'derive_cardano' + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x42,0x42, // JUMP 2 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x19, // LOAD_GLOBAL 'get_features' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x18,0x7d, // STORE_ATTR 'session_id' + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_base_handle_Initialize = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_base_handle_Initialize, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 148, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 123, + .line_info = fun_data_apps_base_handle_Initialize + 6, + .line_info_top = fun_data_apps_base_handle_Initialize + 25, + .opcodes = fun_data_apps_base_handle_Initialize + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_base__lt_module_gt_ +// frozen bytecode for file apps/base.py, scope apps_base_handle_GetFeatures +static const byte fun_data_apps_base_handle_GetFeatures[14] = { + 0x89,0x40,0x0c, // prelude + 0x81,0x05,0x81,0x6d, // names: handle_GetFeatures, msg + 0x80,0xb5, // code info + 0x12,0x19, // LOAD_GLOBAL 'get_features' + 0x34,0x00, // CALL_FUNCTION 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_base_handle_GetFeatures = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_base_handle_GetFeatures, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 133, + .line_info = fun_data_apps_base_handle_GetFeatures + 7, + .line_info_top = fun_data_apps_base_handle_GetFeatures + 9, + .opcodes = fun_data_apps_base_handle_GetFeatures + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_base__lt_module_gt_ +// frozen bytecode for file apps/base.py, scope apps_base_handle_Cancel +static const byte fun_data_apps_base_handle_Cancel[17] = { + 0x89,0x40,0x0c, // prelude + 0x81,0x06,0x81,0x6d, // names: handle_Cancel, msg + 0x80,0xb9, // code info + 0x12,0x08, // LOAD_GLOBAL 'wire' + 0x13,0x81,0x07, // LOAD_ATTR 'ActionCancelled' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_base_handle_Cancel = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_base_handle_Cancel, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 134, + .line_info = fun_data_apps_base_handle_Cancel + 7, + .line_info_top = fun_data_apps_base_handle_Cancel + 9, + .opcodes = fun_data_apps_base_handle_Cancel + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_base__lt_module_gt_ +// frozen bytecode for file apps/base.py, scope apps_base_handle_LockDevice +static const byte fun_data_apps_base_handle_LockDevice[21] = { + 0x89,0x40,0x0e, // prelude + 0x81,0x08,0x81,0x6d, // names: handle_LockDevice, msg + 0x80,0xbd,0x26, // code info + 0x12,0x81,0x4e, // LOAD_GLOBAL 'lock_device' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'Success' + 0x34,0x00, // CALL_FUNCTION 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_base_handle_LockDevice = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_base_handle_LockDevice, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 136, + .line_info = fun_data_apps_base_handle_LockDevice + 7, + .line_info_top = fun_data_apps_base_handle_LockDevice + 10, + .opcodes = fun_data_apps_base_handle_LockDevice + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_base__lt_module_gt_ +// frozen bytecode for file apps/base.py, scope apps_base_handle_SetBusy +static const byte fun_data_apps_base_handle_SetBusy[114] = { + 0xb1,0x40,0x1e, // prelude + 0x81,0x09,0x81,0x6d, // names: handle_SetBusy, msg + 0x80,0xc2,0x29,0x4a,0x26,0x45,0x30,0x51,0x2e,0x26,0x28, // code info + 0x12,0x81,0x6c, // LOAD_GLOBAL 'storage_device' + 0x14,0x5d, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x4a, // POP_JUMP_IF_TRUE 10 + 0x12,0x08, // LOAD_GLOBAL 'wire' + 0x14,0x81,0x0a, // LOAD_METHOD 'NotInitialized' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0b, // LOAD_ATTR 'expiry_ms' + 0x44,0x66, // POP_JUMP_IF_FALSE 38 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x16, // IMPORT_NAME 'utime' + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x0c, // LOAD_METHOD 'ticks_add' + 0xb1, // LOAD_FAST 1 + 0x14,0x18, // LOAD_METHOD 'ticks_ms' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0b, // LOAD_ATTR 'expiry_ms' + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0x12,0x81,0x6b, // LOAD_GLOBAL 'storage_cache' + 0x14,0x81,0x0d, // LOAD_METHOD 'set_int' + 0x12,0x81,0x6b, // LOAD_GLOBAL 'storage_cache' + 0x13,0x15, // LOAD_ATTR 'APP_COMMON_BUSY_DEADLINE_MS' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x4e, // JUMP 14 + 0x12,0x81,0x6b, // LOAD_GLOBAL 'storage_cache' + 0x14,0x81,0x0e, // LOAD_METHOD 'delete' + 0x12,0x81,0x6b, // LOAD_GLOBAL 'storage_cache' + 0x13,0x15, // LOAD_ATTR 'APP_COMMON_BUSY_DEADLINE_MS' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x81,0x46, // LOAD_GLOBAL 'set_homescreen' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'workflow' + 0x14,0x81,0x0f, // LOAD_METHOD 'close_others' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'Success' + 0x34,0x00, // CALL_FUNCTION 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_base_handle_SetBusy = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_base_handle_SetBusy, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 114, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 137, + .line_info = fun_data_apps_base_handle_SetBusy + 7, + .line_info_top = fun_data_apps_base_handle_SetBusy + 18, + .opcodes = fun_data_apps_base_handle_SetBusy + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_base__lt_module_gt_ +// frozen bytecode for file apps/base.py, scope apps_base_handle_EndSession +static const byte fun_data_apps_base_handle_EndSession[24] = { + 0x91,0x40,0x0e, // prelude + 0x81,0x10,0x81,0x6d, // names: handle_EndSession, msg + 0x80,0xd2,0x29, // code info + 0x12,0x81,0x6b, // LOAD_GLOBAL 'storage_cache' + 0x14,0x81,0x03, // LOAD_METHOD 'end_current_session' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'Success' + 0x34,0x00, // CALL_FUNCTION 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_base_handle_EndSession = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_base_handle_EndSession, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 144, + .line_info = fun_data_apps_base_handle_EndSession + 7, + .line_info_top = fun_data_apps_base_handle_EndSession + 10, + .opcodes = fun_data_apps_base_handle_EndSession + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_base__lt_module_gt_ +// frozen bytecode for file apps/base.py, scope apps_base_handle_Ping +static const byte fun_data_apps_base_handle_Ping[83] = { + 0xc1,0x40,0x14, // prelude + 0x81,0x11,0x81,0x6d, // names: handle_Ping, msg + 0x80,0xd7,0x26,0x2d,0x4e,0x38, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x12, // LOAD_ATTR 'button_protection' + 0x44,0x73, // POP_JUMP_IF_FALSE 51 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x13, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'trezor.enums' + 0x1c,0x81,0x13, // IMPORT_FROM 'ButtonRequestType' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x14, // LOAD_CONST_STRING 'confirm_action' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x81,0x15, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x81,0x14, // IMPORT_FROM 'confirm_action' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x10,0x81,0x16, // LOAD_CONST_STRING 'ping' + 0x10,0x81,0x17, // LOAD_CONST_STRING 'Confirm' + 0x10,0x81,0x16, // LOAD_CONST_STRING 'ping' + 0x10,0x81,0x18, // LOAD_CONST_STRING 'br_code' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x19, // LOAD_ATTR 'ProtectCall' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'Success' + 0x10,0x81,0x1a, // LOAD_CONST_STRING 'message' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x1a, // LOAD_ATTR 'message' + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_base_handle_Ping = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_base_handle_Ping, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 83, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 145, + .line_info = fun_data_apps_base_handle_Ping + 7, + .line_info_top = fun_data_apps_base_handle_Ping + 13, + .opcodes = fun_data_apps_base_handle_Ping + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_base__lt_module_gt_ +// frozen bytecode for file apps/base.py, scope apps_base_handle_DoPreauthorized +static const byte fun_data_apps_base_handle_DoPreauthorized[166] = { + 0xd9,0x40,0x26, // prelude + 0x81,0x1b,0x81,0x6d, // names: handle_DoPreauthorized, msg + 0x80,0xe0,0x2d,0x55,0x4d,0x28,0x4a,0x27,0x50,0x4c,0x20,0x25,0x4d,0x25,0x48, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x1c, // LOAD_CONST_STRING 'PreauthorizedRequest' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'trezor.messages' + 0x1c,0x81,0x1c, // IMPORT_FROM 'PreauthorizedRequest' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x1d, // LOAD_CONST_STRING 'call_any' + 0x10,0x81,0x1e, // LOAD_CONST_STRING 'get_context' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x81,0x1f, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x81,0x1d, // IMPORT_FROM 'call_any' + 0xc2, // STORE_FAST 2 + 0x1c,0x81,0x1e, // IMPORT_FROM 'get_context' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x20, // LOAD_CONST_STRING 'authorization' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x23, // IMPORT_NAME 'apps.common' + 0x1c,0x81,0x20, // IMPORT_FROM 'authorization' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x81,0x00, // LOAD_METHOD 'is_set' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x4a, // POP_JUMP_IF_TRUE 10 + 0x12,0x08, // LOAD_GLOBAL 'wire' + 0x14,0x81,0x21, // LOAD_METHOD 'ProcessError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x14,0x81,0x22, // LOAD_METHOD 'get_wire_types' + 0x36,0x00, // CALL_METHOD 0 + 0xc5, // STORE_FAST 5 + 0x12,0x07, // LOAD_GLOBAL 'utils' + 0x14,0x81,0x23, // LOAD_METHOD 'ensure' + 0x12,0x81,0x6e, // LOAD_GLOBAL 'bool' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0xb5, // LOAD_FAST 5 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x35,0x02, // CALL_FUNCTION_VAR_KW 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc6, // STORE_FAST 6 + 0x12,0x11, // LOAD_GLOBAL 'workflow_handlers' + 0x14,0x81,0x24, // LOAD_METHOD 'find_registered_handler' + 0xb3, // LOAD_FAST 3 + 0x34,0x00, // CALL_FUNCTION 0 + 0x13,0x81,0x25, // LOAD_ATTR 'iface' + 0xb6, // LOAD_FAST 6 + 0x13,0x81,0x26, // LOAD_ATTR 'MESSAGE_WIRE_TYPE' + 0x36,0x02, // CALL_METHOD 2 + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x08, // LOAD_GLOBAL 'wire' + 0x14,0x81,0x27, // LOAD_METHOD 'unexpected_message' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE + 0xb7, // LOAD_FAST 7 + 0xb6, // LOAD_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x14,0x7e, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_base_handle_DoPreauthorized = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_base_handle_DoPreauthorized, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 166, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 155, + .line_info = fun_data_apps_base_handle_DoPreauthorized + 7, + .line_info_top = fun_data_apps_base_handle_DoPreauthorized + 22, + .opcodes = fun_data_apps_base_handle_DoPreauthorized + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_base__lt_module_gt_ +// frozen bytecode for file apps/base.py, scope apps_base_handle_UnlockPath +static const byte fun_data_apps_base_handle_UnlockPath[389] = { + 0xd1,0x50,0x4c, // prelude + 0x81,0x28,0x81,0x6d, // names: handle_UnlockPath, msg + 0x80,0xf8,0x2e,0x2d,0x2e,0x55,0x2e,0x35,0x4e,0x67,0x40,0x2a,0x4a,0x27,0x25,0x28,0x35,0x28,0x28,0x67,0x26,0x38,0x48,0x4c,0x21,0x4b,0x6f,0x20,0x33,0x53,0x20,0x25,0x4f,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x29, // LOAD_CONST_STRING 'hmac' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x81,0x2a, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x81,0x29, // IMPORT_FROM 'hmac' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x2b, // LOAD_CONST_STRING 'UnlockedPathRequest' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'trezor.messages' + 0x1c,0x81,0x2b, // IMPORT_FROM 'UnlockedPathRequest' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x14, // LOAD_CONST_STRING 'confirm_action' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x81,0x15, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x81,0x14, // IMPORT_FROM 'confirm_action' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x1d, // LOAD_CONST_STRING 'call_any' + 0x10,0x81,0x1e, // LOAD_CONST_STRING 'get_context' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x81,0x1f, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x81,0x1d, // IMPORT_FROM 'call_any' + 0xc4, // STORE_FAST 4 + 0x1c,0x81,0x1e, // IMPORT_FROM 'get_context' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x2c, // LOAD_CONST_STRING 'SLIP25_PURPOSE' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x81,0x2d, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x81,0x2c, // IMPORT_FROM 'SLIP25_PURPOSE' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x2e, // LOAD_CONST_STRING 'Slip21Node' + 0x10,0x81,0x2f, // LOAD_CONST_STRING 'get_seed' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x81,0x30, // IMPORT_NAME 'apps.common.seed' + 0x1c,0x81,0x2e, // IMPORT_FROM 'Slip21Node' + 0xc7, // STORE_FAST 7 + 0x1c,0x81,0x2f, // IMPORT_FROM 'get_seed' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x31, // LOAD_CONST_STRING 'write_uint32_le' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x81,0x32, // IMPORT_NAME 'apps.common.writers' + 0x1c,0x81,0x31, // IMPORT_FROM 'write_uint32_le' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x2b,0x02, // BUILD_LIST 2 + 0xca, // STORE_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x33, // LOAD_ATTR 'address_n' + 0xb6, // LOAD_FAST 6 + 0x2b,0x01, // BUILD_LIST 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x08, // LOAD_GLOBAL 'wire' + 0x14,0x81,0x34, // LOAD_METHOD 'DataError' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb8, // LOAD_FAST 8 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xcb, // STORE_FAST 11 + 0xb7, // LOAD_FAST 7 + 0xbb, // LOAD_FAST 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcc, // STORE_FAST 12 + 0xbc, // LOAD_FAST 12 + 0x14,0x81,0x35, // LOAD_METHOD 'derive_path' + 0xba, // LOAD_FAST 10 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'utils' + 0x14,0x81,0x36, // LOAD_METHOD 'HashWriter' + 0xb1, // LOAD_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x37, // LOAD_ATTR 'SHA256' + 0xbc, // LOAD_FAST 12 + 0x14,0x81,0x38, // LOAD_METHOD 'key' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x36,0x01, // CALL_METHOD 1 + 0xcd, // STORE_FAST 13 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x33, // LOAD_ATTR 'address_n' + 0x5f, // GET_ITER_STACK + 0x4b,0x09, // FOR_ITER 9 + 0xce, // STORE_FAST 14 + 0xb9, // LOAD_FAST 9 + 0xbd, // LOAD_FAST 13 + 0xbe, // LOAD_FAST 14 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x35, // JUMP -11 + 0xbd, // LOAD_FAST 13 + 0x14,0x81,0x39, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xcf, // STORE_FAST 15 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x3a, // LOAD_ATTR 'mac' + 0x44,0x6c, // POP_JUMP_IF_FALSE 44 + 0x12,0x81,0x6f, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x3a, // LOAD_ATTR 'mac' + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x81,0x6f, // LOAD_GLOBAL 'len' + 0xbf, // LOAD_FAST 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x4e, // POP_JUMP_IF_TRUE 14 + 0x12,0x07, // LOAD_GLOBAL 'utils' + 0x14,0x81,0x3b, // LOAD_METHOD 'consteq' + 0xbf, // LOAD_FAST 15 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x3a, // LOAD_ATTR 'mac' + 0x36,0x02, // CALL_METHOD 2 + 0x43,0x4a, // POP_JUMP_IF_TRUE 10 + 0x12,0x08, // LOAD_GLOBAL 'wire' + 0x14,0x81,0x34, // LOAD_METHOD 'DataError' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x42,0x5b, // JUMP 27 + 0xb3, // LOAD_FAST 3 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x10,0x81,0x3c, // LOAD_CONST_STRING 'title' + 0x10,0x81,0x3d, // LOAD_CONST_STRING 'Coinjoin' + 0x10,0x81,0x3e, // LOAD_CONST_STRING 'description' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x10,0x81,0x3f, // LOAD_CONST_STRING 'verb' + 0x10,0x81,0x40, // LOAD_CONST_STRING 'ACCESS' + 0x34,0x86,0x01, // CALL_FUNCTION 769 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'MessageType' + 0x13,0x81,0x41, // LOAD_ATTR 'GetAddress' + 0x12,0x0c, // LOAD_GLOBAL 'MessageType' + 0x13,0x81,0x42, // LOAD_ATTR 'GetPublicKey' + 0x12,0x0c, // LOAD_GLOBAL 'MessageType' + 0x13,0x81,0x43, // LOAD_ATTR 'SignTx' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x26,0x10, // STORE_FAST_N 16 + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x10,0x81,0x3a, // LOAD_CONST_STRING 'mac' + 0xbf, // LOAD_FAST 15 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x24,0x10, // LOAD_FAST_N 16 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x35,0x02, // CALL_FUNCTION_VAR_KW 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x11, // STORE_FAST_N 17 + 0x12,0x11, // LOAD_GLOBAL 'workflow_handlers' + 0x14,0x81,0x24, // LOAD_METHOD 'find_registered_handler' + 0xb5, // LOAD_FAST 5 + 0x34,0x00, // CALL_FUNCTION 0 + 0x13,0x81,0x25, // LOAD_ATTR 'iface' + 0x24,0x11, // LOAD_FAST_N 17 + 0x13,0x81,0x26, // LOAD_ATTR 'MESSAGE_WIRE_TYPE' + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x12, // STORE_FAST_N 18 + 0x24,0x12, // LOAD_FAST_N 18 + 0x24,0x11, // LOAD_FAST_N 17 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_base_handle_UnlockPath = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_base_handle_UnlockPath, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 389, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 27, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 168, + .line_info = fun_data_apps_base_handle_UnlockPath + 7, + .line_info_top = fun_data_apps_base_handle_UnlockPath + 41, + .opcodes = fun_data_apps_base_handle_UnlockPath + 41, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_base__lt_module_gt_ +// frozen bytecode for file apps/base.py, scope apps_base_handle_CancelAuthorization +static const byte fun_data_apps_base_handle_CancelAuthorization[51] = { + 0xa1,0x40,0x12, // prelude + 0x81,0x44,0x81,0x6d, // names: handle_CancelAuthorization, msg + 0x90,0x2b,0x4d,0x27,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x20, // LOAD_CONST_STRING 'authorization' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x23, // IMPORT_NAME 'apps.common' + 0x1c,0x81,0x20, // IMPORT_FROM 'authorization' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x45, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'workflow' + 0x14,0x81,0x0f, // LOAD_METHOD 'close_others' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'Success' + 0x10,0x81,0x1a, // LOAD_CONST_STRING 'message' + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_base_handle_CancelAuthorization = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_base_handle_CancelAuthorization, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 196, + .line_info = fun_data_apps_base_handle_CancelAuthorization + 7, + .line_info_top = fun_data_apps_base_handle_CancelAuthorization + 12, + .opcodes = fun_data_apps_base_handle_CancelAuthorization + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_base__lt_module_gt_ +// frozen bytecode for file apps/base.py, scope apps_base_set_homescreen +static const byte fun_data_apps_base_set_homescreen[146] = { + 0x40,0x20, // prelude + 0x81,0x46, // names: set_homescreen + 0x90,0x33,0x47,0x46,0x2f,0x4e,0x48,0x28,0x4e,0x47,0x27,0x4e,0x67,0x4e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x1a, // IMPORT_NAME 'storage.recovery' + 0x13,0x1b, // LOAD_ATTR 'recovery' + 0xc0, // STORE_FAST 0 + 0x12,0x09, // LOAD_GLOBAL 'workflow' + 0x13,0x81,0x47, // LOAD_ATTR 'set_default' + 0xc1, // STORE_FAST 1 + 0x12,0x81,0x6b, // LOAD_GLOBAL 'storage_cache' + 0x14,0x81,0x00, // LOAD_METHOD 'is_set' + 0x12,0x81,0x6b, // LOAD_GLOBAL 'storage_cache' + 0x13,0x15, // LOAD_ATTR 'APP_COMMON_BUSY_DEADLINE_MS' + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x48, // LOAD_CONST_STRING 'busyscreen' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x81,0x49, // IMPORT_NAME 'apps.homescreen' + 0x1c,0x81,0x48, // IMPORT_FROM 'busyscreen' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0xcc,0x80, // JUMP 76 + 0x12,0x06, // LOAD_GLOBAL 'config' + 0x14,0x3d, // LOAD_METHOD 'is_unlocked' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x55, // POP_JUMP_IF_TRUE 21 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x4a, // LOAD_CONST_STRING 'lockscreen' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x81,0x49, // IMPORT_NAME 'apps.homescreen' + 0x1c,0x81,0x4a, // IMPORT_FROM 'lockscreen' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x6f, // JUMP 47 + 0xb0, // LOAD_FAST 0 + 0x14,0x66, // LOAD_METHOD 'is_in_progress' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x4b, // LOAD_CONST_STRING 'recovery_homescreen' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x81,0x4c, // IMPORT_NAME 'apps.management.recovery_device.homescreen' + 0x1c,0x81,0x4b, // IMPORT_FROM 'recovery_homescreen' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x53, // JUMP 19 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x4d, // LOAD_CONST_STRING 'homescreen' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x81,0x49, // IMPORT_NAME 'apps.homescreen' + 0x1c,0x81,0x4d, // IMPORT_FROM 'homescreen' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_base_set_homescreen = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_base_set_homescreen, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 146, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 198, + .line_info = fun_data_apps_base_set_homescreen + 4, + .line_info_top = fun_data_apps_base_set_homescreen + 18, + .opcodes = fun_data_apps_base_set_homescreen + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_base__lt_module_gt_ +// frozen bytecode for file apps/base.py, scope apps_base_lock_device +static const byte fun_data_apps_base_lock_device[57] = { + 0x91,0x01,0x16, // prelude + 0x81,0x4e,0x81,0x52, // names: lock_device, interrupt_workflow + 0x90,0x4d,0x28,0x28,0x28,0x26,0x23, // code info + 0x12,0x06, // LOAD_GLOBAL 'config' + 0x14,0x3b, // LOAD_METHOD 'has_pin' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x61, // POP_JUMP_IF_FALSE 33 + 0x12,0x06, // LOAD_GLOBAL 'config' + 0x14,0x81,0x4f, // LOAD_METHOD 'lock' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x81,0x57, // LOAD_GLOBAL 'get_pinlocked_handler' + 0x12,0x08, // LOAD_GLOBAL 'wire' + 0x18,0x81,0x50, // STORE_ATTR 'find_handler' + 0x12,0x81,0x46, // LOAD_GLOBAL 'set_homescreen' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x09, // LOAD_GLOBAL 'workflow' + 0x14,0x81,0x0f, // LOAD_METHOD 'close_others' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_base_lock_device = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_base_lock_device, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 206, + .line_info = fun_data_apps_base_lock_device + 7, + .line_info_top = fun_data_apps_base_lock_device + 14, + .opcodes = fun_data_apps_base_lock_device + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_base__lt_module_gt_ +// frozen bytecode for file apps/base.py, scope apps_base_lock_device_if_unlocked +static const byte fun_data_apps_base_lock_device_if_unlocked[32] = { + 0x10,0x0a, // prelude + 0x81,0x51, // names: lock_device_if_unlocked + 0x90,0x56,0x28, // code info + 0x12,0x06, // LOAD_GLOBAL 'config' + 0x14,0x3d, // LOAD_METHOD 'is_unlocked' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x12,0x81,0x4e, // LOAD_GLOBAL 'lock_device' + 0x10,0x81,0x52, // LOAD_CONST_STRING 'interrupt_workflow' + 0x12,0x09, // LOAD_GLOBAL 'workflow' + 0x13,0x81,0x53, // LOAD_ATTR 'autolock_interrupts_workflow' + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_base_lock_device_if_unlocked = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_base_lock_device_if_unlocked, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 209, + .line_info = fun_data_apps_base_lock_device_if_unlocked + 4, + .line_info_top = fun_data_apps_base_lock_device_if_unlocked + 7, + .opcodes = fun_data_apps_base_lock_device_if_unlocked + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_base__lt_module_gt_ +// frozen bytecode for file apps/base.py, scope apps_base_unlock_device +static const byte fun_data_apps_base_unlock_device[60] = { + 0x90,0x40,0x14, // prelude + 0x81,0x54, // names: unlock_device + 0x90,0x5b,0x60,0x40,0x4e,0x48,0x47,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x55, // LOAD_CONST_STRING 'verify_user_pin' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x81,0x56, // IMPORT_NAME 'apps.common.request_pin' + 0x1c,0x81,0x55, // IMPORT_FROM 'verify_user_pin' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'config' + 0x14,0x3d, // LOAD_METHOD 'is_unlocked' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0xb0, // LOAD_FAST 0 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x81,0x46, // LOAD_GLOBAL 'set_homescreen' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x11, // LOAD_GLOBAL 'workflow_handlers' + 0x13,0x81,0x24, // LOAD_ATTR 'find_registered_handler' + 0x12,0x08, // LOAD_GLOBAL 'wire' + 0x18,0x81,0x50, // STORE_ATTR 'find_handler' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_base_unlock_device = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_base_unlock_device, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 60, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 212, + .line_info = fun_data_apps_base_unlock_device + 5, + .line_info_top = fun_data_apps_base_unlock_device + 13, + .opcodes = fun_data_apps_base_unlock_device + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_base__lt_module_gt_ +// frozen bytecode for file apps/base.py, scope apps_base_get_pinlocked_handler +static const byte fun_data_apps_base_get_pinlocked_handler[58] = { + 0x3a,0x23, // prelude + 0x81,0x57,0x81,0x25,0x81,0x70, // names: get_pinlocked_handler, iface, msg_type + 0x90,0x6d,0x2b,0x26,0x42,0x60,0x60,0x29,0x43,0x65,0x20,0x03, // code info + 0x12,0x11, // LOAD_GLOBAL 'workflow_handlers' + 0x14,0x81,0x24, // LOAD_METHOD 'find_registered_handler' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x27,0x03, // STORE_DEREF 3 + 0x25,0x03, // LOAD_DEREF 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x12,0x09, // LOAD_GLOBAL 'workflow' + 0x13,0x81,0x58, // LOAD_ATTR 'ALLOW_WHILE_LOCKED' + 0xdd, // BINARY_OP 6 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x25,0x03, // LOAD_DEREF 3 + 0x63, // RETURN_VALUE + 0xb3, // LOAD_FAST 3 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +// child of apps_base_get_pinlocked_handler +// frozen bytecode for file apps/base.py, scope apps_base_get_pinlocked_handler_wrapper +static const byte fun_data_apps_base_get_pinlocked_handler_wrapper[30] = { + 0x9a,0x40,0x12, // prelude + 0x81,0x6a,0x81,0x71,0x81,0x6d, // names: wrapper, *, msg + 0x90,0x7b,0x29, // code info + 0x12,0x81,0x54, // LOAD_GLOBAL 'unlock_device' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_base_get_pinlocked_handler_wrapper = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_base_get_pinlocked_handler_wrapper, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 234, + .line_info = fun_data_apps_base_get_pinlocked_handler_wrapper + 9, + .line_info_top = fun_data_apps_base_get_pinlocked_handler_wrapper + 12, + .opcodes = fun_data_apps_base_get_pinlocked_handler_wrapper + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_base_get_pinlocked_handler[] = { + &raw_code_apps_base_get_pinlocked_handler_wrapper, +}; + +static const mp_raw_code_t raw_code_apps_base_get_pinlocked_handler = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_base_get_pinlocked_handler, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 58, + #endif + .children = (void *)&children_apps_base_get_pinlocked_handler, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 215, + .line_info = fun_data_apps_base_get_pinlocked_handler + 8, + .line_info_top = fun_data_apps_base_get_pinlocked_handler + 19, + .opcodes = fun_data_apps_base_get_pinlocked_handler + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_base__lt_module_gt_ +// frozen bytecode for file apps/base.py, scope apps_base_reload_settings_from_storage +static const byte fun_data_apps_base_reload_settings_from_storage[75] = { + 0x20,0x10, // prelude + 0x81,0x59, // names: reload_settings_from_storage + 0x90,0x83,0x4d,0x28,0x4d,0x2c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x5a, // LOAD_CONST_STRING 'ui' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor' + 0x1c,0x81,0x5a, // IMPORT_FROM 'ui' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'workflow' + 0x13,0x81,0x5b, // LOAD_ATTR 'idle_timer' + 0x14,0x81,0x04, // LOAD_METHOD 'set' + 0x12,0x81,0x6c, // LOAD_GLOBAL 'storage_device' + 0x14,0x73, // LOAD_METHOD 'get_autolock_delay_ms' + 0x36,0x00, // CALL_METHOD 0 + 0x12,0x81,0x51, // LOAD_GLOBAL 'lock_device_if_unlocked' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x81,0x6c, // LOAD_GLOBAL 'storage_device' + 0x14,0x77, // LOAD_METHOD 'get_experimental_features' + 0x36,0x00, // CALL_METHOD 0 + 0x12,0x08, // LOAD_GLOBAL 'wire' + 0x18,0x81,0x5c, // STORE_ATTR 'EXPERIMENTAL_ENABLED' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x5d, // LOAD_ATTR 'display' + 0x14,0x81,0x5e, // LOAD_METHOD 'orientation' + 0x12,0x81,0x6c, // LOAD_GLOBAL 'storage_device' + 0x14,0x75, // LOAD_METHOD 'get_rotation' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_base_reload_settings_from_storage = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_base_reload_settings_from_storage, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 75, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 217, + .line_info = fun_data_apps_base_reload_settings_from_storage + 4, + .line_info_top = fun_data_apps_base_reload_settings_from_storage + 10, + .opcodes = fun_data_apps_base_reload_settings_from_storage + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_base__lt_module_gt_ +// frozen bytecode for file apps/base.py, scope apps_base_boot +static const byte fun_data_apps_base_boot[170] = { + 0x68,0x28, // prelude + 0x81,0x5f, // names: boot + 0x90,0x8d,0x63,0x20,0x28,0x29,0x29,0x29,0x29,0x29,0x29,0x28,0x29,0x52,0x4c,0x26,0x28,0x4c, // code info + 0x12,0x0c, // LOAD_GLOBAL 'MessageType' + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x60, // LOAD_ATTR 'Initialize' + 0x12,0x7b, // LOAD_GLOBAL 'handle_Initialize' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x61, // LOAD_ATTR 'GetFeatures' + 0x12,0x81,0x05, // LOAD_GLOBAL 'handle_GetFeatures' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x62, // LOAD_ATTR 'Cancel' + 0x12,0x81,0x06, // LOAD_GLOBAL 'handle_Cancel' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x63, // LOAD_ATTR 'LockDevice' + 0x12,0x81,0x08, // LOAD_GLOBAL 'handle_LockDevice' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x64, // LOAD_ATTR 'EndSession' + 0x12,0x81,0x10, // LOAD_GLOBAL 'handle_EndSession' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x65, // LOAD_ATTR 'Ping' + 0x12,0x81,0x11, // LOAD_GLOBAL 'handle_Ping' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x66, // LOAD_ATTR 'DoPreauthorized' + 0x12,0x81,0x1b, // LOAD_GLOBAL 'handle_DoPreauthorized' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'UnlockPath' + 0x12,0x81,0x28, // LOAD_GLOBAL 'handle_UnlockPath' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x67, // LOAD_ATTR 'CancelAuthorization' + 0x12,0x81,0x44, // LOAD_GLOBAL 'handle_CancelAuthorization' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x68, // LOAD_ATTR 'SetBusy' + 0x12,0x81,0x09, // LOAD_GLOBAL 'handle_SetBusy' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x0a, // BUILD_TUPLE 10 + 0x5f, // GET_ITER_STACK + 0x4b,0x10, // FOR_ITER 16 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc1, // STORE_FAST 1 + 0xc2, // STORE_FAST 2 + 0x12,0x11, // LOAD_GLOBAL 'workflow_handlers' + 0x14,0x81,0x69, // LOAD_METHOD 'register' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x2e, // JUMP -18 + 0x12,0x81,0x59, // LOAD_GLOBAL 'reload_settings_from_storage' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'config' + 0x14,0x3d, // LOAD_METHOD 'is_unlocked' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x11, // LOAD_GLOBAL 'workflow_handlers' + 0x13,0x81,0x24, // LOAD_ATTR 'find_registered_handler' + 0x12,0x08, // LOAD_GLOBAL 'wire' + 0x18,0x81,0x50, // STORE_ATTR 'find_handler' + 0x42,0x48, // JUMP 8 + 0x12,0x81,0x57, // LOAD_GLOBAL 'get_pinlocked_handler' + 0x12,0x08, // LOAD_GLOBAL 'wire' + 0x18,0x81,0x50, // STORE_ATTR 'find_handler' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_base_boot = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_base_boot, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 170, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 223, + .line_info = fun_data_apps_base_boot + 4, + .line_info_top = fun_data_apps_base_boot + 22, + .opcodes = fun_data_apps_base_boot + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_base__lt_module_gt_[] = { + &raw_code_apps_base_busy_expiry_ms, + &raw_code_apps_base_get_features, + &raw_code_apps_base_handle_Initialize, + &raw_code_apps_base_handle_GetFeatures, + &raw_code_apps_base_handle_Cancel, + &raw_code_apps_base_handle_LockDevice, + &raw_code_apps_base_handle_SetBusy, + &raw_code_apps_base_handle_EndSession, + &raw_code_apps_base_handle_Ping, + &raw_code_apps_base_handle_DoPreauthorized, + &raw_code_apps_base_handle_UnlockPath, + &raw_code_apps_base_handle_CancelAuthorization, + &raw_code_apps_base_set_homescreen, + &raw_code_apps_base_lock_device, + &raw_code_apps_base_lock_device_if_unlocked, + &raw_code_apps_base_unlock_device, + &raw_code_apps_base_get_pinlocked_handler, + &raw_code_apps_base_reload_settings_from_storage, + &raw_code_apps_base_boot, +}; + +static const mp_raw_code_t raw_code_apps_base__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_base__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 242, + #endif + .children = (void *)&children_apps_base__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 19, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_base__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_base__lt_module_gt_ + 48, + .opcodes = fun_data_apps_base__lt_module_gt_ + 48, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_base[242] = { + MP_QSTR_apps_slash_base_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_storage_dot_cache, + MP_QSTR_cache, + MP_QSTR_storage_dot_device, + MP_QSTR_device, + MP_QSTR_config, + MP_QSTR_utils, + MP_QSTR_wire, + MP_QSTR_workflow, + MP_QSTR_trezor, + MP_QSTR_HomescreenFormat, + MP_QSTR_MessageType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_Success, + MP_QSTR_UnlockPath, + MP_QSTR_trezor_dot_messages, + MP_QSTR_workflow_handlers, + MP_QSTR_, + MP_QSTR_busy_expiry_ms, + MP_QSTR_get_int, + MP_QSTR_APP_COMMON_BUSY_DEADLINE_MS, + MP_QSTR_utime, + MP_QSTR_ticks_diff, + MP_QSTR_ticks_ms, + MP_QSTR_get_features, + MP_QSTR_storage_dot_recovery, + MP_QSTR_recovery, + MP_QSTR_Capability, + MP_QSTR_Features, + MP_QSTR_HEIGHT, + MP_QSTR_WIDTH, + MP_QSTR_trezor_dot_ui, + MP_QSTR_mnemonic, + MP_QSTR_safety_checks, + MP_QSTR_apps_dot_common, + MP_QSTR_vendor, + MP_QSTR_trezor_dot_io, + MP_QSTR_fw_vendor, + MP_QSTR_firmware_vendor, + MP_QSTR_language, + MP_QSTR_en_hyphen_US, + MP_QSTR_major_version, + MP_QSTR_VERSION_MAJOR, + MP_QSTR_minor_version, + MP_QSTR_VERSION_MINOR, + MP_QSTR_patch_version, + MP_QSTR_VERSION_PATCH, + MP_QSTR_revision, + MP_QSTR_SCM_REVISION, + MP_QSTR_model, + MP_QSTR_MODEL, + MP_QSTR_internal_model, + MP_QSTR_INTERNAL_MODEL, + MP_QSTR_device_id, + MP_QSTR_get_device_id, + MP_QSTR_label, + MP_QSTR_get_label, + MP_QSTR_pin_protection, + MP_QSTR_has_pin, + MP_QSTR_unlocked, + MP_QSTR_is_unlocked, + MP_QSTR_busy, + MP_QSTR_homescreen_width, + MP_QSTR_homescreen_height, + MP_QSTR_unit_color, + MP_QSTR_unit_btconly, + MP_QSTR_bootloader_locked, + MP_QSTR_ToiG, + MP_QSTR_homescreen_format, + MP_QSTR_Jpeg, + MP_QSTR_Bitcoin, + MP_QSTR_Bitcoin_like, + MP_QSTR_Binance, + MP_QSTR_Cardano, + MP_QSTR_Crypto, + MP_QSTR_Ethereum, + MP_QSTR_Monero, + MP_QSTR_Ripple, + MP_QSTR_Stellar, + MP_QSTR_Tezos, + MP_QSTR_U2F, + MP_QSTR_Shamir, + MP_QSTR_ShamirGroups, + MP_QSTR_PassphraseEntry, + MP_QSTR_capabilities, + MP_QSTR_extend, + MP_QSTR_NEM, + MP_QSTR_EOS, + MP_QSTR_USE_SD_CARD, + MP_QSTR_sdcard, + MP_QSTR_is_present, + MP_QSTR_sd_card_present, + MP_QSTR_is_initialized, + MP_QSTR_initialized, + MP_QSTR_is_passphrase_enabled, + MP_QSTR_passphrase_protection, + MP_QSTR_needs_backup, + MP_QSTR_unfinished_backup, + MP_QSTR_no_backup, + MP_QSTR_get_flags, + MP_QSTR_flags, + MP_QSTR_is_in_progress, + MP_QSTR_recovery_mode, + MP_QSTR_get_type, + MP_QSTR_backup_type, + MP_QSTR_storage_dot_sd_salt, + MP_QSTR_sd_salt, + MP_QSTR_is_enabled, + MP_QSTR_sd_protection, + MP_QSTR_has_wipe_code, + MP_QSTR_wipe_code_protection, + MP_QSTR_get_passphrase_always_on_device, + MP_QSTR_passphrase_always_on_device, + MP_QSTR_read_setting, + MP_QSTR_get_autolock_delay_ms, + MP_QSTR_auto_lock_delay_ms, + MP_QSTR_get_rotation, + MP_QSTR_display_rotation, + MP_QSTR_get_experimental_features, + MP_QSTR_experimental_features, + MP_QSTR_get_hide_passphrase_from_host, + MP_QSTR_hide_passphrase_from_host, + MP_QSTR_handle_Initialize, + MP_QSTR_start_session, + MP_QSTR_session_id, + MP_QSTR_get, + MP_QSTR_APP_COMMON_DERIVE_CARDANO, + MP_QSTR_is_set, + MP_QSTR_APP_COMMON_SEED, + MP_QSTR_derive_cardano, + MP_QSTR_end_current_session, + MP_QSTR_set, + MP_QSTR_handle_GetFeatures, + MP_QSTR_handle_Cancel, + MP_QSTR_ActionCancelled, + MP_QSTR_handle_LockDevice, + MP_QSTR_handle_SetBusy, + MP_QSTR_NotInitialized, + MP_QSTR_expiry_ms, + MP_QSTR_ticks_add, + MP_QSTR_set_int, + MP_QSTR_delete, + MP_QSTR_close_others, + MP_QSTR_handle_EndSession, + MP_QSTR_handle_Ping, + MP_QSTR_button_protection, + MP_QSTR_ButtonRequestType, + MP_QSTR_confirm_action, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_ping, + MP_QSTR_Confirm, + MP_QSTR_br_code, + MP_QSTR_ProtectCall, + MP_QSTR_message, + MP_QSTR_handle_DoPreauthorized, + MP_QSTR_PreauthorizedRequest, + MP_QSTR_call_any, + MP_QSTR_get_context, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_authorization, + MP_QSTR_ProcessError, + MP_QSTR_get_wire_types, + MP_QSTR_ensure, + MP_QSTR_find_registered_handler, + MP_QSTR_iface, + MP_QSTR_MESSAGE_WIRE_TYPE, + MP_QSTR_unexpected_message, + MP_QSTR_handle_UnlockPath, + MP_QSTR_hmac, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_UnlockedPathRequest, + MP_QSTR_SLIP25_PURPOSE, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_Slip21Node, + MP_QSTR_get_seed, + MP_QSTR_apps_dot_common_dot_seed, + MP_QSTR_write_uint32_le, + MP_QSTR_apps_dot_common_dot_writers, + MP_QSTR_address_n, + MP_QSTR_DataError, + MP_QSTR_derive_path, + MP_QSTR_HashWriter, + MP_QSTR_SHA256, + MP_QSTR_key, + MP_QSTR_get_digest, + MP_QSTR_mac, + MP_QSTR_consteq, + MP_QSTR_title, + MP_QSTR_Coinjoin, + MP_QSTR_description, + MP_QSTR_verb, + MP_QSTR_ACCESS, + MP_QSTR_GetAddress, + MP_QSTR_GetPublicKey, + MP_QSTR_SignTx, + MP_QSTR_handle_CancelAuthorization, + MP_QSTR_clear, + MP_QSTR_set_homescreen, + MP_QSTR_set_default, + MP_QSTR_busyscreen, + MP_QSTR_apps_dot_homescreen, + MP_QSTR_lockscreen, + MP_QSTR_recovery_homescreen, + MP_QSTR_apps_dot_management_dot_recovery_device_dot_homescreen, + MP_QSTR_homescreen, + MP_QSTR_lock_device, + MP_QSTR_lock, + MP_QSTR_find_handler, + MP_QSTR_lock_device_if_unlocked, + MP_QSTR_interrupt_workflow, + MP_QSTR_autolock_interrupts_workflow, + MP_QSTR_unlock_device, + MP_QSTR_verify_user_pin, + MP_QSTR_apps_dot_common_dot_request_pin, + MP_QSTR_get_pinlocked_handler, + MP_QSTR_ALLOW_WHILE_LOCKED, + MP_QSTR_reload_settings_from_storage, + MP_QSTR_ui, + MP_QSTR_idle_timer, + MP_QSTR_EXPERIMENTAL_ENABLED, + MP_QSTR_display, + MP_QSTR_orientation, + MP_QSTR_boot, + MP_QSTR_Initialize, + MP_QSTR_GetFeatures, + MP_QSTR_Cancel, + MP_QSTR_LockDevice, + MP_QSTR_EndSession, + MP_QSTR_Ping, + MP_QSTR_DoPreauthorized, + MP_QSTR_CancelAuthorization, + MP_QSTR_SetBusy, + MP_QSTR_register, + MP_QSTR_wrapper, + MP_QSTR_storage_cache, + MP_QSTR_storage_device, + MP_QSTR_msg, + MP_QSTR_bool, + MP_QSTR_len, + MP_QSTR_msg_type, + MP_QSTR__star_, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_base_0 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_T1B1), + MP_ROM_QSTR(MP_QSTR_T2B1), +}}; +static const mp_obj_str_t const_obj_apps_base_1 = {{&mp_type_bytes}, 46500, 1, (const byte*)"\x01"}; +static const mp_obj_str_t const_obj_apps_base_3 = {{&mp_type_str}, 4478, 25, (const byte*)"\x44\x65\x76\x69\x63\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64"}; +static const mp_obj_str_t const_obj_apps_base_4 = {{&mp_type_str}, 29265, 26, (const byte*)"\x4e\x6f\x20\x70\x72\x65\x61\x75\x74\x68\x6f\x72\x69\x7a\x65\x64\x20\x6f\x70\x65\x72\x61\x74\x69\x6f\x6e"}; +static const mp_obj_str_t const_obj_apps_base_5 = {{&mp_type_str}, 5978, 34, (const byte*)"\x55\x6e\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x70\x72\x65\x61\x75\x74\x68\x6f\x72\x69\x7a\x61\x74\x69\x6f\x6e\x20\x66\x6f\x75\x6e\x64"}; +static const mp_obj_str_t const_obj_apps_base_6 = {{&mp_type_bytes}, 65473, 6, (const byte*)"\x54\x52\x45\x5a\x4f\x52"}; +static const mp_obj_str_t const_obj_apps_base_7 = {{&mp_type_bytes}, 12583, 16, (const byte*)"\x4b\x65\x79\x63\x68\x61\x69\x6e\x20\x4d\x41\x43\x20\x6b\x65\x79"}; +static const mp_obj_str_t const_obj_apps_base_11 = {{&mp_type_str}, 52519, 29, (const byte*)"\x41\x63\x63\x65\x73\x73\x20\x79\x6f\x75\x72\x20\x63\x6f\x69\x6e\x6a\x6f\x69\x6e\x20\x61\x63\x63\x6f\x75\x6e\x74\x3f"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_base[13] = { + MP_ROM_PTR(&const_obj_apps_base_0), + MP_ROM_PTR(&const_obj_apps_base_1), + MP_ROM_PTR(&mp_const_empty_bytes_obj), + MP_ROM_PTR(&const_obj_apps_base_3), + MP_ROM_PTR(&const_obj_apps_base_4), + MP_ROM_PTR(&const_obj_apps_base_5), + MP_ROM_PTR(&const_obj_apps_base_6), + MP_ROM_PTR(&const_obj_apps_base_7), + MP_ROM_QSTR(MP_QSTR_Invalid_space_path), + MP_ROM_QSTR(MP_QSTR_Invalid_space_MAC), + MP_ROM_QSTR(MP_QSTR_confirm_coinjoin_access), + MP_ROM_PTR(&const_obj_apps_base_11), + MP_ROM_QSTR(MP_QSTR_Authorization_space_cancelled), +}; + +static const mp_frozen_module_t frozen_module_apps_base = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_base, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_base, + }, + .rc = &raw_code_apps_base__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_workflow_handlers +// - original source file: build/firmware/src/apps/workflow_handlers.mpy +// - frozen file name: apps/workflow_handlers.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/workflow_handlers.py, scope apps_workflow_handlers__lt_module_gt_ +static const byte fun_data_apps_workflow_handlers__lt_module_gt_[29] = { + 0x00,0x12, // prelude + 0x01, // names: + 0x40,0x60,0x60,0x64,0x64,0x40,0x84,0xb3, // code info + 0x2c,0x00, // BUILD_MAP 0 + 0x16,0x4b, // STORE_NAME 'workflow_handlers' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'register' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x03, // STORE_NAME '_find_message_handler_module' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x48, // STORE_NAME 'find_registered_handler' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_workflow_handlers__lt_module_gt_ +// frozen bytecode for file apps/workflow_handlers.py, scope apps_workflow_handlers_register +static const byte fun_data_apps_workflow_handlers_register[15] = { + 0x22,0x0c, // prelude + 0x02,0x4c,0x4d, // names: register, wire_type, handler + 0x80,0x0c,0x20, // code info + 0xb1, // LOAD_FAST 1 + 0x12,0x4b, // LOAD_GLOBAL 'workflow_handlers' + 0xb0, // LOAD_FAST 0 + 0x56, // STORE_SUBSCR + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_workflow_handlers_register = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_workflow_handlers_register, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_workflow_handlers_register + 5, + .line_info_top = fun_data_apps_workflow_handlers_register + 8, + .opcodes = fun_data_apps_workflow_handlers_register + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_workflow_handlers__lt_module_gt_ +// frozen bytecode for file apps/workflow_handlers.py, scope apps_workflow_handlers__find_message_handler_module +static const byte fun_data_apps_workflow_handlers__find_message_handler_module[802] = { + 0x21,0x96,0x04, // prelude + 0x03,0x4e, // names: _find_message_handler_module, msg_type + 0x80,0x11,0x80,0x09,0x2b,0x6b,0x60,0x20,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x43,0x2f,0x43,0x2c,0x43,0x60,0x20,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x63,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x43,0x20,0x27,0x23,0x27,0x63,0x27,0x23,0x27,0x23,0x27,0x63,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x63,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x23,0x60,0x20,0x27,0x23,0x27,0x63,0x27,0x23,0x27,0x63,0x27,0x23,0x27,0x63,0x27,0x23,0x27,0x23,0x27,0x23,0x27,0x63,0x27,0x23,0x27,0x23,0x27,0x63,0x27,0x23,0x27,0x63,0x27,0x23,0x27,0x23,0x27,0x43, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor' + 0x1c,0x04, // IMPORT_FROM 'utils' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'MessageType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.enums' + 0x1c,0x06, // IMPORT_FROM 'MessageType' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x08, // LOAD_ATTR 'ResetDevice' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x09, // LOAD_ATTR 'BackupDevice' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x0a, // LOAD_ATTR 'WipeDevice' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x0b, // LOAD_ATTR 'RecoveryDevice' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x0c, // LOAD_ATTR 'ApplySettings' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x0d, // LOAD_ATTR 'ApplyFlags' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x0e, // LOAD_ATTR 'ChangePin' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x0f, // LOAD_ATTR 'ChangeWipeCode' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x10, // LOAD_ATTR 'GetNonce' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x11, // LOAD_ATTR 'RebootToBootloader' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x12, // LOAD_ATTR 'INTERNAL_MODEL' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0xdd, // BINARY_OP 6 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x13, // LOAD_ATTR 'ShowDeviceTutorial' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x14, // LOAD_ATTR 'USE_SD_CARD' + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x15, // LOAD_ATTR 'SdProtect' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x16, // LOAD_ATTR 'AuthorizeCoinJoin' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x17, // LOAD_ATTR 'GetPublicKey' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x18, // LOAD_ATTR 'GetAddress' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x19, // LOAD_ATTR 'GetOwnershipId' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x1a, // LOAD_ATTR 'GetOwnershipProof' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x1b, // LOAD_ATTR 'SignTx' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x1c, // LOAD_ATTR 'SignMessage' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x1d, // LOAD_ATTR 'VerifyMessage' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x1e, // LOAD_ATTR 'GetEntropy' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x1f, // LOAD_ATTR 'SignIdentity' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x20, // LOAD_ATTR 'GetECDHSessionKey' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x17, // LOAD_CONST_OBJ 23 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x21, // LOAD_ATTR 'CipherKeyValue' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x18, // LOAD_CONST_OBJ 24 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x22, // LOAD_ATTR 'GetFirmwareHash' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x19, // LOAD_CONST_OBJ 25 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x23, // LOAD_ATTR 'CosiCommit' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x1a, // LOAD_CONST_OBJ 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x24, // LOAD_ATTR 'SetU2FCounter' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x1b, // LOAD_CONST_OBJ 27 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x25, // LOAD_ATTR 'GetNextU2FCounter' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x1c, // LOAD_CONST_OBJ 28 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x26, // LOAD_ATTR 'WebAuthnListResidentCredentials' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x1d, // LOAD_CONST_OBJ 29 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x27, // LOAD_ATTR 'WebAuthnAddResidentCredential' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x1e, // LOAD_CONST_OBJ 30 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x28, // LOAD_ATTR 'WebAuthnRemoveResidentCredential' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x1f, // LOAD_CONST_OBJ 31 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x29, // LOAD_ATTR 'EthereumGetAddress' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x20, // LOAD_CONST_OBJ 32 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x2a, // LOAD_ATTR 'EthereumGetPublicKey' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x21, // LOAD_CONST_OBJ 33 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x2b, // LOAD_ATTR 'EthereumSignTx' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x22, // LOAD_CONST_OBJ 34 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x2c, // LOAD_ATTR 'EthereumSignTxEIP1559' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x23, // LOAD_CONST_OBJ 35 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x2d, // LOAD_ATTR 'EthereumSignMessage' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x24, // LOAD_CONST_OBJ 36 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x2e, // LOAD_ATTR 'EthereumVerifyMessage' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x25, // LOAD_CONST_OBJ 37 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x2f, // LOAD_ATTR 'EthereumSignTypedData' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x26, // LOAD_CONST_OBJ 38 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x30, // LOAD_ATTR 'MoneroGetAddress' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x27, // LOAD_CONST_OBJ 39 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x31, // LOAD_ATTR 'MoneroGetWatchKey' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x28, // LOAD_CONST_OBJ 40 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x32, // LOAD_ATTR 'MoneroTransactionInitRequest' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x29, // LOAD_CONST_OBJ 41 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x33, // LOAD_ATTR 'MoneroKeyImageExportInitRequest' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x2a, // LOAD_CONST_OBJ 42 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x34, // LOAD_ATTR 'MoneroGetTxKeyRequest' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x2b, // LOAD_CONST_OBJ 43 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x35, // LOAD_ATTR 'MoneroLiveRefreshStartRequest' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x2c, // LOAD_CONST_OBJ 44 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x36, // LOAD_ATTR 'NEMGetAddress' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x2d, // LOAD_CONST_OBJ 45 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x37, // LOAD_ATTR 'NEMSignTx' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x2e, // LOAD_CONST_OBJ 46 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x38, // LOAD_ATTR 'StellarGetAddress' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x2f, // LOAD_CONST_OBJ 47 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x39, // LOAD_ATTR 'StellarSignTx' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x30, // LOAD_CONST_OBJ 48 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x3a, // LOAD_ATTR 'RippleGetAddress' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x31, // LOAD_CONST_OBJ 49 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x3b, // LOAD_ATTR 'RippleSignTx' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x32, // LOAD_CONST_OBJ 50 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x3c, // LOAD_ATTR 'CardanoGetAddress' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x33, // LOAD_CONST_OBJ 51 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x3d, // LOAD_ATTR 'CardanoGetPublicKey' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x34, // LOAD_CONST_OBJ 52 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x3e, // LOAD_ATTR 'CardanoSignTxInit' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x35, // LOAD_CONST_OBJ 53 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x3f, // LOAD_ATTR 'CardanoGetNativeScriptHash' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x36, // LOAD_CONST_OBJ 54 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x40, // LOAD_ATTR 'TezosGetAddress' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x37, // LOAD_CONST_OBJ 55 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x41, // LOAD_ATTR 'TezosSignTx' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x38, // LOAD_CONST_OBJ 56 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x42, // LOAD_ATTR 'TezosGetPublicKey' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x39, // LOAD_CONST_OBJ 57 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x43, // LOAD_ATTR 'EosGetPublicKey' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x3a, // LOAD_CONST_OBJ 58 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x44, // LOAD_ATTR 'EosSignTx' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x3b, // LOAD_CONST_OBJ 59 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x45, // LOAD_ATTR 'BinanceGetAddress' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x3c, // LOAD_CONST_OBJ 60 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x46, // LOAD_ATTR 'BinanceGetPublicKey' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x3d, // LOAD_CONST_OBJ 61 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x47, // LOAD_ATTR 'BinanceSignTx' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x3e, // LOAD_CONST_OBJ 62 + 0x63, // RETURN_VALUE + 0x12,0x4f, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_workflow_handlers__find_message_handler_module = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_workflow_handlers__find_message_handler_module, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 802, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 3, + .line_info = fun_data_apps_workflow_handlers__find_message_handler_module + 5, + .line_info_top = fun_data_apps_workflow_handlers__find_message_handler_module + 142, + .opcodes = fun_data_apps_workflow_handlers__find_message_handler_module + 142, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_workflow_handlers__lt_module_gt_ +// frozen bytecode for file apps/workflow_handlers.py, scope apps_workflow_handlers_find_registered_handler +static const byte fun_data_apps_workflow_handlers_find_registered_handler[83] = { + 0x56,0x18, // prelude + 0x48,0x50,0x4e, // names: find_registered_handler, iface, msg_type + 0x80,0xc4,0x46,0x45,0x22,0x26,0x2f,0x2c,0x50, // code info + 0xb1, // LOAD_FAST 1 + 0x12,0x4b, // LOAD_GLOBAL 'workflow_handlers' + 0xdd, // BINARY_OP 6 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x4b, // LOAD_GLOBAL 'workflow_handlers' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE + 0x48,0x2a, // SETUP_EXCEPT 42 + 0x12,0x03, // LOAD_GLOBAL '_find_message_handler_module' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x14,0x49, // LOAD_METHOD 'rfind' + 0x10,0x4a, // LOAD_CONST_STRING '.' + 0x36,0x01, // CALL_METHOD 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc3, // STORE_FAST 3 + 0x12,0x51, // LOAD_GLOBAL '__import__' + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xb3, // LOAD_FAST 3 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x05, // CALL_FUNCTION 5 + 0xc4, // STORE_FAST 4 + 0x12,0x52, // LOAD_GLOBAL 'getattr' + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x4a,0x0c, // POP_EXCEPT_JUMP 12 + 0x57, // DUP_TOP + 0x12,0x4f, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_workflow_handlers_find_registered_handler = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_workflow_handlers_find_registered_handler, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 83, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 72, + .line_info = fun_data_apps_workflow_handlers_find_registered_handler + 5, + .line_info_top = fun_data_apps_workflow_handlers_find_registered_handler + 14, + .opcodes = fun_data_apps_workflow_handlers_find_registered_handler + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_workflow_handlers__lt_module_gt_[] = { + &raw_code_apps_workflow_handlers_register, + &raw_code_apps_workflow_handlers__find_message_handler_module, + &raw_code_apps_workflow_handlers_find_registered_handler, +}; + +static const mp_raw_code_t raw_code_apps_workflow_handlers__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_workflow_handlers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = (void *)&children_apps_workflow_handlers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_workflow_handlers__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_workflow_handlers__lt_module_gt_ + 11, + .opcodes = fun_data_apps_workflow_handlers__lt_module_gt_ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_workflow_handlers[83] = { + MP_QSTR_apps_slash_workflow_handlers_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_register, + MP_QSTR__find_message_handler_module, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_MessageType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_ResetDevice, + MP_QSTR_BackupDevice, + MP_QSTR_WipeDevice, + MP_QSTR_RecoveryDevice, + MP_QSTR_ApplySettings, + MP_QSTR_ApplyFlags, + MP_QSTR_ChangePin, + MP_QSTR_ChangeWipeCode, + MP_QSTR_GetNonce, + MP_QSTR_RebootToBootloader, + MP_QSTR_INTERNAL_MODEL, + MP_QSTR_ShowDeviceTutorial, + MP_QSTR_USE_SD_CARD, + MP_QSTR_SdProtect, + MP_QSTR_AuthorizeCoinJoin, + MP_QSTR_GetPublicKey, + MP_QSTR_GetAddress, + MP_QSTR_GetOwnershipId, + MP_QSTR_GetOwnershipProof, + MP_QSTR_SignTx, + MP_QSTR_SignMessage, + MP_QSTR_VerifyMessage, + MP_QSTR_GetEntropy, + MP_QSTR_SignIdentity, + MP_QSTR_GetECDHSessionKey, + MP_QSTR_CipherKeyValue, + MP_QSTR_GetFirmwareHash, + MP_QSTR_CosiCommit, + MP_QSTR_SetU2FCounter, + MP_QSTR_GetNextU2FCounter, + MP_QSTR_WebAuthnListResidentCredentials, + MP_QSTR_WebAuthnAddResidentCredential, + MP_QSTR_WebAuthnRemoveResidentCredential, + MP_QSTR_EthereumGetAddress, + MP_QSTR_EthereumGetPublicKey, + MP_QSTR_EthereumSignTx, + MP_QSTR_EthereumSignTxEIP1559, + MP_QSTR_EthereumSignMessage, + MP_QSTR_EthereumVerifyMessage, + MP_QSTR_EthereumSignTypedData, + MP_QSTR_MoneroGetAddress, + MP_QSTR_MoneroGetWatchKey, + MP_QSTR_MoneroTransactionInitRequest, + MP_QSTR_MoneroKeyImageExportInitRequest, + MP_QSTR_MoneroGetTxKeyRequest, + MP_QSTR_MoneroLiveRefreshStartRequest, + MP_QSTR_NEMGetAddress, + MP_QSTR_NEMSignTx, + MP_QSTR_StellarGetAddress, + MP_QSTR_StellarSignTx, + MP_QSTR_RippleGetAddress, + MP_QSTR_RippleSignTx, + MP_QSTR_CardanoGetAddress, + MP_QSTR_CardanoGetPublicKey, + MP_QSTR_CardanoSignTxInit, + MP_QSTR_CardanoGetNativeScriptHash, + MP_QSTR_TezosGetAddress, + MP_QSTR_TezosSignTx, + MP_QSTR_TezosGetPublicKey, + MP_QSTR_EosGetPublicKey, + MP_QSTR_EosSignTx, + MP_QSTR_BinanceGetAddress, + MP_QSTR_BinanceGetPublicKey, + MP_QSTR_BinanceSignTx, + MP_QSTR_find_registered_handler, + MP_QSTR_rfind, + MP_QSTR__dot_, + MP_QSTR_workflow_handlers, + MP_QSTR_wire_type, + MP_QSTR_handler, + MP_QSTR_msg_type, + MP_QSTR_ValueError, + MP_QSTR_iface, + MP_QSTR___import__, + MP_QSTR_getattr, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_workflow_handlers_10 = {{&mp_type_tuple}, 1, { + MP_ROM_QSTR(MP_QSTR_T2B1), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_workflow_handlers[63] = { + MP_ROM_QSTR(MP_QSTR_apps_dot_management_dot_reset_device), + MP_ROM_QSTR(MP_QSTR_apps_dot_management_dot_backup_device), + MP_ROM_QSTR(MP_QSTR_apps_dot_management_dot_wipe_device), + MP_ROM_QSTR(MP_QSTR_apps_dot_management_dot_recovery_device), + MP_ROM_QSTR(MP_QSTR_apps_dot_management_dot_apply_settings), + MP_ROM_QSTR(MP_QSTR_apps_dot_management_dot_apply_flags), + MP_ROM_QSTR(MP_QSTR_apps_dot_management_dot_change_pin), + MP_ROM_QSTR(MP_QSTR_apps_dot_management_dot_change_wipe_code), + MP_ROM_QSTR(MP_QSTR_apps_dot_management_dot_get_nonce), + MP_ROM_QSTR(MP_QSTR_apps_dot_management_dot_reboot_to_bootloader), + MP_ROM_PTR(&const_obj_apps_workflow_handlers_10), + MP_ROM_QSTR(MP_QSTR_apps_dot_management_dot_show_tutorial), + MP_ROM_QSTR(MP_QSTR_apps_dot_management_dot_sd_protect), + MP_ROM_QSTR(MP_QSTR_apps_dot_bitcoin_dot_authorize_coinjoin), + MP_ROM_QSTR(MP_QSTR_apps_dot_bitcoin_dot_get_public_key), + MP_ROM_QSTR(MP_QSTR_apps_dot_bitcoin_dot_get_address), + MP_ROM_QSTR(MP_QSTR_apps_dot_bitcoin_dot_get_ownership_id), + MP_ROM_QSTR(MP_QSTR_apps_dot_bitcoin_dot_get_ownership_proof), + MP_ROM_QSTR(MP_QSTR_apps_dot_bitcoin_dot_sign_tx), + MP_ROM_QSTR(MP_QSTR_apps_dot_bitcoin_dot_sign_message), + MP_ROM_QSTR(MP_QSTR_apps_dot_bitcoin_dot_verify_message), + MP_ROM_QSTR(MP_QSTR_apps_dot_misc_dot_get_entropy), + MP_ROM_QSTR(MP_QSTR_apps_dot_misc_dot_sign_identity), + MP_ROM_QSTR(MP_QSTR_apps_dot_misc_dot_get_ecdh_session_key), + MP_ROM_QSTR(MP_QSTR_apps_dot_misc_dot_cipher_key_value), + MP_ROM_QSTR(MP_QSTR_apps_dot_misc_dot_get_firmware_hash), + MP_ROM_QSTR(MP_QSTR_apps_dot_misc_dot_cosi_commit), + MP_ROM_QSTR(MP_QSTR_apps_dot_management_dot_set_u2f_counter), + MP_ROM_QSTR(MP_QSTR_apps_dot_management_dot_get_next_u2f_counter), + MP_ROM_QSTR(MP_QSTR_apps_dot_webauthn_dot_list_resident_credentials), + MP_ROM_QSTR(MP_QSTR_apps_dot_webauthn_dot_add_resident_credential), + MP_ROM_QSTR(MP_QSTR_apps_dot_webauthn_dot_remove_resident_credential), + MP_ROM_QSTR(MP_QSTR_apps_dot_ethereum_dot_get_address), + MP_ROM_QSTR(MP_QSTR_apps_dot_ethereum_dot_get_public_key), + MP_ROM_QSTR(MP_QSTR_apps_dot_ethereum_dot_sign_tx), + MP_ROM_QSTR(MP_QSTR_apps_dot_ethereum_dot_sign_tx_eip1559), + MP_ROM_QSTR(MP_QSTR_apps_dot_ethereum_dot_sign_message), + MP_ROM_QSTR(MP_QSTR_apps_dot_ethereum_dot_verify_message), + MP_ROM_QSTR(MP_QSTR_apps_dot_ethereum_dot_sign_typed_data), + MP_ROM_QSTR(MP_QSTR_apps_dot_monero_dot_get_address), + MP_ROM_QSTR(MP_QSTR_apps_dot_monero_dot_get_watch_only), + MP_ROM_QSTR(MP_QSTR_apps_dot_monero_dot_sign_tx), + MP_ROM_QSTR(MP_QSTR_apps_dot_monero_dot_key_image_sync), + MP_ROM_QSTR(MP_QSTR_apps_dot_monero_dot_get_tx_keys), + MP_ROM_QSTR(MP_QSTR_apps_dot_monero_dot_live_refresh), + MP_ROM_QSTR(MP_QSTR_apps_dot_nem_dot_get_address), + MP_ROM_QSTR(MP_QSTR_apps_dot_nem_dot_sign_tx), + MP_ROM_QSTR(MP_QSTR_apps_dot_stellar_dot_get_address), + MP_ROM_QSTR(MP_QSTR_apps_dot_stellar_dot_sign_tx), + MP_ROM_QSTR(MP_QSTR_apps_dot_ripple_dot_get_address), + MP_ROM_QSTR(MP_QSTR_apps_dot_ripple_dot_sign_tx), + MP_ROM_QSTR(MP_QSTR_apps_dot_cardano_dot_get_address), + MP_ROM_QSTR(MP_QSTR_apps_dot_cardano_dot_get_public_key), + MP_ROM_QSTR(MP_QSTR_apps_dot_cardano_dot_sign_tx), + MP_ROM_QSTR(MP_QSTR_apps_dot_cardano_dot_get_native_script_hash), + MP_ROM_QSTR(MP_QSTR_apps_dot_tezos_dot_get_address), + MP_ROM_QSTR(MP_QSTR_apps_dot_tezos_dot_sign_tx), + MP_ROM_QSTR(MP_QSTR_apps_dot_tezos_dot_get_public_key), + MP_ROM_QSTR(MP_QSTR_apps_dot_eos_dot_get_public_key), + MP_ROM_QSTR(MP_QSTR_apps_dot_eos_dot_sign_tx), + MP_ROM_QSTR(MP_QSTR_apps_dot_binance_dot_get_address), + MP_ROM_QSTR(MP_QSTR_apps_dot_binance_dot_get_public_key), + MP_ROM_QSTR(MP_QSTR_apps_dot_binance_dot_sign_tx), +}; + +static const mp_frozen_module_t frozen_module_apps_workflow_handlers = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_workflow_handlers, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_workflow_handlers, + }, + .rc = &raw_code_apps_workflow_handlers__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_common___init__ +// - original source file: build/firmware/src/apps/common/__init__.mpy +// - frozen file name: apps/common/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/common/__init__.py, scope apps_common___init____lt_module_gt_ +static const byte fun_data_apps_common___init____lt_module_gt_[5] = { + 0x00,0x02, // prelude + 0x01, // names: + // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 5, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_common___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_common___init____lt_module_gt_ + 3, + .opcodes = fun_data_apps_common___init____lt_module_gt_ + 3, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_common___init__[2] = { + MP_QSTR_apps_slash_common_slash___init___dot_py, + MP_QSTR__lt_module_gt_, +}; + +static const mp_frozen_module_t frozen_module_apps_common___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_common___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps_common___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_common_address_mac +// - original source file: build/firmware/src/apps/common/address_mac.mpy +// - frozen file name: apps/common/address_mac.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/common/address_mac.py, scope apps_common_address_mac__lt_module_gt_ +static const byte fun_data_apps_common_address_mac__lt_module_gt_[39] = { + 0x08,0x0e, // prelude + 0x01, // names: + 0x40,0x4c,0x60,0x68,0x84,0x0b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'utils' + 0x16,0x02, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x2b,0x02, // BUILD_LIST 2 + 0x16,0x18, // STORE_NAME '_ADDRESS_MAC_KEY_PATH' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x04, // STORE_NAME 'check_address_mac' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0c, // STORE_NAME 'get_address_mac' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_address_mac__lt_module_gt_ +// frozen bytecode for file apps/common/address_mac.py, scope apps_common_address_mac_check_address_mac +static const byte fun_data_apps_common_address_mac_check_address_mac[77] = { + 0xd0,0x04,0x16, // prelude + 0x04,0x19,0x1a,0x1b,0x1c, // names: check_address_mac, address, mac, slip44, keychain + 0x80,0x0d,0x2b,0x4b,0x28,0x37, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x05, // IMPORT_FROM 'wire' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'hashlib' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x06, // IMPORT_FROM 'hashlib' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'get_address_mac' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc6, // STORE_FAST 6 + 0x12,0x1d, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb5, // LOAD_FAST 5 + 0x13,0x08, // LOAD_ATTR 'sha256' + 0x13,0x09, // LOAD_ATTR 'digest_size' + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x4a, // POP_JUMP_IF_TRUE 10 + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x0a, // LOAD_METHOD 'consteq' + 0xb6, // LOAD_FAST 6 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xb4, // LOAD_FAST 4 + 0x14,0x0b, // LOAD_METHOD 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_address_mac_check_address_mac = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_common_address_mac_check_address_mac, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 77, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_common_address_mac_check_address_mac + 8, + .line_info_top = fun_data_apps_common_address_mac_check_address_mac + 14, + .opcodes = fun_data_apps_common_address_mac_check_address_mac + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_address_mac__lt_module_gt_ +// frozen bytecode for file apps/common/address_mac.py, scope apps_common_address_mac_get_address_mac +static const byte fun_data_apps_common_address_mac_get_address_mac[108] = { + 0x7b,0x1c, // prelude + 0x0c,0x19,0x1b,0x1c, // names: get_address_mac, address, slip44, keychain + 0x80,0x16,0x4b,0x75,0x68,0x32,0x26,0x26,0x2a,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'hmac' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x0d, // IMPORT_FROM 'hmac' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0e, // LOAD_CONST_STRING 'write_bytes_unchecked' + 0x10,0x0f, // LOAD_CONST_STRING 'write_compact_size' + 0x10,0x10, // LOAD_CONST_STRING 'write_uint32_le' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x11, // IMPORT_NAME 'writers' + 0x1c,0x0e, // IMPORT_FROM 'write_bytes_unchecked' + 0xc4, // STORE_FAST 4 + 0x1c,0x0f, // IMPORT_FROM 'write_compact_size' + 0xc5, // STORE_FAST 5 + 0x1c,0x10, // IMPORT_FROM 'write_uint32_le' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x12, // LOAD_METHOD 'derive_slip21' + 0x12,0x18, // LOAD_GLOBAL '_ADDRESS_MAC_KEY_PATH' + 0x36,0x01, // CALL_METHOD 1 + 0xc7, // STORE_FAST 7 + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x13, // LOAD_METHOD 'HashWriter' + 0xb3, // LOAD_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x13,0x14, // LOAD_ATTR 'SHA256' + 0xb7, // LOAD_FAST 7 + 0x14,0x15, // LOAD_METHOD 'key' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc8, // STORE_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x14,0x16, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0xc9, // STORE_FAST 9 + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0xb8, // LOAD_FAST 8 + 0x12,0x1d, // LOAD_GLOBAL 'len' + 0xb9, // LOAD_FAST 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb8, // LOAD_FAST 8 + 0xb9, // LOAD_FAST 9 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x17, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_address_mac_get_address_mac = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_common_address_mac_get_address_mac, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 108, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_common_address_mac_get_address_mac + 6, + .line_info_top = fun_data_apps_common_address_mac_get_address_mac + 16, + .opcodes = fun_data_apps_common_address_mac_get_address_mac + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_address_mac__lt_module_gt_[] = { + &raw_code_apps_common_address_mac_check_address_mac, + &raw_code_apps_common_address_mac_get_address_mac, +}; + +static const mp_raw_code_t raw_code_apps_common_address_mac__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_address_mac__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = (void *)&children_apps_common_address_mac__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_common_address_mac__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_common_address_mac__lt_module_gt_ + 9, + .opcodes = fun_data_apps_common_address_mac__lt_module_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_common_address_mac[30] = { + MP_QSTR_apps_slash_common_slash_address_mac_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_check_address_mac, + MP_QSTR_wire, + MP_QSTR_hashlib, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_sha256, + MP_QSTR_digest_size, + MP_QSTR_consteq, + MP_QSTR_DataError, + MP_QSTR_get_address_mac, + MP_QSTR_hmac, + MP_QSTR_write_bytes_unchecked, + MP_QSTR_write_compact_size, + MP_QSTR_write_uint32_le, + MP_QSTR_writers, + MP_QSTR_derive_slip21, + MP_QSTR_HashWriter, + MP_QSTR_SHA256, + MP_QSTR_key, + MP_QSTR_encode, + MP_QSTR_get_digest, + MP_QSTR__ADDRESS_MAC_KEY_PATH, + MP_QSTR_address, + MP_QSTR_mac, + MP_QSTR_slip44, + MP_QSTR_keychain, + MP_QSTR_len, +}; + +// constants +static const mp_obj_str_t const_obj_apps_common_address_mac_0 = {{&mp_type_bytes}, 13704, 9, (const byte*)"\x53\x4c\x49\x50\x2d\x30\x30\x32\x34"}; +static const mp_obj_str_t const_obj_apps_common_address_mac_1 = {{&mp_type_bytes}, 61675, 15, (const byte*)"\x41\x64\x64\x72\x65\x73\x73\x20\x4d\x41\x43\x20\x6b\x65\x79"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_common_address_mac[3] = { + MP_ROM_PTR(&const_obj_apps_common_address_mac_0), + MP_ROM_PTR(&const_obj_apps_common_address_mac_1), + MP_ROM_QSTR(MP_QSTR_Invalid_space_address_space_MAC_dot_), +}; + +static const mp_frozen_module_t frozen_module_apps_common_address_mac = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_common_address_mac, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_common_address_mac, + }, + .rc = &raw_code_apps_common_address_mac__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_common_address_type +// - original source file: build/firmware/src/apps/common/address_type.mpy +// - frozen file name: apps/common/address_type.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/common/address_type.py, scope apps_common_address_type__lt_module_gt_ +static const byte fun_data_apps_common_address_type__lt_module_gt_[27] = { + 0x00,0x0e, // prelude + 0x01, // names: + 0x84,0x0b,0x64,0x20,0x64,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'length' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x03, // STORE_NAME 'tobytes' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x06, // STORE_NAME 'check' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x08, // STORE_NAME 'strip' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_address_type__lt_module_gt_ +// frozen bytecode for file apps/common/address_type.py, scope apps_common_address_type_length +static const byte fun_data_apps_common_address_type_length[43] = { + 0x11,0x12, // prelude + 0x02,0x09, // names: length, address_type + 0x20,0x27,0x22,0x28,0x22,0x29,0x42, // code info + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x22,0x83,0xff,0x7f, // LOAD_CONST_SMALL_INT 65535 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x22,0x87,0xff,0xff,0x7f, // LOAD_CONST_SMALL_INT 16777215 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x63, // RETURN_VALUE + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_address_type_length = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_address_type_length, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_common_address_type_length + 4, + .line_info_top = fun_data_apps_common_address_type_length + 11, + .opcodes = fun_data_apps_common_address_type_length + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_address_type__lt_module_gt_ +// frozen bytecode for file apps/common/address_type.py, scope apps_common_address_type_tobytes +static const byte fun_data_apps_common_address_type_tobytes[19] = { + 0x21,0x08, // prelude + 0x03,0x09, // names: tobytes, address_type + 0x80,0x0c, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x04, // LOAD_METHOD 'to_bytes' + 0x12,0x02, // LOAD_GLOBAL 'length' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x05, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_address_type_tobytes = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_address_type_tobytes, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 3, + .line_info = fun_data_apps_common_address_type_tobytes + 4, + .line_info_top = fun_data_apps_common_address_type_tobytes + 6, + .opcodes = fun_data_apps_common_address_type_tobytes + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_address_type__lt_module_gt_ +// frozen bytecode for file apps/common/address_type.py, scope apps_common_address_type_check +static const byte fun_data_apps_common_address_type_check[18] = { + 0x2a,0x0a, // prelude + 0x06,0x09,0x0a, // names: check, address_type, raw_address + 0x80,0x10, // code info + 0xb1, // LOAD_FAST 1 + 0x14,0x07, // LOAD_METHOD 'startswith' + 0x12,0x03, // LOAD_GLOBAL 'tobytes' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_address_type_check = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_address_type_check, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_common_address_type_check + 5, + .line_info_top = fun_data_apps_common_address_type_check + 7, + .opcodes = fun_data_apps_common_address_type_check + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_address_type__lt_module_gt_ +// frozen bytecode for file apps/common/address_type.py, scope apps_common_address_type_strip +static const byte fun_data_apps_common_address_type_strip[31] = { + 0x22,0x0e, // prelude + 0x08,0x09,0x0a, // names: strip, address_type, raw_address + 0x80,0x14,0x28,0x23, // code info + 0x12,0x06, // LOAD_GLOBAL 'check' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x12,0x0b, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x12,0x02, // LOAD_GLOBAL 'length' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_address_type_strip = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_address_type_strip, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_common_address_type_strip + 5, + .line_info_top = fun_data_apps_common_address_type_strip + 9, + .opcodes = fun_data_apps_common_address_type_strip + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_address_type__lt_module_gt_[] = { + &raw_code_apps_common_address_type_length, + &raw_code_apps_common_address_type_tobytes, + &raw_code_apps_common_address_type_check, + &raw_code_apps_common_address_type_strip, +}; + +static const mp_raw_code_t raw_code_apps_common_address_type__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_address_type__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = (void *)&children_apps_common_address_type__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_common_address_type__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_common_address_type__lt_module_gt_ + 9, + .opcodes = fun_data_apps_common_address_type__lt_module_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_common_address_type[12] = { + MP_QSTR_apps_slash_common_slash_address_type_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_length, + MP_QSTR_tobytes, + MP_QSTR_to_bytes, + MP_QSTR_big, + MP_QSTR_check, + MP_QSTR_startswith, + MP_QSTR_strip, + MP_QSTR_address_type, + MP_QSTR_raw_address, + MP_QSTR_ValueError, +}; + +static const mp_frozen_module_t frozen_module_apps_common_address_type = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_common_address_type, + .obj_table = NULL, + }, + .rc = &raw_code_apps_common_address_type__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_common_authorization +// - original source file: build/firmware/src/apps/common/authorization.mpy +// - frozen file name: apps/common/authorization.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/common/authorization.py, scope apps_common_authorization__lt_module_gt_ +static const byte fun_data_apps_common_authorization__lt_module_gt_[113] = { + 0x10,0x2c, // prelude + 0x01, // names: + 0x40,0x28,0x2c,0x4c,0x22,0x71,0x20,0x46,0x20,0x66,0x20,0x64,0x20,0x84,0x0d,0x84,0x09,0x64,0x60,0x84,0x08, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'storage.cache' + 0x13,0x03, // LOAD_ATTR 'cache' + 0x16,0x1c, // STORE_NAME 'storage_cache' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'protobuf' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor' + 0x1c,0x04, // IMPORT_FROM 'protobuf' + 0x16,0x04, // STORE_NAME 'protobuf' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'MessageType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.enums' + 0x1c,0x06, // IMPORT_FROM 'MessageType' + 0x16,0x06, // STORE_NAME 'MessageType' + 0x59, // POP_TOP + 0x2c,0x01, // BUILD_MAP 1 + 0x11,0x06, // LOAD_NAME 'MessageType' + 0x13,0x08, // LOAD_ATTR 'SignTx' + 0x11,0x06, // LOAD_NAME 'MessageType' + 0x13,0x09, // LOAD_ATTR 'GetOwnershipProof' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x11,0x06, // LOAD_NAME 'MessageType' + 0x13,0x0a, // LOAD_ATTR 'AuthorizeCoinJoin' + 0x62, // STORE_MAP + 0x16,0x1d, // STORE_NAME 'WIRE_TYPES' + 0x11,0x1c, // LOAD_NAME 'storage_cache' + 0x13,0x0b, // LOAD_ATTR 'APP_COMMON_AUTHORIZATION_DATA' + 0x16,0x0b, // STORE_NAME 'APP_COMMON_AUTHORIZATION_DATA' + 0x11,0x1c, // LOAD_NAME 'storage_cache' + 0x13,0x0c, // LOAD_ATTR 'APP_COMMON_AUTHORIZATION_TYPE' + 0x16,0x0c, // STORE_NAME 'APP_COMMON_AUTHORIZATION_TYPE' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0d, // STORE_NAME 'is_set' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0f, // STORE_NAME 'set' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0e, // STORE_NAME 'get' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x17, // STORE_NAME 'is_set_any_session' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x19, // STORE_NAME 'get_wire_types' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x1a, // STORE_NAME 'clear' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_authorization__lt_module_gt_ +// frozen bytecode for file apps/common/authorization.py, scope apps_common_authorization_is_set +static const byte fun_data_apps_common_authorization_is_set[17] = { + 0x10,0x06, // prelude + 0x0d, // names: is_set + 0x80,0x13, // code info + 0x12,0x1c, // LOAD_GLOBAL 'storage_cache' + 0x14,0x0e, // LOAD_METHOD 'get' + 0x12,0x0c, // LOAD_GLOBAL 'APP_COMMON_AUTHORIZATION_TYPE' + 0x36,0x01, // CALL_METHOD 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_authorization_is_set = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_authorization_is_set, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_common_authorization_is_set + 3, + .line_info_top = fun_data_apps_common_authorization_is_set + 5, + .opcodes = fun_data_apps_common_authorization_is_set + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_authorization__lt_module_gt_ +// frozen bytecode for file apps/common/authorization.py, scope apps_common_authorization_set +static const byte fun_data_apps_common_authorization_set[65] = { + 0x31,0x14, // prelude + 0x0f,0x1e, // names: set, auth_message + 0x80,0x17,0x4b,0x68,0x20,0x2a,0x20,0x2c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'ensure' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'trezor.utils' + 0x1c,0x10, // IMPORT_FROM 'ensure' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'protobuf' + 0x14,0x12, // LOAD_METHOD 'dump_message_buffer' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'MESSAGE_WIRE_TYPE' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x1c, // LOAD_GLOBAL 'storage_cache' + 0x14,0x14, // LOAD_METHOD 'set_int' + 0x12,0x0c, // LOAD_GLOBAL 'APP_COMMON_AUTHORIZATION_TYPE' + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'MESSAGE_WIRE_TYPE' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x1c, // LOAD_GLOBAL 'storage_cache' + 0x14,0x0f, // LOAD_METHOD 'set' + 0x12,0x0b, // LOAD_GLOBAL 'APP_COMMON_AUTHORIZATION_DATA' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_authorization_set = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_authorization_set, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 65, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_common_authorization_set + 4, + .line_info_top = fun_data_apps_common_authorization_set + 12, + .opcodes = fun_data_apps_common_authorization_set + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_authorization__lt_module_gt_ +// frozen bytecode for file apps/common/authorization.py, scope apps_common_authorization_get +static const byte fun_data_apps_common_authorization_get[43] = { + 0x28,0x0e, // prelude + 0x0e, // names: get + 0x80,0x24,0x29,0x23,0x42,0x2b, // code info + 0x12,0x1c, // LOAD_GLOBAL 'storage_cache' + 0x14,0x15, // LOAD_METHOD 'get_int' + 0x12,0x0c, // LOAD_GLOBAL 'APP_COMMON_AUTHORIZATION_TYPE' + 0x36,0x01, // CALL_METHOD 1 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x1c, // LOAD_GLOBAL 'storage_cache' + 0x14,0x0e, // LOAD_METHOD 'get' + 0x12,0x0b, // LOAD_GLOBAL 'APP_COMMON_AUTHORIZATION_DATA' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x02, // CALL_METHOD 2 + 0xc1, // STORE_FAST 1 + 0x12,0x04, // LOAD_GLOBAL 'protobuf' + 0x14,0x16, // LOAD_METHOD 'load_message_buffer' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_authorization_get = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_authorization_get, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_common_authorization_get + 3, + .line_info_top = fun_data_apps_common_authorization_get + 9, + .opcodes = fun_data_apps_common_authorization_get + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_authorization__lt_module_gt_ +// frozen bytecode for file apps/common/authorization.py, scope apps_common_authorization_is_set_any_session +static const byte fun_data_apps_common_authorization_is_set_any_session[17] = { + 0x21,0x08, // prelude + 0x17,0x1f, // names: is_set_any_session, auth_type + 0x80,0x2d, // code info + 0xb0, // LOAD_FAST 0 + 0x12,0x1c, // LOAD_GLOBAL 'storage_cache' + 0x14,0x18, // LOAD_METHOD 'get_int_all_sessions' + 0x12,0x0c, // LOAD_GLOBAL 'APP_COMMON_AUTHORIZATION_TYPE' + 0x36,0x01, // CALL_METHOD 1 + 0xdd, // BINARY_OP 6 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_authorization_is_set_any_session = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_authorization_is_set_any_session, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_common_authorization_is_set_any_session + 4, + .line_info_top = fun_data_apps_common_authorization_is_set_any_session + 6, + .opcodes = fun_data_apps_common_authorization_is_set_any_session + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_authorization__lt_module_gt_ +// frozen bytecode for file apps/common/authorization.py, scope apps_common_authorization_get_wire_types +static const byte fun_data_apps_common_authorization_get_wire_types[35] = { + 0x20,0x0c, // prelude + 0x19, // names: get_wire_types + 0x80,0x33,0x29,0x25,0x43, // code info + 0x12,0x1c, // LOAD_GLOBAL 'storage_cache' + 0x14,0x15, // LOAD_METHOD 'get_int' + 0x12,0x0c, // LOAD_GLOBAL 'APP_COMMON_AUTHORIZATION_TYPE' + 0x36,0x01, // CALL_METHOD 1 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x2a,0x00, // BUILD_TUPLE 0 + 0x63, // RETURN_VALUE + 0x12,0x1d, // LOAD_GLOBAL 'WIRE_TYPES' + 0x14,0x0e, // LOAD_METHOD 'get' + 0xb0, // LOAD_FAST 0 + 0x2a,0x00, // BUILD_TUPLE 0 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_authorization_get_wire_types = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_authorization_get_wire_types, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_apps_common_authorization_get_wire_types + 3, + .line_info_top = fun_data_apps_common_authorization_get_wire_types + 8, + .opcodes = fun_data_apps_common_authorization_get_wire_types + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_authorization__lt_module_gt_ +// frozen bytecode for file apps/common/authorization.py, scope apps_common_authorization_clear +static const byte fun_data_apps_common_authorization_clear[26] = { + 0x10,0x08, // prelude + 0x1a, // names: clear + 0x80,0x3b,0x29, // code info + 0x12,0x1c, // LOAD_GLOBAL 'storage_cache' + 0x14,0x1b, // LOAD_METHOD 'delete' + 0x12,0x0c, // LOAD_GLOBAL 'APP_COMMON_AUTHORIZATION_TYPE' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x1c, // LOAD_GLOBAL 'storage_cache' + 0x14,0x1b, // LOAD_METHOD 'delete' + 0x12,0x0b, // LOAD_GLOBAL 'APP_COMMON_AUTHORIZATION_DATA' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_authorization_clear = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_authorization_clear, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 26, + .line_info = fun_data_apps_common_authorization_clear + 3, + .line_info_top = fun_data_apps_common_authorization_clear + 6, + .opcodes = fun_data_apps_common_authorization_clear + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_authorization__lt_module_gt_[] = { + &raw_code_apps_common_authorization_is_set, + &raw_code_apps_common_authorization_set, + &raw_code_apps_common_authorization_get, + &raw_code_apps_common_authorization_is_set_any_session, + &raw_code_apps_common_authorization_get_wire_types, + &raw_code_apps_common_authorization_clear, +}; + +static const mp_raw_code_t raw_code_apps_common_authorization__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_authorization__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 113, + #endif + .children = (void *)&children_apps_common_authorization__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_common_authorization__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_common_authorization__lt_module_gt_ + 24, + .opcodes = fun_data_apps_common_authorization__lt_module_gt_ + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_common_authorization[32] = { + MP_QSTR_apps_slash_common_slash_authorization_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_storage_dot_cache, + MP_QSTR_cache, + MP_QSTR_protobuf, + MP_QSTR_trezor, + MP_QSTR_MessageType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_SignTx, + MP_QSTR_GetOwnershipProof, + MP_QSTR_AuthorizeCoinJoin, + MP_QSTR_APP_COMMON_AUTHORIZATION_DATA, + MP_QSTR_APP_COMMON_AUTHORIZATION_TYPE, + MP_QSTR_is_set, + MP_QSTR_get, + MP_QSTR_set, + MP_QSTR_ensure, + MP_QSTR_trezor_dot_utils, + MP_QSTR_dump_message_buffer, + MP_QSTR_MESSAGE_WIRE_TYPE, + MP_QSTR_set_int, + MP_QSTR_get_int, + MP_QSTR_load_message_buffer, + MP_QSTR_is_set_any_session, + MP_QSTR_get_int_all_sessions, + MP_QSTR_get_wire_types, + MP_QSTR_clear, + MP_QSTR_delete, + MP_QSTR_storage_cache, + MP_QSTR_WIRE_TYPES, + MP_QSTR_auth_message, + MP_QSTR_auth_type, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_common_authorization[1] = { + MP_ROM_PTR(&mp_const_empty_bytes_obj), +}; + +static const mp_frozen_module_t frozen_module_apps_common_authorization = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_common_authorization, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_common_authorization, + }, + .rc = &raw_code_apps_common_authorization__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_common_cbor +// - original source file: build/firmware/src/apps/common/cbor.mpy +// - frozen file name: apps/common/cbor.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor__lt_module_gt_ +static const byte fun_data_apps_common_cbor__lt_module_gt_[175] = { + 0x28,0x4e, // prelude + 0x01, // names: + 0x60,0x20,0x6c,0x4c,0x80,0x0b,0x29,0x86,0x1b,0x84,0x11,0x84,0x37,0x84,0x11,0x84,0x4b,0x89,0x0e,0x69,0x40,0x89,0x0d,0x72,0x80,0x11,0x64,0x20,0x84,0x09,0x88,0x0b,0x64,0x20,0x64,0x20,0x84,0x08, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'log' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor' + 0x1c,0x04, // IMPORT_FROM 'log' + 0x16,0x04, // STORE_NAME 'log' + 0x59, // POP_TOP + 0x2c,0x01, // BUILD_MAP 1 + 0x11,0x34, // LOAD_NAME 'object' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x62, // STORE_MAP + 0x16,0x35, // STORE_NAME 'Generic' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x57, // DUP_TOP + 0x16,0x36, // STORE_NAME 'K' + 0x16,0x37, // STORE_NAME 'V' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0a, // STORE_NAME '_header' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x12, // STORE_NAME '_cbor_encode' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x18, // STORE_NAME '_read_length' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x1f, // STORE_NAME '_cbor_decode' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x04, // MAKE_FUNCTION 4 + 0x10,0x06, // LOAD_CONST_STRING 'Tagged' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x06, // STORE_NAME 'Tagged' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x05, // MAKE_FUNCTION 5 + 0x10,0x07, // LOAD_CONST_STRING 'Raw' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x07, // STORE_NAME 'Raw' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x06, // MAKE_FUNCTION 6 + 0x10,0x08, // LOAD_CONST_STRING 'IndefiniteLengthArray' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x08, // STORE_NAME 'IndefiniteLengthArray' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x07, // MAKE_FUNCTION 7 + 0x10,0x09, // LOAD_CONST_STRING 'OrderedMap' + 0x11,0x35, // LOAD_NAME 'Generic' + 0x11,0x36, // LOAD_NAME 'K' + 0x11,0x37, // LOAD_NAME 'V' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x09, // STORE_NAME 'OrderedMap' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x13, // STORE_NAME 'encode' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x24, // STORE_NAME 'encode_streamed' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x0a, // MAKE_FUNCTION_DEFARGS 10 + 0x16,0x21, // STORE_NAME 'decode' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x29, // STORE_NAME 'create_array_header' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x2a, // STORE_NAME 'create_map_header' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x2b, // STORE_NAME 'create_embedded_cbor_bytes_header' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x16,0x2c, // STORE_NAME 'precedes' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_cbor__lt_module_gt_ +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor__header +static const byte fun_data_apps_common_cbor__header[115] = { + 0x32,0x20, // prelude + 0x0a,0x38,0x39, // names: _header, typ, l + 0x80,0x31,0x4b,0x25,0x29,0x27,0x2a,0x28,0x2a,0x26,0x2a,0x26,0x4a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'pack' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'ustruct' + 0x1c,0x0b, // IMPORT_FROM 'pack' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x98, // LOAD_CONST_SMALL_INT 24 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb2, // LOAD_FAST 2 + 0x10,0x0d, // LOAD_CONST_STRING '>B' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x22,0x82,0x00, // LOAD_CONST_SMALL_INT 256 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb2, // LOAD_FAST 2 + 0x10,0x0e, // LOAD_CONST_STRING '>BB' + 0xb0, // LOAD_FAST 0 + 0x98, // LOAD_CONST_SMALL_INT 24 + 0xf2, // BINARY_OP 27 __add__ + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x22,0x84,0x80,0x00, // LOAD_CONST_SMALL_INT 65536 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb2, // LOAD_FAST 2 + 0x10,0x0f, // LOAD_CONST_STRING '>BH' + 0xb0, // LOAD_FAST 0 + 0x99, // LOAD_CONST_SMALL_INT 25 + 0xf2, // BINARY_OP 27 __add__ + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb2, // LOAD_FAST 2 + 0x10,0x10, // LOAD_CONST_STRING '>BI' + 0xb0, // LOAD_FAST 0 + 0x9a, // LOAD_CONST_SMALL_INT 26 + 0xf2, // BINARY_OP 27 __add__ + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb2, // LOAD_FAST 2 + 0x10,0x11, // LOAD_CONST_STRING '>BQ' + 0xb0, // LOAD_FAST 0 + 0x9b, // LOAD_CONST_SMALL_INT 27 + 0xf2, // BINARY_OP 27 __add__ + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE + 0x12,0x3a, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor__header = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_cbor__header, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 115, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_common_cbor__header + 5, + .line_info_top = fun_data_apps_common_cbor__header + 18, + .opcodes = fun_data_apps_common_cbor__header + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_cbor__lt_module_gt_ +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor__cbor_encode +static const byte fun_data_apps_common_cbor__cbor_encode[512] = { + 0xd9,0x40,0x64, // prelude + 0x12,0x16, // names: _cbor_encode, value + 0x80,0x42,0x29,0x25,0x4a,0x2d,0x29,0x2e,0x26,0x29,0x2e,0x2a,0x29,0x26,0x2e,0x26,0x4d,0x2e,0x25,0x2e,0x29,0x2e,0x2f,0x28,0x23,0x2e,0x29,0x2e,0x28,0x27,0x2e,0x29,0x2c,0x2e,0x29,0x2b,0x27,0x2b,0x2e,0x29,0x23,0x4d,0x2d,0x29,0x27,0x25,0x4d,0x40, // code info + 0x12,0x3b, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x3c, // LOAD_GLOBAL 'int' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x0a, // LOAD_GLOBAL '_header' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x4a, // JUMP 10 + 0x12,0x0a, // LOAD_GLOBAL '_header' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0xb0, // LOAD_FAST 0 + 0xf3, // BINARY_OP 28 __sub__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0xa4,0x83, // JUMP 420 + 0x12,0x3b, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x3d, // LOAD_GLOBAL 'bytes' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x0a, // LOAD_GLOBAL '_header' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x12,0x3e, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x87,0x83, // JUMP 391 + 0x12,0x3b, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x3f, // LOAD_GLOBAL 'bytearray' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0x12,0x0a, // LOAD_GLOBAL '_header' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x12,0x3e, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL 'bytes' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0xe6,0x82, // JUMP 358 + 0x12,0x3b, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x40, // LOAD_GLOBAL 'str' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0xb0, // LOAD_FAST 0 + 0x14,0x13, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0xc1, // STORE_FAST 1 + 0x12,0x0a, // LOAD_GLOBAL '_header' + 0x22,0x80,0x60, // LOAD_CONST_SMALL_INT 96 + 0x12,0x3e, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0xc3,0x82, // JUMP 323 + 0x12,0x3b, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x41, // LOAD_GLOBAL 'list' + 0x12,0x42, // LOAD_GLOBAL 'tuple' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x61, // POP_JUMP_IF_FALSE 33 + 0x12,0x0a, // LOAD_GLOBAL '_header' + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0x12,0x3e, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0c, // FOR_ITER 12 + 0xc2, // STORE_FAST 2 + 0x12,0x12, // LOAD_GLOBAL '_cbor_encode' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x32, // JUMP -14 + 0x42,0x95,0x82, // JUMP 277 + 0x12,0x3b, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x43, // LOAD_GLOBAL 'dict' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x76, // POP_JUMP_IF_FALSE 54 + 0x12,0x0a, // LOAD_GLOBAL '_header' + 0x22,0x81,0x20, // LOAD_CONST_SMALL_INT 160 + 0x12,0x3e, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x12,0x44, // LOAD_GLOBAL 'sorted' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x14,0x14, // LOAD_METHOD 'items' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x5f, // GET_ITER_STACK + 0x4b,0x12, // FOR_ITER 18 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL '_cbor_encode' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x2c, // JUMP -20 + 0x42,0xd6,0x81, // JUMP 214 + 0x12,0x3b, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x09, // LOAD_GLOBAL 'OrderedMap' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x6b, // POP_JUMP_IF_FALSE 43 + 0x12,0x0a, // LOAD_GLOBAL '_header' + 0x22,0x81,0x20, // LOAD_CONST_SMALL_INT 160 + 0x12,0x3e, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x16, // FOR_ITER 22 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0x12,0x13, // LOAD_GLOBAL 'encode' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL '_cbor_encode' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x28, // JUMP -24 + 0x42,0xa2,0x81, // JUMP 162 + 0x12,0x3b, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x06, // LOAD_GLOBAL 'Tagged' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0x12,0x0a, // LOAD_GLOBAL '_header' + 0x22,0x81,0x40, // LOAD_CONST_SMALL_INT 192 + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'tag' + 0x34,0x02, // CALL_FUNCTION 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL '_cbor_encode' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'value' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0xff,0x80, // JUMP 127 + 0x12,0x3b, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x08, // LOAD_GLOBAL 'IndefiniteLengthArray' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x6b, // POP_JUMP_IF_FALSE 43 + 0x12,0x3d, // LOAD_GLOBAL 'bytes' + 0x22,0x81,0x1f, // LOAD_CONST_SMALL_INT 159 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'array' + 0x5f, // GET_ITER_STACK + 0x4b,0x0c, // FOR_ITER 12 + 0xc2, // STORE_FAST 2 + 0x12,0x12, // LOAD_GLOBAL '_cbor_encode' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x32, // JUMP -14 + 0x12,0x3d, // LOAD_GLOBAL 'bytes' + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0xcb,0x80, // JUMP 75 + 0x12,0x3b, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x45, // LOAD_GLOBAL 'bool' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x5d, // POP_JUMP_IF_FALSE 29 + 0xb0, // LOAD_FAST 0 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x3d, // LOAD_GLOBAL 'bytes' + 0x22,0x81,0x75, // LOAD_CONST_SMALL_INT 245 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x4b, // JUMP 11 + 0x12,0x3d, // LOAD_GLOBAL 'bytes' + 0x22,0x81,0x74, // LOAD_CONST_SMALL_INT 244 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x65, // JUMP 37 + 0x12,0x3b, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x07, // LOAD_GLOBAL 'Raw' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'value' + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x55, // JUMP 21 + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x3d, // LOAD_GLOBAL 'bytes' + 0x22,0x81,0x76, // LOAD_CONST_SMALL_INT 246 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x43, // JUMP 3 + 0x12,0x3a, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_cbor__cbor_encode +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor__cbor_encode__lt_genexpr_gt_ +static const byte fun_data_apps_common_cbor__cbor_encode__lt_genexpr_gt_[31] = { + 0xc1,0x40,0x08, // prelude + 0x2d,0x51, // names: , * + 0x80,0x58, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x10, // FOR_ITER 16 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc1, // STORE_FAST 1 + 0xc2, // STORE_FAST 2 + 0x12,0x13, // LOAD_GLOBAL 'encode' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x2e, // JUMP -18 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor__cbor_encode__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_cbor__cbor_encode__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_common_cbor__cbor_encode__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_apps_common_cbor__cbor_encode__lt_genexpr_gt_ + 7, + .opcodes = fun_data_apps_common_cbor__cbor_encode__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_cbor__cbor_encode[] = { + &raw_code_apps_common_cbor__cbor_encode__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_common_cbor__cbor_encode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_cbor__cbor_encode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 512, + #endif + .children = (void *)&children_apps_common_cbor__cbor_encode, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_common_cbor__cbor_encode + 5, + .line_info_top = fun_data_apps_common_cbor__cbor_encode + 53, + .opcodes = fun_data_apps_common_cbor__cbor_encode + 53, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_cbor__lt_module_gt_ +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor__read_length +static const byte fun_data_apps_common_cbor__read_length[88] = { + 0x2a,0x20, // prelude + 0x18,0x46,0x47, // names: _read_length, r, aux + 0x80,0x79,0x4b,0x25,0x22,0x25,0x26,0x25,0x27,0x25,0x27,0x25,0x47, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x19, // LOAD_CONST_STRING 'readers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1a, // IMPORT_NAME '' + 0x1c,0x19, // IMPORT_FROM 'readers' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x98, // LOAD_CONST_SMALL_INT 24 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x98, // LOAD_CONST_SMALL_INT 24 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb0, // LOAD_FAST 0 + 0x14,0x1b, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x99, // LOAD_CONST_SMALL_INT 25 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb2, // LOAD_FAST 2 + 0x14,0x1c, // LOAD_METHOD 'read_uint16_be' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x9a, // LOAD_CONST_SMALL_INT 26 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb2, // LOAD_FAST 2 + 0x14,0x1d, // LOAD_METHOD 'read_uint32_be' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x9b, // LOAD_CONST_SMALL_INT 27 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb2, // LOAD_FAST 2 + 0x14,0x1e, // LOAD_METHOD 'read_uint64_be' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0x12,0x3a, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor__read_length = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_cbor__read_length, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 88, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 24, + .line_info = fun_data_apps_common_cbor__read_length + 5, + .line_info_top = fun_data_apps_common_cbor__read_length + 18, + .opcodes = fun_data_apps_common_cbor__read_length + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_cbor__lt_module_gt_ +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor__cbor_decode +static const byte fun_data_apps_common_cbor__cbor_decode[429] = { + 0x79,0x8a,0x02, // prelude + 0x1f,0x46, // names: _cbor_decode, r + 0x80,0x8a,0x26,0x26,0x24,0x25,0x27,0x25,0x27,0x24,0x27,0x27,0x27,0x27,0x27,0x2b,0x28,0x25,0x23,0x20,0x26,0x27,0x22,0x29,0x42,0x27,0x23,0x26,0x26,0x30,0x25,0x28,0x23,0x25,0x20,0x26,0x25,0x23,0x27,0x22,0x26,0x48,0x27,0x26,0x26,0x25,0x23,0x26,0x2d,0x22,0x27,0x27,0x26,0x25,0x42,0x29,0x27,0x25,0x22,0x25,0x22,0x25,0x22,0x25,0x42,0x45,0x40, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x1b, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x22,0x81,0x60, // LOAD_CONST_SMALL_INT 224 + 0xef, // BINARY_OP 24 __and__ + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xef, // BINARY_OP 24 __and__ + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x18, // LOAD_GLOBAL '_read_length' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x18, // LOAD_GLOBAL '_read_length' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc4, // STORE_FAST 4 + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0xb4, // LOAD_FAST 4 + 0xf3, // BINARY_OP 28 __sub__ + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x18, // LOAD_GLOBAL '_read_length' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x14,0x20, // LOAD_METHOD 'read' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x22,0x80,0x60, // LOAD_CONST_SMALL_INT 96 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x18, // LOAD_GLOBAL '_read_length' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x14,0x20, // LOAD_METHOD 'read' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x21, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xcd,0x80, // POP_JUMP_IF_FALSE 77 + 0xb3, // LOAD_FAST 3 + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5d, // POP_JUMP_IF_FALSE 29 + 0x2b,0x00, // BUILD_LIST 0 + 0xc6, // STORE_FAST 6 + 0x12,0x1f, // LOAD_GLOBAL '_cbor_decode' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x49, // JUMP 9 + 0xb6, // LOAD_FAST 6 + 0x14,0x22, // LOAD_METHOD 'append' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x28, // JUMP -24 + 0xb6, // LOAD_FAST 6 + 0x63, // RETURN_VALUE + 0x12,0x18, // LOAD_GLOBAL '_read_length' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0x2b,0x00, // BUILD_LIST 0 + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x51, // JUMP 17 + 0x57, // DUP_TOP + 0xc8, // STORE_FAST 8 + 0x12,0x1f, // LOAD_GLOBAL '_cbor_decode' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0xb6, // LOAD_FAST 6 + 0x14,0x22, // LOAD_METHOD 'append' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2a, // POP_JUMP_IF_TRUE -22 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x63, // RETURN_VALUE + 0x42,0xb4,0x81, // JUMP 180 + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x20, // LOAD_CONST_SMALL_INT 160 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xdd,0x80, // POP_JUMP_IF_FALSE 93 + 0x2c,0x00, // BUILD_MAP 0 + 0xc6, // STORE_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x65, // POP_JUMP_IF_FALSE 37 + 0x12,0x1f, // LOAD_GLOBAL '_cbor_decode' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0xb9, // LOAD_FAST 9 + 0xb6, // LOAD_FAST 6 + 0xdd, // BINARY_OP 6 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x48, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb9, // LOAD_FAST 9 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x4c, // JUMP 12 + 0x12,0x1f, // LOAD_GLOBAL '_cbor_decode' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0xb6, // LOAD_FAST 6 + 0xb9, // LOAD_FAST 9 + 0x56, // STORE_SUBSCR + 0x42,0x1d, // JUMP -35 + 0x42,0x6e, // JUMP 46 + 0x12,0x18, // LOAD_GLOBAL '_read_length' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x5c, // JUMP 28 + 0x57, // DUP_TOP + 0xc8, // STORE_FAST 8 + 0x12,0x1f, // LOAD_GLOBAL '_cbor_decode' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0xb9, // LOAD_FAST 9 + 0xb6, // LOAD_FAST 6 + 0xdd, // BINARY_OP 6 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x48, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x1f, // LOAD_GLOBAL '_cbor_decode' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0xb6, // LOAD_FAST 6 + 0xb9, // LOAD_FAST 9 + 0x56, // STORE_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x1f, // POP_JUMP_IF_TRUE -33 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x40, // LOAD_CONST_SMALL_INT 192 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5d, // POP_JUMP_IF_FALSE 29 + 0x12,0x18, // LOAD_GLOBAL '_read_length' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc4, // STORE_FAST 4 + 0x12,0x1f, // LOAD_GLOBAL '_cbor_decode' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x98, // LOAD_CONST_SMALL_INT 24 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb7, // LOAD_FAST 7 + 0x63, // RETURN_VALUE + 0x12,0x06, // LOAD_GLOBAL 'Tagged' + 0xb4, // LOAD_FAST 4 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x42,0x6b, // JUMP 43 + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x60, // LOAD_CONST_SMALL_INT 224 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x61, // POP_JUMP_IF_FALSE 33 + 0xb3, // LOAD_FAST 3 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0xb3, // LOAD_FAST 3 + 0x95, // LOAD_CONST_SMALL_INT 21 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE + 0xb3, // LOAD_FAST 3 + 0x96, // LOAD_CONST_SMALL_INT 22 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb3, // LOAD_FAST 3 + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE + 0x12,0x3a, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x42,0x43, // JUMP 3 + 0x12,0x3a, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor__cbor_decode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_cbor__cbor_decode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 429, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_common_cbor__cbor_decode + 5, + .line_info_top = fun_data_apps_common_cbor__cbor_decode + 72, + .opcodes = fun_data_apps_common_cbor__cbor_decode + 72, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_cbor__lt_module_gt_ +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_Tagged +static const byte fun_data_apps_common_cbor_Tagged[25] = { + 0x00,0x0a, // prelude + 0x06, // names: Tagged + 0x88,0xd5,0x64,0x20, // code info + 0x11,0x49, // LOAD_NAME '__name__' + 0x16,0x4a, // STORE_NAME '__module__' + 0x10,0x06, // LOAD_CONST_STRING 'Tagged' + 0x16,0x4b, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x2e, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x2f, // STORE_NAME '__eq__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_cbor_Tagged +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_Tagged___init__ +static const byte fun_data_apps_common_cbor_Tagged___init__[19] = { + 0x23,0x0e, // prelude + 0x2e,0x52,0x15,0x16, // names: __init__, self, tag, value + 0x80,0xd6,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x15, // STORE_ATTR 'tag' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x16, // STORE_ATTR 'value' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor_Tagged___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_common_cbor_Tagged___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_common_cbor_Tagged___init__ + 6, + .line_info_top = fun_data_apps_common_cbor_Tagged___init__ + 9, + .opcodes = fun_data_apps_common_cbor_Tagged___init__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_cbor_Tagged +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_Tagged___eq__ +static const byte fun_data_apps_common_cbor_Tagged___eq__[36] = { + 0x22,0x10, // prelude + 0x2f,0x52,0x53, // names: __eq__, self, other + 0x80,0xda,0x20,0x29,0x29, // code info + 0x12,0x3b, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x06, // LOAD_GLOBAL 'Tagged' + 0x34,0x02, // CALL_FUNCTION 2 + 0x46,0x10, // JUMP_IF_FALSE_OR_POP 16 + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'tag' + 0xb1, // LOAD_FAST 1 + 0x13,0x15, // LOAD_ATTR 'tag' + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x07, // JUMP_IF_FALSE_OR_POP 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'value' + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'value' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor_Tagged___eq__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_cbor_Tagged___eq__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_apps_common_cbor_Tagged___eq__ + 5, + .line_info_top = fun_data_apps_common_cbor_Tagged___eq__ + 10, + .opcodes = fun_data_apps_common_cbor_Tagged___eq__ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_cbor_Tagged[] = { + &raw_code_apps_common_cbor_Tagged___init__, + &raw_code_apps_common_cbor_Tagged___eq__, +}; + +static const mp_raw_code_t raw_code_apps_common_cbor_Tagged = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_cbor_Tagged, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = (void *)&children_apps_common_cbor_Tagged, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_common_cbor_Tagged + 3, + .line_info_top = fun_data_apps_common_cbor_Tagged + 7, + .opcodes = fun_data_apps_common_cbor_Tagged + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_cbor__lt_module_gt_ +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_Raw +static const byte fun_data_apps_common_cbor_Raw[19] = { + 0x00,0x06, // prelude + 0x07, // names: Raw + 0x88,0xe3, // code info + 0x11,0x49, // LOAD_NAME '__name__' + 0x16,0x4a, // STORE_NAME '__module__' + 0x10,0x07, // LOAD_CONST_STRING 'Raw' + 0x16,0x4b, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x2e, // STORE_NAME '__init__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_cbor_Raw +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_Raw___init__ +static const byte fun_data_apps_common_cbor_Raw___init__[13] = { + 0x1a,0x0a, // prelude + 0x2e,0x52,0x16, // names: __init__, self, value + 0x80,0xe4, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x16, // STORE_ATTR 'value' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor_Raw___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_cbor_Raw___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_common_cbor_Raw___init__ + 5, + .line_info_top = fun_data_apps_common_cbor_Raw___init__ + 7, + .opcodes = fun_data_apps_common_cbor_Raw___init__ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_cbor_Raw[] = { + &raw_code_apps_common_cbor_Raw___init__, +}; + +static const mp_raw_code_t raw_code_apps_common_cbor_Raw = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_cbor_Raw, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = (void *)&children_apps_common_cbor_Raw, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_common_cbor_Raw + 3, + .line_info_top = fun_data_apps_common_cbor_Raw + 5, + .opcodes = fun_data_apps_common_cbor_Raw + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_cbor__lt_module_gt_ +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_IndefiniteLengthArray +static const byte fun_data_apps_common_cbor_IndefiniteLengthArray[24] = { + 0x00,0x08, // prelude + 0x08, // names: IndefiniteLengthArray + 0x88,0xe8,0x64, // code info + 0x11,0x49, // LOAD_NAME '__name__' + 0x16,0x4a, // STORE_NAME '__module__' + 0x10,0x08, // LOAD_CONST_STRING 'IndefiniteLengthArray' + 0x16,0x4b, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x2e, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x2f, // STORE_NAME '__eq__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_cbor_IndefiniteLengthArray +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_IndefiniteLengthArray___init__ +static const byte fun_data_apps_common_cbor_IndefiniteLengthArray___init__[13] = { + 0x1a,0x0a, // prelude + 0x2e,0x52,0x17, // names: __init__, self, array + 0x80,0xe9, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x17, // STORE_ATTR 'array' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor_IndefiniteLengthArray___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_cbor_IndefiniteLengthArray___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_common_cbor_IndefiniteLengthArray___init__ + 5, + .line_info_top = fun_data_apps_common_cbor_IndefiniteLengthArray___init__ + 7, + .opcodes = fun_data_apps_common_cbor_IndefiniteLengthArray___init__ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_cbor_IndefiniteLengthArray +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_IndefiniteLengthArray___eq__ +static const byte fun_data_apps_common_cbor_IndefiniteLengthArray___eq__[47] = { + 0x22,0x12, // prelude + 0x2f,0x52,0x53, // names: __eq__, self, other + 0x80,0xec,0x29,0x28,0x29,0x46, // code info + 0x12,0x3b, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x08, // LOAD_GLOBAL 'IndefiniteLengthArray' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'array' + 0xb1, // LOAD_FAST 1 + 0x13,0x17, // LOAD_ATTR 'array' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE + 0x12,0x3b, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x41, // LOAD_GLOBAL 'list' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'array' + 0xb1, // LOAD_FAST 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor_IndefiniteLengthArray___eq__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_cbor_IndefiniteLengthArray___eq__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_apps_common_cbor_IndefiniteLengthArray___eq__ + 5, + .line_info_top = fun_data_apps_common_cbor_IndefiniteLengthArray___eq__ + 11, + .opcodes = fun_data_apps_common_cbor_IndefiniteLengthArray___eq__ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_cbor_IndefiniteLengthArray[] = { + &raw_code_apps_common_cbor_IndefiniteLengthArray___init__, + &raw_code_apps_common_cbor_IndefiniteLengthArray___eq__, +}; + +static const mp_raw_code_t raw_code_apps_common_cbor_IndefiniteLengthArray = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_cbor_IndefiniteLengthArray, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = (void *)&children_apps_common_cbor_IndefiniteLengthArray, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_common_cbor_IndefiniteLengthArray + 3, + .line_info_top = fun_data_apps_common_cbor_IndefiniteLengthArray + 6, + .opcodes = fun_data_apps_common_cbor_IndefiniteLengthArray + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_cbor__lt_module_gt_ +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_OrderedMap +static const byte fun_data_apps_common_cbor_OrderedMap[36] = { + 0x00,0x10, // prelude + 0x09, // names: OrderedMap + 0x88,0xf5,0x60,0x60,0x64,0x64,0x64, // code info + 0x11,0x49, // LOAD_NAME '__name__' + 0x16,0x4a, // STORE_NAME '__module__' + 0x10,0x09, // LOAD_CONST_STRING 'OrderedMap' + 0x16,0x4b, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x2e, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x31, // STORE_NAME '__setitem__' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x32, // STORE_NAME '__iter__' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x33, // STORE_NAME '__len__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_cbor_OrderedMap +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_OrderedMap___init__ +static const byte fun_data_apps_common_cbor_OrderedMap___init__[13] = { + 0x11,0x08, // prelude + 0x2e,0x52, // names: __init__, self + 0x80,0xfc, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x30, // STORE_ATTR '_internal_list' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor_OrderedMap___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_cbor_OrderedMap___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_common_cbor_OrderedMap___init__ + 4, + .line_info_top = fun_data_apps_common_cbor_OrderedMap___init__ + 6, + .opcodes = fun_data_apps_common_cbor_OrderedMap___init__ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_cbor_OrderedMap +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_OrderedMap___setitem__ +static const byte fun_data_apps_common_cbor_OrderedMap___setitem__[22] = { + 0x33,0x0c, // prelude + 0x31,0x52,0x54,0x16, // names: __setitem__, self, key, value + 0x80,0xff, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR '_internal_list' + 0x14,0x22, // LOAD_METHOD 'append' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor_OrderedMap___setitem__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_common_cbor_OrderedMap___setitem__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 49, + .line_info = fun_data_apps_common_cbor_OrderedMap___setitem__ + 6, + .line_info_top = fun_data_apps_common_cbor_OrderedMap___setitem__ + 8, + .opcodes = fun_data_apps_common_cbor_OrderedMap___setitem__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_cbor_OrderedMap +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_OrderedMap___iter__ +static const byte fun_data_apps_common_cbor_OrderedMap___iter__[16] = { + 0x91,0x40,0x08, // prelude + 0x32,0x52, // names: __iter__, self + 0x90,0x02, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR '_internal_list' + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor_OrderedMap___iter__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_cbor_OrderedMap___iter__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 50, + .line_info = fun_data_apps_common_cbor_OrderedMap___iter__ + 5, + .line_info_top = fun_data_apps_common_cbor_OrderedMap___iter__ + 7, + .opcodes = fun_data_apps_common_cbor_OrderedMap___iter__ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_cbor_OrderedMap +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_OrderedMap___len__ +static const byte fun_data_apps_common_cbor_OrderedMap___len__[14] = { + 0x11,0x08, // prelude + 0x33,0x52, // names: __len__, self + 0x90,0x05, // code info + 0x12,0x3e, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR '_internal_list' + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor_OrderedMap___len__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_cbor_OrderedMap___len__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 51, + .line_info = fun_data_apps_common_cbor_OrderedMap___len__ + 4, + .line_info_top = fun_data_apps_common_cbor_OrderedMap___len__ + 6, + .opcodes = fun_data_apps_common_cbor_OrderedMap___len__ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_cbor_OrderedMap[] = { + &raw_code_apps_common_cbor_OrderedMap___init__, + &raw_code_apps_common_cbor_OrderedMap___setitem__, + &raw_code_apps_common_cbor_OrderedMap___iter__, + &raw_code_apps_common_cbor_OrderedMap___len__, +}; + +static const mp_raw_code_t raw_code_apps_common_cbor_OrderedMap = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_cbor_OrderedMap, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = (void *)&children_apps_common_cbor_OrderedMap, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_common_cbor_OrderedMap + 3, + .line_info_top = fun_data_apps_common_cbor_OrderedMap + 10, + .opcodes = fun_data_apps_common_cbor_OrderedMap + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_cbor__lt_module_gt_ +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_encode +static const byte fun_data_apps_common_cbor_encode[18] = { + 0x21,0x08, // prelude + 0x13,0x16, // names: encode, value + 0x90,0x09, // code info + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x14,0x23, // LOAD_METHOD 'join' + 0x12,0x12, // LOAD_GLOBAL '_cbor_encode' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor_encode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_cbor_encode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_common_cbor_encode + 4, + .line_info_top = fun_data_apps_common_cbor_encode + 6, + .opcodes = fun_data_apps_common_cbor_encode + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_cbor__lt_module_gt_ +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_encode_streamed +static const byte fun_data_apps_common_cbor_encode_streamed[14] = { + 0x11,0x0c, // prelude + 0x24,0x16, // names: encode_streamed, value + 0x90,0x0d,0x60,0x40, // code info + 0x12,0x12, // LOAD_GLOBAL '_cbor_encode' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor_encode_streamed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_cbor_encode_streamed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_common_cbor_encode_streamed + 4, + .line_info_top = fun_data_apps_common_cbor_encode_streamed + 8, + .opcodes = fun_data_apps_common_cbor_encode_streamed + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_cbor__lt_module_gt_ +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_decode +static const byte fun_data_apps_common_cbor_decode[55] = { + 0xba,0x01,0x16, // prelude + 0x21,0x4c,0x4d, // names: decode, cbor, offset + 0x90,0x16,0x4b,0x25,0x27,0x26,0x27,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x25, // LOAD_CONST_STRING 'BufferReader' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x26, // IMPORT_NAME 'trezor.utils' + 0x1c,0x25, // IMPORT_FROM 'BufferReader' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x14,0x27, // LOAD_METHOD 'seek' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x1f, // LOAD_GLOBAL '_cbor_decode' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x14,0x28, // LOAD_METHOD 'remaining_count' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x48, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor_decode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_cbor_decode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_common_cbor_decode + 6, + .line_info_top = fun_data_apps_common_cbor_decode + 14, + .opcodes = fun_data_apps_common_cbor_decode + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_cbor__lt_module_gt_ +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_create_array_header +static const byte fun_data_apps_common_cbor_create_array_header[15] = { + 0x19,0x08, // prelude + 0x29,0x4e, // names: create_array_header, size + 0x90,0x21, // code info + 0x12,0x0a, // LOAD_GLOBAL '_header' + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor_create_array_header = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_cbor_create_array_header, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_common_cbor_create_array_header + 4, + .line_info_top = fun_data_apps_common_cbor_create_array_header + 6, + .opcodes = fun_data_apps_common_cbor_create_array_header + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_cbor__lt_module_gt_ +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_create_map_header +static const byte fun_data_apps_common_cbor_create_map_header[15] = { + 0x19,0x08, // prelude + 0x2a,0x4e, // names: create_map_header, size + 0x90,0x25, // code info + 0x12,0x0a, // LOAD_GLOBAL '_header' + 0x22,0x81,0x20, // LOAD_CONST_SMALL_INT 160 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor_create_map_header = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_cbor_create_map_header, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_common_cbor_create_map_header + 4, + .line_info_top = fun_data_apps_common_cbor_create_map_header + 6, + .opcodes = fun_data_apps_common_cbor_create_map_header + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_cbor__lt_module_gt_ +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_create_embedded_cbor_bytes_header +static const byte fun_data_apps_common_cbor_create_embedded_cbor_bytes_header[26] = { + 0x21,0x0c, // prelude + 0x2b,0x4e, // names: create_embedded_cbor_bytes_header, size + 0x90,0x29,0x60,0x20, // code info + 0x12,0x0a, // LOAD_GLOBAL '_header' + 0x22,0x81,0x40, // LOAD_CONST_SMALL_INT 192 + 0x98, // LOAD_CONST_SMALL_INT 24 + 0x34,0x02, // CALL_FUNCTION 2 + 0x12,0x0a, // LOAD_GLOBAL '_header' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor_create_embedded_cbor_bytes_header = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_cbor_create_embedded_cbor_bytes_header, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_apps_common_cbor_create_embedded_cbor_bytes_header + 4, + .line_info_top = fun_data_apps_common_cbor_create_embedded_cbor_bytes_header + 8, + .opcodes = fun_data_apps_common_cbor_create_embedded_cbor_bytes_header + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_cbor__lt_module_gt_ +// frozen bytecode for file apps/common/cbor.py, scope apps_common_cbor_precedes +static const byte fun_data_apps_common_cbor_precedes[39] = { + 0x22,0x0e, // prelude + 0x2c,0x4f,0x50, // names: precedes, prev, curr + 0x90,0x31,0x60,0x60, // code info + 0x12,0x3e, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x3e, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x45,0x10, // JUMP_IF_TRUE_OR_POP 16 + 0x12,0x3e, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x3e, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x03, // JUMP_IF_FALSE_OR_POP 3 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_cbor_precedes = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_cbor_precedes, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 44, + .line_info = fun_data_apps_common_cbor_precedes + 5, + .line_info_top = fun_data_apps_common_cbor_precedes + 9, + .opcodes = fun_data_apps_common_cbor_precedes + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_cbor__lt_module_gt_[] = { + &raw_code_apps_common_cbor__header, + &raw_code_apps_common_cbor__cbor_encode, + &raw_code_apps_common_cbor__read_length, + &raw_code_apps_common_cbor__cbor_decode, + &raw_code_apps_common_cbor_Tagged, + &raw_code_apps_common_cbor_Raw, + &raw_code_apps_common_cbor_IndefiniteLengthArray, + &raw_code_apps_common_cbor_OrderedMap, + &raw_code_apps_common_cbor_encode, + &raw_code_apps_common_cbor_encode_streamed, + &raw_code_apps_common_cbor_decode, + &raw_code_apps_common_cbor_create_array_header, + &raw_code_apps_common_cbor_create_map_header, + &raw_code_apps_common_cbor_create_embedded_cbor_bytes_header, + &raw_code_apps_common_cbor_precedes, +}; + +static const mp_raw_code_t raw_code_apps_common_cbor__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_cbor__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 175, + #endif + .children = (void *)&children_apps_common_cbor__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 15, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_common_cbor__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_common_cbor__lt_module_gt_ + 41, + .opcodes = fun_data_apps_common_cbor__lt_module_gt_ + 41, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_common_cbor[85] = { + MP_QSTR_apps_slash_common_slash_cbor_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_log, + MP_QSTR_trezor, + MP_QSTR_Tagged, + MP_QSTR_Raw, + MP_QSTR_IndefiniteLengthArray, + MP_QSTR_OrderedMap, + MP_QSTR__header, + MP_QSTR_pack, + MP_QSTR_ustruct, + MP_QSTR__gt_B, + MP_QSTR__gt_BB, + MP_QSTR__gt_BH, + MP_QSTR__gt_BI, + MP_QSTR__gt_BQ, + MP_QSTR__cbor_encode, + MP_QSTR_encode, + MP_QSTR_items, + MP_QSTR_tag, + MP_QSTR_value, + MP_QSTR_array, + MP_QSTR__read_length, + MP_QSTR_readers, + MP_QSTR_, + MP_QSTR_get, + MP_QSTR_read_uint16_be, + MP_QSTR_read_uint32_be, + MP_QSTR_read_uint64_be, + MP_QSTR__cbor_decode, + MP_QSTR_read, + MP_QSTR_decode, + MP_QSTR_append, + MP_QSTR_join, + MP_QSTR_encode_streamed, + MP_QSTR_BufferReader, + MP_QSTR_trezor_dot_utils, + MP_QSTR_seek, + MP_QSTR_remaining_count, + MP_QSTR_create_array_header, + MP_QSTR_create_map_header, + MP_QSTR_create_embedded_cbor_bytes_header, + MP_QSTR_precedes, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR___init__, + MP_QSTR___eq__, + MP_QSTR__internal_list, + MP_QSTR___setitem__, + MP_QSTR___iter__, + MP_QSTR___len__, + MP_QSTR_object, + MP_QSTR_Generic, + MP_QSTR_K, + MP_QSTR_V, + MP_QSTR_typ, + MP_QSTR_l, + MP_QSTR_NotImplementedError, + MP_QSTR_isinstance, + MP_QSTR_int, + MP_QSTR_bytes, + MP_QSTR_len, + MP_QSTR_bytearray, + MP_QSTR_str, + MP_QSTR_list, + MP_QSTR_tuple, + MP_QSTR_dict, + MP_QSTR_sorted, + MP_QSTR_bool, + MP_QSTR_r, + MP_QSTR_aux, + MP_QSTR_ValueError, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_cbor, + MP_QSTR_offset, + MP_QSTR_size, + MP_QSTR_prev, + MP_QSTR_curr, + MP_QSTR__star_, + MP_QSTR_self, + MP_QSTR_other, + MP_QSTR_key, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_common_cbor_0 = {{&mp_type_tuple}, 2, { + MP_ROM_INT(0), + MP_ROM_INT(0), +}}; +static const mp_obj_int_t const_obj_apps_common_cbor_1 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x0,0x0,0x1}}}; +static const mp_obj_int_t const_obj_apps_common_cbor_2 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=5, .len=5, .dig=(uint16_t*)(const uint16_t[]){0x0,0x0,0x0,0x0,0x1}}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_common_cbor[4] = { + MP_ROM_PTR(&const_obj_apps_common_cbor_0), + MP_ROM_PTR(&const_obj_apps_common_cbor_1), + MP_ROM_PTR(&const_obj_apps_common_cbor_2), + MP_ROM_PTR(&mp_const_empty_bytes_obj), +}; + +static const mp_frozen_module_t frozen_module_apps_common_cbor = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_common_cbor, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_common_cbor, + }, + .rc = &raw_code_apps_common_cbor__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_common_coininfo +// - original source file: build/firmware/src/apps/common/coininfo.mpy +// - frozen file name: apps/common/coininfo.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/common/coininfo.py, scope apps_common_coininfo__lt_module_gt_ +static const byte fun_data_apps_common_coininfo__lt_module_gt_[86] = { + 0x20,0x12, // prelude + 0x01, // names: + 0x80,0x08,0x2c,0x3e,0x72,0x40,0x89,0x50, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'utils' + 0x16,0x02, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'blake256d_32' + 0x10,0x05, // LOAD_CONST_STRING 'groestl512d_32' + 0x10,0x06, // LOAD_CONST_STRING 'keccak_32' + 0x10,0x07, // LOAD_CONST_STRING 'sha256d_32' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x08, // IMPORT_NAME 'trezor.crypto.base58' + 0x1c,0x04, // IMPORT_FROM 'blake256d_32' + 0x16,0x04, // STORE_NAME 'blake256d_32' + 0x1c,0x05, // IMPORT_FROM 'groestl512d_32' + 0x16,0x05, // STORE_NAME 'groestl512d_32' + 0x1c,0x06, // IMPORT_FROM 'keccak_32' + 0x16,0x06, // STORE_NAME 'keccak_32' + 0x1c,0x07, // IMPORT_FROM 'sha256d_32' + 0x16,0x07, // STORE_NAME 'sha256d_32' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'blake256_ripemd160' + 0x10,0x0a, // LOAD_CONST_STRING 'sha256_ripemd160' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0b, // IMPORT_NAME 'trezor.crypto.scripts' + 0x1c,0x09, // IMPORT_FROM 'blake256_ripemd160' + 0x16,0x09, // STORE_NAME 'blake256_ripemd160' + 0x1c,0x0a, // IMPORT_FROM 'sha256_ripemd160' + 0x16,0x0a, // STORE_NAME 'sha256_ripemd160' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x0c, // LOAD_CONST_STRING 'CoinInfo' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x0c, // STORE_NAME 'CoinInfo' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0d, // STORE_NAME 'by_name' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_coininfo__lt_module_gt_ +// frozen bytecode for file apps/common/coininfo.py, scope apps_common_coininfo_CoinInfo +static const byte fun_data_apps_common_coininfo_CoinInfo[30] = { + 0x00,0x0a, // prelude + 0x0c, // names: CoinInfo + 0x8b,0x10,0x85,0x48, // code info + 0x11,0x81,0x27, // LOAD_NAME '__name__' + 0x16,0x81,0x28, // STORE_NAME '__module__' + 0x10,0x0c, // LOAD_CONST_STRING 'CoinInfo' + 0x16,0x81,0x29, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x08, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x81,0x26, // STORE_NAME '__eq__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_coininfo_CoinInfo +// frozen bytecode for file apps/common/coininfo.py, scope apps_common_coininfo_CoinInfo___init__ +static const byte fun_data_apps_common_coininfo_CoinInfo___init__[343] = { + 0xe3,0x90,0x84,0x04,0xc4,0x02, // prelude + 0x81,0x08,0x81,0x2c,0x81,0x09,0x81,0x0a,0x81,0x0b,0x81,0x0c,0x81,0x0d,0x81,0x0e,0x81,0x0f,0x81,0x10,0x81,0x11,0x81,0x12,0x81,0x13,0x81,0x14,0x81,0x15,0x81,0x16,0x81,0x17,0x81,0x18,0x81,0x19,0x81,0x1a,0x81,0x1b,0x81,0x1c,0x81,0x1d,0x81,0x1e,0x81,0x1f,0x81,0x20,0x81,0x21,0x81,0x22, // names: __init__, self, coin_name, coin_shortcut, decimals, address_type, address_type_p2sh, maxfee_kb, signed_message_header, xpub_magic, xpub_magic_segwit_p2sh, xpub_magic_segwit_native, xpub_magic_multisig_segwit_p2sh, xpub_magic_multisig_segwit_native, bech32_prefix, cashaddr_prefix, slip44, segwit, taproot, fork_id, force_bip143, decred, negative_fee, curve_name, extra_data, timestamp, overwintered, confidential_assets + 0x80,0x2d,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x27,0x26,0x25,0x29,0x27,0x26,0x25,0x28,0x27,0x26,0x25,0x48,0x26,0x25, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x09, // STORE_ATTR 'coin_name' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x0a, // STORE_ATTR 'coin_shortcut' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x0b, // STORE_ATTR 'decimals' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x0c, // STORE_ATTR 'address_type' + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x0d, // STORE_ATTR 'address_type_p2sh' + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x0e, // STORE_ATTR 'maxfee_kb' + 0xb7, // LOAD_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x0f, // STORE_ATTR 'signed_message_header' + 0xb8, // LOAD_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x10, // STORE_ATTR 'xpub_magic' + 0xb9, // LOAD_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x11, // STORE_ATTR 'xpub_magic_segwit_p2sh' + 0xba, // LOAD_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x12, // STORE_ATTR 'xpub_magic_segwit_native' + 0xbb, // LOAD_FAST 11 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x13, // STORE_ATTR 'xpub_magic_multisig_segwit_p2sh' + 0xbc, // LOAD_FAST 12 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x14, // STORE_ATTR 'xpub_magic_multisig_segwit_native' + 0xbd, // LOAD_FAST 13 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x15, // STORE_ATTR 'bech32_prefix' + 0xbe, // LOAD_FAST 14 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x16, // STORE_ATTR 'cashaddr_prefix' + 0xbf, // LOAD_FAST 15 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x17, // STORE_ATTR 'slip44' + 0x24,0x10, // LOAD_FAST_N 16 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x18, // STORE_ATTR 'segwit' + 0x24,0x11, // LOAD_FAST_N 17 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x19, // STORE_ATTR 'taproot' + 0x24,0x12, // LOAD_FAST_N 18 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x1a, // STORE_ATTR 'fork_id' + 0x24,0x13, // LOAD_FAST_N 19 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x1b, // STORE_ATTR 'force_bip143' + 0x24,0x14, // LOAD_FAST_N 20 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x1c, // STORE_ATTR 'decred' + 0x24,0x15, // LOAD_FAST_N 21 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x1d, // STORE_ATTR 'negative_fee' + 0x24,0x16, // LOAD_FAST_N 22 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x1e, // STORE_ATTR 'curve_name' + 0x24,0x17, // LOAD_FAST_N 23 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x1f, // STORE_ATTR 'extra_data' + 0x24,0x18, // LOAD_FAST_N 24 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x20, // STORE_ATTR 'timestamp' + 0x24,0x19, // LOAD_FAST_N 25 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x21, // STORE_ATTR 'overwintered' + 0x24,0x1a, // LOAD_FAST_N 26 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x22, // STORE_ATTR 'confidential_assets' + 0x24,0x16, // LOAD_FAST_N 22 + 0x23,0x27, // LOAD_CONST_OBJ 39 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x05, // LOAD_GLOBAL 'groestl512d_32' + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x23, // STORE_ATTR 'b58_hash' + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x24, // STORE_ATTR 'sign_hash_double' + 0x12,0x0a, // LOAD_GLOBAL 'sha256_ripemd160' + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x25, // STORE_ATTR 'script_hash' + 0x42,0xc5,0x80, // JUMP 69 + 0x24,0x16, // LOAD_FAST_N 22 + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x04, // LOAD_GLOBAL 'blake256d_32' + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x23, // STORE_ATTR 'b58_hash' + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x24, // STORE_ATTR 'sign_hash_double' + 0x12,0x09, // LOAD_GLOBAL 'blake256_ripemd160' + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x25, // STORE_ATTR 'script_hash' + 0x42,0x6b, // JUMP 43 + 0x24,0x16, // LOAD_FAST_N 22 + 0x23,0x40, // LOAD_CONST_OBJ 64 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x06, // LOAD_GLOBAL 'keccak_32' + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x23, // STORE_ATTR 'b58_hash' + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x24, // STORE_ATTR 'sign_hash_double' + 0x12,0x0a, // LOAD_GLOBAL 'sha256_ripemd160' + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x25, // STORE_ATTR 'script_hash' + 0x42,0x51, // JUMP 17 + 0x12,0x07, // LOAD_GLOBAL 'sha256d_32' + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x23, // STORE_ATTR 'b58_hash' + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x24, // STORE_ATTR 'sign_hash_double' + 0x12,0x0a, // LOAD_GLOBAL 'sha256_ripemd160' + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x25, // STORE_ATTR 'script_hash' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_coininfo_CoinInfo___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 27, + .fun_data = fun_data_apps_common_coininfo_CoinInfo___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 343, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 29, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 27, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 136, + .line_info = fun_data_apps_common_coininfo_CoinInfo___init__ + 62, + .line_info_top = fun_data_apps_common_coininfo_CoinInfo___init__ + 104, + .opcodes = fun_data_apps_common_coininfo_CoinInfo___init__ + 104, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_coininfo_CoinInfo +// frozen bytecode for file apps/common/coininfo.py, scope apps_common_coininfo_CoinInfo___eq__ +static const byte fun_data_apps_common_coininfo_CoinInfo___eq__[36] = { + 0x22,0x14, // prelude + 0x81,0x26,0x81,0x2c,0x81,0x2d, // names: __eq__, self, other + 0x80,0x59,0x2a,0x24, // code info + 0x12,0x81,0x2e, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0x12,0x81,0x2f, // LOAD_GLOBAL 'NotImplemented' + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x09, // LOAD_ATTR 'coin_name' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x09, // LOAD_ATTR 'coin_name' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_coininfo_CoinInfo___eq__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_coininfo_CoinInfo___eq__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 166, + .line_info = fun_data_apps_common_coininfo_CoinInfo___eq__ + 8, + .line_info_top = fun_data_apps_common_coininfo_CoinInfo___eq__ + 12, + .opcodes = fun_data_apps_common_coininfo_CoinInfo___eq__ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_coininfo_CoinInfo[] = { + &raw_code_apps_common_coininfo_CoinInfo___init__, + &raw_code_apps_common_coininfo_CoinInfo___eq__, +}; + +static const mp_raw_code_t raw_code_apps_common_coininfo_CoinInfo = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_coininfo_CoinInfo, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = (void *)&children_apps_common_coininfo_CoinInfo, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_common_coininfo_CoinInfo + 3, + .line_info_top = fun_data_apps_common_coininfo_CoinInfo + 7, + .opcodes = fun_data_apps_common_coininfo_CoinInfo + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_coininfo__lt_module_gt_ +// frozen bytecode for file apps/common/coininfo.py, scope apps_common_coininfo_by_name +static const byte fun_data_apps_common_coininfo_by_name[3593] = { + 0xe9,0x10,0xaa,0x0c, // prelude + 0x0d,0x81,0x2a, // names: by_name, name + 0x80,0x60,0xd0,0x1d,0x26,0x8d,0x07,0x1f,0x8f,0x15,0x27,0x71,0x60,0x20,0x1f,0x8f,0x15,0x27,0x71,0x60,0x20,0x1f,0x8f,0x15,0x20,0x26,0x6a,0x60,0x22,0x1f,0x71,0x80,0x12,0x26,0x69,0x60,0x22,0x7f,0x80,0x12,0x26,0x8d,0x07,0x8c,0x07,0x74,0x80,0x0b,0x26,0x71,0x60,0x20,0x7e,0x80,0x12,0x27,0x8e,0x07,0x1f,0x73,0x80,0x12,0x27,0x70,0x60,0x20,0x1f,0x71,0x80,0x12,0x26,0x6c,0x60,0x22,0x7f,0x80,0x12,0x26,0x6a,0x60,0x22,0x1f,0x71,0x80,0x12,0x26,0x68,0x60,0x22,0x1f,0x71,0x80,0x12,0x26,0x6e,0x60,0x22,0x7f,0x80,0x12,0x26,0x8f,0x07,0x7d,0x80,0x12,0x26,0x8e,0x07,0x7d,0x80,0x12,0x26,0x72,0x60,0x20,0x74,0x80,0x0c,0x69,0x60,0x26,0x71,0x60,0x20,0x74,0x80,0x0c,0x69,0x60,0x26,0x69,0x60,0x22,0x1f,0x8f,0x15,0x26,0x68,0x60,0x22,0x7d,0x80,0x12,0x27,0x71,0x60,0x20,0x1f,0x8b,0x13,0x4e,0x26,0x68,0x60,0x22,0x1f,0x8f,0x15,0x26,0x70,0x60,0x20,0x7f,0x80,0x12,0x26,0x70,0x60,0x20,0x7d,0x80,0x12,0x26,0x6a,0x60,0x22,0x1f,0x71,0x80,0x12,0x26,0x68,0x60,0x22,0x1f,0x71,0x80,0x12,0x26,0x68,0x60,0x22,0x1f,0x86,0x0f,0x69,0x60,0x26,0x70,0x60,0x20,0x1f,0x86,0x0f,0x69,0x60,0x26,0x6b,0x60,0x22,0x7f,0x80,0x12,0x26,0x70,0x60,0x20,0x7f,0x80,0x12,0x26,0x8f,0x07,0x1f,0x8f,0x15,0x26,0x70,0x60,0x20,0x1f,0x8f,0x15,0x26,0x6a,0x60,0x22,0x1f,0x8f,0x15,0x26,0x69,0x60,0x22,0x7d,0x80,0x12,0x26,0x6b,0x60,0x22,0x1f,0x8f,0x15,0x27,0x71,0x60,0x20,0x1f,0x8f,0x15,0x26,0x6a,0x60,0x22,0x7d,0x80,0x12,0x27,0x70,0x60,0x20,0x1f,0x71,0x80,0x12,0x27,0x71,0x60,0x20,0x1f,0x8f,0x15,0x26,0x6b,0x60,0x22,0x7f,0x80,0x12,0x26,0x6c,0x60,0x22,0x7d,0x80,0x12,0x26,0x6a,0x60,0x22,0x1f,0x81,0x15,0x26,0x69,0x60,0x22,0x76,0x80,0x0c,0x69,0x60,0x26,0x8e,0x07,0x74,0x80,0x0c,0x69,0x60,0x26,0x6a,0x60,0x22,0x1f,0x71,0x80,0x12,0x26,0x69,0x60,0x22,0x1f,0x70,0x80,0x12,0x26,0x8f,0x07,0x7f,0x80,0x12,0x26,0x6b,0x60,0x22,0x1f,0x71,0x80,0x12,0x26,0x68,0x60,0x22,0x7f,0x80,0x12,0x26,0x6a,0x60,0x22,0x1f,0x8f,0x15,0x26,0x6a,0x60,0x22,0x1f,0x70,0x80,0x12,0x27,0x6d,0x60,0x22,0x7f,0x80,0x12,0x27,0x72,0x60,0x20,0x7f,0x80,0x12,0x26,0x72,0x60,0x20,0x7d,0x80,0x12,0x27,0x72,0x60,0x20,0x1f,0x81,0x15, // code info + 0xb0, // LOAD_FAST 0 + 0x10,0x0e, // LOAD_CONST_STRING 'Bitcoin' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7b, // POP_JUMP_IF_FALSE 59 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x0f, // LOAD_CONST_STRING 'BTC' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x22,0x80,0xfa,0x89,0x00, // LOAD_CONST_SMALL_INT 2000000 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xf5,0xf9,0x32, // LOAD_CONST_SMALL_INT 77429938 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x22,0x94,0xd6,0xe8,0x3f, // LOAD_CONST_SMALL_INT 43365439 + 0x22,0x95,0xa9,0xfd,0x53, // LOAD_CONST_SMALL_INT 44728019 + 0x10,0x10, // LOAD_CONST_STRING 'bc' + 0x51, // LOAD_CONST_NONE + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x52, // LOAD_CONST_TRUE + 0x52, // LOAD_CONST_TRUE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x12, // LOAD_CONST_STRING 'Regtest' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xbf,0x80, // POP_JUMP_IF_FALSE 63 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x13, // LOAD_CONST_STRING 'REGTEST' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x80,0x6f, // LOAD_CONST_SMALL_INT 111 + 0x22,0x81,0x44, // LOAD_CONST_SMALL_INT 196 + 0x22,0x84,0xe2,0xad,0x00, // LOAD_CONST_SMALL_INT 10000000 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x22,0xa2,0xa9,0xa4,0x62, // LOAD_CONST_SMALL_INT 71979618 + 0x22,0xa2,0xfc,0xb9,0x76, // LOAD_CONST_SMALL_INT 73342198 + 0x22,0x92,0x8a,0x93,0x6f, // LOAD_CONST_SMALL_INT 37915119 + 0x22,0x92,0xdd,0xa9,0x03, // LOAD_CONST_SMALL_INT 39277699 + 0x10,0x14, // LOAD_CONST_STRING 'bcrt' + 0x51, // LOAD_CONST_NONE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x52, // LOAD_CONST_TRUE + 0x52, // LOAD_CONST_TRUE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x15, // LOAD_CONST_STRING 'Testnet' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xbf,0x80, // POP_JUMP_IF_FALSE 63 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x16, // LOAD_CONST_STRING 'TEST' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x80,0x6f, // LOAD_CONST_SMALL_INT 111 + 0x22,0x81,0x44, // LOAD_CONST_SMALL_INT 196 + 0x22,0x84,0xe2,0xad,0x00, // LOAD_CONST_SMALL_INT 10000000 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x22,0xa2,0xa9,0xa4,0x62, // LOAD_CONST_SMALL_INT 71979618 + 0x22,0xa2,0xfc,0xb9,0x76, // LOAD_CONST_SMALL_INT 73342198 + 0x22,0x92,0x8a,0x93,0x6f, // LOAD_CONST_SMALL_INT 37915119 + 0x22,0x92,0xdd,0xa9,0x03, // LOAD_CONST_SMALL_INT 39277699 + 0x10,0x17, // LOAD_CONST_STRING 'tb' + 0x51, // LOAD_CONST_NONE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x52, // LOAD_CONST_TRUE + 0x52, // LOAD_CONST_TRUE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x18, // LOAD_CONST_STRING 'Actinium' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7c, // POP_JUMP_IF_FALSE 60 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x19, // LOAD_CONST_STRING 'ACM' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x35, // LOAD_CONST_SMALL_INT 53 + 0x22,0x37, // LOAD_CONST_SMALL_INT 55 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xf5,0xf9,0x32, // LOAD_CONST_SMALL_INT 77429938 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x10,0x1a, // LOAD_CONST_STRING 'acm' + 0x51, // LOAD_CONST_NONE + 0x22,0x81,0x64, // LOAD_CONST_SMALL_INT 228 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x1b, // LOAD_CONST_STRING 'Axe' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6a, // POP_JUMP_IF_FALSE 42 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x1c, // LOAD_CONST_STRING 'AXE' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x37, // LOAD_CONST_SMALL_INT 55 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x22,0x97,0xf9,0xa5,0x4c, // LOAD_CONST_SMALL_INT 50221772 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x22,0xa1,0x12, // LOAD_CONST_SMALL_INT 4242 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x1d, // LOAD_CONST_STRING 'Bcash' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6d, // POP_JUMP_IF_FALSE 45 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x1e, // LOAD_CONST_STRING 'BCH' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x22,0x86,0xd6,0xbf,0x00, // LOAD_CONST_SMALL_INT 14000000 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x22,0x81,0x11, // LOAD_CONST_SMALL_INT 145 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6f, // POP_JUMP_IF_FALSE 47 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x1f, // LOAD_CONST_STRING 'TBCH' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x80,0x6f, // LOAD_CONST_SMALL_INT 111 + 0x22,0x81,0x44, // LOAD_CONST_SMALL_INT 196 + 0x22,0x84,0xe2,0xad,0x00, // LOAD_CONST_SMALL_INT 10000000 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x10,0x20, // LOAD_CONST_STRING 'bchtest' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x21, // LOAD_CONST_STRING 'Bgold' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xc0,0x80, // POP_JUMP_IF_FALSE 64 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x22, // LOAD_CONST_STRING 'BTG' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xa6, // LOAD_CONST_SMALL_INT 38 + 0x97, // LOAD_CONST_SMALL_INT 23 + 0x22,0x81,0xb5,0x99,0xae,0x00, // LOAD_CONST_SMALL_INT 380000000 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xf5,0xf9,0x32, // LOAD_CONST_SMALL_INT 77429938 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x10,0x23, // LOAD_CONST_STRING 'btg' + 0x51, // LOAD_CONST_NONE + 0x22,0x81,0x1c, // LOAD_CONST_SMALL_INT 156 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x22,0x80,0x4f, // LOAD_CONST_SMALL_INT 79 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xc0,0x80, // POP_JUMP_IF_FALSE 64 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x24, // LOAD_CONST_STRING 'TBTG' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x80,0x6f, // LOAD_CONST_SMALL_INT 111 + 0x22,0x81,0x44, // LOAD_CONST_SMALL_INT 196 + 0x22,0x9e,0xc2,0x20, // LOAD_CONST_SMALL_INT 500000 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x22,0xa2,0xa9,0xa4,0x62, // LOAD_CONST_SMALL_INT 71979618 + 0x22,0xa2,0xfc,0xb9,0x76, // LOAD_CONST_SMALL_INT 73342198 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x10,0x25, // LOAD_CONST_STRING 'tbtg' + 0x51, // LOAD_CONST_NONE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x22,0x80,0x4f, // LOAD_CONST_SMALL_INT 79 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x26, // LOAD_CONST_STRING 'Bprivate' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6d, // POP_JUMP_IF_FALSE 45 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x27, // LOAD_CONST_STRING 'BTCP' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0xa6,0x25, // LOAD_CONST_SMALL_INT 4901 + 0x22,0xa7,0x2f, // LOAD_CONST_SMALL_INT 5039 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x22,0x81,0x37, // LOAD_CONST_SMALL_INT 183 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0xaa, // LOAD_CONST_SMALL_INT 42 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x28, // LOAD_CONST_STRING 'Bitcore' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7c, // POP_JUMP_IF_FALSE 60 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x29, // LOAD_CONST_STRING 'BTX' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x22,0x80,0x7d, // LOAD_CONST_SMALL_INT 125 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xf5,0xf9,0x32, // LOAD_CONST_SMALL_INT 77429938 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x10,0x2a, // LOAD_CONST_STRING 'btx' + 0x51, // LOAD_CONST_NONE + 0x22,0x81,0x20, // LOAD_CONST_SMALL_INT 160 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x2b, // LOAD_CONST_STRING 'CPUchain' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7a, // POP_JUMP_IF_FALSE 58 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x2c, // LOAD_CONST_STRING 'CPU' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x9c, // LOAD_CONST_SMALL_INT 28 + 0x9e, // LOAD_CONST_SMALL_INT 30 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xf5,0xf9,0x32, // LOAD_CONST_SMALL_INT 77429938 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x10,0x2d, // LOAD_CONST_STRING 'cpu' + 0x51, // LOAD_CONST_NONE + 0x22,0x82,0x6b, // LOAD_CONST_SMALL_INT 363 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x2e, // LOAD_CONST_STRING 'Crown' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6f, // POP_JUMP_IF_FALSE 47 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x2f, // LOAD_CONST_STRING 'CRW' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x85,0xea,0x07, // LOAD_CONST_SMALL_INT 95495 + 0x22,0x85,0xe9,0x71, // LOAD_CONST_SMALL_INT 95473 + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x22,0x80,0x48, // LOAD_CONST_SMALL_INT 72 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x30, // LOAD_CONST_STRING 'Dash' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6c, // POP_JUMP_IF_FALSE 44 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x31, // LOAD_CONST_STRING 'DASH' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x80,0x4c, // LOAD_CONST_SMALL_INT 76 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x22,0x95,0xba,0xca,0x40, // LOAD_CONST_SMALL_INT 45000000 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x22,0x97,0xf9,0xa5,0x4c, // LOAD_CONST_SMALL_INT 50221772 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6b, // POP_JUMP_IF_FALSE 43 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x32, // LOAD_CONST_STRING 'tDASH' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x81,0x0c, // LOAD_CONST_SMALL_INT 140 + 0x93, // LOAD_CONST_SMALL_INT 19 + 0x22,0x86,0x8d,0x20, // LOAD_CONST_SMALL_INT 100000 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x33, // LOAD_CONST_STRING 'Decred' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6f, // POP_JUMP_IF_FALSE 47 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x34, // LOAD_CONST_STRING 'DCR' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x8e,0x3f, // LOAD_CONST_SMALL_INT 1855 + 0x22,0x8e,0x1a, // LOAD_CONST_SMALL_INT 1818 + 0x22,0x80,0xe8,0xf3,0xde,0x00, // LOAD_CONST_SMALL_INT 220000000 + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x22,0x97,0xf6,0xd2,0x26, // LOAD_CONST_SMALL_INT 50178342 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xaa, // LOAD_CONST_SMALL_INT 42 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6e, // POP_JUMP_IF_FALSE 46 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x35, // LOAD_CONST_STRING 'TDCR' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x9e,0x21, // LOAD_CONST_SMALL_INT 3873 + 0x22,0x9d,0x7c, // LOAD_CONST_SMALL_INT 3836 + 0x22,0x84,0xe2,0xad,0x00, // LOAD_CONST_SMALL_INT 10000000 + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x22,0xa1,0xd6,0x8f,0x51, // LOAD_CONST_SMALL_INT 70617041 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x36, // LOAD_CONST_STRING 'DigiByte' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x79, // POP_JUMP_IF_FALSE 57 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x37, // LOAD_CONST_STRING 'DGB' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x9e, // LOAD_CONST_SMALL_INT 30 + 0x22,0x3f, // LOAD_CONST_SMALL_INT 63 + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xf5,0xf9,0x32, // LOAD_CONST_SMALL_INT 77429938 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x10,0x38, // LOAD_CONST_STRING 'dgb' + 0x51, // LOAD_CONST_NONE + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x39, // LOAD_CONST_STRING 'Dogecoin' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x67, // POP_JUMP_IF_FALSE 39 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x3a, // LOAD_CONST_STRING 'DOGE' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x9e, // LOAD_CONST_SMALL_INT 30 + 0x96, // LOAD_CONST_SMALL_INT 22 + 0x23,0x17, // LOAD_CONST_OBJ 23 + 0x23,0x18, // LOAD_CONST_OBJ 24 + 0x22,0x97,0xeb,0x95,0x7d, // LOAD_CONST_SMALL_INT 49990397 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x3b, // LOAD_CONST_STRING 'Elements' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xc9,0x80, // POP_JUMP_IF_FALSE 73 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x3c, // LOAD_CONST_STRING 'ELEMENTS' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x81,0x6b, // LOAD_CONST_SMALL_INT 235 + 0x22,0x80,0x4b, // LOAD_CONST_SMALL_INT 75 + 0x22,0x84,0xe2,0xad,0x00, // LOAD_CONST_SMALL_INT 10000000 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x22,0xa2,0xa9,0xa4,0x62, // LOAD_CONST_SMALL_INT 71979618 + 0x22,0xa2,0xfc,0xb9,0x76, // LOAD_CONST_SMALL_INT 73342198 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x10,0x3d, // LOAD_CONST_STRING 'ert' + 0x51, // LOAD_CONST_NONE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x2c,0x02, // BUILD_MAP 2 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x23,0x19, // LOAD_CONST_OBJ 25 + 0x62, // STORE_MAP + 0x10,0x3e, // LOAD_CONST_STRING 'el' + 0x23,0x1a, // LOAD_CONST_OBJ 26 + 0x62, // STORE_MAP + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x1b, // LOAD_CONST_OBJ 27 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x78, // POP_JUMP_IF_FALSE 56 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x3f, // LOAD_CONST_STRING 'FTC' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x8e, // LOAD_CONST_SMALL_INT 14 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x23,0x1c, // LOAD_CONST_OBJ 28 + 0x23,0x1d, // LOAD_CONST_OBJ 29 + 0x22,0xa4,0xa2,0xf8,0x26, // LOAD_CONST_SMALL_INT 76069926 + 0x22,0xa4,0xf5,0xf9,0x32, // LOAD_CONST_SMALL_INT 77429938 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x22,0xa4,0xa2,0xf8,0x26, // LOAD_CONST_SMALL_INT 76069926 + 0x22,0xa4,0xa2,0xf8,0x26, // LOAD_CONST_SMALL_INT 76069926 + 0x10,0x40, // LOAD_CONST_STRING 'fc' + 0x51, // LOAD_CONST_NONE + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x41, // LOAD_CONST_STRING 'Firo' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6f, // POP_JUMP_IF_FALSE 47 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x42, // LOAD_CONST_STRING 'FIRO' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x80,0x52, // LOAD_CONST_SMALL_INT 82 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x22,0x82,0xb1,0x96,0xc0,0x00, // LOAD_CONST_SMALL_INT 640000000 + 0x23,0x1e, // LOAD_CONST_OBJ 30 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x22,0x81,0x08, // LOAD_CONST_SMALL_INT 136 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x1f, // LOAD_CONST_OBJ 31 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6d, // POP_JUMP_IF_FALSE 45 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x43, // LOAD_CONST_STRING 'tFIRO' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x80,0x41, // LOAD_CONST_SMALL_INT 65 + 0x22,0x81,0x32, // LOAD_CONST_SMALL_INT 178 + 0x22,0xbd,0x84,0x40, // LOAD_CONST_SMALL_INT 1000000 + 0x23,0x1e, // LOAD_CONST_OBJ 30 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x44, // LOAD_CONST_STRING 'Florincoin' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7c, // POP_JUMP_IF_FALSE 60 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x45, // LOAD_CONST_STRING 'FLO' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xa3, // LOAD_CONST_SMALL_INT 35 + 0x22,0x80,0x5e, // LOAD_CONST_SMALL_INT 94 + 0x23,0x20, // LOAD_CONST_OBJ 32 + 0x23,0x21, // LOAD_CONST_OBJ 33 + 0x22,0x80,0xdd,0x92,0x21, // LOAD_CONST_SMALL_INT 1526049 + 0x22,0x8d,0xc9,0xdd,0x76, // LOAD_CONST_SMALL_INT 28471030 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x22,0x80,0xdd,0x92,0x21, // LOAD_CONST_SMALL_INT 1526049 + 0x22,0x80,0xdd,0x92,0x21, // LOAD_CONST_SMALL_INT 1526049 + 0x10,0x46, // LOAD_CONST_STRING 'flo' + 0x51, // LOAD_CONST_NONE + 0x22,0x81,0x58, // LOAD_CONST_SMALL_INT 216 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x47, // LOAD_CONST_STRING 'Fujicoin' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7a, // POP_JUMP_IF_FALSE 58 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x48, // LOAD_CONST_STRING 'FJC' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xa4, // LOAD_CONST_SMALL_INT 36 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x23,0x22, // LOAD_CONST_OBJ 34 + 0x23,0x23, // LOAD_CONST_OBJ 35 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xf5,0xf9,0x32, // LOAD_CONST_SMALL_INT 77429938 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x22,0x94,0xd6,0xe8,0x3f, // LOAD_CONST_SMALL_INT 43365439 + 0x22,0x95,0xa9,0xfd,0x53, // LOAD_CONST_SMALL_INT 44728019 + 0x10,0x40, // LOAD_CONST_STRING 'fc' + 0x51, // LOAD_CONST_NONE + 0x22,0x80,0x4b, // LOAD_CONST_SMALL_INT 75 + 0x52, // LOAD_CONST_TRUE + 0x52, // LOAD_CONST_TRUE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x24, // LOAD_CONST_OBJ 36 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x78, // POP_JUMP_IF_FALSE 56 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x49, // LOAD_CONST_STRING 'GRS' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xa4, // LOAD_CONST_SMALL_INT 36 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x23,0x25, // LOAD_CONST_OBJ 37 + 0x23,0x26, // LOAD_CONST_OBJ 38 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xf5,0xf9,0x32, // LOAD_CONST_SMALL_INT 77429938 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x10,0x4a, // LOAD_CONST_STRING 'grs' + 0x51, // LOAD_CONST_NONE + 0x91, // LOAD_CONST_SMALL_INT 17 + 0x52, // LOAD_CONST_TRUE + 0x52, // LOAD_CONST_TRUE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x23,0x27, // LOAD_CONST_OBJ 39 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x28, // LOAD_CONST_OBJ 40 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7e, // POP_JUMP_IF_FALSE 62 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x4b, // LOAD_CONST_STRING 'tGRS' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x80,0x6f, // LOAD_CONST_SMALL_INT 111 + 0x22,0x81,0x44, // LOAD_CONST_SMALL_INT 196 + 0x22,0x86,0x8d,0x20, // LOAD_CONST_SMALL_INT 100000 + 0x23,0x26, // LOAD_CONST_OBJ 38 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x22,0xa2,0xa9,0xa4,0x62, // LOAD_CONST_SMALL_INT 71979618 + 0x22,0xa2,0xfc,0xb9,0x76, // LOAD_CONST_SMALL_INT 73342198 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x10,0x4c, // LOAD_CONST_STRING 'tgrs' + 0x51, // LOAD_CONST_NONE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x52, // LOAD_CONST_TRUE + 0x52, // LOAD_CONST_TRUE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x23,0x27, // LOAD_CONST_OBJ 39 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x4d, // LOAD_CONST_STRING 'Komodo' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6c, // POP_JUMP_IF_FALSE 44 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x4e, // LOAD_CONST_STRING 'KMD' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x3c, // LOAD_CONST_SMALL_INT 60 + 0x22,0x80,0x55, // LOAD_CONST_SMALL_INT 85 + 0x23,0x29, // LOAD_CONST_OBJ 41 + 0x23,0x2a, // LOAD_CONST_OBJ 42 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x22,0x81,0x0d, // LOAD_CONST_SMALL_INT 141 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x52, // LOAD_CONST_TRUE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x52, // LOAD_CONST_TRUE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x4f, // LOAD_CONST_STRING 'Koto' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6f, // POP_JUMP_IF_FALSE 47 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x50, // LOAD_CONST_STRING 'KOTO' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0xb0,0x36, // LOAD_CONST_SMALL_INT 6198 + 0x22,0xb0,0x3b, // LOAD_CONST_SMALL_INT 6203 + 0x22,0xbd,0x84,0x40, // LOAD_CONST_SMALL_INT 1000000 + 0x23,0x2b, // LOAD_CONST_OBJ 43 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x22,0x83,0x7e, // LOAD_CONST_SMALL_INT 510 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x52, // LOAD_CONST_TRUE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x51, // LOAD_CONST_STRING 'Litecoin' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7d, // POP_JUMP_IF_FALSE 61 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x52, // LOAD_CONST_STRING 'LTC' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x30, // LOAD_CONST_SMALL_INT 48 + 0x22,0x32, // LOAD_CONST_SMALL_INT 50 + 0x22,0x9f,0xf9,0xad,0x40, // LOAD_CONST_SMALL_INT 67000000 + 0x23,0x2c, // LOAD_CONST_OBJ 44 + 0x22,0x8c,0xf6,0xc8,0x62, // LOAD_CONST_SMALL_INT 27108450 + 0x22,0x8d,0xc9,0xdd,0x76, // LOAD_CONST_SMALL_INT 28471030 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x22,0x8c,0xf6,0xc8,0x62, // LOAD_CONST_SMALL_INT 27108450 + 0x22,0x8c,0xf6,0xc8,0x62, // LOAD_CONST_SMALL_INT 27108450 + 0x10,0x53, // LOAD_CONST_STRING 'ltc' + 0x51, // LOAD_CONST_NONE + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x2d, // LOAD_CONST_OBJ 45 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7e, // POP_JUMP_IF_FALSE 62 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x54, // LOAD_CONST_STRING 'tLTC' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x80,0x6f, // LOAD_CONST_SMALL_INT 111 + 0x22,0x3a, // LOAD_CONST_SMALL_INT 58 + 0x22,0x93,0x89,0xb4,0x00, // LOAD_CONST_SMALL_INT 40000000 + 0x23,0x2c, // LOAD_CONST_OBJ 44 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x22,0xa2,0xa9,0xa4,0x62, // LOAD_CONST_SMALL_INT 71979618 + 0x22,0xa2,0xfc,0xb9,0x76, // LOAD_CONST_SMALL_INT 73342198 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x10,0x55, // LOAD_CONST_STRING 'tltc' + 0x51, // LOAD_CONST_NONE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x56, // LOAD_CONST_STRING 'Monacoin' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7a, // POP_JUMP_IF_FALSE 58 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x57, // LOAD_CONST_STRING 'MONA' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x32, // LOAD_CONST_SMALL_INT 50 + 0x22,0x37, // LOAD_CONST_SMALL_INT 55 + 0x23,0x2e, // LOAD_CONST_OBJ 46 + 0x23,0x2f, // LOAD_CONST_OBJ 47 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xf5,0xf9,0x32, // LOAD_CONST_SMALL_INT 77429938 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x10,0x58, // LOAD_CONST_STRING 'mona' + 0x51, // LOAD_CONST_NONE + 0x96, // LOAD_CONST_SMALL_INT 22 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x59, // LOAD_CONST_STRING 'Namecoin' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x68, // POP_JUMP_IF_FALSE 40 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x5a, // LOAD_CONST_STRING 'NMC' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x34, // LOAD_CONST_SMALL_INT 52 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x23,0x30, // LOAD_CONST_OBJ 48 + 0x23,0x31, // LOAD_CONST_OBJ 49 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x5b, // LOAD_CONST_STRING 'Peercoin' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7b, // POP_JUMP_IF_FALSE 59 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x5c, // LOAD_CONST_STRING 'PPC' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x22,0x37, // LOAD_CONST_SMALL_INT 55 + 0x22,0x80,0x75, // LOAD_CONST_SMALL_INT 117 + 0x23,0x32, // LOAD_CONST_OBJ 50 + 0x23,0x33, // LOAD_CONST_OBJ 51 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xf5,0xf9,0x32, // LOAD_CONST_SMALL_INT 77429938 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x10,0x5d, // LOAD_CONST_STRING 'pc' + 0x51, // LOAD_CONST_NONE + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x34, // LOAD_CONST_OBJ 52 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xbf,0x80, // POP_JUMP_IF_FALSE 63 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x5e, // LOAD_CONST_STRING 'tPPC' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x22,0x80,0x6f, // LOAD_CONST_SMALL_INT 111 + 0x22,0x81,0x44, // LOAD_CONST_SMALL_INT 196 + 0x22,0x80,0xfa,0x89,0x00, // LOAD_CONST_SMALL_INT 2000000 + 0x23,0x33, // LOAD_CONST_OBJ 51 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x22,0xa2,0xa9,0xa4,0x62, // LOAD_CONST_SMALL_INT 71979618 + 0x22,0xa2,0xfc,0xb9,0x76, // LOAD_CONST_SMALL_INT 73342198 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x10,0x5f, // LOAD_CONST_STRING 'tpc' + 0x51, // LOAD_CONST_NONE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x60, // LOAD_CONST_STRING 'Primecoin' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x69, // POP_JUMP_IF_FALSE 41 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x61, // LOAD_CONST_STRING 'XPM' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x97, // LOAD_CONST_SMALL_INT 23 + 0x22,0x80,0x53, // LOAD_CONST_SMALL_INT 83 + 0x23,0x35, // LOAD_CONST_OBJ 53 + 0x23,0x36, // LOAD_CONST_OBJ 54 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x98, // LOAD_CONST_SMALL_INT 24 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x62, // LOAD_CONST_STRING 'Qtum' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xc0,0x80, // POP_JUMP_IF_FALSE 64 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x63, // LOAD_CONST_STRING 'QTUM' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x3a, // LOAD_CONST_SMALL_INT 58 + 0x22,0x32, // LOAD_CONST_SMALL_INT 50 + 0x22,0x83,0xdc,0xeb,0x94,0x00, // LOAD_CONST_SMALL_INT 1000000000 + 0x23,0x37, // LOAD_CONST_OBJ 55 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xf5,0xf9,0x32, // LOAD_CONST_SMALL_INT 77429938 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x10,0x64, // LOAD_CONST_STRING 'qc' + 0x51, // LOAD_CONST_NONE + 0x22,0x91,0x7d, // LOAD_CONST_SMALL_INT 2301 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x38, // LOAD_CONST_OBJ 56 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xbf,0x80, // POP_JUMP_IF_FALSE 63 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x65, // LOAD_CONST_STRING 'tQTUM' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x80,0x78, // LOAD_CONST_SMALL_INT 120 + 0x22,0x80,0x6e, // LOAD_CONST_SMALL_INT 110 + 0x22,0x93,0x89,0xb4,0x00, // LOAD_CONST_SMALL_INT 40000000 + 0x23,0x37, // LOAD_CONST_OBJ 55 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x22,0xa2,0xa9,0xa4,0x62, // LOAD_CONST_SMALL_INT 71979618 + 0x22,0xa2,0xfc,0xb9,0x76, // LOAD_CONST_SMALL_INT 73342198 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x10,0x66, // LOAD_CONST_STRING 'tq' + 0x51, // LOAD_CONST_NONE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x67, // LOAD_CONST_STRING 'Ravencoin' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6c, // POP_JUMP_IF_FALSE 44 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x68, // LOAD_CONST_STRING 'RVN' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x3c, // LOAD_CONST_SMALL_INT 60 + 0x22,0x80,0x7a, // LOAD_CONST_SMALL_INT 122 + 0x23,0x39, // LOAD_CONST_OBJ 57 + 0x23,0x3a, // LOAD_CONST_OBJ 58 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x22,0x81,0x2f, // LOAD_CONST_SMALL_INT 175 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x3b, // LOAD_CONST_OBJ 59 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6b, // POP_JUMP_IF_FALSE 43 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x69, // LOAD_CONST_STRING 'tRVN' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x80,0x6f, // LOAD_CONST_SMALL_INT 111 + 0x22,0x81,0x44, // LOAD_CONST_SMALL_INT 196 + 0x23,0x39, // LOAD_CONST_OBJ 57 + 0x23,0x3a, // LOAD_CONST_OBJ 58 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x6a, // LOAD_CONST_STRING 'Ritocoin' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6c, // POP_JUMP_IF_FALSE 44 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x6b, // LOAD_CONST_STRING 'RITO' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x99, // LOAD_CONST_SMALL_INT 25 + 0x22,0x80,0x69, // LOAD_CONST_SMALL_INT 105 + 0x23,0x3c, // LOAD_CONST_OBJ 60 + 0x23,0x3d, // LOAD_CONST_OBJ 61 + 0x22,0xa9,0xd3,0xcf,0x4a, // LOAD_CONST_SMALL_INT 87353290 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x22,0x81,0x95,0x61, // LOAD_CONST_SMALL_INT 19169 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x6c, // LOAD_CONST_STRING 'SmartCash' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6a, // POP_JUMP_IF_FALSE 42 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x6d, // LOAD_CONST_STRING 'SMART' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x3f, // LOAD_CONST_SMALL_INT 63 + 0x92, // LOAD_CONST_SMALL_INT 18 + 0x23,0x3e, // LOAD_CONST_OBJ 62 + 0x23,0x3f, // LOAD_CONST_OBJ 63 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x22,0x81,0x60, // LOAD_CONST_SMALL_INT 224 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x23,0x40, // LOAD_CONST_OBJ 64 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x41, // LOAD_CONST_OBJ 65 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6b, // POP_JUMP_IF_FALSE 43 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x6e, // LOAD_CONST_STRING 'tSMART' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x80,0x41, // LOAD_CONST_SMALL_INT 65 + 0x95, // LOAD_CONST_SMALL_INT 21 + 0x22,0xbd,0x84,0x40, // LOAD_CONST_SMALL_INT 1000000 + 0x23,0x3f, // LOAD_CONST_OBJ 63 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x23,0x40, // LOAD_CONST_OBJ 64 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x6f, // LOAD_CONST_STRING 'Stakenet' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7c, // POP_JUMP_IF_FALSE 60 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x70, // LOAD_CONST_STRING 'XSN' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x80,0x4c, // LOAD_CONST_SMALL_INT 76 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x23,0x42, // LOAD_CONST_OBJ 66 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xf5,0xf9,0x32, // LOAD_CONST_SMALL_INT 77429938 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x10,0x71, // LOAD_CONST_STRING 'xc' + 0x51, // LOAD_CONST_NONE + 0x22,0x81,0x47, // LOAD_CONST_SMALL_INT 199 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x72, // LOAD_CONST_STRING 'Syscoin' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7a, // POP_JUMP_IF_FALSE 58 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x73, // LOAD_CONST_STRING 'SYS' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x3f, // LOAD_CONST_SMALL_INT 63 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x23,0x43, // LOAD_CONST_OBJ 67 + 0x23,0x44, // LOAD_CONST_OBJ 68 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xf5,0xf9,0x32, // LOAD_CONST_SMALL_INT 77429938 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x10,0x74, // LOAD_CONST_STRING 'sys' + 0x51, // LOAD_CONST_NONE + 0x22,0x39, // LOAD_CONST_SMALL_INT 57 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x75, // LOAD_CONST_STRING 'Unobtanium' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6e, // POP_JUMP_IF_FALSE 46 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x76, // LOAD_CONST_STRING 'UNO' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x81,0x02, // LOAD_CONST_SMALL_INT 130 + 0x9e, // LOAD_CONST_SMALL_INT 30 + 0x22,0x99,0xa2,0xee,0x40, // LOAD_CONST_SMALL_INT 53000000 + 0x23,0x45, // LOAD_CONST_OBJ 69 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x22,0x80,0x5c, // LOAD_CONST_SMALL_INT 92 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x46, // LOAD_CONST_OBJ 70 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7d, // POP_JUMP_IF_FALSE 61 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x77, // LOAD_CONST_STRING 'VIPS' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x80,0x46, // LOAD_CONST_SMALL_INT 70 + 0x22,0x32, // LOAD_CONST_SMALL_INT 50 + 0x23,0x47, // LOAD_CONST_OBJ 71 + 0x23,0x48, // LOAD_CONST_OBJ 72 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xf5,0xf9,0x32, // LOAD_CONST_SMALL_INT 77429938 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x10,0x78, // LOAD_CONST_STRING 'vips' + 0x51, // LOAD_CONST_NONE + 0x22,0x8e,0x7f, // LOAD_CONST_SMALL_INT 1919 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x79, // LOAD_CONST_STRING 'Verge' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x69, // POP_JUMP_IF_FALSE 41 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x7a, // LOAD_CONST_STRING 'XVG' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x9e, // LOAD_CONST_SMALL_INT 30 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x23,0x49, // LOAD_CONST_OBJ 73 + 0x23,0x4a, // LOAD_CONST_OBJ 74 + 0x22,0x91,0xb4,0xca,0x33, // LOAD_CONST_SMALL_INT 36513075 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x22,0x80,0x4d, // LOAD_CONST_SMALL_INT 77 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x7b, // LOAD_CONST_STRING 'Vertcoin' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7a, // POP_JUMP_IF_FALSE 58 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x7c, // LOAD_CONST_STRING 'VTC' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x80,0x47, // LOAD_CONST_SMALL_INT 71 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x23,0x32, // LOAD_CONST_OBJ 50 + 0x23,0x4b, // LOAD_CONST_OBJ 75 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xf5,0xf9,0x32, // LOAD_CONST_SMALL_INT 77429938 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x10,0x7d, // LOAD_CONST_STRING 'vtc' + 0x51, // LOAD_CONST_NONE + 0x9c, // LOAD_CONST_SMALL_INT 28 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x7e, // LOAD_CONST_STRING 'Viacoin' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7b, // POP_JUMP_IF_FALSE 59 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x7f, // LOAD_CONST_STRING 'VIA' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x80,0x47, // LOAD_CONST_SMALL_INT 71 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x23,0x4c, // LOAD_CONST_OBJ 76 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xf5,0xf9,0x32, // LOAD_CONST_SMALL_INT 77429938 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x10,0x81,0x00, // LOAD_CONST_STRING 'via' + 0x51, // LOAD_CONST_NONE + 0x8e, // LOAD_CONST_SMALL_INT 14 + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x81,0x01, // LOAD_CONST_STRING 'ZCore' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6e, // POP_JUMP_IF_FALSE 46 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x81,0x02, // LOAD_CONST_STRING 'ZCR' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x81,0x0e, // LOAD_CONST_SMALL_INT 142 + 0x22,0x81,0x11, // LOAD_CONST_SMALL_INT 145 + 0x23,0x39, // LOAD_CONST_OBJ 57 + 0x23,0x4d, // LOAD_CONST_OBJ 77 + 0x22,0xa5,0xc9,0x8e,0x46, // LOAD_CONST_SMALL_INT 78792518 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x22,0x83,0x2c, // LOAD_CONST_SMALL_INT 428 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x81,0x03, // LOAD_CONST_STRING 'Zcash' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x71, // POP_JUMP_IF_FALSE 49 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x81,0x04, // LOAD_CONST_STRING 'ZEC' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0xb9,0x38, // LOAD_CONST_SMALL_INT 7352 + 0x22,0xb9,0x3d, // LOAD_CONST_SMALL_INT 7357 + 0x22,0x98,0xa8,0xe5,0x40, // LOAD_CONST_SMALL_INT 51000000 + 0x23,0x4e, // LOAD_CONST_OBJ 78 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x22,0x81,0x05, // LOAD_CONST_SMALL_INT 133 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x52, // LOAD_CONST_TRUE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x4f, // LOAD_CONST_OBJ 79 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6f, // POP_JUMP_IF_FALSE 47 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x81,0x05, // LOAD_CONST_STRING 'TAZ' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0xba,0x25, // LOAD_CONST_SMALL_INT 7461 + 0x22,0xb9,0x3a, // LOAD_CONST_SMALL_INT 7354 + 0x22,0x84,0xe2,0xad,0x00, // LOAD_CONST_SMALL_INT 10000000 + 0x23,0x4e, // LOAD_CONST_OBJ 78 + 0x22,0xa1,0xd6,0x8f,0x4f, // LOAD_CONST_SMALL_INT 70617039 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x52, // LOAD_CONST_TRUE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x10,0x81,0x06, // LOAD_CONST_STRING 'Brhodium' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x72, // POP_JUMP_IF_FALSE 50 + 0x12,0x0c, // LOAD_GLOBAL 'CoinInfo' + 0xb0, // LOAD_FAST 0 + 0x10,0x81,0x07, // LOAD_CONST_STRING 'XRC' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x22,0x3d, // LOAD_CONST_SMALL_INT 61 + 0x22,0x80,0x7b, // LOAD_CONST_SMALL_INT 123 + 0x22,0x83,0xdc,0xeb,0x94,0x00, // LOAD_CONST_SMALL_INT 1000000000 + 0x23,0x50, // LOAD_CONST_OBJ 80 + 0x22,0xa4,0xa2,0xe4,0x1e, // LOAD_CONST_SMALL_INT 76067358 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x22,0x80,0xd0,0x33, // LOAD_CONST_SMALL_INT 10291 + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x1a, // CALL_FUNCTION 26 + 0x63, // RETURN_VALUE + 0x12,0x81,0x2b, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_coininfo_by_name = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_coininfo_by_name, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 3593, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 30, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_common_coininfo_by_name + 7, + .line_info_top = fun_data_apps_common_coininfo_by_name + 409, + .opcodes = fun_data_apps_common_coininfo_by_name + 409, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_coininfo__lt_module_gt_[] = { + &raw_code_apps_common_coininfo_CoinInfo, + &raw_code_apps_common_coininfo_by_name, +}; + +static const mp_raw_code_t raw_code_apps_common_coininfo__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_coininfo__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 86, + #endif + .children = (void *)&children_apps_common_coininfo__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_common_coininfo__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_common_coininfo__lt_module_gt_ + 11, + .opcodes = fun_data_apps_common_coininfo__lt_module_gt_ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_common_coininfo[176] = { + MP_QSTR_apps_slash_common_slash_coininfo_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_blake256d_32, + MP_QSTR_groestl512d_32, + MP_QSTR_keccak_32, + MP_QSTR_sha256d_32, + MP_QSTR_trezor_dot_crypto_dot_base58, + MP_QSTR_blake256_ripemd160, + MP_QSTR_sha256_ripemd160, + MP_QSTR_trezor_dot_crypto_dot_scripts, + MP_QSTR_CoinInfo, + MP_QSTR_by_name, + MP_QSTR_Bitcoin, + MP_QSTR_BTC, + MP_QSTR_bc, + MP_QSTR_secp256k1, + MP_QSTR_Regtest, + MP_QSTR_REGTEST, + MP_QSTR_bcrt, + MP_QSTR_Testnet, + MP_QSTR_TEST, + MP_QSTR_tb, + MP_QSTR_Actinium, + MP_QSTR_ACM, + MP_QSTR_acm, + MP_QSTR_Axe, + MP_QSTR_AXE, + MP_QSTR_Bcash, + MP_QSTR_BCH, + MP_QSTR_TBCH, + MP_QSTR_bchtest, + MP_QSTR_Bgold, + MP_QSTR_BTG, + MP_QSTR_btg, + MP_QSTR_TBTG, + MP_QSTR_tbtg, + MP_QSTR_Bprivate, + MP_QSTR_BTCP, + MP_QSTR_Bitcore, + MP_QSTR_BTX, + MP_QSTR_btx, + MP_QSTR_CPUchain, + MP_QSTR_CPU, + MP_QSTR_cpu, + MP_QSTR_Crown, + MP_QSTR_CRW, + MP_QSTR_Dash, + MP_QSTR_DASH, + MP_QSTR_tDASH, + MP_QSTR_Decred, + MP_QSTR_DCR, + MP_QSTR_TDCR, + MP_QSTR_DigiByte, + MP_QSTR_DGB, + MP_QSTR_dgb, + MP_QSTR_Dogecoin, + MP_QSTR_DOGE, + MP_QSTR_Elements, + MP_QSTR_ELEMENTS, + MP_QSTR_ert, + MP_QSTR_el, + MP_QSTR_FTC, + MP_QSTR_fc, + MP_QSTR_Firo, + MP_QSTR_FIRO, + MP_QSTR_tFIRO, + MP_QSTR_Florincoin, + MP_QSTR_FLO, + MP_QSTR_flo, + MP_QSTR_Fujicoin, + MP_QSTR_FJC, + MP_QSTR_GRS, + MP_QSTR_grs, + MP_QSTR_tGRS, + MP_QSTR_tgrs, + MP_QSTR_Komodo, + MP_QSTR_KMD, + MP_QSTR_Koto, + MP_QSTR_KOTO, + MP_QSTR_Litecoin, + MP_QSTR_LTC, + MP_QSTR_ltc, + MP_QSTR_tLTC, + MP_QSTR_tltc, + MP_QSTR_Monacoin, + MP_QSTR_MONA, + MP_QSTR_mona, + MP_QSTR_Namecoin, + MP_QSTR_NMC, + MP_QSTR_Peercoin, + MP_QSTR_PPC, + MP_QSTR_pc, + MP_QSTR_tPPC, + MP_QSTR_tpc, + MP_QSTR_Primecoin, + MP_QSTR_XPM, + MP_QSTR_Qtum, + MP_QSTR_QTUM, + MP_QSTR_qc, + MP_QSTR_tQTUM, + MP_QSTR_tq, + MP_QSTR_Ravencoin, + MP_QSTR_RVN, + MP_QSTR_tRVN, + MP_QSTR_Ritocoin, + MP_QSTR_RITO, + MP_QSTR_SmartCash, + MP_QSTR_SMART, + MP_QSTR_tSMART, + MP_QSTR_Stakenet, + MP_QSTR_XSN, + MP_QSTR_xc, + MP_QSTR_Syscoin, + MP_QSTR_SYS, + MP_QSTR_sys, + MP_QSTR_Unobtanium, + MP_QSTR_UNO, + MP_QSTR_VIPS, + MP_QSTR_vips, + MP_QSTR_Verge, + MP_QSTR_XVG, + MP_QSTR_Vertcoin, + MP_QSTR_VTC, + MP_QSTR_vtc, + MP_QSTR_Viacoin, + MP_QSTR_VIA, + MP_QSTR_via, + MP_QSTR_ZCore, + MP_QSTR_ZCR, + MP_QSTR_Zcash, + MP_QSTR_ZEC, + MP_QSTR_TAZ, + MP_QSTR_Brhodium, + MP_QSTR_XRC, + MP_QSTR___init__, + MP_QSTR_coin_name, + MP_QSTR_coin_shortcut, + MP_QSTR_decimals, + MP_QSTR_address_type, + MP_QSTR_address_type_p2sh, + MP_QSTR_maxfee_kb, + MP_QSTR_signed_message_header, + MP_QSTR_xpub_magic, + MP_QSTR_xpub_magic_segwit_p2sh, + MP_QSTR_xpub_magic_segwit_native, + MP_QSTR_xpub_magic_multisig_segwit_p2sh, + MP_QSTR_xpub_magic_multisig_segwit_native, + MP_QSTR_bech32_prefix, + MP_QSTR_cashaddr_prefix, + MP_QSTR_slip44, + MP_QSTR_segwit, + MP_QSTR_taproot, + MP_QSTR_fork_id, + MP_QSTR_force_bip143, + MP_QSTR_decred, + MP_QSTR_negative_fee, + MP_QSTR_curve_name, + MP_QSTR_extra_data, + MP_QSTR_timestamp, + MP_QSTR_overwintered, + MP_QSTR_confidential_assets, + MP_QSTR_b58_hash, + MP_QSTR_sign_hash_double, + MP_QSTR_script_hash, + MP_QSTR___eq__, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_name, + MP_QSTR_ValueError, + MP_QSTR_self, + MP_QSTR_other, + MP_QSTR_isinstance, + MP_QSTR_NotImplemented, +}; + +// constants +static const mp_obj_int_t const_obj_apps_common_coininfo_1 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x8000,0x817c,0x4a}}}; +static const mp_obj_str_t const_obj_apps_common_coininfo_2 = {{&mp_type_str}, 60236, 25, (const byte*)"\x41\x63\x74\x69\x6e\x69\x75\x6d\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_int_t const_obj_apps_common_coininfo_3 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x9200,0xe3b2,0x4}}}; +static const mp_obj_str_t const_obj_apps_common_coininfo_4 = {{&mp_type_str}, 40475, 25, (const byte*)"\x44\x61\x72\x6b\x43\x6f\x69\x6e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_str_t const_obj_apps_common_coininfo_7 = {{&mp_type_str}, 14904, 29, (const byte*)"\x42\x69\x74\x63\x6f\x69\x6e\x20\x47\x6f\x6c\x64\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_int_t const_obj_apps_common_coininfo_9 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x4000,0x7359,0x7}}}; +static const mp_obj_str_t const_obj_apps_common_coininfo_10 = {{&mp_type_str}, 17653, 31, (const byte*)"\x42\x69\x74\x63\x6f\x69\x6e\x50\x72\x69\x76\x61\x74\x65\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_int_t const_obj_apps_common_coininfo_11 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0xc00,0x4277,0x3}}}; +static const mp_obj_int_t const_obj_apps_common_coininfo_13 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0xd800,0xa068,0x7e9}}}; +static const mp_obj_str_t const_obj_apps_common_coininfo_14 = {{&mp_type_str}, 20359, 25, (const byte*)"\x43\x50\x55\x63\x68\x61\x69\x6e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_int_t const_obj_apps_common_coininfo_15 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x800,0x1b71,0xc}}}; +static const mp_obj_int_t const_obj_apps_common_coininfo_21 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x9400,0x449a,0x1e}}}; +static const mp_obj_str_t const_obj_apps_common_coininfo_22 = {{&mp_type_str}, 1765, 25, (const byte*)"\x44\x69\x67\x69\x42\x79\x74\x65\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_int_t const_obj_apps_common_coininfo_23 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0xe000,0x6592,0x117}}}; +static const mp_obj_str_t const_obj_apps_common_coininfo_24 = {{&mp_type_str}, 49454, 25, (const byte*)"\x44\x6f\x67\x65\x63\x6f\x69\x6e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_int_t const_obj_apps_common_coininfo_28 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0xbc00,0xcdcf,0x5a}}}; +static const mp_obj_str_t const_obj_apps_common_coininfo_29 = {{&mp_type_str}, 13646, 28, (const byte*)"\x46\x65\x61\x74\x68\x65\x72\x63\x6f\x69\x6e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_int_t const_obj_apps_common_coininfo_32 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x8c00,0x2929,0x12}}}; +static const mp_obj_str_t const_obj_apps_common_coininfo_33 = {{&mp_type_str}, 65207, 27, (const byte*)"\x46\x6c\x6f\x72\x69\x6e\x63\x6f\x69\x6e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_int_t const_obj_apps_common_coininfo_34 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x3000,0x1291,0x1fd5}}}; +static const mp_obj_str_t const_obj_apps_common_coininfo_35 = {{&mp_type_str}, 54359, 25, (const byte*)"\x46\x75\x6a\x69\x43\x6f\x69\x6e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_int_t const_obj_apps_common_coininfo_37 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0xa000,0xb9ac,0x3}}}; +static const mp_obj_str_t const_obj_apps_common_coininfo_38 = {{&mp_type_str}, 46579, 28, (const byte*)"\x47\x72\x6f\x65\x73\x74\x6c\x43\x6f\x69\x6e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_int_t const_obj_apps_common_coininfo_41 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x3000,0x1e1a,0x1}}}; +static const mp_obj_str_t const_obj_apps_common_coininfo_44 = {{&mp_type_str}, 20019, 25, (const byte*)"\x4c\x69\x74\x65\x63\x6f\x69\x6e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_int_t const_obj_apps_common_coininfo_46 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0x7500,0x7d2b}}}; +static const mp_obj_str_t const_obj_apps_common_coininfo_47 = {{&mp_type_str}, 49002, 25, (const byte*)"\x4d\x6f\x6e\x61\x63\x6f\x69\x6e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_int_t const_obj_apps_common_coininfo_48 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x7700,0x68f,0x2}}}; +static const mp_obj_str_t const_obj_apps_common_coininfo_49 = {{&mp_type_str}, 60000, 25, (const byte*)"\x4e\x61\x6d\x65\x63\x6f\x69\x6e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_int_t const_obj_apps_common_coininfo_50 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x4200,0x6dc,0x3}}}; +static const mp_obj_str_t const_obj_apps_common_coininfo_51 = {{&mp_type_str}, 9669, 25, (const byte*)"\x50\x65\x65\x72\x63\x6f\x69\x6e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_int_t const_obj_apps_common_coininfo_53 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x3a00,0xb8d0,0x14}}}; +static const mp_obj_str_t const_obj_apps_common_coininfo_54 = {{&mp_type_str}, 11620, 26, (const byte*)"\x50\x72\x69\x6d\x65\x63\x6f\x69\x6e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_int_t const_obj_apps_common_coininfo_57 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x2400,0x94ca,0x27}}}; +static const mp_obj_int_t const_obj_apps_common_coininfo_60 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x7000,0x6525,0x2378}}}; +static const mp_obj_int_t const_obj_apps_common_coininfo_62 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x7800,0x9b9f,0xb5}}}; +static const mp_obj_str_t const_obj_apps_common_coininfo_63 = {{&mp_type_str}, 8908, 26, (const byte*)"\x53\x6d\x61\x72\x74\x43\x61\x73\x68\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_int_t const_obj_apps_common_coininfo_66 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0xae00,0x8fa6,0x2}}}; +static const mp_obj_int_t const_obj_apps_common_coininfo_67 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x2400,0xc765,0x9}}}; +static const mp_obj_str_t const_obj_apps_common_coininfo_69 = {{&mp_type_str}, 42736, 27, (const byte*)"\x55\x6e\x6f\x62\x74\x61\x6e\x69\x75\x6d\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_int_t const_obj_apps_common_coininfo_71 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0xc000,0x4a44,0x7f54}}}; +static const mp_obj_str_t const_obj_apps_common_coininfo_72 = {{&mp_type_str}, 25340, 28, (const byte*)"\x56\x49\x50\x53\x54\x41\x52\x43\x4f\x49\x4e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_int_t const_obj_apps_common_coininfo_73 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0xfc00,0xe8d,0x80}}}; +static const mp_obj_str_t const_obj_apps_common_coininfo_75 = {{&mp_type_str}, 22290, 25, (const byte*)"\x56\x65\x72\x74\x63\x6f\x69\x6e\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; +static const mp_obj_str_t const_obj_apps_common_coininfo_80 = {{&mp_type_str}, 21208, 32, (const byte*)"\x42\x69\x74\x43\x6f\x69\x6e\x20\x52\x68\x6f\x64\x69\x75\x6d\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_common_coininfo[81] = { + MP_ROM_QSTR(MP_QSTR_Bitcoin_space_Signed_space_Message_colon__0x0a_), + MP_ROM_PTR(&const_obj_apps_common_coininfo_1), + MP_ROM_PTR(&const_obj_apps_common_coininfo_2), + MP_ROM_PTR(&const_obj_apps_common_coininfo_3), + MP_ROM_PTR(&const_obj_apps_common_coininfo_4), + MP_ROM_QSTR(MP_QSTR_bitcoincash), + MP_ROM_QSTR(MP_QSTR_Bcash_space_Testnet), + MP_ROM_PTR(&const_obj_apps_common_coininfo_7), + MP_ROM_QSTR(MP_QSTR_Bgold_space_Testnet), + MP_ROM_PTR(&const_obj_apps_common_coininfo_9), + MP_ROM_PTR(&const_obj_apps_common_coininfo_10), + MP_ROM_PTR(&const_obj_apps_common_coininfo_11), + MP_ROM_QSTR(MP_QSTR_BitCore_space_Signed_space_Message_colon__0x0a_), + MP_ROM_PTR(&const_obj_apps_common_coininfo_13), + MP_ROM_PTR(&const_obj_apps_common_coininfo_14), + MP_ROM_PTR(&const_obj_apps_common_coininfo_15), + MP_ROM_QSTR(MP_QSTR_Crown_space_Signed_space_Message_colon__0x0a_), + MP_ROM_QSTR(MP_QSTR_Dash_space_Testnet), + MP_ROM_QSTR(MP_QSTR_Decred_space_Signed_space_Message_colon__0x0a_), + MP_ROM_QSTR(MP_QSTR_secp256k1_hyphen_decred), + MP_ROM_QSTR(MP_QSTR_Decred_space_Testnet), + MP_ROM_PTR(&const_obj_apps_common_coininfo_21), + MP_ROM_PTR(&const_obj_apps_common_coininfo_22), + MP_ROM_PTR(&const_obj_apps_common_coininfo_23), + MP_ROM_PTR(&const_obj_apps_common_coininfo_24), + MP_ROM_QSTR(MP_QSTR_address_prefix), + MP_ROM_QSTR(MP_QSTR_blech32_prefix), + MP_ROM_QSTR(MP_QSTR_Feathercoin), + MP_ROM_PTR(&const_obj_apps_common_coininfo_28), + MP_ROM_PTR(&const_obj_apps_common_coininfo_29), + MP_ROM_QSTR(MP_QSTR_Zcoin_space_Signed_space_Message_colon__0x0a_), + MP_ROM_QSTR(MP_QSTR_Firo_space_Testnet), + MP_ROM_PTR(&const_obj_apps_common_coininfo_32), + MP_ROM_PTR(&const_obj_apps_common_coininfo_33), + MP_ROM_PTR(&const_obj_apps_common_coininfo_34), + MP_ROM_PTR(&const_obj_apps_common_coininfo_35), + MP_ROM_QSTR(MP_QSTR_Groestlcoin), + MP_ROM_PTR(&const_obj_apps_common_coininfo_37), + MP_ROM_PTR(&const_obj_apps_common_coininfo_38), + MP_ROM_QSTR(MP_QSTR_secp256k1_hyphen_groestl), + MP_ROM_QSTR(MP_QSTR_Groestlcoin_space_Testnet), + MP_ROM_PTR(&const_obj_apps_common_coininfo_41), + MP_ROM_QSTR(MP_QSTR_Komodo_space_Signed_space_Message_colon__0x0a_), + MP_ROM_QSTR(MP_QSTR_Koto_space_Signed_space_Message_colon__0x0a_), + MP_ROM_PTR(&const_obj_apps_common_coininfo_44), + MP_ROM_QSTR(MP_QSTR_Litecoin_space_Testnet), + MP_ROM_PTR(&const_obj_apps_common_coininfo_46), + MP_ROM_PTR(&const_obj_apps_common_coininfo_47), + MP_ROM_PTR(&const_obj_apps_common_coininfo_48), + MP_ROM_PTR(&const_obj_apps_common_coininfo_49), + MP_ROM_PTR(&const_obj_apps_common_coininfo_50), + MP_ROM_PTR(&const_obj_apps_common_coininfo_51), + MP_ROM_QSTR(MP_QSTR_Peercoin_space_Testnet), + MP_ROM_PTR(&const_obj_apps_common_coininfo_53), + MP_ROM_PTR(&const_obj_apps_common_coininfo_54), + MP_ROM_QSTR(MP_QSTR_Qtum_space_Signed_space_Message_colon__0x0a_), + MP_ROM_QSTR(MP_QSTR_Qtum_space_Testnet), + MP_ROM_PTR(&const_obj_apps_common_coininfo_57), + MP_ROM_QSTR(MP_QSTR_Raven_space_Signed_space_Message_colon__0x0a_), + MP_ROM_QSTR(MP_QSTR_Ravencoin_space_Testnet), + MP_ROM_PTR(&const_obj_apps_common_coininfo_60), + MP_ROM_QSTR(MP_QSTR_Rito_space_Signed_space_Message_colon__0x0a_), + MP_ROM_PTR(&const_obj_apps_common_coininfo_62), + MP_ROM_PTR(&const_obj_apps_common_coininfo_63), + MP_ROM_QSTR(MP_QSTR_secp256k1_hyphen_smart), + MP_ROM_QSTR(MP_QSTR_SmartCash_space_Testnet), + MP_ROM_PTR(&const_obj_apps_common_coininfo_66), + MP_ROM_PTR(&const_obj_apps_common_coininfo_67), + MP_ROM_QSTR(MP_QSTR_Syscoin_space_Signed_space_Message_colon__0x0a_), + MP_ROM_PTR(&const_obj_apps_common_coininfo_69), + MP_ROM_QSTR(MP_QSTR_VIPSTARCOIN), + MP_ROM_PTR(&const_obj_apps_common_coininfo_71), + MP_ROM_PTR(&const_obj_apps_common_coininfo_72), + MP_ROM_PTR(&const_obj_apps_common_coininfo_73), + MP_ROM_QSTR(MP_QSTR_Name_colon__space_Dogecoin_space_Dark_0x0a_), + MP_ROM_PTR(&const_obj_apps_common_coininfo_75), + MP_ROM_QSTR(MP_QSTR_Viacoin_space_Signed_space_Message_colon__0x0a_), + MP_ROM_QSTR(MP_QSTR_DarkNet_space_Signed_space_Message_colon__0x0a_), + MP_ROM_QSTR(MP_QSTR_Zcash_space_Signed_space_Message_colon__0x0a_), + MP_ROM_QSTR(MP_QSTR_Zcash_space_Testnet), + MP_ROM_PTR(&const_obj_apps_common_coininfo_80), +}; + +static const mp_frozen_module_t frozen_module_apps_common_coininfo = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_common_coininfo, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_common_coininfo, + }, + .rc = &raw_code_apps_common_coininfo__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_common_coins +// - original source file: build/firmware/src/apps/common/coins.mpy +// - frozen file name: apps/common/coins.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/common/coins.py, scope apps_common_coins__lt_module_gt_ +static const byte fun_data_apps_common_coins__lt_module_gt_[17] = { + 0x08,0x02, // prelude + 0x01, // names: + // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'by_name' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.coininfo' + 0x1c,0x02, // IMPORT_FROM 'by_name' + 0x16,0x02, // STORE_NAME 'by_name' + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_coins__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_coins__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_common_coins__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_common_coins__lt_module_gt_ + 3, + .opcodes = fun_data_apps_common_coins__lt_module_gt_ + 3, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_common_coins[4] = { + MP_QSTR_apps_slash_common_slash_coins_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_by_name, + MP_QSTR_apps_dot_common_dot_coininfo, +}; + +static const mp_frozen_module_t frozen_module_apps_common_coins = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_common_coins, + .obj_table = NULL, + }, + .rc = &raw_code_apps_common_coins__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_common_keychain +// - original source file: build/firmware/src/apps/common/keychain.mpy +// - frozen file name: apps/common/keychain.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain__lt_module_gt_ +static const byte fun_data_apps_common_keychain__lt_module_gt_[123] = { + 0x18,0x24, // prelude + 0x01, // names: + 0x40,0x2c,0x4c,0x52,0x80,0x21,0x68,0x89,0x23,0x89,0x5d,0x60,0x89,0x09,0x70,0x80,0x18, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'bip32' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x02, // IMPORT_FROM 'bip32' + 0x16,0x02, // STORE_NAME 'bip32' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.wire' + 0x1c,0x04, // IMPORT_FROM 'DataError' + 0x16,0x04, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x06, // LOAD_CONST_STRING 'paths' + 0x10,0x07, // LOAD_CONST_STRING 'safety_checks' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x08, // IMPORT_NAME '' + 0x1c,0x06, // IMPORT_FROM 'paths' + 0x16,0x06, // STORE_NAME 'paths' + 0x1c,0x07, // IMPORT_FROM 'safety_checks' + 0x16,0x07, // STORE_NAME 'safety_checks' + 0x59, // POP_TOP + 0x11,0x04, // LOAD_NAME 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x46, // STORE_NAME 'FORBIDDEN_KEY_PATH' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x09, // LOAD_CONST_STRING 'LRUCache' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x09, // STORE_NAME 'LRUCache' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x0a, // LOAD_CONST_STRING 'Keychain' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x0a, // STORE_NAME 'Keychain' + 0x2a,0x00, // BUILD_TUPLE 0 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x0e, // STORE_NAME 'get_keychain' + 0x53, // LOAD_NULL + 0x2c,0x00, // BUILD_MAP 0 + 0x10,0x0b, // LOAD_CONST_STRING 'secp256k1' + 0x10,0x0c, // LOAD_CONST_STRING 'curve' + 0x62, // STORE_MAP + 0x52, // LOAD_CONST_TRUE + 0x10,0x0d, // LOAD_CONST_STRING 'allow_testnet' + 0x62, // STORE_MAP + 0x33,0x03, // MAKE_FUNCTION_DEFARGS 3 + 0x16,0x11, // STORE_NAME 'with_slip44_keychain' + 0x52, // LOAD_CONST_TRUE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x04, // MAKE_FUNCTION_DEFARGS 4 + 0x16,0x15, // STORE_NAME 'auto_keychain' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_keychain__lt_module_gt_ +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_LRUCache +static const byte fun_data_apps_common_keychain_LRUCache[37] = { + 0x00,0x12, // prelude + 0x09, // names: LRUCache + 0x88,0x2c,0x64,0x40,0x84,0x0d,0x84,0x08, // code info + 0x11,0x47, // LOAD_NAME '__name__' + 0x16,0x48, // STORE_NAME '__module__' + 0x10,0x09, // LOAD_CONST_STRING 'LRUCache' + 0x16,0x49, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x1e, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x22, // STORE_NAME 'insert' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x26, // STORE_NAME 'get' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x25, // STORE_NAME '__del__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_keychain_LRUCache +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_LRUCache___init__ +static const byte fun_data_apps_common_keychain_LRUCache___init__[25] = { + 0x1a,0x0e, // prelude + 0x1e,0x4d,0x1f, // names: __init__, self, size + 0x80,0x2d,0x24,0x25, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x1f, // STORE_ATTR 'size' + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x20, // STORE_ATTR 'cache_keys' + 0x2c,0x00, // BUILD_MAP 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x21, // STORE_ATTR 'cache' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_keychain_LRUCache___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_keychain_LRUCache___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_apps_common_keychain_LRUCache___init__ + 5, + .line_info_top = fun_data_apps_common_keychain_LRUCache___init__ + 9, + .opcodes = fun_data_apps_common_keychain_LRUCache___init__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_keychain_LRUCache +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_LRUCache_insert +static const byte fun_data_apps_common_keychain_LRUCache_insert[82] = { + 0x43,0x1c, // prelude + 0x22,0x4d,0x4e,0x4f, // names: insert, self, key, value + 0x80,0x32,0x44,0x25,0x27,0x28,0x46,0x2b,0x26,0x2a, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'cache_keys' + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0xdd, // BINARY_OP 6 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb3, // LOAD_FAST 3 + 0x14,0x23, // LOAD_METHOD 'remove' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x22, // LOAD_METHOD 'insert' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'cache' + 0xb1, // LOAD_FAST 1 + 0x56, // STORE_SUBSCR + 0x12,0x50, // LOAD_GLOBAL 'len' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x1f, // LOAD_ATTR 'size' + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0xb3, // LOAD_FAST 3 + 0x14,0x24, // LOAD_METHOD 'pop' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'cache' + 0xb4, // LOAD_FAST 4 + 0x55, // LOAD_SUBSCR + 0x14,0x25, // LOAD_METHOD '__del__' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'cache' + 0xb4, // LOAD_FAST 4 + 0x53, // LOAD_NULL + 0x5b, // ROT_THREE + 0x56, // STORE_SUBSCR + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_keychain_LRUCache_insert = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_common_keychain_LRUCache_insert, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 82, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_apps_common_keychain_LRUCache_insert + 6, + .line_info_top = fun_data_apps_common_keychain_LRUCache_insert + 16, + .opcodes = fun_data_apps_common_keychain_LRUCache_insert + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_keychain_LRUCache +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_LRUCache_get +static const byte fun_data_apps_common_keychain_LRUCache_get[46] = { + 0x2a,0x12, // prelude + 0x26,0x4d,0x4e, // names: get, self, key + 0x80,0x3f,0x28,0x42,0x29,0x2a, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'cache' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'cache_keys' + 0x14,0x23, // LOAD_METHOD 'remove' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'cache_keys' + 0x14,0x22, // LOAD_METHOD 'insert' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'cache' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_keychain_LRUCache_get = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_keychain_LRUCache_get, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 38, + .line_info = fun_data_apps_common_keychain_LRUCache_get + 5, + .line_info_top = fun_data_apps_common_keychain_LRUCache_get + 11, + .opcodes = fun_data_apps_common_keychain_LRUCache_get + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_keychain_LRUCache +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_LRUCache___del__ +static const byte fun_data_apps_common_keychain_LRUCache___del__[52] = { + 0x39,0x10, // prelude + 0x25,0x4d, // names: __del__, self + 0x80,0x47,0x2b,0x28,0x28,0x28, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'cache' + 0x14,0x27, // LOAD_METHOD 'values' + 0x36,0x00, // CALL_METHOD 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x09, // FOR_ITER 9 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x25, // LOAD_METHOD '__del__' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0x35, // JUMP -11 + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'cache' + 0x14,0x28, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'cache_keys' + 0x14,0x28, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x5a, // ROT_TWO + 0x18,0x21, // STORE_ATTR 'cache' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_keychain_LRUCache___del__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_keychain_LRUCache___del__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 52, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_common_keychain_LRUCache___del__ + 4, + .line_info_top = fun_data_apps_common_keychain_LRUCache___del__ + 10, + .opcodes = fun_data_apps_common_keychain_LRUCache___del__ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_keychain_LRUCache[] = { + &raw_code_apps_common_keychain_LRUCache___init__, + &raw_code_apps_common_keychain_LRUCache_insert, + &raw_code_apps_common_keychain_LRUCache_get, + &raw_code_apps_common_keychain_LRUCache___del__, +}; + +static const mp_raw_code_t raw_code_apps_common_keychain_LRUCache = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_keychain_LRUCache, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = (void *)&children_apps_common_keychain_LRUCache, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_common_keychain_LRUCache + 3, + .line_info_top = fun_data_apps_common_keychain_LRUCache + 11, + .opcodes = fun_data_apps_common_keychain_LRUCache + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_keychain__lt_module_gt_ +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_Keychain +static const byte fun_data_apps_common_keychain_Keychain[78] = { + 0x08,0x2a, // prelude + 0x0a, // names: Keychain + 0x88,0x4f,0x60,0x40,0x89,0x0a,0x64,0x40,0x84,0x0c,0x64,0x84,0x11,0x84,0x0b,0x84,0x08,0x84,0x0e,0x64, // code info + 0x11,0x47, // LOAD_NAME '__name__' + 0x16,0x48, // STORE_NAME '__module__' + 0x10,0x0a, // LOAD_CONST_STRING 'Keychain' + 0x16,0x49, // STORE_NAME '__qualname__' + 0x2a,0x00, // BUILD_TUPLE 0 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x1e, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x25, // STORE_NAME '__del__' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x2d, // STORE_NAME 'verify_path' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x31, // STORE_NAME 'is_in_keychain' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x32, // STORE_NAME '_derive_with_cache' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x35, // STORE_NAME 'root_fingerprint' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x39, // STORE_NAME 'derive' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x3a, // STORE_NAME 'derive_slip21' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x3c, // STORE_NAME '__enter__' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x3d, // STORE_NAME '__exit__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_keychain_Keychain +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_Keychain___init__ +static const byte fun_data_apps_common_keychain_Keychain___init__[54] = { + 0xb1,0x05,0x1a, // prelude + 0x1e,0x4d,0x10,0x0c,0x29,0x2a, // names: __init__, self, seed, curve, schemas, slip21_namespaces + 0x80,0x56,0x24,0x24,0x28,0x48,0x28, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x10, // STORE_ATTR 'seed' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x0c, // STORE_ATTR 'curve' + 0x12,0x51, // LOAD_GLOBAL 'tuple' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x29, // STORE_ATTR 'schemas' + 0x12,0x51, // LOAD_GLOBAL 'tuple' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x2a, // STORE_ATTR 'slip21_namespaces' + 0x12,0x09, // LOAD_GLOBAL 'LRUCache' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x2b, // STORE_ATTR '_cache' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x2c, // STORE_ATTR '_root_fingerprint' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_keychain_Keychain___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_common_keychain_Keychain___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 54, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 30, + .line_info = fun_data_apps_common_keychain_Keychain___init__ + 9, + .line_info_top = fun_data_apps_common_keychain_Keychain___init__ + 16, + .opcodes = fun_data_apps_common_keychain_Keychain___init__ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_keychain_Keychain +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_Keychain___del__ +static const byte fun_data_apps_common_keychain_Keychain___del__[28] = { + 0x11,0x0c, // prelude + 0x25,0x4d, // names: __del__, self + 0x80,0x5f,0x28,0x25, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR '_cache' + 0x14,0x25, // LOAD_METHOD '__del__' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x5a, // ROT_TWO + 0x18,0x2b, // STORE_ATTR '_cache' + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x5a, // ROT_TWO + 0x18,0x10, // STORE_ATTR 'seed' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_keychain_Keychain___del__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_keychain_Keychain___del__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_common_keychain_Keychain___del__ + 4, + .line_info_top = fun_data_apps_common_keychain_Keychain___del__ + 8, + .opcodes = fun_data_apps_common_keychain_Keychain___del__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_keychain_Keychain +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_Keychain_verify_path +static const byte fun_data_apps_common_keychain_Keychain_verify_path[62] = { + 0x22,0x16, // prelude + 0x2d,0x4d,0x52, // names: verify_path, self, path + 0x80,0x64,0x31,0x47,0x28,0x42,0x28,0x42, // code info + 0x10,0x2e, // LOAD_CONST_STRING 'ed25519' + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'curve' + 0xdd, // BINARY_OP 6 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x12,0x06, // LOAD_GLOBAL 'paths' + 0x14,0x2f, // LOAD_METHOD 'path_is_hardened' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x07, // LOAD_GLOBAL 'safety_checks' + 0x14,0x30, // LOAD_METHOD 'is_strict' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x14,0x31, // LOAD_METHOD 'is_in_keychain' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x46, // LOAD_GLOBAL 'FORBIDDEN_KEY_PATH' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_keychain_Keychain_verify_path = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_keychain_Keychain_verify_path, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 62, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_common_keychain_Keychain_verify_path + 5, + .line_info_top = fun_data_apps_common_keychain_Keychain_verify_path + 13, + .opcodes = fun_data_apps_common_keychain_Keychain_verify_path + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_keychain_Keychain +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_Keychain_is_in_keychain +static const byte fun_data_apps_common_keychain_Keychain_is_in_keychain[23] = { + 0x22,0x0b, // prelude + 0x31,0x4d,0x52, // names: is_in_keychain, self, path + 0x80,0x70,0x01, // code info + 0x12,0x53, // LOAD_GLOBAL 'any' + 0xb1, // LOAD_FAST 1 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'schemas' + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +// child of apps_common_keychain_Keychain_is_in_keychain +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_Keychain_is_in_keychain__lt_genexpr_gt_ +static const byte fun_data_apps_common_keychain_Keychain_is_in_keychain__lt_genexpr_gt_[28] = { + 0xca,0x40,0x0a, // prelude + 0x41,0x58,0x58, // names: , *, * + 0x80,0x70, // code info + 0x53, // LOAD_NULL + 0xb1, // LOAD_FAST 1 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0c, // FOR_ITER 12 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x14,0x42, // LOAD_METHOD 'match' + 0x25,0x00, // LOAD_DEREF 0 + 0x36,0x01, // CALL_METHOD 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x32, // JUMP -14 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_keychain_Keychain_is_in_keychain__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_keychain_Keychain_is_in_keychain__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 65, + .line_info = fun_data_apps_common_keychain_Keychain_is_in_keychain__lt_genexpr_gt_ + 6, + .line_info_top = fun_data_apps_common_keychain_Keychain_is_in_keychain__lt_genexpr_gt_ + 8, + .opcodes = fun_data_apps_common_keychain_Keychain_is_in_keychain__lt_genexpr_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_keychain_Keychain_is_in_keychain[] = { + &raw_code_apps_common_keychain_Keychain_is_in_keychain__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_common_keychain_Keychain_is_in_keychain = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_keychain_Keychain_is_in_keychain, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = (void *)&children_apps_common_keychain_Keychain_is_in_keychain, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 49, + .line_info = fun_data_apps_common_keychain_Keychain_is_in_keychain + 5, + .line_info_top = fun_data_apps_common_keychain_Keychain_is_in_keychain + 7, + .opcodes = fun_data_apps_common_keychain_Keychain_is_in_keychain + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_keychain_Keychain +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_Keychain__derive_with_cache +static const byte fun_data_apps_common_keychain_Keychain__derive_with_cache[84] = { + 0xd8,0x04,0x1e, // prelude + 0x32,0x4d,0x54,0x52,0x37, // names: _derive_with_cache, self, prefix_len, path, new_root + 0x80,0x78,0x2b,0x29,0x25,0x24,0x27,0x4a,0x26,0x2c, // code info + 0x12,0x51, // LOAD_GLOBAL 'tuple' + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR '_cache' + 0x14,0x26, // LOAD_METHOD 'get' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb3, // LOAD_FAST 3 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x14,0x33, // LOAD_METHOD 'derive_path' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR '_cache' + 0x14,0x22, // LOAD_METHOD 'insert' + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x34, // LOAD_METHOD 'clone' + 0x36,0x00, // CALL_METHOD 0 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x14,0x33, // LOAD_METHOD 'derive_path' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_keychain_Keychain__derive_with_cache = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_common_keychain_Keychain__derive_with_cache, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 84, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 50, + .line_info = fun_data_apps_common_keychain_Keychain__derive_with_cache + 8, + .line_info_top = fun_data_apps_common_keychain_Keychain__derive_with_cache + 18, + .opcodes = fun_data_apps_common_keychain_Keychain__derive_with_cache + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_keychain_Keychain +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_Keychain_root_fingerprint +static const byte fun_data_apps_common_keychain_Keychain_root_fingerprint[57] = { + 0x39,0x13, // prelude + 0x35,0x4d, // names: root_fingerprint, self + 0x80,0x84,0x48,0x45,0x2a,0x48,0x29,0x00, // code info + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x2c, // LOAD_ATTR '_root_fingerprint' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0x25,0x00, // LOAD_DEREF 0 + 0x14,0x32, // LOAD_METHOD '_derive_with_cache' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x06, // LOAD_GLOBAL 'paths' + 0x13,0x36, // LOAD_ATTR 'HARDENED' + 0xed, // BINARY_OP 22 __or__ + 0x2b,0x01, // BUILD_LIST 1 + 0x10,0x37, // LOAD_CONST_STRING 'new_root' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x36,0x82,0x02, // CALL_METHOD 258 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x38, // LOAD_METHOD 'fingerprint' + 0x36,0x00, // CALL_METHOD 0 + 0x25,0x00, // LOAD_DEREF 0 + 0x18,0x2c, // STORE_ATTR '_root_fingerprint' + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x2c, // LOAD_ATTR '_root_fingerprint' + 0x63, // RETURN_VALUE +}; +// child of apps_common_keychain_Keychain_root_fingerprint +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_Keychain_root_fingerprint__lt_lambda_gt_ +static const byte fun_data_apps_common_keychain_Keychain_root_fingerprint__lt_lambda_gt_[21] = { + 0x21,0x08, // prelude + 0x43,0x58, // names: , * + 0x80,0x89, // code info + 0x12,0x02, // LOAD_GLOBAL 'bip32' + 0x14,0x44, // LOAD_METHOD 'from_seed' + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x10, // LOAD_ATTR 'seed' + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x0c, // LOAD_ATTR 'curve' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_keychain_Keychain_root_fingerprint__lt_lambda_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_keychain_Keychain_root_fingerprint__lt_lambda_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 67, + .line_info = fun_data_apps_common_keychain_Keychain_root_fingerprint__lt_lambda_gt_ + 4, + .line_info_top = fun_data_apps_common_keychain_Keychain_root_fingerprint__lt_lambda_gt_ + 6, + .opcodes = fun_data_apps_common_keychain_Keychain_root_fingerprint__lt_lambda_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_keychain_Keychain_root_fingerprint[] = { + &raw_code_apps_common_keychain_Keychain_root_fingerprint__lt_lambda_gt_, +}; + +static const mp_raw_code_t raw_code_apps_common_keychain_Keychain_root_fingerprint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_keychain_Keychain_root_fingerprint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = (void *)&children_apps_common_keychain_Keychain_root_fingerprint, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 53, + .line_info = fun_data_apps_common_keychain_Keychain_root_fingerprint + 4, + .line_info_top = fun_data_apps_common_keychain_Keychain_root_fingerprint + 11, + .opcodes = fun_data_apps_common_keychain_Keychain_root_fingerprint + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_keychain_Keychain +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_Keychain_derive +static const byte fun_data_apps_common_keychain_Keychain_derive[34] = { + 0x3a,0x0f, // prelude + 0x39,0x4d,0x52, // names: derive, self, path + 0x80,0x8f,0x28,0x68,0x00, // code info + 0x25,0x00, // LOAD_DEREF 0 + 0x14,0x2d, // LOAD_METHOD 'verify_path' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x25,0x00, // LOAD_DEREF 0 + 0x14,0x32, // LOAD_METHOD '_derive_with_cache' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xb1, // LOAD_FAST 1 + 0x10,0x37, // LOAD_CONST_STRING 'new_root' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x36,0x82,0x02, // CALL_METHOD 258 + 0x63, // RETURN_VALUE +}; +// child of apps_common_keychain_Keychain_derive +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_Keychain_derive__lt_lambda_gt_ +static const byte fun_data_apps_common_keychain_Keychain_derive__lt_lambda_gt_[21] = { + 0x21,0x08, // prelude + 0x43,0x58, // names: , * + 0x80,0x93, // code info + 0x12,0x02, // LOAD_GLOBAL 'bip32' + 0x14,0x44, // LOAD_METHOD 'from_seed' + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x10, // LOAD_ATTR 'seed' + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x0c, // LOAD_ATTR 'curve' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_keychain_Keychain_derive__lt_lambda_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_keychain_Keychain_derive__lt_lambda_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 67, + .line_info = fun_data_apps_common_keychain_Keychain_derive__lt_lambda_gt_ + 4, + .line_info_top = fun_data_apps_common_keychain_Keychain_derive__lt_lambda_gt_ + 6, + .opcodes = fun_data_apps_common_keychain_Keychain_derive__lt_lambda_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_keychain_Keychain_derive[] = { + &raw_code_apps_common_keychain_Keychain_derive__lt_lambda_gt_, +}; + +static const mp_raw_code_t raw_code_apps_common_keychain_Keychain_derive = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_keychain_Keychain_derive, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = (void *)&children_apps_common_keychain_Keychain_derive, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 57, + .line_info = fun_data_apps_common_keychain_Keychain_derive + 5, + .line_info_top = fun_data_apps_common_keychain_Keychain_derive + 9, + .opcodes = fun_data_apps_common_keychain_Keychain_derive + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_keychain_Keychain +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_Keychain_derive_slip21 +static const byte fun_data_apps_common_keychain_Keychain_derive_slip21[74] = { + 0x4a,0x95,0x01, // prelude + 0x3a,0x4d,0x52, // names: derive_slip21, self, path + 0x80,0x97,0x4c,0x2e,0x4b,0x43,0x69,0x00,0x01,0x02, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x3b, // LOAD_CONST_STRING 'Slip21Node' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'seed' + 0x1c,0x3b, // IMPORT_FROM 'Slip21Node' + 0x27,0x02, // STORE_DEREF 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'safety_checks' + 0x14,0x30, // LOAD_METHOD 'is_strict' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x53, // LOAD_GLOBAL 'any' + 0xb1, // LOAD_FAST 1 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x2a, // LOAD_ATTR 'slip21_namespaces' + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x12,0x46, // LOAD_GLOBAL 'FORBIDDEN_KEY_PATH' + 0x65, // RAISE_OBJ + 0x25,0x00, // LOAD_DEREF 0 + 0x14,0x32, // LOAD_METHOD '_derive_with_cache' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x25,0x01, // LOAD_DEREF 1 + 0x10,0x37, // LOAD_CONST_STRING 'new_root' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x20,0x01,0x02, // MAKE_CLOSURE 1 + 0x36,0x82,0x02, // CALL_METHOD 258 + 0x63, // RETURN_VALUE +}; +// child of apps_common_keychain_Keychain_derive_slip21 +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_Keychain_derive_slip21__lt_genexpr_gt_ +static const byte fun_data_apps_common_keychain_Keychain_derive_slip21__lt_genexpr_gt_[34] = { + 0xda,0x40,0x0a, // prelude + 0x41,0x58,0x58, // names: , *, * + 0x80,0x9a, // code info + 0x53, // LOAD_NULL + 0xb1, // LOAD_FAST 1 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x12, // FOR_ITER 18 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0x51, // LOAD_CONST_NONE + 0x12,0x50, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xd9, // BINARY_OP 2 __eq__ + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x2c, // JUMP -20 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_keychain_Keychain_derive_slip21__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_keychain_Keychain_derive_slip21__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 65, + .line_info = fun_data_apps_common_keychain_Keychain_derive_slip21__lt_genexpr_gt_ + 6, + .line_info_top = fun_data_apps_common_keychain_Keychain_derive_slip21__lt_genexpr_gt_ + 8, + .opcodes = fun_data_apps_common_keychain_Keychain_derive_slip21__lt_genexpr_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_keychain_Keychain_derive_slip21 +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_Keychain_derive_slip21__lt_lambda_gt_ +static const byte fun_data_apps_common_keychain_Keychain_derive_slip21__lt_lambda_gt_[19] = { + 0x22,0x0a, // prelude + 0x43,0x58,0x58, // names: , *, * + 0x80,0xa1, // code info + 0x25,0x01, // LOAD_DEREF 1 + 0x10,0x10, // LOAD_CONST_STRING 'seed' + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x10, // LOAD_ATTR 'seed' + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_keychain_Keychain_derive_slip21__lt_lambda_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_keychain_Keychain_derive_slip21__lt_lambda_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 67, + .line_info = fun_data_apps_common_keychain_Keychain_derive_slip21__lt_lambda_gt_ + 5, + .line_info_top = fun_data_apps_common_keychain_Keychain_derive_slip21__lt_lambda_gt_ + 7, + .opcodes = fun_data_apps_common_keychain_Keychain_derive_slip21__lt_lambda_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_keychain_Keychain_derive_slip21[] = { + &raw_code_apps_common_keychain_Keychain_derive_slip21__lt_genexpr_gt_, + &raw_code_apps_common_keychain_Keychain_derive_slip21__lt_lambda_gt_, +}; + +static const mp_raw_code_t raw_code_apps_common_keychain_Keychain_derive_slip21 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_keychain_Keychain_derive_slip21, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 74, + #endif + .children = (void *)&children_apps_common_keychain_Keychain_derive_slip21, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 58, + .line_info = fun_data_apps_common_keychain_Keychain_derive_slip21 + 6, + .line_info_top = fun_data_apps_common_keychain_Keychain_derive_slip21 + 13, + .opcodes = fun_data_apps_common_keychain_Keychain_derive_slip21 + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_keychain_Keychain +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_Keychain___enter__ +static const byte fun_data_apps_common_keychain_Keychain___enter__[8] = { + 0x09,0x08, // prelude + 0x3c,0x4d, // names: __enter__, self + 0x80,0xa5, // code info + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_keychain_Keychain___enter__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_keychain_Keychain___enter__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 8, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 60, + .line_info = fun_data_apps_common_keychain_Keychain___enter__ + 4, + .line_info_top = fun_data_apps_common_keychain_Keychain___enter__ + 6, + .opcodes = fun_data_apps_common_keychain_Keychain___enter__ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_keychain_Keychain +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_Keychain___exit__ +static const byte fun_data_apps_common_keychain_Keychain___exit__[18] = { + 0xa8,0x04,0x0e, // prelude + 0x3d,0x4d,0x55,0x56,0x57, // names: __exit__, self, exc_type, exc_val, tb + 0x80,0xa8, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x25, // LOAD_METHOD '__del__' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_keychain_Keychain___exit__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_common_keychain_Keychain___exit__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 61, + .line_info = fun_data_apps_common_keychain_Keychain___exit__ + 8, + .line_info_top = fun_data_apps_common_keychain_Keychain___exit__ + 10, + .opcodes = fun_data_apps_common_keychain_Keychain___exit__ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_keychain_Keychain[] = { + &raw_code_apps_common_keychain_Keychain___init__, + &raw_code_apps_common_keychain_Keychain___del__, + &raw_code_apps_common_keychain_Keychain_verify_path, + &raw_code_apps_common_keychain_Keychain_is_in_keychain, + &raw_code_apps_common_keychain_Keychain__derive_with_cache, + &raw_code_apps_common_keychain_Keychain_root_fingerprint, + &raw_code_apps_common_keychain_Keychain_derive, + &raw_code_apps_common_keychain_Keychain_derive_slip21, + &raw_code_apps_common_keychain_Keychain___enter__, + &raw_code_apps_common_keychain_Keychain___exit__, +}; + +static const mp_raw_code_t raw_code_apps_common_keychain_Keychain = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_keychain_Keychain, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 78, + #endif + .children = (void *)&children_apps_common_keychain_Keychain, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 10, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_common_keychain_Keychain + 3, + .line_info_top = fun_data_apps_common_keychain_Keychain + 23, + .opcodes = fun_data_apps_common_keychain_Keychain + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_keychain__lt_module_gt_ +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_get_keychain +static const byte fun_data_apps_common_keychain_get_keychain[41] = { + 0xd3,0x41,0x12, // prelude + 0x0e,0x0c,0x29,0x2a, // names: get_keychain, curve, schemas, slip21_namespaces + 0x80,0xb0,0x4b,0x27,0x29, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0f, // LOAD_CONST_STRING 'get_seed' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'seed' + 0x1c,0x0f, // IMPORT_FROM 'get_seed' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0x12,0x0a, // LOAD_GLOBAL 'Keychain' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x04, // CALL_FUNCTION 4 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_keychain_get_keychain = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_common_keychain_get_keychain, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_common_keychain_get_keychain + 7, + .line_info_top = fun_data_apps_common_keychain_get_keychain + 12, + .opcodes = fun_data_apps_common_keychain_get_keychain + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_keychain__lt_module_gt_ +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_with_slip44_keychain +static const byte fun_data_apps_common_keychain_with_slip44_keychain[85] = { + 0x88,0x98,0x88,0xc0,0x40,0x9e,0x01, // prelude + 0x11,0x0d,0x1d,0x0c, // names: with_slip44_keychain, allow_testnet, slip44_id, curve + 0x80,0xbd,0x23,0x43,0x4b,0x24,0x25,0x33,0x48,0x86,0x08,0x02,0x07, // code info + 0xb3, // LOAD_FAST 3 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x12,0x4a, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x42,0x41, // JUMP 1 + 0xb1, // LOAD_FAST 1 + 0xc4, // STORE_FAST 4 + 0x2b,0x00, // BUILD_LIST 0 + 0x27,0x07, // STORE_DEREF 7 + 0xb3, // LOAD_FAST 3 + 0x5f, // GET_ITER_STACK + 0x4b,0x14, // FOR_ITER 20 + 0xc5, // STORE_FAST 5 + 0x25,0x07, // LOAD_DEREF 7 + 0x14,0x12, // LOAD_METHOD 'append' + 0x12,0x06, // LOAD_GLOBAL 'paths' + 0x13,0x13, // LOAD_ATTR 'PathSchema' + 0x14,0x14, // LOAD_METHOD 'parse' + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x2a, // JUMP -22 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x25,0x07, // LOAD_DEREF 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x27,0x07, // STORE_DEREF 7 + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x20,0x01,0x02, // MAKE_CLOSURE 1 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x63, // RETURN_VALUE +}; +// child of apps_common_keychain_with_slip44_keychain +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_with_slip44_keychain__lt_listcomp_gt_ +static const byte fun_data_apps_common_keychain_with_slip44_keychain__lt_listcomp_gt_[23] = { + 0x41,0x08, // prelude + 0x3e,0x58, // names: , * + 0x80,0xc5, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x3f, // LOAD_METHOD 'copy' + 0x36,0x00, // CALL_METHOD 0 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x34, // JUMP -12 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_keychain_with_slip44_keychain__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_keychain_with_slip44_keychain__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 62, + .line_info = fun_data_apps_common_keychain_with_slip44_keychain__lt_listcomp_gt_ + 4, + .line_info_top = fun_data_apps_common_keychain_with_slip44_keychain__lt_listcomp_gt_ + 6, + .opcodes = fun_data_apps_common_keychain_with_slip44_keychain__lt_listcomp_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_keychain_with_slip44_keychain +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_with_slip44_keychain_decorator +static const byte fun_data_apps_common_keychain_with_slip44_keychain_decorator[20] = { + 0x33,0x11, // prelude + 0x40,0x58,0x58,0x59, // names: decorator, *, *, func + 0x80,0xc8,0x67,0x40,0x02, // code info + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x20,0x00,0x03, // MAKE_CLOSURE 0 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +// child of apps_common_keychain_with_slip44_keychain_decorator +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_with_slip44_keychain_decorator_wrapper +static const byte fun_data_apps_common_keychain_with_slip44_keychain_decorator_wrapper[43] = { + 0xcc,0x44,0x12, // prelude + 0x45,0x58,0x58,0x58,0x5a, // names: wrapper, *, *, *, msg + 0x80,0xc9,0x2c,0x24, // code info + 0x12,0x0e, // LOAD_GLOBAL 'get_keychain' + 0x25,0x01, // LOAD_DEREF 1 + 0x25,0x02, // LOAD_DEREF 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x47,0x0c, // SETUP_WITH 12 + 0x59, // POP_TOP + 0x25,0x00, // LOAD_DEREF 0 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_keychain_with_slip44_keychain_decorator_wrapper = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_common_keychain_with_slip44_keychain_decorator_wrapper, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 69, + .line_info = fun_data_apps_common_keychain_with_slip44_keychain_decorator_wrapper + 8, + .line_info_top = fun_data_apps_common_keychain_with_slip44_keychain_decorator_wrapper + 12, + .opcodes = fun_data_apps_common_keychain_with_slip44_keychain_decorator_wrapper + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_keychain_with_slip44_keychain_decorator[] = { + &raw_code_apps_common_keychain_with_slip44_keychain_decorator_wrapper, +}; + +static const mp_raw_code_t raw_code_apps_common_keychain_with_slip44_keychain_decorator = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_common_keychain_with_slip44_keychain_decorator, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = (void *)&children_apps_common_keychain_with_slip44_keychain_decorator, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_apps_common_keychain_with_slip44_keychain_decorator + 6, + .line_info_top = fun_data_apps_common_keychain_with_slip44_keychain_decorator + 10, + .opcodes = fun_data_apps_common_keychain_with_slip44_keychain_decorator + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_keychain_with_slip44_keychain[] = { + &raw_code_apps_common_keychain_with_slip44_keychain__lt_listcomp_gt_, + &raw_code_apps_common_keychain_with_slip44_keychain_decorator, +}; + +static const mp_raw_code_t raw_code_apps_common_keychain_with_slip44_keychain = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x0c, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_keychain_with_slip44_keychain, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 85, + #endif + .children = (void *)&children_apps_common_keychain_with_slip44_keychain, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 12, + .n_pos_args = 0, + .n_kwonly_args = 3, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_apps_common_keychain_with_slip44_keychain + 11, + .line_info_top = fun_data_apps_common_keychain_with_slip44_keychain + 22, + .opcodes = fun_data_apps_common_keychain_with_slip44_keychain + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_keychain__lt_module_gt_ +// frozen bytecode for file apps/common/keychain.py, scope apps_common_keychain_auto_keychain +static const byte fun_data_apps_common_keychain_auto_keychain[81] = { + 0x82,0x11,0x18, // prelude + 0x15,0x4b,0x0d, // names: auto_keychain, modname, allow_testnet + 0x80,0xd5,0x45,0x28,0x27,0x46,0x28,0x28,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x16, // IMPORT_NAME 'sys' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x17, // LOAD_METHOD 'rfind' + 0x10,0x18, // LOAD_CONST_STRING '.' + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xb3, // LOAD_FAST 3 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x19, // LOAD_ATTR 'modules' + 0xb4, // LOAD_FAST 4 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0x12,0x4c, // LOAD_GLOBAL 'getattr' + 0xb5, // LOAD_FAST 5 + 0x10,0x1a, // LOAD_CONST_STRING 'PATTERN' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc6, // STORE_FAST 6 + 0x12,0x4c, // LOAD_GLOBAL 'getattr' + 0xb5, // LOAD_FAST 5 + 0x10,0x1b, // LOAD_CONST_STRING 'CURVE' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc7, // STORE_FAST 7 + 0x12,0x4c, // LOAD_GLOBAL 'getattr' + 0xb5, // LOAD_FAST 5 + 0x10,0x1c, // LOAD_CONST_STRING 'SLIP44_ID' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc8, // STORE_FAST 8 + 0x12,0x11, // LOAD_GLOBAL 'with_slip44_keychain' + 0xb6, // LOAD_FAST 6 + 0x10,0x1d, // LOAD_CONST_STRING 'slip44_id' + 0xb8, // LOAD_FAST 8 + 0x10,0x0c, // LOAD_CONST_STRING 'curve' + 0xb7, // LOAD_FAST 7 + 0x10,0x0d, // LOAD_CONST_STRING 'allow_testnet' + 0xb1, // LOAD_FAST 1 + 0x34,0x86,0x01, // CALL_FUNCTION 769 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_keychain_auto_keychain = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_keychain_auto_keychain, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 81, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_common_keychain_auto_keychain + 6, + .line_info_top = fun_data_apps_common_keychain_auto_keychain + 15, + .opcodes = fun_data_apps_common_keychain_auto_keychain + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_keychain__lt_module_gt_[] = { + &raw_code_apps_common_keychain_LRUCache, + &raw_code_apps_common_keychain_Keychain, + &raw_code_apps_common_keychain_get_keychain, + &raw_code_apps_common_keychain_with_slip44_keychain, + &raw_code_apps_common_keychain_auto_keychain, +}; + +static const mp_raw_code_t raw_code_apps_common_keychain__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_keychain__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 123, + #endif + .children = (void *)&children_apps_common_keychain__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_common_keychain__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_common_keychain__lt_module_gt_ + 20, + .opcodes = fun_data_apps_common_keychain__lt_module_gt_ + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_common_keychain[91] = { + MP_QSTR_apps_slash_common_slash_keychain_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_bip32, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_paths, + MP_QSTR_safety_checks, + MP_QSTR_, + MP_QSTR_LRUCache, + MP_QSTR_Keychain, + MP_QSTR_secp256k1, + MP_QSTR_curve, + MP_QSTR_allow_testnet, + MP_QSTR_get_keychain, + MP_QSTR_get_seed, + MP_QSTR_seed, + MP_QSTR_with_slip44_keychain, + MP_QSTR_append, + MP_QSTR_PathSchema, + MP_QSTR_parse, + MP_QSTR_auto_keychain, + MP_QSTR_sys, + MP_QSTR_rfind, + MP_QSTR__dot_, + MP_QSTR_modules, + MP_QSTR_PATTERN, + MP_QSTR_CURVE, + MP_QSTR_SLIP44_ID, + MP_QSTR_slip44_id, + MP_QSTR___init__, + MP_QSTR_size, + MP_QSTR_cache_keys, + MP_QSTR_cache, + MP_QSTR_insert, + MP_QSTR_remove, + MP_QSTR_pop, + MP_QSTR___del__, + MP_QSTR_get, + MP_QSTR_values, + MP_QSTR_clear, + MP_QSTR_schemas, + MP_QSTR_slip21_namespaces, + MP_QSTR__cache, + MP_QSTR__root_fingerprint, + MP_QSTR_verify_path, + MP_QSTR_ed25519, + MP_QSTR_path_is_hardened, + MP_QSTR_is_strict, + MP_QSTR_is_in_keychain, + MP_QSTR__derive_with_cache, + MP_QSTR_derive_path, + MP_QSTR_clone, + MP_QSTR_root_fingerprint, + MP_QSTR_HARDENED, + MP_QSTR_new_root, + MP_QSTR_fingerprint, + MP_QSTR_derive, + MP_QSTR_derive_slip21, + MP_QSTR_Slip21Node, + MP_QSTR___enter__, + MP_QSTR___exit__, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_copy, + MP_QSTR_decorator, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_match, + MP_QSTR__lt_lambda_gt_, + MP_QSTR_from_seed, + MP_QSTR_wrapper, + MP_QSTR_FORBIDDEN_KEY_PATH, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_ValueError, + MP_QSTR_modname, + MP_QSTR_getattr, + MP_QSTR_self, + MP_QSTR_key, + MP_QSTR_value, + MP_QSTR_len, + MP_QSTR_tuple, + MP_QSTR_path, + MP_QSTR_any, + MP_QSTR_prefix_len, + MP_QSTR_exc_type, + MP_QSTR_exc_val, + MP_QSTR_tb, + MP_QSTR__star_, + MP_QSTR_func, + MP_QSTR_msg, +}; + +// constants +static const mp_obj_str_t const_obj_apps_common_keychain_1 = {{&mp_type_str}, 15747, 41, (const byte*)"\x4e\x6f\x6e\x2d\x68\x61\x72\x64\x65\x6e\x65\x64\x20\x70\x61\x74\x68\x73\x20\x75\x6e\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x6f\x6e\x20\x45\x64\x32\x35\x35\x31\x39"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_common_keychain[2] = { + MP_ROM_QSTR(MP_QSTR_Forbidden_space_key_space_path), + MP_ROM_PTR(&const_obj_apps_common_keychain_1), +}; + +static const mp_frozen_module_t frozen_module_apps_common_keychain = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_common_keychain, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_common_keychain, + }, + .rc = &raw_code_apps_common_keychain__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_common_mnemonic +// - original source file: build/firmware/src/apps/common/mnemonic.mpy +// - frozen file name: apps/common/mnemonic.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/common/mnemonic.py, scope apps_common_mnemonic__lt_module_gt_ +static const byte fun_data_apps_common_mnemonic__lt_module_gt_[100] = { + 0x10,0x30, // prelude + 0x01, // names: + 0x40,0x28,0x4c,0x60,0x40,0x64,0x20,0x64,0x20,0x64,0x20,0x84,0x0a,0x8a,0x22,0x40,0x8b,0x1a,0x63,0x84,0x0c,0x64,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'storage.device' + 0x13,0x03, // LOAD_ATTR 'device' + 0x16,0x26, // STORE_NAME 'storage_device' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor' + 0x1c,0x04, // IMPORT_FROM 'utils' + 0x16,0x04, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x07, // STORE_NAME 'get' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x08, // STORE_NAME 'get_secret' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0a, // STORE_NAME 'get_type' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x0c, // STORE_NAME 'is_bip39' + 0x10,0x06, // LOAD_CONST_STRING '' + 0x52, // LOAD_CONST_TRUE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x04, // MAKE_FUNCTION_DEFARGS 4 + 0x16,0x10, // STORE_NAME 'get_seed' + 0x10,0x06, // LOAD_CONST_STRING '' + 0x52, // LOAD_CONST_TRUE + 0x52, // LOAD_CONST_TRUE + 0x2a,0x03, // BUILD_TUPLE 3 + 0x53, // LOAD_NULL + 0x33,0x05, // MAKE_FUNCTION_DEFARGS 5 + 0x16,0x1b, // STORE_NAME 'derive_cardano_icarus' + 0x51, // LOAD_CONST_NONE + 0x17,0x27, // STORE_GLOBAL '_progress_obj' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x1e, // STORE_NAME '_start_progress' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x23, // STORE_NAME '_render_progress' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x25, // STORE_NAME '_finish_progress' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_mnemonic__lt_module_gt_ +// frozen bytecode for file apps/common/mnemonic.py, scope apps_common_mnemonic_get +static const byte fun_data_apps_common_mnemonic_get[16] = { + 0x08,0x06, // prelude + 0x07, // names: get + 0x80,0x0b, // code info + 0x12,0x08, // LOAD_GLOBAL 'get_secret' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x0a, // LOAD_GLOBAL 'get_type' + 0x34,0x00, // CALL_FUNCTION 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_mnemonic_get = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_mnemonic_get, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_common_mnemonic_get + 3, + .line_info_top = fun_data_apps_common_mnemonic_get + 5, + .opcodes = fun_data_apps_common_mnemonic_get + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_mnemonic__lt_module_gt_ +// frozen bytecode for file apps/common/mnemonic.py, scope apps_common_mnemonic_get_secret +static const byte fun_data_apps_common_mnemonic_get_secret[12] = { + 0x08,0x06, // prelude + 0x08, // names: get_secret + 0x80,0x0f, // code info + 0x12,0x26, // LOAD_GLOBAL 'storage_device' + 0x14,0x09, // LOAD_METHOD 'get_mnemonic_secret' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_mnemonic_get_secret = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_mnemonic_get_secret, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_common_mnemonic_get_secret + 3, + .line_info_top = fun_data_apps_common_mnemonic_get_secret + 5, + .opcodes = fun_data_apps_common_mnemonic_get_secret + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_mnemonic__lt_module_gt_ +// frozen bytecode for file apps/common/mnemonic.py, scope apps_common_mnemonic_get_type +static const byte fun_data_apps_common_mnemonic_get_type[12] = { + 0x08,0x06, // prelude + 0x0a, // names: get_type + 0x80,0x13, // code info + 0x12,0x26, // LOAD_GLOBAL 'storage_device' + 0x14,0x0b, // LOAD_METHOD 'get_backup_type' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_mnemonic_get_type = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_mnemonic_get_type, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_common_mnemonic_get_type + 3, + .line_info_top = fun_data_apps_common_mnemonic_get_type + 5, + .opcodes = fun_data_apps_common_mnemonic_get_type + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_mnemonic__lt_module_gt_ +// frozen bytecode for file apps/common/mnemonic.py, scope apps_common_mnemonic_is_bip39 +static const byte fun_data_apps_common_mnemonic_is_bip39[28] = { + 0x10,0x0c, // prelude + 0x0c, // names: is_bip39 + 0x80,0x17,0x60,0x20,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'BackupType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'trezor.enums' + 0x1c,0x0d, // IMPORT_FROM 'BackupType' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'get_type' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'Bip39' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_mnemonic_is_bip39 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_mnemonic_is_bip39, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_common_mnemonic_is_bip39 + 3, + .line_info_top = fun_data_apps_common_mnemonic_is_bip39 + 8, + .opcodes = fun_data_apps_common_mnemonic_is_bip39 + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_mnemonic__lt_module_gt_ +// frozen bytecode for file apps/common/mnemonic.py, scope apps_common_mnemonic_get_seed +static const byte fun_data_apps_common_mnemonic_get_seed[146] = { + 0xfa,0x80,0x01,0x2e, // prelude + 0x10,0x28,0x29, // names: get_seed, passphrase, progress_bar + 0x80,0x21,0x25,0x25,0x43,0x22,0x29,0x25,0x43,0x26,0x4b,0x6f,0x4b,0x27,0x27,0x4a,0x23,0x44,0x6b,0x60, // code info + 0x12,0x08, // LOAD_GLOBAL 'get_secret' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x2a, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x04, // LOAD_GLOBAL 'utils' + 0x13,0x11, // LOAD_ATTR 'DISABLE_ANIMATION' + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0x12,0x1e, // LOAD_GLOBAL '_start_progress' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x23, // LOAD_GLOBAL '_render_progress' + 0xc3, // STORE_FAST 3 + 0x12,0x0c, // LOAD_GLOBAL 'is_bip39' + 0x34,0x00, // CALL_FUNCTION 0 + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x12, // LOAD_CONST_STRING 'bip39' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x12, // IMPORT_FROM 'bip39' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x14, // LOAD_METHOD 'seed' + 0xb2, // LOAD_FAST 2 + 0x14,0x15, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0xc5, // STORE_FAST 5 + 0x42,0x75, // JUMP 53 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x16, // LOAD_CONST_STRING 'slip39' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x16, // IMPORT_FROM 'slip39' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x12,0x26, // LOAD_GLOBAL 'storage_device' + 0x14,0x17, // LOAD_METHOD 'get_slip39_identifier' + 0x36,0x00, // CALL_METHOD 0 + 0xc7, // STORE_FAST 7 + 0x12,0x26, // LOAD_GLOBAL 'storage_device' + 0x14,0x18, // LOAD_METHOD 'get_slip39_iteration_exponent' + 0x36,0x00, // CALL_METHOD 0 + 0xc8, // STORE_FAST 8 + 0xb7, // LOAD_FAST 7 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb8, // LOAD_FAST 8 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x2b, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb6, // LOAD_FAST 6 + 0x14,0x19, // LOAD_METHOD 'decrypt' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x1a, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0xb8, // LOAD_FAST 8 + 0xb7, // LOAD_FAST 7 + 0xb3, // LOAD_FAST 3 + 0x36,0x05, // CALL_METHOD 5 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_mnemonic_get_seed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_mnemonic_get_seed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 146, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_common_mnemonic_get_seed + 7, + .line_info_top = fun_data_apps_common_mnemonic_get_seed + 27, + .opcodes = fun_data_apps_common_mnemonic_get_seed + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_mnemonic__lt_module_gt_ +// frozen bytecode for file apps/common/mnemonic.py, scope apps_common_mnemonic_derive_cardano_icarus +static const byte fun_data_apps_common_mnemonic_derive_cardano_icarus[100] = { + 0xe3,0x81,0x01,0x26, // prelude + 0x1b,0x28,0x2c,0x29, // names: derive_cardano_icarus, passphrase, trezor_derivation, progress_bar + 0x80,0x49,0x26,0x43,0x25,0x25,0x47,0x22,0x29,0x25,0x43,0x4b,0x23,0x4b,0x25, // code info + 0x12,0x0c, // LOAD_GLOBAL 'is_bip39' + 0x34,0x00, // CALL_FUNCTION 0 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x12,0x2a, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x08, // LOAD_GLOBAL 'get_secret' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x2a, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x04, // LOAD_GLOBAL 'utils' + 0x13,0x11, // LOAD_ATTR 'DISABLE_ANIMATION' + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0x12,0x1e, // LOAD_GLOBAL '_start_progress' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x23, // LOAD_GLOBAL '_render_progress' + 0xc4, // STORE_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1c, // LOAD_CONST_STRING 'cardano' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x1c, // IMPORT_FROM 'cardano' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x1d, // LOAD_METHOD 'derive_icarus' + 0xb3, // LOAD_FAST 3 + 0x14,0x15, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x36,0x04, // CALL_METHOD 4 + 0xc6, // STORE_FAST 6 + 0x12,0x25, // LOAD_GLOBAL '_finish_progress' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_mnemonic_derive_cardano_icarus = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_common_mnemonic_derive_cardano_icarus, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 100, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 3, + .qstr_block_name_idx = 27, + .line_info = fun_data_apps_common_mnemonic_derive_cardano_icarus + 8, + .line_info_top = fun_data_apps_common_mnemonic_derive_cardano_icarus + 23, + .opcodes = fun_data_apps_common_mnemonic_derive_cardano_icarus + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_mnemonic__lt_module_gt_ +// frozen bytecode for file apps/common/mnemonic.py, scope apps_common_mnemonic__start_progress +static const byte fun_data_apps_common_mnemonic__start_progress[45] = { + 0x18,0x10, // prelude + 0x1e, // names: _start_progress + 0x80,0x62,0x2b,0x4b,0x60,0x20,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1f, // LOAD_CONST_STRING 'workflow' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor' + 0x1c,0x1f, // IMPORT_FROM 'workflow' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x20, // LOAD_CONST_STRING 'progress' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x21, // IMPORT_NAME 'trezor.ui.layouts.progress' + 0x1c,0x20, // IMPORT_FROM 'progress' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x22, // LOAD_METHOD 'close_others' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x17,0x27, // STORE_GLOBAL '_progress_obj' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_mnemonic__start_progress = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_mnemonic__start_progress, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_apps_common_mnemonic__start_progress + 3, + .line_info_top = fun_data_apps_common_mnemonic__start_progress + 10, + .opcodes = fun_data_apps_common_mnemonic__start_progress + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_mnemonic__lt_module_gt_ +// frozen bytecode for file apps/common/mnemonic.py, scope apps_common_mnemonic__render_progress +static const byte fun_data_apps_common_mnemonic__render_progress[32] = { + 0x2a,0x0e, // prelude + 0x23,0x20,0x2d, // names: _render_progress, progress, total + 0x80,0x6e,0x20,0x27, // code info + 0x12,0x27, // LOAD_GLOBAL '_progress_obj' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x27, // LOAD_GLOBAL '_progress_obj' + 0x14,0x24, // LOAD_METHOD 'report' + 0x22,0x87,0x68, // LOAD_CONST_SMALL_INT 1000 + 0xb0, // LOAD_FAST 0 + 0xf4, // BINARY_OP 29 __mul__ + 0xb1, // LOAD_FAST 1 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_mnemonic__render_progress = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_mnemonic__render_progress, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_common_mnemonic__render_progress + 5, + .line_info_top = fun_data_apps_common_mnemonic__render_progress + 9, + .opcodes = fun_data_apps_common_mnemonic__render_progress + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_mnemonic__lt_module_gt_ +// frozen bytecode for file apps/common/mnemonic.py, scope apps_common_mnemonic__finish_progress +static const byte fun_data_apps_common_mnemonic__finish_progress[11] = { + 0x00,0x08, // prelude + 0x25, // names: _finish_progress + 0x80,0x74,0x20, // code info + 0x51, // LOAD_CONST_NONE + 0x17,0x27, // STORE_GLOBAL '_progress_obj' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_mnemonic__finish_progress = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_mnemonic__finish_progress, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 11, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_common_mnemonic__finish_progress + 3, + .line_info_top = fun_data_apps_common_mnemonic__finish_progress + 6, + .opcodes = fun_data_apps_common_mnemonic__finish_progress + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_mnemonic__lt_module_gt_[] = { + &raw_code_apps_common_mnemonic_get, + &raw_code_apps_common_mnemonic_get_secret, + &raw_code_apps_common_mnemonic_get_type, + &raw_code_apps_common_mnemonic_is_bip39, + &raw_code_apps_common_mnemonic_get_seed, + &raw_code_apps_common_mnemonic_derive_cardano_icarus, + &raw_code_apps_common_mnemonic__start_progress, + &raw_code_apps_common_mnemonic__render_progress, + &raw_code_apps_common_mnemonic__finish_progress, +}; + +static const mp_raw_code_t raw_code_apps_common_mnemonic__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_mnemonic__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 100, + #endif + .children = (void *)&children_apps_common_mnemonic__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 9, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_common_mnemonic__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_common_mnemonic__lt_module_gt_ + 26, + .opcodes = fun_data_apps_common_mnemonic__lt_module_gt_ + 26, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_common_mnemonic[46] = { + MP_QSTR_apps_slash_common_slash_mnemonic_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_storage_dot_device, + MP_QSTR_device, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_, + MP_QSTR_get, + MP_QSTR_get_secret, + MP_QSTR_get_mnemonic_secret, + MP_QSTR_get_type, + MP_QSTR_get_backup_type, + MP_QSTR_is_bip39, + MP_QSTR_BackupType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_Bip39, + MP_QSTR_get_seed, + MP_QSTR_DISABLE_ANIMATION, + MP_QSTR_bip39, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_seed, + MP_QSTR_decode, + MP_QSTR_slip39, + MP_QSTR_get_slip39_identifier, + MP_QSTR_get_slip39_iteration_exponent, + MP_QSTR_decrypt, + MP_QSTR_encode, + MP_QSTR_derive_cardano_icarus, + MP_QSTR_cardano, + MP_QSTR_derive_icarus, + MP_QSTR__start_progress, + MP_QSTR_workflow, + MP_QSTR_progress, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_progress, + MP_QSTR_close_others, + MP_QSTR__render_progress, + MP_QSTR_report, + MP_QSTR__finish_progress, + MP_QSTR_storage_device, + MP_QSTR__progress_obj, + MP_QSTR_passphrase, + MP_QSTR_progress_bar, + MP_QSTR_ValueError, + MP_QSTR_RuntimeError, + MP_QSTR_trezor_derivation, + MP_QSTR_total, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_common_mnemonic[1] = { + MP_ROM_QSTR(MP_QSTR_Mnemonic_space_not_space_set), +}; + +static const mp_frozen_module_t frozen_module_apps_common_mnemonic = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_common_mnemonic, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_common_mnemonic, + }, + .rc = &raw_code_apps_common_mnemonic__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_common_passphrase +// - original source file: build/firmware/src/apps/common/passphrase.mpy +// - frozen file name: apps/common/passphrase.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/common/passphrase.py, scope apps_common_passphrase__lt_module_gt_ +static const byte fun_data_apps_common_passphrase__lt_module_gt_[57] = { + 0x08,0x12, // prelude + 0x01, // names: + 0x4c,0x28,0x6c,0x40,0x64,0x20,0x84,0x13, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x04, // IMPORT_NAME 'storage.device' + 0x13,0x05, // LOAD_ATTR 'device' + 0x16,0x23, // STORE_NAME 'storage_device' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.wire' + 0x1c,0x06, // IMPORT_FROM 'DataError' + 0x16,0x06, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x08, // STORE_NAME 'is_enabled' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0a, // STORE_NAME 'get' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x14, // STORE_NAME '_request_on_host' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_passphrase__lt_module_gt_ +// frozen bytecode for file apps/common/passphrase.py, scope apps_common_passphrase_is_enabled +static const byte fun_data_apps_common_passphrase_is_enabled[12] = { + 0x08,0x06, // prelude + 0x08, // names: is_enabled + 0x80,0x09, // code info + 0x12,0x23, // LOAD_GLOBAL 'storage_device' + 0x14,0x09, // LOAD_METHOD 'is_passphrase_enabled' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_passphrase_is_enabled = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_passphrase_is_enabled, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_common_passphrase_is_enabled + 3, + .line_info_top = fun_data_apps_common_passphrase_is_enabled + 5, + .opcodes = fun_data_apps_common_passphrase_is_enabled + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_passphrase__lt_module_gt_ +// frozen bytecode for file apps/common/passphrase.py, scope apps_common_passphrase_get +static const byte fun_data_apps_common_passphrase_get[111] = { + 0xb0,0x40,0x1a, // prelude + 0x0a, // names: get + 0x80,0x0d,0x4b,0x26,0x43,0x26,0x28,0x4b,0x4b,0x28,0x2e,0x4d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'workflow' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor' + 0x1c,0x0b, // IMPORT_FROM 'workflow' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'is_enabled' + 0x34,0x00, // CALL_FUNCTION 0 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x10,0x0d, // LOAD_CONST_STRING '' + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x14,0x0e, // LOAD_METHOD 'close_others' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x23, // LOAD_GLOBAL 'storage_device' + 0x14,0x0f, // LOAD_METHOD 'get_passphrase_always_on_device' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'request_passphrase_on_device' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x10, // IMPORT_FROM 'request_passphrase_on_device' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x22,0x32, // LOAD_CONST_SMALL_INT 50 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0x42,0x48, // JUMP 8 + 0x12,0x14, // LOAD_GLOBAL '_request_on_host' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0x12,0x24, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x14,0x12, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x32, // LOAD_CONST_SMALL_INT 50 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x14,0x13, // LOAD_METHOD 'format' + 0x22,0x32, // LOAD_CONST_SMALL_INT 50 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_passphrase_get = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_passphrase_get, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 111, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_common_passphrase_get + 4, + .line_info_top = fun_data_apps_common_passphrase_get + 16, + .opcodes = fun_data_apps_common_passphrase_get + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_passphrase__lt_module_gt_ +// frozen bytecode for file apps/common/passphrase.py, scope apps_common_passphrase__request_on_host +static const byte fun_data_apps_common_passphrase__request_on_host[236] = { + 0x88,0x50,0x48, // prelude + 0x14, // names: _request_on_host + 0x80,0x20,0x30,0x2b,0x4b,0x44,0x24,0x29,0x44,0x25,0x4b,0x26,0x27,0x49,0x25,0x22,0x65,0x20,0x24,0x70,0x28,0x23,0x21,0x22,0x24,0x70,0x21,0x22,0x24,0x6d,0x20,0x21,0x22,0x69,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x15, // LOAD_CONST_STRING 'PassphraseAck' + 0x10,0x16, // LOAD_CONST_STRING 'PassphraseRequest' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x17, // IMPORT_NAME 'trezor.messages' + 0x1c,0x15, // IMPORT_FROM 'PassphraseAck' + 0xc0, // STORE_FAST 0 + 0x1c,0x16, // IMPORT_FROM 'PassphraseRequest' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x18, // LOAD_CONST_STRING 'request_passphrase_on_host' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x18, // IMPORT_FROM 'request_passphrase_on_host' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x19, // LOAD_CONST_STRING 'call' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1a, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x19, // IMPORT_FROM 'call' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x13,0x1b, // LOAD_ATTR 'passphrase' + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x13,0x1c, // LOAD_ATTR 'on_device' + 0x44,0x61, // POP_JUMP_IF_FALSE 33 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'request_passphrase_on_device' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x10, // IMPORT_FROM 'request_passphrase_on_device' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb7, // LOAD_FAST 7 + 0x22,0x32, // LOAD_CONST_SMALL_INT 50 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE + 0xb6, // LOAD_FAST 6 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb6, // LOAD_FAST 6 + 0x44,0xd2,0x80, // POP_JUMP_IF_FALSE 82 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1d, // LOAD_CONST_STRING 'confirm_action' + 0x10,0x1e, // LOAD_CONST_STRING 'confirm_blob' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x11, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x1d, // IMPORT_FROM 'confirm_action' + 0xc8, // STORE_FAST 8 + 0x1c,0x1e, // IMPORT_FROM 'confirm_blob' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x12,0x23, // LOAD_GLOBAL 'storage_device' + 0x14,0x1f, // LOAD_METHOD 'get_hide_passphrase_from_host' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xca, // STORE_FAST 10 + 0xb8, // LOAD_FAST 8 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x10,0x20, // LOAD_CONST_STRING 'description' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x14,0x13, // LOAD_METHOD 'format' + 0xba, // LOAD_FAST 10 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x60, // JUMP 32 + 0xb8, // LOAD_FAST 8 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x10,0x20, // LOAD_CONST_STRING 'description' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x10,0x21, // LOAD_CONST_STRING 'verb' + 0x10,0x22, // LOAD_CONST_STRING 'Continue' + 0x34,0x84,0x02, // CALL_FUNCTION 514 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0xb6, // LOAD_FAST 6 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_passphrase__request_on_host = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_passphrase__request_on_host, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 236, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_apps_common_passphrase__request_on_host + 4, + .line_info_top = fun_data_apps_common_passphrase__request_on_host + 39, + .opcodes = fun_data_apps_common_passphrase__request_on_host + 39, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_passphrase__lt_module_gt_[] = { + &raw_code_apps_common_passphrase_is_enabled, + &raw_code_apps_common_passphrase_get, + &raw_code_apps_common_passphrase__request_on_host, +}; + +static const mp_raw_code_t raw_code_apps_common_passphrase__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_passphrase__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = (void *)&children_apps_common_passphrase__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_common_passphrase__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_common_passphrase__lt_module_gt_ + 11, + .opcodes = fun_data_apps_common_passphrase__lt_module_gt_ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_common_passphrase[37] = { + MP_QSTR_apps_slash_common_slash_passphrase_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_storage_dot_device, + MP_QSTR_device, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_is_enabled, + MP_QSTR_is_passphrase_enabled, + MP_QSTR_get, + MP_QSTR_workflow, + MP_QSTR_trezor, + MP_QSTR_, + MP_QSTR_close_others, + MP_QSTR_get_passphrase_always_on_device, + MP_QSTR_request_passphrase_on_device, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_encode, + MP_QSTR_format, + MP_QSTR__request_on_host, + MP_QSTR_PassphraseAck, + MP_QSTR_PassphraseRequest, + MP_QSTR_trezor_dot_messages, + MP_QSTR_request_passphrase_on_host, + MP_QSTR_call, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_passphrase, + MP_QSTR_on_device, + MP_QSTR_confirm_action, + MP_QSTR_confirm_blob, + MP_QSTR_get_hide_passphrase_from_host, + MP_QSTR_description, + MP_QSTR_verb, + MP_QSTR_Continue, + MP_QSTR_storage_device, + MP_QSTR_len, +}; + +// constants +static const mp_obj_str_t const_obj_apps_common_passphrase_0 = {{&mp_type_str}, 12248, 37, (const byte*)"\x4d\x61\x78\x69\x6d\x75\x6d\x20\x70\x61\x73\x73\x70\x68\x72\x61\x73\x65\x20\x6c\x65\x6e\x67\x74\x68\x20\x69\x73\x20\x7b\x7d\x20\x62\x79\x74\x65\x73"}; +static const mp_obj_str_t const_obj_apps_common_passphrase_1 = {{&mp_type_str}, 52044, 41, (const byte*)"\x50\x61\x73\x73\x70\x68\x72\x61\x73\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x77\x68\x65\x6e\x20\x69\x74\x20\x73\x68\x6f\x75\x6c\x64\x20\x6e\x6f\x74\x20\x62\x65"}; +static const mp_obj_str_t const_obj_apps_common_passphrase_2 = {{&mp_type_str}, 7085, 92, (const byte*)"\x50\x61\x73\x73\x70\x68\x72\x61\x73\x65\x20\x6e\x6f\x74\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x61\x6e\x64\x20\x6f\x6e\x5f\x64\x65\x76\x69\x63\x65\x20\x69\x73\x20\x46\x61\x6c\x73\x65\x2e\x20\x55\x73\x65\x20\x65\x6d\x70\x74\x79\x20\x73\x74\x72\x69\x6e\x67\x20\x74\x6f\x20\x73\x65\x74\x20\x61\x6e\x20\x65\x6d\x70\x74\x79\x20\x70\x61\x73\x73\x70\x68\x72\x61\x73\x65\x2e"}; +static const mp_obj_str_t const_obj_apps_common_passphrase_3 = {{&mp_type_str}, 62506, 94, (const byte*)"\x50\x61\x73\x73\x70\x68\x72\x61\x73\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x62\x79\x20\x68\x6f\x73\x74\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x75\x73\x65\x64\x20\x62\x75\x74\x20\x77\x69\x6c\x6c\x20\x6e\x6f\x74\x20\x62\x65\x20\x64\x69\x73\x70\x6c\x61\x79\x65\x64\x20\x64\x75\x65\x20\x74\x6f\x20\x74\x68\x65\x20\x64\x65\x76\x69\x63\x65\x20\x73\x65\x74\x74\x69\x6e\x67\x73\x2e"}; +static const mp_obj_str_t const_obj_apps_common_passphrase_8 = {{&mp_type_str}, 56296, 37, (const byte*)"\x4e\x65\x78\x74\x20\x73\x63\x72\x65\x65\x6e\x20\x77\x69\x6c\x6c\x20\x73\x68\x6f\x77\x20\x74\x68\x65\x20\x70\x61\x73\x73\x70\x68\x72\x61\x73\x65\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_common_passphrase[11] = { + MP_ROM_PTR(&const_obj_apps_common_passphrase_0), + MP_ROM_PTR(&const_obj_apps_common_passphrase_1), + MP_ROM_PTR(&const_obj_apps_common_passphrase_2), + MP_ROM_PTR(&const_obj_apps_common_passphrase_3), + MP_ROM_QSTR(MP_QSTR_passphrase_host1_hidden), + MP_ROM_QSTR(MP_QSTR_Hidden_space_wallet), + MP_ROM_QSTR(MP_QSTR_Access_space_hidden_space_wallet_question__0x0a__brace_open__brace_close_), + MP_ROM_QSTR(MP_QSTR_passphrase_host1), + MP_ROM_PTR(&const_obj_apps_common_passphrase_8), + MP_ROM_QSTR(MP_QSTR_passphrase_host2), + MP_ROM_QSTR(MP_QSTR_Confirm_space_passphrase), +}; + +static const mp_frozen_module_t frozen_module_apps_common_passphrase = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_common_passphrase, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_common_passphrase, + }, + .rc = &raw_code_apps_common_passphrase__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_common_paths +// - original source file: build/firmware/src/apps/common/paths.mpy +// - frozen file name: apps/common/paths.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths__lt_module_gt_ +static const byte fun_data_apps_common_paths__lt_module_gt_[140] = { + 0x10,0x42, // prelude + 0x01, // names: + 0x6c,0x24,0x44,0x80,0x15,0x89,0x0d,0x99,0x12,0x89,0x08,0x44,0x64,0x64,0x44,0x64,0x84,0x0a,0x64,0x60,0x64,0x20,0x64,0x20,0x84,0x0d,0x64,0x20,0x84,0x09,0x84,0x11, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x43, // STORE_NAME 'HARDENED' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x16,0x44, // STORE_NAME 'SLIP25_PURPOSE' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x04, // LOAD_CONST_STRING 'Interval' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x04, // STORE_NAME 'Interval' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x05, // LOAD_CONST_STRING 'PathSchema' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x05, // STORE_NAME 'PathSchema' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x02, // MAKE_FUNCTION 2 + 0x10,0x06, // LOAD_CONST_STRING 'AlwaysMatchingSchema' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x06, // STORE_NAME 'AlwaysMatchingSchema' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x16,0x45, // STORE_NAME 'PATTERN_BIP44' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x16,0x46, // STORE_NAME 'PATTERN_BIP44_PUBKEY' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x16,0x47, // STORE_NAME 'PATTERN_SEP5' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x16,0x48, // STORE_NAME 'PATTERN_SEP5_LEDGER_LIVE_LEGACY' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x16,0x49, // STORE_NAME 'PATTERN_CASA' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x0f, // STORE_NAME 'validate_path' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x12, // STORE_NAME 'show_path_warning' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x15, // STORE_NAME 'is_hardened' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x16, // STORE_NAME 'path_is_hardened' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x17, // STORE_NAME 'address_n_to_str' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x1c, // STORE_NAME 'unharden' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x1d, // STORE_NAME 'get_account_name' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x20, // STORE_NAME '_get_account_num' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x21, // STORE_NAME '_get_account_num_single' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_paths__lt_module_gt_ +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_Interval +static const byte fun_data_apps_common_paths_Interval[26] = { + 0x00,0x0c, // prelude + 0x04, // names: Interval + 0x88,0x1c,0x40,0x64,0x20, // code info + 0x11,0x4a, // LOAD_NAME '__name__' + 0x16,0x4b, // STORE_NAME '__module__' + 0x10,0x04, // LOAD_CONST_STRING 'Interval' + 0x16,0x4c, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x27, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x2a, // STORE_NAME '__contains__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_paths_Interval +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_Interval___init__ +static const byte fun_data_apps_common_paths_Interval___init__[19] = { + 0x23,0x0e, // prelude + 0x27,0x5c,0x28,0x29, // names: __init__, self, min, max + 0x80,0x1f,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x28, // STORE_ATTR 'min' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x29, // STORE_ATTR 'max' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_Interval___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_common_paths_Interval___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_common_paths_Interval___init__ + 6, + .line_info_top = fun_data_apps_common_paths_Interval___init__ + 9, + .opcodes = fun_data_apps_common_paths_Interval___init__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths_Interval +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_Interval___contains__ +static const byte fun_data_apps_common_paths_Interval___contains__[38] = { + 0x22,0x0e, // prelude + 0x2a,0x5c,0x5d, // names: __contains__, self, x + 0x80,0x23,0x29,0x22, // code info + 0x12,0x59, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x5e, // LOAD_GLOBAL 'int' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'min' + 0xb1, // LOAD_FAST 1 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'max' + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_Interval___contains__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_paths_Interval___contains__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_common_paths_Interval___contains__ + 5, + .line_info_top = fun_data_apps_common_paths_Interval___contains__ + 9, + .opcodes = fun_data_apps_common_paths_Interval___contains__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_paths_Interval[] = { + &raw_code_apps_common_paths_Interval___init__, + &raw_code_apps_common_paths_Interval___contains__, +}; + +static const mp_raw_code_t raw_code_apps_common_paths_Interval = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_paths_Interval, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = (void *)&children_apps_common_paths_Interval, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_common_paths_Interval + 3, + .line_info_top = fun_data_apps_common_paths_Interval + 8, + .opcodes = fun_data_apps_common_paths_Interval + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths__lt_module_gt_ +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_PathSchema +static const byte fun_data_apps_common_paths_PathSchema[151] = { + 0x18,0x3e, // prelude + 0x05, // names: PathSchema + 0x88,0x29,0x80,0x2d,0x22,0x25,0x25,0x67,0x22,0x2a,0x2b,0x6c,0x44,0x68,0x20,0x88,0x0c,0x60,0x8a,0x1f,0x88,0x3e,0x84,0x0b,0x84,0x13,0x64,0x40,0x84,0x1f, // code info + 0x11,0x4a, // LOAD_NAME '__name__' + 0x16,0x4b, // STORE_NAME '__module__' + 0x10,0x05, // LOAD_CONST_STRING 'PathSchema' + 0x16,0x4c, // STORE_NAME '__qualname__' + 0x2c,0x03, // BUILD_MAP 3 + 0x10,0x07, // LOAD_CONST_STRING '0-100' + 0x10,0x08, // LOAD_CONST_STRING 'account' + 0x62, // STORE_MAP + 0x10,0x09, // LOAD_CONST_STRING '0,1' + 0x10,0x0a, // LOAD_CONST_STRING 'change' + 0x62, // STORE_MAP + 0x10,0x0b, // LOAD_CONST_STRING '0-1000000' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x62, // STORE_MAP + 0x16,0x36, // STORE_NAME 'REPLACEMENTS' + 0x2c,0x03, // BUILD_MAP 3 + 0x11,0x04, // LOAD_NAME 'Interval' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x02, // CALL_FUNCTION 2 + 0x10,0x0c, // LOAD_CONST_STRING '*' + 0x62, // STORE_MAP + 0x11,0x04, // LOAD_NAME 'Interval' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x02, // CALL_FUNCTION 2 + 0x10,0x0d, // LOAD_CONST_STRING "*'" + 0x62, // STORE_MAP + 0x11,0x04, // LOAD_NAME 'Interval' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x02, // CALL_FUNCTION 2 + 0x10,0x0e, // LOAD_CONST_STRING '**' + 0x62, // STORE_MAP + 0x16,0x32, // STORE_NAME 'WILDCARD_RANGES' + 0x2a,0x00, // BUILD_TUPLE 0 + 0x16,0x2d, // STORE_NAME '_EMPTY_TUPLE' + 0x11,0x4d, // LOAD_NAME 'staticmethod' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x2b, // STORE_NAME '_parse_hardened' + 0x11,0x4d, // LOAD_NAME 'staticmethod' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x2c, // STORE_NAME '_copy_container' + 0x2a,0x00, // BUILD_TUPLE 0 + 0x50, // LOAD_CONST_FALSE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x27, // STORE_NAME '__init__' + 0x11,0x4e, // LOAD_NAME 'classmethod' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x22, // STORE_NAME 'parse' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x3d, // STORE_NAME 'copy' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x23, // STORE_NAME 'match' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x3e, // STORE_NAME 'set_never_matching' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x3f, // STORE_NAME 'restrict' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_paths_PathSchema +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_PathSchema__parse_hardened +static const byte fun_data_apps_common_paths_PathSchema__parse_hardened[15] = { + 0x11,0x08, // prelude + 0x2b,0x5f, // names: _parse_hardened, s + 0x80,0x66, // code info + 0x12,0x5e, // LOAD_GLOBAL 'int' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xed, // BINARY_OP 22 __or__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_PathSchema__parse_hardened = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_paths_PathSchema__parse_hardened, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_apps_common_paths_PathSchema__parse_hardened + 4, + .line_info_top = fun_data_apps_common_paths_PathSchema__parse_hardened + 6, + .opcodes = fun_data_apps_common_paths_PathSchema__parse_hardened + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths_PathSchema +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_PathSchema__copy_container +static const byte fun_data_apps_common_paths_PathSchema__copy_container[85] = { + 0x21,0x14, // prelude + 0x2c,0x60, // names: _copy_container, container + 0x80,0x6c,0x29,0x2f,0x29,0x2b,0x29,0x2b, // code info + 0x12,0x59, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x04, // LOAD_GLOBAL 'Interval' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x12,0x04, // LOAD_GLOBAL 'Interval' + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'min' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xf2, // BINARY_OP 27 __add__ + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'max' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x12,0x59, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x61, // LOAD_GLOBAL 'set' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x61, // LOAD_GLOBAL 'set' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0x12,0x59, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x62, // LOAD_GLOBAL 'tuple' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x62, // LOAD_GLOBAL 'tuple' + 0x32,0x01, // MAKE_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0x12,0x63, // LOAD_GLOBAL 'RuntimeError' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_paths_PathSchema__copy_container +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_PathSchema__copy_container__lt_genexpr_gt_ +static const byte fun_data_apps_common_paths_PathSchema__copy_container__lt_genexpr_gt_[23] = { + 0xb9,0x40,0x08, // prelude + 0x40,0x0c, // names: , * + 0x80,0x6f, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x08, // FOR_ITER 8 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xf2, // BINARY_OP 27 __add__ + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x36, // JUMP -10 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_PathSchema__copy_container__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_paths_PathSchema__copy_container__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_apps_common_paths_PathSchema__copy_container__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_apps_common_paths_PathSchema__copy_container__lt_genexpr_gt_ + 7, + .opcodes = fun_data_apps_common_paths_PathSchema__copy_container__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths_PathSchema__copy_container +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_PathSchema__copy_container__lt_genexpr_gt_2 +static const byte fun_data_apps_common_paths_PathSchema__copy_container__lt_genexpr_gt_2[23] = { + 0xb9,0x40,0x08, // prelude + 0x40,0x0c, // names: , * + 0x80,0x71, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x08, // FOR_ITER 8 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xf2, // BINARY_OP 27 __add__ + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x36, // JUMP -10 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_PathSchema__copy_container__lt_genexpr_gt_2 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_paths_PathSchema__copy_container__lt_genexpr_gt_2, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_apps_common_paths_PathSchema__copy_container__lt_genexpr_gt_2 + 5, + .line_info_top = fun_data_apps_common_paths_PathSchema__copy_container__lt_genexpr_gt_2 + 7, + .opcodes = fun_data_apps_common_paths_PathSchema__copy_container__lt_genexpr_gt_2 + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_paths_PathSchema__copy_container[] = { + &raw_code_apps_common_paths_PathSchema__copy_container__lt_genexpr_gt_, + &raw_code_apps_common_paths_PathSchema__copy_container__lt_genexpr_gt_2, +}; + +static const mp_raw_code_t raw_code_apps_common_paths_PathSchema__copy_container = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_paths_PathSchema__copy_container, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 85, + #endif + .children = (void *)&children_apps_common_paths_PathSchema__copy_container, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 44, + .line_info = fun_data_apps_common_paths_PathSchema__copy_container + 4, + .line_info_top = fun_data_apps_common_paths_PathSchema__copy_container + 12, + .opcodes = fun_data_apps_common_paths_PathSchema__copy_container + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths_PathSchema +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_PathSchema___init__ +static const byte fun_data_apps_common_paths_PathSchema___init__[89] = { + 0xd0,0x84,0x01,0x1e, // prelude + 0x27,0x5c,0x2e,0x2f,0x3c, // names: __init__, self, schema, trailing_components, compact + 0x80,0x7a,0x80,0x12,0x23,0x2e,0x2a,0x36,0x6b,0x24, // code info + 0xb3, // LOAD_FAST 3 + 0x44,0x79, // POP_JUMP_IF_FALSE 57 + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR '_EMPTY_TUPLE' + 0x2b,0x01, // BUILD_LIST 1 + 0x12,0x64, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf4, // BINARY_OP 29 __mul__ + 0xb0, // LOAD_FAST 0 + 0x18,0x2e, // STORE_ATTR 'schema' + 0x12,0x64, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x51, // JUMP 17 + 0x57, // DUP_TOP + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x2c, // LOAD_METHOD '_copy_container' + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x2e, // LOAD_ATTR 'schema' + 0xb4, // LOAD_FAST 4 + 0x56, // STORE_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2a, // POP_JUMP_IF_TRUE -22 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x2c, // LOAD_METHOD '_copy_container' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'trailing_components' + 0x42,0x48, // JUMP 8 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x2e, // STORE_ATTR 'schema' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'trailing_components' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_PathSchema___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_common_paths_PathSchema___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 89, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_common_paths_PathSchema___init__ + 9, + .line_info_top = fun_data_apps_common_paths_PathSchema___init__ + 19, + .opcodes = fun_data_apps_common_paths_PathSchema___init__ + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths_PathSchema +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_PathSchema_parse +static const byte fun_data_apps_common_paths_PathSchema_parse[309] = { + 0xa3,0x10,0x4f, // prelude + 0x22,0x65,0x57,0x58, // names: parse, cls, pattern, slip44_id + 0x80,0x98,0x60,0x40,0x29,0x23,0x4d,0x29,0x44,0x23,0x43,0x26,0x27,0x6f,0x20,0x43,0x26,0x67,0x28,0x27,0x47,0x64,0x30,0x67,0x2a,0x44,0x46,0x32,0x4d,0x46,0x58,0x46,0x72,0x20,0x4e,0x0a, // code info + 0xb1, // LOAD_FAST 1 + 0x14,0x30, // LOAD_METHOD 'startswith' + 0x10,0x19, // LOAD_CONST_STRING 'm/' + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x12,0x5b, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x14,0x31, // LOAD_METHOD 'split' + 0x10,0x1a, // LOAD_CONST_STRING '/' + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x12,0x59, // LOAD_GLOBAL 'isinstance' + 0xb2, // LOAD_FAST 2 + 0x12,0x5e, // LOAD_GLOBAL 'int' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb2, // LOAD_FAST 2 + 0x2a,0x01, // BUILD_TUPLE 1 + 0xc2, // STORE_FAST 2 + 0x2b,0x00, // BUILD_LIST 0 + 0xc4, // STORE_FAST 4 + 0x2a,0x00, // BUILD_TUPLE 0 + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x5f, // GET_ITER_STACK + 0x4b,0xcf,0x01, // FOR_ITER 207 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x32, // LOAD_ATTR 'WILDCARD_RANGES' + 0xdd, // BINARY_OP 6 + 0x44,0x5f, // POP_JUMP_IF_FALSE 31 + 0x12,0x64, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x64, // LOAD_GLOBAL 'len' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x5b, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x32, // LOAD_ATTR 'WILDCARD_RANGES' + 0xb6, // LOAD_FAST 6 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x42,0xa8,0x81, // JUMP 168 + 0xb6, // LOAD_FAST 6 + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x55, // LOAD_SUBSCR + 0x10,0x33, // LOAD_CONST_STRING "'" + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb6, // LOAD_FAST 6 + 0x51, // LOAD_CONST_NONE + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR '_parse_hardened' + 0x27,0x0a, // STORE_DEREF 10 + 0x42,0x44, // JUMP 4 + 0x12,0x5e, // LOAD_GLOBAL 'int' + 0x27,0x0a, // STORE_DEREF 10 + 0xb6, // LOAD_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x10,0x34, // LOAD_CONST_STRING '[' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb6, // LOAD_FAST 6 + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x55, // LOAD_SUBSCR + 0x10,0x35, // LOAD_CONST_STRING ']' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'REPLACEMENTS' + 0x14,0x37, // LOAD_METHOD 'get' + 0xb6, // LOAD_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x36,0x02, // CALL_METHOD 2 + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x13,0x38, // LOAD_ATTR 'append' + 0xc7, // STORE_FAST 7 + 0x10,0x39, // LOAD_CONST_STRING '-' + 0xb6, // LOAD_FAST 6 + 0xdd, // BINARY_OP 6 + 0x44,0x5f, // POP_JUMP_IF_FALSE 31 + 0xba, // LOAD_FAST 10 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xb6, // LOAD_FAST 6 + 0x14,0x31, // LOAD_METHOD 'split' + 0x10,0x39, // LOAD_CONST_STRING '-' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc8, // STORE_FAST 8 + 0xc9, // STORE_FAST 9 + 0xb7, // LOAD_FAST 7 + 0x12,0x04, // LOAD_GLOBAL 'Interval' + 0xb8, // LOAD_FAST 8 + 0xb9, // LOAD_FAST 9 + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0xc1,0x80, // JUMP 65 + 0x10,0x3a, // LOAD_CONST_STRING ',' + 0xb6, // LOAD_FAST 6 + 0xdd, // BINARY_OP 6 + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0xb7, // LOAD_FAST 7 + 0x12,0x61, // LOAD_GLOBAL 'set' + 0xba, // LOAD_FAST 10 + 0x20,0x01,0x01, // MAKE_CLOSURE 1 + 0xb6, // LOAD_FAST 6 + 0x14,0x31, // LOAD_METHOD 'split' + 0x10,0x3a, // LOAD_CONST_STRING ',' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x63, // JUMP 35 + 0xb6, // LOAD_FAST 6 + 0x10,0x3b, // LOAD_CONST_STRING 'coin_type' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb7, // LOAD_FAST 7 + 0x12,0x61, // LOAD_GLOBAL 'set' + 0xba, // LOAD_FAST 10 + 0x20,0x02,0x01, // MAKE_CLOSURE 2 + 0xb2, // LOAD_FAST 2 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x4b, // JUMP 11 + 0xb7, // LOAD_FAST 7 + 0x25,0x0a, // LOAD_DEREF 10 + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0xae,0x7e, // JUMP -210 + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x10,0x3c, // LOAD_CONST_STRING 'compact' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x63, // RETURN_VALUE +}; +// child of apps_common_paths_PathSchema_parse +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_PathSchema_parse__lt_listcomp_gt_ +static const byte fun_data_apps_common_paths_PathSchema_parse__lt_listcomp_gt_[24] = { + 0x4a,0x0a, // prelude + 0x42,0x0c,0x0c, // names: , *, * + 0x80,0xc3, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc2, // STORE_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x34, // JUMP -12 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_PathSchema_parse__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_paths_PathSchema_parse__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 66, + .line_info = fun_data_apps_common_paths_PathSchema_parse__lt_listcomp_gt_ + 5, + .line_info_top = fun_data_apps_common_paths_PathSchema_parse__lt_listcomp_gt_ + 7, + .opcodes = fun_data_apps_common_paths_PathSchema_parse__lt_listcomp_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths_PathSchema_parse +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_PathSchema_parse__lt_genexpr_gt_ +static const byte fun_data_apps_common_paths_PathSchema_parse__lt_genexpr_gt_[26] = { + 0xc2,0x40,0x0a, // prelude + 0x40,0x0c,0x0c, // names: , *, * + 0x80,0xc8, // code info + 0x53, // LOAD_NULL + 0xb1, // LOAD_FAST 1 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0a, // FOR_ITER 10 + 0xc2, // STORE_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_PathSchema_parse__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_paths_PathSchema_parse__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_apps_common_paths_PathSchema_parse__lt_genexpr_gt_ + 6, + .line_info_top = fun_data_apps_common_paths_PathSchema_parse__lt_genexpr_gt_ + 8, + .opcodes = fun_data_apps_common_paths_PathSchema_parse__lt_genexpr_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths_PathSchema_parse +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_PathSchema_parse__lt_genexpr_gt_2 +static const byte fun_data_apps_common_paths_PathSchema_parse__lt_genexpr_gt_2[26] = { + 0xc2,0x40,0x0a, // prelude + 0x40,0x0c,0x0c, // names: , *, * + 0x80,0xcc, // code info + 0x53, // LOAD_NULL + 0xb1, // LOAD_FAST 1 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0a, // FOR_ITER 10 + 0xc2, // STORE_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_PathSchema_parse__lt_genexpr_gt_2 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_paths_PathSchema_parse__lt_genexpr_gt_2, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_apps_common_paths_PathSchema_parse__lt_genexpr_gt_2 + 6, + .line_info_top = fun_data_apps_common_paths_PathSchema_parse__lt_genexpr_gt_2 + 8, + .opcodes = fun_data_apps_common_paths_PathSchema_parse__lt_genexpr_gt_2 + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_paths_PathSchema_parse[] = { + &raw_code_apps_common_paths_PathSchema_parse__lt_listcomp_gt_, + &raw_code_apps_common_paths_PathSchema_parse__lt_genexpr_gt_, + &raw_code_apps_common_paths_PathSchema_parse__lt_genexpr_gt_2, +}; + +static const mp_raw_code_t raw_code_apps_common_paths_PathSchema_parse = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_common_paths_PathSchema_parse, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 309, + #endif + .children = (void *)&children_apps_common_paths_PathSchema_parse, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 21, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_apps_common_paths_PathSchema_parse + 7, + .line_info_top = fun_data_apps_common_paths_PathSchema_parse + 42, + .opcodes = fun_data_apps_common_paths_PathSchema_parse + 43, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths_PathSchema +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_PathSchema_copy +static const byte fun_data_apps_common_paths_PathSchema_copy[23] = { + 0x29,0x0c, // prelude + 0x3d,0x5c, // names: copy, self + 0x80,0xd5,0x80,0x08, // code info + 0x12,0x05, // LOAD_GLOBAL 'PathSchema' + 0xb0, // LOAD_FAST 0 + 0x13,0x2e, // LOAD_ATTR 'schema' + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'trailing_components' + 0x10,0x3c, // LOAD_CONST_STRING 'compact' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_PathSchema_copy = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_paths_PathSchema_copy, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 61, + .line_info = fun_data_apps_common_paths_PathSchema_copy + 4, + .line_info_top = fun_data_apps_common_paths_PathSchema_copy + 8, + .opcodes = fun_data_apps_common_paths_PathSchema_copy + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths_PathSchema +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_PathSchema_match +static const byte fun_data_apps_common_paths_PathSchema_match[82] = { + 0x52,0x1e, // prelude + 0x23,0x5c,0x50, // names: match, self, path + 0x80,0xe1,0x2f,0x42,0x46,0x27,0x26,0x26,0x64,0x25,0x28,0x44, // code info + 0x12,0x64, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x64, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x2e, // LOAD_ATTR 'schema' + 0x34,0x01, // CALL_FUNCTION 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0x12,0x66, // LOAD_GLOBAL 'iter' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x2e, // LOAD_ATTR 'schema' + 0x5f, // GET_ITER_STACK + 0x4b,0x11, // FOR_ITER 17 + 0xc3, // STORE_FAST 3 + 0x12,0x67, // LOAD_GLOBAL 'next' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0x42,0x2d, // JUMP -19 + 0xb2, // LOAD_FAST 2 + 0x5f, // GET_ITER_STACK + 0x4b,0x0d, // FOR_ITER 13 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'trailing_components' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0x42,0x31, // JUMP -15 + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_PathSchema_match = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_paths_PathSchema_match, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 82, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_common_paths_PathSchema_match + 5, + .line_info_top = fun_data_apps_common_paths_PathSchema_match + 17, + .opcodes = fun_data_apps_common_paths_PathSchema_match + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths_PathSchema +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_PathSchema_set_never_matching +static const byte fun_data_apps_common_paths_PathSchema_set_never_matching[21] = { + 0x11,0x0c, // prelude + 0x3e,0x5c, // names: set_never_matching, self + 0x80,0xf3,0x20,0x25, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x2e, // STORE_ATTR 'schema' + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR '_EMPTY_TUPLE' + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'trailing_components' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_PathSchema_set_never_matching = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_paths_PathSchema_set_never_matching, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 62, + .line_info = fun_data_apps_common_paths_PathSchema_set_never_matching + 4, + .line_info_top = fun_data_apps_common_paths_PathSchema_set_never_matching + 8, + .opcodes = fun_data_apps_common_paths_PathSchema_set_never_matching + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths_PathSchema +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_PathSchema_restrict +static const byte fun_data_apps_common_paths_PathSchema_restrict[124] = { + 0x62,0x2a, // prelude + 0x3f,0x5c,0x50, // names: restrict, self, path + 0x80,0xf8,0x60,0x40,0x44,0x2c,0x49,0x28,0x26,0x62,0x24,0x32,0x68,0x40,0x28,0x26,0x42,0x4c, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x2e, // LOAD_ATTR 'schema' + 0xc2, // STORE_FAST 2 + 0x12,0x68, // LOAD_GLOBAL 'enumerate' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x57, // FOR_ITER 87 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x12,0x64, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x6e, // POP_JUMP_IF_FALSE 46 + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x55, // LOAD_SUBSCR + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb0, // LOAD_FAST 0 + 0x14,0x3e, // LOAD_METHOD 'set_never_matching' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0x12,0x59, // LOAD_GLOBAL 'isinstance' + 0xb5, // LOAD_FAST 5 + 0x12,0x62, // LOAD_GLOBAL 'tuple' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x64, // LOAD_GLOBAL 'len' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x2a,0x01, // BUILD_TUPLE 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x56, // STORE_SUBSCR + 0x42,0x59, // JUMP 25 + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'trailing_components' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb0, // LOAD_FAST 0 + 0x14,0x3e, // LOAD_METHOD 'set_never_matching' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x14,0x38, // LOAD_METHOD 'append' + 0xb4, // LOAD_FAST 4 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0xa7,0x7f, // JUMP -89 + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_PathSchema_restrict = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_paths_PathSchema_restrict, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 124, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 63, + .line_info = fun_data_apps_common_paths_PathSchema_restrict + 5, + .line_info_top = fun_data_apps_common_paths_PathSchema_restrict + 23, + .opcodes = fun_data_apps_common_paths_PathSchema_restrict + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_paths_PathSchema[] = { + &raw_code_apps_common_paths_PathSchema__parse_hardened, + &raw_code_apps_common_paths_PathSchema__copy_container, + &raw_code_apps_common_paths_PathSchema___init__, + &raw_code_apps_common_paths_PathSchema_parse, + &raw_code_apps_common_paths_PathSchema_copy, + &raw_code_apps_common_paths_PathSchema_match, + &raw_code_apps_common_paths_PathSchema_set_never_matching, + &raw_code_apps_common_paths_PathSchema_restrict, +}; + +static const mp_raw_code_t raw_code_apps_common_paths_PathSchema = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_paths_PathSchema, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 151, + #endif + .children = (void *)&children_apps_common_paths_PathSchema, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 8, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_common_paths_PathSchema + 3, + .line_info_top = fun_data_apps_common_paths_PathSchema + 33, + .opcodes = fun_data_apps_common_paths_PathSchema + 33, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths__lt_module_gt_ +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_AlwaysMatchingSchema +static const byte fun_data_apps_common_paths_AlwaysMatchingSchema[23] = { + 0x08,0x06, // prelude + 0x06, // names: AlwaysMatchingSchema + 0x98,0x3b, // code info + 0x11,0x4a, // LOAD_NAME '__name__' + 0x16,0x4b, // STORE_NAME '__module__' + 0x10,0x06, // LOAD_CONST_STRING 'AlwaysMatchingSchema' + 0x16,0x4c, // STORE_NAME '__qualname__' + 0x11,0x4d, // LOAD_NAME 'staticmethod' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x23, // STORE_NAME 'match' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_paths_AlwaysMatchingSchema +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_AlwaysMatchingSchema_match +static const byte fun_data_apps_common_paths_AlwaysMatchingSchema_match[8] = { + 0x09,0x08, // prelude + 0x23,0x50, // names: match, path + 0x90,0x3d, // code info + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_AlwaysMatchingSchema_match = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_paths_AlwaysMatchingSchema_match, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 8, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_common_paths_AlwaysMatchingSchema_match + 4, + .line_info_top = fun_data_apps_common_paths_AlwaysMatchingSchema_match + 6, + .opcodes = fun_data_apps_common_paths_AlwaysMatchingSchema_match + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_paths_AlwaysMatchingSchema[] = { + &raw_code_apps_common_paths_AlwaysMatchingSchema_match, +}; + +static const mp_raw_code_t raw_code_apps_common_paths_AlwaysMatchingSchema = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_paths_AlwaysMatchingSchema, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = (void *)&children_apps_common_paths_AlwaysMatchingSchema, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_common_paths_AlwaysMatchingSchema + 3, + .line_info_top = fun_data_apps_common_paths_AlwaysMatchingSchema + 5, + .opcodes = fun_data_apps_common_paths_AlwaysMatchingSchema + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths__lt_module_gt_ +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_validate_path +static const byte fun_data_apps_common_paths_validate_path[45] = { + 0xaa,0xc0,0x80,0x40,0x0e, // prelude + 0x0f,0x4f,0x50, // names: validate_path, keychain, path + 0x90,0x54,0x27,0x2f, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x10, // LOAD_METHOD 'verify_path' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x11, // LOAD_METHOD 'is_in_keychain' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x51, // LOAD_GLOBAL 'all' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x12,0x12, // LOAD_GLOBAL 'show_path_warning' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_validate_path = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x05, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_paths_validate_path, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 5, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_common_paths_validate_path + 8, + .line_info_top = fun_data_apps_common_paths_validate_path + 12, + .opcodes = fun_data_apps_common_paths_validate_path + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths__lt_module_gt_ +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_show_path_warning +static const byte fun_data_apps_common_paths_show_path_warning[33] = { + 0xa1,0x40,0x0a, // prelude + 0x12,0x50, // names: show_path_warning, path + 0x90,0x5a,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'confirm_path_warning' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x13, // IMPORT_FROM 'confirm_path_warning' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x12,0x17, // LOAD_GLOBAL 'address_n_to_str' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_show_path_warning = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_paths_show_path_warning, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_common_paths_show_path_warning + 5, + .line_info_top = fun_data_apps_common_paths_show_path_warning + 8, + .opcodes = fun_data_apps_common_paths_show_path_warning + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths__lt_module_gt_ +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_is_hardened +static const byte fun_data_apps_common_paths_is_hardened[15] = { + 0x19,0x08, // prelude + 0x15,0x52, // names: is_hardened, i + 0x90,0x60, // code info + 0x12,0x53, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xef, // BINARY_OP 24 __and__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_is_hardened = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_paths_is_hardened, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_common_paths_is_hardened + 4, + .line_info_top = fun_data_apps_common_paths_is_hardened + 6, + .opcodes = fun_data_apps_common_paths_is_hardened + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths__lt_module_gt_ +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_path_is_hardened +static const byte fun_data_apps_common_paths_path_is_hardened[17] = { + 0x19,0x08, // prelude + 0x16,0x54, // names: path_is_hardened, address_n + 0x90,0x64, // code info + 0x12,0x51, // LOAD_GLOBAL 'all' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +// child of apps_common_paths_path_is_hardened +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_path_is_hardened__lt_genexpr_gt_ +static const byte fun_data_apps_common_paths_path_is_hardened__lt_genexpr_gt_[25] = { + 0xb9,0x40,0x08, // prelude + 0x40,0x0c, // names: , * + 0x90,0x64, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0a, // FOR_ITER 10 + 0xc1, // STORE_FAST 1 + 0x12,0x15, // LOAD_GLOBAL 'is_hardened' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_path_is_hardened__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_paths_path_is_hardened__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_apps_common_paths_path_is_hardened__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_apps_common_paths_path_is_hardened__lt_genexpr_gt_ + 7, + .opcodes = fun_data_apps_common_paths_path_is_hardened__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_paths_path_is_hardened[] = { + &raw_code_apps_common_paths_path_is_hardened__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_common_paths_path_is_hardened = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_paths_path_is_hardened, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = (void *)&children_apps_common_paths_path_is_hardened, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_apps_common_paths_path_is_hardened + 4, + .line_info_top = fun_data_apps_common_paths_path_is_hardened + 6, + .opcodes = fun_data_apps_common_paths_path_is_hardened + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths__lt_module_gt_ +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_address_n_to_str +static const byte fun_data_apps_common_paths_address_n_to_str[39] = { + 0x31,0x11, // prelude + 0x17,0x54, // names: address_n_to_str, address_n + 0x90,0x68,0x64,0x60,0x23,0x43,0x01, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x27,0x01, // STORE_DEREF 1 + 0xb0, // LOAD_FAST 0 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x10,0x18, // LOAD_CONST_STRING 'm' + 0x63, // RETURN_VALUE + 0x10,0x19, // LOAD_CONST_STRING 'm/' + 0x10,0x1a, // LOAD_CONST_STRING '/' + 0x14,0x1b, // LOAD_METHOD 'join' + 0xb1, // LOAD_FAST 1 + 0x20,0x01,0x01, // MAKE_CLOSURE 1 + 0xb0, // LOAD_FAST 0 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +// child of apps_common_paths_address_n_to_str +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_address_n_to_str__path_item +static const byte fun_data_apps_common_paths_address_n_to_str__path_item[34] = { + 0x19,0x0c, // prelude + 0x41,0x52, // names: _path_item, i + 0x90,0x69,0x26,0x4c, // code info + 0xb0, // LOAD_FAST 0 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xef, // BINARY_OP 24 __and__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x5a, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xee, // BINARY_OP 23 __xor__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x33, // LOAD_CONST_STRING "'" + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE + 0x12,0x5a, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_address_n_to_str__path_item = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_paths_address_n_to_str__path_item, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 65, + .line_info = fun_data_apps_common_paths_address_n_to_str__path_item + 4, + .line_info_top = fun_data_apps_common_paths_address_n_to_str__path_item + 8, + .opcodes = fun_data_apps_common_paths_address_n_to_str__path_item + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths_address_n_to_str +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_address_n_to_str__lt_genexpr_gt_ +static const byte fun_data_apps_common_paths_address_n_to_str__lt_genexpr_gt_[26] = { + 0xc2,0x40,0x0a, // prelude + 0x40,0x0c,0x0c, // names: , *, * + 0x90,0x71, // code info + 0x53, // LOAD_NULL + 0xb1, // LOAD_FAST 1 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0a, // FOR_ITER 10 + 0xc2, // STORE_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_address_n_to_str__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_paths_address_n_to_str__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_apps_common_paths_address_n_to_str__lt_genexpr_gt_ + 6, + .line_info_top = fun_data_apps_common_paths_address_n_to_str__lt_genexpr_gt_ + 8, + .opcodes = fun_data_apps_common_paths_address_n_to_str__lt_genexpr_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_paths_address_n_to_str[] = { + &raw_code_apps_common_paths_address_n_to_str__path_item, + &raw_code_apps_common_paths_address_n_to_str__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_common_paths_address_n_to_str = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_paths_address_n_to_str, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = (void *)&children_apps_common_paths_address_n_to_str, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_common_paths_address_n_to_str + 4, + .line_info_top = fun_data_apps_common_paths_address_n_to_str + 10, + .opcodes = fun_data_apps_common_paths_address_n_to_str + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths__lt_module_gt_ +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_unharden +static const byte fun_data_apps_common_paths_unharden[13] = { + 0x19,0x08, // prelude + 0x1c,0x55, // names: unharden, item + 0x90,0x75, // code info + 0xb0, // LOAD_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xef, // BINARY_OP 24 __and__ + 0xee, // BINARY_OP 23 __xor__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_unharden = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_paths_unharden, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_apps_common_paths_unharden + 4, + .line_info_top = fun_data_apps_common_paths_unharden + 6, + .opcodes = fun_data_apps_common_paths_unharden + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths__lt_module_gt_ +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths_get_account_name +static const byte fun_data_apps_common_paths_get_account_name[37] = { + 0xc0,0x04,0x14, // prelude + 0x1d,0x56,0x54,0x57,0x58, // names: get_account_name, coin, address_n, pattern, slip44_id + 0x90,0x7b,0x28,0x25,0x22, // code info + 0x12,0x20, // LOAD_GLOBAL '_get_account_num' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x10,0x1e, // LOAD_CONST_STRING '{} #{}' + 0x14,0x1f, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths_get_account_name = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_common_paths_get_account_name, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_apps_common_paths_get_account_name + 8, + .line_info_top = fun_data_apps_common_paths_get_account_name + 13, + .opcodes = fun_data_apps_common_paths_get_account_name + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths__lt_module_gt_ +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths__get_account_num +static const byte fun_data_apps_common_paths__get_account_num[58] = { + 0x6f,0x18, // prelude + 0x20,0x54,0x57,0x58, // names: _get_account_num, address_n, pattern, slip44_id + 0x90,0x84,0x29,0x64,0x25,0x22,0x51,0x65, // code info + 0x12,0x59, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x5a, // LOAD_GLOBAL 'str' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb1, // LOAD_FAST 1 + 0x2b,0x01, // BUILD_LIST 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x19, // FOR_ITER 25 + 0xc3, // STORE_FAST 3 + 0x48,0x0a, // SETUP_EXCEPT 10 + 0x12,0x21, // LOAD_GLOBAL '_get_account_num_single' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE + 0x4a,0x0a, // POP_EXCEPT_JUMP 10 + 0x57, // DUP_TOP + 0x12,0x5b, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x59, // POP_TOP + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x42,0x25, // JUMP -27 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths__get_account_num = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_common_paths__get_account_num, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 58, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_common_paths__get_account_num + 6, + .line_info_top = fun_data_apps_common_paths__get_account_num + 14, + .opcodes = fun_data_apps_common_paths__get_account_num + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_paths__lt_module_gt_ +// frozen bytecode for file apps/common/paths.py, scope apps_common_paths__get_account_num_single +static const byte fun_data_apps_common_paths__get_account_num_single[88] = { + 0x53,0x1e, // prelude + 0x21,0x54,0x57,0x58, // names: _get_account_num_single, address_n, pattern, slip44_id + 0x90,0x94,0x2f,0x43,0x28,0x25,0x2a,0x24,0x27,0x48,0x46, // code info + 0x12,0x05, // LOAD_GLOBAL 'PathSchema' + 0x14,0x22, // LOAD_METHOD 'parse' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x14,0x23, // LOAD_METHOD 'match' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x12,0x5b, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x14,0x24, // LOAD_METHOD 'find' + 0x10,0x25, // LOAD_CONST_STRING '/account' + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x63, // POP_JUMP_IF_FALSE 35 + 0xb1, // LOAD_FAST 1 + 0x14,0x26, // LOAD_METHOD 'count' + 0x10,0x1a, // LOAD_CONST_STRING '/' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0x12,0x15, // LOAD_GLOBAL 'is_hardened' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x1c, // LOAD_GLOBAL 'unharden' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE + 0xb5, // LOAD_FAST 5 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE + 0x42,0x43, // JUMP 3 + 0x12,0x5b, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_paths__get_account_num_single = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_common_paths__get_account_num_single, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 88, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_common_paths__get_account_num_single + 6, + .line_info_top = fun_data_apps_common_paths__get_account_num_single + 17, + .opcodes = fun_data_apps_common_paths__get_account_num_single + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_paths__lt_module_gt_[] = { + &raw_code_apps_common_paths_Interval, + &raw_code_apps_common_paths_PathSchema, + &raw_code_apps_common_paths_AlwaysMatchingSchema, + &raw_code_apps_common_paths_validate_path, + &raw_code_apps_common_paths_show_path_warning, + &raw_code_apps_common_paths_is_hardened, + &raw_code_apps_common_paths_path_is_hardened, + &raw_code_apps_common_paths_address_n_to_str, + &raw_code_apps_common_paths_unharden, + &raw_code_apps_common_paths_get_account_name, + &raw_code_apps_common_paths__get_account_num, + &raw_code_apps_common_paths__get_account_num_single, +}; + +static const mp_raw_code_t raw_code_apps_common_paths__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_paths__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 140, + #endif + .children = (void *)&children_apps_common_paths__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 12, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_common_paths__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_common_paths__lt_module_gt_ + 35, + .opcodes = fun_data_apps_common_paths__lt_module_gt_ + 35, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_common_paths[105] = { + MP_QSTR_apps_slash_common_slash_paths_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_Interval, + MP_QSTR_PathSchema, + MP_QSTR_AlwaysMatchingSchema, + MP_QSTR_0_hyphen_100, + MP_QSTR_account, + MP_QSTR_0_comma_1, + MP_QSTR_change, + MP_QSTR_0_hyphen_1000000, + MP_QSTR__star_, + MP_QSTR__star__squot_, + MP_QSTR__star__star_, + MP_QSTR_validate_path, + MP_QSTR_verify_path, + MP_QSTR_is_in_keychain, + MP_QSTR_show_path_warning, + MP_QSTR_confirm_path_warning, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_is_hardened, + MP_QSTR_path_is_hardened, + MP_QSTR_address_n_to_str, + MP_QSTR_m, + MP_QSTR_m_slash_, + MP_QSTR__slash_, + MP_QSTR_join, + MP_QSTR_unharden, + MP_QSTR_get_account_name, + MP_QSTR__brace_open__brace_close__space__hash__brace_open__brace_close_, + MP_QSTR_format, + MP_QSTR__get_account_num, + MP_QSTR__get_account_num_single, + MP_QSTR_parse, + MP_QSTR_match, + MP_QSTR_find, + MP_QSTR__slash_account, + MP_QSTR_count, + MP_QSTR___init__, + MP_QSTR_min, + MP_QSTR_max, + MP_QSTR___contains__, + MP_QSTR__parse_hardened, + MP_QSTR__copy_container, + MP_QSTR__EMPTY_TUPLE, + MP_QSTR_schema, + MP_QSTR_trailing_components, + MP_QSTR_startswith, + MP_QSTR_split, + MP_QSTR_WILDCARD_RANGES, + MP_QSTR__squot_, + MP_QSTR__bracket_open_, + MP_QSTR__bracket_close_, + MP_QSTR_REPLACEMENTS, + MP_QSTR_get, + MP_QSTR_append, + MP_QSTR__hyphen_, + MP_QSTR__comma_, + MP_QSTR_coin_type, + MP_QSTR_compact, + MP_QSTR_copy, + MP_QSTR_set_never_matching, + MP_QSTR_restrict, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR__path_item, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_HARDENED, + MP_QSTR_SLIP25_PURPOSE, + MP_QSTR_PATTERN_BIP44, + MP_QSTR_PATTERN_BIP44_PUBKEY, + MP_QSTR_PATTERN_SEP5, + MP_QSTR_PATTERN_SEP5_LEDGER_LIVE_LEGACY, + MP_QSTR_PATTERN_CASA, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_staticmethod, + MP_QSTR_classmethod, + MP_QSTR_keychain, + MP_QSTR_path, + MP_QSTR_all, + MP_QSTR_i, + MP_QSTR_bool, + MP_QSTR_address_n, + MP_QSTR_item, + MP_QSTR_coin, + MP_QSTR_pattern, + MP_QSTR_slip44_id, + MP_QSTR_isinstance, + MP_QSTR_str, + MP_QSTR_ValueError, + MP_QSTR_self, + MP_QSTR_x, + MP_QSTR_int, + MP_QSTR_s, + MP_QSTR_container, + MP_QSTR_set, + MP_QSTR_tuple, + MP_QSTR_RuntimeError, + MP_QSTR_len, + MP_QSTR_cls, + MP_QSTR_iter, + MP_QSTR_next, + MP_QSTR_enumerate, +}; + +// constants +static const mp_obj_int_t const_obj_apps_common_paths_0 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0x0,0x8000}}}; +static const mp_obj_int_t const_obj_apps_common_paths_1 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0x2729,0x8000}}}; +static const mp_obj_str_t const_obj_apps_common_paths_2 = {{&mp_type_str}, 38684, 46, (const byte*)"\x6d\x2f\x34\x34\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x61\x63\x63\x6f\x75\x6e\x74\x27\x2f\x63\x68\x61\x6e\x67\x65\x2f\x61\x64\x64\x72\x65\x73\x73\x5f\x69\x6e\x64\x65\x78"}; +static const mp_obj_str_t const_obj_apps_common_paths_3 = {{&mp_type_str}, 38824, 27, (const byte*)"\x6d\x2f\x34\x34\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x61\x63\x63\x6f\x75\x6e\x74\x27\x2f\x2a"}; +static const mp_obj_str_t const_obj_apps_common_paths_4 = {{&mp_type_str}, 62925, 25, (const byte*)"\x6d\x2f\x34\x34\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x61\x63\x63\x6f\x75\x6e\x74\x27"}; +static const mp_obj_str_t const_obj_apps_common_paths_5 = {{&mp_type_str}, 3410, 27, (const byte*)"\x6d\x2f\x34\x34\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x30\x27\x2f\x61\x63\x63\x6f\x75\x6e\x74"}; +static const mp_obj_str_t const_obj_apps_common_paths_6 = {{&mp_type_str}, 59645, 44, (const byte*)"\x6d\x2f\x34\x35\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x2f\x61\x63\x63\x6f\x75\x6e\x74\x2f\x63\x68\x61\x6e\x67\x65\x2f\x61\x64\x64\x72\x65\x73\x73\x5f\x69\x6e\x64\x65\x78"}; +static const mp_obj_int_t const_obj_apps_common_paths_8 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xffff,0x7fff}}}; +static const mp_obj_int_t const_obj_apps_common_paths_9 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xffff,0xffff}}}; +static const mp_obj_str_t const_obj_apps_common_paths_10 = {{&mp_type_str}, 24425, 30, (const byte*)"\x55\x6e\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x66\x6f\x72\x20\x63\x6f\x70\x79"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_common_paths[11] = { + MP_ROM_PTR(&const_obj_apps_common_paths_0), + MP_ROM_PTR(&const_obj_apps_common_paths_1), + MP_ROM_PTR(&const_obj_apps_common_paths_2), + MP_ROM_PTR(&const_obj_apps_common_paths_3), + MP_ROM_PTR(&const_obj_apps_common_paths_4), + MP_ROM_PTR(&const_obj_apps_common_paths_5), + MP_ROM_PTR(&const_obj_apps_common_paths_6), + MP_ROM_QSTR(MP_QSTR_address_index), + MP_ROM_PTR(&const_obj_apps_common_paths_8), + MP_ROM_PTR(&const_obj_apps_common_paths_9), + MP_ROM_PTR(&const_obj_apps_common_paths_10), +}; + +static const mp_frozen_module_t frozen_module_apps_common_paths = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_common_paths, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_common_paths, + }, + .rc = &raw_code_apps_common_paths__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_common_readers +// - original source file: build/firmware/src/apps/common/readers.mpy +// - frozen file name: apps/common/readers.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/common/readers.py, scope apps_common_readers__lt_module_gt_ +static const byte fun_data_apps_common_readers__lt_module_gt_[42] = { + 0x00,0x1c, // prelude + 0x01, // names: + 0x40,0x60,0x20,0x84,0x1c,0x64,0x40,0x64,0x40,0x64,0x40,0x64,0x40, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'read_compact_size' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x04, // STORE_NAME 'read_uint16_be' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x08, // STORE_NAME 'read_uint32_be' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x09, // STORE_NAME 'read_uint64_be' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x0a, // STORE_NAME 'read_uint16_le' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x0c, // STORE_NAME 'read_uint32_le' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_readers__lt_module_gt_ +// frozen bytecode for file apps/common/readers.py, scope apps_common_readers_read_compact_size +static const byte fun_data_apps_common_readers_read_compact_size[185] = { + 0x31,0x34, // prelude + 0x02,0x0d, // names: read_compact_size, r + 0x80,0x07,0x44,0x24,0x27,0x25,0x27,0x24,0x2b,0x27,0x24,0x28,0x28,0x2b,0x28,0x24,0x28,0x28,0x28,0x28,0x28,0x29,0x4b,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x03, // LOAD_ATTR 'get' + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x7d, // LOAD_CONST_SMALL_INT 253 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb2, // LOAD_FAST 2 + 0xc3, // STORE_FAST 3 + 0x42,0x87,0x81, // JUMP 135 + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x7d, // LOAD_CONST_SMALL_INT 253 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf0, // BINARY_OP 25 __lshift__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0x42,0xf1,0x80, // JUMP 113 + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x7e, // LOAD_CONST_SMALL_INT 254 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5f, // POP_JUMP_IF_FALSE 31 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf0, // BINARY_OP 25 __lshift__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xf0, // BINARY_OP 25 __lshift__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x98, // LOAD_CONST_SMALL_INT 24 + 0xf0, // BINARY_OP 25 __lshift__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0x42,0xcb,0x80, // JUMP 75 + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xc0,0x80, // POP_JUMP_IF_FALSE 64 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf0, // BINARY_OP 25 __lshift__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xf0, // BINARY_OP 25 __lshift__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x98, // LOAD_CONST_SMALL_INT 24 + 0xf0, // BINARY_OP 25 __lshift__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf0, // BINARY_OP 25 __lshift__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0xa8, // LOAD_CONST_SMALL_INT 40 + 0xf0, // BINARY_OP 25 __lshift__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x22,0x30, // LOAD_CONST_SMALL_INT 48 + 0xf0, // BINARY_OP 25 __lshift__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x22,0x38, // LOAD_CONST_SMALL_INT 56 + 0xf0, // BINARY_OP 25 __lshift__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0x42,0x43, // JUMP 3 + 0x12,0x0e, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_readers_read_compact_size = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_readers_read_compact_size, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 185, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_common_readers_read_compact_size + 4, + .line_info_top = fun_data_apps_common_readers_read_compact_size + 28, + .opcodes = fun_data_apps_common_readers_read_compact_size + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_readers__lt_module_gt_ +// frozen bytecode for file apps/common/readers.py, scope apps_common_readers_read_uint16_be +static const byte fun_data_apps_common_readers_read_uint16_be[24] = { + 0x29,0x0a, // prelude + 0x04,0x0d, // names: read_uint16_be, r + 0x80,0x23,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x05, // LOAD_METHOD 'read_memoryview' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0x12,0x0f, // LOAD_GLOBAL 'int' + 0x14,0x06, // LOAD_METHOD 'from_bytes' + 0xb1, // LOAD_FAST 1 + 0x10,0x07, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_readers_read_uint16_be = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_readers_read_uint16_be, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_common_readers_read_uint16_be + 4, + .line_info_top = fun_data_apps_common_readers_read_uint16_be + 7, + .opcodes = fun_data_apps_common_readers_read_uint16_be + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_readers__lt_module_gt_ +// frozen bytecode for file apps/common/readers.py, scope apps_common_readers_read_uint32_be +static const byte fun_data_apps_common_readers_read_uint32_be[24] = { + 0x29,0x0a, // prelude + 0x08,0x0d, // names: read_uint32_be, r + 0x80,0x28,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x05, // LOAD_METHOD 'read_memoryview' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0x12,0x0f, // LOAD_GLOBAL 'int' + 0x14,0x06, // LOAD_METHOD 'from_bytes' + 0xb1, // LOAD_FAST 1 + 0x10,0x07, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_readers_read_uint32_be = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_readers_read_uint32_be, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_common_readers_read_uint32_be + 4, + .line_info_top = fun_data_apps_common_readers_read_uint32_be + 7, + .opcodes = fun_data_apps_common_readers_read_uint32_be + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_readers__lt_module_gt_ +// frozen bytecode for file apps/common/readers.py, scope apps_common_readers_read_uint64_be +static const byte fun_data_apps_common_readers_read_uint64_be[24] = { + 0x29,0x0a, // prelude + 0x09,0x0d, // names: read_uint64_be, r + 0x80,0x2d,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x05, // LOAD_METHOD 'read_memoryview' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0x12,0x0f, // LOAD_GLOBAL 'int' + 0x14,0x06, // LOAD_METHOD 'from_bytes' + 0xb1, // LOAD_FAST 1 + 0x10,0x07, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_readers_read_uint64_be = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_readers_read_uint64_be, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_common_readers_read_uint64_be + 4, + .line_info_top = fun_data_apps_common_readers_read_uint64_be + 7, + .opcodes = fun_data_apps_common_readers_read_uint64_be + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_readers__lt_module_gt_ +// frozen bytecode for file apps/common/readers.py, scope apps_common_readers_read_uint16_le +static const byte fun_data_apps_common_readers_read_uint16_le[24] = { + 0x29,0x0a, // prelude + 0x0a,0x0d, // names: read_uint16_le, r + 0x80,0x32,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x05, // LOAD_METHOD 'read_memoryview' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0x12,0x0f, // LOAD_GLOBAL 'int' + 0x14,0x06, // LOAD_METHOD 'from_bytes' + 0xb1, // LOAD_FAST 1 + 0x10,0x0b, // LOAD_CONST_STRING 'little' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_readers_read_uint16_le = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_readers_read_uint16_le, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_common_readers_read_uint16_le + 4, + .line_info_top = fun_data_apps_common_readers_read_uint16_le + 7, + .opcodes = fun_data_apps_common_readers_read_uint16_le + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_readers__lt_module_gt_ +// frozen bytecode for file apps/common/readers.py, scope apps_common_readers_read_uint32_le +static const byte fun_data_apps_common_readers_read_uint32_le[24] = { + 0x29,0x0a, // prelude + 0x0c,0x0d, // names: read_uint32_le, r + 0x80,0x37,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x05, // LOAD_METHOD 'read_memoryview' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0x12,0x0f, // LOAD_GLOBAL 'int' + 0x14,0x06, // LOAD_METHOD 'from_bytes' + 0xb1, // LOAD_FAST 1 + 0x10,0x0b, // LOAD_CONST_STRING 'little' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_readers_read_uint32_le = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_readers_read_uint32_le, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_common_readers_read_uint32_le + 4, + .line_info_top = fun_data_apps_common_readers_read_uint32_le + 7, + .opcodes = fun_data_apps_common_readers_read_uint32_le + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_readers__lt_module_gt_[] = { + &raw_code_apps_common_readers_read_compact_size, + &raw_code_apps_common_readers_read_uint16_be, + &raw_code_apps_common_readers_read_uint32_be, + &raw_code_apps_common_readers_read_uint64_be, + &raw_code_apps_common_readers_read_uint16_le, + &raw_code_apps_common_readers_read_uint32_le, +}; + +static const mp_raw_code_t raw_code_apps_common_readers__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_readers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = (void *)&children_apps_common_readers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_common_readers__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_common_readers__lt_module_gt_ + 16, + .opcodes = fun_data_apps_common_readers__lt_module_gt_ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_common_readers[16] = { + MP_QSTR_apps_slash_common_slash_readers_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_read_compact_size, + MP_QSTR_get, + MP_QSTR_read_uint16_be, + MP_QSTR_read_memoryview, + MP_QSTR_from_bytes, + MP_QSTR_big, + MP_QSTR_read_uint32_be, + MP_QSTR_read_uint64_be, + MP_QSTR_read_uint16_le, + MP_QSTR_little, + MP_QSTR_read_uint32_le, + MP_QSTR_r, + MP_QSTR_ValueError, + MP_QSTR_int, +}; + +static const mp_frozen_module_t frozen_module_apps_common_readers = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_common_readers, + .obj_table = NULL, + }, + .rc = &raw_code_apps_common_readers__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_common_request_pin +// - original source file: build/firmware/src/apps/common/request_pin.mpy +// - frozen file name: apps/common/request_pin.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/common/request_pin.py, scope apps_common_request_pin__lt_module_gt_ +static const byte fun_data_apps_common_request_pin__lt_module_gt_[132] = { + 0x18,0x2a, // prelude + 0x01, // names: + 0x66,0x28,0x38,0x6c,0x88,0x16,0x84,0x0b,0x89,0x0a,0x84,0x0c,0x88,0x0e,0x64,0x40,0x8c,0x2d,0x84,0x0a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'utime' + 0x16,0x02, // STORE_NAME 'utime' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'storage.cache' + 0x13,0x04, // LOAD_ATTR 'cache' + 0x16,0x31, // STORE_NAME 'storage_cache' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'config' + 0x10,0x06, // LOAD_CONST_STRING 'utils' + 0x10,0x07, // LOAD_CONST_STRING 'wire' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x08, // IMPORT_NAME 'trezor' + 0x1c,0x05, // IMPORT_FROM 'config' + 0x16,0x05, // STORE_NAME 'config' + 0x1c,0x06, // IMPORT_FROM 'utils' + 0x16,0x06, // STORE_NAME 'utils' + 0x1c,0x07, // IMPORT_FROM 'wire' + 0x16,0x07, // STORE_NAME 'wire' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'show_error_and_raise' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x09, // IMPORT_FROM 'show_error_and_raise' + 0x16,0x09, // STORE_NAME 'show_error_and_raise' + 0x59, // POP_TOP + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x0c, // STORE_NAME '_request_sd_salt' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x12, // STORE_NAME 'can_lock_device' + 0x51, // LOAD_CONST_NONE + 0x52, // LOAD_CONST_TRUE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x17, // STORE_NAME 'request_pin' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x19, // STORE_NAME 'request_pin_confirm' + 0x52, // LOAD_CONST_TRUE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x04, // MAKE_FUNCTION_DEFARGS 4 + 0x16,0x1c, // STORE_NAME 'request_pin_and_sd_salt' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x20, // STORE_NAME '_set_last_unlock_time' + 0x10,0x0b, // LOAD_CONST_STRING 'Enter PIN' + 0x52, // LOAD_CONST_TRUE + 0x52, // LOAD_CONST_TRUE + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2a,0x04, // BUILD_TUPLE 4 + 0x53, // LOAD_NULL + 0x33,0x06, // MAKE_FUNCTION_DEFARGS 6 + 0x16,0x24, // STORE_NAME 'verify_user_pin' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x2d, // STORE_NAME 'error_pin_invalid' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x30, // STORE_NAME 'error_pin_matches_wipe_code' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_request_pin__lt_module_gt_ +// frozen bytecode for file apps/common/request_pin.py, scope apps_common_request_pin__request_sd_salt +static const byte fun_data_apps_common_request_pin__request_sd_salt[77] = { + 0xc5,0x41,0x1a, // prelude + 0x0c,0x29, // names: _request_sd_salt, raise_cancelled_on_unavailable + 0x80,0x0b,0x60,0x40,0x26,0x42,0x50,0x22,0x4f,0x23,0x4b, // code info + 0x12,0x06, // LOAD_GLOBAL 'utils' + 0x13,0x0d, // LOAD_ATTR 'USE_SD_CARD' + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0e, // LOAD_CONST_STRING 'SdCardUnavailable' + 0x10,0x0f, // LOAD_CONST_STRING 'request_sd_salt' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x10, // IMPORT_NAME 'sdcard' + 0x1c,0x0e, // IMPORT_FROM 'SdCardUnavailable' + 0xc1, // STORE_FAST 1 + 0x1c,0x0f, // IMPORT_FROM 'request_sd_salt' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x48,0x09, // SETUP_EXCEPT 9 + 0xb2, // LOAD_FAST 2 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE + 0x4a,0x18, // POP_EXCEPT_JUMP 24 + 0x57, // DUP_TOP + 0xb1, // LOAD_FAST 1 + 0xdf, // BINARY_OP 8 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x07, // LOAD_GLOBAL 'wire' + 0x14,0x11, // LOAD_METHOD 'PinCancelled' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x42,0x41, // JUMP 1 + 0x64, // RAISE_LAST + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_request_pin__request_sd_salt = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_request_pin__request_sd_salt, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 77, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_common_request_pin__request_sd_salt + 5, + .line_info_top = fun_data_apps_common_request_pin__request_sd_salt + 16, + .opcodes = fun_data_apps_common_request_pin__request_sd_salt + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_request_pin__lt_module_gt_ +// frozen bytecode for file apps/common/request_pin.py, scope apps_common_request_pin_can_lock_device +static const byte fun_data_apps_common_request_pin_can_lock_device[45] = { + 0x10,0x0e, // prelude + 0x12, // names: can_lock_device + 0x80,0x1f,0x40,0x26,0x47,0x45, // code info + 0x12,0x06, // LOAD_GLOBAL 'utils' + 0x13,0x0d, // LOAD_ATTR 'USE_SD_CARD' + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x05, // LOAD_GLOBAL 'config' + 0x14,0x13, // LOAD_METHOD 'has_pin' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x14, // IMPORT_NAME 'storage.sd_salt' + 0xc0, // STORE_FAST 0 + 0x12,0x05, // LOAD_GLOBAL 'config' + 0x14,0x13, // LOAD_METHOD 'has_pin' + 0x36,0x00, // CALL_METHOD 0 + 0x45,0x07, // JUMP_IF_TRUE_OR_POP 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'sd_salt' + 0x14,0x16, // LOAD_METHOD 'is_enabled' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_request_pin_can_lock_device = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_request_pin_can_lock_device, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_common_request_pin_can_lock_device + 3, + .line_info_top = fun_data_apps_common_request_pin_can_lock_device + 9, + .opcodes = fun_data_apps_common_request_pin_can_lock_device + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_request_pin__lt_module_gt_ +// frozen bytecode for file apps/common/request_pin.py, scope apps_common_request_pin_request_pin +static const byte fun_data_apps_common_request_pin_request_pin[32] = { + 0xbb,0xc0,0x01,0x0e, // prelude + 0x17,0x32,0x33,0x34, // names: request_pin, prompt, attempts_remaining, allow_cancel + 0x80,0x2e,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x18, // LOAD_CONST_STRING 'request_pin_on_device' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x18, // IMPORT_FROM 'request_pin_on_device' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_request_pin_request_pin = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_common_request_pin_request_pin, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_common_request_pin_request_pin + 8, + .line_info_top = fun_data_apps_common_request_pin_request_pin + 11, + .opcodes = fun_data_apps_common_request_pin_request_pin + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_request_pin__lt_module_gt_ +// frozen bytecode for file apps/common/request_pin.py, scope apps_common_request_pin_request_pin_confirm +static const byte fun_data_apps_common_request_pin_request_pin_confirm[86] = { + 0xd8,0xc0,0xc0,0x40,0x14, // prelude + 0x19, // names: request_pin_confirm + 0x80,0x34,0x50,0x20,0x2f,0x27,0x2f,0x25,0x22, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1a, // LOAD_CONST_STRING 'confirm_reenter_pin' + 0x10,0x1b, // LOAD_CONST_STRING 'pin_mismatch_popup' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0a, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x1a, // IMPORT_FROM 'confirm_reenter_pin' + 0xc2, // STORE_FAST 2 + 0x1c,0x1b, // IMPORT_FROM 'pin_mismatch_popup' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x17, // LOAD_GLOBAL 'request_pin' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0xb1, // LOAD_FAST 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x35,0x82,0x02, // CALL_FUNCTION_VAR_KW 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x17, // LOAD_GLOBAL 'request_pin' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0xb1, // LOAD_FAST 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x35,0x82,0x02, // CALL_FUNCTION_VAR_KW 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE + 0xb3, // LOAD_FAST 3 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x0b, // JUMP -53 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_request_pin_request_pin_confirm = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x07, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_request_pin_request_pin_confirm, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 86, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 7, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_apps_common_request_pin_request_pin_confirm + 6, + .line_info_top = fun_data_apps_common_request_pin_request_pin_confirm + 15, + .opcodes = fun_data_apps_common_request_pin_request_pin_confirm + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_request_pin__lt_module_gt_ +// frozen bytecode for file apps/common/request_pin.py, scope apps_common_request_pin_request_pin_and_sd_salt +static const byte fun_data_apps_common_request_pin_request_pin_and_sd_salt[63] = { + 0xba,0x41,0x14, // prelude + 0x1c,0x32,0x34, // names: request_pin_and_sd_salt, prompt, allow_cancel + 0x80,0x42,0x28,0x30,0x4a,0x43,0x48, // code info + 0x12,0x05, // LOAD_GLOBAL 'config' + 0x14,0x13, // LOAD_METHOD 'has_pin' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0x12,0x17, // LOAD_GLOBAL 'request_pin' + 0xb0, // LOAD_FAST 0 + 0x12,0x05, // LOAD_GLOBAL 'config' + 0x14,0x1d, // LOAD_METHOD 'get_pin_rem' + 0x36,0x00, // CALL_METHOD 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0x12,0x05, // LOAD_GLOBAL 'config' + 0x14,0x1e, // LOAD_METHOD 'ensure_not_wipe_code' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x43, // JUMP 3 + 0x10,0x1f, // LOAD_CONST_STRING '' + 0xc2, // STORE_FAST 2 + 0x12,0x0c, // LOAD_GLOBAL '_request_sd_salt' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_request_pin_request_pin_and_sd_salt = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_request_pin_request_pin_and_sd_salt, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 63, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 28, + .line_info = fun_data_apps_common_request_pin_request_pin_and_sd_salt + 6, + .line_info_top = fun_data_apps_common_request_pin_request_pin_and_sd_salt + 13, + .opcodes = fun_data_apps_common_request_pin_request_pin_and_sd_salt + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_request_pin__lt_module_gt_ +// frozen bytecode for file apps/common/request_pin.py, scope apps_common_request_pin__set_last_unlock_time +static const byte fun_data_apps_common_request_pin__set_last_unlock_time[27] = { + 0x20,0x08, // prelude + 0x20, // names: _set_last_unlock_time + 0x80,0x4e,0x27, // code info + 0x12,0x02, // LOAD_GLOBAL 'utime' + 0x14,0x21, // LOAD_METHOD 'ticks_ms' + 0x36,0x00, // CALL_METHOD 0 + 0xc0, // STORE_FAST 0 + 0x12,0x31, // LOAD_GLOBAL 'storage_cache' + 0x14,0x22, // LOAD_METHOD 'set_int' + 0x12,0x31, // LOAD_GLOBAL 'storage_cache' + 0x13,0x23, // LOAD_ATTR 'APP_COMMON_REQUEST_PIN_LAST_UNLOCK' + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_request_pin__set_last_unlock_time = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_request_pin__set_last_unlock_time, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_common_request_pin__set_last_unlock_time + 3, + .line_info_top = fun_data_apps_common_request_pin__set_last_unlock_time + 6, + .opcodes = fun_data_apps_common_request_pin__set_last_unlock_time + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_request_pin__lt_module_gt_ +// frozen bytecode for file apps/common/request_pin.py, scope apps_common_request_pin_verify_user_pin +static const byte fun_data_apps_common_request_pin_verify_user_pin[222] = { + 0xe8,0xc4,0x80,0x01,0x3c, // prelude + 0x24,0x32,0x34,0x35,0x36, // names: verify_user_pin, prompt, allow_cancel, retry, cache_time_ms + 0x80,0x59,0x24,0x71,0x66,0x2c,0x48,0x42,0x28,0x4b,0x2f,0x4a,0x43,0x2c,0x2a,0x25,0x22,0x28,0x45,0x22,0x23,0x51,0x2a,0x25,0x45, // code info + 0x12,0x37, // LOAD_GLOBAL 'int' + 0x14,0x25, // LOAD_METHOD 'from_bytes' + 0x12,0x31, // LOAD_GLOBAL 'storage_cache' + 0x14,0x26, // LOAD_METHOD 'get' + 0x12,0x31, // LOAD_GLOBAL 'storage_cache' + 0x13,0x23, // LOAD_ATTR 'APP_COMMON_REQUEST_PIN_LAST_UNLOCK' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x36,0x02, // CALL_METHOD 2 + 0x10,0x27, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb4, // LOAD_FAST 4 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0x12,0x02, // LOAD_GLOBAL 'utime' + 0x14,0x21, // LOAD_METHOD 'ticks_ms' + 0x36,0x00, // CALL_METHOD 0 + 0xb4, // LOAD_FAST 4 + 0xf3, // BINARY_OP 28 __sub__ + 0xb3, // LOAD_FAST 3 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x05, // LOAD_GLOBAL 'config' + 0x14,0x28, // LOAD_METHOD 'is_unlocked' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x05, // LOAD_GLOBAL 'config' + 0x14,0x13, // LOAD_METHOD 'has_pin' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x64, // POP_JUMP_IF_FALSE 36 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x18, // LOAD_CONST_STRING 'request_pin_on_device' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x18, // IMPORT_FROM 'request_pin_on_device' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x12,0x05, // LOAD_GLOBAL 'config' + 0x14,0x1d, // LOAD_METHOD 'get_pin_rem' + 0x36,0x00, // CALL_METHOD 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc6, // STORE_FAST 6 + 0x12,0x05, // LOAD_GLOBAL 'config' + 0x14,0x1e, // LOAD_METHOD 'ensure_not_wipe_code' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x43, // JUMP 3 + 0x10,0x1f, // LOAD_CONST_STRING '' + 0xc6, // STORE_FAST 6 + 0x12,0x0c, // LOAD_GLOBAL '_request_sd_salt' + 0x10,0x29, // LOAD_CONST_STRING 'raise_cancelled_on_unavailable' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc7, // STORE_FAST 7 + 0x12,0x05, // LOAD_GLOBAL 'config' + 0x14,0x2a, // LOAD_METHOD 'unlock' + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x20, // LOAD_GLOBAL '_set_last_unlock_time' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x05, // LOAD_GLOBAL 'config' + 0x14,0x13, // LOAD_METHOD 'has_pin' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0x12,0x38, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x42,0x40, // JUMP 0 + 0x42,0x65, // JUMP 37 + 0xb5, // LOAD_FAST 5 + 0x10,0x0b, // LOAD_CONST_STRING 'Enter PIN' + 0x12,0x05, // LOAD_GLOBAL 'config' + 0x14,0x1d, // LOAD_METHOD 'get_pin_rem' + 0x36,0x00, // CALL_METHOD 0 + 0xb1, // LOAD_FAST 1 + 0x10,0x2b, // LOAD_CONST_STRING 'wrong_pin' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc6, // STORE_FAST 6 + 0x12,0x05, // LOAD_GLOBAL 'config' + 0x14,0x2a, // LOAD_METHOD 'unlock' + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x20, // LOAD_GLOBAL '_set_last_unlock_time' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x43,0x18, // POP_JUMP_IF_TRUE -40 + 0x12,0x07, // LOAD_GLOBAL 'wire' + 0x13,0x2c, // LOAD_ATTR 'PinInvalid' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_request_pin_verify_user_pin = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_common_request_pin_verify_user_pin, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 222, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 4, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_common_request_pin_verify_user_pin + 10, + .line_info_top = fun_data_apps_common_request_pin_verify_user_pin + 35, + .opcodes = fun_data_apps_common_request_pin_verify_user_pin + 35, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_request_pin__lt_module_gt_ +// frozen bytecode for file apps/common/request_pin.py, scope apps_common_request_pin_error_pin_invalid +static const byte fun_data_apps_common_request_pin_error_pin_invalid[33] = { + 0xa8,0x40,0x0e, // prelude + 0x2d, // names: error_pin_invalid + 0x80,0x80,0x22,0x22,0x46,0x4b, // code info + 0x12,0x09, // LOAD_GLOBAL 'show_error_and_raise' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x10,0x2e, // LOAD_CONST_STRING 'Wrong PIN' + 0x10,0x2f, // LOAD_CONST_STRING 'exc' + 0x12,0x07, // LOAD_GLOBAL 'wire' + 0x13,0x2c, // LOAD_ATTR 'PinInvalid' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_request_pin_error_pin_invalid = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_request_pin_error_pin_invalid, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_common_request_pin_error_pin_invalid + 4, + .line_info_top = fun_data_apps_common_request_pin_error_pin_invalid + 10, + .opcodes = fun_data_apps_common_request_pin_error_pin_invalid + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_request_pin__lt_module_gt_ +// frozen bytecode for file apps/common/request_pin.py, scope apps_common_request_pin_error_pin_matches_wipe_code +static const byte fun_data_apps_common_request_pin_error_pin_matches_wipe_code[34] = { + 0xa8,0x40,0x10, // prelude + 0x30, // names: error_pin_matches_wipe_code + 0x80,0x8a,0x22,0x22,0x22,0x24,0x4b, // code info + 0x12,0x09, // LOAD_GLOBAL 'show_error_and_raise' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x10,0x2f, // LOAD_CONST_STRING 'exc' + 0x12,0x07, // LOAD_GLOBAL 'wire' + 0x13,0x2c, // LOAD_ATTR 'PinInvalid' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_request_pin_error_pin_matches_wipe_code = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_request_pin_error_pin_matches_wipe_code, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 48, + .line_info = fun_data_apps_common_request_pin_error_pin_matches_wipe_code + 4, + .line_info_top = fun_data_apps_common_request_pin_error_pin_matches_wipe_code + 11, + .opcodes = fun_data_apps_common_request_pin_error_pin_matches_wipe_code + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_request_pin__lt_module_gt_[] = { + &raw_code_apps_common_request_pin__request_sd_salt, + &raw_code_apps_common_request_pin_can_lock_device, + &raw_code_apps_common_request_pin_request_pin, + &raw_code_apps_common_request_pin_request_pin_confirm, + &raw_code_apps_common_request_pin_request_pin_and_sd_salt, + &raw_code_apps_common_request_pin__set_last_unlock_time, + &raw_code_apps_common_request_pin_verify_user_pin, + &raw_code_apps_common_request_pin_error_pin_invalid, + &raw_code_apps_common_request_pin_error_pin_matches_wipe_code, +}; + +static const mp_raw_code_t raw_code_apps_common_request_pin__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_request_pin__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 132, + #endif + .children = (void *)&children_apps_common_request_pin__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 9, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_common_request_pin__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_common_request_pin__lt_module_gt_ + 23, + .opcodes = fun_data_apps_common_request_pin__lt_module_gt_ + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_common_request_pin[57] = { + MP_QSTR_apps_slash_common_slash_request_pin_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utime, + MP_QSTR_storage_dot_cache, + MP_QSTR_cache, + MP_QSTR_config, + MP_QSTR_utils, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_show_error_and_raise, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_Enter_space_PIN, + MP_QSTR__request_sd_salt, + MP_QSTR_USE_SD_CARD, + MP_QSTR_SdCardUnavailable, + MP_QSTR_request_sd_salt, + MP_QSTR_sdcard, + MP_QSTR_PinCancelled, + MP_QSTR_can_lock_device, + MP_QSTR_has_pin, + MP_QSTR_storage_dot_sd_salt, + MP_QSTR_sd_salt, + MP_QSTR_is_enabled, + MP_QSTR_request_pin, + MP_QSTR_request_pin_on_device, + MP_QSTR_request_pin_confirm, + MP_QSTR_confirm_reenter_pin, + MP_QSTR_pin_mismatch_popup, + MP_QSTR_request_pin_and_sd_salt, + MP_QSTR_get_pin_rem, + MP_QSTR_ensure_not_wipe_code, + MP_QSTR_, + MP_QSTR__set_last_unlock_time, + MP_QSTR_ticks_ms, + MP_QSTR_set_int, + MP_QSTR_APP_COMMON_REQUEST_PIN_LAST_UNLOCK, + MP_QSTR_verify_user_pin, + MP_QSTR_from_bytes, + MP_QSTR_get, + MP_QSTR_big, + MP_QSTR_is_unlocked, + MP_QSTR_raise_cancelled_on_unavailable, + MP_QSTR_unlock, + MP_QSTR_wrong_pin, + MP_QSTR_PinInvalid, + MP_QSTR_error_pin_invalid, + MP_QSTR_Wrong_space_PIN, + MP_QSTR_exc, + MP_QSTR_error_pin_matches_wipe_code, + MP_QSTR_storage_cache, + MP_QSTR_prompt, + MP_QSTR_attempts_remaining, + MP_QSTR_allow_cancel, + MP_QSTR_retry, + MP_QSTR_cache_time_ms, + MP_QSTR_int, + MP_QSTR_RuntimeError, +}; + +// constants +static const mp_obj_str_t const_obj_apps_common_request_pin_5 = {{&mp_type_str}, 38924, 38, (const byte*)"\x54\x68\x65\x20\x50\x49\x4e\x20\x79\x6f\x75\x20\x68\x61\x76\x65\x20\x65\x6e\x74\x65\x72\x65\x64\x20\x69\x73\x20\x6e\x6f\x74\x20\x76\x61\x6c\x69\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_common_request_pin_7 = {{&mp_type_str}, 9797, 50, (const byte*)"\x54\x68\x65\x20\x6e\x65\x77\x20\x50\x49\x4e\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x64\x69\x66\x66\x65\x72\x65\x6e\x74\x20\x66\x72\x6f\x6d\x20\x79\x6f\x75\x72\x20\x77\x69\x70\x65\x20\x63\x6f\x64\x65\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_common_request_pin[9] = { + MP_ROM_QSTR(MP_QSTR_SD_space_salt_space_is_space_unavailable), + MP_ROM_QSTR(MP_QSTR_Enter_space_new_space_PIN), + MP_ROM_QSTR(MP_QSTR_Re_hyphen_enter_space_new_space_PIN), + MP_ROM_PTR(&mp_const_empty_bytes_obj), + MP_ROM_QSTR(MP_QSTR_warning_wrong_pin), + MP_ROM_PTR(&const_obj_apps_common_request_pin_5), + MP_ROM_QSTR(MP_QSTR_warning_invalid_new_pin), + MP_ROM_PTR(&const_obj_apps_common_request_pin_7), + MP_ROM_QSTR(MP_QSTR_Invalid_space_PIN), +}; + +static const mp_frozen_module_t frozen_module_apps_common_request_pin = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_common_request_pin, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_common_request_pin, + }, + .rc = &raw_code_apps_common_request_pin__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_common_safety_checks +// - original source file: build/firmware/src/apps/common/safety_checks.mpy +// - frozen file name: apps/common/safety_checks.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/common/safety_checks.py, scope apps_common_safety_checks__lt_module_gt_ +static const byte fun_data_apps_common_safety_checks__lt_module_gt_[84] = { + 0x10,0x14, // prelude + 0x01, // names: + 0x28,0x28,0x2c,0x32,0x6c,0x84,0x11,0x84,0x11, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'storage.cache' + 0x13,0x03, // LOAD_ATTR 'cache' + 0x16,0x19, // STORE_NAME 'storage_cache' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x04, // IMPORT_NAME 'storage.device' + 0x13,0x05, // LOAD_ATTR 'device' + 0x16,0x1a, // STORE_NAME 'storage_device' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'APP_COMMON_SAFETY_CHECKS_TEMPORARY' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x02, // IMPORT_NAME 'storage.cache' + 0x1c,0x06, // IMPORT_FROM 'APP_COMMON_SAFETY_CHECKS_TEMPORARY' + 0x16,0x06, // STORE_NAME 'APP_COMMON_SAFETY_CHECKS_TEMPORARY' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'SAFETY_CHECK_LEVEL_PROMPT' + 0x10,0x08, // LOAD_CONST_STRING 'SAFETY_CHECK_LEVEL_STRICT' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x04, // IMPORT_NAME 'storage.device' + 0x1c,0x07, // IMPORT_FROM 'SAFETY_CHECK_LEVEL_PROMPT' + 0x16,0x07, // STORE_NAME 'SAFETY_CHECK_LEVEL_PROMPT' + 0x1c,0x08, // IMPORT_FROM 'SAFETY_CHECK_LEVEL_STRICT' + 0x16,0x08, // STORE_NAME 'SAFETY_CHECK_LEVEL_STRICT' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'SafetyCheckLevel' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.enums' + 0x1c,0x09, // IMPORT_FROM 'SafetyCheckLevel' + 0x16,0x09, // STORE_NAME 'SafetyCheckLevel' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0b, // STORE_NAME 'read_setting' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x12, // STORE_NAME 'apply_setting' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x18, // STORE_NAME 'is_strict' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_safety_checks__lt_module_gt_ +// frozen bytecode for file apps/common/safety_checks.py, scope apps_common_safety_checks_read_setting +static const byte fun_data_apps_common_safety_checks_read_setting[74] = { + 0x28,0x18, // prelude + 0x0b, // names: read_setting + 0x80,0x08,0x60,0x29,0x23,0x4a,0x27,0x26,0x25,0x26,0x45, // code info + 0x12,0x19, // LOAD_GLOBAL 'storage_cache' + 0x14,0x0c, // LOAD_METHOD 'get' + 0x12,0x06, // LOAD_GLOBAL 'APP_COMMON_SAFETY_CHECKS_TEMPORARY' + 0x36,0x01, // CALL_METHOD 1 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x1b, // LOAD_GLOBAL 'int' + 0x14,0x0d, // LOAD_METHOD 'from_bytes' + 0xb0, // LOAD_FAST 0 + 0x10,0x0e, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE + 0x12,0x1a, // LOAD_GLOBAL 'storage_device' + 0x14,0x0f, // LOAD_METHOD 'safety_check_level' + 0x36,0x00, // CALL_METHOD 0 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x12,0x08, // LOAD_GLOBAL 'SAFETY_CHECK_LEVEL_STRICT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x09, // LOAD_GLOBAL 'SafetyCheckLevel' + 0x13,0x10, // LOAD_ATTR 'Strict' + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x12,0x07, // LOAD_GLOBAL 'SAFETY_CHECK_LEVEL_PROMPT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x09, // LOAD_GLOBAL 'SafetyCheckLevel' + 0x13,0x11, // LOAD_ATTR 'PromptAlways' + 0x63, // RETURN_VALUE + 0x12,0x1c, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_safety_checks_read_setting = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_safety_checks_read_setting, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 74, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_apps_common_safety_checks_read_setting + 3, + .line_info_top = fun_data_apps_common_safety_checks_read_setting + 14, + .opcodes = fun_data_apps_common_safety_checks_read_setting + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_safety_checks__lt_module_gt_ +// frozen bytecode for file apps/common/safety_checks.py, scope apps_common_safety_checks_apply_setting +static const byte fun_data_apps_common_safety_checks_apply_setting[118] = { + 0x39,0x1c, // prelude + 0x12,0x1d, // names: apply_setting, level + 0x80,0x19,0x60,0x28,0x29,0x2c,0x28,0x29,0x2b,0x28,0x29,0x53, // code info + 0xb0, // LOAD_FAST 0 + 0x12,0x09, // LOAD_GLOBAL 'SafetyCheckLevel' + 0x13,0x10, // LOAD_ATTR 'Strict' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x12,0x19, // LOAD_GLOBAL 'storage_cache' + 0x14,0x13, // LOAD_METHOD 'delete' + 0x12,0x06, // LOAD_GLOBAL 'APP_COMMON_SAFETY_CHECKS_TEMPORARY' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x1a, // LOAD_GLOBAL 'storage_device' + 0x14,0x14, // LOAD_METHOD 'set_safety_check_level' + 0x12,0x08, // LOAD_GLOBAL 'SAFETY_CHECK_LEVEL_STRICT' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0xc7,0x80, // JUMP 71 + 0xb0, // LOAD_FAST 0 + 0x12,0x09, // LOAD_GLOBAL 'SafetyCheckLevel' + 0x13,0x11, // LOAD_ATTR 'PromptAlways' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x19, // LOAD_GLOBAL 'storage_cache' + 0x14,0x13, // LOAD_METHOD 'delete' + 0x12,0x06, // LOAD_GLOBAL 'APP_COMMON_SAFETY_CHECKS_TEMPORARY' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x1a, // LOAD_GLOBAL 'storage_device' + 0x14,0x14, // LOAD_METHOD 'set_safety_check_level' + 0x12,0x07, // LOAD_GLOBAL 'SAFETY_CHECK_LEVEL_PROMPT' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x6b, // JUMP 43 + 0xb0, // LOAD_FAST 0 + 0x12,0x09, // LOAD_GLOBAL 'SafetyCheckLevel' + 0x13,0x15, // LOAD_ATTR 'PromptTemporarily' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0x12,0x1a, // LOAD_GLOBAL 'storage_device' + 0x14,0x14, // LOAD_METHOD 'set_safety_check_level' + 0x12,0x08, // LOAD_GLOBAL 'SAFETY_CHECK_LEVEL_STRICT' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x19, // LOAD_GLOBAL 'storage_cache' + 0x14,0x16, // LOAD_METHOD 'set' + 0x12,0x06, // LOAD_GLOBAL 'APP_COMMON_SAFETY_CHECKS_TEMPORARY' + 0xb0, // LOAD_FAST 0 + 0x14,0x17, // LOAD_METHOD 'to_bytes' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0e, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0x12,0x1c, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_safety_checks_apply_setting = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_safety_checks_apply_setting, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 118, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_common_safety_checks_apply_setting + 4, + .line_info_top = fun_data_apps_common_safety_checks_apply_setting + 16, + .opcodes = fun_data_apps_common_safety_checks_apply_setting + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_safety_checks__lt_module_gt_ +// frozen bytecode for file apps/common/safety_checks.py, scope apps_common_safety_checks_is_strict +static const byte fun_data_apps_common_safety_checks_is_strict[16] = { + 0x08,0x08, // prelude + 0x18, // names: is_strict + 0x80,0x2a,0x60, // code info + 0x12,0x0b, // LOAD_GLOBAL 'read_setting' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x09, // LOAD_GLOBAL 'SafetyCheckLevel' + 0x13,0x10, // LOAD_ATTR 'Strict' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_safety_checks_is_strict = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_safety_checks_is_strict, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 24, + .line_info = fun_data_apps_common_safety_checks_is_strict + 3, + .line_info_top = fun_data_apps_common_safety_checks_is_strict + 6, + .opcodes = fun_data_apps_common_safety_checks_is_strict + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_safety_checks__lt_module_gt_[] = { + &raw_code_apps_common_safety_checks_read_setting, + &raw_code_apps_common_safety_checks_apply_setting, + &raw_code_apps_common_safety_checks_is_strict, +}; + +static const mp_raw_code_t raw_code_apps_common_safety_checks__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_safety_checks__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 84, + #endif + .children = (void *)&children_apps_common_safety_checks__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_common_safety_checks__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_common_safety_checks__lt_module_gt_ + 12, + .opcodes = fun_data_apps_common_safety_checks__lt_module_gt_ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_common_safety_checks[30] = { + MP_QSTR_apps_slash_common_slash_safety_checks_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_storage_dot_cache, + MP_QSTR_cache, + MP_QSTR_storage_dot_device, + MP_QSTR_device, + MP_QSTR_APP_COMMON_SAFETY_CHECKS_TEMPORARY, + MP_QSTR_SAFETY_CHECK_LEVEL_PROMPT, + MP_QSTR_SAFETY_CHECK_LEVEL_STRICT, + MP_QSTR_SafetyCheckLevel, + MP_QSTR_trezor_dot_enums, + MP_QSTR_read_setting, + MP_QSTR_get, + MP_QSTR_from_bytes, + MP_QSTR_big, + MP_QSTR_safety_check_level, + MP_QSTR_Strict, + MP_QSTR_PromptAlways, + MP_QSTR_apply_setting, + MP_QSTR_delete, + MP_QSTR_set_safety_check_level, + MP_QSTR_PromptTemporarily, + MP_QSTR_set, + MP_QSTR_to_bytes, + MP_QSTR_is_strict, + MP_QSTR_storage_cache, + MP_QSTR_storage_device, + MP_QSTR_int, + MP_QSTR_ValueError, + MP_QSTR_level, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_common_safety_checks[1] = { + MP_ROM_QSTR(MP_QSTR_Unknown_space_SafetyCheckLevel), +}; + +static const mp_frozen_module_t frozen_module_apps_common_safety_checks = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_common_safety_checks, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_common_safety_checks, + }, + .rc = &raw_code_apps_common_safety_checks__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_common_sdcard +// - original source file: build/firmware/src/apps/common/sdcard.mpy +// - frozen file name: apps/common/sdcard.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/common/sdcard.py, scope apps_common_sdcard__lt_module_gt_ +static const byte fun_data_apps_common_sdcard__lt_module_gt_[119] = { + 0x18,0x22, // prelude + 0x01, // names: + 0x2c,0x32,0x72,0x6d,0x20,0x84,0x14,0x84,0x14,0x84,0x19,0x20,0x8d,0x0d,0x88,0x2e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'SD_CARD_HOT_SWAPPABLE' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'storage.sd_salt' + 0x1c,0x02, // IMPORT_FROM 'SD_CARD_HOT_SWAPPABLE' + 0x16,0x02, // STORE_NAME 'SD_CARD_HOT_SWAPPABLE' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'io' + 0x10,0x05, // LOAD_CONST_STRING 'wire' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x04, // IMPORT_FROM 'io' + 0x16,0x04, // STORE_NAME 'io' + 0x1c,0x05, // IMPORT_FROM 'wire' + 0x16,0x05, // STORE_NAME 'wire' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'confirm_action' + 0x10,0x08, // LOAD_CONST_STRING 'show_error_and_raise' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x09, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x07, // IMPORT_FROM 'confirm_action' + 0x16,0x07, // STORE_NAME 'confirm_action' + 0x1c,0x08, // IMPORT_FROM 'show_error_and_raise' + 0x16,0x08, // STORE_NAME 'show_error_and_raise' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x0a, // LOAD_CONST_STRING 'SdCardUnavailable' + 0x11,0x05, // LOAD_NAME 'wire' + 0x13,0x0b, // LOAD_ATTR 'ProcessError' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0a, // STORE_NAME 'SdCardUnavailable' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0c, // STORE_NAME '_confirm_retry_wrong_card' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x12, // STORE_NAME '_confirm_retry_insert_card' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x13, // STORE_NAME '_confirm_format_card' + 0x11,0x0a, // LOAD_NAME 'SdCardUnavailable' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x04, // MAKE_FUNCTION_DEFARGS 4 + 0x16,0x18, // STORE_NAME 'confirm_retry_sd' + 0x52, // LOAD_CONST_TRUE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x05, // MAKE_FUNCTION_DEFARGS 5 + 0x16,0x19, // STORE_NAME 'ensure_sdcard' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x24, // STORE_NAME 'request_sd_salt' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_sdcard__lt_module_gt_ +// frozen bytecode for file apps/common/sdcard.py, scope apps_common_sdcard_SdCardUnavailable +static const byte fun_data_apps_common_sdcard_SdCardUnavailable[15] = { + 0x00,0x06, // prelude + 0x0a, // names: SdCardUnavailable + 0x68,0x60, // code info + 0x11,0x2a, // LOAD_NAME '__name__' + 0x16,0x2b, // STORE_NAME '__module__' + 0x10,0x0a, // LOAD_CONST_STRING 'SdCardUnavailable' + 0x16,0x2c, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_sdcard_SdCardUnavailable = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_sdcard_SdCardUnavailable, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_common_sdcard_SdCardUnavailable + 3, + .line_info_top = fun_data_apps_common_sdcard_SdCardUnavailable + 5, + .opcodes = fun_data_apps_common_sdcard_SdCardUnavailable + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_sdcard__lt_module_gt_ +// frozen bytecode for file apps/common/sdcard.py, scope apps_common_sdcard__confirm_retry_wrong_card +static const byte fun_data_apps_common_sdcard__confirm_retry_wrong_card[81] = { + 0xd8,0x40,0x1c, // prelude + 0x0c, // names: _confirm_retry_wrong_card + 0x80,0x0a,0x24,0x22,0x22,0x22,0x22,0x6c,0x6f,0x22,0x22,0x22,0x24, // code info + 0x12,0x02, // LOAD_GLOBAL 'SD_CARD_HOT_SWAPPABLE' + 0x44,0x63, // POP_JUMP_IF_FALSE 35 + 0x12,0x07, // LOAD_GLOBAL 'confirm_action' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x10,0x0d, // LOAD_CONST_STRING 'verb' + 0x10,0x0e, // LOAD_CONST_STRING 'Retry' + 0x10,0x0f, // LOAD_CONST_STRING 'verb_cancel' + 0x10,0x10, // LOAD_CONST_STRING 'Abort' + 0x10,0x11, // LOAD_CONST_STRING 'exc' + 0x12,0x0a, // LOAD_GLOBAL 'SdCardUnavailable' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x86,0x04, // CALL_FUNCTION 772 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x57, // JUMP 23 + 0x12,0x08, // LOAD_GLOBAL 'show_error_and_raise' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x10,0x11, // LOAD_CONST_STRING 'exc' + 0x12,0x0a, // LOAD_GLOBAL 'SdCardUnavailable' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_sdcard__confirm_retry_wrong_card = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_sdcard__confirm_retry_wrong_card, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 81, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_common_sdcard__confirm_retry_wrong_card + 4, + .line_info_top = fun_data_apps_common_sdcard__confirm_retry_wrong_card + 17, + .opcodes = fun_data_apps_common_sdcard__confirm_retry_wrong_card + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_sdcard__lt_module_gt_ +// frozen bytecode for file apps/common/sdcard.py, scope apps_common_sdcard__confirm_retry_insert_card +static const byte fun_data_apps_common_sdcard__confirm_retry_insert_card[81] = { + 0xd8,0x40,0x1c, // prelude + 0x12, // names: _confirm_retry_insert_card + 0x80,0x1e,0x24,0x22,0x22,0x22,0x22,0x6c,0x6f,0x22,0x22,0x22,0x24, // code info + 0x12,0x02, // LOAD_GLOBAL 'SD_CARD_HOT_SWAPPABLE' + 0x44,0x63, // POP_JUMP_IF_FALSE 35 + 0x12,0x07, // LOAD_GLOBAL 'confirm_action' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x10,0x0d, // LOAD_CONST_STRING 'verb' + 0x10,0x0e, // LOAD_CONST_STRING 'Retry' + 0x10,0x0f, // LOAD_CONST_STRING 'verb_cancel' + 0x10,0x10, // LOAD_CONST_STRING 'Abort' + 0x10,0x11, // LOAD_CONST_STRING 'exc' + 0x12,0x0a, // LOAD_GLOBAL 'SdCardUnavailable' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x86,0x04, // CALL_FUNCTION 772 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x57, // JUMP 23 + 0x12,0x08, // LOAD_GLOBAL 'show_error_and_raise' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x10,0x11, // LOAD_CONST_STRING 'exc' + 0x12,0x0a, // LOAD_GLOBAL 'SdCardUnavailable' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_sdcard__confirm_retry_insert_card = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_sdcard__confirm_retry_insert_card, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 81, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_common_sdcard__confirm_retry_insert_card + 4, + .line_info_top = fun_data_apps_common_sdcard__confirm_retry_insert_card + 17, + .opcodes = fun_data_apps_common_sdcard__confirm_retry_insert_card + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_sdcard__lt_module_gt_ +// frozen bytecode for file apps/common/sdcard.py, scope apps_common_sdcard__confirm_format_card +static const byte fun_data_apps_common_sdcard__confirm_format_card[89] = { + 0xe8,0x40,0x20, // prelude + 0x13, // names: _confirm_format_card + 0x80,0x33,0x22,0x22,0x22,0x22,0x6c,0x6d,0x20,0x22,0x22,0x22,0x22,0x47,0x47, // code info + 0x12,0x07, // LOAD_GLOBAL 'confirm_action' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x10,0x0d, // LOAD_CONST_STRING 'verb' + 0x10,0x14, // LOAD_CONST_STRING 'Format' + 0x10,0x0f, // LOAD_CONST_STRING 'verb_cancel' + 0x10,0x15, // LOAD_CONST_STRING 'Cancel' + 0x10,0x11, // LOAD_CONST_STRING 'exc' + 0x12,0x0a, // LOAD_GLOBAL 'SdCardUnavailable' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x86,0x04, // CALL_FUNCTION 772 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'confirm_action' + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x10,0x16, // LOAD_CONST_STRING 'reverse' + 0x52, // LOAD_CONST_TRUE + 0x10,0x0d, // LOAD_CONST_STRING 'verb' + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x10,0x17, // LOAD_CONST_STRING 'hold' + 0x52, // LOAD_CONST_TRUE + 0x10,0x11, // LOAD_CONST_STRING 'exc' + 0x12,0x0a, // LOAD_GLOBAL 'SdCardUnavailable' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x88,0x04, // CALL_FUNCTION 1028 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_sdcard__confirm_format_card = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_sdcard__confirm_format_card, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 89, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_common_sdcard__confirm_format_card + 4, + .line_info_top = fun_data_apps_common_sdcard__confirm_format_card + 19, + .opcodes = fun_data_apps_common_sdcard__confirm_format_card + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_sdcard__lt_module_gt_ +// frozen bytecode for file apps/common/sdcard.py, scope apps_common_sdcard_confirm_retry_sd +static const byte fun_data_apps_common_sdcard_confirm_retry_sd[39] = { + 0xd9,0x41,0x0e, // prelude + 0x18,0x11, // names: confirm_retry_sd, exc + 0x80,0x4d,0x22,0x22,0x43, // code info + 0x12,0x07, // LOAD_GLOBAL 'confirm_action' + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0x51, // LOAD_CONST_NONE + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0x10,0x0d, // LOAD_CONST_STRING 'verb' + 0x10,0x0e, // LOAD_CONST_STRING 'Retry' + 0x10,0x0f, // LOAD_CONST_STRING 'verb_cancel' + 0x10,0x10, // LOAD_CONST_STRING 'Abort' + 0x10,0x11, // LOAD_CONST_STRING 'exc' + 0xb0, // LOAD_FAST 0 + 0x34,0x86,0x04, // CALL_FUNCTION 772 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_sdcard_confirm_retry_sd = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_sdcard_confirm_retry_sd, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 24, + .line_info = fun_data_apps_common_sdcard_confirm_retry_sd + 5, + .line_info_top = fun_data_apps_common_sdcard_confirm_retry_sd + 10, + .opcodes = fun_data_apps_common_sdcard_confirm_retry_sd + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_sdcard__lt_module_gt_ +// frozen bytecode for file apps/common/sdcard.py, scope apps_common_sdcard_ensure_sdcard +static const byte fun_data_apps_common_sdcard_ensure_sdcard[178] = { + 0xc5,0x43,0x36, // prelude + 0x19,0x27, // names: ensure_sdcard, ensure_filesystem + 0x80,0x59,0x80,0x09,0x4b,0x22,0x4f,0x23,0x22,0x25,0x20,0x22,0x22,0x2c,0x2c,0x47,0x63,0x42,0x68,0x2c,0x26,0x26,0x6b,0x6b,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1a, // LOAD_CONST_STRING 'sdcard' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x1a, // IMPORT_FROM 'sdcard' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x42,0x48, // JUMP 8 + 0x12,0x12, // LOAD_GLOBAL '_confirm_retry_insert_card' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x1b, // LOAD_METHOD 'is_present' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x31, // POP_JUMP_IF_FALSE -15 + 0xb0, // LOAD_FAST 0 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x04, // LOAD_GLOBAL 'io' + 0x13,0x1c, // LOAD_ATTR 'fatfs' + 0xc2, // STORE_FAST 2 + 0x48,0x55, // SETUP_EXCEPT 85 + 0x48,0x17, // SETUP_EXCEPT 23 + 0xb1, // LOAD_FAST 1 + 0x14,0x1d, // LOAD_METHOD 'filesystem' + 0x10,0x1e, // LOAD_CONST_STRING 'mounted' + 0x50, // LOAD_CONST_FALSE + 0x36,0x82,0x00, // CALL_METHOD 256 + 0x47,0x08, // SETUP_WITH 8 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x1f, // LOAD_METHOD 'mount' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x4a,0x0b, // POP_EXCEPT_JUMP 11 + 0x57, // DUP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x20, // LOAD_ATTR 'NoFilesystem' + 0xdf, // BINARY_OP 8 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x59, // POP_TOP + 0x4a,0x03, // POP_EXCEPT_JUMP 3 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x13, // LOAD_GLOBAL '_confirm_format_card' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x1d, // LOAD_METHOD 'filesystem' + 0x10,0x1e, // LOAD_CONST_STRING 'mounted' + 0x50, // LOAD_CONST_FALSE + 0x36,0x82,0x00, // CALL_METHOD 256 + 0x47,0x16, // SETUP_WITH 22 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x21, // LOAD_METHOD 'mkfs' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x1f, // LOAD_METHOD 'mount' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x22, // LOAD_METHOD 'setlabel' + 0x10,0x23, // LOAD_CONST_STRING 'TREZOR' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x4a,0x12, // POP_EXCEPT_JUMP 18 + 0x57, // DUP_TOP + 0x12,0x2d, // LOAD_GLOBAL 'OSError' + 0xdf, // BINARY_OP 8 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x59, // POP_TOP + 0x12,0x18, // LOAD_GLOBAL 'confirm_retry_sd' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x42,0x94,0x7f, // JUMP -108 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_sdcard_ensure_sdcard = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_sdcard_ensure_sdcard, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 178, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 3, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 25, + .line_info = fun_data_apps_common_sdcard_ensure_sdcard + 5, + .line_info_top = fun_data_apps_common_sdcard_ensure_sdcard + 30, + .opcodes = fun_data_apps_common_sdcard_ensure_sdcard + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_sdcard__lt_module_gt_ +// frozen bytecode for file apps/common/sdcard.py, scope apps_common_sdcard_request_sd_salt +static const byte fun_data_apps_common_sdcard_request_sd_salt[103] = { + 0xbc,0x40,0x1a, // prelude + 0x24, // names: request_sd_salt + 0x80,0x87,0x47,0x27,0x42,0x20,0x2c,0x22,0x29,0x2f,0x71,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'storage.sd_salt' + 0x13,0x25, // LOAD_ATTR 'sd_salt' + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x14,0x26, // LOAD_METHOD 'is_enabled' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x19, // LOAD_GLOBAL 'ensure_sdcard' + 0x10,0x27, // LOAD_CONST_STRING 'ensure_filesystem' + 0x50, // LOAD_CONST_FALSE + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x48,0x08, // SETUP_EXCEPT 8 + 0xb0, // LOAD_FAST 0 + 0x14,0x28, // LOAD_METHOD 'load_sd_salt' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE + 0x4a,0x2c, // POP_EXCEPT_JUMP 44 + 0x57, // DUP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'WrongSdCard' + 0x12,0x04, // LOAD_GLOBAL 'io' + 0x13,0x1c, // LOAD_ATTR 'fatfs' + 0x13,0x20, // LOAD_ATTR 'NoFilesystem' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdf, // BINARY_OP 8 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL '_confirm_retry_wrong_card' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x4a,0x12, // POP_EXCEPT_JUMP 18 + 0x57, // DUP_TOP + 0x12,0x2d, // LOAD_GLOBAL 'OSError' + 0xdf, // BINARY_OP 8 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x59, // POP_TOP + 0x12,0x18, // LOAD_GLOBAL 'confirm_retry_sd' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x42,0xbb,0x7f, // JUMP -69 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_sdcard_request_sd_salt = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_sdcard_request_sd_salt, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 103, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_common_sdcard_request_sd_salt + 4, + .line_info_top = fun_data_apps_common_sdcard_request_sd_salt + 16, + .opcodes = fun_data_apps_common_sdcard_request_sd_salt + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_sdcard__lt_module_gt_[] = { + &raw_code_apps_common_sdcard_SdCardUnavailable, + &raw_code_apps_common_sdcard__confirm_retry_wrong_card, + &raw_code_apps_common_sdcard__confirm_retry_insert_card, + &raw_code_apps_common_sdcard__confirm_format_card, + &raw_code_apps_common_sdcard_confirm_retry_sd, + &raw_code_apps_common_sdcard_ensure_sdcard, + &raw_code_apps_common_sdcard_request_sd_salt, +}; + +static const mp_raw_code_t raw_code_apps_common_sdcard__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_sdcard__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 119, + #endif + .children = (void *)&children_apps_common_sdcard__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 7, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_common_sdcard__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_common_sdcard__lt_module_gt_ + 19, + .opcodes = fun_data_apps_common_sdcard__lt_module_gt_ + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_common_sdcard[46] = { + MP_QSTR_apps_slash_common_slash_sdcard_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_SD_CARD_HOT_SWAPPABLE, + MP_QSTR_storage_dot_sd_salt, + MP_QSTR_io, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_confirm_action, + MP_QSTR_show_error_and_raise, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_SdCardUnavailable, + MP_QSTR_ProcessError, + MP_QSTR__confirm_retry_wrong_card, + MP_QSTR_verb, + MP_QSTR_Retry, + MP_QSTR_verb_cancel, + MP_QSTR_Abort, + MP_QSTR_exc, + MP_QSTR__confirm_retry_insert_card, + MP_QSTR__confirm_format_card, + MP_QSTR_Format, + MP_QSTR_Cancel, + MP_QSTR_reverse, + MP_QSTR_hold, + MP_QSTR_confirm_retry_sd, + MP_QSTR_ensure_sdcard, + MP_QSTR_sdcard, + MP_QSTR_is_present, + MP_QSTR_fatfs, + MP_QSTR_filesystem, + MP_QSTR_mounted, + MP_QSTR_mount, + MP_QSTR_NoFilesystem, + MP_QSTR_mkfs, + MP_QSTR_setlabel, + MP_QSTR_TREZOR, + MP_QSTR_request_sd_salt, + MP_QSTR_sd_salt, + MP_QSTR_is_enabled, + MP_QSTR_ensure_filesystem, + MP_QSTR_load_sd_salt, + MP_QSTR_WrongSdCard, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_OSError, +}; + +// constants +static const mp_obj_str_t const_obj_apps_common_sdcard_4 = {{&mp_type_str}, 17971, 50, (const byte*)"\x50\x6c\x65\x61\x73\x65\x20\x69\x6e\x73\x65\x72\x74\x20\x74\x68\x65\x20\x63\x6f\x72\x72\x65\x63\x74\x20\x53\x44\x20\x63\x61\x72\x64\x20\x66\x6f\x72\x20\x74\x68\x69\x73\x20\x64\x65\x76\x69\x63\x65\x2e"}; +static const mp_obj_str_t const_obj_apps_common_sdcard_5 = {{&mp_type_str}, 38025, 56, (const byte*)"\x50\x6c\x65\x61\x73\x65\x20\x75\x6e\x70\x6c\x75\x67\x20\x74\x68\x65\x20\x64\x65\x76\x69\x63\x65\x20\x61\x6e\x64\x20\x69\x6e\x73\x65\x72\x74\x20\x74\x68\x65\x20\x63\x6f\x72\x72\x65\x63\x74\x20\x53\x44\x20\x63\x61\x72\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_common_sdcard_8 = {{&mp_type_str}, 35968, 27, (const byte*)"\x50\x6c\x65\x61\x73\x65\x20\x69\x6e\x73\x65\x72\x74\x20\x79\x6f\x75\x72\x20\x53\x44\x20\x63\x61\x72\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_common_sdcard_9 = {{&mp_type_str}, 49567, 49, (const byte*)"\x50\x6c\x65\x61\x73\x65\x20\x75\x6e\x70\x6c\x75\x67\x20\x74\x68\x65\x20\x64\x65\x76\x69\x63\x65\x20\x61\x6e\x64\x20\x69\x6e\x73\x65\x72\x74\x20\x79\x6f\x75\x72\x20\x53\x44\x20\x63\x61\x72\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_common_sdcard_13 = {{&mp_type_str}, 47407, 67, (const byte*)"\x55\x73\x65\x20\x61\x20\x64\x69\x66\x66\x65\x72\x65\x6e\x74\x20\x63\x61\x72\x64\x20\x6f\x72\x20\x66\x6f\x72\x6d\x61\x74\x20\x74\x68\x65\x20\x53\x44\x20\x63\x61\x72\x64\x20\x74\x6f\x20\x74\x68\x65\x20\x46\x41\x54\x33\x32\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x2e"}; +static const mp_obj_str_t const_obj_apps_common_sdcard_17 = {{&mp_type_str}, 34556, 37, (const byte*)"\x41\x6c\x6c\x20\x64\x61\x74\x61\x20\x6f\x6e\x20\x74\x68\x65\x20\x53\x44\x20\x63\x61\x72\x64\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x6c\x6f\x73\x74\x2e"}; +static const mp_obj_str_t const_obj_apps_common_sdcard_18 = {{&mp_type_str}, 2867, 41, (const byte*)"\x44\x6f\x20\x79\x6f\x75\x20\x72\x65\x61\x6c\x6c\x79\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x66\x6f\x72\x6d\x61\x74\x20\x74\x68\x65\x20\x53\x44\x20\x63\x61\x72\x64\x3f"}; +static const mp_obj_str_t const_obj_apps_common_sdcard_21 = {{&mp_type_str}, 45012, 42, (const byte*)"\x54\x68\x65\x72\x65\x20\x77\x61\x73\x20\x61\x20\x70\x72\x6f\x62\x6c\x65\x6d\x20\x61\x63\x63\x65\x73\x73\x69\x6e\x67\x20\x74\x68\x65\x20\x53\x44\x20\x63\x61\x72\x64\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_common_sdcard[22] = { + MP_ROM_QSTR(MP_QSTR_Error_space_accessing_space_SD_space_card_dot_), + MP_ROM_QSTR(MP_QSTR_warning_wrong_sd), + MP_ROM_QSTR(MP_QSTR_SD_space_card_space_protection), + MP_ROM_QSTR(MP_QSTR_Wrong_space_SD_space_card_dot_), + MP_ROM_PTR(&const_obj_apps_common_sdcard_4), + MP_ROM_PTR(&const_obj_apps_common_sdcard_5), + MP_ROM_QSTR(MP_QSTR_warning_no_sd), + MP_ROM_QSTR(MP_QSTR_SD_space_card_space_required_dot_), + MP_ROM_PTR(&const_obj_apps_common_sdcard_8), + MP_ROM_PTR(&const_obj_apps_common_sdcard_9), + MP_ROM_QSTR(MP_QSTR_warning_format_sd), + MP_ROM_QSTR(MP_QSTR_SD_space_card_space_error), + MP_ROM_QSTR(MP_QSTR_Unknown_space_filesystem_dot_), + MP_ROM_PTR(&const_obj_apps_common_sdcard_13), + MP_ROM_QSTR(MP_QSTR_SD_space_card_space_not_space_formatted_dot_), + MP_ROM_QSTR(MP_QSTR_confirm_format_sd), + MP_ROM_QSTR(MP_QSTR_Format_space_SD_space_card), + MP_ROM_PTR(&const_obj_apps_common_sdcard_17), + MP_ROM_PTR(&const_obj_apps_common_sdcard_18), + MP_ROM_QSTR(MP_QSTR_warning_sd_retry), + MP_ROM_QSTR(MP_QSTR_SD_space_card_space_problem), + MP_ROM_PTR(&const_obj_apps_common_sdcard_21), +}; + +static const mp_frozen_module_t frozen_module_apps_common_sdcard = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_common_sdcard, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_common_sdcard, + }, + .rc = &raw_code_apps_common_sdcard__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_common_seed +// - original source file: build/firmware/src/apps/common/seed.mpy +// - frozen file name: apps/common/seed.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/common/seed.py, scope apps_common_seed__lt_module_gt_ +static const byte fun_data_apps_common_seed__lt_module_gt_[156] = { + 0x10,0x34, // prelude + 0x01, // names: + 0x40,0x28,0x28,0x2c,0x4c,0x2c,0x4c,0x60,0x60,0x89,0x1f,0x60,0x40,0x84,0x19,0x70,0x80,0x0e,0x70,0x60,0x20,0x89,0x0b,0x84,0x07, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'storage.cache' + 0x13,0x03, // LOAD_ATTR 'cache' + 0x16,0x2f, // STORE_NAME 'storage_cache' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x04, // IMPORT_NAME 'storage.device' + 0x13,0x05, // LOAD_ATTR 'device' + 0x16,0x30, // STORE_NAME 'storage_device' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor' + 0x1c,0x06, // IMPORT_FROM 'utils' + 0x16,0x06, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'hmac' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x08, // IMPORT_FROM 'hmac' + 0x16,0x08, // STORE_NAME 'hmac' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0a, // LOAD_CONST_STRING 'mnemonic' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME '' + 0x1c,0x0a, // IMPORT_FROM 'mnemonic' + 0x16,0x0a, // STORE_NAME 'mnemonic' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0c, // LOAD_CONST_STRING 'get' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'passphrase' + 0x1c,0x0c, // IMPORT_FROM 'get' + 0x16,0x31, // STORE_NAME 'get_passphrase' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x0e, // LOAD_CONST_STRING 'Slip21Node' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x0e, // STORE_NAME 'Slip21Node' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x14, // STORE_NAME 'derive_and_store_roots' + 0x11,0x2f, // LOAD_NAME 'storage_cache' + 0x13,0x0f, // LOAD_ATTR 'stored_async' + 0x11,0x2f, // LOAD_NAME 'storage_cache' + 0x13,0x10, // LOAD_ATTR 'APP_COMMON_SEED' + 0x34,0x01, // CALL_FUNCTION 1 + 0x32,0x02, // MAKE_FUNCTION 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x1b, // STORE_NAME 'get_seed' + 0x11,0x2f, // LOAD_NAME 'storage_cache' + 0x13,0x11, // LOAD_ATTR 'stored' + 0x11,0x2f, // LOAD_NAME 'storage_cache' + 0x13,0x12, // LOAD_ATTR 'APP_COMMON_SEED_WITHOUT_PASSPHRASE' + 0x34,0x01, // CALL_FUNCTION 1 + 0x32,0x03, // MAKE_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x1f, // STORE_NAME '_get_seed_without_passphrase' + 0x10,0x13, // LOAD_CONST_STRING 'secp256k1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x04, // MAKE_FUNCTION_DEFARGS 4 + 0x16,0x21, // STORE_NAME 'derive_node_without_passphrase' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x25, // STORE_NAME 'derive_slip21_node_without_passphrase' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x26, // STORE_NAME 'remove_ed25519_prefix' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_seed__lt_module_gt_ +// frozen bytecode for file apps/common/seed.py, scope apps_common_seed_Slip21Node +static const byte fun_data_apps_common_seed_Slip21Node[48] = { + 0x08,0x16, // prelude + 0x0e, // names: Slip21Node + 0x88,0x11,0x60,0x40,0x89,0x09,0x64,0x64,0x60,0x64, // code info + 0x11,0x32, // LOAD_NAME '__name__' + 0x16,0x33, // STORE_NAME '__module__' + 0x10,0x0e, // LOAD_CONST_STRING 'Slip21Node' + 0x16,0x34, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x27, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x2b, // STORE_NAME '__del__' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x24, // STORE_NAME 'derive_path' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x2d, // STORE_NAME 'key' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x2e, // STORE_NAME 'clone' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_seed_Slip21Node +// frozen bytecode for file apps/common/seed.py, scope apps_common_seed_Slip21Node___init__ +static const byte fun_data_apps_common_seed_Slip21Node___init__[58] = { + 0xb3,0x80,0x01,0x16, // prelude + 0x27,0x39,0x3a,0x28, // names: __init__, self, seed, data + 0x80,0x17,0x20,0x26,0x26,0x26,0x54, // code info + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x28, // STORE_ATTR 'data' + 0x42,0x5d, // JUMP 29 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x08, // LOAD_GLOBAL 'hmac' + 0x12,0x08, // LOAD_GLOBAL 'hmac' + 0x13,0x29, // LOAD_ATTR 'SHA512' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x14,0x2a, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x28, // STORE_ATTR 'data' + 0x42,0x43, // JUMP 3 + 0x12,0x3b, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_seed_Slip21Node___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_common_seed_Slip21Node___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 58, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_common_seed_Slip21Node___init__ + 8, + .line_info_top = fun_data_apps_common_seed_Slip21Node___init__ + 15, + .opcodes = fun_data_apps_common_seed_Slip21Node___init__ + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_seed_Slip21Node +// frozen bytecode for file apps/common/seed.py, scope apps_common_seed_Slip21Node___del__ +static const byte fun_data_apps_common_seed_Slip21Node___del__[13] = { + 0x11,0x08, // prelude + 0x2b,0x39, // names: __del__, self + 0x80,0x20, // code info + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x5a, // ROT_TWO + 0x18,0x28, // STORE_ATTR 'data' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_seed_Slip21Node___del__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_seed_Slip21Node___del__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_apps_common_seed_Slip21Node___del__ + 4, + .line_info_top = fun_data_apps_common_seed_Slip21Node___del__ + 6, + .opcodes = fun_data_apps_common_seed_Slip21Node___del__ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_seed_Slip21Node +// frozen bytecode for file apps/common/seed.py, scope apps_common_seed_Slip21Node_derive_path +static const byte fun_data_apps_common_seed_Slip21Node_derive_path[53] = { + 0x62,0x10, // prelude + 0x24,0x39,0x36, // names: derive_path, self, path + 0x80,0x23,0x25,0x33,0x27, // code info + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x25, // FOR_ITER 37 + 0xc2, // STORE_FAST 2 + 0x12,0x08, // LOAD_GLOBAL 'hmac' + 0x12,0x08, // LOAD_GLOBAL 'hmac' + 0x13,0x29, // LOAD_ATTR 'SHA512' + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'data' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x14,0x2c, // LOAD_METHOD 'update' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x2a, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x28, // STORE_ATTR 'data' + 0x42,0x19, // JUMP -39 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_seed_Slip21Node_derive_path = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_seed_Slip21Node_derive_path, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 53, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_common_seed_Slip21Node_derive_path + 5, + .line_info_top = fun_data_apps_common_seed_Slip21Node_derive_path + 10, + .opcodes = fun_data_apps_common_seed_Slip21Node_derive_path + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_seed_Slip21Node +// frozen bytecode for file apps/common/seed.py, scope apps_common_seed_Slip21Node_key +static const byte fun_data_apps_common_seed_Slip21Node_key[17] = { + 0x19,0x08, // prelude + 0x2d,0x39, // names: key, self + 0x80,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'data' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_seed_Slip21Node_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_seed_Slip21Node_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_common_seed_Slip21Node_key + 4, + .line_info_top = fun_data_apps_common_seed_Slip21Node_key + 6, + .opcodes = fun_data_apps_common_seed_Slip21Node_key + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_seed_Slip21Node +// frozen bytecode for file apps/common/seed.py, scope apps_common_seed_Slip21Node_clone +static const byte fun_data_apps_common_seed_Slip21Node_clone[17] = { + 0x19,0x08, // prelude + 0x2e,0x39, // names: clone, self + 0x80,0x2c, // code info + 0x12,0x0e, // LOAD_GLOBAL 'Slip21Node' + 0x10,0x28, // LOAD_CONST_STRING 'data' + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'data' + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_seed_Slip21Node_clone = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_seed_Slip21Node_clone, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_common_seed_Slip21Node_clone + 4, + .line_info_top = fun_data_apps_common_seed_Slip21Node_clone + 6, + .opcodes = fun_data_apps_common_seed_Slip21Node_clone + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_seed_Slip21Node[] = { + &raw_code_apps_common_seed_Slip21Node___init__, + &raw_code_apps_common_seed_Slip21Node___del__, + &raw_code_apps_common_seed_Slip21Node_derive_path, + &raw_code_apps_common_seed_Slip21Node_key, + &raw_code_apps_common_seed_Slip21Node_clone, +}; + +static const mp_raw_code_t raw_code_apps_common_seed_Slip21Node = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_seed_Slip21Node, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = (void *)&children_apps_common_seed_Slip21Node, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_common_seed_Slip21Node + 3, + .line_info_top = fun_data_apps_common_seed_Slip21Node + 13, + .opcodes = fun_data_apps_common_seed_Slip21Node + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_seed__lt_module_gt_ +// frozen bytecode for file apps/common/seed.py, scope apps_common_seed_derive_and_store_roots +static const byte fun_data_apps_common_seed_derive_and_store_roots[144] = { + 0xc8,0x40,0x24, // prelude + 0x14, // names: derive_and_store_roots + 0x80,0x35,0x4b,0x28,0x48,0x2c,0x24,0x28,0x4c,0x26,0x42,0x48,0x23,0x28,0x4c,0x23,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x15, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor' + 0x1c,0x15, // IMPORT_FROM 'wire' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0x12,0x30, // LOAD_GLOBAL 'storage_device' + 0x14,0x16, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xb0, // LOAD_FAST 0 + 0x14,0x17, // LOAD_METHOD 'NotInitialized' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x12,0x2f, // LOAD_GLOBAL 'storage_cache' + 0x14,0x18, // LOAD_METHOD 'is_set' + 0x12,0x2f, // LOAD_GLOBAL 'storage_cache' + 0x13,0x10, // LOAD_ATTR 'APP_COMMON_SEED' + 0x36,0x01, // CALL_METHOD 1 + 0xd3, // UNARY_OP 3 + 0xc1, // STORE_FAST 1 + 0x12,0x2f, // LOAD_GLOBAL 'storage_cache' + 0x14,0x0c, // LOAD_METHOD 'get' + 0x12,0x2f, // LOAD_GLOBAL 'storage_cache' + 0x13,0x19, // LOAD_ATTR 'APP_COMMON_DERIVE_CARDANO' + 0x36,0x01, // CALL_METHOD 1 + 0x46,0x0b, // JUMP_IF_FALSE_OR_POP 11 + 0x12,0x2f, // LOAD_GLOBAL 'storage_cache' + 0x14,0x18, // LOAD_METHOD 'is_set' + 0x12,0x2f, // LOAD_GLOBAL 'storage_cache' + 0x13,0x1a, // LOAD_ATTR 'APP_CARDANO_ICARUS_SECRET' + 0x36,0x01, // CALL_METHOD 1 + 0xd3, // UNARY_OP 3 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb2, // LOAD_FAST 2 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x31, // LOAD_GLOBAL 'get_passphrase' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x0a, // LOAD_GLOBAL 'mnemonic' + 0x14,0x1b, // LOAD_METHOD 'get_seed' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0x12,0x2f, // LOAD_GLOBAL 'storage_cache' + 0x14,0x1c, // LOAD_METHOD 'set' + 0x12,0x2f, // LOAD_GLOBAL 'storage_cache' + 0x13,0x10, // LOAD_ATTR 'APP_COMMON_SEED' + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1d, // LOAD_CONST_STRING 'derive_and_store_secrets' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME 'apps.cardano.seed' + 0x1c,0x1d, // IMPORT_FROM 'derive_and_store_secrets' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_seed_derive_and_store_roots = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_seed_derive_and_store_roots, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 144, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_apps_common_seed_derive_and_store_roots + 4, + .line_info_top = fun_data_apps_common_seed_derive_and_store_roots + 21, + .opcodes = fun_data_apps_common_seed_derive_and_store_roots + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_seed__lt_module_gt_ +// frozen bytecode for file apps/common/seed.py, scope apps_common_seed_get_seed +static const byte fun_data_apps_common_seed_get_seed[30] = { + 0x98,0x40,0x0c, // prelude + 0x1b, // names: get_seed + 0x80,0x4f,0x28,0x2b,0x20, // code info + 0x12,0x14, // LOAD_GLOBAL 'derive_and_store_roots' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x2f, // LOAD_GLOBAL 'storage_cache' + 0x14,0x0c, // LOAD_METHOD 'get' + 0x12,0x2f, // LOAD_GLOBAL 'storage_cache' + 0x13,0x10, // LOAD_ATTR 'APP_COMMON_SEED' + 0x36,0x01, // CALL_METHOD 1 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_seed_get_seed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_seed_get_seed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 27, + .line_info = fun_data_apps_common_seed_get_seed + 4, + .line_info_top = fun_data_apps_common_seed_get_seed + 9, + .opcodes = fun_data_apps_common_seed_get_seed + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_seed__lt_module_gt_ +// frozen bytecode for file apps/common/seed.py, scope apps_common_seed__get_seed_without_passphrase +static const byte fun_data_apps_common_seed__get_seed_without_passphrase[33] = { + 0x18,0x0a, // prelude + 0x1f, // names: _get_seed_without_passphrase + 0x80,0x60,0x28,0x27, // code info + 0x12,0x30, // LOAD_GLOBAL 'storage_device' + 0x14,0x16, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x35, // LOAD_GLOBAL 'Exception' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x0a, // LOAD_GLOBAL 'mnemonic' + 0x14,0x1b, // LOAD_METHOD 'get_seed' + 0x10,0x20, // LOAD_CONST_STRING 'progress_bar' + 0x50, // LOAD_CONST_FALSE + 0x36,0x82,0x00, // CALL_METHOD 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_seed__get_seed_without_passphrase = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_seed__get_seed_without_passphrase, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_common_seed__get_seed_without_passphrase + 3, + .line_info_top = fun_data_apps_common_seed__get_seed_without_passphrase + 7, + .opcodes = fun_data_apps_common_seed__get_seed_without_passphrase + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_seed__lt_module_gt_ +// frozen bytecode for file apps/common/seed.py, scope apps_common_seed_derive_node_without_passphrase +static const byte fun_data_apps_common_seed_derive_node_without_passphrase[45] = { + 0xc2,0x01,0x12, // prelude + 0x21,0x36,0x37, // names: derive_node_without_passphrase, path, curve_name + 0x80,0x68,0x4b,0x25,0x28,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x22, // LOAD_CONST_STRING 'bip32' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x22, // IMPORT_FROM 'bip32' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x1f, // LOAD_GLOBAL '_get_seed_without_passphrase' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x14,0x23, // LOAD_METHOD 'from_seed' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x14,0x24, // LOAD_METHOD 'derive_path' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_seed_derive_node_without_passphrase = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_seed_derive_node_without_passphrase, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_common_seed_derive_node_without_passphrase + 6, + .line_info_top = fun_data_apps_common_seed_derive_node_without_passphrase + 12, + .opcodes = fun_data_apps_common_seed_derive_node_without_passphrase + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_seed__lt_module_gt_ +// frozen bytecode for file apps/common/seed.py, scope apps_common_seed_derive_slip21_node_without_passphrase +static const byte fun_data_apps_common_seed_derive_slip21_node_without_passphrase[29] = { + 0x29,0x0e, // prelude + 0x25,0x36, // names: derive_slip21_node_without_passphrase, path + 0x80,0x71,0x25,0x26,0x27, // code info + 0x12,0x1f, // LOAD_GLOBAL '_get_seed_without_passphrase' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc1, // STORE_FAST 1 + 0x12,0x0e, // LOAD_GLOBAL 'Slip21Node' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x14,0x24, // LOAD_METHOD 'derive_path' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_seed_derive_slip21_node_without_passphrase = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_seed_derive_slip21_node_without_passphrase, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_common_seed_derive_slip21_node_without_passphrase + 4, + .line_info_top = fun_data_apps_common_seed_derive_slip21_node_without_passphrase + 9, + .opcodes = fun_data_apps_common_seed_derive_slip21_node_without_passphrase + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_seed__lt_module_gt_ +// frozen bytecode for file apps/common/seed.py, scope apps_common_seed_remove_ed25519_prefix +static const byte fun_data_apps_common_seed_remove_ed25519_prefix[13] = { + 0x19,0x08, // prelude + 0x26,0x38, // names: remove_ed25519_prefix, pubkey + 0x80,0x79, // code info + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_seed_remove_ed25519_prefix = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_seed_remove_ed25519_prefix, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 38, + .line_info = fun_data_apps_common_seed_remove_ed25519_prefix + 4, + .line_info_top = fun_data_apps_common_seed_remove_ed25519_prefix + 6, + .opcodes = fun_data_apps_common_seed_remove_ed25519_prefix + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_seed__lt_module_gt_[] = { + &raw_code_apps_common_seed_Slip21Node, + &raw_code_apps_common_seed_derive_and_store_roots, + &raw_code_apps_common_seed_get_seed, + &raw_code_apps_common_seed__get_seed_without_passphrase, + &raw_code_apps_common_seed_derive_node_without_passphrase, + &raw_code_apps_common_seed_derive_slip21_node_without_passphrase, + &raw_code_apps_common_seed_remove_ed25519_prefix, +}; + +static const mp_raw_code_t raw_code_apps_common_seed__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_seed__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 156, + #endif + .children = (void *)&children_apps_common_seed__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 7, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_common_seed__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_common_seed__lt_module_gt_ + 28, + .opcodes = fun_data_apps_common_seed__lt_module_gt_ + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_common_seed[60] = { + MP_QSTR_apps_slash_common_slash_seed_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_storage_dot_cache, + MP_QSTR_cache, + MP_QSTR_storage_dot_device, + MP_QSTR_device, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_hmac, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_mnemonic, + MP_QSTR_, + MP_QSTR_get, + MP_QSTR_passphrase, + MP_QSTR_Slip21Node, + MP_QSTR_stored_async, + MP_QSTR_APP_COMMON_SEED, + MP_QSTR_stored, + MP_QSTR_APP_COMMON_SEED_WITHOUT_PASSPHRASE, + MP_QSTR_secp256k1, + MP_QSTR_derive_and_store_roots, + MP_QSTR_wire, + MP_QSTR_is_initialized, + MP_QSTR_NotInitialized, + MP_QSTR_is_set, + MP_QSTR_APP_COMMON_DERIVE_CARDANO, + MP_QSTR_APP_CARDANO_ICARUS_SECRET, + MP_QSTR_get_seed, + MP_QSTR_set, + MP_QSTR_derive_and_store_secrets, + MP_QSTR_apps_dot_cardano_dot_seed, + MP_QSTR__get_seed_without_passphrase, + MP_QSTR_progress_bar, + MP_QSTR_derive_node_without_passphrase, + MP_QSTR_bip32, + MP_QSTR_from_seed, + MP_QSTR_derive_path, + MP_QSTR_derive_slip21_node_without_passphrase, + MP_QSTR_remove_ed25519_prefix, + MP_QSTR___init__, + MP_QSTR_data, + MP_QSTR_SHA512, + MP_QSTR_digest, + MP_QSTR___del__, + MP_QSTR_update, + MP_QSTR_key, + MP_QSTR_clone, + MP_QSTR_storage_cache, + MP_QSTR_storage_device, + MP_QSTR_get_passphrase, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_Exception, + MP_QSTR_path, + MP_QSTR_curve_name, + MP_QSTR_pubkey, + MP_QSTR_self, + MP_QSTR_seed, + MP_QSTR_ValueError, +}; + +// constants +static const mp_obj_str_t const_obj_apps_common_seed_0 = {{&mp_type_str}, 4478, 25, (const byte*)"\x44\x65\x76\x69\x63\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64"}; +static const mp_obj_str_t const_obj_apps_common_seed_1 = {{&mp_type_bytes}, 11430, 18, (const byte*)"\x53\x79\x6d\x6d\x65\x74\x72\x69\x63\x20\x6b\x65\x79\x20\x73\x65\x65\x64"}; +static const mp_obj_str_t const_obj_apps_common_seed_2 = {{&mp_type_bytes}, 46501, 1, (const byte*)"\x00"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_common_seed[3] = { + MP_ROM_PTR(&const_obj_apps_common_seed_0), + MP_ROM_PTR(&const_obj_apps_common_seed_1), + MP_ROM_PTR(&const_obj_apps_common_seed_2), +}; + +static const mp_frozen_module_t frozen_module_apps_common_seed = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_common_seed, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_common_seed, + }, + .rc = &raw_code_apps_common_seed__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_common_signverify +// - original source file: build/firmware/src/apps/common/signverify.mpy +// - frozen file name: apps/common/signverify.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/common/signverify.py, scope apps_common_signverify__lt_module_gt_ +static const byte fun_data_apps_common_signverify__lt_module_gt_[18] = { + 0x00,0x0c, // prelude + 0x01, // names: + 0x40,0x60,0x20,0x84,0x16, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'message_digest' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x14, // STORE_NAME 'decode_message' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_signverify__lt_module_gt_ +// frozen bytecode for file apps/common/signverify.py, scope apps_common_signverify_message_digest +static const byte fun_data_apps_common_signverify_message_digest[167] = { + 0x62,0x28, // prelude + 0x02,0x1a,0x1b, // names: message_digest, coin, message + 0x80,0x07,0x30,0x50,0x4b,0x25,0x4b,0x29,0x25,0x28,0x2c,0x2d,0x2a,0x27,0x26,0x25,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'utils' + 0x10,0x04, // LOAD_CONST_STRING 'wire' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x05, // IMPORT_NAME 'trezor' + 0x1c,0x03, // IMPORT_FROM 'utils' + 0xc2, // STORE_FAST 2 + 0x1c,0x04, // IMPORT_FROM 'wire' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'blake256' + 0x10,0x07, // LOAD_CONST_STRING 'sha256' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x08, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x06, // IMPORT_FROM 'blake256' + 0xc4, // STORE_FAST 4 + 0x1c,0x07, // IMPORT_FROM 'sha256' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'write_compact_size' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'apps.common.writers' + 0x1c,0x09, // IMPORT_FROM 'write_compact_size' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'decred' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb2, // LOAD_FAST 2 + 0x14,0x0c, // LOAD_METHOD 'HashWriter' + 0xb4, // LOAD_FAST 4 + 0x34,0x00, // CALL_FUNCTION 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc7, // STORE_FAST 7 + 0x42,0x49, // JUMP 9 + 0xb2, // LOAD_FAST 2 + 0x14,0x0c, // LOAD_METHOD 'HashWriter' + 0xb5, // LOAD_FAST 5 + 0x34,0x00, // CALL_FUNCTION 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc7, // STORE_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'signed_message_header' + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xb3, // LOAD_FAST 3 + 0x14,0x0e, // LOAD_METHOD 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x12,0x1c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'signed_message_header' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x0f, // LOAD_METHOD 'extend' + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'signed_message_header' + 0x14,0x10, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x12,0x1c, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x0f, // LOAD_METHOD 'extend' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x11, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc8, // STORE_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'sign_hash_double' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb5, // LOAD_FAST 5 + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x13, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_signverify_message_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_signverify_message_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 167, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_common_signverify_message_digest + 5, + .line_info_top = fun_data_apps_common_signverify_message_digest + 22, + .opcodes = fun_data_apps_common_signverify_message_digest + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_signverify__lt_module_gt_ +// frozen bytecode for file apps/common/signverify.py, scope apps_common_signverify_decode_message +static const byte fun_data_apps_common_signverify_decode_message[61] = { + 0x45,0x0e, // prelude + 0x14,0x1b, // names: decode_message, message + 0x80,0x1d,0x4b,0x22,0x53, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x15, // LOAD_CONST_STRING 'hexlify' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x16, // IMPORT_NAME 'ubinascii' + 0x1c,0x15, // IMPORT_FROM 'hexlify' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x48,0x0c, // SETUP_EXCEPT 12 + 0x12,0x1d, // LOAD_GLOBAL 'bytes' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x17, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE + 0x4a,0x19, // POP_EXCEPT_JUMP 25 + 0x57, // DUP_TOP + 0x12,0x1e, // LOAD_GLOBAL 'UnicodeError' + 0xdf, // BINARY_OP 8 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x59, // POP_TOP + 0x10,0x18, // LOAD_CONST_STRING 'hex({})' + 0x14,0x19, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x17, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_signverify_decode_message = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_common_signverify_decode_message, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 61, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_apps_common_signverify_decode_message + 4, + .line_info_top = fun_data_apps_common_signverify_decode_message + 9, + .opcodes = fun_data_apps_common_signverify_decode_message + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_signverify__lt_module_gt_[] = { + &raw_code_apps_common_signverify_message_digest, + &raw_code_apps_common_signverify_decode_message, +}; + +static const mp_raw_code_t raw_code_apps_common_signverify__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_signverify__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = (void *)&children_apps_common_signverify__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_common_signverify__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_common_signverify__lt_module_gt_ + 8, + .opcodes = fun_data_apps_common_signverify__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_common_signverify[31] = { + MP_QSTR_apps_slash_common_slash_signverify_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_message_digest, + MP_QSTR_utils, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_blake256, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_write_compact_size, + MP_QSTR_apps_dot_common_dot_writers, + MP_QSTR_decred, + MP_QSTR_HashWriter, + MP_QSTR_signed_message_header, + MP_QSTR_DataError, + MP_QSTR_extend, + MP_QSTR_encode, + MP_QSTR_get_digest, + MP_QSTR_sign_hash_double, + MP_QSTR_digest, + MP_QSTR_decode_message, + MP_QSTR_hexlify, + MP_QSTR_ubinascii, + MP_QSTR_decode, + MP_QSTR_hex_paren_open__brace_open__brace_close__paren_close_, + MP_QSTR_format, + MP_QSTR_coin, + MP_QSTR_message, + MP_QSTR_len, + MP_QSTR_bytes, + MP_QSTR_UnicodeError, +}; + +// constants +static const mp_obj_str_t const_obj_apps_common_signverify_0 = {{&mp_type_str}, 16391, 33, (const byte*)"\x45\x6d\x70\x74\x79\x20\x6d\x65\x73\x73\x61\x67\x65\x20\x68\x65\x61\x64\x65\x72\x20\x6e\x6f\x74\x20\x61\x6c\x6c\x6f\x77\x65\x64\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_common_signverify[1] = { + MP_ROM_PTR(&const_obj_apps_common_signverify_0), +}; + +static const mp_frozen_module_t frozen_module_apps_common_signverify = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_common_signverify, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_common_signverify, + }, + .rc = &raw_code_apps_common_signverify__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_common_writers +// - original source file: build/firmware/src/apps/common/writers.mpy +// - frozen file name: apps/common/writers.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/common/writers.py, scope apps_common_writers__lt_module_gt_ +static const byte fun_data_apps_common_writers__lt_module_gt_[91] = { + 0x08,0x36, // prelude + 0x01, // names: + 0x40,0x4c,0x60,0x20,0x84,0x0a,0x64,0x20,0x64,0x20,0x64,0x20,0x64,0x20,0x64,0x20,0x64,0x20,0x64,0x40,0x64,0x60,0x64,0x60,0x84,0x11, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'ensure' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.utils' + 0x1c,0x02, // IMPORT_FROM 'ensure' + 0x16,0x02, // STORE_NAME 'ensure' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x04, // STORE_NAME '_write_uint' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x07, // STORE_NAME 'write_uint8' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x08, // STORE_NAME 'write_uint16_le' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x09, // STORE_NAME 'write_uint32_le' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x0a, // STORE_NAME 'write_uint32_be' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x0b, // STORE_NAME 'write_uint64_le' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x0c, // STORE_NAME 'write_uint64_be' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x0d, // STORE_NAME 'write_bytes_unchecked' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x0f, // STORE_NAME 'write_bytes_fixed' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x10, // STORE_NAME 'write_bytes_reversed' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x11, // STORE_NAME 'write_compact_size' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x12, // STORE_NAME 'write_uvarint' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_common_writers__lt_module_gt_ +// frozen bytecode for file apps/common/writers.py, scope apps_common_writers__write_uint +static const byte fun_data_apps_common_writers__write_uint[81] = { + 0xe8,0x04,0x1a, // prelude + 0x04,0x13,0x14,0x15,0x16, // names: _write_uint, w, n, bits, bigendian + 0x80,0x09,0x38,0x28,0x23,0x26,0x25,0x2f, // code info + 0x12,0x02, // LOAD_GLOBAL 'ensure' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x08, // JUMP_IF_FALSE_OR_POP 8 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xb2, // LOAD_FAST 2 + 0xf9, // BINARY_OP 34 __pow__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x10,0x05, // LOAD_CONST_STRING 'overflow' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x17, // LOAD_GLOBAL 'range' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb2, // LOAD_FAST 2 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x12,0x18, // LOAD_GLOBAL 'reversed' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x5f, // GET_ITER_STACK + 0x4b,0x10, // FOR_ITER 16 + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x14,0x06, // LOAD_METHOD 'append' + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0xf1, // BINARY_OP 26 __rshift__ + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xef, // BINARY_OP 24 __and__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x2e, // JUMP -18 + 0xb2, // LOAD_FAST 2 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_writers__write_uint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_common_writers__write_uint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 81, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_common_writers__write_uint + 8, + .line_info_top = fun_data_apps_common_writers__write_uint + 16, + .opcodes = fun_data_apps_common_writers__write_uint + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_writers__lt_module_gt_ +// frozen bytecode for file apps/common/writers.py, scope apps_common_writers_write_uint8 +static const byte fun_data_apps_common_writers_write_uint8[16] = { + 0x32,0x0a, // prelude + 0x07,0x13,0x14, // names: write_uint8, w, n + 0x80,0x13, // code info + 0x12,0x04, // LOAD_GLOBAL '_write_uint' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x50, // LOAD_CONST_FALSE + 0x34,0x04, // CALL_FUNCTION 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_writers_write_uint8 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_writers_write_uint8, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_common_writers_write_uint8 + 5, + .line_info_top = fun_data_apps_common_writers_write_uint8 + 7, + .opcodes = fun_data_apps_common_writers_write_uint8 + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_writers__lt_module_gt_ +// frozen bytecode for file apps/common/writers.py, scope apps_common_writers_write_uint16_le +static const byte fun_data_apps_common_writers_write_uint16_le[16] = { + 0x32,0x0a, // prelude + 0x08,0x13,0x14, // names: write_uint16_le, w, n + 0x80,0x17, // code info + 0x12,0x04, // LOAD_GLOBAL '_write_uint' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x50, // LOAD_CONST_FALSE + 0x34,0x04, // CALL_FUNCTION 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_writers_write_uint16_le = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_writers_write_uint16_le, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_common_writers_write_uint16_le + 5, + .line_info_top = fun_data_apps_common_writers_write_uint16_le + 7, + .opcodes = fun_data_apps_common_writers_write_uint16_le + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_writers__lt_module_gt_ +// frozen bytecode for file apps/common/writers.py, scope apps_common_writers_write_uint32_le +static const byte fun_data_apps_common_writers_write_uint32_le[16] = { + 0x32,0x0a, // prelude + 0x09,0x13,0x14, // names: write_uint32_le, w, n + 0x80,0x1b, // code info + 0x12,0x04, // LOAD_GLOBAL '_write_uint' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x50, // LOAD_CONST_FALSE + 0x34,0x04, // CALL_FUNCTION 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_writers_write_uint32_le = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_writers_write_uint32_le, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_common_writers_write_uint32_le + 5, + .line_info_top = fun_data_apps_common_writers_write_uint32_le + 7, + .opcodes = fun_data_apps_common_writers_write_uint32_le + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_writers__lt_module_gt_ +// frozen bytecode for file apps/common/writers.py, scope apps_common_writers_write_uint32_be +static const byte fun_data_apps_common_writers_write_uint32_be[16] = { + 0x32,0x0a, // prelude + 0x0a,0x13,0x14, // names: write_uint32_be, w, n + 0x80,0x1f, // code info + 0x12,0x04, // LOAD_GLOBAL '_write_uint' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x52, // LOAD_CONST_TRUE + 0x34,0x04, // CALL_FUNCTION 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_writers_write_uint32_be = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_writers_write_uint32_be, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_common_writers_write_uint32_be + 5, + .line_info_top = fun_data_apps_common_writers_write_uint32_be + 7, + .opcodes = fun_data_apps_common_writers_write_uint32_be + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_writers__lt_module_gt_ +// frozen bytecode for file apps/common/writers.py, scope apps_common_writers_write_uint64_le +static const byte fun_data_apps_common_writers_write_uint64_le[18] = { + 0x32,0x0a, // prelude + 0x0b,0x13,0x14, // names: write_uint64_le, w, n + 0x80,0x23, // code info + 0x12,0x04, // LOAD_GLOBAL '_write_uint' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x50, // LOAD_CONST_FALSE + 0x34,0x04, // CALL_FUNCTION 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_writers_write_uint64_le = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_writers_write_uint64_le, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_apps_common_writers_write_uint64_le + 5, + .line_info_top = fun_data_apps_common_writers_write_uint64_le + 7, + .opcodes = fun_data_apps_common_writers_write_uint64_le + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_writers__lt_module_gt_ +// frozen bytecode for file apps/common/writers.py, scope apps_common_writers_write_uint64_be +static const byte fun_data_apps_common_writers_write_uint64_be[18] = { + 0x32,0x0a, // prelude + 0x0c,0x13,0x14, // names: write_uint64_be, w, n + 0x80,0x27, // code info + 0x12,0x04, // LOAD_GLOBAL '_write_uint' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x52, // LOAD_CONST_TRUE + 0x34,0x04, // CALL_FUNCTION 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_writers_write_uint64_be = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_writers_write_uint64_be, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_common_writers_write_uint64_be + 5, + .line_info_top = fun_data_apps_common_writers_write_uint64_be + 7, + .opcodes = fun_data_apps_common_writers_write_uint64_be + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_writers__lt_module_gt_ +// frozen bytecode for file apps/common/writers.py, scope apps_common_writers_write_bytes_unchecked +static const byte fun_data_apps_common_writers_write_bytes_unchecked[21] = { + 0x22,0x0c, // prelude + 0x0d,0x13,0x19, // names: write_bytes_unchecked, w, b + 0x80,0x2b,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x0e, // LOAD_METHOD 'extend' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x1a, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_writers_write_bytes_unchecked = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_writers_write_bytes_unchecked, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_common_writers_write_bytes_unchecked + 5, + .line_info_top = fun_data_apps_common_writers_write_bytes_unchecked + 8, + .opcodes = fun_data_apps_common_writers_write_bytes_unchecked + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_writers__lt_module_gt_ +// frozen bytecode for file apps/common/writers.py, scope apps_common_writers_write_bytes_fixed +static const byte fun_data_apps_common_writers_write_bytes_fixed[31] = { + 0x2b,0x10, // prelude + 0x0f,0x13,0x19,0x1b, // names: write_bytes_fixed, w, b, length + 0x80,0x30,0x2c,0x27, // code info + 0x12,0x02, // LOAD_GLOBAL 'ensure' + 0x12,0x1a, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x0e, // LOAD_METHOD 'extend' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_writers_write_bytes_fixed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_common_writers_write_bytes_fixed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_common_writers_write_bytes_fixed + 6, + .line_info_top = fun_data_apps_common_writers_write_bytes_fixed + 10, + .opcodes = fun_data_apps_common_writers_write_bytes_fixed + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_writers__lt_module_gt_ +// frozen bytecode for file apps/common/writers.py, scope apps_common_writers_write_bytes_reversed +static const byte fun_data_apps_common_writers_write_bytes_reversed[39] = { + 0x3b,0x10, // prelude + 0x10,0x13,0x19,0x1b, // names: write_bytes_reversed, w, b, length + 0x80,0x36,0x2c,0x2f, // code info + 0x12,0x02, // LOAD_GLOBAL 'ensure' + 0x12,0x1a, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x0e, // LOAD_METHOD 'extend' + 0x12,0x1c, // LOAD_GLOBAL 'bytes' + 0x12,0x18, // LOAD_GLOBAL 'reversed' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_writers_write_bytes_reversed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_common_writers_write_bytes_reversed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_common_writers_write_bytes_reversed + 6, + .line_info_top = fun_data_apps_common_writers_write_bytes_reversed + 10, + .opcodes = fun_data_apps_common_writers_write_bytes_reversed + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_writers__lt_module_gt_ +// frozen bytecode for file apps/common/writers.py, scope apps_common_writers_write_compact_size +static const byte fun_data_apps_common_writers_write_compact_size[121] = { + 0x32,0x20, // prelude + 0x11,0x13,0x14, // names: write_compact_size, w, n + 0x80,0x3c,0x33,0x44,0x27,0x2b,0x28,0x27,0x29,0x26,0x27,0x49,0x27, // code info + 0x12,0x02, // LOAD_GLOBAL 'ensure' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x05, // JUMP_IF_FALSE_OR_POP 5 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x06, // LOAD_ATTR 'append' + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x22,0x81,0x7d, // LOAD_CONST_SMALL_INT 253 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xef, // BINARY_OP 24 __and__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x7c, // JUMP 60 + 0xb1, // LOAD_FAST 1 + 0x22,0x84,0x80,0x00, // LOAD_CONST_SMALL_INT 65536 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x7d, // LOAD_CONST_SMALL_INT 253 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'write_uint16_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x64, // JUMP 36 + 0xb1, // LOAD_FAST 1 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x7e, // LOAD_CONST_SMALL_INT 254 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'write_uint32_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x4e, // JUMP 14 + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_writers_write_compact_size = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_writers_write_compact_size, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 121, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_apps_common_writers_write_compact_size + 5, + .line_info_top = fun_data_apps_common_writers_write_compact_size + 18, + .opcodes = fun_data_apps_common_writers_write_compact_size + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_common_writers__lt_module_gt_ +// frozen bytecode for file apps/common/writers.py, scope apps_common_writers_write_uvarint +static const byte fun_data_apps_common_writers_write_uvarint[70] = { + 0x3a,0x16, // prelude + 0x12,0x13,0x14, // names: write_uvarint, w, n + 0x80,0x4d,0x33,0x22,0x22,0x24,0x30,0x27, // code info + 0x12,0x02, // LOAD_GLOBAL 'ensure' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x05, // JUMP_IF_FALSE_OR_POP 5 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xc2, // STORE_FAST 2 + 0x42,0x5d, // JUMP 29 + 0xb1, // LOAD_FAST 1 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xf1, // BINARY_OP 26 __rshift__ + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0xef, // BINARY_OP 24 __and__ + 0xb2, // LOAD_FAST 2 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0x42,0x41, // JUMP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xed, // BINARY_OP 22 __or__ + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x14,0x06, // LOAD_METHOD 'append' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xc1, // STORE_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x43,0x20, // POP_JUMP_IF_TRUE -32 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_common_writers_write_uvarint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_common_writers_write_uvarint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_common_writers_write_uvarint + 5, + .line_info_top = fun_data_apps_common_writers_write_uvarint + 13, + .opcodes = fun_data_apps_common_writers_write_uvarint + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_common_writers__lt_module_gt_[] = { + &raw_code_apps_common_writers__write_uint, + &raw_code_apps_common_writers_write_uint8, + &raw_code_apps_common_writers_write_uint16_le, + &raw_code_apps_common_writers_write_uint32_le, + &raw_code_apps_common_writers_write_uint32_be, + &raw_code_apps_common_writers_write_uint64_le, + &raw_code_apps_common_writers_write_uint64_be, + &raw_code_apps_common_writers_write_bytes_unchecked, + &raw_code_apps_common_writers_write_bytes_fixed, + &raw_code_apps_common_writers_write_bytes_reversed, + &raw_code_apps_common_writers_write_compact_size, + &raw_code_apps_common_writers_write_uvarint, +}; + +static const mp_raw_code_t raw_code_apps_common_writers__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_common_writers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 91, + #endif + .children = (void *)&children_apps_common_writers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 12, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_common_writers__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_common_writers__lt_module_gt_ + 29, + .opcodes = fun_data_apps_common_writers__lt_module_gt_ + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_common_writers[29] = { + MP_QSTR_apps_slash_common_slash_writers_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ensure, + MP_QSTR_trezor_dot_utils, + MP_QSTR__write_uint, + MP_QSTR_overflow, + MP_QSTR_append, + MP_QSTR_write_uint8, + MP_QSTR_write_uint16_le, + MP_QSTR_write_uint32_le, + MP_QSTR_write_uint32_be, + MP_QSTR_write_uint64_le, + MP_QSTR_write_uint64_be, + MP_QSTR_write_bytes_unchecked, + MP_QSTR_extend, + MP_QSTR_write_bytes_fixed, + MP_QSTR_write_bytes_reversed, + MP_QSTR_write_compact_size, + MP_QSTR_write_uvarint, + MP_QSTR_w, + MP_QSTR_n, + MP_QSTR_bits, + MP_QSTR_bigendian, + MP_QSTR_range, + MP_QSTR_reversed, + MP_QSTR_b, + MP_QSTR_len, + MP_QSTR_length, + MP_QSTR_bytes, +}; + +// constants +static const mp_obj_int_t const_obj_apps_common_writers_0 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xffff,0xffff}}}; +static const mp_obj_int_t const_obj_apps_common_writers_1 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x0,0x0,0x1}}}; +static const mp_obj_int_t const_obj_apps_common_writers_2 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=4, .len=4, .dig=(uint16_t*)(const uint16_t[]){0xffff,0xffff,0xffff,0xffff}}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_common_writers[3] = { + MP_ROM_PTR(&const_obj_apps_common_writers_0), + MP_ROM_PTR(&const_obj_apps_common_writers_1), + MP_ROM_PTR(&const_obj_apps_common_writers_2), +}; + +static const mp_frozen_module_t frozen_module_apps_common_writers = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_common_writers, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_common_writers, + }, + .rc = &raw_code_apps_common_writers__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_debug___init__ +// - original source file: build/firmware/src/apps/debug/__init__.mpy +// - frozen file name: apps/debug/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/debug/__init__.py, scope apps_debug___init____lt_module_gt_ +static const byte fun_data_apps_debug___init____lt_module_gt_[27] = { + 0x08,0x08, // prelude + 0x01, // names: + 0x20,0x4c,0x47, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'halt' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.utils' + 0x1c,0x02, // IMPORT_FROM 'halt' + 0x16,0x02, // STORE_NAME 'halt' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'halt' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_debug___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_debug___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_debug___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_debug___init____lt_module_gt_ + 6, + .opcodes = fun_data_apps_debug___init____lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_debug___init__[4] = { + MP_QSTR_apps_slash_debug_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_halt, + MP_QSTR_trezor_dot_utils, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_debug___init__[1] = { + MP_ROM_QSTR(MP_QSTR_debug_space_mode_space_inactive), +}; + +static const mp_frozen_module_t frozen_module_apps_debug___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_debug___init__, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_debug___init__, + }, + .rc = &raw_code_apps_debug___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_debug_load_device +// - original source file: build/firmware/src/apps/debug/load_device.mpy +// - frozen file name: apps/debug/load_device.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/debug/load_device.py, scope apps_debug_load_device__lt_module_gt_ +static const byte fun_data_apps_debug_load_device__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'load_device' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_debug_load_device__lt_module_gt_ +// frozen bytecode for file apps/debug/load_device.py, scope apps_debug_load_device_load_device +static const byte fun_data_apps_debug_load_device_load_device[442] = { + 0xe1,0x50,0x66, // prelude + 0x02,0x30, // names: load_device, msg + 0x80,0x07,0x27,0x2b,0x30,0x2b,0x2b,0x2b,0x50,0x4b,0x64,0x27,0x26,0x23,0x46,0x30,0x2a,0x2f,0x21,0x67,0x20,0x47,0x32,0x66,0x21,0x22,0x22,0x22,0x68,0x20,0x23,0x2a,0x48,0x6d,0x2a,0x28,0x27,0x28,0x47,0x46,0x28,0x48,0x68,0x27,0x49,0x2d,0x2d,0x25,0x4d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'storage.device' + 0x13,0x04, // LOAD_ATTR 'device' + 0xc1, // STORE_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'config' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x05, // IMPORT_FROM 'config' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'bip39' + 0x10,0x08, // LOAD_CONST_STRING 'slip39' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x09, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x07, // IMPORT_FROM 'bip39' + 0xc3, // STORE_FAST 3 + 0x1c,0x08, // IMPORT_FROM 'slip39' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'BackupType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'trezor.enums' + 0x1c,0x0a, // IMPORT_FROM 'BackupType' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'Success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0c, // IMPORT_FROM 'Success' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'confirm_action' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x0e, // IMPORT_FROM 'confirm_action' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'ProcessError' + 0x10,0x11, // LOAD_CONST_STRING 'UnexpectedMessage' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x12, // IMPORT_NAME 'trezor.wire' + 0x1c,0x10, // IMPORT_FROM 'ProcessError' + 0xc8, // STORE_FAST 8 + 0x1c,0x11, // IMPORT_FROM 'UnexpectedMessage' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'backup_types' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'apps.management' + 0x1c,0x13, // IMPORT_FROM 'backup_types' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'mnemonics' + 0xcb, // STORE_FAST 11 + 0xb1, // LOAD_FAST 1 + 0x14,0x16, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb9, // LOAD_FAST 9 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbb, // LOAD_FAST 11 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb8, // LOAD_FAST 8 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x31, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'mnemonics' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x14,0x17, // LOAD_METHOD 'split' + 0x10,0x18, // LOAD_CONST_STRING ' ' + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcc, // STORE_FAST 12 + 0xbb, // LOAD_FAST 11 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x5f, // GET_ITER_STACK + 0x4b,0x18, // FOR_ITER 24 + 0xcd, // STORE_FAST 13 + 0xbc, // LOAD_FAST 12 + 0x12,0x31, // LOAD_GLOBAL 'len' + 0xbd, // LOAD_FAST 13 + 0x14,0x17, // LOAD_METHOD 'split' + 0x10,0x18, // LOAD_CONST_STRING ' ' + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb8, // LOAD_FAST 8 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x26, // JUMP -26 + 0xba, // LOAD_FAST 10 + 0x14,0x19, // LOAD_METHOD 'is_slip39_word_count' + 0xbc, // LOAD_FAST 12 + 0x36,0x01, // CALL_METHOD 1 + 0xce, // STORE_FAST 14 + 0xbe, // LOAD_FAST 14 + 0x43,0x55, // POP_JUMP_IF_TRUE 21 + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'skip_checksum' + 0x43,0x50, // POP_JUMP_IF_TRUE 16 + 0xb3, // LOAD_FAST 3 + 0x14,0x1b, // LOAD_METHOD 'check' + 0xbb, // LOAD_FAST 11 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb8, // LOAD_FAST 8 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb7, // LOAD_FAST 7 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x43,0x52, // POP_JUMP_IF_TRUE 18 + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'mnemonics' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x14,0x1c, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0xcf, // STORE_FAST 15 + 0xb5, // LOAD_FAST 5 + 0x13,0x1d, // LOAD_ATTR 'Bip39' + 0x26,0x10, // STORE_FAST_N 16 + 0x42,0xcb,0x80, // JUMP 75 + 0xb4, // LOAD_FAST 4 + 0x14,0x1e, // LOAD_METHOD 'recover_ems' + 0xbb, // LOAD_FAST 11 + 0x36,0x01, // CALL_METHOD 1 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0x26,0x11, // STORE_FAST_N 17 + 0x26,0x12, // STORE_FAST_N 18 + 0xcf, // STORE_FAST 15 + 0xb4, // LOAD_FAST 4 + 0x14,0x1f, // LOAD_METHOD 'decode_mnemonic' + 0xbb, // LOAD_FAST 11 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x13, // STORE_FAST_N 19 + 0x24,0x13, // LOAD_FAST_N 19 + 0x13,0x20, // LOAD_ATTR 'group_count' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb5, // LOAD_FAST 5 + 0x13,0x21, // LOAD_ATTR 'Slip39_Basic' + 0x26,0x10, // STORE_FAST_N 16 + 0x42,0x55, // JUMP 21 + 0x24,0x13, // LOAD_FAST_N 19 + 0x13,0x20, // LOAD_ATTR 'group_count' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb5, // LOAD_FAST 5 + 0x13,0x22, // LOAD_ATTR 'Slip39_Advanced' + 0x26,0x10, // STORE_FAST_N 16 + 0x42,0x46, // JUMP 6 + 0xb8, // LOAD_FAST 8 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x14,0x23, // LOAD_METHOD 'set_slip39_identifier' + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x24, // LOAD_METHOD 'set_slip39_iteration_exponent' + 0x24,0x12, // LOAD_FAST_N 18 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x25, // LOAD_METHOD 'store_mnemonic_secret' + 0xbf, // LOAD_FAST 15 + 0x24,0x10, // LOAD_FAST_N 16 + 0x10,0x26, // LOAD_CONST_STRING 'needs_backup' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'needs_backup' + 0x52, // LOAD_CONST_TRUE + 0xde, // BINARY_OP 7 + 0x10,0x27, // LOAD_CONST_STRING 'no_backup' + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'no_backup' + 0x52, // LOAD_CONST_TRUE + 0xde, // BINARY_OP 7 + 0x36,0x84,0x02, // CALL_METHOD 514 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x28, // LOAD_METHOD 'set_passphrase_enabled' + 0x12,0x32, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'passphrase_protection' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x2a, // LOAD_METHOD 'set_label' + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'label' + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x2c, // LOAD_CONST_STRING '' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR 'pin' + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb2, // LOAD_FAST 2 + 0x14,0x2e, // LOAD_METHOD 'change_pin' + 0x10,0x2c, // LOAD_CONST_STRING '' + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR 'pin' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x10,0x2f, // LOAD_CONST_STRING 'message' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_debug_load_device_load_device = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_debug_load_device_load_device, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 442, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 29, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_debug_load_device_load_device + 5, + .line_info_top = fun_data_apps_debug_load_device_load_device + 54, + .opcodes = fun_data_apps_debug_load_device_load_device + 54, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_debug_load_device__lt_module_gt_[] = { + &raw_code_apps_debug_load_device_load_device, +}; + +static const mp_raw_code_t raw_code_apps_debug_load_device__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_debug_load_device__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_debug_load_device__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_debug_load_device__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_debug_load_device__lt_module_gt_ + 6, + .opcodes = fun_data_apps_debug_load_device__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_debug_load_device[51] = { + MP_QSTR_apps_slash_debug_slash_load_device_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_load_device, + MP_QSTR_storage_dot_device, + MP_QSTR_device, + MP_QSTR_config, + MP_QSTR_trezor, + MP_QSTR_bip39, + MP_QSTR_slip39, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_BackupType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_Success, + MP_QSTR_trezor_dot_messages, + MP_QSTR_confirm_action, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_ProcessError, + MP_QSTR_UnexpectedMessage, + MP_QSTR_trezor_dot_wire, + MP_QSTR_backup_types, + MP_QSTR_apps_dot_management, + MP_QSTR_mnemonics, + MP_QSTR_is_initialized, + MP_QSTR_split, + MP_QSTR__space_, + MP_QSTR_is_slip39_word_count, + MP_QSTR_skip_checksum, + MP_QSTR_check, + MP_QSTR_encode, + MP_QSTR_Bip39, + MP_QSTR_recover_ems, + MP_QSTR_decode_mnemonic, + MP_QSTR_group_count, + MP_QSTR_Slip39_Basic, + MP_QSTR_Slip39_Advanced, + MP_QSTR_set_slip39_identifier, + MP_QSTR_set_slip39_iteration_exponent, + MP_QSTR_store_mnemonic_secret, + MP_QSTR_needs_backup, + MP_QSTR_no_backup, + MP_QSTR_set_passphrase_enabled, + MP_QSTR_passphrase_protection, + MP_QSTR_set_label, + MP_QSTR_label, + MP_QSTR_, + MP_QSTR_pin, + MP_QSTR_change_pin, + MP_QSTR_message, + MP_QSTR_msg, + MP_QSTR_len, + MP_QSTR_bool, +}; + +// constants +static const mp_obj_str_t const_obj_apps_debug_load_device_2 = {{&mp_type_str}, 24240, 56, (const byte*)"\x41\x6c\x6c\x20\x73\x68\x61\x72\x65\x73\x20\x61\x72\x65\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x74\x6f\x20\x68\x61\x76\x65\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x77\x6f\x72\x64\x73"}; +static const mp_obj_str_t const_obj_apps_debug_load_device_6 = {{&mp_type_str}, 1645, 40, (const byte*)"\x4c\x6f\x61\x64\x69\x6e\x67\x20\x70\x72\x69\x76\x61\x74\x65\x20\x73\x65\x65\x64\x20\x69\x73\x20\x6e\x6f\x74\x20\x72\x65\x63\x6f\x6d\x6d\x65\x6e\x64\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_debug_load_device_7 = {{&mp_type_str}, 51028, 45, (const byte*)"\x43\x6f\x6e\x74\x69\x6e\x75\x65\x20\x6f\x6e\x6c\x79\x20\x69\x66\x20\x79\x6f\x75\x20\x6b\x6e\x6f\x77\x20\x77\x68\x61\x74\x20\x79\x6f\x75\x20\x61\x72\x65\x20\x64\x6f\x69\x6e\x67\x21"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_debug_load_device[10] = { + MP_ROM_QSTR(MP_QSTR_Already_space_initialized), + MP_ROM_QSTR(MP_QSTR_No_space_mnemonic_space_provided), + MP_ROM_PTR(&const_obj_apps_debug_load_device_2), + MP_ROM_QSTR(MP_QSTR_Mnemonic_space_is_space_not_space_valid), + MP_ROM_QSTR(MP_QSTR_warn_loading_seed), + MP_ROM_QSTR(MP_QSTR_Loading_space_seed), + MP_ROM_PTR(&const_obj_apps_debug_load_device_6), + MP_ROM_PTR(&const_obj_apps_debug_load_device_7), + MP_ROM_QSTR(MP_QSTR_Invalid_space_group_space_count), + MP_ROM_QSTR(MP_QSTR_Device_space_loaded), +}; + +static const mp_frozen_module_t frozen_module_apps_debug_load_device = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_debug_load_device, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_debug_load_device, + }, + .rc = &raw_code_apps_debug_load_device__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_homescreen___init__ +// - original source file: build/firmware/src/apps/homescreen/__init__.mpy +// - frozen file name: apps/homescreen/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/homescreen/__init__.py, scope apps_homescreen___init____lt_module_gt_ +static const byte fun_data_apps_homescreen___init____lt_module_gt_[131] = { + 0x18,0x1a, // prelude + 0x01, // names: + 0x26,0x26,0x26,0x32,0x2c,0x58,0x32,0x6c,0x64,0x20,0x84,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'storage' + 0x16,0x02, // STORE_NAME 'storage' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'storage.cache' + 0x16,0x02, // STORE_NAME 'storage' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x04, // IMPORT_NAME 'storage.device' + 0x16,0x02, // STORE_NAME 'storage' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'config' + 0x10,0x06, // LOAD_CONST_STRING 'wire' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x07, // IMPORT_NAME 'trezor' + 0x1c,0x05, // IMPORT_FROM 'config' + 0x16,0x05, // STORE_NAME 'config' + 0x1c,0x06, // IMPORT_FROM 'wire' + 0x16,0x06, // STORE_NAME 'wire' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'MessageType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.enums' + 0x1c,0x08, // IMPORT_FROM 'MessageType' + 0x16,0x08, // STORE_NAME 'MessageType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'Busyscreen' + 0x10,0x0b, // LOAD_CONST_STRING 'Homescreen' + 0x10,0x0c, // LOAD_CONST_STRING 'Lockscreen' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x0d, // IMPORT_NAME 'trezor.ui.layouts.homescreen' + 0x1c,0x0a, // IMPORT_FROM 'Busyscreen' + 0x16,0x0a, // STORE_NAME 'Busyscreen' + 0x1c,0x0b, // IMPORT_FROM 'Homescreen' + 0x16,0x0b, // STORE_NAME 'Homescreen' + 0x1c,0x0c, // IMPORT_FROM 'Lockscreen' + 0x16,0x0c, // STORE_NAME 'Lockscreen' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'busy_expiry_ms' + 0x10,0x0f, // LOAD_CONST_STRING 'lock_device' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x10, // IMPORT_NAME 'apps.base' + 0x1c,0x0e, // IMPORT_FROM 'busy_expiry_ms' + 0x16,0x0e, // STORE_NAME 'busy_expiry_ms' + 0x1c,0x0f, // IMPORT_FROM 'lock_device' + 0x16,0x0f, // STORE_NAME 'lock_device' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'is_set_any_session' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x12, // IMPORT_NAME 'apps.common.authorization' + 0x1c,0x11, // IMPORT_FROM 'is_set_any_session' + 0x16,0x11, // STORE_NAME 'is_set_any_session' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x13, // STORE_NAME 'busyscreen' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x14, // STORE_NAME 'homescreen' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x23, // STORE_NAME 'lockscreen' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_homescreen___init____lt_module_gt_ +// frozen bytecode for file apps/homescreen/__init__.py, scope apps_homescreen___init___busyscreen +static const byte fun_data_apps_homescreen___init___busyscreen[20] = { + 0x88,0x40,0x06, // prelude + 0x13, // names: busyscreen + 0x80,0x0c, // code info + 0x12,0x0a, // LOAD_GLOBAL 'Busyscreen' + 0x12,0x0e, // LOAD_GLOBAL 'busy_expiry_ms' + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_homescreen___init___busyscreen = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_homescreen___init___busyscreen, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_homescreen___init___busyscreen + 4, + .line_info_top = fun_data_apps_homescreen___init___busyscreen + 6, + .opcodes = fun_data_apps_homescreen___init___busyscreen + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_homescreen___init____lt_module_gt_ +// frozen bytecode for file apps/homescreen/__init__.py, scope apps_homescreen___init___homescreen +static const byte fun_data_apps_homescreen___init___homescreen[223] = { + 0xe0,0x40,0x32, // prelude + 0x14, // names: homescreen + 0x80,0x10,0x2a,0x4b,0x42,0x22,0x22,0x2a,0x26,0x34,0x23,0x25,0x34,0x23,0x25,0x34,0x25,0x32,0x25,0x2a,0x45,0x6d,0x20,0x4d, // code info + 0x12,0x02, // LOAD_GLOBAL 'storage' + 0x13,0x15, // LOAD_ATTR 'device' + 0x14,0x16, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x02, // LOAD_GLOBAL 'storage' + 0x13,0x15, // LOAD_ATTR 'device' + 0x14,0x17, // LOAD_METHOD 'get_label' + 0x36,0x00, // CALL_METHOD 0 + 0xc0, // STORE_FAST 0 + 0x42,0x42, // JUMP 2 + 0x51, // LOAD_CONST_NONE + 0xc0, // STORE_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xc1, // STORE_FAST 1 + 0x50, // LOAD_CONST_FALSE + 0xc2, // STORE_FAST 2 + 0x12,0x11, // LOAD_GLOBAL 'is_set_any_session' + 0x12,0x08, // LOAD_GLOBAL 'MessageType' + 0x13,0x18, // LOAD_ATTR 'AuthorizeCoinJoin' + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xc1, // STORE_FAST 1 + 0x42,0xf7,0x80, // JUMP 119 + 0x12,0x02, // LOAD_GLOBAL 'storage' + 0x13,0x15, // LOAD_ATTR 'device' + 0x14,0x16, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x02, // LOAD_GLOBAL 'storage' + 0x13,0x15, // LOAD_ATTR 'device' + 0x14,0x19, // LOAD_METHOD 'no_backup' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x10,0x1a, // LOAD_CONST_STRING 'SEEDLESS' + 0xc1, // STORE_FAST 1 + 0x52, // LOAD_CONST_TRUE + 0xc2, // STORE_FAST 2 + 0x42,0xdb,0x80, // JUMP 91 + 0x12,0x02, // LOAD_GLOBAL 'storage' + 0x13,0x15, // LOAD_ATTR 'device' + 0x14,0x16, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x02, // LOAD_GLOBAL 'storage' + 0x13,0x15, // LOAD_ATTR 'device' + 0x14,0x1b, // LOAD_METHOD 'unfinished_backup' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xc1, // STORE_FAST 1 + 0x52, // LOAD_CONST_TRUE + 0xc2, // STORE_FAST 2 + 0x42,0xbf,0x80, // JUMP 63 + 0x12,0x02, // LOAD_GLOBAL 'storage' + 0x13,0x15, // LOAD_ATTR 'device' + 0x14,0x16, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x12,0x02, // LOAD_GLOBAL 'storage' + 0x13,0x15, // LOAD_ATTR 'device' + 0x14,0x1c, // LOAD_METHOD 'needs_backup' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xc1, // STORE_FAST 1 + 0x42,0x66, // JUMP 38 + 0x12,0x02, // LOAD_GLOBAL 'storage' + 0x13,0x15, // LOAD_ATTR 'device' + 0x14,0x16, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x05, // LOAD_GLOBAL 'config' + 0x14,0x1d, // LOAD_METHOD 'has_pin' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xc1, // STORE_FAST 1 + 0x42,0x4f, // JUMP 15 + 0x12,0x02, // LOAD_GLOBAL 'storage' + 0x13,0x15, // LOAD_ATTR 'device' + 0x14,0x1e, // LOAD_METHOD 'get_experimental_features' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xc1, // STORE_FAST 1 + 0x42,0x40, // JUMP 0 + 0x12,0x0b, // LOAD_GLOBAL 'Homescreen' + 0x10,0x1f, // LOAD_CONST_STRING 'label' + 0xb0, // LOAD_FAST 0 + 0x10,0x20, // LOAD_CONST_STRING 'notification' + 0xb1, // LOAD_FAST 1 + 0x10,0x21, // LOAD_CONST_STRING 'notification_is_error' + 0xb2, // LOAD_FAST 2 + 0x10,0x22, // LOAD_CONST_STRING 'hold_to_lock' + 0x12,0x05, // LOAD_GLOBAL 'config' + 0x14,0x1d, // LOAD_METHOD 'has_pin' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x88,0x00, // CALL_FUNCTION 1024 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'lock_device' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_homescreen___init___homescreen = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_homescreen___init___homescreen, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 223, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_apps_homescreen___init___homescreen + 4, + .line_info_top = fun_data_apps_homescreen___init___homescreen + 28, + .opcodes = fun_data_apps_homescreen___init___homescreen + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_homescreen___init____lt_module_gt_ +// frozen bytecode for file apps/homescreen/__init__.py, scope apps_homescreen___init___lockscreen +static const byte fun_data_apps_homescreen___init___lockscreen[85] = { + 0xbc,0x40,0x16, // prelude + 0x23, // names: lockscreen + 0x80,0x30,0x2b,0x6b,0x25,0x73,0x20,0x22,0x2a,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x24, // LOAD_CONST_STRING 'unlock_device' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'apps.base' + 0x1c,0x24, // IMPORT_FROM 'unlock_device' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x25, // LOAD_CONST_STRING 'can_lock_device' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x26, // IMPORT_NAME 'apps.common.request_pin' + 0x1c,0x25, // IMPORT_FROM 'can_lock_device' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x0c, // LOAD_GLOBAL 'Lockscreen' + 0x10,0x1f, // LOAD_CONST_STRING 'label' + 0x12,0x02, // LOAD_GLOBAL 'storage' + 0x13,0x15, // LOAD_ATTR 'device' + 0x14,0x17, // LOAD_METHOD 'get_label' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x48,0x09, // SETUP_EXCEPT 9 + 0xb0, // LOAD_FAST 0 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x4a,0x0c, // POP_EXCEPT_JUMP 12 + 0x57, // DUP_TOP + 0x12,0x06, // LOAD_GLOBAL 'wire' + 0x13,0x27, // LOAD_ATTR 'PinCancelled' + 0xdf, // BINARY_OP 8 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x59, // POP_TOP + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_homescreen___init___lockscreen = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_homescreen___init___lockscreen, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 85, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_homescreen___init___lockscreen + 4, + .line_info_top = fun_data_apps_homescreen___init___lockscreen + 14, + .opcodes = fun_data_apps_homescreen___init___lockscreen + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_homescreen___init____lt_module_gt_[] = { + &raw_code_apps_homescreen___init___busyscreen, + &raw_code_apps_homescreen___init___homescreen, + &raw_code_apps_homescreen___init___lockscreen, +}; + +static const mp_raw_code_t raw_code_apps_homescreen___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_homescreen___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 131, + #endif + .children = (void *)&children_apps_homescreen___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_homescreen___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_homescreen___init____lt_module_gt_ + 15, + .opcodes = fun_data_apps_homescreen___init____lt_module_gt_ + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_homescreen___init__[40] = { + MP_QSTR_apps_slash_homescreen_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_storage, + MP_QSTR_storage_dot_cache, + MP_QSTR_storage_dot_device, + MP_QSTR_config, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_MessageType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_Busyscreen, + MP_QSTR_Homescreen, + MP_QSTR_Lockscreen, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_homescreen, + MP_QSTR_busy_expiry_ms, + MP_QSTR_lock_device, + MP_QSTR_apps_dot_base, + MP_QSTR_is_set_any_session, + MP_QSTR_apps_dot_common_dot_authorization, + MP_QSTR_busyscreen, + MP_QSTR_homescreen, + MP_QSTR_device, + MP_QSTR_is_initialized, + MP_QSTR_get_label, + MP_QSTR_AuthorizeCoinJoin, + MP_QSTR_no_backup, + MP_QSTR_SEEDLESS, + MP_QSTR_unfinished_backup, + MP_QSTR_needs_backup, + MP_QSTR_has_pin, + MP_QSTR_get_experimental_features, + MP_QSTR_label, + MP_QSTR_notification, + MP_QSTR_notification_is_error, + MP_QSTR_hold_to_lock, + MP_QSTR_lockscreen, + MP_QSTR_unlock_device, + MP_QSTR_can_lock_device, + MP_QSTR_apps_dot_common_dot_request_pin, + MP_QSTR_PinCancelled, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_homescreen___init__[5] = { + MP_ROM_QSTR(MP_QSTR_COINJOIN_space_AUTHORIZED), + MP_ROM_QSTR(MP_QSTR_BACKUP_space_FAILED), + MP_ROM_QSTR(MP_QSTR_BACKUP_space_NEEDED), + MP_ROM_QSTR(MP_QSTR_PIN_space_NOT_space_SET), + MP_ROM_QSTR(MP_QSTR_EXPERIMENTAL_space_MODE), +}; + +static const mp_frozen_module_t frozen_module_apps_homescreen___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_homescreen___init__, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_homescreen___init__, + }, + .rc = &raw_code_apps_homescreen___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_apply_flags +// - original source file: build/firmware/src/apps/management/apply_flags.mpy +// - frozen file name: apps/management/apply_flags.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/apply_flags.py, scope apps_management_apply_flags__lt_module_gt_ +static const byte fun_data_apps_management_apply_flags__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'apply_flags' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_apply_flags__lt_module_gt_ +// frozen bytecode for file apps/management/apply_flags.py, scope apps_management_apply_flags_apply_flags +static const byte fun_data_apps_management_apply_flags_apply_flags[83] = { + 0xb9,0x40,0x16, // prelude + 0x02,0x0d, // names: apply_flags, msg + 0x80,0x07,0x25,0x2b,0x2b,0x4b,0x29,0x26,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'storage.device' + 0xc1, // STORE_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'set_flags' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'storage.device' + 0x1c,0x04, // IMPORT_FROM 'set_flags' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'Success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.messages' + 0x1c,0x05, // IMPORT_FROM 'Success' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'NotInitialized' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.wire' + 0x1c,0x07, // IMPORT_FROM 'NotInitialized' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x09, // LOAD_ATTR 'device' + 0x14,0x0a, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb4, // LOAD_FAST 4 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'flags' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x0c, // LOAD_CONST_STRING 'message' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_apply_flags_apply_flags = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_apply_flags_apply_flags, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 83, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_management_apply_flags_apply_flags + 5, + .line_info_top = fun_data_apps_management_apply_flags_apply_flags + 14, + .opcodes = fun_data_apps_management_apply_flags_apply_flags + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_apply_flags__lt_module_gt_[] = { + &raw_code_apps_management_apply_flags_apply_flags, +}; + +static const mp_raw_code_t raw_code_apps_management_apply_flags__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_apply_flags__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_management_apply_flags__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_apply_flags__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_apply_flags__lt_module_gt_ + 6, + .opcodes = fun_data_apps_management_apply_flags__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_apply_flags[14] = { + MP_QSTR_apps_slash_management_slash_apply_flags_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_apply_flags, + MP_QSTR_storage_dot_device, + MP_QSTR_set_flags, + MP_QSTR_Success, + MP_QSTR_trezor_dot_messages, + MP_QSTR_NotInitialized, + MP_QSTR_trezor_dot_wire, + MP_QSTR_device, + MP_QSTR_is_initialized, + MP_QSTR_flags, + MP_QSTR_message, + MP_QSTR_msg, +}; + +// constants +static const mp_obj_str_t const_obj_apps_management_apply_flags_0 = {{&mp_type_str}, 4478, 25, (const byte*)"\x44\x65\x76\x69\x63\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_management_apply_flags[2] = { + MP_ROM_PTR(&const_obj_apps_management_apply_flags_0), + MP_ROM_QSTR(MP_QSTR_Flags_space_applied), +}; + +static const mp_frozen_module_t frozen_module_apps_management_apply_flags = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_apply_flags, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_management_apply_flags, + }, + .rc = &raw_code_apps_management_apply_flags__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_apply_settings +// - original source file: build/firmware/src/apps/management/apply_settings.mpy +// - frozen file name: apps/management/apply_settings.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/apply_settings.py, scope apps_management_apply_settings__lt_module_gt_ +static const byte fun_data_apps_management_apply_settings__lt_module_gt_[162] = { + 0x08,0x46, // prelude + 0x01, // names: + 0x40,0x26,0x2c,0x2c,0x2c,0x4c,0x60,0x40,0x46,0x49,0x86,0x0e,0x84,0x11,0x84,0x0e,0x84,0x5a,0x64,0x60,0x84,0x0c,0x84,0x0d,0x84,0x10,0x84,0x15,0x84,0x0c,0x84,0x21,0x84,0x0c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'trezorui2' + 0x16,0x02, // STORE_NAME 'trezorui2' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor' + 0x1c,0x03, // IMPORT_FROM 'utils' + 0x16,0x03, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.enums' + 0x1c,0x05, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x05, // STORE_NAME 'ButtonRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'confirm_action' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x07, // IMPORT_FROM 'confirm_action' + 0x16,0x07, // STORE_NAME 'confirm_action' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.wire' + 0x1c,0x09, // IMPORT_FROM 'DataError' + 0x16,0x09, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x11,0x05, // LOAD_NAME 'ButtonRequestType' + 0x13,0x0b, // LOAD_ATTR 'ProtectCall' + 0x16,0x5a, // STORE_NAME 'BRT_PROTECT_CALL' + 0x11,0x03, // LOAD_NAME 'utils' + 0x13,0x0c, // LOAD_ATTR 'INTERNAL_MODEL' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xdd, // BINARY_OP 6 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0d, // STORE_NAME '_validate_homescreen_model_specific' + 0x42,0x44, // JUMP 4 + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0d, // STORE_NAME '_validate_homescreen_model_specific' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x15, // STORE_NAME '_validate_homescreen' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x19, // STORE_NAME 'apply_settings' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x3a, // STORE_NAME '_require_confirm_change_homescreen' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x3c, // STORE_NAME '_require_confirm_change_label' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x42, // STORE_NAME '_require_confirm_change_passphrase' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x47, // STORE_NAME '_require_confirm_change_passphrase_source' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x48, // STORE_NAME '_require_confirm_change_display_rotation' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x4d, // STORE_NAME '_require_confirm_change_autolock_delay' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x50, // STORE_NAME '_require_confirm_safety_checks' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x58, // STORE_NAME '_require_confirm_experimental_features' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x59, // STORE_NAME '_require_confirm_hide_passphrase_from_host' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_apply_settings__lt_module_gt_ +// frozen bytecode for file apps/management/apply_settings.py, scope apps_management_apply_settings__validate_homescreen_model_specific +static const byte fun_data_apps_management_apply_settings__validate_homescreen_model_specific[97] = { + 0x5d,0x16, // prelude + 0x0d,0x23, // names: _validate_homescreen_model_specific, homescreen + 0x80,0x12,0x50,0x22,0x55,0x2a,0x2a,0x2d,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'HEIGHT' + 0x10,0x0f, // LOAD_CONST_STRING 'WIDTH' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x10, // IMPORT_NAME 'trezor.ui' + 0x1c,0x0e, // IMPORT_FROM 'HEIGHT' + 0xc1, // STORE_FAST 1 + 0x1c,0x0f, // IMPORT_FROM 'WIDTH' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x48,0x0e, // SETUP_EXCEPT 14 + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x11, // LOAD_METHOD 'toif_info' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0x4a,0x11, // POP_EXCEPT_JUMP 17 + 0x57, // DUP_TOP + 0x12,0x5b, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x14,0x12, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_apply_settings__validate_homescreen_model_specific = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_apply_settings__validate_homescreen_model_specific, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 97, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_management_apply_settings__validate_homescreen_model_specific + 4, + .line_info_top = fun_data_apps_management_apply_settings__validate_homescreen_model_specific + 13, + .opcodes = fun_data_apps_management_apply_settings__validate_homescreen_model_specific + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_apply_settings__lt_module_gt_ +// frozen bytecode for file apps/management/apply_settings.py, scope apps_management_apply_settings__validate_homescreen_model_specific2 +static const byte fun_data_apps_management_apply_settings__validate_homescreen_model_specific2[131] = { + 0x5d,0x1c, // prelude + 0x0d,0x23, // names: _validate_homescreen_model_specific, homescreen + 0x80,0x20,0x50,0x22,0x55,0x2a,0x2a,0x2d,0x25,0x27,0x22,0x51, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'HEIGHT' + 0x10,0x0f, // LOAD_CONST_STRING 'WIDTH' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x10, // IMPORT_NAME 'trezor.ui' + 0x1c,0x0e, // IMPORT_FROM 'HEIGHT' + 0xc1, // STORE_FAST 1 + 0x1c,0x0f, // IMPORT_FROM 'WIDTH' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x48,0x0e, // SETUP_EXCEPT 14 + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x13, // LOAD_METHOD 'jpeg_info' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0x4a,0x11, // POP_EXCEPT_JUMP 17 + 0x57, // DUP_TOP + 0x12,0x5b, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x14,0x12, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x48,0x0a, // SETUP_EXCEPT 10 + 0x12,0x02, // LOAD_GLOBAL 'trezorui2' + 0x14,0x14, // LOAD_METHOD 'jpeg_test' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x4a,0x11, // POP_EXCEPT_JUMP 17 + 0x57, // DUP_TOP + 0x12,0x5b, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_apply_settings__validate_homescreen_model_specific2 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_apply_settings__validate_homescreen_model_specific2, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 131, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_management_apply_settings__validate_homescreen_model_specific2 + 4, + .line_info_top = fun_data_apps_management_apply_settings__validate_homescreen_model_specific2 + 16, + .opcodes = fun_data_apps_management_apply_settings__validate_homescreen_model_specific2 + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_apply_settings__lt_module_gt_ +// frozen bytecode for file apps/management/apply_settings.py, scope apps_management_apply_settings__validate_homescreen +static const byte fun_data_apps_management_apply_settings__validate_homescreen[61] = { + 0x29,0x16, // prelude + 0x15,0x23, // names: _validate_homescreen, homescreen + 0x80,0x31,0x47,0x26,0x42,0x2b,0x22,0x24,0x48, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x16, // IMPORT_NAME 'storage.device' + 0x13,0x17, // LOAD_ATTR 'device' + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x5c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'HOMESCREEN_MAXSIZE' + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x14,0x12, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'HOMESCREEN_MAXSIZE' + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x0d, // LOAD_GLOBAL '_validate_homescreen_model_specific' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_apply_settings__validate_homescreen = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_apply_settings__validate_homescreen, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 61, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_management_apply_settings__validate_homescreen + 4, + .line_info_top = fun_data_apps_management_apply_settings__validate_homescreen + 13, + .opcodes = fun_data_apps_management_apply_settings__validate_homescreen + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_apply_settings__lt_module_gt_ +// frozen bytecode for file apps/management/apply_settings.py, scope apps_management_apply_settings_apply_settings +static const byte fun_data_apps_management_apply_settings_apply_settings[542] = { + 0xad,0x50,0x92,0x02, // prelude + 0x19,0x5d, // names: apply_settings, msg + 0x80,0x3f,0x27,0x2b,0x50,0x2b,0x4b,0x27,0x26,0x24,0x24,0x24,0x24,0x20,0x44,0x24,0x24,0x24,0x44,0x20,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x45,0x46,0x26,0x26,0x29,0x22,0x50,0x4a,0x26,0x2b,0x27,0x29,0x47,0x26,0x29,0x47,0x26,0x27,0x27,0x29,0x47,0x26,0x27,0x26,0x27,0x26,0x29,0x47,0x26,0x29,0x47,0x26,0x29,0x47,0x26,0x29,0x47,0x26,0x27,0x26,0x29,0x47,0x44, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x16, // IMPORT_NAME 'storage.device' + 0x13,0x17, // LOAD_ATTR 'device' + 0xc1, // STORE_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1a, // LOAD_CONST_STRING 'Success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1b, // IMPORT_NAME 'trezor.messages' + 0x1c,0x1a, // IMPORT_FROM 'Success' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1c, // LOAD_CONST_STRING 'NotInitialized' + 0x10,0x1d, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0a, // IMPORT_NAME 'trezor.wire' + 0x1c,0x1c, // IMPORT_FROM 'NotInitialized' + 0xc3, // STORE_FAST 3 + 0x1c,0x1d, // IMPORT_FROM 'ProcessError' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1e, // LOAD_CONST_STRING 'reload_settings_from_storage' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1f, // IMPORT_NAME 'apps.base' + 0x1c,0x1e, // IMPORT_FROM 'reload_settings_from_storage' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x20, // LOAD_CONST_STRING 'safety_checks' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x21, // IMPORT_NAME 'apps.common' + 0x1c,0x20, // IMPORT_FROM 'safety_checks' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x22, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'homescreen' + 0xc7, // STORE_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'label' + 0xc8, // STORE_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'auto_lock_delay_ms' + 0xc9, // STORE_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'use_passphrase' + 0xca, // STORE_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'passphrase_always_on_device' + 0xcb, // STORE_FAST 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'display_rotation' + 0xcc, // STORE_FAST 12 + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'safety_checks' + 0xcd, // STORE_FAST 13 + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'experimental_features' + 0xce, // STORE_FAST 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'hide_passphrase_from_host' + 0xcf, // STORE_FAST 15 + 0xb7, // LOAD_FAST 7 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x6e, // POP_JUMP_IF_FALSE 46 + 0xb8, // LOAD_FAST 8 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x69, // POP_JUMP_IF_FALSE 41 + 0xba, // LOAD_FAST 10 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x64, // POP_JUMP_IF_FALSE 36 + 0xbb, // LOAD_FAST 11 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x5f, // POP_JUMP_IF_FALSE 31 + 0xbc, // LOAD_FAST 12 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0xb9, // LOAD_FAST 9 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xbd, // LOAD_FAST 13 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xbe, // LOAD_FAST 14 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xbf, // LOAD_FAST 15 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb7, // LOAD_FAST 7 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x6b, // POP_JUMP_IF_FALSE 43 + 0x12,0x15, // LOAD_GLOBAL '_validate_homescreen' + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x3a, // LOAD_GLOBAL '_require_confirm_change_homescreen' + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x48,0x09, // SETUP_EXCEPT 9 + 0xb1, // LOAD_FAST 1 + 0x14,0x2b, // LOAD_METHOD 'set_homescreen' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x4a,0x11, // POP_EXCEPT_JUMP 17 + 0x57, // DUP_TOP + 0x12,0x5b, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb8, // LOAD_FAST 8 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x62, // POP_JUMP_IF_FALSE 34 + 0x12,0x5c, // LOAD_GLOBAL 'len' + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x2c, // LOAD_ATTR 'LABEL_MAXLENGTH' + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x3c, // LOAD_GLOBAL '_require_confirm_change_label' + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x2d, // LOAD_METHOD 'set_label' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xba, // LOAD_FAST 10 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x12,0x42, // LOAD_GLOBAL '_require_confirm_change_passphrase' + 0xba, // LOAD_FAST 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x2e, // LOAD_METHOD 'set_passphrase_enabled' + 0xba, // LOAD_FAST 10 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x5e, // POP_JUMP_IF_FALSE 30 + 0xb1, // LOAD_FAST 1 + 0x14,0x2f, // LOAD_METHOD 'is_passphrase_enabled' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x47, // LOAD_GLOBAL '_require_confirm_change_passphrase_source' + 0xbb, // LOAD_FAST 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x30, // LOAD_METHOD 'set_passphrase_always_on_device' + 0xbb, // LOAD_FAST 11 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x6a, // POP_JUMP_IF_FALSE 42 + 0xb9, // LOAD_FAST 9 + 0xb1, // LOAD_FAST 1 + 0x13,0x31, // LOAD_ATTR 'AUTOLOCK_DELAY_MINIMUM' + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb9, // LOAD_FAST 9 + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'AUTOLOCK_DELAY_MAXIMUM' + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x4d, // LOAD_GLOBAL '_require_confirm_change_autolock_delay' + 0xb9, // LOAD_FAST 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x33, // LOAD_METHOD 'set_autolock_delay_ms' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xbd, // LOAD_FAST 13 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x12,0x50, // LOAD_GLOBAL '_require_confirm_safety_checks' + 0xbd, // LOAD_FAST 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x34, // LOAD_METHOD 'apply_setting' + 0xbd, // LOAD_FAST 13 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xbc, // LOAD_FAST 12 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x12,0x48, // LOAD_GLOBAL '_require_confirm_change_display_rotation' + 0xbc, // LOAD_FAST 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x35, // LOAD_METHOD 'set_rotation' + 0xbc, // LOAD_FAST 12 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x12,0x58, // LOAD_GLOBAL '_require_confirm_experimental_features' + 0xbe, // LOAD_FAST 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x36, // LOAD_METHOD 'set_experimental_features' + 0xbe, // LOAD_FAST 14 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xbf, // LOAD_FAST 15 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x5d, // POP_JUMP_IF_FALSE 29 + 0xb6, // LOAD_FAST 6 + 0x14,0x37, // LOAD_METHOD 'is_strict' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x59, // LOAD_GLOBAL '_require_confirm_hide_passphrase_from_host' + 0xbf, // LOAD_FAST 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x38, // LOAD_METHOD 'set_hide_passphrase_from_host' + 0xbf, // LOAD_FAST 15 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x10,0x39, // LOAD_CONST_STRING 'message' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_apply_settings_apply_settings = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_apply_settings_apply_settings, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 542, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 22, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_apps_management_apply_settings_apply_settings + 6, + .line_info_top = fun_data_apps_management_apply_settings_apply_settings + 77, + .opcodes = fun_data_apps_management_apply_settings_apply_settings + 77, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_apply_settings__lt_module_gt_ +// frozen bytecode for file apps/management/apply_settings.py, scope apps_management_apply_settings__require_confirm_change_homescreen +static const byte fun_data_apps_management_apply_settings__require_confirm_change_homescreen[29] = { + 0x99,0x40,0x0a, // prelude + 0x3a,0x23, // names: _require_confirm_change_homescreen, homescreen + 0x80,0x99,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3b, // LOAD_CONST_STRING 'confirm_homescreen' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x3b, // IMPORT_FROM 'confirm_homescreen' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_apply_settings__require_confirm_change_homescreen = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_apply_settings__require_confirm_change_homescreen, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 58, + .line_info = fun_data_apps_management_apply_settings__require_confirm_change_homescreen + 5, + .line_info_top = fun_data_apps_management_apply_settings__require_confirm_change_homescreen + 8, + .opcodes = fun_data_apps_management_apply_settings__require_confirm_change_homescreen + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_apply_settings__lt_module_gt_ +// frozen bytecode for file apps/management/apply_settings.py, scope apps_management_apply_settings__require_confirm_change_label +static const byte fun_data_apps_management_apply_settings__require_confirm_change_label[46] = { + 0xd1,0x40,0x0e, // prelude + 0x3c,0x24, // names: _require_confirm_change_label, label + 0x80,0x9f,0x4b,0x43,0x24, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3d, // LOAD_CONST_STRING 'confirm_single' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x3d, // IMPORT_FROM 'confirm_single' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x10,0x2d, // LOAD_CONST_STRING 'set_label' + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x10,0x3e, // LOAD_CONST_STRING 'description' + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x10,0x3f, // LOAD_CONST_STRING 'description_param' + 0xb0, // LOAD_FAST 0 + 0x10,0x40, // LOAD_CONST_STRING 'verb' + 0x10,0x41, // LOAD_CONST_STRING 'Change' + 0x34,0x86,0x02, // CALL_FUNCTION 770 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_apply_settings__require_confirm_change_label = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_apply_settings__require_confirm_change_label, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 60, + .line_info = fun_data_apps_management_apply_settings__require_confirm_change_label + 5, + .line_info_top = fun_data_apps_management_apply_settings__require_confirm_change_label + 10, + .opcodes = fun_data_apps_management_apply_settings__require_confirm_change_label + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_apply_settings__lt_module_gt_ +// frozen bytecode for file apps/management/apply_settings.py, scope apps_management_apply_settings__require_confirm_change_passphrase +static const byte fun_data_apps_management_apply_settings__require_confirm_change_passphrase[63] = { + 0xe1,0x40,0x12, // prelude + 0x42,0x5e, // names: _require_confirm_change_passphrase, use + 0x80,0xab,0x2a,0x28,0x28,0x22,0x22, // code info + 0xb0, // LOAD_FAST 0 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x10,0x43, // LOAD_CONST_STRING 'on' + 0x42,0x42, // JUMP 2 + 0x10,0x44, // LOAD_CONST_STRING 'off' + 0xc1, // STORE_FAST 1 + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x14,0x12, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0x10,0x45, // LOAD_CONST_STRING 'Turn {}' + 0x14,0x12, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x12,0x07, // LOAD_GLOBAL 'confirm_action' + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x10,0x3e, // LOAD_CONST_STRING 'description' + 0xb2, // LOAD_FAST 2 + 0x10,0x40, // LOAD_CONST_STRING 'verb' + 0xb3, // LOAD_FAST 3 + 0x10,0x46, // LOAD_CONST_STRING 'br_code' + 0x12,0x5a, // LOAD_GLOBAL 'BRT_PROTECT_CALL' + 0x34,0x86,0x02, // CALL_FUNCTION 770 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_apply_settings__require_confirm_change_passphrase = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_apply_settings__require_confirm_change_passphrase, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 63, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 66, + .line_info = fun_data_apps_management_apply_settings__require_confirm_change_passphrase + 5, + .line_info_top = fun_data_apps_management_apply_settings__require_confirm_change_passphrase + 12, + .opcodes = fun_data_apps_management_apply_settings__require_confirm_change_passphrase + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_apply_settings__lt_module_gt_ +// frozen bytecode for file apps/management/apply_settings.py, scope apps_management_apply_settings__require_confirm_change_passphrase_source +static const byte fun_data_apps_management_apply_settings__require_confirm_change_passphrase_source[44] = { + 0xc1,0x40,0x12, // prelude + 0x47,0x27, // names: _require_confirm_change_passphrase_source, passphrase_always_on_device + 0x80,0xba,0x20,0x47,0x43,0x22,0x22, // code info + 0xb0, // LOAD_FAST 0 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0x42,0x42, // JUMP 2 + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0xc1, // STORE_FAST 1 + 0x12,0x07, // LOAD_GLOBAL 'confirm_action' + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0x23,0x17, // LOAD_CONST_OBJ 23 + 0x10,0x3e, // LOAD_CONST_STRING 'description' + 0xb1, // LOAD_FAST 1 + 0x10,0x46, // LOAD_CONST_STRING 'br_code' + 0x12,0x5a, // LOAD_GLOBAL 'BRT_PROTECT_CALL' + 0x34,0x84,0x02, // CALL_FUNCTION 514 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_apply_settings__require_confirm_change_passphrase_source = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_apply_settings__require_confirm_change_passphrase_source, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 71, + .line_info = fun_data_apps_management_apply_settings__require_confirm_change_passphrase_source + 5, + .line_info_top = fun_data_apps_management_apply_settings__require_confirm_change_passphrase_source + 12, + .opcodes = fun_data_apps_management_apply_settings__require_confirm_change_passphrase_source + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_apply_settings__lt_module_gt_ +// frozen bytecode for file apps/management/apply_settings.py, scope apps_management_apply_settings__require_confirm_change_display_rotation +static const byte fun_data_apps_management_apply_settings__require_confirm_change_display_rotation[97] = { + 0xd1,0x40,0x1e, // prelude + 0x48,0x5f, // names: _require_confirm_change_display_rotation, rotation + 0x80,0xc8,0x25,0x25,0x27,0x25,0x27,0x25,0x27,0x45,0x47,0x44,0x24, // code info + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x49, // LOAD_CONST_STRING 'north' + 0xc1, // STORE_FAST 1 + 0x42,0x6b, // JUMP 43 + 0xb0, // LOAD_FAST 0 + 0x22,0x80,0x5a, // LOAD_CONST_SMALL_INT 90 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x4a, // LOAD_CONST_STRING 'east' + 0xc1, // STORE_FAST 1 + 0x42,0x5f, // JUMP 31 + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x34, // LOAD_CONST_SMALL_INT 180 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x4b, // LOAD_CONST_STRING 'south' + 0xc1, // STORE_FAST 1 + 0x42,0x53, // JUMP 19 + 0xb0, // LOAD_FAST 0 + 0x22,0x82,0x0e, // LOAD_CONST_SMALL_INT 270 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x4c, // LOAD_CONST_STRING 'west' + 0xc1, // STORE_FAST 1 + 0x42,0x47, // JUMP 7 + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x18, // LOAD_CONST_OBJ 24 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x07, // LOAD_GLOBAL 'confirm_action' + 0x10,0x35, // LOAD_CONST_STRING 'set_rotation' + 0x23,0x19, // LOAD_CONST_OBJ 25 + 0x10,0x3e, // LOAD_CONST_STRING 'description' + 0x23,0x1a, // LOAD_CONST_OBJ 26 + 0x10,0x3f, // LOAD_CONST_STRING 'description_param' + 0xb1, // LOAD_FAST 1 + 0x10,0x46, // LOAD_CONST_STRING 'br_code' + 0x12,0x5a, // LOAD_GLOBAL 'BRT_PROTECT_CALL' + 0x34,0x86,0x02, // CALL_FUNCTION 770 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_apply_settings__require_confirm_change_display_rotation = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_apply_settings__require_confirm_change_display_rotation, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 97, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 72, + .line_info = fun_data_apps_management_apply_settings__require_confirm_change_display_rotation + 5, + .line_info_top = fun_data_apps_management_apply_settings__require_confirm_change_display_rotation + 18, + .opcodes = fun_data_apps_management_apply_settings__require_confirm_change_display_rotation + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_apply_settings__lt_module_gt_ +// frozen bytecode for file apps/management/apply_settings.py, scope apps_management_apply_settings__require_confirm_change_autolock_delay +static const byte fun_data_apps_management_apply_settings__require_confirm_change_autolock_delay[52] = { + 0xd1,0x40,0x12, // prelude + 0x4d,0x60, // names: _require_confirm_change_autolock_delay, delay_ms + 0x80,0xdd,0x4b,0x22,0x22,0x24,0x24, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x4e, // LOAD_CONST_STRING 'format_duration_ms' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x4f, // IMPORT_NAME 'trezor.strings' + 0x1c,0x4e, // IMPORT_FROM 'format_duration_ms' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'confirm_action' + 0x23,0x1b, // LOAD_CONST_OBJ 27 + 0x23,0x1c, // LOAD_CONST_OBJ 28 + 0x10,0x3e, // LOAD_CONST_STRING 'description' + 0x23,0x1d, // LOAD_CONST_OBJ 29 + 0x10,0x3f, // LOAD_CONST_STRING 'description_param' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x46, // LOAD_CONST_STRING 'br_code' + 0x12,0x5a, // LOAD_GLOBAL 'BRT_PROTECT_CALL' + 0x34,0x86,0x02, // CALL_FUNCTION 770 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_apply_settings__require_confirm_change_autolock_delay = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_apply_settings__require_confirm_change_autolock_delay, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 52, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 77, + .line_info = fun_data_apps_management_apply_settings__require_confirm_change_autolock_delay + 5, + .line_info_top = fun_data_apps_management_apply_settings__require_confirm_change_autolock_delay + 12, + .opcodes = fun_data_apps_management_apply_settings__require_confirm_change_autolock_delay + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_apply_settings__lt_module_gt_ +// frozen bytecode for file apps/management/apply_settings.py, scope apps_management_apply_settings__require_confirm_safety_checks +static const byte fun_data_apps_management_apply_settings__require_confirm_safety_checks[137] = { + 0x81,0x50,0x2a, // prelude + 0x50,0x61, // names: _require_confirm_safety_checks, level + 0x80,0xe9,0x4b,0x27,0x22,0x22,0x24,0x70,0x4c,0x20,0x43,0x23,0x70,0x22,0x22,0x22,0x68,0x72,0x40, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x51, // LOAD_CONST_STRING 'SafetyCheckLevel' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.enums' + 0x1c,0x51, // IMPORT_FROM 'SafetyCheckLevel' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x52, // LOAD_ATTR 'Strict' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0x12,0x07, // LOAD_GLOBAL 'confirm_action' + 0x23,0x1e, // LOAD_CONST_OBJ 30 + 0x23,0x1f, // LOAD_CONST_OBJ 31 + 0x10,0x3e, // LOAD_CONST_STRING 'description' + 0x23,0x20, // LOAD_CONST_OBJ 32 + 0x10,0x46, // LOAD_CONST_STRING 'br_code' + 0x12,0x5a, // LOAD_GLOBAL 'BRT_PROTECT_CALL' + 0x34,0x84,0x02, // CALL_FUNCTION 514 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0xc5,0x80, // JUMP 69 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x53, // LOAD_ATTR 'PromptAlways' + 0xb1, // LOAD_FAST 1 + 0x13,0x54, // LOAD_ATTR 'PromptTemporarily' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0x44,0x76, // POP_JUMP_IF_FALSE 54 + 0x23,0x21, // LOAD_CONST_OBJ 33 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x14,0x12, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x54, // LOAD_ATTR 'PromptTemporarily' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x22, // LOAD_CONST_OBJ 34 + 0x42,0x42, // JUMP 2 + 0x10,0x55, // LOAD_CONST_STRING ' ' + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x12,0x07, // LOAD_GLOBAL 'confirm_action' + 0x23,0x1e, // LOAD_CONST_OBJ 30 + 0x23,0x23, // LOAD_CONST_OBJ 35 + 0x23,0x24, // LOAD_CONST_OBJ 36 + 0xb3, // LOAD_FAST 3 + 0x10,0x56, // LOAD_CONST_STRING 'hold' + 0x52, // LOAD_CONST_TRUE + 0x10,0x40, // LOAD_CONST_STRING 'verb' + 0x23,0x25, // LOAD_CONST_OBJ 37 + 0x10,0x57, // LOAD_CONST_STRING 'reverse' + 0x52, // LOAD_CONST_TRUE + 0x10,0x46, // LOAD_CONST_STRING 'br_code' + 0x12,0x5a, // LOAD_GLOBAL 'BRT_PROTECT_CALL' + 0x34,0x88,0x04, // CALL_FUNCTION 1028 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x43, // JUMP 3 + 0x12,0x5b, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_apply_settings__require_confirm_safety_checks = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_apply_settings__require_confirm_safety_checks, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 137, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 80, + .line_info = fun_data_apps_management_apply_settings__require_confirm_safety_checks + 5, + .line_info_top = fun_data_apps_management_apply_settings__require_confirm_safety_checks + 24, + .opcodes = fun_data_apps_management_apply_settings__require_confirm_safety_checks + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_apply_settings__lt_module_gt_ +// frozen bytecode for file apps/management/apply_settings.py, scope apps_management_apply_settings__require_confirm_experimental_features +static const byte fun_data_apps_management_apply_settings__require_confirm_experimental_features[40] = { + 0xc9,0x40,0x10, // prelude + 0x58,0x62, // names: _require_confirm_experimental_features, enable + 0x90,0x0a,0x23,0x44,0x22,0x22, // code info + 0xb0, // LOAD_FAST 0 + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0x12,0x07, // LOAD_GLOBAL 'confirm_action' + 0x10,0x36, // LOAD_CONST_STRING 'set_experimental_features' + 0x23,0x26, // LOAD_CONST_OBJ 38 + 0x23,0x27, // LOAD_CONST_OBJ 39 + 0x23,0x28, // LOAD_CONST_OBJ 40 + 0x10,0x57, // LOAD_CONST_STRING 'reverse' + 0x52, // LOAD_CONST_TRUE + 0x10,0x46, // LOAD_CONST_STRING 'br_code' + 0x12,0x5a, // LOAD_GLOBAL 'BRT_PROTECT_CALL' + 0x34,0x84,0x04, // CALL_FUNCTION 516 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_apply_settings__require_confirm_experimental_features = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_apply_settings__require_confirm_experimental_features, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 40, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 88, + .line_info = fun_data_apps_management_apply_settings__require_confirm_experimental_features + 5, + .line_info_top = fun_data_apps_management_apply_settings__require_confirm_experimental_features + 11, + .opcodes = fun_data_apps_management_apply_settings__require_confirm_experimental_features + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_apply_settings__lt_module_gt_ +// frozen bytecode for file apps/management/apply_settings.py, scope apps_management_apply_settings__require_confirm_hide_passphrase_from_host +static const byte fun_data_apps_management_apply_settings__require_confirm_hide_passphrase_from_host[36] = { + 0xb9,0x40,0x0e, // prelude + 0x59,0x62, // names: _require_confirm_hide_passphrase_from_host, enable + 0x90,0x16,0x23,0x44,0x24, // code info + 0xb0, // LOAD_FAST 0 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x12,0x07, // LOAD_GLOBAL 'confirm_action' + 0x10,0x38, // LOAD_CONST_STRING 'set_hide_passphrase_from_host' + 0x23,0x29, // LOAD_CONST_OBJ 41 + 0x10,0x3e, // LOAD_CONST_STRING 'description' + 0x23,0x2a, // LOAD_CONST_OBJ 42 + 0x10,0x46, // LOAD_CONST_STRING 'br_code' + 0x12,0x5a, // LOAD_GLOBAL 'BRT_PROTECT_CALL' + 0x34,0x84,0x02, // CALL_FUNCTION 514 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_apply_settings__require_confirm_hide_passphrase_from_host = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_apply_settings__require_confirm_hide_passphrase_from_host, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 89, + .line_info = fun_data_apps_management_apply_settings__require_confirm_hide_passphrase_from_host + 5, + .line_info_top = fun_data_apps_management_apply_settings__require_confirm_hide_passphrase_from_host + 10, + .opcodes = fun_data_apps_management_apply_settings__require_confirm_hide_passphrase_from_host + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_apply_settings__lt_module_gt_[] = { + &raw_code_apps_management_apply_settings__validate_homescreen_model_specific, + &raw_code_apps_management_apply_settings__validate_homescreen_model_specific2, + &raw_code_apps_management_apply_settings__validate_homescreen, + &raw_code_apps_management_apply_settings_apply_settings, + &raw_code_apps_management_apply_settings__require_confirm_change_homescreen, + &raw_code_apps_management_apply_settings__require_confirm_change_label, + &raw_code_apps_management_apply_settings__require_confirm_change_passphrase, + &raw_code_apps_management_apply_settings__require_confirm_change_passphrase_source, + &raw_code_apps_management_apply_settings__require_confirm_change_display_rotation, + &raw_code_apps_management_apply_settings__require_confirm_change_autolock_delay, + &raw_code_apps_management_apply_settings__require_confirm_safety_checks, + &raw_code_apps_management_apply_settings__require_confirm_experimental_features, + &raw_code_apps_management_apply_settings__require_confirm_hide_passphrase_from_host, +}; + +static const mp_raw_code_t raw_code_apps_management_apply_settings__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_apply_settings__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 162, + #endif + .children = (void *)&children_apps_management_apply_settings__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 13, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_apply_settings__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_apply_settings__lt_module_gt_ + 37, + .opcodes = fun_data_apps_management_apply_settings__lt_module_gt_ + 37, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_apply_settings[99] = { + MP_QSTR_apps_slash_management_slash_apply_settings_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_trezorui2, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_confirm_action, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_ProtectCall, + MP_QSTR_INTERNAL_MODEL, + MP_QSTR__validate_homescreen_model_specific, + MP_QSTR_HEIGHT, + MP_QSTR_WIDTH, + MP_QSTR_trezor_dot_ui, + MP_QSTR_toif_info, + MP_QSTR_format, + MP_QSTR_jpeg_info, + MP_QSTR_jpeg_test, + MP_QSTR__validate_homescreen, + MP_QSTR_storage_dot_device, + MP_QSTR_device, + MP_QSTR_HOMESCREEN_MAXSIZE, + MP_QSTR_apply_settings, + MP_QSTR_Success, + MP_QSTR_trezor_dot_messages, + MP_QSTR_NotInitialized, + MP_QSTR_ProcessError, + MP_QSTR_reload_settings_from_storage, + MP_QSTR_apps_dot_base, + MP_QSTR_safety_checks, + MP_QSTR_apps_dot_common, + MP_QSTR_is_initialized, + MP_QSTR_homescreen, + MP_QSTR_label, + MP_QSTR_auto_lock_delay_ms, + MP_QSTR_use_passphrase, + MP_QSTR_passphrase_always_on_device, + MP_QSTR_display_rotation, + MP_QSTR_experimental_features, + MP_QSTR_hide_passphrase_from_host, + MP_QSTR_set_homescreen, + MP_QSTR_LABEL_MAXLENGTH, + MP_QSTR_set_label, + MP_QSTR_set_passphrase_enabled, + MP_QSTR_is_passphrase_enabled, + MP_QSTR_set_passphrase_always_on_device, + MP_QSTR_AUTOLOCK_DELAY_MINIMUM, + MP_QSTR_AUTOLOCK_DELAY_MAXIMUM, + MP_QSTR_set_autolock_delay_ms, + MP_QSTR_apply_setting, + MP_QSTR_set_rotation, + MP_QSTR_set_experimental_features, + MP_QSTR_is_strict, + MP_QSTR_set_hide_passphrase_from_host, + MP_QSTR_message, + MP_QSTR__require_confirm_change_homescreen, + MP_QSTR_confirm_homescreen, + MP_QSTR__require_confirm_change_label, + MP_QSTR_confirm_single, + MP_QSTR_description, + MP_QSTR_description_param, + MP_QSTR_verb, + MP_QSTR_Change, + MP_QSTR__require_confirm_change_passphrase, + MP_QSTR_on, + MP_QSTR_off, + MP_QSTR_Turn_space__brace_open__brace_close_, + MP_QSTR_br_code, + MP_QSTR__require_confirm_change_passphrase_source, + MP_QSTR__require_confirm_change_display_rotation, + MP_QSTR_north, + MP_QSTR_east, + MP_QSTR_south, + MP_QSTR_west, + MP_QSTR__require_confirm_change_autolock_delay, + MP_QSTR_format_duration_ms, + MP_QSTR_trezor_dot_strings, + MP_QSTR__require_confirm_safety_checks, + MP_QSTR_SafetyCheckLevel, + MP_QSTR_Strict, + MP_QSTR_PromptAlways, + MP_QSTR_PromptTemporarily, + MP_QSTR__space_, + MP_QSTR_hold, + MP_QSTR_reverse, + MP_QSTR__require_confirm_experimental_features, + MP_QSTR__require_confirm_hide_passphrase_from_host, + MP_QSTR_BRT_PROTECT_CALL, + MP_QSTR_ValueError, + MP_QSTR_len, + MP_QSTR_msg, + MP_QSTR_use, + MP_QSTR_rotation, + MP_QSTR_delay_ms, + MP_QSTR_level, + MP_QSTR_enable, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_management_apply_settings_0 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_T1B1), + MP_ROM_QSTR(MP_QSTR_T2B1), +}}; +static const mp_obj_str_t const_obj_apps_management_apply_settings_2 = {{&mp_type_str}, 56691, 36, (const byte*)"\x48\x6f\x6d\x65\x73\x63\x72\x65\x65\x6e\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x7b\x7d\x78\x7b\x7d\x20\x70\x69\x78\x65\x6c\x20\x6c\x61\x72\x67\x65"}; +static const mp_obj_str_t const_obj_apps_management_apply_settings_3 = {{&mp_type_str}, 19755, 28, (const byte*)"\x48\x6f\x6d\x65\x73\x63\x72\x65\x65\x6e\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x67\x72\x61\x79\x73\x63\x61\x6c\x65"}; +static const mp_obj_str_t const_obj_apps_management_apply_settings_6 = {{&mp_type_str}, 45553, 49, (const byte*)"\x48\x6f\x6d\x65\x73\x63\x72\x65\x65\x6e\x20\x69\x73\x20\x74\x6f\x6f\x20\x6c\x61\x72\x67\x65\x2c\x20\x6d\x61\x78\x69\x6d\x75\x6d\x20\x73\x69\x7a\x65\x20\x69\x73\x20\x7b\x7d\x20\x62\x79\x74\x65\x73"}; +static const mp_obj_str_t const_obj_apps_management_apply_settings_7 = {{&mp_type_str}, 4478, 25, (const byte*)"\x44\x65\x76\x69\x63\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64"}; +static const mp_obj_str_t const_obj_apps_management_apply_settings_10 = {{&mp_type_str}, 22211, 25, (const byte*)"\x50\x61\x73\x73\x70\x68\x72\x61\x73\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x65\x6e\x61\x62\x6c\x65\x64"}; +static const mp_obj_str_t const_obj_apps_management_apply_settings_11 = {{&mp_type_str}, 38143, 25, (const byte*)"\x41\x75\x74\x6f\x2d\x6c\x6f\x63\x6b\x20\x64\x65\x6c\x61\x79\x20\x74\x6f\x6f\x20\x73\x68\x6f\x72\x74"}; +static const mp_obj_str_t const_obj_apps_management_apply_settings_16 = {{&mp_type_str}, 24478, 25, (const byte*)"\x43\x68\x61\x6e\x67\x65\x20\x64\x65\x76\x69\x63\x65\x20\x6e\x61\x6d\x65\x20\x74\x6f\x20\x7b\x7d\x3f"}; +static const mp_obj_str_t const_obj_apps_management_apply_settings_17 = {{&mp_type_str}, 32590, 30, (const byte*)"\x54\x75\x72\x6e\x20\x7b\x7d\x20\x70\x61\x73\x73\x70\x68\x72\x61\x73\x65\x20\x70\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x3f"}; +static const mp_obj_str_t const_obj_apps_management_apply_settings_20 = {{&mp_type_str}, 7103, 60, (const byte*)"\x44\x6f\x20\x79\x6f\x75\x20\x72\x65\x61\x6c\x6c\x79\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x65\x6e\x74\x65\x72\x20\x70\x61\x73\x73\x70\x68\x72\x61\x73\x65\x20\x61\x6c\x77\x61\x79\x73\x20\x6f\x6e\x20\x74\x68\x65\x20\x64\x65\x76\x69\x63\x65\x3f"}; +static const mp_obj_str_t const_obj_apps_management_apply_settings_21 = {{&mp_type_str}, 20703, 55, (const byte*)"\x44\x6f\x20\x79\x6f\x75\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x72\x65\x76\x6f\x6b\x65\x20\x74\x68\x65\x20\x70\x61\x73\x73\x70\x68\x72\x61\x73\x65\x20\x6f\x6e\x20\x64\x65\x76\x69\x63\x65\x20\x73\x65\x74\x74\x69\x6e\x67\x3f"}; +static const mp_obj_str_t const_obj_apps_management_apply_settings_24 = {{&mp_type_str}, 11518, 28, (const byte*)"\x55\x6e\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x64\x69\x73\x70\x6c\x61\x79\x20\x72\x6f\x74\x61\x74\x69\x6f\x6e"}; +static const mp_obj_str_t const_obj_apps_management_apply_settings_26 = {{&mp_type_str}, 19570, 44, (const byte*)"\x44\x6f\x20\x79\x6f\x75\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x63\x68\x61\x6e\x67\x65\x20\x64\x65\x76\x69\x63\x65\x20\x72\x6f\x74\x61\x74\x69\x6f\x6e\x20\x74\x6f\x20\x7b\x7d\x3f"}; +static const mp_obj_str_t const_obj_apps_management_apply_settings_29 = {{&mp_type_str}, 24743, 45, (const byte*)"\x41\x75\x74\x6f\x2d\x6c\x6f\x63\x6b\x20\x79\x6f\x75\x72\x20\x54\x72\x65\x7a\x6f\x72\x20\x61\x66\x74\x65\x72\x20\x7b\x7d\x20\x6f\x66\x20\x69\x6e\x61\x63\x74\x69\x76\x69\x74\x79\x3f"}; +static const mp_obj_str_t const_obj_apps_management_apply_settings_32 = {{&mp_type_str}, 31978, 65, (const byte*)"\x44\x6f\x20\x79\x6f\x75\x20\x72\x65\x61\x6c\x6c\x79\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x65\x6e\x66\x6f\x72\x63\x65\x20\x73\x74\x72\x69\x63\x74\x20\x73\x61\x66\x65\x74\x79\x20\x63\x68\x65\x63\x6b\x73\x20\x28\x72\x65\x63\x6f\x6d\x6d\x65\x6e\x64\x65\x64\x29\x3f"}; +static const mp_obj_str_t const_obj_apps_management_apply_settings_33 = {{&mp_type_str}, 20943, 69, (const byte*)"\x54\x72\x65\x7a\x6f\x72\x20\x77\x69\x6c\x6c\x7b\x7d\x61\x6c\x6c\x6f\x77\x20\x79\x6f\x75\x20\x74\x6f\x20\x61\x70\x70\x72\x6f\x76\x65\x20\x73\x6f\x6d\x65\x20\x61\x63\x74\x69\x6f\x6e\x73\x20\x77\x68\x69\x63\x68\x20\x6d\x69\x67\x68\x74\x20\x62\x65\x20\x75\x6e\x73\x61\x66\x65\x2e"}; +static const mp_obj_str_t const_obj_apps_management_apply_settings_39 = {{&mp_type_str}, 50583, 38, (const byte*)"\x4f\x6e\x6c\x79\x20\x66\x6f\x72\x20\x64\x65\x76\x65\x6c\x6f\x70\x6d\x65\x6e\x74\x20\x61\x6e\x64\x20\x62\x65\x74\x61\x20\x74\x65\x73\x74\x69\x6e\x67\x21"}; +static const mp_obj_str_t const_obj_apps_management_apply_settings_40 = {{&mp_type_str}, 35120, 29, (const byte*)"\x45\x6e\x61\x62\x6c\x65\x20\x65\x78\x70\x65\x72\x69\x6d\x65\x6e\x74\x61\x6c\x20\x66\x65\x61\x74\x75\x72\x65\x73\x3f"}; +static const mp_obj_str_t const_obj_apps_management_apply_settings_42 = {{&mp_type_str}, 43841, 33, (const byte*)"\x48\x69\x64\x65\x20\x70\x61\x73\x73\x70\x68\x72\x61\x73\x65\x20\x63\x6f\x6d\x69\x6e\x67\x20\x66\x72\x6f\x6d\x20\x68\x6f\x73\x74\x3f"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_management_apply_settings[43] = { + MP_ROM_PTR(&const_obj_apps_management_apply_settings_0), + MP_ROM_QSTR(MP_QSTR_Invalid_space_homescreen), + MP_ROM_PTR(&const_obj_apps_management_apply_settings_2), + MP_ROM_PTR(&const_obj_apps_management_apply_settings_3), + MP_ROM_QSTR(MP_QSTR_Unsupported_space_jpeg_space_type), + MP_ROM_PTR(&mp_const_empty_bytes_obj), + MP_ROM_PTR(&const_obj_apps_management_apply_settings_6), + MP_ROM_PTR(&const_obj_apps_management_apply_settings_7), + MP_ROM_QSTR(MP_QSTR_No_space_setting_space_provided), + MP_ROM_QSTR(MP_QSTR_Label_space_too_space_long), + MP_ROM_PTR(&const_obj_apps_management_apply_settings_10), + MP_ROM_PTR(&const_obj_apps_management_apply_settings_11), + MP_ROM_QSTR(MP_QSTR_Auto_hyphen_lock_space_delay_space_too_space_long), + MP_ROM_QSTR(MP_QSTR_Safety_space_checks_space_are_space_strict), + MP_ROM_QSTR(MP_QSTR_Settings_space_applied), + MP_ROM_QSTR(MP_QSTR_Device_space_name), + MP_ROM_PTR(&const_obj_apps_management_apply_settings_16), + MP_ROM_PTR(&const_obj_apps_management_apply_settings_17), + MP_ROM_QSTR(MP_QSTR_set_passphrase), + MP_ROM_QSTR(MP_QSTR_Passphrase_space_settings), + MP_ROM_PTR(&const_obj_apps_management_apply_settings_20), + MP_ROM_PTR(&const_obj_apps_management_apply_settings_21), + MP_ROM_QSTR(MP_QSTR_set_passphrase_source), + MP_ROM_QSTR(MP_QSTR_Passphrase_space_source), + MP_ROM_PTR(&const_obj_apps_management_apply_settings_24), + MP_ROM_QSTR(MP_QSTR_Change_space_rotation), + MP_ROM_PTR(&const_obj_apps_management_apply_settings_26), + MP_ROM_QSTR(MP_QSTR_set_autolock_delay), + MP_ROM_QSTR(MP_QSTR_Auto_hyphen_lock_space_delay), + MP_ROM_PTR(&const_obj_apps_management_apply_settings_29), + MP_ROM_QSTR(MP_QSTR_set_safety_checks), + MP_ROM_QSTR(MP_QSTR_Safety_space_checks), + MP_ROM_PTR(&const_obj_apps_management_apply_settings_32), + MP_ROM_PTR(&const_obj_apps_management_apply_settings_33), + MP_ROM_QSTR(MP_QSTR__space_temporarily_space_), + MP_ROM_QSTR(MP_QSTR_Safety_space_override), + MP_ROM_QSTR(MP_QSTR_Are_space_you_space_sure_question_), + MP_ROM_QSTR(MP_QSTR_Hold_space_to_space_confirm), + MP_ROM_QSTR(MP_QSTR_Experimental_space_mode), + MP_ROM_PTR(&const_obj_apps_management_apply_settings_39), + MP_ROM_PTR(&const_obj_apps_management_apply_settings_40), + MP_ROM_QSTR(MP_QSTR_Hide_space_passphrase), + MP_ROM_PTR(&const_obj_apps_management_apply_settings_42), +}; + +static const mp_frozen_module_t frozen_module_apps_management_apply_settings = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_apply_settings, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_management_apply_settings, + }, + .rc = &raw_code_apps_management_apply_settings__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_authenticate_device +// - original source file: build/firmware/src/apps/management/authenticate_device.mpy +// - frozen file name: apps/management/authenticate_device.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/authenticate_device.py, scope apps_management_authenticate_device__lt_module_gt_ +static const byte fun_data_apps_management_authenticate_device__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'authenticate_device' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_authenticate_device__lt_module_gt_ +// frozen bytecode for file apps/management/authenticate_device.py, scope apps_management_authenticate_device_authenticate_device +static const byte fun_data_apps_management_authenticate_device_authenticate_device[481] = { + 0xf5,0x50,0x60, // prelude + 0x02,0x34, // names: authenticate_device, msg + 0x80,0x07,0x30,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x50,0x4b,0x25,0x48,0x43,0x24,0x74,0x20,0x23,0x29,0x2a,0x27,0x2c,0x49,0x2b,0x47,0x22,0x32,0x27,0x4b,0x24,0x2d,0x23,0x26,0x2b,0x28,0x27,0x2c,0x29,0x5a,0x25,0x27,0x26,0x2b,0x4e,0x49, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'utils' + 0x10,0x04, // LOAD_CONST_STRING 'wire' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x05, // IMPORT_NAME 'trezor' + 0x1c,0x03, // IMPORT_FROM 'utils' + 0xc1, // STORE_FAST 1 + 0x1c,0x04, // IMPORT_FROM 'wire' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'optiga' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x06, // IMPORT_FROM 'optiga' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'read_length' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.crypto.der' + 0x1c,0x08, // IMPORT_FROM 'read_length' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x0a, // IMPORT_FROM 'sha256' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'sleep' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'trezor.loop' + 0x1c,0x0c, // IMPORT_FROM 'sleep' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'AuthenticityProof' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0e, // IMPORT_FROM 'AuthenticityProof' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'confirm_action' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x10, // IMPORT_FROM 'confirm_action' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x12, // LOAD_CONST_STRING 'progress' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME 'trezor.ui.layouts.progress' + 0x1c,0x12, // IMPORT_FROM 'progress' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x14, // LOAD_CONST_STRING 'BufferReader' + 0x10,0x15, // LOAD_CONST_STRING 'bootloader_locked' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x16, // IMPORT_NAME 'trezor.utils' + 0x1c,0x14, // IMPORT_FROM 'BufferReader' + 0xca, // STORE_FAST 10 + 0x1c,0x15, // IMPORT_FROM 'bootloader_locked' + 0xcb, // STORE_FAST 11 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING 'write_compact_size' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME 'apps.common.writers' + 0x1c,0x17, // IMPORT_FROM 'write_compact_size' + 0xcc, // STORE_FAST 12 + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0x34,0x00, // CALL_FUNCTION 0 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x19, // LOAD_METHOD 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb8, // LOAD_FAST 8 + 0x10,0x02, // LOAD_CONST_STRING 'authenticate_device' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x10,0x1a, // LOAD_CONST_STRING 'description' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x14,0x1b, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x13,0x1c, // LOAD_ATTR 'MODEL_FULL_NAME' + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x1d, // LOAD_CONST_STRING 'verb' + 0x10,0x1e, // LOAD_CONST_STRING 'Allow' + 0x34,0x84,0x02, // CALL_FUNCTION 514 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xcd, // STORE_FAST 13 + 0xb1, // LOAD_FAST 1 + 0x14,0x1f, // LOAD_METHOD 'HashWriter' + 0xb5, // LOAD_FAST 5 + 0x34,0x00, // CALL_FUNCTION 0 + 0x36,0x01, // CALL_METHOD 1 + 0xce, // STORE_FAST 14 + 0xbc, // LOAD_FAST 12 + 0xbe, // LOAD_FAST 14 + 0x12,0x35, // LOAD_GLOBAL 'len' + 0xbd, // LOAD_FAST 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x14,0x20, // LOAD_METHOD 'extend' + 0xbd, // LOAD_FAST 13 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xbc, // LOAD_FAST 12 + 0xbe, // LOAD_FAST 14 + 0x12,0x35, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'challenge' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x14,0x20, // LOAD_METHOD 'extend' + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'challenge' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x10,0x22, // LOAD_CONST_STRING '' + 0x10,0x1a, // LOAD_CONST_STRING 'description' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0xcf, // STORE_FAST 15 + 0xbf, // LOAD_FAST 15 + 0x14,0x23, // LOAD_METHOD 'report' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x48,0x11, // SETUP_EXCEPT 17 + 0xb3, // LOAD_FAST 3 + 0x14,0x24, // LOAD_METHOD 'sign' + 0xb3, // LOAD_FAST 3 + 0x13,0x25, // LOAD_ATTR 'DEVICE_ECC_KEY_INDEX' + 0xbe, // LOAD_FAST 14 + 0x14,0x26, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x10, // STORE_FAST_N 16 + 0x4a,0x13, // POP_EXCEPT_JUMP 19 + 0x57, // DUP_TOP + 0xb3, // LOAD_FAST 3 + 0x13,0x27, // LOAD_ATTR 'SigningInaccessible' + 0xdf, // BINARY_OP 8 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x19, // LOAD_METHOD 'ProcessError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x2b,0x00, // BUILD_LIST 0 + 0x26,0x11, // STORE_FAST_N 17 + 0xba, // LOAD_FAST 10 + 0xb3, // LOAD_FAST 3 + 0x14,0x28, // LOAD_METHOD 'get_certificate' + 0xb3, // LOAD_FAST 3 + 0x13,0x29, // LOAD_ATTR 'DEVICE_CERT_INDEX' + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x12, // STORE_FAST_N 18 + 0x42,0xc4,0x80, // JUMP 68 + 0x24,0x12, // LOAD_FAST_N 18 + 0x13,0x2a, // LOAD_ATTR 'offset' + 0x26,0x13, // STORE_FAST_N 19 + 0x24,0x12, // LOAD_FAST_N 18 + 0x14,0x2b, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x22,0x30, // LOAD_CONST_SMALL_INT 48 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x2c, // LOAD_METHOD 'FirmwareError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x24,0x12, // LOAD_FAST_N 18 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x14, // STORE_FAST_N 20 + 0x24,0x12, // LOAD_FAST_N 18 + 0x13,0x2a, // LOAD_ATTR 'offset' + 0x24,0x13, // LOAD_FAST_N 19 + 0xf3, // BINARY_OP 28 __sub__ + 0x24,0x14, // LOAD_FAST_N 20 + 0xf2, // BINARY_OP 27 __add__ + 0x26,0x15, // STORE_FAST_N 21 + 0x24,0x12, // LOAD_FAST_N 18 + 0x14,0x2d, // LOAD_METHOD 'seek' + 0x24,0x13, // LOAD_FAST_N 19 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x24,0x11, // LOAD_FAST_N 17 + 0x14,0x2e, // LOAD_METHOD 'append' + 0x24,0x12, // LOAD_FAST_N 18 + 0x14,0x2f, // LOAD_METHOD 'read_memoryview' + 0x24,0x15, // LOAD_FAST_N 21 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x24,0x12, // LOAD_FAST_N 18 + 0x14,0x30, // LOAD_METHOD 'remaining_count' + 0x36,0x00, // CALL_METHOD 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0xb1,0x7f, // POP_JUMP_IF_TRUE -79 + 0xb1, // LOAD_FAST 1 + 0x13,0x31, // LOAD_ATTR 'DISABLE_ANIMATION' + 0x43,0x6f, // POP_JUMP_IF_TRUE 47 + 0xb6, // LOAD_FAST 6 + 0x22,0x3c, // LOAD_CONST_SMALL_INT 60 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x16, // STORE_FAST_N 22 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x42,0x56, // JUMP 22 + 0x57, // DUP_TOP + 0x26,0x17, // STORE_FAST_N 23 + 0xbf, // LOAD_FAST 15 + 0x14,0x23, // LOAD_METHOD 'report' + 0x24,0x17, // LOAD_FAST_N 23 + 0x22,0x32, // LOAD_CONST_SMALL_INT 50 + 0xf4, // BINARY_OP 29 __mul__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x24,0x16, // LOAD_FAST_N 22 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x57, // DUP_TOP + 0x94, // LOAD_CONST_SMALL_INT 20 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x25, // POP_JUMP_IF_TRUE -27 + 0x59, // POP_TOP + 0xbf, // LOAD_FAST 15 + 0x14,0x23, // LOAD_METHOD 'report' + 0x22,0x87,0x68, // LOAD_CONST_SMALL_INT 1000 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x10,0x32, // LOAD_CONST_STRING 'certificates' + 0x24,0x11, // LOAD_FAST_N 17 + 0x10,0x33, // LOAD_CONST_STRING 'signature' + 0x24,0x10, // LOAD_FAST_N 16 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_authenticate_device_authenticate_device = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_authenticate_device_authenticate_device, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 481, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 31, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_management_authenticate_device_authenticate_device + 5, + .line_info_top = fun_data_apps_management_authenticate_device_authenticate_device + 51, + .opcodes = fun_data_apps_management_authenticate_device_authenticate_device + 51, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_authenticate_device__lt_module_gt_[] = { + &raw_code_apps_management_authenticate_device_authenticate_device, +}; + +static const mp_raw_code_t raw_code_apps_management_authenticate_device__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_authenticate_device__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_management_authenticate_device__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_authenticate_device__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_authenticate_device__lt_module_gt_ + 6, + .opcodes = fun_data_apps_management_authenticate_device__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_authenticate_device[54] = { + MP_QSTR_apps_slash_management_slash_authenticate_device_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_authenticate_device, + MP_QSTR_utils, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_optiga, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_read_length, + MP_QSTR_trezor_dot_crypto_dot_der, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_sleep, + MP_QSTR_trezor_dot_loop, + MP_QSTR_AuthenticityProof, + MP_QSTR_trezor_dot_messages, + MP_QSTR_confirm_action, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_progress, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_progress, + MP_QSTR_BufferReader, + MP_QSTR_bootloader_locked, + MP_QSTR_trezor_dot_utils, + MP_QSTR_write_compact_size, + MP_QSTR_apps_dot_common_dot_writers, + MP_QSTR_ProcessError, + MP_QSTR_description, + MP_QSTR_format, + MP_QSTR_MODEL_FULL_NAME, + MP_QSTR_verb, + MP_QSTR_Allow, + MP_QSTR_HashWriter, + MP_QSTR_extend, + MP_QSTR_challenge, + MP_QSTR_, + MP_QSTR_report, + MP_QSTR_sign, + MP_QSTR_DEVICE_ECC_KEY_INDEX, + MP_QSTR_get_digest, + MP_QSTR_SigningInaccessible, + MP_QSTR_get_certificate, + MP_QSTR_DEVICE_CERT_INDEX, + MP_QSTR_offset, + MP_QSTR_get, + MP_QSTR_FirmwareError, + MP_QSTR_seek, + MP_QSTR_append, + MP_QSTR_read_memoryview, + MP_QSTR_remaining_count, + MP_QSTR_DISABLE_ANIMATION, + MP_QSTR_certificates, + MP_QSTR_signature, + MP_QSTR_msg, + MP_QSTR_len, +}; + +// constants +static const mp_obj_str_t const_obj_apps_management_authenticate_device_0 = {{&mp_type_str}, 18433, 49, (const byte*)"\x43\x61\x6e\x6e\x6f\x74\x20\x61\x75\x74\x68\x65\x6e\x74\x69\x63\x61\x74\x65\x20\x73\x69\x6e\x63\x65\x20\x62\x6f\x6f\x74\x6c\x6f\x61\x64\x65\x72\x20\x69\x73\x20\x75\x6e\x6c\x6f\x63\x6b\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_management_authenticate_device_2 = {{&mp_type_str}, 19044, 55, (const byte*)"\x41\x6c\x6c\x6f\x77\x20\x63\x6f\x6e\x6e\x65\x63\x74\x65\x64\x20\x63\x6f\x6d\x70\x75\x74\x65\x72\x20\x74\x6f\x20\x63\x6f\x6e\x66\x69\x72\x6d\x20\x79\x6f\x75\x72\x20\x7b\x7d\x20\x69\x73\x20\x67\x65\x6e\x75\x69\x6e\x65\x3f"}; +static const mp_obj_str_t const_obj_apps_management_authenticate_device_3 = {{&mp_type_bytes}, 41898, 19, (const byte*)"\x41\x75\x74\x68\x65\x6e\x74\x69\x63\x61\x74\x65\x44\x65\x76\x69\x63\x65\x3a"}; +static const mp_obj_str_t const_obj_apps_management_authenticate_device_6 = {{&mp_type_str}, 37408, 32, (const byte*)"\x44\x65\x76\x69\x63\x65\x20\x63\x65\x72\x74\x69\x66\x69\x63\x61\x74\x65\x20\x69\x73\x20\x63\x6f\x72\x72\x75\x70\x74\x65\x64\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_management_authenticate_device[7] = { + MP_ROM_PTR(&const_obj_apps_management_authenticate_device_0), + MP_ROM_QSTR(MP_QSTR_Authenticate_space_device), + MP_ROM_PTR(&const_obj_apps_management_authenticate_device_2), + MP_ROM_PTR(&const_obj_apps_management_authenticate_device_3), + MP_ROM_QSTR(MP_QSTR_Checking_space_authenticity_dot__dot__dot_), + MP_ROM_QSTR(MP_QSTR_Signing_space_inaccessible_dot_), + MP_ROM_PTR(&const_obj_apps_management_authenticate_device_6), +}; + +static const mp_frozen_module_t frozen_module_apps_management_authenticate_device = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_authenticate_device, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_management_authenticate_device, + }, + .rc = &raw_code_apps_management_authenticate_device__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_backup_device +// - original source file: build/firmware/src/apps/management/backup_device.mpy +// - frozen file name: apps/management/backup_device.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/backup_device.py, scope apps_management_backup_device__lt_module_gt_ +static const byte fun_data_apps_management_backup_device__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'backup_device' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_backup_device__lt_module_gt_ +// frozen bytecode for file apps/management/backup_device.py, scope apps_management_backup_device_backup_device +static const byte fun_data_apps_management_backup_device_backup_device[174] = { + 0xd9,0x40,0x2a, // prelude + 0x02,0x17, // names: backup_device, msg + 0x80,0x07,0x27,0x2b,0x4b,0x4b,0x50,0x27,0x28,0x27,0x48,0x29,0x25,0x43,0x27,0x46,0x49,0x47,0x49, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'storage.device' + 0x13,0x04, // LOAD_ATTR 'device' + 0xc1, // STORE_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x05, // IMPORT_FROM 'wire' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'Success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.messages' + 0x1c,0x07, // IMPORT_FROM 'Success' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'mnemonic' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'apps.common' + 0x1c,0x09, // IMPORT_FROM 'mnemonic' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0b, // LOAD_CONST_STRING 'backup_seed' + 0x10,0x0c, // LOAD_CONST_STRING 'layout' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0d, // IMPORT_NAME 'reset_device' + 0x1c,0x0b, // IMPORT_FROM 'backup_seed' + 0xc5, // STORE_FAST 5 + 0x1c,0x0c, // IMPORT_FROM 'layout' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x0e, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x0f, // LOAD_METHOD 'NotInitialized' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x14,0x10, // LOAD_METHOD 'needs_backup' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x11, // LOAD_METHOD 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x14,0x12, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc7, // STORE_FAST 7 + 0xc8, // STORE_FAST 8 + 0xb7, // LOAD_FAST 7 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x18, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x14,0x13, // LOAD_METHOD 'set_unfinished_backup' + 0x52, // LOAD_CONST_TRUE + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x14, // LOAD_METHOD 'set_backed_up' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0xb8, // LOAD_FAST 8 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x13, // LOAD_METHOD 'set_unfinished_backup' + 0x50, // LOAD_CONST_FALSE + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x15, // LOAD_METHOD 'show_backup_success' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x16, // LOAD_CONST_STRING 'message' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_backup_device_backup_device = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_backup_device_backup_device, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 174, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_management_backup_device_backup_device + 5, + .line_info_top = fun_data_apps_management_backup_device_backup_device + 24, + .opcodes = fun_data_apps_management_backup_device_backup_device + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_backup_device__lt_module_gt_[] = { + &raw_code_apps_management_backup_device_backup_device, +}; + +static const mp_raw_code_t raw_code_apps_management_backup_device__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_backup_device__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_management_backup_device__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_backup_device__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_backup_device__lt_module_gt_ + 6, + .opcodes = fun_data_apps_management_backup_device__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_backup_device[25] = { + MP_QSTR_apps_slash_management_slash_backup_device_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_backup_device, + MP_QSTR_storage_dot_device, + MP_QSTR_device, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_Success, + MP_QSTR_trezor_dot_messages, + MP_QSTR_mnemonic, + MP_QSTR_apps_dot_common, + MP_QSTR_backup_seed, + MP_QSTR_layout, + MP_QSTR_reset_device, + MP_QSTR_is_initialized, + MP_QSTR_NotInitialized, + MP_QSTR_needs_backup, + MP_QSTR_ProcessError, + MP_QSTR_get, + MP_QSTR_set_unfinished_backup, + MP_QSTR_set_backed_up, + MP_QSTR_show_backup_success, + MP_QSTR_message, + MP_QSTR_msg, + MP_QSTR_RuntimeError, +}; + +// constants +static const mp_obj_str_t const_obj_apps_management_backup_device_0 = {{&mp_type_str}, 4478, 25, (const byte*)"\x44\x65\x76\x69\x63\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64"}; +static const mp_obj_str_t const_obj_apps_management_backup_device_2 = {{&mp_type_str}, 60052, 27, (const byte*)"\x53\x65\x65\x64\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79\x20\x62\x61\x63\x6b\x65\x64\x20\x75\x70"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_management_backup_device[3] = { + MP_ROM_PTR(&const_obj_apps_management_backup_device_0), + MP_ROM_QSTR(MP_QSTR_Seed_space_already_space_backed_space_up), + MP_ROM_PTR(&const_obj_apps_management_backup_device_2), +}; + +static const mp_frozen_module_t frozen_module_apps_management_backup_device = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_backup_device, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_management_backup_device, + }, + .rc = &raw_code_apps_management_backup_device__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_backup_types +// - original source file: build/firmware/src/apps/management/backup_types.mpy +// - frozen file name: apps/management/backup_types.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/backup_types.py, scope apps_management_backup_types__lt_module_gt_ +static const byte fun_data_apps_management_backup_types__lt_module_gt_[50] = { + 0x08,0x14, // prelude + 0x01, // names: + 0x40,0x4c,0x60,0x24,0x64,0x84,0x0d,0x64,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'BackupType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x02, // IMPORT_FROM 'BackupType' + 0x16,0x02, // STORE_NAME 'BackupType' + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x0b, // STORE_NAME '_BIP39_WORD_COUNTS' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x16,0x0c, // STORE_NAME '_SLIP39_WORD_COUNTS' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x04, // STORE_NAME 'is_slip39_word_count' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x05, // STORE_NAME 'is_slip39_backup_type' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x08, // STORE_NAME 'infer_backup_type' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_backup_types__lt_module_gt_ +// frozen bytecode for file apps/management/backup_types.py, scope apps_management_backup_types_is_slip39_word_count +static const byte fun_data_apps_management_backup_types_is_slip39_word_count[33] = { + 0x11,0x14, // prelude + 0x04,0x0d, // names: is_slip39_word_count, word_count + 0x80,0x0c,0x60,0x20,0x26,0x22,0x26,0x42, // code info + 0xb0, // LOAD_FAST 0 + 0x12,0x0c, // LOAD_GLOBAL '_SLIP39_WORD_COUNTS' + 0xdd, // BINARY_OP 6 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x12,0x0b, // LOAD_GLOBAL '_BIP39_WORD_COUNTS' + 0xdd, // BINARY_OP 6 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0x12,0x0e, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_backup_types_is_slip39_word_count = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_backup_types_is_slip39_word_count, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_management_backup_types_is_slip39_word_count + 4, + .line_info_top = fun_data_apps_management_backup_types_is_slip39_word_count + 12, + .opcodes = fun_data_apps_management_backup_types_is_slip39_word_count + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_backup_types__lt_module_gt_ +// frozen bytecode for file apps/management/backup_types.py, scope apps_management_backup_types_is_slip39_backup_type +static const byte fun_data_apps_management_backup_types_is_slip39_backup_type[19] = { + 0x19,0x08, // prelude + 0x05,0x0f, // names: is_slip39_backup_type, backup_type + 0x80,0x19, // code info + 0xb0, // LOAD_FAST 0 + 0x12,0x02, // LOAD_GLOBAL 'BackupType' + 0x13,0x06, // LOAD_ATTR 'Slip39_Basic' + 0x12,0x02, // LOAD_GLOBAL 'BackupType' + 0x13,0x07, // LOAD_ATTR 'Slip39_Advanced' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_backup_types_is_slip39_backup_type = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_backup_types_is_slip39_backup_type, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_management_backup_types_is_slip39_backup_type + 4, + .line_info_top = fun_data_apps_management_backup_types_is_slip39_backup_type + 6, + .opcodes = fun_data_apps_management_backup_types_is_slip39_backup_type + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_backup_types__lt_module_gt_ +// frozen bytecode for file apps/management/backup_types.py, scope apps_management_backup_types_infer_backup_type +static const byte fun_data_apps_management_backup_types_infer_backup_type[56] = { + 0x9a,0x01,0x16, // prelude + 0x08,0x10,0x11, // names: infer_backup_type, is_slip39, share + 0x80,0x1d,0x23,0x28,0x27,0x25,0x27,0x45, // code info + 0xb0, // LOAD_FAST 0 + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0x12,0x02, // LOAD_GLOBAL 'BackupType' + 0x13,0x09, // LOAD_ATTR 'Bip39' + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'group_count' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x0e, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x42,0x51, // JUMP 17 + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'group_count' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x02, // LOAD_GLOBAL 'BackupType' + 0x13,0x06, // LOAD_ATTR 'Slip39_Basic' + 0x63, // RETURN_VALUE + 0x12,0x02, // LOAD_GLOBAL 'BackupType' + 0x13,0x07, // LOAD_ATTR 'Slip39_Advanced' + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_backup_types_infer_backup_type = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_management_backup_types_infer_backup_type, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_management_backup_types_infer_backup_type + 6, + .line_info_top = fun_data_apps_management_backup_types_infer_backup_type + 14, + .opcodes = fun_data_apps_management_backup_types_infer_backup_type + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_backup_types__lt_module_gt_[] = { + &raw_code_apps_management_backup_types_is_slip39_word_count, + &raw_code_apps_management_backup_types_is_slip39_backup_type, + &raw_code_apps_management_backup_types_infer_backup_type, +}; + +static const mp_raw_code_t raw_code_apps_management_backup_types__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_backup_types__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = (void *)&children_apps_management_backup_types__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_backup_types__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_backup_types__lt_module_gt_ + 12, + .opcodes = fun_data_apps_management_backup_types__lt_module_gt_ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_backup_types[18] = { + MP_QSTR_apps_slash_management_slash_backup_types_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_BackupType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_is_slip39_word_count, + MP_QSTR_is_slip39_backup_type, + MP_QSTR_Slip39_Basic, + MP_QSTR_Slip39_Advanced, + MP_QSTR_infer_backup_type, + MP_QSTR_Bip39, + MP_QSTR_group_count, + MP_QSTR__BIP39_WORD_COUNTS, + MP_QSTR__SLIP39_WORD_COUNTS, + MP_QSTR_word_count, + MP_QSTR_RuntimeError, + MP_QSTR_backup_type, + MP_QSTR_is_slip39, + MP_QSTR_share, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_management_backup_types_0 = {{&mp_type_tuple}, 3, { + MP_ROM_INT(12), + MP_ROM_INT(18), + MP_ROM_INT(24), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_management_backup_types_1 = {{&mp_type_tuple}, 2, { + MP_ROM_INT(20), + MP_ROM_INT(33), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_management_backup_types[2] = { + MP_ROM_PTR(&const_obj_apps_management_backup_types_0), + MP_ROM_PTR(&const_obj_apps_management_backup_types_1), +}; + +static const mp_frozen_module_t frozen_module_apps_management_backup_types = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_backup_types, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_management_backup_types, + }, + .rc = &raw_code_apps_management_backup_types__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_change_pin +// - original source file: build/firmware/src/apps/management/change_pin.mpy +// - frozen file name: apps/management/change_pin.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/change_pin.py, scope apps_management_change_pin__lt_module_gt_ +static const byte fun_data_apps_management_change_pin__lt_module_gt_[37] = { + 0x10,0x0e, // prelude + 0x01, // names: + 0x40,0x52,0x60,0x60,0x84,0x36, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'config' + 0x10,0x03, // LOAD_CONST_STRING 'wire' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x04, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'config' + 0x16,0x02, // STORE_NAME 'config' + 0x1c,0x03, // IMPORT_FROM 'wire' + 0x16,0x03, // STORE_NAME 'wire' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x05, // STORE_NAME 'change_pin' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x17, // STORE_NAME '_require_confirm_change_pin' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_change_pin__lt_module_gt_ +// frozen bytecode for file apps/management/change_pin.py, scope apps_management_change_pin_change_pin +static const byte fun_data_apps_management_change_pin_change_pin[249] = { + 0x91,0x50,0x42, // prelude + 0x05,0x22, // names: change_pin, msg + 0x80,0x0b,0x2b,0x2b,0x4b,0x7a,0x60,0x20,0x25,0x69,0x69,0x6c,0x28,0x2a,0x67,0x25,0x49,0x63,0x2c,0x23,0x49,0x47,0x23,0x23,0x23,0x45,0x23,0x45,0x23,0x43,0x2a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'is_initialized' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'storage.device' + 0x1c,0x06, // IMPORT_FROM 'is_initialized' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'Success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.messages' + 0x1c,0x08, // IMPORT_FROM 'Success' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'show_success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x0a, // IMPORT_FROM 'show_success' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'error_pin_invalid' + 0x10,0x0d, // LOAD_CONST_STRING 'error_pin_matches_wipe_code' + 0x10,0x0e, // LOAD_CONST_STRING 'request_pin_and_sd_salt' + 0x10,0x0f, // LOAD_CONST_STRING 'request_pin_confirm' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x10, // IMPORT_NAME 'apps.common.request_pin' + 0x1c,0x0c, // IMPORT_FROM 'error_pin_invalid' + 0xc4, // STORE_FAST 4 + 0x1c,0x0d, // IMPORT_FROM 'error_pin_matches_wipe_code' + 0xc5, // STORE_FAST 5 + 0x1c,0x0e, // IMPORT_FROM 'request_pin_and_sd_salt' + 0xc6, // STORE_FAST 6 + 0x1c,0x0f, // IMPORT_FROM 'request_pin_confirm' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x12,0x03, // LOAD_GLOBAL 'wire' + 0x14,0x11, // LOAD_METHOD 'NotInitialized' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x12,0x17, // LOAD_GLOBAL '_require_confirm_change_pin' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x10,0x12, // LOAD_CONST_STRING 'Enter PIN' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc8, // STORE_FAST 8 + 0xc9, // STORE_FAST 9 + 0xb8, // LOAD_FAST 8 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'remove' + 0x43,0x51, // POP_JUMP_IF_TRUE 17 + 0x12,0x02, // LOAD_GLOBAL 'config' + 0x14,0x14, // LOAD_METHOD 'check_pin' + 0xb8, // LOAD_FAST 8 + 0xb9, // LOAD_FAST 9 + 0x36,0x02, // CALL_METHOD 2 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0xb4, // LOAD_FAST 4 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'remove' + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb7, // LOAD_FAST 7 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xca, // STORE_FAST 10 + 0x42,0x43, // JUMP 3 + 0x10,0x15, // LOAD_CONST_STRING '' + 0xca, // STORE_FAST 10 + 0x12,0x02, // LOAD_GLOBAL 'config' + 0x14,0x05, // LOAD_METHOD 'change_pin' + 0xb8, // LOAD_FAST 8 + 0xba, // LOAD_FAST 10 + 0xb9, // LOAD_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x36,0x04, // CALL_METHOD 4 + 0x43,0x53, // POP_JUMP_IF_TRUE 19 + 0xba, // LOAD_FAST 10 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb5, // LOAD_FAST 5 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0xb4, // LOAD_FAST 4 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xba, // LOAD_FAST 10 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xb8, // LOAD_FAST 8 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xcb, // STORE_FAST 11 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xcc, // STORE_FAST 12 + 0x42,0x46, // JUMP 6 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xcb, // STORE_FAST 11 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xcc, // STORE_FAST 12 + 0x42,0x46, // JUMP 6 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xcb, // STORE_FAST 11 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0xcc, // STORE_FAST 12 + 0xb3, // LOAD_FAST 3 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0xbb, // LOAD_FAST 11 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x10,0x16, // LOAD_CONST_STRING 'message' + 0xbc, // LOAD_FAST 12 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_change_pin_change_pin = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_change_pin_change_pin, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 249, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_management_change_pin_change_pin + 5, + .line_info_top = fun_data_apps_management_change_pin_change_pin + 36, + .opcodes = fun_data_apps_management_change_pin_change_pin + 36, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_change_pin__lt_module_gt_ +// frozen bytecode for file apps/management/change_pin.py, scope apps_management_change_pin__require_confirm_change_pin +static const byte fun_data_apps_management_change_pin__require_confirm_change_pin[127] = { + 0x59,0x2a, // prelude + 0x17,0x22, // names: _require_confirm_change_pin, msg + 0x80,0x41,0x50,0x47,0x43,0x28,0x21,0x45,0x6a,0x20,0x28,0x66,0x6a,0x20,0x28,0x66,0x20,0x65,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x18, // LOAD_CONST_STRING 'confirm_action' + 0x10,0x19, // LOAD_CONST_STRING 'confirm_set_new_pin' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0b, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x18, // IMPORT_FROM 'confirm_action' + 0xc1, // STORE_FAST 1 + 0x1c,0x19, // IMPORT_FROM 'confirm_set_new_pin' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'config' + 0x14,0x1a, // LOAD_METHOD 'has_pin' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'remove' + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xb3, // LOAD_FAST 3 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb1, // LOAD_FAST 1 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0xb4, // LOAD_FAST 4 + 0x10,0x1b, // LOAD_CONST_STRING 'description' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x10,0x1c, // LOAD_CONST_STRING 'verb' + 0x10,0x1d, // LOAD_CONST_STRING 'Turn off' + 0x34,0x84,0x02, // CALL_FUNCTION 514 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'remove' + 0x43,0x53, // POP_JUMP_IF_TRUE 19 + 0xb3, // LOAD_FAST 3 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb1, // LOAD_FAST 1 + 0x10,0x05, // LOAD_CONST_STRING 'change_pin' + 0xb4, // LOAD_FAST 4 + 0x10,0x1b, // LOAD_CONST_STRING 'description' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x10,0x1c, // LOAD_CONST_STRING 'verb' + 0x10,0x1e, // LOAD_CONST_STRING 'Change' + 0x34,0x84,0x02, // CALL_FUNCTION 514 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'remove' + 0x43,0x4e, // POP_JUMP_IF_TRUE 14 + 0xb3, // LOAD_FAST 3 + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0xb2, // LOAD_FAST 2 + 0x10,0x1f, // LOAD_CONST_STRING 'set_pin' + 0xb4, // LOAD_FAST 4 + 0x10,0x20, // LOAD_CONST_STRING 'PIN' + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x34,0x04, // CALL_FUNCTION 4 + 0x63, // RETURN_VALUE + 0x12,0x03, // LOAD_GLOBAL 'wire' + 0x14,0x21, // LOAD_METHOD 'ProcessError' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_change_pin__require_confirm_change_pin = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_change_pin__require_confirm_change_pin, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 127, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_management_change_pin__require_confirm_change_pin + 4, + .line_info_top = fun_data_apps_management_change_pin__require_confirm_change_pin + 23, + .opcodes = fun_data_apps_management_change_pin__require_confirm_change_pin + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_change_pin__lt_module_gt_[] = { + &raw_code_apps_management_change_pin_change_pin, + &raw_code_apps_management_change_pin__require_confirm_change_pin, +}; + +static const mp_raw_code_t raw_code_apps_management_change_pin__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_change_pin__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = (void *)&children_apps_management_change_pin__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_change_pin__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_change_pin__lt_module_gt_ + 9, + .opcodes = fun_data_apps_management_change_pin__lt_module_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_change_pin[35] = { + MP_QSTR_apps_slash_management_slash_change_pin_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_config, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_change_pin, + MP_QSTR_is_initialized, + MP_QSTR_storage_dot_device, + MP_QSTR_Success, + MP_QSTR_trezor_dot_messages, + MP_QSTR_show_success, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_error_pin_invalid, + MP_QSTR_error_pin_matches_wipe_code, + MP_QSTR_request_pin_and_sd_salt, + MP_QSTR_request_pin_confirm, + MP_QSTR_apps_dot_common_dot_request_pin, + MP_QSTR_NotInitialized, + MP_QSTR_Enter_space_PIN, + MP_QSTR_remove, + MP_QSTR_check_pin, + MP_QSTR_, + MP_QSTR_message, + MP_QSTR__require_confirm_change_pin, + MP_QSTR_confirm_action, + MP_QSTR_confirm_set_new_pin, + MP_QSTR_has_pin, + MP_QSTR_description, + MP_QSTR_verb, + MP_QSTR_Turn_space_off, + MP_QSTR_Change, + MP_QSTR_set_pin, + MP_QSTR_PIN, + MP_QSTR_ProcessError, + MP_QSTR_msg, +}; + +// constants +static const mp_obj_str_t const_obj_apps_management_change_pin_0 = {{&mp_type_str}, 4478, 25, (const byte*)"\x44\x65\x76\x69\x63\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64"}; +static const mp_obj_str_t const_obj_apps_management_change_pin_3 = {{&mp_type_str}, 16200, 25, (const byte*)"\x50\x49\x4e\x20\x70\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x0a\x74\x75\x72\x6e\x65\x64\x20\x6f\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_management_change_pin_5 = {{&mp_type_str}, 16678, 26, (const byte*)"\x50\x49\x4e\x20\x70\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x0a\x74\x75\x72\x6e\x65\x64\x20\x6f\x66\x66\x2e"}; +static const mp_obj_str_t const_obj_apps_management_change_pin_10 = {{&mp_type_str}, 49804, 49, (const byte*)"\x41\x72\x65\x20\x79\x6f\x75\x20\x73\x75\x72\x65\x20\x79\x6f\x75\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x74\x75\x72\x6e\x20\x6f\x66\x66\x20\x50\x49\x4e\x20\x70\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x3f"}; +static const mp_obj_str_t const_obj_apps_management_change_pin_12 = {{&mp_type_str}, 39053, 43, (const byte*)"\x50\x49\x4e\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x74\x6f\x20\x61\x63\x63\x65\x73\x73\x20\x74\x68\x69\x73\x20\x64\x65\x76\x69\x63\x65\x2e"}; +static const mp_obj_str_t const_obj_apps_management_change_pin_13 = {{&mp_type_str}, 167, 31, (const byte*)"\x50\x49\x4e\x20\x70\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x64\x69\x73\x61\x62\x6c\x65\x64"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_management_change_pin[14] = { + MP_ROM_PTR(&const_obj_apps_management_change_pin_0), + MP_ROM_QSTR(MP_QSTR_PIN_space_changed_dot_), + MP_ROM_QSTR(MP_QSTR_PIN_space_changed), + MP_ROM_PTR(&const_obj_apps_management_change_pin_3), + MP_ROM_QSTR(MP_QSTR_PIN_space_enabled), + MP_ROM_PTR(&const_obj_apps_management_change_pin_5), + MP_ROM_QSTR(MP_QSTR_PIN_space_removed), + MP_ROM_QSTR(MP_QSTR_success_pin), + MP_ROM_QSTR(MP_QSTR_PIN_space_settings), + MP_ROM_QSTR(MP_QSTR_disable_pin), + MP_ROM_PTR(&const_obj_apps_management_change_pin_10), + MP_ROM_QSTR(MP_QSTR_Change_space_PIN_question_), + MP_ROM_PTR(&const_obj_apps_management_change_pin_12), + MP_ROM_PTR(&const_obj_apps_management_change_pin_13), +}; + +static const mp_frozen_module_t frozen_module_apps_management_change_pin = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_change_pin, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_management_change_pin, + }, + .rc = &raw_code_apps_management_change_pin__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_change_wipe_code +// - original source file: build/firmware/src/apps/management/change_wipe_code.mpy +// - frozen file name: apps/management/change_wipe_code.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/change_wipe_code.py, scope apps_management_change_wipe_code__lt_module_gt_ +static const byte fun_data_apps_management_change_wipe_code__lt_module_gt_[24] = { + 0x00,0x10, // prelude + 0x01, // names: + 0x40,0x60,0x60,0x84,0x30,0x84,0x24, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'change_wipe_code' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x17, // STORE_NAME '_require_confirm_action' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x20, // STORE_NAME '_request_wipe_code_confirm' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_change_wipe_code__lt_module_gt_ +// frozen bytecode for file apps/management/change_wipe_code.py, scope apps_management_change_wipe_code_change_wipe_code +static const byte fun_data_apps_management_change_wipe_code_change_wipe_code[249] = { + 0x91,0x50,0x3e, // prelude + 0x02,0x26, // names: change_wipe_code, msg + 0x80,0x09,0x2b,0x2b,0x2b,0x2b,0x4b,0x50,0x25,0x66,0x26,0x6a,0x4c,0x45,0x30,0x67,0x4b,0x63,0x2a,0x47,0x23,0x23,0x23,0x45,0x23,0x45,0x23,0x43,0x2a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'is_initialized' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'storage.device' + 0x1c,0x03, // IMPORT_FROM 'is_initialized' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'config' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x05, // IMPORT_FROM 'config' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'Success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.messages' + 0x1c,0x07, // IMPORT_FROM 'Success' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'show_success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x09, // IMPORT_FROM 'show_success' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'NotInitialized' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.wire' + 0x1c,0x0b, // IMPORT_FROM 'NotInitialized' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'error_pin_invalid' + 0x10,0x0e, // LOAD_CONST_STRING 'request_pin_and_sd_salt' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0f, // IMPORT_NAME 'apps.common.request_pin' + 0x1c,0x0d, // IMPORT_FROM 'error_pin_invalid' + 0xc6, // STORE_FAST 6 + 0x1c,0x0e, // IMPORT_FROM 'request_pin_and_sd_salt' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb5, // LOAD_FAST 5 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x14,0x10, // LOAD_METHOD 'has_wipe_code' + 0x36,0x00, // CALL_METHOD 0 + 0xc8, // STORE_FAST 8 + 0x12,0x17, // LOAD_GLOBAL '_require_confirm_action' + 0xb0, // LOAD_FAST 0 + 0xb8, // LOAD_FAST 8 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x10,0x11, // LOAD_CONST_STRING 'Enter PIN' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc9, // STORE_FAST 9 + 0xca, // STORE_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'remove' + 0x43,0x62, // POP_JUMP_IF_TRUE 34 + 0xb2, // LOAD_FAST 2 + 0x14,0x13, // LOAD_METHOD 'has_pin' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb2, // LOAD_FAST 2 + 0x14,0x14, // LOAD_METHOD 'check_pin' + 0xb9, // LOAD_FAST 9 + 0xba, // LOAD_FAST 10 + 0x36,0x02, // CALL_METHOD 2 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0xb6, // LOAD_FAST 6 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x20, // LOAD_GLOBAL '_request_wipe_code_confirm' + 0xb9, // LOAD_FAST 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xcb, // STORE_FAST 11 + 0x42,0x43, // JUMP 3 + 0x10,0x15, // LOAD_CONST_STRING '' + 0xcb, // STORE_FAST 11 + 0xb2, // LOAD_FAST 2 + 0x14,0x02, // LOAD_METHOD 'change_wipe_code' + 0xb9, // LOAD_FAST 9 + 0xba, // LOAD_FAST 10 + 0xbb, // LOAD_FAST 11 + 0x36,0x03, // CALL_METHOD 3 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0xb6, // LOAD_FAST 6 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xb8, // LOAD_FAST 8 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xcc, // STORE_FAST 12 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xcd, // STORE_FAST 13 + 0x42,0x46, // JUMP 6 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xcc, // STORE_FAST 12 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xcd, // STORE_FAST 13 + 0x42,0x46, // JUMP 6 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xcc, // STORE_FAST 12 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0xcd, // STORE_FAST 13 + 0xb4, // LOAD_FAST 4 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0xbc, // LOAD_FAST 12 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x16, // LOAD_CONST_STRING 'message' + 0xbd, // LOAD_FAST 13 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_change_wipe_code_change_wipe_code = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_change_wipe_code_change_wipe_code, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 249, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_management_change_wipe_code_change_wipe_code + 5, + .line_info_top = fun_data_apps_management_change_wipe_code_change_wipe_code + 34, + .opcodes = fun_data_apps_management_change_wipe_code_change_wipe_code + 34, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_change_wipe_code__lt_module_gt_ +// frozen bytecode for file apps/management/change_wipe_code.py, scope apps_management_change_wipe_code__require_confirm_action +static const byte fun_data_apps_management_change_wipe_code__require_confirm_action[129] = { + 0x62,0x2c, // prelude + 0x17,0x26,0x10, // names: _require_confirm_action, msg, has_wipe_code + 0x80,0x3b,0x30,0x4b,0x43,0x28,0x21,0x45,0x6a,0x20,0x28,0x66,0x6a,0x20,0x28,0x21,0x65,0x65,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x18, // LOAD_CONST_STRING 'confirm_action' + 0x10,0x19, // LOAD_CONST_STRING 'confirm_set_new_pin' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0a, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x18, // IMPORT_FROM 'confirm_action' + 0xc2, // STORE_FAST 2 + 0x1c,0x19, // IMPORT_FROM 'confirm_set_new_pin' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1a, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.wire' + 0x1c,0x1a, // IMPORT_FROM 'ProcessError' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'remove' + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xb1, // LOAD_FAST 1 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb2, // LOAD_FAST 2 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0xb5, // LOAD_FAST 5 + 0x10,0x1b, // LOAD_CONST_STRING 'description' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x10,0x1c, // LOAD_CONST_STRING 'verb' + 0x10,0x1d, // LOAD_CONST_STRING 'Turn off' + 0x34,0x84,0x02, // CALL_FUNCTION 514 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'remove' + 0x43,0x53, // POP_JUMP_IF_TRUE 19 + 0xb1, // LOAD_FAST 1 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb2, // LOAD_FAST 2 + 0x10,0x02, // LOAD_CONST_STRING 'change_wipe_code' + 0xb5, // LOAD_FAST 5 + 0x10,0x1b, // LOAD_CONST_STRING 'description' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x10,0x1c, // LOAD_CONST_STRING 'verb' + 0x10,0x1e, // LOAD_CONST_STRING 'Change' + 0x34,0x84,0x02, // CALL_FUNCTION 514 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'remove' + 0x43,0x4e, // POP_JUMP_IF_TRUE 14 + 0xb1, // LOAD_FAST 1 + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0xb3, // LOAD_FAST 3 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0xb5, // LOAD_FAST 5 + 0x10,0x1f, // LOAD_CONST_STRING 'wipe code' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x34,0x04, // CALL_FUNCTION 4 + 0x63, // RETURN_VALUE + 0xb4, // LOAD_FAST 4 + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_change_wipe_code__require_confirm_action = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_management_change_wipe_code__require_confirm_action, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 129, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_management_change_wipe_code__require_confirm_action + 5, + .line_info_top = fun_data_apps_management_change_wipe_code__require_confirm_action + 24, + .opcodes = fun_data_apps_management_change_wipe_code__require_confirm_action + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_change_wipe_code__lt_module_gt_ +// frozen bytecode for file apps/management/change_wipe_code.py, scope apps_management_change_wipe_code__request_wipe_code_confirm +static const byte fun_data_apps_management_change_wipe_code__request_wipe_code_confirm[116] = { + 0xd1,0x40,0x20, // prelude + 0x20,0x27, // names: _request_wipe_code_confirm, pin + 0x80,0x5d,0x75,0x60,0x4b,0x20,0x29,0x25,0x27,0x22,0x2b,0x29,0x25,0x22, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x21, // LOAD_CONST_STRING 'confirm_reenter_pin' + 0x10,0x22, // LOAD_CONST_STRING 'pin_mismatch_popup' + 0x10,0x23, // LOAD_CONST_STRING 'wipe_code_same_as_pin_popup' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x0a, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x21, // IMPORT_FROM 'confirm_reenter_pin' + 0xc1, // STORE_FAST 1 + 0x1c,0x22, // IMPORT_FROM 'pin_mismatch_popup' + 0xc2, // STORE_FAST 2 + 0x1c,0x23, // IMPORT_FROM 'wipe_code_same_as_pin_popup' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x24, // LOAD_CONST_STRING 'request_pin' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'apps.common.request_pin' + 0x1c,0x24, // IMPORT_FROM 'request_pin' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb3, // LOAD_FAST 3 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x66, // JUMP 38 + 0xb1, // LOAD_FAST 1 + 0x10,0x25, // LOAD_CONST_STRING 'is_wipe_code' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb5, // LOAD_FAST 5 + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x10,0x25, // LOAD_CONST_STRING 'is_wipe_code' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x01, // JUMP -63 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_change_wipe_code__request_wipe_code_confirm = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_change_wipe_code__request_wipe_code_confirm, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 116, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_management_change_wipe_code__request_wipe_code_confirm + 5, + .line_info_top = fun_data_apps_management_change_wipe_code__request_wipe_code_confirm + 19, + .opcodes = fun_data_apps_management_change_wipe_code__request_wipe_code_confirm + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_change_wipe_code__lt_module_gt_[] = { + &raw_code_apps_management_change_wipe_code_change_wipe_code, + &raw_code_apps_management_change_wipe_code__require_confirm_action, + &raw_code_apps_management_change_wipe_code__request_wipe_code_confirm, +}; + +static const mp_raw_code_t raw_code_apps_management_change_wipe_code__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_change_wipe_code__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = (void *)&children_apps_management_change_wipe_code__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_change_wipe_code__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_change_wipe_code__lt_module_gt_ + 10, + .opcodes = fun_data_apps_management_change_wipe_code__lt_module_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_change_wipe_code[40] = { + MP_QSTR_apps_slash_management_slash_change_wipe_code_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_change_wipe_code, + MP_QSTR_is_initialized, + MP_QSTR_storage_dot_device, + MP_QSTR_config, + MP_QSTR_trezor, + MP_QSTR_Success, + MP_QSTR_trezor_dot_messages, + MP_QSTR_show_success, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_NotInitialized, + MP_QSTR_trezor_dot_wire, + MP_QSTR_error_pin_invalid, + MP_QSTR_request_pin_and_sd_salt, + MP_QSTR_apps_dot_common_dot_request_pin, + MP_QSTR_has_wipe_code, + MP_QSTR_Enter_space_PIN, + MP_QSTR_remove, + MP_QSTR_has_pin, + MP_QSTR_check_pin, + MP_QSTR_, + MP_QSTR_message, + MP_QSTR__require_confirm_action, + MP_QSTR_confirm_action, + MP_QSTR_confirm_set_new_pin, + MP_QSTR_ProcessError, + MP_QSTR_description, + MP_QSTR_verb, + MP_QSTR_Turn_space_off, + MP_QSTR_Change, + MP_QSTR_wipe_space_code, + MP_QSTR__request_wipe_code_confirm, + MP_QSTR_confirm_reenter_pin, + MP_QSTR_pin_mismatch_popup, + MP_QSTR_wipe_code_same_as_pin_popup, + MP_QSTR_request_pin, + MP_QSTR_is_wipe_code, + MP_QSTR_msg, + MP_QSTR_pin, +}; + +// constants +static const mp_obj_str_t const_obj_apps_management_change_wipe_code_0 = {{&mp_type_str}, 4478, 25, (const byte*)"\x44\x65\x76\x69\x63\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64"}; +static const mp_obj_str_t const_obj_apps_management_change_wipe_code_10 = {{&mp_type_str}, 62605, 30, (const byte*)"\x54\x75\x72\x6e\x20\x6f\x66\x66\x20\x77\x69\x70\x65\x20\x63\x6f\x64\x65\x20\x70\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x3f"}; +static const mp_obj_str_t const_obj_apps_management_change_wipe_code_13 = {{&mp_type_str}, 10051, 57, (const byte*)"\x57\x69\x70\x65\x20\x63\x6f\x64\x65\x20\x63\x61\x6e\x20\x62\x65\x20\x75\x73\x65\x64\x20\x74\x6f\x20\x65\x72\x61\x73\x65\x20\x61\x6c\x6c\x20\x64\x61\x74\x61\x20\x66\x72\x6f\x6d\x20\x74\x68\x69\x73\x20\x64\x65\x76\x69\x63\x65\x2e"}; +static const mp_obj_str_t const_obj_apps_management_change_wipe_code_14 = {{&mp_type_str}, 47404, 40, (const byte*)"\x57\x69\x70\x65\x20\x63\x6f\x64\x65\x20\x70\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x20\x69\x73\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x64\x69\x73\x61\x62\x6c\x65\x64"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_management_change_wipe_code[17] = { + MP_ROM_PTR(&const_obj_apps_management_change_wipe_code_0), + MP_ROM_QSTR(MP_QSTR_Wipe_space_code_space_changed_dot_), + MP_ROM_QSTR(MP_QSTR_Wipe_space_code_space_changed), + MP_ROM_QSTR(MP_QSTR_Wipe_space_code_space_enabled_dot_), + MP_ROM_QSTR(MP_QSTR_Wipe_space_code_space_set), + MP_ROM_QSTR(MP_QSTR_Wipe_space_code_space_disabled_dot_), + MP_ROM_QSTR(MP_QSTR_Wipe_space_code_space_removed), + MP_ROM_QSTR(MP_QSTR_success_wipe_code), + MP_ROM_QSTR(MP_QSTR_Wipe_space_code_space_settings), + MP_ROM_QSTR(MP_QSTR_disable_wipe_code), + MP_ROM_PTR(&const_obj_apps_management_change_wipe_code_10), + MP_ROM_QSTR(MP_QSTR_Change_space_wipe_space_code_question_), + MP_ROM_QSTR(MP_QSTR_set_wipe_code), + MP_ROM_PTR(&const_obj_apps_management_change_wipe_code_13), + MP_ROM_PTR(&const_obj_apps_management_change_wipe_code_14), + MP_ROM_QSTR(MP_QSTR_Enter_space_new_space_wipe_space_code), + MP_ROM_QSTR(MP_QSTR_Re_hyphen_enter_space_wipe_space_code), +}; + +static const mp_frozen_module_t frozen_module_apps_management_change_wipe_code = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_change_wipe_code, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_management_change_wipe_code, + }, + .rc = &raw_code_apps_management_change_wipe_code__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_get_next_u2f_counter +// - original source file: build/firmware/src/apps/management/get_next_u2f_counter.mpy +// - frozen file name: apps/management/get_next_u2f_counter.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/get_next_u2f_counter.py, scope apps_management_get_next_u2f_counter__lt_module_gt_ +static const byte fun_data_apps_management_get_next_u2f_counter__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'get_next_u2f_counter' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_get_next_u2f_counter__lt_module_gt_ +// frozen bytecode for file apps/management/get_next_u2f_counter.py, scope apps_management_get_next_u2f_counter_get_next_u2f_counter +static const byte fun_data_apps_management_get_next_u2f_counter_get_next_u2f_counter[116] = { + 0xe1,0x40,0x20, // prelude + 0x02,0x13, // names: get_next_u2f_counter, msg + 0x80,0x07,0x27,0x2b,0x2b,0x2b,0x4b,0x27,0x46,0x21,0x22,0x24,0x24,0x6a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'storage.device' + 0x13,0x04, // LOAD_ATTR 'device' + 0xc1, // STORE_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.enums' + 0x1c,0x05, // IMPORT_FROM 'ButtonRequestType' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'NextU2FCounter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.messages' + 0x1c,0x07, // IMPORT_FROM 'NextU2FCounter' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'confirm_action' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x09, // IMPORT_FROM 'confirm_action' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'NotInitialized' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.wire' + 0x1c,0x0b, // IMPORT_FROM 'NotInitialized' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x0d, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb5, // LOAD_FAST 5 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x10,0x0e, // LOAD_CONST_STRING 'description' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x10,0x0f, // LOAD_CONST_STRING 'br_code' + 0xb2, // LOAD_FAST 2 + 0x13,0x10, // LOAD_ATTR 'ProtectCall' + 0x34,0x84,0x02, // CALL_FUNCTION 514 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x11, // LOAD_CONST_STRING 'u2f_counter' + 0xb1, // LOAD_FAST 1 + 0x14,0x12, // LOAD_METHOD 'next_u2f_counter' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_get_next_u2f_counter_get_next_u2f_counter = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_get_next_u2f_counter_get_next_u2f_counter, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 116, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_management_get_next_u2f_counter_get_next_u2f_counter + 5, + .line_info_top = fun_data_apps_management_get_next_u2f_counter_get_next_u2f_counter + 19, + .opcodes = fun_data_apps_management_get_next_u2f_counter_get_next_u2f_counter + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_get_next_u2f_counter__lt_module_gt_[] = { + &raw_code_apps_management_get_next_u2f_counter_get_next_u2f_counter, +}; + +static const mp_raw_code_t raw_code_apps_management_get_next_u2f_counter__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_get_next_u2f_counter__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_management_get_next_u2f_counter__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_get_next_u2f_counter__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_get_next_u2f_counter__lt_module_gt_ + 6, + .opcodes = fun_data_apps_management_get_next_u2f_counter__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_get_next_u2f_counter[20] = { + MP_QSTR_apps_slash_management_slash_get_next_u2f_counter_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_get_next_u2f_counter, + MP_QSTR_storage_dot_device, + MP_QSTR_device, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_NextU2FCounter, + MP_QSTR_trezor_dot_messages, + MP_QSTR_confirm_action, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_NotInitialized, + MP_QSTR_trezor_dot_wire, + MP_QSTR_is_initialized, + MP_QSTR_description, + MP_QSTR_br_code, + MP_QSTR_ProtectCall, + MP_QSTR_u2f_counter, + MP_QSTR_next_u2f_counter, + MP_QSTR_msg, +}; + +// constants +static const mp_obj_str_t const_obj_apps_management_get_next_u2f_counter_0 = {{&mp_type_str}, 4478, 25, (const byte*)"\x44\x65\x76\x69\x63\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64"}; +static const mp_obj_str_t const_obj_apps_management_get_next_u2f_counter_3 = {{&mp_type_str}, 1623, 38, (const byte*)"\x49\x6e\x63\x72\x65\x61\x73\x65\x20\x61\x6e\x64\x20\x72\x65\x74\x72\x69\x65\x76\x65\x20\x74\x68\x65\x20\x55\x32\x46\x20\x63\x6f\x75\x6e\x74\x65\x72\x3f"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_management_get_next_u2f_counter[4] = { + MP_ROM_PTR(&const_obj_apps_management_get_next_u2f_counter_0), + MP_ROM_QSTR(MP_QSTR_get_u2f_counter), + MP_ROM_QSTR(MP_QSTR_Get_space_U2F_space_counter), + MP_ROM_PTR(&const_obj_apps_management_get_next_u2f_counter_3), +}; + +static const mp_frozen_module_t frozen_module_apps_management_get_next_u2f_counter = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_get_next_u2f_counter, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_management_get_next_u2f_counter, + }, + .rc = &raw_code_apps_management_get_next_u2f_counter__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_get_nonce +// - original source file: build/firmware/src/apps/management/get_nonce.mpy +// - frozen file name: apps/management/get_nonce.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/get_nonce.py, scope apps_management_get_nonce__lt_module_gt_ +static const byte fun_data_apps_management_get_nonce__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'get_nonce' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_get_nonce__lt_module_gt_ +// frozen bytecode for file apps/management/get_nonce.py, scope apps_management_get_nonce_get_nonce +static const byte fun_data_apps_management_get_nonce_get_nonce[70] = { + 0xc1,0x40,0x12, // prelude + 0x02,0x0d, // names: get_nonce, msg + 0x80,0x07,0x2b,0x2b,0x4b,0x27,0x2a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'cache' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'storage' + 0x1c,0x03, // IMPORT_FROM 'cache' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'random' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x05, // IMPORT_FROM 'random' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'Nonce' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.messages' + 0x1c,0x07, // IMPORT_FROM 'Nonce' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x09, // LOAD_METHOD 'bytes' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x14,0x0a, // LOAD_METHOD 'set' + 0xb1, // LOAD_FAST 1 + 0x13,0x0b, // LOAD_ATTR 'APP_COMMON_NONCE' + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x0c, // LOAD_CONST_STRING 'nonce' + 0xb4, // LOAD_FAST 4 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_get_nonce_get_nonce = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_get_nonce_get_nonce, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_management_get_nonce_get_nonce + 5, + .line_info_top = fun_data_apps_management_get_nonce_get_nonce + 12, + .opcodes = fun_data_apps_management_get_nonce_get_nonce + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_get_nonce__lt_module_gt_[] = { + &raw_code_apps_management_get_nonce_get_nonce, +}; + +static const mp_raw_code_t raw_code_apps_management_get_nonce__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_get_nonce__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_management_get_nonce__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_get_nonce__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_get_nonce__lt_module_gt_ + 6, + .opcodes = fun_data_apps_management_get_nonce__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_get_nonce[14] = { + MP_QSTR_apps_slash_management_slash_get_nonce_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_get_nonce, + MP_QSTR_cache, + MP_QSTR_storage, + MP_QSTR_random, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_Nonce, + MP_QSTR_trezor_dot_messages, + MP_QSTR_bytes, + MP_QSTR_set, + MP_QSTR_APP_COMMON_NONCE, + MP_QSTR_nonce, + MP_QSTR_msg, +}; + +static const mp_frozen_module_t frozen_module_apps_management_get_nonce = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_get_nonce, + .obj_table = NULL, + }, + .rc = &raw_code_apps_management_get_nonce__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_reboot_to_bootloader +// - original source file: build/firmware/src/apps/management/reboot_to_bootloader.mpy +// - frozen file name: apps/management/reboot_to_bootloader.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/reboot_to_bootloader.py, scope apps_management_reboot_to_bootloader__lt_module_gt_ +static const byte fun_data_apps_management_reboot_to_bootloader__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x60, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'reboot_to_bootloader' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_reboot_to_bootloader__lt_module_gt_ +// frozen bytecode for file apps/management/reboot_to_bootloader.py, scope apps_management_reboot_to_bootloader_reboot_to_bootloader +static const byte fun_data_apps_management_reboot_to_bootloader_reboot_to_bootloader[142] = { + 0xe9,0x40,0x1e, // prelude + 0x02,0x17, // names: reboot_to_bootloader, msg + 0x80,0x09,0x35,0x2b,0x2b,0x4b,0x43,0x22,0x6d,0x24,0x51,0x34,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'io' + 0x10,0x04, // LOAD_CONST_STRING 'loop' + 0x10,0x05, // LOAD_CONST_STRING 'utils' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x03, // IMPORT_FROM 'io' + 0xc1, // STORE_FAST 1 + 0x1c,0x04, // IMPORT_FROM 'loop' + 0xc2, // STORE_FAST 2 + 0x1c,0x05, // IMPORT_FROM 'utils' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'Success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.messages' + 0x1c,0x07, // IMPORT_FROM 'Success' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'confirm_action' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x09, // IMPORT_FROM 'confirm_action' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'get_context' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x0b, // IMPORT_FROM 'get_context' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x10,0x0d, // LOAD_CONST_STRING 'reboot' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x10,0x0e, // LOAD_CONST_STRING 'verb' + 0x10,0x0f, // LOAD_CONST_STRING 'Restart' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x14,0x10, // LOAD_METHOD 'write' + 0xb4, // LOAD_FAST 4 + 0x10,0x11, // LOAD_CONST_STRING 'message' + 0x10,0x12, // LOAD_CONST_STRING 'Rebooting' + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x13, // LOAD_METHOD 'wait' + 0xb7, // LOAD_FAST 7 + 0x13,0x14, // LOAD_ATTR 'iface' + 0x14,0x15, // LOAD_METHOD 'iface_num' + 0x36,0x00, // CALL_METHOD 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'POLL_WRITE' + 0xed, // BINARY_OP 22 __or__ + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x02, // LOAD_METHOD 'reboot_to_bootloader' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x18, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_reboot_to_bootloader_reboot_to_bootloader = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_reboot_to_bootloader_reboot_to_bootloader, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 142, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_management_reboot_to_bootloader_reboot_to_bootloader + 5, + .line_info_top = fun_data_apps_management_reboot_to_bootloader_reboot_to_bootloader + 18, + .opcodes = fun_data_apps_management_reboot_to_bootloader_reboot_to_bootloader + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_reboot_to_bootloader__lt_module_gt_[] = { + &raw_code_apps_management_reboot_to_bootloader_reboot_to_bootloader, +}; + +static const mp_raw_code_t raw_code_apps_management_reboot_to_bootloader__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_reboot_to_bootloader__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_management_reboot_to_bootloader__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_reboot_to_bootloader__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_reboot_to_bootloader__lt_module_gt_ + 6, + .opcodes = fun_data_apps_management_reboot_to_bootloader__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_reboot_to_bootloader[25] = { + MP_QSTR_apps_slash_management_slash_reboot_to_bootloader_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_reboot_to_bootloader, + MP_QSTR_io, + MP_QSTR_loop, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_Success, + MP_QSTR_trezor_dot_messages, + MP_QSTR_confirm_action, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_get_context, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_reboot, + MP_QSTR_verb, + MP_QSTR_Restart, + MP_QSTR_write, + MP_QSTR_message, + MP_QSTR_Rebooting, + MP_QSTR_wait, + MP_QSTR_iface, + MP_QSTR_iface_num, + MP_QSTR_POLL_WRITE, + MP_QSTR_msg, + MP_QSTR_RuntimeError, +}; + +// constants +static const mp_obj_str_t const_obj_apps_management_reboot_to_bootloader_1 = {{&mp_type_str}, 55701, 49, (const byte*)"\x44\x6f\x20\x79\x6f\x75\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x72\x65\x73\x74\x61\x72\x74\x20\x54\x72\x65\x7a\x6f\x72\x20\x69\x6e\x20\x62\x6f\x6f\x74\x6c\x6f\x61\x64\x65\x72\x20\x6d\x6f\x64\x65\x3f"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_management_reboot_to_bootloader[2] = { + MP_ROM_QSTR(MP_QSTR_Go_space_to_space_bootloader), + MP_ROM_PTR(&const_obj_apps_management_reboot_to_bootloader_1), +}; + +static const mp_frozen_module_t frozen_module_apps_management_reboot_to_bootloader = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_reboot_to_bootloader, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_management_reboot_to_bootloader, + }, + .rc = &raw_code_apps_management_reboot_to_bootloader__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_sd_protect +// - original source file: build/firmware/src/apps/management/sd_protect.mpy +// - frozen file name: apps/management/sd_protect.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/sd_protect.py, scope apps_management_sd_protect__lt_module_gt_ +static const byte fun_data_apps_management_sd_protect__lt_module_gt_[167] = { + 0x10,0x32, // prelude + 0x01, // names: + 0x40,0x28,0x28,0x2c,0x2c,0x2c,0x2c,0x4c,0x32,0x4c,0x60,0x60,0x84,0x09,0x88,0x0b,0x84,0x10,0x84,0x27,0x84,0x20,0x84,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'storage.device' + 0x13,0x03, // LOAD_ATTR 'device' + 0x16,0x3a, // STORE_NAME 'storage_device' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x04, // IMPORT_NAME 'storage.sd_salt' + 0x13,0x05, // LOAD_ATTR 'sd_salt' + 0x16,0x3b, // STORE_NAME 'storage_sd_salt' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'config' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor' + 0x1c,0x06, // IMPORT_FROM 'config' + 0x16,0x06, // STORE_NAME 'config' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'SdProtectOperationType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.enums' + 0x1c,0x08, // IMPORT_FROM 'SdProtectOperationType' + 0x16,0x08, // STORE_NAME 'SdProtectOperationType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'Success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0a, // IMPORT_FROM 'Success' + 0x16,0x0a, // STORE_NAME 'Success' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'show_success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x0c, // IMPORT_FROM 'show_success' + 0x16,0x0c, // STORE_NAME 'show_success' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'trezor.wire' + 0x1c,0x0e, // IMPORT_FROM 'ProcessError' + 0x16,0x0e, // STORE_NAME 'ProcessError' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'error_pin_invalid' + 0x10,0x11, // LOAD_CONST_STRING 'request_pin_and_sd_salt' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x12, // IMPORT_NAME 'apps.common.request_pin' + 0x1c,0x10, // IMPORT_FROM 'error_pin_invalid' + 0x16,0x10, // STORE_NAME 'error_pin_invalid' + 0x1c,0x11, // IMPORT_FROM 'request_pin_and_sd_salt' + 0x16,0x11, // STORE_NAME 'request_pin_and_sd_salt' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'ensure_sdcard' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'apps.common.sdcard' + 0x1c,0x13, // IMPORT_FROM 'ensure_sdcard' + 0x16,0x13, // STORE_NAME 'ensure_sdcard' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x15, // STORE_NAME '_make_salt' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x1c, // STORE_NAME '_set_salt' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x1f, // STORE_NAME 'sd_protect' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x26, // STORE_NAME '_sd_protect_enable' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x32, // STORE_NAME '_sd_protect_disable' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x33, // STORE_NAME '_sd_protect_refresh' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x36, // STORE_NAME 'require_confirm_sd_protect' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_sd_protect__lt_module_gt_ +// frozen bytecode for file apps/management/sd_protect.py, scope apps_management_sd_protect__make_salt +static const byte fun_data_apps_management_sd_protect__make_salt[55] = { + 0x38,0x0e, // prelude + 0x15, // names: _make_salt + 0x80,0x14,0x4b,0x2a,0x2a,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x16, // LOAD_CONST_STRING 'random' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x17, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x16, // IMPORT_FROM 'random' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x18, // LOAD_METHOD 'bytes' + 0x12,0x3b, // LOAD_GLOBAL 'storage_sd_salt' + 0x13,0x19, // LOAD_ATTR 'SD_SALT_LEN_BYTES' + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x14,0x18, // LOAD_METHOD 'bytes' + 0x12,0x3a, // LOAD_GLOBAL 'storage_device' + 0x13,0x1a, // LOAD_ATTR 'SD_SALT_AUTH_KEY_LEN_BYTES' + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0x12,0x3b, // LOAD_GLOBAL 'storage_sd_salt' + 0x14,0x1b, // LOAD_METHOD 'compute_auth_tag' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_sd_protect__make_salt = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_sd_protect__make_salt, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_management_sd_protect__make_salt + 3, + .line_info_top = fun_data_apps_management_sd_protect__make_salt + 9, + .opcodes = fun_data_apps_management_sd_protect__make_salt + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_sd_protect__lt_module_gt_ +// frozen bytecode for file apps/management/sd_protect.py, scope apps_management_sd_protect__set_salt +static const byte fun_data_apps_management_sd_protect__set_salt[74] = { + 0xcf,0x41,0x16, // prelude + 0x1c,0x3c,0x3d,0x34, // names: _set_salt, salt, salt_tag, stage + 0x80,0x1d,0x4b,0x20,0x28,0x22,0x53, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1d, // LOAD_CONST_STRING 'confirm_retry_sd' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'apps.common.sdcard' + 0x1c,0x1d, // IMPORT_FROM 'confirm_retry_sd' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x13, // LOAD_GLOBAL 'ensure_sdcard' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x48,0x0c, // SETUP_EXCEPT 12 + 0x12,0x3b, // LOAD_GLOBAL 'storage_sd_salt' + 0x14,0x1e, // LOAD_METHOD 'set_sd_salt' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE + 0x4a,0x17, // POP_EXCEPT_JUMP 23 + 0x57, // DUP_TOP + 0x12,0x3e, // LOAD_GLOBAL 'OSError' + 0xdf, // BINARY_OP 8 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x42,0x11, // JUMP -47 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_sd_protect__set_salt = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_management_sd_protect__set_salt, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 74, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 28, + .line_info = fun_data_apps_management_sd_protect__set_salt + 7, + .line_info_top = fun_data_apps_management_sd_protect__set_salt + 14, + .opcodes = fun_data_apps_management_sd_protect__set_salt + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_sd_protect__lt_module_gt_ +// frozen bytecode for file apps/management/sd_protect.py, scope apps_management_sd_protect_sd_protect +static const byte fun_data_apps_management_sd_protect_sd_protect[107] = { + 0x99,0x40,0x1a, // prelude + 0x1f,0x3f, // names: sd_protect, msg + 0x80,0x28,0x4b,0x28,0x46,0x2a,0x29,0x2a,0x29,0x2a,0x49, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x20, // LOAD_CONST_STRING 'NotInitialized' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'trezor.wire' + 0x1c,0x20, // IMPORT_FROM 'NotInitialized' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x3a, // LOAD_GLOBAL 'storage_device' + 0x14,0x21, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb1, // LOAD_FAST 1 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'operation' + 0x12,0x08, // LOAD_GLOBAL 'SdProtectOperationType' + 0x13,0x23, // LOAD_ATTR 'ENABLE' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x26, // LOAD_GLOBAL '_sd_protect_enable' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'operation' + 0x12,0x08, // LOAD_GLOBAL 'SdProtectOperationType' + 0x13,0x24, // LOAD_ATTR 'DISABLE' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x32, // LOAD_GLOBAL '_sd_protect_disable' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'operation' + 0x12,0x08, // LOAD_GLOBAL 'SdProtectOperationType' + 0x13,0x25, // LOAD_ATTR 'REFRESH' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x33, // LOAD_GLOBAL '_sd_protect_refresh' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_sd_protect_sd_protect = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_sd_protect_sd_protect, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 107, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_management_sd_protect_sd_protect + 5, + .line_info_top = fun_data_apps_management_sd_protect_sd_protect + 16, + .opcodes = fun_data_apps_management_sd_protect_sd_protect + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_sd_protect__lt_module_gt_ +// frozen bytecode for file apps/management/sd_protect.py, scope apps_management_sd_protect__sd_protect_enable +static const byte fun_data_apps_management_sd_protect__sd_protect_enable[186] = { + 0xdd,0x40,0x2c, // prelude + 0x26,0x3f, // names: _sd_protect_enable, msg + 0x80,0x38,0x4b,0x28,0x67,0x69,0x68,0x28,0x51,0x63,0x29,0x4a,0x4c,0x22,0x70,0x40,0x23,0x48,0x48,0x2c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x27, // LOAD_CONST_STRING 'request_pin' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x12, // IMPORT_NAME 'apps.common.request_pin' + 0x1c,0x27, // IMPORT_FROM 'request_pin' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x3b, // LOAD_GLOBAL 'storage_sd_salt' + 0x14,0x28, // LOAD_METHOD 'is_enabled' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x36, // LOAD_GLOBAL 'require_confirm_sd_protect' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x13, // LOAD_GLOBAL 'ensure_sdcard' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'config' + 0x14,0x29, // LOAD_METHOD 'has_pin' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb1, // LOAD_FAST 1 + 0x10,0x2a, // LOAD_CONST_STRING 'Enter PIN' + 0x12,0x06, // LOAD_GLOBAL 'config' + 0x14,0x2b, // LOAD_METHOD 'get_pin_rem' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0x42,0x43, // JUMP 3 + 0x10,0x2c, // LOAD_CONST_STRING '' + 0xc2, // STORE_FAST 2 + 0x12,0x15, // LOAD_GLOBAL '_make_salt' + 0x34,0x00, // CALL_FUNCTION 0 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0x12,0x1c, // LOAD_GLOBAL '_set_salt' + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'config' + 0x14,0x2d, // LOAD_METHOD 'change_pin' + 0xb2, // LOAD_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xb3, // LOAD_FAST 3 + 0x36,0x04, // CALL_METHOD 4 + 0x43,0x5d, // POP_JUMP_IF_TRUE 29 + 0x48,0x09, // SETUP_EXCEPT 9 + 0x12,0x3b, // LOAD_GLOBAL 'storage_sd_salt' + 0x14,0x2e, // LOAD_METHOD 'remove_sd_salt' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x4a,0x0a, // POP_EXCEPT_JUMP 10 + 0x57, // DUP_TOP + 0x12,0x40, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x59, // POP_TOP + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x12,0x10, // LOAD_GLOBAL 'error_pin_invalid' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x3a, // LOAD_GLOBAL 'storage_device' + 0x14,0x2f, // LOAD_METHOD 'set_sd_salt_auth_key' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'show_success' + 0x10,0x30, // LOAD_CONST_STRING 'success_sd' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'Success' + 0x10,0x31, // LOAD_CONST_STRING 'message' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_sd_protect__sd_protect_enable = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_sd_protect__sd_protect_enable, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 186, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 38, + .line_info = fun_data_apps_management_sd_protect__sd_protect_enable + 5, + .line_info_top = fun_data_apps_management_sd_protect__sd_protect_enable + 25, + .opcodes = fun_data_apps_management_sd_protect__sd_protect_enable + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_sd_protect__lt_module_gt_ +// frozen bytecode for file apps/management/sd_protect.py, scope apps_management_sd_protect__sd_protect_disable +static const byte fun_data_apps_management_sd_protect__sd_protect_disable[128] = { + 0xc5,0x40,0x22, // prelude + 0x32,0x3f, // names: _sd_protect_disable, msg + 0x80,0x5f,0x28,0x67,0x60,0x69,0x6d,0x2c,0x48,0x48,0x42,0x70,0x40,0x43,0x2c, // code info + 0x12,0x3b, // LOAD_GLOBAL 'storage_sd_salt' + 0x14,0x28, // LOAD_METHOD 'is_enabled' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x36, // LOAD_GLOBAL 'require_confirm_sd_protect' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x11, // LOAD_GLOBAL 'request_pin_and_sd_salt' + 0x10,0x2a, // LOAD_CONST_STRING 'Enter PIN' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc1, // STORE_FAST 1 + 0xc2, // STORE_FAST 2 + 0x12,0x06, // LOAD_GLOBAL 'config' + 0x14,0x2d, // LOAD_METHOD 'change_pin' + 0xb1, // LOAD_FAST 1 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0x36,0x04, // CALL_METHOD 4 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0x12,0x10, // LOAD_GLOBAL 'error_pin_invalid' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x3a, // LOAD_GLOBAL 'storage_device' + 0x14,0x2f, // LOAD_METHOD 'set_sd_salt_auth_key' + 0x51, // LOAD_CONST_NONE + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x48,0x09, // SETUP_EXCEPT 9 + 0x12,0x3b, // LOAD_GLOBAL 'storage_sd_salt' + 0x14,0x2e, // LOAD_METHOD 'remove_sd_salt' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x4a,0x0a, // POP_EXCEPT_JUMP 10 + 0x57, // DUP_TOP + 0x12,0x40, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x59, // POP_TOP + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x12,0x0c, // LOAD_GLOBAL 'show_success' + 0x10,0x30, // LOAD_CONST_STRING 'success_sd' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'Success' + 0x10,0x31, // LOAD_CONST_STRING 'message' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_sd_protect__sd_protect_disable = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_sd_protect__sd_protect_disable, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 128, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 50, + .line_info = fun_data_apps_management_sd_protect__sd_protect_disable + 5, + .line_info_top = fun_data_apps_management_sd_protect__sd_protect_disable + 20, + .opcodes = fun_data_apps_management_sd_protect__sd_protect_disable + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_sd_protect__lt_module_gt_ +// frozen bytecode for file apps/management/sd_protect.py, scope apps_management_sd_protect__sd_protect_refresh +static const byte fun_data_apps_management_sd_protect__sd_protect_refresh[161] = { + 0xdd,0x40,0x26, // prelude + 0x33,0x3f, // names: _sd_protect_refresh, msg + 0x80,0x7f,0x28,0x67,0x69,0x68,0x6d,0x29,0x4e,0x2c,0x48,0x48,0x42,0x70,0x40,0x43,0x2c, // code info + 0x12,0x3b, // LOAD_GLOBAL 'storage_sd_salt' + 0x14,0x28, // LOAD_METHOD 'is_enabled' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x36, // LOAD_GLOBAL 'require_confirm_sd_protect' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x13, // LOAD_GLOBAL 'ensure_sdcard' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x11, // LOAD_GLOBAL 'request_pin_and_sd_salt' + 0x10,0x2a, // LOAD_CONST_STRING 'Enter PIN' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc1, // STORE_FAST 1 + 0xc2, // STORE_FAST 2 + 0x12,0x15, // LOAD_GLOBAL '_make_salt' + 0x34,0x00, // CALL_FUNCTION 0 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0x12,0x1c, // LOAD_GLOBAL '_set_salt' + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0x10,0x34, // LOAD_CONST_STRING 'stage' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'config' + 0x14,0x2d, // LOAD_METHOD 'change_pin' + 0xb1, // LOAD_FAST 1 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x04, // CALL_METHOD 4 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0x12,0x10, // LOAD_GLOBAL 'error_pin_invalid' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x3a, // LOAD_GLOBAL 'storage_device' + 0x14,0x2f, // LOAD_METHOD 'set_sd_salt_auth_key' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x48,0x09, // SETUP_EXCEPT 9 + 0x12,0x3b, // LOAD_GLOBAL 'storage_sd_salt' + 0x14,0x35, // LOAD_METHOD 'commit_sd_salt' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x4a,0x0a, // POP_EXCEPT_JUMP 10 + 0x57, // DUP_TOP + 0x12,0x40, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x59, // POP_TOP + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x12,0x0c, // LOAD_GLOBAL 'show_success' + 0x10,0x30, // LOAD_CONST_STRING 'success_sd' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'Success' + 0x10,0x31, // LOAD_CONST_STRING 'message' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_sd_protect__sd_protect_refresh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_sd_protect__sd_protect_refresh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 161, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 51, + .line_info = fun_data_apps_management_sd_protect__sd_protect_refresh + 5, + .line_info_top = fun_data_apps_management_sd_protect__sd_protect_refresh + 22, + .opcodes = fun_data_apps_management_sd_protect__sd_protect_refresh + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_sd_protect__lt_module_gt_ +// frozen bytecode for file apps/management/sd_protect.py, scope apps_management_sd_protect_require_confirm_sd_protect +static const byte fun_data_apps_management_sd_protect_require_confirm_sd_protect[89] = { + 0x39,0x18, // prelude + 0x36,0x3f, // names: require_confirm_sd_protect, msg + 0x80,0xa2,0x4b,0x2a,0x25,0x2a,0x25,0x2a,0x45,0x47, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x37, // LOAD_CONST_STRING 'confirm_action' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x37, // IMPORT_FROM 'confirm_action' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'operation' + 0x12,0x08, // LOAD_GLOBAL 'SdProtectOperationType' + 0x13,0x23, // LOAD_ATTR 'ENABLE' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0xc2, // STORE_FAST 2 + 0x42,0x65, // JUMP 37 + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'operation' + 0x12,0x08, // LOAD_GLOBAL 'SdProtectOperationType' + 0x13,0x24, // LOAD_ATTR 'DISABLE' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0xc2, // STORE_FAST 2 + 0x42,0x56, // JUMP 22 + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'operation' + 0x12,0x08, // LOAD_GLOBAL 'SdProtectOperationType' + 0x13,0x25, // LOAD_ATTR 'REFRESH' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0xc2, // STORE_FAST 2 + 0x42,0x47, // JUMP 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x10,0x38, // LOAD_CONST_STRING 'set_sd' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x10,0x39, // LOAD_CONST_STRING 'description' + 0xb2, // LOAD_FAST 2 + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_sd_protect_require_confirm_sd_protect = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_sd_protect_require_confirm_sd_protect, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 89, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 54, + .line_info = fun_data_apps_management_sd_protect_require_confirm_sd_protect + 4, + .line_info_top = fun_data_apps_management_sd_protect_require_confirm_sd_protect + 14, + .opcodes = fun_data_apps_management_sd_protect_require_confirm_sd_protect + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_sd_protect__lt_module_gt_[] = { + &raw_code_apps_management_sd_protect__make_salt, + &raw_code_apps_management_sd_protect__set_salt, + &raw_code_apps_management_sd_protect_sd_protect, + &raw_code_apps_management_sd_protect__sd_protect_enable, + &raw_code_apps_management_sd_protect__sd_protect_disable, + &raw_code_apps_management_sd_protect__sd_protect_refresh, + &raw_code_apps_management_sd_protect_require_confirm_sd_protect, +}; + +static const mp_raw_code_t raw_code_apps_management_sd_protect__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_sd_protect__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 167, + #endif + .children = (void *)&children_apps_management_sd_protect__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 7, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_sd_protect__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_sd_protect__lt_module_gt_ + 27, + .opcodes = fun_data_apps_management_sd_protect__lt_module_gt_ + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_sd_protect[65] = { + MP_QSTR_apps_slash_management_slash_sd_protect_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_storage_dot_device, + MP_QSTR_device, + MP_QSTR_storage_dot_sd_salt, + MP_QSTR_sd_salt, + MP_QSTR_config, + MP_QSTR_trezor, + MP_QSTR_SdProtectOperationType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_Success, + MP_QSTR_trezor_dot_messages, + MP_QSTR_show_success, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_error_pin_invalid, + MP_QSTR_request_pin_and_sd_salt, + MP_QSTR_apps_dot_common_dot_request_pin, + MP_QSTR_ensure_sdcard, + MP_QSTR_apps_dot_common_dot_sdcard, + MP_QSTR__make_salt, + MP_QSTR_random, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_bytes, + MP_QSTR_SD_SALT_LEN_BYTES, + MP_QSTR_SD_SALT_AUTH_KEY_LEN_BYTES, + MP_QSTR_compute_auth_tag, + MP_QSTR__set_salt, + MP_QSTR_confirm_retry_sd, + MP_QSTR_set_sd_salt, + MP_QSTR_sd_protect, + MP_QSTR_NotInitialized, + MP_QSTR_is_initialized, + MP_QSTR_operation, + MP_QSTR_ENABLE, + MP_QSTR_DISABLE, + MP_QSTR_REFRESH, + MP_QSTR__sd_protect_enable, + MP_QSTR_request_pin, + MP_QSTR_is_enabled, + MP_QSTR_has_pin, + MP_QSTR_Enter_space_PIN, + MP_QSTR_get_pin_rem, + MP_QSTR_, + MP_QSTR_change_pin, + MP_QSTR_remove_sd_salt, + MP_QSTR_set_sd_salt_auth_key, + MP_QSTR_success_sd, + MP_QSTR_message, + MP_QSTR__sd_protect_disable, + MP_QSTR__sd_protect_refresh, + MP_QSTR_stage, + MP_QSTR_commit_sd_salt, + MP_QSTR_require_confirm_sd_protect, + MP_QSTR_confirm_action, + MP_QSTR_set_sd, + MP_QSTR_description, + MP_QSTR_storage_device, + MP_QSTR_storage_sd_salt, + MP_QSTR_salt, + MP_QSTR_salt_tag, + MP_QSTR_OSError, + MP_QSTR_msg, + MP_QSTR_Exception, +}; + +// constants +static const mp_obj_str_t const_obj_apps_management_sd_protect_1 = {{&mp_type_str}, 4478, 25, (const byte*)"\x44\x65\x76\x69\x63\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64"}; +static const mp_obj_str_t const_obj_apps_management_sd_protect_3 = {{&mp_type_str}, 3174, 34, (const byte*)"\x53\x44\x20\x63\x61\x72\x64\x20\x70\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x65\x6e\x61\x62\x6c\x65\x64"}; +static const mp_obj_str_t const_obj_apps_management_sd_protect_4 = {{&mp_type_str}, 9610, 44, (const byte*)"\x59\x6f\x75\x20\x68\x61\x76\x65\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79\x20\x65\x6e\x61\x62\x6c\x65\x64\x20\x53\x44\x20\x70\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_management_sd_protect_5 = {{&mp_type_str}, 22848, 26, (const byte*)"\x53\x44\x20\x63\x61\x72\x64\x20\x70\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x20\x65\x6e\x61\x62\x6c\x65\x64"}; +static const mp_obj_str_t const_obj_apps_management_sd_protect_6 = {{&mp_type_str}, 33077, 30, (const byte*)"\x53\x44\x20\x63\x61\x72\x64\x20\x70\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x20\x6e\x6f\x74\x20\x65\x6e\x61\x62\x6c\x65\x64"}; +static const mp_obj_str_t const_obj_apps_management_sd_protect_7 = {{&mp_type_str}, 59103, 45, (const byte*)"\x59\x6f\x75\x20\x68\x61\x76\x65\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79\x20\x64\x69\x73\x61\x62\x6c\x65\x64\x20\x53\x44\x20\x70\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_management_sd_protect_8 = {{&mp_type_str}, 61301, 27, (const byte*)"\x53\x44\x20\x63\x61\x72\x64\x20\x70\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x20\x64\x69\x73\x61\x62\x6c\x65\x64"}; +static const mp_obj_str_t const_obj_apps_management_sd_protect_9 = {{&mp_type_str}, 17907, 46, (const byte*)"\x59\x6f\x75\x20\x68\x61\x76\x65\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79\x20\x72\x65\x66\x72\x65\x73\x68\x65\x64\x20\x53\x44\x20\x70\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_management_sd_protect_10 = {{&mp_type_str}, 47193, 28, (const byte*)"\x53\x44\x20\x63\x61\x72\x64\x20\x70\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x20\x72\x65\x66\x72\x65\x73\x68\x65\x64"}; +static const mp_obj_str_t const_obj_apps_management_sd_protect_11 = {{&mp_type_str}, 24150, 65, (const byte*)"\x44\x6f\x20\x79\x6f\x75\x20\x72\x65\x61\x6c\x6c\x79\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x73\x65\x63\x75\x72\x65\x20\x79\x6f\x75\x72\x20\x64\x65\x76\x69\x63\x65\x20\x77\x69\x74\x68\x20\x53\x44\x20\x63\x61\x72\x64\x20\x70\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x3f"}; +static const mp_obj_str_t const_obj_apps_management_sd_protect_12 = {{&mp_type_str}, 46611, 65, (const byte*)"\x44\x6f\x20\x79\x6f\x75\x20\x72\x65\x61\x6c\x6c\x79\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x72\x65\x6d\x6f\x76\x65\x20\x53\x44\x20\x63\x61\x72\x64\x20\x70\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x20\x66\x72\x6f\x6d\x20\x79\x6f\x75\x72\x20\x64\x65\x76\x69\x63\x65\x3f"}; +static const mp_obj_str_t const_obj_apps_management_sd_protect_13 = {{&mp_type_str}, 28834, 84, (const byte*)"\x44\x6f\x20\x79\x6f\x75\x20\x72\x65\x61\x6c\x6c\x79\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x72\x65\x70\x6c\x61\x63\x65\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x53\x44\x20\x63\x61\x72\x64\x20\x73\x65\x63\x72\x65\x74\x20\x77\x69\x74\x68\x20\x61\x20\x6e\x65\x77\x6c\x79\x20\x67\x65\x6e\x65\x72\x61\x74\x65\x64\x20\x6f\x6e\x65\x3f"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_management_sd_protect[15] = { + MP_ROM_QSTR(MP_QSTR_SD_space_card_space_I_slash_O_space_error_dot_), + MP_ROM_PTR(&const_obj_apps_management_sd_protect_1), + MP_ROM_QSTR(MP_QSTR_Unknown_space_operation), + MP_ROM_PTR(&const_obj_apps_management_sd_protect_3), + MP_ROM_PTR(&const_obj_apps_management_sd_protect_4), + MP_ROM_PTR(&const_obj_apps_management_sd_protect_5), + MP_ROM_PTR(&const_obj_apps_management_sd_protect_6), + MP_ROM_PTR(&const_obj_apps_management_sd_protect_7), + MP_ROM_PTR(&const_obj_apps_management_sd_protect_8), + MP_ROM_PTR(&const_obj_apps_management_sd_protect_9), + MP_ROM_PTR(&const_obj_apps_management_sd_protect_10), + MP_ROM_PTR(&const_obj_apps_management_sd_protect_11), + MP_ROM_PTR(&const_obj_apps_management_sd_protect_12), + MP_ROM_PTR(&const_obj_apps_management_sd_protect_13), + MP_ROM_QSTR(MP_QSTR_SD_space_card_space_protection), +}; + +static const mp_frozen_module_t frozen_module_apps_management_sd_protect = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_sd_protect, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_management_sd_protect, + }, + .rc = &raw_code_apps_management_sd_protect__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_set_u2f_counter +// - original source file: build/firmware/src/apps/management/set_u2f_counter.mpy +// - frozen file name: apps/management/set_u2f_counter.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/set_u2f_counter.py, scope apps_management_set_u2f_counter__lt_module_gt_ +static const byte fun_data_apps_management_set_u2f_counter__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'set_u2f_counter' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_set_u2f_counter__lt_module_gt_ +// frozen bytecode for file apps/management/set_u2f_counter.py, scope apps_management_set_u2f_counter_set_u2f_counter +static const byte fun_data_apps_management_set_u2f_counter_set_u2f_counter[155] = { + 0x81,0x50,0x26, // prelude + 0x02,0x18, // names: set_u2f_counter, msg + 0x80,0x07,0x27,0x2b,0x2b,0x2b,0x4b,0x27,0x28,0x27,0x48,0x43,0x24,0x24,0x4d,0x6a,0x49, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'storage.device' + 0x13,0x04, // LOAD_ATTR 'device' + 0xc1, // STORE_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x05, // IMPORT_FROM 'wire' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.enums' + 0x1c,0x07, // IMPORT_FROM 'ButtonRequestType' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'Success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.messages' + 0x1c,0x09, // IMPORT_FROM 'Success' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'confirm_action' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x0b, // IMPORT_FROM 'confirm_action' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x0d, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x0e, // LOAD_METHOD 'NotInitialized' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'u2f_counter' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x10, // LOAD_METHOD 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0x10,0x02, // LOAD_CONST_STRING 'set_u2f_counter' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x10,0x11, // LOAD_CONST_STRING 'description' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x10,0x12, // LOAD_CONST_STRING 'description_param' + 0x12,0x19, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'u2f_counter' + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x13, // LOAD_CONST_STRING 'verb' + 0x10,0x14, // LOAD_CONST_STRING 'SET' + 0x10,0x15, // LOAD_CONST_STRING 'br_code' + 0xb3, // LOAD_FAST 3 + 0x13,0x16, // LOAD_ATTR 'ProtectCall' + 0x34,0x88,0x02, // CALL_FUNCTION 1026 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x02, // LOAD_METHOD 'set_u2f_counter' + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'u2f_counter' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x10,0x17, // LOAD_CONST_STRING 'message' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_set_u2f_counter_set_u2f_counter = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_set_u2f_counter_set_u2f_counter, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 155, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_management_set_u2f_counter_set_u2f_counter + 5, + .line_info_top = fun_data_apps_management_set_u2f_counter_set_u2f_counter + 22, + .opcodes = fun_data_apps_management_set_u2f_counter_set_u2f_counter + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_set_u2f_counter__lt_module_gt_[] = { + &raw_code_apps_management_set_u2f_counter_set_u2f_counter, +}; + +static const mp_raw_code_t raw_code_apps_management_set_u2f_counter__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_set_u2f_counter__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_management_set_u2f_counter__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_set_u2f_counter__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_set_u2f_counter__lt_module_gt_ + 6, + .opcodes = fun_data_apps_management_set_u2f_counter__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_set_u2f_counter[26] = { + MP_QSTR_apps_slash_management_slash_set_u2f_counter_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_set_u2f_counter, + MP_QSTR_storage_dot_device, + MP_QSTR_device, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_Success, + MP_QSTR_trezor_dot_messages, + MP_QSTR_confirm_action, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_is_initialized, + MP_QSTR_NotInitialized, + MP_QSTR_u2f_counter, + MP_QSTR_ProcessError, + MP_QSTR_description, + MP_QSTR_description_param, + MP_QSTR_verb, + MP_QSTR_SET, + MP_QSTR_br_code, + MP_QSTR_ProtectCall, + MP_QSTR_message, + MP_QSTR_msg, + MP_QSTR_str, +}; + +// constants +static const mp_obj_str_t const_obj_apps_management_set_u2f_counter_0 = {{&mp_type_str}, 4478, 25, (const byte*)"\x44\x65\x76\x69\x63\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64"}; +static const mp_obj_str_t const_obj_apps_management_set_u2f_counter_3 = {{&mp_type_str}, 41513, 26, (const byte*)"\x53\x65\x74\x20\x74\x68\x65\x20\x55\x32\x46\x20\x63\x6f\x75\x6e\x74\x65\x72\x20\x74\x6f\x20\x7b\x7d\x3f"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_management_set_u2f_counter[5] = { + MP_ROM_PTR(&const_obj_apps_management_set_u2f_counter_0), + MP_ROM_QSTR(MP_QSTR_No_space_value_space_provided), + MP_ROM_QSTR(MP_QSTR_Set_space_U2F_space_counter), + MP_ROM_PTR(&const_obj_apps_management_set_u2f_counter_3), + MP_ROM_QSTR(MP_QSTR_U2F_space_counter_space_set), +}; + +static const mp_frozen_module_t frozen_module_apps_management_set_u2f_counter = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_set_u2f_counter, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_management_set_u2f_counter, + }, + .rc = &raw_code_apps_management_set_u2f_counter__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_show_tutorial +// - original source file: build/firmware/src/apps/management/show_tutorial.mpy +// - frozen file name: apps/management/show_tutorial.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/show_tutorial.py, scope apps_management_show_tutorial__lt_module_gt_ +static const byte fun_data_apps_management_show_tutorial__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'show_tutorial' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_show_tutorial__lt_module_gt_ +// frozen bytecode for file apps/management/show_tutorial.py, scope apps_management_show_tutorial_show_tutorial +static const byte fun_data_apps_management_show_tutorial_show_tutorial[49] = { + 0xa9,0x40,0x10, // prelude + 0x02,0x08, // names: show_tutorial, msg + 0x80,0x07,0x6b,0x20,0x4b,0x47, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'Success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor.messages' + 0x1c,0x03, // IMPORT_FROM 'Success' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'tutorial' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x05, // IMPORT_FROM 'tutorial' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x10,0x07, // LOAD_CONST_STRING 'message' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_show_tutorial_show_tutorial = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_show_tutorial_show_tutorial, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_management_show_tutorial_show_tutorial + 5, + .line_info_top = fun_data_apps_management_show_tutorial_show_tutorial + 11, + .opcodes = fun_data_apps_management_show_tutorial_show_tutorial + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_show_tutorial__lt_module_gt_[] = { + &raw_code_apps_management_show_tutorial_show_tutorial, +}; + +static const mp_raw_code_t raw_code_apps_management_show_tutorial__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_show_tutorial__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_management_show_tutorial__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_show_tutorial__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_show_tutorial__lt_module_gt_ + 6, + .opcodes = fun_data_apps_management_show_tutorial__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_show_tutorial[9] = { + MP_QSTR_apps_slash_management_slash_show_tutorial_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_show_tutorial, + MP_QSTR_Success, + MP_QSTR_trezor_dot_messages, + MP_QSTR_tutorial, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_message, + MP_QSTR_msg, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_management_show_tutorial[1] = { + MP_ROM_QSTR(MP_QSTR_Tutorial_space_shown), +}; + +static const mp_frozen_module_t frozen_module_apps_management_show_tutorial = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_show_tutorial, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_management_show_tutorial, + }, + .rc = &raw_code_apps_management_show_tutorial__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_wipe_device +// - original source file: build/firmware/src/apps/management/wipe_device.mpy +// - frozen file name: apps/management/wipe_device.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/wipe_device.py, scope apps_management_wipe_device__lt_module_gt_ +static const byte fun_data_apps_management_wipe_device__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'wipe_device' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_wipe_device__lt_module_gt_ +// frozen bytecode for file apps/management/wipe_device.py, scope apps_management_wipe_device_wipe_device +static const byte fun_data_apps_management_wipe_device_wipe_device[123] = { + 0xa1,0x50,0x24, // prelude + 0x02,0x14, // names: wipe_device, msg + 0x80,0x07,0x25,0x2b,0x2b,0x4b,0x4b,0x21,0x22,0x22,0x22,0x47,0x6a,0x6a,0x26,0x44, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'storage' + 0xc1, // STORE_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.enums' + 0x1c,0x04, // IMPORT_FROM 'ButtonRequestType' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'Success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.messages' + 0x1c,0x06, // IMPORT_FROM 'Success' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'confirm_action' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x08, // IMPORT_FROM 'confirm_action' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'reload_settings_from_storage' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'apps.base' + 0x1c,0x0a, // IMPORT_FROM 'reload_settings_from_storage' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x10,0x0c, // LOAD_CONST_STRING 'reverse' + 0x52, // LOAD_CONST_TRUE + 0x10,0x0d, // LOAD_CONST_STRING 'verb' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x10,0x0e, // LOAD_CONST_STRING 'hold' + 0x52, // LOAD_CONST_TRUE + 0x10,0x0f, // LOAD_CONST_STRING 'hold_danger' + 0x52, // LOAD_CONST_TRUE + 0x10,0x10, // LOAD_CONST_STRING 'br_code' + 0xb2, // LOAD_FAST 2 + 0x13,0x11, // LOAD_ATTR 'WipeDevice' + 0x34,0x8a,0x04, // CALL_FUNCTION 1284 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x12, // LOAD_METHOD 'wipe' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x13, // LOAD_CONST_STRING 'message' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_wipe_device_wipe_device = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_wipe_device_wipe_device, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 123, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 21, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_management_wipe_device_wipe_device + 5, + .line_info_top = fun_data_apps_management_wipe_device_wipe_device + 21, + .opcodes = fun_data_apps_management_wipe_device_wipe_device + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_wipe_device__lt_module_gt_[] = { + &raw_code_apps_management_wipe_device_wipe_device, +}; + +static const mp_raw_code_t raw_code_apps_management_wipe_device__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_wipe_device__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_management_wipe_device__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_wipe_device__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_wipe_device__lt_module_gt_ + 6, + .opcodes = fun_data_apps_management_wipe_device__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_wipe_device[21] = { + MP_QSTR_apps_slash_management_slash_wipe_device_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_wipe_device, + MP_QSTR_storage, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_Success, + MP_QSTR_trezor_dot_messages, + MP_QSTR_confirm_action, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_reload_settings_from_storage, + MP_QSTR_apps_dot_base, + MP_QSTR_reverse, + MP_QSTR_verb, + MP_QSTR_hold, + MP_QSTR_hold_danger, + MP_QSTR_br_code, + MP_QSTR_WipeDevice, + MP_QSTR_wipe, + MP_QSTR_message, + MP_QSTR_msg, +}; + +// constants +static const mp_obj_str_t const_obj_apps_management_wipe_device_3 = {{&mp_type_str}, 14026, 39, (const byte*)"\x44\x6f\x20\x79\x6f\x75\x20\x72\x65\x61\x6c\x6c\x79\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x77\x69\x70\x65\x20\x74\x68\x65\x20\x64\x65\x76\x69\x63\x65\x3f\x0a"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_management_wipe_device[6] = { + MP_ROM_QSTR(MP_QSTR_confirm_wipe), + MP_ROM_QSTR(MP_QSTR_Wipe_space_device), + MP_ROM_QSTR(MP_QSTR_All_space_data_space_will_space_be_space_erased_dot_), + MP_ROM_PTR(&const_obj_apps_management_wipe_device_3), + MP_ROM_QSTR(MP_QSTR_Hold_space_to_space_confirm), + MP_ROM_QSTR(MP_QSTR_Device_space_wiped), +}; + +static const mp_frozen_module_t frozen_module_apps_management_wipe_device = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_wipe_device, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_management_wipe_device, + }, + .rc = &raw_code_apps_management_wipe_device__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_recovery_device___init__ +// - original source file: build/firmware/src/apps/management/recovery_device/__init__.mpy +// - frozen file name: apps/management/recovery_device/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/recovery_device/__init__.py, scope apps_management_recovery_device___init____lt_module_gt_ +static const byte fun_data_apps_management_recovery_device___init____lt_module_gt_[17] = { + 0x00,0x0a, // prelude + 0x01, // names: + 0x40,0x60,0x60,0x64, // code info + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x37, // STORE_NAME 'DRY_RUN_ALLOWED_FIELDS' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'recovery_device' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_recovery_device___init____lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/__init__.py, scope apps_management_recovery_device___init___recovery_device +static const byte fun_data_apps_management_recovery_device___init___recovery_device[483] = { + 0xe9,0x50,0x74, // prelude + 0x02,0x38, // names: recovery_device, msg + 0x80,0x0c,0x60,0x60,0x25,0x27,0x27,0x35,0x2b,0x50,0x75,0x60,0x50,0x64,0x20,0x2a,0x28,0x2a,0x28,0x27,0x23,0x45,0x43,0x30,0x2f,0x70,0x20,0x27,0x67,0x20,0x23,0x4f,0x21,0x22,0x24,0x24,0x6e,0x60,0x43,0x66,0x23,0x2e,0x2b,0x47,0x44,0x25,0x2c,0x4c,0x2d,0x28,0x29,0x28,0x49,0x27,0x4b,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'storage' + 0xc1, // STORE_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x04, // IMPORT_NAME 'storage.device' + 0x13,0x05, // LOAD_ATTR 'device' + 0xc2, // STORE_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x06, // IMPORT_NAME 'storage.recovery' + 0x13,0x07, // LOAD_ATTR 'recovery' + 0xc3, // STORE_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'config' + 0x10,0x09, // LOAD_CONST_STRING 'wire' + 0x10,0x0a, // LOAD_CONST_STRING 'workflow' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x0b, // IMPORT_NAME 'trezor' + 0x1c,0x08, // IMPORT_FROM 'config' + 0xc4, // STORE_FAST 4 + 0x1c,0x09, // IMPORT_FROM 'wire' + 0xc5, // STORE_FAST 5 + 0x1c,0x0a, // IMPORT_FROM 'workflow' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'trezor.enums' + 0x1c,0x0c, // IMPORT_FROM 'ButtonRequestType' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'confirm_action' + 0x10,0x0f, // LOAD_CONST_STRING 'confirm_reset_device' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x10, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x0e, // IMPORT_FROM 'confirm_action' + 0xc8, // STORE_FAST 8 + 0x1c,0x0f, // IMPORT_FROM 'confirm_reset_device' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'error_pin_invalid' + 0x10,0x12, // LOAD_CONST_STRING 'request_pin_and_sd_salt' + 0x10,0x13, // LOAD_CONST_STRING 'request_pin_confirm' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x14, // IMPORT_NAME 'apps.common.request_pin' + 0x1c,0x11, // IMPORT_FROM 'error_pin_invalid' + 0xca, // STORE_FAST 10 + 0x1c,0x12, // IMPORT_FROM 'request_pin_and_sd_salt' + 0xcb, // STORE_FAST 11 + 0x1c,0x13, // IMPORT_FROM 'request_pin_confirm' + 0xcc, // STORE_FAST 12 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x15, // LOAD_CONST_STRING 'recovery_homescreen' + 0x10,0x16, // LOAD_CONST_STRING 'recovery_process' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x17, // IMPORT_NAME 'homescreen' + 0x1c,0x15, // IMPORT_FROM 'recovery_homescreen' + 0xcd, // STORE_FAST 13 + 0x1c,0x16, // IMPORT_FROM 'recovery_process' + 0xce, // STORE_FAST 14 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'dry_run' + 0xcf, // STORE_FAST 15 + 0xbf, // LOAD_FAST 15 + 0x43,0x4f, // POP_JUMP_IF_TRUE 15 + 0xb2, // LOAD_FAST 2 + 0x14,0x19, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb5, // LOAD_FAST 5 + 0x14,0x1a, // LOAD_METHOD 'UnexpectedMessage' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xbf, // LOAD_FAST 15 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb2, // LOAD_FAST 2 + 0x14,0x19, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xb5, // LOAD_FAST 5 + 0x14,0x1b, // LOAD_METHOD 'NotInitialized' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'enforce_wordlist' + 0x50, // LOAD_CONST_FALSE + 0xde, // BINARY_OP 7 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb5, // LOAD_FAST 5 + 0x14,0x1d, // LOAD_METHOD 'ProcessError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xbf, // LOAD_FAST 15 + 0x44,0x6f, // POP_JUMP_IF_FALSE 47 + 0xb0, // LOAD_FAST 0 + 0x13,0x1e, // LOAD_ATTR '__dict__' + 0x14,0x1f, // LOAD_METHOD 'items' + 0x36,0x00, // CALL_METHOD 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x25, // FOR_ITER 37 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0x26,0x10, // STORE_FAST_N 16 + 0x26,0x11, // STORE_FAST_N 17 + 0x24,0x10, // LOAD_FAST_N 16 + 0x12,0x37, // LOAD_GLOBAL 'DRY_RUN_ALLOWED_FIELDS' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x24,0x11, // LOAD_FAST_N 17 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb5, // LOAD_FAST 5 + 0x14,0x1d, // LOAD_METHOD 'ProcessError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x14,0x20, // LOAD_METHOD 'format' + 0x24,0x10, // LOAD_FAST_N 16 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x42,0x19, // JUMP -39 + 0xb3, // LOAD_FAST 3 + 0x14,0x21, // LOAD_METHOD 'is_in_progress' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xbe, // LOAD_FAST 14 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE + 0xbf, // LOAD_FAST 15 + 0x43,0x4f, // POP_JUMP_IF_TRUE 15 + 0xb9, // LOAD_FAST 9 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x10,0x07, // LOAD_CONST_STRING 'recovery' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x59, // JUMP 25 + 0xb8, // LOAD_FAST 8 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x10,0x22, // LOAD_CONST_STRING 'description' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x10,0x23, // LOAD_CONST_STRING 'br_code' + 0xb7, // LOAD_FAST 7 + 0x13,0x24, // LOAD_ATTR 'ProtectCall' + 0x10,0x25, // LOAD_CONST_STRING 'verb' + 0x10,0x26, // LOAD_CONST_STRING 'Check' + 0x34,0x86,0x02, // CALL_FUNCTION 770 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xbf, // LOAD_FAST 15 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb1, // LOAD_FAST 1 + 0x14,0x27, // LOAD_METHOD 'reset' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xbf, // LOAD_FAST 15 + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0xbb, // LOAD_FAST 11 + 0x10,0x28, // LOAD_CONST_STRING 'Enter PIN' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0x26,0x12, // STORE_FAST_N 18 + 0x26,0x13, // STORE_FAST_N 19 + 0xb4, // LOAD_FAST 4 + 0x14,0x29, // LOAD_METHOD 'check_pin' + 0x24,0x12, // LOAD_FAST_N 18 + 0x24,0x13, // LOAD_FAST_N 19 + 0x36,0x02, // CALL_METHOD 2 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0xba, // LOAD_FAST 10 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xbf, // LOAD_FAST 15 + 0x43,0xcc,0x80, // POP_JUMP_IF_TRUE 76 + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'pin_protection' + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0xbc, // LOAD_FAST 12 + 0x10,0x2b, // LOAD_CONST_STRING 'allow_cancel' + 0x50, // LOAD_CONST_FALSE + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x14, // STORE_FAST_N 20 + 0xb4, // LOAD_FAST 4 + 0x14,0x2c, // LOAD_METHOD 'change_pin' + 0x10,0x2d, // LOAD_CONST_STRING '' + 0x24,0x14, // LOAD_FAST_N 20 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x2e, // LOAD_METHOD 'set_passphrase_enabled' + 0x12,0x39, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'passphrase_protection' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'u2f_counter' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb2, // LOAD_FAST 2 + 0x14,0x31, // LOAD_METHOD 'set_u2f_counter' + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'u2f_counter' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x32, // LOAD_ATTR 'label' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb2, // LOAD_FAST 2 + 0x14,0x33, // LOAD_METHOD 'set_label' + 0xb0, // LOAD_FAST 0 + 0x13,0x32, // LOAD_ATTR 'label' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x34, // LOAD_METHOD 'set_in_progress' + 0x52, // LOAD_CONST_TRUE + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x35, // LOAD_METHOD 'set_dry_run' + 0x12,0x39, // LOAD_GLOBAL 'bool' + 0xbf, // LOAD_FAST 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x36, // LOAD_METHOD 'set_default' + 0xbd, // LOAD_FAST 13 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device___init___recovery_device = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_recovery_device___init___recovery_device, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 483, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 30, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_management_recovery_device___init___recovery_device + 5, + .line_info_top = fun_data_apps_management_recovery_device___init___recovery_device + 61, + .opcodes = fun_data_apps_management_recovery_device___init___recovery_device + 61, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_recovery_device___init____lt_module_gt_[] = { + &raw_code_apps_management_recovery_device___init___recovery_device, +}; + +static const mp_raw_code_t raw_code_apps_management_recovery_device___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_recovery_device___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = (void *)&children_apps_management_recovery_device___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_recovery_device___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_recovery_device___init____lt_module_gt_ + 7, + .opcodes = fun_data_apps_management_recovery_device___init____lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_recovery_device___init__[58] = { + MP_QSTR_apps_slash_management_slash_recovery_device_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_recovery_device, + MP_QSTR_storage, + MP_QSTR_storage_dot_device, + MP_QSTR_device, + MP_QSTR_storage_dot_recovery, + MP_QSTR_recovery, + MP_QSTR_config, + MP_QSTR_wire, + MP_QSTR_workflow, + MP_QSTR_trezor, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_confirm_action, + MP_QSTR_confirm_reset_device, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_error_pin_invalid, + MP_QSTR_request_pin_and_sd_salt, + MP_QSTR_request_pin_confirm, + MP_QSTR_apps_dot_common_dot_request_pin, + MP_QSTR_recovery_homescreen, + MP_QSTR_recovery_process, + MP_QSTR_homescreen, + MP_QSTR_dry_run, + MP_QSTR_is_initialized, + MP_QSTR_UnexpectedMessage, + MP_QSTR_NotInitialized, + MP_QSTR_enforce_wordlist, + MP_QSTR_ProcessError, + MP_QSTR___dict__, + MP_QSTR_items, + MP_QSTR_format, + MP_QSTR_is_in_progress, + MP_QSTR_description, + MP_QSTR_br_code, + MP_QSTR_ProtectCall, + MP_QSTR_verb, + MP_QSTR_Check, + MP_QSTR_reset, + MP_QSTR_Enter_space_PIN, + MP_QSTR_check_pin, + MP_QSTR_pin_protection, + MP_QSTR_allow_cancel, + MP_QSTR_change_pin, + MP_QSTR_, + MP_QSTR_set_passphrase_enabled, + MP_QSTR_passphrase_protection, + MP_QSTR_u2f_counter, + MP_QSTR_set_u2f_counter, + MP_QSTR_label, + MP_QSTR_set_label, + MP_QSTR_set_in_progress, + MP_QSTR_set_dry_run, + MP_QSTR_set_default, + MP_QSTR_DRY_RUN_ALLOWED_FIELDS, + MP_QSTR_msg, + MP_QSTR_bool, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_management_recovery_device___init___0 = {{&mp_type_tuple}, 4, { + MP_ROM_QSTR(MP_QSTR_dry_run), + MP_ROM_QSTR(MP_QSTR_word_count), + MP_ROM_QSTR(MP_QSTR_enforce_wordlist), + MP_ROM_QSTR(MP_QSTR_type), +}}; +static const mp_obj_str_t const_obj_apps_management_recovery_device___init___2 = {{&mp_type_str}, 4478, 25, (const byte*)"\x44\x65\x76\x69\x63\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device___init___3 = {{&mp_type_str}, 49605, 78, (const byte*)"\x56\x61\x6c\x75\x65\x20\x65\x6e\x66\x6f\x72\x63\x65\x5f\x77\x6f\x72\x64\x6c\x69\x73\x74\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x54\x72\x75\x65\x2c\x20\x54\x72\x65\x7a\x6f\x72\x20\x43\x6f\x72\x65\x20\x65\x6e\x66\x6f\x72\x63\x65\x73\x20\x77\x6f\x72\x64\x73\x20\x61\x75\x74\x6f\x6d\x61\x74\x69\x63\x61\x6c\x6c\x79\x2e"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device___init___4 = {{&mp_type_str}, 9294, 34, (const byte*)"\x46\x6f\x72\x62\x69\x64\x64\x65\x6e\x20\x66\x69\x65\x6c\x64\x20\x73\x65\x74\x20\x69\x6e\x20\x64\x72\x79\x2d\x72\x75\x6e\x3a\x20\x7b\x7d"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_management_recovery_device___init__[9] = { + MP_ROM_PTR(&const_obj_apps_management_recovery_device___init___0), + MP_ROM_QSTR(MP_QSTR_Already_space_initialized), + MP_ROM_PTR(&const_obj_apps_management_recovery_device___init___2), + MP_ROM_PTR(&const_obj_apps_management_recovery_device___init___3), + MP_ROM_PTR(&const_obj_apps_management_recovery_device___init___4), + MP_ROM_QSTR(MP_QSTR_Recover_space_wallet), + MP_ROM_QSTR(MP_QSTR_confirm_seedcheck), + MP_ROM_QSTR(MP_QSTR_Backup_space_check), + MP_ROM_QSTR(MP_QSTR_Check_space_your_space_backup_question_), +}; + +static const mp_frozen_module_t frozen_module_apps_management_recovery_device___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_recovery_device___init__, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_management_recovery_device___init__, + }, + .rc = &raw_code_apps_management_recovery_device___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_recovery_device_homescreen +// - original source file: build/firmware/src/apps/management/recovery_device/homescreen.mpy +// - frozen file name: apps/management/recovery_device/homescreen.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/recovery_device/homescreen.py, scope apps_management_recovery_device_homescreen__lt_module_gt_ +static const byte fun_data_apps_management_recovery_device_homescreen__lt_module_gt_[145] = { + 0x10,0x36, // prelude + 0x01, // names: + 0x40,0x28,0x28,0x28,0x2c,0x4c,0x2c,0x52,0x60,0x20,0x84,0x0c,0x84,0x10,0x84,0x3c,0x84,0x24,0x84,0x19,0x84,0x14,0x84,0x15,0x84,0x1c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'storage.device' + 0x13,0x03, // LOAD_ATTR 'device' + 0x16,0x67, // STORE_NAME 'storage_device' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x04, // IMPORT_NAME 'storage.recovery' + 0x13,0x05, // LOAD_ATTR 'recovery' + 0x16,0x68, // STORE_NAME 'storage_recovery' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x06, // IMPORT_NAME 'storage.recovery_shares' + 0x13,0x07, // LOAD_ATTR 'recovery_shares' + 0x16,0x69, // STORE_NAME 'storage_recovery_shares' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor' + 0x1c,0x08, // IMPORT_FROM 'wire' + 0x16,0x08, // STORE_NAME 'wire' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'Success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0a, // IMPORT_FROM 'Success' + 0x16,0x0a, // STORE_NAME 'Success' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x0c, // LOAD_CONST_STRING 'backup_types' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME '' + 0x1c,0x0c, // IMPORT_FROM 'backup_types' + 0x16,0x0c, // STORE_NAME 'backup_types' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0e, // LOAD_CONST_STRING 'layout' + 0x10,0x0f, // LOAD_CONST_STRING 'recover' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0d, // IMPORT_NAME '' + 0x1c,0x0e, // IMPORT_FROM 'layout' + 0x16,0x0e, // STORE_NAME 'layout' + 0x1c,0x0f, // IMPORT_FROM 'recover' + 0x16,0x0f, // STORE_NAME 'recover' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x10, // STORE_NAME 'recovery_homescreen' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x16, // STORE_NAME 'recovery_process' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x22, // STORE_NAME '_continue_recovery_process' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x2e, // STORE_NAME '_finish_recovery_dry_run' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x3c, // STORE_NAME '_finish_recovery' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x47, // STORE_NAME '_process_words' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x52, // STORE_NAME '_request_share_first_screen' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x57, // STORE_NAME '_request_share_next_screen' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x5f, // STORE_NAME '_show_remaining_groups_and_shares' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_recovery_device_homescreen__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/homescreen.py, scope apps_management_recovery_device_homescreen_recovery_homescreen +static const byte fun_data_apps_management_recovery_device_homescreen_recovery_homescreen[60] = { + 0xa0,0x40,0x10, // prelude + 0x10, // names: recovery_homescreen + 0x80,0x10,0x4b,0x4b,0x28,0x27,0x42, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'workflow' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor' + 0x1c,0x11, // IMPORT_FROM 'workflow' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x12, // LOAD_CONST_STRING 'homescreen' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME 'apps.homescreen' + 0x1c,0x12, // IMPORT_FROM 'homescreen' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x68, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x14, // LOAD_METHOD 'is_in_progress' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x15, // LOAD_METHOD 'set_default' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x16, // LOAD_GLOBAL 'recovery_process' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_homescreen_recovery_homescreen = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_recovery_device_homescreen_recovery_homescreen, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 60, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_management_recovery_device_homescreen_recovery_homescreen + 4, + .line_info_top = fun_data_apps_management_recovery_device_homescreen_recovery_homescreen + 11, + .opcodes = fun_data_apps_management_recovery_device_homescreen_recovery_homescreen + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_homescreen__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/homescreen.py, scope apps_management_recovery_device_homescreen_recovery_process +static const byte fun_data_apps_management_recovery_device_homescreen_recovery_process[100] = { + 0xc4,0x40,0x1a, // prelude + 0x16, // names: recovery_process + 0x80,0x1c,0x25,0x4b,0x2c,0x22,0x2b,0x28,0x27,0x23,0x49,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x17, // IMPORT_NAME 'storage' + 0xc0, // STORE_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x18, // LOAD_CONST_STRING 'MessageType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x19, // IMPORT_NAME 'trezor.enums' + 0x1c,0x18, // IMPORT_FROM 'MessageType' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'Initialize' + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'GetFeatures' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x12,0x08, // LOAD_GLOBAL 'wire' + 0x18,0x1c, // STORE_ATTR 'AVOID_RESTARTING_FOR' + 0x48,0x0a, // SETUP_EXCEPT 10 + 0x12,0x22, // LOAD_GLOBAL '_continue_recovery_process' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE + 0x4a,0x2a, // POP_EXCEPT_JUMP 42 + 0x57, // DUP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'recover' + 0x13,0x1d, // LOAD_ATTR 'RecoveryAborted' + 0xdf, // BINARY_OP 8 + 0x44,0x61, // POP_JUMP_IF_FALSE 33 + 0x59, // POP_TOP + 0x12,0x68, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x1e, // LOAD_METHOD 'is_dry_run' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x68, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x1f, // LOAD_METHOD 'end_progress' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0x46, // JUMP 6 + 0xb0, // LOAD_FAST 0 + 0x14,0x20, // LOAD_METHOD 'wipe' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'wire' + 0x13,0x21, // LOAD_ATTR 'ActionCancelled' + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_homescreen_recovery_process = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_recovery_device_homescreen_recovery_process, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 100, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_apps_management_recovery_device_homescreen_recovery_process + 4, + .line_info_top = fun_data_apps_management_recovery_device_homescreen_recovery_process + 16, + .opcodes = fun_data_apps_management_recovery_device_homescreen_recovery_process + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_homescreen__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/homescreen.py, scope apps_management_recovery_device_homescreen__continue_recovery_process +static const byte fun_data_apps_management_recovery_device_homescreen__continue_recovery_process[230] = { + 0xf4,0x40,0x44, // prelude + 0x22, // names: _continue_recovery_process + 0x80,0x2c,0x2b,0x6b,0x27,0x6a,0x60,0x44,0x23,0x40,0x49,0x22,0x23,0x63,0x20,0x28,0x26,0x68,0x4b,0x29,0x60,0x6c,0x23,0x42,0x22,0x6c,0x20,0x4a,0x54,0x20,0x23,0x4c,0x4a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x23, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor' + 0x1c,0x23, // IMPORT_FROM 'utils' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x24, // LOAD_CONST_STRING 'MnemonicError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x25, // IMPORT_NAME 'trezor.errors' + 0x1c,0x24, // IMPORT_FROM 'MnemonicError' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x68, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x1e, // LOAD_METHOD 'is_dry_run' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0x12,0x0f, // LOAD_GLOBAL 'recover' + 0x14,0x26, // LOAD_METHOD 'load_slip39_state' + 0x36,0x00, // CALL_METHOD 0 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x12,0x52, // LOAD_GLOBAL '_request_share_first_screen' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xc6, // STORE_FAST 6 + 0x42,0xe4,0x80, // JUMP 100 + 0xb5, // LOAD_FAST 5 + 0x44,0x6a, // POP_JUMP_IF_FALSE 42 + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'INTERNAL_MODEL' + 0x10,0x28, // LOAD_CONST_STRING 'T2B1' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x0e, // LOAD_GLOBAL 'layout' + 0x14,0x29, // LOAD_METHOD 'homescreen_dialog' + 0x10,0x2a, // LOAD_CONST_STRING 'Continue' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'layout' + 0x14,0x2b, // LOAD_METHOD 'request_word_count' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0x12,0x52, // LOAD_GLOBAL '_request_share_first_screen' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'layout' + 0x14,0x2c, // LOAD_METHOD 'request_mnemonic' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x42,0x66, // JUMP 38 + 0x48,0x10, // SETUP_EXCEPT 16 + 0x12,0x47, // LOAD_GLOBAL '_process_words' + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc6, // STORE_FAST 6 + 0xc4, // STORE_FAST 4 + 0x50, // LOAD_CONST_FALSE + 0xc5, // STORE_FAST 5 + 0x4a,0x14, // POP_EXCEPT_JUMP 20 + 0x57, // DUP_TOP + 0xb1, // LOAD_FAST 1 + 0xdf, // BINARY_OP 8 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'layout' + 0x14,0x2d, // LOAD_METHOD 'show_invalid_mnemonic' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb6, // LOAD_FAST 6 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x96,0x7f, // POP_JUMP_IF_TRUE -106 + 0xb2, // LOAD_FAST 2 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x2e, // LOAD_GLOBAL '_finish_recovery_dry_run' + 0xb6, // LOAD_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc8, // STORE_FAST 8 + 0x42,0x4a, // JUMP 10 + 0x12,0x3c, // LOAD_GLOBAL '_finish_recovery' + 0xb6, // LOAD_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_homescreen__continue_recovery_process = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_recovery_device_homescreen__continue_recovery_process, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 230, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_apps_management_recovery_device_homescreen__continue_recovery_process + 4, + .line_info_top = fun_data_apps_management_recovery_device_homescreen__continue_recovery_process + 37, + .opcodes = fun_data_apps_management_recovery_device_homescreen__continue_recovery_process + 37, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_homescreen__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/homescreen.py, scope apps_management_recovery_device_homescreen__finish_recovery_dry_run +static const byte fun_data_apps_management_recovery_device_homescreen__finish_recovery_dry_run[188] = { + 0xea,0x40,0x34, // prelude + 0x2e,0x6a,0x6b, // names: _finish_recovery_dry_run, secret, backup_type + 0x80,0x68,0x2b,0x4b,0x4b,0x25,0x43,0x29,0x26,0x29,0x48,0x48,0x23,0x21,0x26,0x49,0x21,0x26,0x69,0x47,0x4c,0x23,0x4a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x23, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor' + 0x1c,0x23, // IMPORT_FROM 'utils' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2f, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x30, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x2f, // IMPORT_FROM 'sha256' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x31, // LOAD_CONST_STRING 'mnemonic' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x32, // IMPORT_NAME 'apps.common' + 0x1c,0x31, // IMPORT_FROM 'mnemonic' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x6c, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x33, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x14,0x34, // LOAD_METHOD 'get_secret' + 0x36,0x00, // CALL_METHOD 0 + 0xc6, // STORE_FAST 6 + 0xb3, // LOAD_FAST 3 + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x33, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc7, // STORE_FAST 7 + 0xb2, // LOAD_FAST 2 + 0x14,0x35, // LOAD_METHOD 'consteq' + 0xb7, // LOAD_FAST 7 + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0xc8, // STORE_FAST 8 + 0x12,0x0c, // LOAD_GLOBAL 'backup_types' + 0x14,0x36, // LOAD_METHOD 'is_slip39_backup_type' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc9, // STORE_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0xb8, // LOAD_FAST 8 + 0x12,0x67, // LOAD_GLOBAL 'storage_device' + 0x14,0x37, // LOAD_METHOD 'get_slip39_identifier' + 0x36,0x00, // CALL_METHOD 0 + 0x12,0x68, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x37, // LOAD_METHOD 'get_slip39_identifier' + 0x36,0x00, // CALL_METHOD 0 + 0xd9, // BINARY_OP 2 __eq__ + 0xe2, // BINARY_OP 11 __iand__ + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x12,0x67, // LOAD_GLOBAL 'storage_device' + 0x14,0x38, // LOAD_METHOD 'get_slip39_iteration_exponent' + 0x36,0x00, // CALL_METHOD 0 + 0x12,0x68, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x38, // LOAD_METHOD 'get_slip39_iteration_exponent' + 0x36,0x00, // CALL_METHOD 0 + 0xd9, // BINARY_OP 2 __eq__ + 0xe2, // BINARY_OP 11 __iand__ + 0xc8, // STORE_FAST 8 + 0x12,0x68, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x1f, // LOAD_METHOD 'end_progress' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'layout' + 0x14,0x39, // LOAD_METHOD 'show_dry_run_result' + 0xb8, // LOAD_FAST 8 + 0xb9, // LOAD_FAST 9 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x0a, // LOAD_GLOBAL 'Success' + 0x10,0x3a, // LOAD_CONST_STRING 'message' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE + 0x12,0x08, // LOAD_GLOBAL 'wire' + 0x14,0x3b, // LOAD_METHOD 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_homescreen__finish_recovery_dry_run = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_management_recovery_device_homescreen__finish_recovery_dry_run, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 188, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_management_recovery_device_homescreen__finish_recovery_dry_run + 6, + .line_info_top = fun_data_apps_management_recovery_device_homescreen__finish_recovery_dry_run + 29, + .opcodes = fun_data_apps_management_recovery_device_homescreen__finish_recovery_dry_run + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_homescreen__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/homescreen.py, scope apps_management_recovery_device_homescreen__finish_recovery +static const byte fun_data_apps_management_recovery_device_homescreen__finish_recovery[151] = { + 0xea,0x40,0x26, // prelude + 0x3c,0x6a,0x6b, // names: _finish_recovery, secret, backup_type + 0x80,0x8c,0x2b,0x4b,0x25,0x43,0x70,0x2c,0x27,0x27,0x4a,0x23,0x28,0x48,0x47,0x2b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3d, // LOAD_CONST_STRING 'BackupType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x19, // IMPORT_NAME 'trezor.enums' + 0x1c,0x3d, // IMPORT_FROM 'BackupType' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3e, // LOAD_CONST_STRING 'show_success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x3f, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x3e, // IMPORT_FROM 'show_success' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x6c, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x12,0x67, // LOAD_GLOBAL 'storage_device' + 0x14,0x40, // LOAD_METHOD 'store_mnemonic_secret' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x10,0x41, // LOAD_CONST_STRING 'needs_backup' + 0x50, // LOAD_CONST_FALSE + 0x10,0x42, // LOAD_CONST_STRING 'no_backup' + 0x50, // LOAD_CONST_FALSE + 0x36,0x84,0x02, // CALL_METHOD 514 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x43, // LOAD_ATTR 'Slip39_Basic' + 0xb2, // LOAD_FAST 2 + 0x13,0x44, // LOAD_ATTR 'Slip39_Advanced' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0x44,0x6b, // POP_JUMP_IF_FALSE 43 + 0x12,0x68, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x37, // LOAD_METHOD 'get_slip39_identifier' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0x12,0x68, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x38, // LOAD_METHOD 'get_slip39_iteration_exponent' + 0x36,0x00, // CALL_METHOD 0 + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb5, // LOAD_FAST 5 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x6c, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x12,0x67, // LOAD_GLOBAL 'storage_device' + 0x14,0x45, // LOAD_METHOD 'set_slip39_identifier' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x67, // LOAD_GLOBAL 'storage_device' + 0x14,0x46, // LOAD_METHOD 'set_slip39_iteration_exponent' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x68, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x1f, // LOAD_METHOD 'end_progress' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'Success' + 0x10,0x3a, // LOAD_CONST_STRING 'message' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_homescreen__finish_recovery = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_management_recovery_device_homescreen__finish_recovery, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 151, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 60, + .line_info = fun_data_apps_management_recovery_device_homescreen__finish_recovery + 6, + .line_info_top = fun_data_apps_management_recovery_device_homescreen__finish_recovery + 22, + .opcodes = fun_data_apps_management_recovery_device_homescreen__finish_recovery + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_homescreen__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/homescreen.py, scope apps_management_recovery_device_homescreen__process_words +static const byte fun_data_apps_management_recovery_device_homescreen__process_words[120] = { + 0xc9,0x40,0x20, // prelude + 0x47,0x6d, // names: _process_words, words + 0x80,0xa5,0x2c,0x48,0x22,0x23,0x4a,0x4b,0x29,0x25,0x20,0x2c,0x30,0x48, // code info + 0x12,0x6e, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x14,0x48, // LOAD_METHOD 'split' + 0x10,0x49, // LOAD_CONST_STRING ' ' + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0x12,0x0c, // LOAD_GLOBAL 'backup_types' + 0x14,0x4a, // LOAD_METHOD 'is_slip39_word_count' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x43,0x4a, // POP_JUMP_IF_TRUE 10 + 0x12,0x0f, // LOAD_GLOBAL 'recover' + 0x14,0x4b, // LOAD_METHOD 'process_bip39' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0x42,0x4b, // JUMP 11 + 0x12,0x0f, // LOAD_GLOBAL 'recover' + 0x14,0x4c, // LOAD_METHOD 'process_slip39' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc4, // STORE_FAST 4 + 0xc3, // STORE_FAST 3 + 0x12,0x0c, // LOAD_GLOBAL 'backup_types' + 0x14,0x4d, // LOAD_METHOD 'infer_backup_type' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x64, // POP_JUMP_IF_FALSE 36 + 0xb3, // LOAD_FAST 3 + 0x13,0x4e, // LOAD_ATTR 'group_count' + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0xb3, // LOAD_FAST 3 + 0x13,0x4e, // LOAD_ATTR 'group_count' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x12,0x0e, // LOAD_GLOBAL 'layout' + 0x14,0x4f, // LOAD_METHOD 'show_group_share_success' + 0xb3, // LOAD_FAST 3 + 0x13,0x50, // LOAD_ATTR 'index' + 0xb3, // LOAD_FAST 3 + 0x13,0x51, // LOAD_ATTR 'group_index' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x57, // LOAD_GLOBAL '_request_share_next_screen' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_homescreen__process_words = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_recovery_device_homescreen__process_words, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 120, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 71, + .line_info = fun_data_apps_management_recovery_device_homescreen__process_words + 5, + .line_info_top = fun_data_apps_management_recovery_device_homescreen__process_words + 19, + .opcodes = fun_data_apps_management_recovery_device_homescreen__process_words + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_homescreen__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/homescreen.py, scope apps_management_recovery_device_homescreen__request_share_first_screen +static const byte fun_data_apps_management_recovery_device_homescreen__request_share_first_screen[101] = { + 0xc1,0x40,0x1e, // prelude + 0x52,0x6f, // names: _request_share_first_screen, word_count + 0x80,0xb9,0x29,0x27,0x23,0x4a,0x24,0x22,0x22,0x73,0x20,0x46,0x22, // code info + 0x12,0x0c, // LOAD_GLOBAL 'backup_types' + 0x14,0x4a, // LOAD_METHOD 'is_slip39_word_count' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x6f, // POP_JUMP_IF_FALSE 47 + 0x12,0x68, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x53, // LOAD_METHOD 'fetch_slip39_remaining_shares' + 0x36,0x00, // CALL_METHOD 0 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x57, // LOAD_GLOBAL '_request_share_next_screen' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x59, // JUMP 25 + 0x12,0x0e, // LOAD_GLOBAL 'layout' + 0x14,0x29, // LOAD_METHOD 'homescreen_dialog' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x10,0x54, // LOAD_CONST_STRING '({} words)' + 0x14,0x55, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x56, // LOAD_CONST_STRING 'show_info' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x03, // CALL_METHOD 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x59, // JUMP 25 + 0x12,0x0e, // LOAD_GLOBAL 'layout' + 0x14,0x29, // LOAD_METHOD 'homescreen_dialog' + 0x10,0x2a, // LOAD_CONST_STRING 'Continue' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x10,0x54, // LOAD_CONST_STRING '({} words)' + 0x14,0x55, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x56, // LOAD_CONST_STRING 'show_info' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x03, // CALL_METHOD 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_homescreen__request_share_first_screen = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_recovery_device_homescreen__request_share_first_screen, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 101, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 82, + .line_info = fun_data_apps_management_recovery_device_homescreen__request_share_first_screen + 5, + .line_info_top = fun_data_apps_management_recovery_device_homescreen__request_share_first_screen + 18, + .opcodes = fun_data_apps_management_recovery_device_homescreen__request_share_first_screen + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_homescreen__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/homescreen.py, scope apps_management_recovery_device_homescreen__request_share_next_screen +static const byte fun_data_apps_management_recovery_device_homescreen__request_share_next_screen[135] = { + 0xe8,0x40,0x26, // prelude + 0x57, // names: _request_share_next_screen + 0x80,0xce,0x4b,0x27,0x27,0x43,0x43,0x25,0x46,0x6f,0x20,0x24,0x2c,0x24,0x20,0x49,0x23,0x48, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x58, // LOAD_CONST_STRING 'strings' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor' + 0x1c,0x58, // IMPORT_FROM 'strings' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0x12,0x68, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x53, // LOAD_METHOD 'fetch_slip39_remaining_shares' + 0x36,0x00, // CALL_METHOD 0 + 0xc1, // STORE_FAST 1 + 0x12,0x68, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x59, // LOAD_METHOD 'get_slip39_group_count' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x12,0x6c, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x12,0x0e, // LOAD_GLOBAL 'layout' + 0x14,0x29, // LOAD_METHOD 'homescreen_dialog' + 0x10,0x5a, // LOAD_CONST_STRING 'Enter' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x10,0x5b, // LOAD_CONST_STRING 'info_func' + 0x12,0x5f, // LOAD_GLOBAL '_show_remaining_groups_and_shares' + 0x36,0x82,0x02, // CALL_METHOD 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x76, // JUMP 54 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xc3, // STORE_FAST 3 + 0x12,0x6e, // LOAD_GLOBAL 'len' + 0x12,0x69, // LOAD_GLOBAL 'storage_recovery_shares' + 0x14,0x5c, // LOAD_METHOD 'fetch_group' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xf2, // BINARY_OP 27 __add__ + 0xc5, // STORE_FAST 5 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x14,0x55, // LOAD_METHOD 'format' + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x14,0x5d, // LOAD_METHOD 'format_plural' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0xb3, // LOAD_FAST 3 + 0x10,0x5e, // LOAD_CONST_STRING 'share' + 0x36,0x03, // CALL_METHOD 3 + 0xc7, // STORE_FAST 7 + 0x12,0x0e, // LOAD_GLOBAL 'layout' + 0x14,0x29, // LOAD_METHOD 'homescreen_dialog' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_homescreen__request_share_next_screen = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_recovery_device_homescreen__request_share_next_screen, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 135, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 87, + .line_info = fun_data_apps_management_recovery_device_homescreen__request_share_next_screen + 4, + .line_info_top = fun_data_apps_management_recovery_device_homescreen__request_share_next_screen + 22, + .opcodes = fun_data_apps_management_recovery_device_homescreen__request_share_next_screen + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_homescreen__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/homescreen.py, scope apps_management_recovery_device_homescreen__show_remaining_groups_and_shares +static const byte fun_data_apps_management_recovery_device_homescreen__show_remaining_groups_and_shares[219] = { + 0x98,0x50,0x34, // prelude + 0x5f, // names: _show_remaining_groups_and_shares + 0x80,0xea,0x60,0x4b,0x47,0x40,0x25,0x22,0x2c,0x27,0x44,0x22,0x2c,0x31,0x2a,0x23,0x27,0x2d,0x30,0x27,0x4f,0x26,0x53,0x20,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x60, // LOAD_CONST_STRING 'slip39' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x61, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x60, // IMPORT_FROM 'slip39' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0x12,0x68, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x53, // LOAD_METHOD 'fetch_slip39_remaining_shares' + 0x36,0x00, // CALL_METHOD 0 + 0xc1, // STORE_FAST 1 + 0x12,0x70, // LOAD_GLOBAL 'set' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc2, // STORE_FAST 2 + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0xc3, // STORE_FAST 3 + 0x12,0x71, // LOAD_GLOBAL 'enumerate' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x0f, // FOR_ITER 15 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x62, // LOAD_ATTR 'MAX_SHARE_COUNT' + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb4, // LOAD_FAST 4 + 0xc3, // STORE_FAST 3 + 0x42,0x2f, // JUMP -17 + 0x51, // LOAD_CONST_NONE + 0xc6, // STORE_FAST 6 + 0x12,0x71, // LOAD_GLOBAL 'enumerate' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x75, // FOR_ITER 117 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc7, // STORE_FAST 7 + 0xc8, // STORE_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb8, // LOAD_FAST 8 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x62, // LOAD_ATTR 'MAX_SHARE_COUNT' + 0xd7, // BINARY_OP 0 __lt__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x44,0x71, // POP_JUMP_IF_FALSE 49 + 0x12,0x69, // LOAD_GLOBAL 'storage_recovery_shares' + 0x14,0x5c, // LOAD_METHOD 'fetch_group' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xc9, // STORE_FAST 9 + 0xb6, // LOAD_FAST 6 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0xb0, // LOAD_FAST 0 + 0x14,0x63, // LOAD_METHOD 'decode_mnemonic' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0xb9, // LOAD_FAST 9 + 0x14,0x48, // LOAD_METHOD 'split' + 0x10,0x49, // LOAD_CONST_STRING ' ' + 0x36,0x01, // CALL_METHOD 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xca, // STORE_FAST 10 + 0xb2, // LOAD_FAST 2 + 0x14,0x64, // LOAD_METHOD 'add' + 0xb8, // LOAD_FAST 8 + 0x12,0x72, // LOAD_GLOBAL 'tuple' + 0xba, // LOAD_FAST 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x6c, // JUMP 44 + 0xb8, // LOAD_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x62, // LOAD_ATTR 'MAX_SHARE_COUNT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x65, // POP_JUMP_IF_FALSE 37 + 0x12,0x69, // LOAD_GLOBAL 'storage_recovery_shares' + 0x14,0x5c, // LOAD_METHOD 'fetch_group' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x14,0x48, // LOAD_METHOD 'split' + 0x10,0x49, // LOAD_CONST_STRING ' ' + 0x36,0x01, // CALL_METHOD 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xca, // STORE_FAST 10 + 0xb2, // LOAD_FAST 2 + 0x14,0x64, // LOAD_METHOD 'add' + 0xb8, // LOAD_FAST 8 + 0x12,0x72, // LOAD_GLOBAL 'tuple' + 0xba, // LOAD_FAST 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x40, // JUMP 0 + 0x42,0x89,0x7f, // JUMP -119 + 0x12,0x0e, // LOAD_GLOBAL 'layout' + 0x14,0x65, // LOAD_METHOD 'show_remaining_shares' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xb6, // LOAD_FAST 6 + 0x13,0x66, // LOAD_ATTR 'group_threshold' + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_homescreen__show_remaining_groups_and_shares = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_recovery_device_homescreen__show_remaining_groups_and_shares, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 219, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 20, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 95, + .line_info = fun_data_apps_management_recovery_device_homescreen__show_remaining_groups_and_shares + 4, + .line_info_top = fun_data_apps_management_recovery_device_homescreen__show_remaining_groups_and_shares + 29, + .opcodes = fun_data_apps_management_recovery_device_homescreen__show_remaining_groups_and_shares + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_recovery_device_homescreen__lt_module_gt_[] = { + &raw_code_apps_management_recovery_device_homescreen_recovery_homescreen, + &raw_code_apps_management_recovery_device_homescreen_recovery_process, + &raw_code_apps_management_recovery_device_homescreen__continue_recovery_process, + &raw_code_apps_management_recovery_device_homescreen__finish_recovery_dry_run, + &raw_code_apps_management_recovery_device_homescreen__finish_recovery, + &raw_code_apps_management_recovery_device_homescreen__process_words, + &raw_code_apps_management_recovery_device_homescreen__request_share_first_screen, + &raw_code_apps_management_recovery_device_homescreen__request_share_next_screen, + &raw_code_apps_management_recovery_device_homescreen__show_remaining_groups_and_shares, +}; + +static const mp_raw_code_t raw_code_apps_management_recovery_device_homescreen__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_recovery_device_homescreen__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 145, + #endif + .children = (void *)&children_apps_management_recovery_device_homescreen__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 9, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_recovery_device_homescreen__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_recovery_device_homescreen__lt_module_gt_ + 29, + .opcodes = fun_data_apps_management_recovery_device_homescreen__lt_module_gt_ + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_recovery_device_homescreen[115] = { + MP_QSTR_apps_slash_management_slash_recovery_device_slash_homescreen_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_storage_dot_device, + MP_QSTR_device, + MP_QSTR_storage_dot_recovery, + MP_QSTR_recovery, + MP_QSTR_storage_dot_recovery_shares, + MP_QSTR_recovery_shares, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_Success, + MP_QSTR_trezor_dot_messages, + MP_QSTR_backup_types, + MP_QSTR_, + MP_QSTR_layout, + MP_QSTR_recover, + MP_QSTR_recovery_homescreen, + MP_QSTR_workflow, + MP_QSTR_homescreen, + MP_QSTR_apps_dot_homescreen, + MP_QSTR_is_in_progress, + MP_QSTR_set_default, + MP_QSTR_recovery_process, + MP_QSTR_storage, + MP_QSTR_MessageType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_Initialize, + MP_QSTR_GetFeatures, + MP_QSTR_AVOID_RESTARTING_FOR, + MP_QSTR_RecoveryAborted, + MP_QSTR_is_dry_run, + MP_QSTR_end_progress, + MP_QSTR_wipe, + MP_QSTR_ActionCancelled, + MP_QSTR__continue_recovery_process, + MP_QSTR_utils, + MP_QSTR_MnemonicError, + MP_QSTR_trezor_dot_errors, + MP_QSTR_load_slip39_state, + MP_QSTR_INTERNAL_MODEL, + MP_QSTR_T2B1, + MP_QSTR_homescreen_dialog, + MP_QSTR_Continue, + MP_QSTR_request_word_count, + MP_QSTR_request_mnemonic, + MP_QSTR_show_invalid_mnemonic, + MP_QSTR__finish_recovery_dry_run, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_mnemonic, + MP_QSTR_apps_dot_common, + MP_QSTR_digest, + MP_QSTR_get_secret, + MP_QSTR_consteq, + MP_QSTR_is_slip39_backup_type, + MP_QSTR_get_slip39_identifier, + MP_QSTR_get_slip39_iteration_exponent, + MP_QSTR_show_dry_run_result, + MP_QSTR_message, + MP_QSTR_ProcessError, + MP_QSTR__finish_recovery, + MP_QSTR_BackupType, + MP_QSTR_show_success, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_store_mnemonic_secret, + MP_QSTR_needs_backup, + MP_QSTR_no_backup, + MP_QSTR_Slip39_Basic, + MP_QSTR_Slip39_Advanced, + MP_QSTR_set_slip39_identifier, + MP_QSTR_set_slip39_iteration_exponent, + MP_QSTR__process_words, + MP_QSTR_split, + MP_QSTR__space_, + MP_QSTR_is_slip39_word_count, + MP_QSTR_process_bip39, + MP_QSTR_process_slip39, + MP_QSTR_infer_backup_type, + MP_QSTR_group_count, + MP_QSTR_show_group_share_success, + MP_QSTR_index, + MP_QSTR_group_index, + MP_QSTR__request_share_first_screen, + MP_QSTR_fetch_slip39_remaining_shares, + MP_QSTR__paren_open__brace_open__brace_close__space_words_paren_close_, + MP_QSTR_format, + MP_QSTR_show_info, + MP_QSTR__request_share_next_screen, + MP_QSTR_strings, + MP_QSTR_get_slip39_group_count, + MP_QSTR_Enter, + MP_QSTR_info_func, + MP_QSTR_fetch_group, + MP_QSTR_format_plural, + MP_QSTR_share, + MP_QSTR__show_remaining_groups_and_shares, + MP_QSTR_slip39, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_MAX_SHARE_COUNT, + MP_QSTR_decode_mnemonic, + MP_QSTR_add, + MP_QSTR_show_remaining_shares, + MP_QSTR_group_threshold, + MP_QSTR_storage_device, + MP_QSTR_storage_recovery, + MP_QSTR_storage_recovery_shares, + MP_QSTR_secret, + MP_QSTR_backup_type, + MP_QSTR_RuntimeError, + MP_QSTR_words, + MP_QSTR_len, + MP_QSTR_word_count, + MP_QSTR_set, + MP_QSTR_enumerate, + MP_QSTR_tuple, +}; + +// constants +static const mp_obj_str_t const_obj_apps_management_recovery_device_homescreen_0 = {{&mp_type_str}, 21, 42, (const byte*)"\x53\x65\x6c\x65\x63\x74\x20\x74\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x77\x6f\x72\x64\x73\x20\x69\x6e\x20\x79\x6f\x75\x72\x20\x62\x61\x63\x6b\x75\x70\x2e"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device_homescreen_1 = {{&mp_type_str}, 4306, 51, (const byte*)"\x54\x68\x65\x20\x73\x65\x65\x64\x20\x69\x73\x20\x76\x61\x6c\x69\x64\x20\x61\x6e\x64\x20\x6d\x61\x74\x63\x68\x65\x73\x20\x74\x68\x65\x20\x6f\x6e\x65\x20\x69\x6e\x20\x74\x68\x65\x20\x64\x65\x76\x69\x63\x65"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device_homescreen_2 = {{&mp_type_str}, 34827, 45, (const byte*)"\x54\x68\x65\x20\x73\x65\x65\x64\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x6d\x61\x74\x63\x68\x20\x74\x68\x65\x20\x6f\x6e\x65\x20\x69\x6e\x20\x74\x68\x65\x20\x64\x65\x76\x69\x63\x65"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device_homescreen_4 = {{&mp_type_str}, 50576, 29, (const byte*)"\x57\x61\x6c\x6c\x65\x74\x20\x72\x65\x63\x6f\x76\x65\x72\x65\x64\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device_homescreen_10 = {{&mp_type_str}, 31644, 37, (const byte*)"\x7b\x7d\x20\x6f\x66\x20\x7b\x7d\x20\x73\x68\x61\x72\x65\x73\x20\x65\x6e\x74\x65\x72\x65\x64\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79\x2e"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device_homescreen_11 = {{&mp_type_str}, 40384, 29, (const byte*)"\x7b\x63\x6f\x75\x6e\x74\x7d\x20\x6d\x6f\x72\x65\x20\x7b\x70\x6c\x75\x72\x61\x6c\x7d\x20\x6e\x65\x65\x64\x65\x64\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_management_recovery_device_homescreen[12] = { + MP_ROM_PTR(&const_obj_apps_management_recovery_device_homescreen_0), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_homescreen_1), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_homescreen_2), + MP_ROM_QSTR(MP_QSTR_success_recovery), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_homescreen_4), + MP_ROM_QSTR(MP_QSTR_Device_space_recovered), + MP_ROM_QSTR(MP_QSTR_Enter_space_share), + MP_ROM_QSTR(MP_QSTR_Enter_space_any_space_share), + MP_ROM_QSTR(MP_QSTR_Enter_space_your_space_backup_dot_), + MP_ROM_QSTR(MP_QSTR_More_space_shares_space_needed), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_homescreen_10), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_homescreen_11), +}; + +static const mp_frozen_module_t frozen_module_apps_management_recovery_device_homescreen = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_recovery_device_homescreen, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_management_recovery_device_homescreen, + }, + .rc = &raw_code_apps_management_recovery_device_homescreen__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_recovery_device_layout +// - original source file: build/firmware/src/apps/management/recovery_device/layout.mpy +// - frozen file name: apps/management/recovery_device/layout.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/recovery_device/layout.py, scope apps_management_recovery_device_layout__lt_module_gt_ +static const byte fun_data_apps_management_recovery_device_layout__lt_module_gt_[118] = { + 0x20,0x24, // prelude + 0x01, // names: + 0x40,0x2c,0x2c,0x7e,0x60,0x20,0x4c,0x60,0x60,0x88,0x15,0x84,0x2e,0x84,0x13,0x84,0x0f, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x02, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x02, // STORE_NAME 'ButtonRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'confirm_action' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x04, // IMPORT_FROM 'confirm_action' + 0x16,0x04, // STORE_NAME 'confirm_action' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'request_word_count' + 0x10,0x07, // LOAD_CONST_STRING 'show_group_share_success' + 0x10,0x08, // LOAD_CONST_STRING 'show_recovery_warning' + 0x10,0x09, // LOAD_CONST_STRING 'show_remaining_shares' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x0a, // IMPORT_NAME 'trezor.ui.layouts.recovery' + 0x1c,0x06, // IMPORT_FROM 'request_word_count' + 0x16,0x06, // STORE_NAME 'request_word_count' + 0x1c,0x07, // IMPORT_FROM 'show_group_share_success' + 0x16,0x07, // STORE_NAME 'show_group_share_success' + 0x1c,0x08, // IMPORT_FROM 'show_recovery_warning' + 0x16,0x08, // STORE_NAME 'show_recovery_warning' + 0x1c,0x09, // IMPORT_FROM 'show_remaining_shares' + 0x16,0x09, // STORE_NAME 'show_remaining_shares' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x0b, // LOAD_CONST_STRING 'backup_types' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME '' + 0x1c,0x0b, // IMPORT_FROM 'backup_types' + 0x16,0x0b, // STORE_NAME 'backup_types' + 0x59, // POP_TOP + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x0d, // STORE_NAME '_confirm_abort' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x14, // STORE_NAME 'request_mnemonic' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x25, // STORE_NAME 'show_dry_run_result' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x29, // STORE_NAME 'show_invalid_mnemonic' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x2a,0x03, // BUILD_TUPLE 3 + 0x53, // LOAD_NULL + 0x33,0x04, // MAKE_FUNCTION_DEFARGS 4 + 0x16,0x2a, // STORE_NAME 'homescreen_dialog' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_recovery_device_layout__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/layout.py, scope apps_management_recovery_device_layout__confirm_abort +static const byte fun_data_apps_management_recovery_device_layout__confirm_abort[82] = { + 0xd9,0x41,0x1e, // prelude + 0x0d,0x33, // names: _confirm_abort, dry_run + 0x80,0x14,0x23,0x22,0x22,0x24,0x48,0x6d,0x22,0x22,0x22,0x22,0x6b, // code info + 0xb0, // LOAD_FAST 0 + 0x44,0x5d, // POP_JUMP_IF_FALSE 29 + 0x12,0x04, // LOAD_GLOBAL 'confirm_action' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x10,0x0e, // LOAD_CONST_STRING 'description' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x10,0x0f, // LOAD_CONST_STRING 'verb' + 0x10,0x10, // LOAD_CONST_STRING 'CANCEL' + 0x10,0x11, // LOAD_CONST_STRING 'br_code' + 0x12,0x02, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x12, // LOAD_ATTR 'ProtectCall' + 0x34,0x86,0x02, // CALL_FUNCTION 770 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x5e, // JUMP 30 + 0x12,0x04, // LOAD_GLOBAL 'confirm_action' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x10,0x0f, // LOAD_CONST_STRING 'verb' + 0x10,0x10, // LOAD_CONST_STRING 'CANCEL' + 0x10,0x13, // LOAD_CONST_STRING 'reverse' + 0x52, // LOAD_CONST_TRUE + 0x10,0x11, // LOAD_CONST_STRING 'br_code' + 0x12,0x02, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x12, // LOAD_ATTR 'ProtectCall' + 0x34,0x86,0x04, // CALL_FUNCTION 772 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_layout__confirm_abort = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_recovery_device_layout__confirm_abort, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 82, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_management_recovery_device_layout__confirm_abort + 5, + .line_info_top = fun_data_apps_management_recovery_device_layout__confirm_abort + 18, + .opcodes = fun_data_apps_management_recovery_device_layout__confirm_abort + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_layout__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/layout.py, scope apps_management_recovery_device_layout_request_mnemonic +static const byte fun_data_apps_management_recovery_device_layout_request_mnemonic[228] = { + 0x86,0x50,0x42, // prelude + 0x14,0x34,0x35, // names: request_mnemonic, word_count, backup_type + 0x80,0x2b,0x2b,0x4b,0x4b,0x50,0x23,0x27,0x25,0x4e,0x47,0x22,0x2b,0x47,0x22,0x22,0x22,0x48,0x25,0x47,0x22,0x22,0x48,0x25,0x47,0x22,0x22,0x22,0x48,0x4f, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x15, // LOAD_CONST_STRING 'button_request' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x16, // IMPORT_NAME 'trezor.ui.layouts.common' + 0x1c,0x15, // IMPORT_FROM 'button_request' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING 'request_word' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.ui.layouts.recovery' + 0x1c,0x17, // IMPORT_FROM 'request_word' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x18, // LOAD_CONST_STRING 'word_validity' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME '' + 0x1c,0x18, // IMPORT_FROM 'word_validity' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x10,0x19, // LOAD_CONST_STRING 'mnemonic' + 0x10,0x1a, // LOAD_CONST_STRING 'code' + 0x12,0x02, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x1b, // LOAD_ATTR 'MnemonicInput' + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x2b,0x00, // BUILD_LIST 0 + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xf7,0x80, // JUMP 119 + 0x57, // DUP_TOP + 0xc6, // STORE_FAST 6 + 0xb3, // LOAD_FAST 3 + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x10,0x1c, // LOAD_CONST_STRING 'is_slip39' + 0x12,0x0b, // LOAD_GLOBAL 'backup_types' + 0x14,0x1d, // LOAD_METHOD 'is_slip39_word_count' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc7, // STORE_FAST 7 + 0xb5, // LOAD_FAST 5 + 0x14,0x1e, // LOAD_METHOD 'append' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x48,0x0a, // SETUP_EXCEPT 10 + 0xb4, // LOAD_FAST 4 + 0x14,0x1f, // LOAD_METHOD 'check' + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x4a,0x4d, // POP_EXCEPT_JUMP 77 + 0x57, // DUP_TOP + 0xb4, // LOAD_FAST 4 + 0x13,0x20, // LOAD_ATTR 'AlreadyAdded' + 0xdf, // BINARY_OP 8 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'show_recovery_warning' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x4a,0x33, // POP_EXCEPT_JUMP 51 + 0x57, // DUP_TOP + 0xb4, // LOAD_FAST 4 + 0x13,0x21, // LOAD_ATTR 'IdentifierMismatch' + 0xdf, // BINARY_OP 8 + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'show_recovery_warning' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x4a,0x1b, // POP_EXCEPT_JUMP 27 + 0x57, // DUP_TOP + 0xb4, // LOAD_FAST 4 + 0x13,0x22, // LOAD_ATTR 'ThresholdReached' + 0xdf, // BINARY_OP 8 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'show_recovery_warning' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x83,0x7f, // POP_JUMP_IF_TRUE -125 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x10,0x23, // LOAD_CONST_STRING ' ' + 0x14,0x24, // LOAD_METHOD 'join' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_layout_request_mnemonic = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_management_recovery_device_layout_request_mnemonic, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 228, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_apps_management_recovery_device_layout_request_mnemonic + 6, + .line_info_top = fun_data_apps_management_recovery_device_layout_request_mnemonic + 36, + .opcodes = fun_data_apps_management_recovery_device_layout_request_mnemonic + 36, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_layout__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/layout.py, scope apps_management_recovery_device_layout_show_dry_run_result +static const byte fun_data_apps_management_recovery_device_layout_show_dry_run_result[91] = { + 0xca,0x40,0x1e, // prelude + 0x25,0x36,0x1c, // names: show_dry_run_result, result, is_slip39 + 0x80,0x57,0x4b,0x23,0x23,0x45,0x20,0x43,0x51,0x23,0x45,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x26, // LOAD_CONST_STRING 'show_success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x26, // IMPORT_FROM 'show_success' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0xb1, // LOAD_FAST 1 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0xc3, // STORE_FAST 3 + 0x42,0x43, // JUMP 3 + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0xb3, // LOAD_FAST 3 + 0x10,0x27, // LOAD_CONST_STRING 'button' + 0x10,0x28, // LOAD_CONST_STRING 'Continue' + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x5d, // JUMP 29 + 0xb1, // LOAD_FAST 1 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0xc3, // STORE_FAST 3 + 0x42,0x43, // JUMP 3 + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0xc3, // STORE_FAST 3 + 0x12,0x08, // LOAD_GLOBAL 'show_recovery_warning' + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x10,0x0c, // LOAD_CONST_STRING '' + 0xb3, // LOAD_FAST 3 + 0x10,0x27, // LOAD_CONST_STRING 'button' + 0x10,0x28, // LOAD_CONST_STRING 'Continue' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_layout_show_dry_run_result = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_management_recovery_device_layout_show_dry_run_result, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 91, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_management_recovery_device_layout_show_dry_run_result + 6, + .line_info_top = fun_data_apps_management_recovery_device_layout_show_dry_run_result + 18, + .opcodes = fun_data_apps_management_recovery_device_layout_show_dry_run_result + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_layout__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/layout.py, scope apps_management_recovery_device_layout_show_invalid_mnemonic +static const byte fun_data_apps_management_recovery_device_layout_show_invalid_mnemonic[56] = { + 0xa1,0x40,0x18, // prelude + 0x29,0x34, // names: show_invalid_mnemonic, word_count + 0x80,0x6a,0x29,0x22,0x22,0x22,0x6a,0x22,0x22,0x22, // code info + 0x12,0x0b, // LOAD_GLOBAL 'backup_types' + 0x14,0x1d, // LOAD_METHOD 'is_slip39_word_count' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x12,0x08, // LOAD_GLOBAL 'show_recovery_warning' + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x4e, // JUMP 14 + 0x12,0x08, // LOAD_GLOBAL 'show_recovery_warning' + 0x23,0x17, // LOAD_CONST_OBJ 23 + 0x23,0x18, // LOAD_CONST_OBJ 24 + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_layout_show_invalid_mnemonic = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_recovery_device_layout_show_invalid_mnemonic, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_management_recovery_device_layout_show_invalid_mnemonic + 5, + .line_info_top = fun_data_apps_management_recovery_device_layout_show_invalid_mnemonic + 15, + .opcodes = fun_data_apps_management_recovery_device_layout_show_invalid_mnemonic + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_layout__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/layout.py, scope apps_management_recovery_device_layout_homescreen_dialog +static const byte fun_data_apps_management_recovery_device_layout_homescreen_dialog[114] = { + 0x85,0xd5,0x01,0x28, // prelude + 0x2a,0x37,0x38,0x39,0x3a,0x3b, // names: homescreen_dialog, button_label, text, subtext, info_func, show_info + 0x80,0x7f,0x27,0x2b,0x4b,0x4b,0x20,0x26,0x6e,0x20,0x42,0x22,0x51,0x43, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x2b, // IMPORT_NAME 'storage.recovery' + 0x13,0x2c, // LOAD_ATTR 'recovery' + 0xc5, // STORE_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2d, // LOAD_CONST_STRING 'continue_recovery' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.ui.layouts.recovery' + 0x1c,0x2d, // IMPORT_FROM 'continue_recovery' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2e, // LOAD_CONST_STRING 'ActionCancelled' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2f, // IMPORT_NAME 'trezor.wire' + 0x1c,0x2e, // IMPORT_FROM 'ActionCancelled' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x30, // LOAD_CONST_STRING 'RecoveryAborted' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x31, // IMPORT_NAME 'recover' + 0x1c,0x30, // IMPORT_FROM 'RecoveryAborted' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x32, // LOAD_METHOD 'is_dry_run' + 0x36,0x00, // CALL_METHOD 0 + 0xc9, // STORE_FAST 9 + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb9, // LOAD_FAST 9 + 0xb4, // LOAD_FAST 4 + 0x34,0x06, // CALL_FUNCTION 6 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x5a, // JUMP 26 + 0x48,0x0b, // SETUP_EXCEPT 11 + 0x12,0x0d, // LOAD_GLOBAL '_confirm_abort' + 0xb9, // LOAD_FAST 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x4a,0x09, // POP_EXCEPT_JUMP 9 + 0x57, // DUP_TOP + 0xb7, // LOAD_FAST 7 + 0xdf, // BINARY_OP 8 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x59, // POP_TOP + 0x4a,0x03, // POP_EXCEPT_JUMP 3 + 0x5d, // END_FINALLY + 0xb8, // LOAD_FAST 8 + 0x65, // RAISE_OBJ + 0x42,0x10, // JUMP -48 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_layout_homescreen_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_apps_management_recovery_device_layout_homescreen_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 114, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 3, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_management_recovery_device_layout_homescreen_dialog + 10, + .line_info_top = fun_data_apps_management_recovery_device_layout_homescreen_dialog + 24, + .opcodes = fun_data_apps_management_recovery_device_layout_homescreen_dialog + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_recovery_device_layout__lt_module_gt_[] = { + &raw_code_apps_management_recovery_device_layout__confirm_abort, + &raw_code_apps_management_recovery_device_layout_request_mnemonic, + &raw_code_apps_management_recovery_device_layout_show_dry_run_result, + &raw_code_apps_management_recovery_device_layout_show_invalid_mnemonic, + &raw_code_apps_management_recovery_device_layout_homescreen_dialog, +}; + +static const mp_raw_code_t raw_code_apps_management_recovery_device_layout__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_recovery_device_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 118, + #endif + .children = (void *)&children_apps_management_recovery_device_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_recovery_device_layout__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_recovery_device_layout__lt_module_gt_ + 20, + .opcodes = fun_data_apps_management_recovery_device_layout__lt_module_gt_ + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_recovery_device_layout[60] = { + MP_QSTR_apps_slash_management_slash_recovery_device_slash_layout_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_confirm_action, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_request_word_count, + MP_QSTR_show_group_share_success, + MP_QSTR_show_recovery_warning, + MP_QSTR_show_remaining_shares, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_recovery, + MP_QSTR_backup_types, + MP_QSTR_, + MP_QSTR__confirm_abort, + MP_QSTR_description, + MP_QSTR_verb, + MP_QSTR_CANCEL, + MP_QSTR_br_code, + MP_QSTR_ProtectCall, + MP_QSTR_reverse, + MP_QSTR_request_mnemonic, + MP_QSTR_button_request, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_common, + MP_QSTR_request_word, + MP_QSTR_word_validity, + MP_QSTR_mnemonic, + MP_QSTR_code, + MP_QSTR_MnemonicInput, + MP_QSTR_is_slip39, + MP_QSTR_is_slip39_word_count, + MP_QSTR_append, + MP_QSTR_check, + MP_QSTR_AlreadyAdded, + MP_QSTR_IdentifierMismatch, + MP_QSTR_ThresholdReached, + MP_QSTR__space_, + MP_QSTR_join, + MP_QSTR_show_dry_run_result, + MP_QSTR_show_success, + MP_QSTR_button, + MP_QSTR_Continue, + MP_QSTR_show_invalid_mnemonic, + MP_QSTR_homescreen_dialog, + MP_QSTR_storage_dot_recovery, + MP_QSTR_recovery, + MP_QSTR_continue_recovery, + MP_QSTR_ActionCancelled, + MP_QSTR_trezor_dot_wire, + MP_QSTR_RecoveryAborted, + MP_QSTR_recover, + MP_QSTR_is_dry_run, + MP_QSTR_dry_run, + MP_QSTR_word_count, + MP_QSTR_backup_type, + MP_QSTR_result, + MP_QSTR_button_label, + MP_QSTR_text, + MP_QSTR_subtext, + MP_QSTR_info_func, + MP_QSTR_show_info, +}; + +// constants +static const mp_obj_str_t const_obj_apps_management_recovery_device_layout_2 = {{&mp_type_str}, 18621, 49, (const byte*)"\x41\x72\x65\x20\x79\x6f\x75\x20\x73\x75\x72\x65\x20\x79\x6f\x75\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x63\x61\x6e\x63\x65\x6c\x20\x74\x68\x65\x20\x62\x61\x63\x6b\x75\x70\x20\x63\x68\x65\x63\x6b\x3f"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device_layout_4 = {{&mp_type_str}, 31690, 26, (const byte*)"\x41\x6c\x6c\x20\x70\x72\x6f\x67\x72\x65\x73\x73\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x6c\x6f\x73\x74\x2e"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device_layout_5 = {{&mp_type_str}, 20989, 53, (const byte*)"\x41\x72\x65\x20\x79\x6f\x75\x20\x73\x75\x72\x65\x20\x79\x6f\x75\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x63\x61\x6e\x63\x65\x6c\x20\x74\x68\x65\x20\x72\x65\x63\x6f\x76\x65\x72\x79\x20\x70\x72\x6f\x63\x65\x73\x73\x3f"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device_layout_8 = {{&mp_type_str}, 46724, 31, (const byte*)"\x50\x6c\x65\x61\x73\x65\x20\x65\x6e\x74\x65\x72\x20\x61\x20\x64\x69\x66\x66\x65\x72\x65\x6e\x74\x20\x73\x68\x61\x72\x65\x2e"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device_layout_10 = {{&mp_type_str}, 25576, 52, (const byte*)"\x59\x6f\x75\x20\x68\x61\x76\x65\x20\x65\x6e\x74\x65\x72\x65\x64\x20\x61\x20\x73\x68\x61\x72\x65\x20\x66\x72\x6f\x6d\x20\x61\x6e\x6f\x74\x68\x65\x72\x20\x53\x68\x61\x6d\x69\x72\x20\x42\x61\x63\x6b\x75\x70\x2e"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device_layout_13 = {{&mp_type_str}, 15939, 35, (const byte*)"\x45\x6e\x74\x65\x72\x20\x73\x68\x61\x72\x65\x20\x66\x72\x6f\x6d\x20\x61\x20\x64\x69\x66\x66\x65\x72\x65\x6e\x74\x20\x67\x72\x6f\x75\x70\x2e"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device_layout_14 = {{&mp_type_str}, 1780, 80, (const byte*)"\x54\x68\x65\x20\x65\x6e\x74\x65\x72\x65\x64\x20\x72\x65\x63\x6f\x76\x65\x72\x79\x20\x73\x68\x61\x72\x65\x73\x20\x61\x72\x65\x20\x76\x61\x6c\x69\x64\x20\x61\x6e\x64\x20\x6d\x61\x74\x63\x68\x20\x77\x68\x61\x74\x20\x69\x73\x20\x63\x75\x72\x72\x65\x6e\x74\x6c\x79\x20\x69\x6e\x20\x74\x68\x65\x20\x64\x65\x76\x69\x63\x65\x2e"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device_layout_15 = {{&mp_type_str}, 16726, 69, (const byte*)"\x54\x68\x65\x20\x65\x6e\x74\x65\x72\x65\x64\x20\x72\x65\x63\x6f\x76\x65\x72\x79\x20\x73\x65\x65\x64\x20\x69\x73\x20\x76\x61\x6c\x69\x64\x20\x61\x6e\x64\x20\x6d\x61\x74\x63\x68\x65\x73\x20\x74\x68\x65\x20\x6f\x6e\x65\x20\x69\x6e\x20\x74\x68\x65\x20\x64\x65\x76\x69\x63\x65\x2e"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device_layout_17 = {{&mp_type_str}, 58530, 87, (const byte*)"\x54\x68\x65\x20\x65\x6e\x74\x65\x72\x65\x64\x20\x72\x65\x63\x6f\x76\x65\x72\x79\x20\x73\x68\x61\x72\x65\x73\x20\x61\x72\x65\x20\x76\x61\x6c\x69\x64\x20\x62\x75\x74\x20\x64\x6f\x20\x6e\x6f\x74\x20\x6d\x61\x74\x63\x68\x20\x77\x68\x61\x74\x20\x69\x73\x20\x63\x75\x72\x72\x65\x6e\x74\x6c\x79\x20\x69\x6e\x20\x74\x68\x65\x20\x64\x65\x76\x69\x63\x65\x2e"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device_layout_18 = {{&mp_type_str}, 57056, 76, (const byte*)"\x54\x68\x65\x20\x65\x6e\x74\x65\x72\x65\x64\x20\x72\x65\x63\x6f\x76\x65\x72\x79\x20\x73\x65\x65\x64\x20\x69\x73\x20\x76\x61\x6c\x69\x64\x20\x62\x75\x74\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x6d\x61\x74\x63\x68\x20\x74\x68\x65\x20\x6f\x6e\x65\x20\x69\x6e\x20\x74\x68\x65\x20\x64\x65\x76\x69\x63\x65\x2e"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device_layout_21 = {{&mp_type_str}, 59709, 31, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x72\x65\x63\x6f\x76\x65\x72\x79\x20\x73\x68\x61\x72\x65\x20\x65\x6e\x74\x65\x72\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device_layout_24 = {{&mp_type_str}, 39655, 30, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x72\x65\x63\x6f\x76\x65\x72\x79\x20\x73\x65\x65\x64\x20\x65\x6e\x74\x65\x72\x65\x64\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_management_recovery_device_layout[25] = { + MP_ROM_QSTR(MP_QSTR_abort_recovery), + MP_ROM_QSTR(MP_QSTR_Cancel_space_backup_space_check), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_layout_2), + MP_ROM_QSTR(MP_QSTR_Cancel_space_recovery), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_layout_4), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_layout_5), + MP_ROM_QSTR(MP_QSTR_warning_known_share), + MP_ROM_QSTR(MP_QSTR_Share_space_already_space_entered), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_layout_8), + MP_ROM_QSTR(MP_QSTR_warning_mismatched_share), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_layout_10), + MP_ROM_QSTR(MP_QSTR_warning_group_threshold), + MP_ROM_QSTR(MP_QSTR_Group_space_threshold_space_reached_dot_), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_layout_13), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_layout_14), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_layout_15), + MP_ROM_QSTR(MP_QSTR_success_dry_recovery), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_layout_17), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_layout_18), + MP_ROM_QSTR(MP_QSTR_warning_dry_recovery), + MP_ROM_QSTR(MP_QSTR_warning_invalid_share), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_layout_21), + MP_ROM_QSTR(MP_QSTR_Please_space_try_space_again), + MP_ROM_QSTR(MP_QSTR_warning_invalid_seed), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_layout_24), +}; + +static const mp_frozen_module_t frozen_module_apps_management_recovery_device_layout = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_recovery_device_layout, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_management_recovery_device_layout, + }, + .rc = &raw_code_apps_management_recovery_device_layout__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_recovery_device_recover +// - original source file: build/firmware/src/apps/management/recovery_device/recover.mpy +// - frozen file name: apps/management/recovery_device/recover.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/recovery_device/recover.py, scope apps_management_recovery_device_recover__lt_module_gt_ +static const byte fun_data_apps_management_recovery_device_recover__lt_module_gt_[76] = { + 0x18,0x22, // prelude + 0x01, // names: + 0x40,0x28,0x28,0x4c,0x60,0x20,0x6b,0x20,0x84,0x0d,0x84,0x40,0x60,0x20,0x84,0x0d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'storage.recovery' + 0x13,0x03, // LOAD_ATTR 'recovery' + 0x16,0x30, // STORE_NAME 'storage_recovery' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x04, // IMPORT_NAME 'storage.recovery_shares' + 0x13,0x05, // LOAD_ATTR 'recovery_shares' + 0x16,0x31, // STORE_NAME 'storage_recovery_shares' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'slip39' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x06, // IMPORT_FROM 'slip39' + 0x16,0x06, // STORE_NAME 'slip39' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x08, // LOAD_CONST_STRING 'RecoveryAborted' + 0x11,0x32, // LOAD_NAME 'Exception' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x08, // STORE_NAME 'RecoveryAborted' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x09, // STORE_NAME 'process_bip39' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0f, // STORE_NAME 'process_slip39' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x27, // STORE_NAME 'load_slip39_state' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x2d, // STORE_NAME 'fetch_previous_mnemonics' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_recovery_device_recover__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/recover.py, scope apps_management_recovery_device_recover_RecoveryAborted +static const byte fun_data_apps_management_recovery_device_recover_RecoveryAborted[15] = { + 0x00,0x06, // prelude + 0x08, // names: RecoveryAborted + 0x88,0x0b, // code info + 0x11,0x33, // LOAD_NAME '__name__' + 0x16,0x34, // STORE_NAME '__module__' + 0x10,0x08, // LOAD_CONST_STRING 'RecoveryAborted' + 0x16,0x35, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_recover_RecoveryAborted = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_recovery_device_recover_RecoveryAborted, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_management_recovery_device_recover_RecoveryAborted + 3, + .line_info_top = fun_data_apps_management_recovery_device_recover_RecoveryAborted + 5, + .opcodes = fun_data_apps_management_recovery_device_recover_RecoveryAborted + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_recover__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/recover.py, scope apps_management_recovery_device_recover_process_bip39 +static const byte fun_data_apps_management_recovery_device_recover_process_bip39[50] = { + 0x29,0x14, // prelude + 0x09,0x36, // names: process_bip39, words + 0x80,0x0f,0x60,0x20,0x2b,0x4b,0x28,0x22, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'bip39' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x0a, // IMPORT_FROM 'bip39' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'MnemonicError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.errors' + 0x1c,0x0b, // IMPORT_FROM 'MnemonicError' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x0d, // LOAD_METHOD 'check' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0xb2, // LOAD_FAST 2 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x14,0x0e, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_recover_process_bip39 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_recovery_device_recover_process_bip39, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_management_recovery_device_recover_process_bip39 + 4, + .line_info_top = fun_data_apps_management_recovery_device_recover_process_bip39 + 12, + .opcodes = fun_data_apps_management_recovery_device_recover_process_bip39 + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_recover__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/recover.py, scope apps_management_recovery_device_recover_process_slip39 +static const byte fun_data_apps_management_recovery_device_recover_process_slip39[368] = { + 0x89,0x10,0x56, // prelude + 0x0f,0x36, // names: process_slip39, words + 0x80,0x1c,0x60,0x20,0x48,0x44,0x67,0x24,0x2a,0x2a,0x2a,0x2d,0x6c,0x20,0x2e,0x2e,0x65,0x65,0x2c,0x27,0x2c,0x27,0x2c,0x27,0x2c,0x47,0x20,0x4d,0x2b,0x26,0x4c,0x4c,0x45,0x27,0x23,0x4c,0x25,0x28,0x6b,0x48,0x2c, // code info + 0x12,0x06, // LOAD_GLOBAL 'slip39' + 0x14,0x10, // LOAD_METHOD 'decode_mnemonic' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x11, // LOAD_ATTR 'group_index' + 0xc2, // STORE_FAST 2 + 0x12,0x30, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x12, // LOAD_METHOD 'fetch_slip39_remaining_shares' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x43,0xdd,0x80, // POP_JUMP_IF_TRUE 93 + 0x12,0x30, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x13, // LOAD_METHOD 'set_slip39_group_count' + 0xb1, // LOAD_FAST 1 + 0x13,0x14, // LOAD_ATTR 'group_count' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x30, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x15, // LOAD_METHOD 'set_slip39_iteration_exponent' + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'iteration_exponent' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x30, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x17, // LOAD_METHOD 'set_slip39_identifier' + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'identifier' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x30, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x19, // LOAD_METHOD 'set_slip39_remaining_shares' + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'threshold' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x31, // LOAD_GLOBAL 'storage_recovery_shares' + 0x14,0x1b, // LOAD_METHOD 'set' + 0xb1, // LOAD_FAST 1 + 0x13,0x1c, // LOAD_ATTR 'index' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'threshold' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0xb1, // LOAD_FAST 1 + 0x13,0x1d, // LOAD_ATTR 'group_threshold' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x06, // LOAD_GLOBAL 'slip39' + 0x14,0x1e, // LOAD_METHOD 'recover_ems' + 0xb0, // LOAD_FAST 0 + 0x2b,0x01, // BUILD_LIST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc4, // STORE_FAST 4 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'identifier' + 0x12,0x30, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x1f, // LOAD_METHOD 'get_slip39_identifier' + 0x36,0x00, // CALL_METHOD 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x37, // LOAD_GLOBAL 'RuntimeError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'iteration_exponent' + 0x12,0x30, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x20, // LOAD_METHOD 'get_slip39_iteration_exponent' + 0x36,0x00, // CALL_METHOD 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x37, // LOAD_GLOBAL 'RuntimeError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x31, // LOAD_GLOBAL 'storage_recovery_shares' + 0x14,0x21, // LOAD_METHOD 'get' + 0xb1, // LOAD_FAST 1 + 0x13,0x1c, // LOAD_ATTR 'index' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x37, // LOAD_GLOBAL 'RuntimeError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x13,0x14, // LOAD_ATTR 'group_count' + 0x12,0x30, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x22, // LOAD_METHOD 'get_slip39_group_count' + 0x36,0x00, // CALL_METHOD 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x37, // LOAD_GLOBAL 'RuntimeError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x30, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x23, // LOAD_METHOD 'get_slip39_remaining_shares' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x45,0x03, // JUMP_IF_TRUE_OR_POP 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'threshold' + 0xc6, // STORE_FAST 6 + 0x12,0x30, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x19, // LOAD_METHOD 'set_slip39_remaining_shares' + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x56, // STORE_SUBSCR + 0x12,0x31, // LOAD_GLOBAL 'storage_recovery_shares' + 0x14,0x1b, // LOAD_METHOD 'set' + 0xb1, // LOAD_FAST 1 + 0x13,0x1c, // LOAD_ATTR 'index' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x24, // LOAD_METHOD 'count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x1d, // LOAD_ATTR 'group_threshold' + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x14, // LOAD_ATTR 'group_count' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x67, // POP_JUMP_IF_FALSE 39 + 0x2b,0x00, // BUILD_LIST 0 + 0xc7, // STORE_FAST 7 + 0x12,0x38, // LOAD_GLOBAL 'enumerate' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x1a, // FOR_ITER 26 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc8, // STORE_FAST 8 + 0xc9, // STORE_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x12,0x31, // LOAD_GLOBAL 'storage_recovery_shares' + 0x14,0x25, // LOAD_METHOD 'fetch_group' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0xca, // STORE_FAST 10 + 0xb7, // LOAD_FAST 7 + 0x14,0x26, // LOAD_METHOD 'extend' + 0xba, // LOAD_FAST 10 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x24, // JUMP -28 + 0x42,0x48, // JUMP 8 + 0x12,0x31, // LOAD_GLOBAL 'storage_recovery_shares' + 0x14,0x25, // LOAD_METHOD 'fetch_group' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc7, // STORE_FAST 7 + 0x12,0x06, // LOAD_GLOBAL 'slip39' + 0x14,0x1e, // LOAD_METHOD 'recover_ems' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc4, // STORE_FAST 4 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_recover_process_slip39 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_recovery_device_recover_process_slip39, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 368, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_management_recovery_device_recover_process_slip39 + 5, + .line_info_top = fun_data_apps_management_recovery_device_recover_process_slip39 + 46, + .opcodes = fun_data_apps_management_recovery_device_recover_process_slip39 + 46, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_recover__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/recover.py, scope apps_management_recovery_device_recover_load_slip39_state +static const byte fun_data_apps_management_recovery_device_recover_load_slip39_state[76] = { + 0x48,0x14, // prelude + 0x27, // names: load_slip39_state + 0x80,0x60,0x4b,0x25,0x23,0x43,0x2b,0x28,0x2c, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x28, // LOAD_CONST_STRING 'backup_types' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x29, // IMPORT_NAME '' + 0x1c,0x28, // IMPORT_FROM 'backup_types' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0x12,0x2d, // LOAD_GLOBAL 'fetch_previous_mnemonics' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x63, // RETURN_VALUE + 0x12,0x39, // LOAD_GLOBAL 'next' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x12,0x06, // LOAD_GLOBAL 'slip39' + 0x14,0x10, // LOAD_METHOD 'decode_mnemonic' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x12,0x3a, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x14,0x2a, // LOAD_METHOD 'split' + 0x10,0x2b, // LOAD_CONST_STRING ' ' + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x2c, // LOAD_METHOD 'infer_backup_type' + 0x52, // LOAD_CONST_TRUE + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +// child of apps_management_recovery_device_recover_load_slip39_state +// frozen bytecode for file apps/management/recovery_device/recover.py, scope apps_management_recovery_device_recover_load_slip39_state__lt_genexpr_gt_ +static const byte fun_data_apps_management_recovery_device_recover_load_slip39_state__lt_genexpr_gt_[26] = { + 0xb9,0x40,0x08, // prelude + 0x2f,0x3c, // names: , * + 0x80,0x66, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0b, // FOR_ITER 11 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x44,0x3a, // POP_JUMP_IF_FALSE -6 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x33, // JUMP -13 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_recover_load_slip39_state__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_recovery_device_recover_load_slip39_state__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_apps_management_recovery_device_recover_load_slip39_state__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_apps_management_recovery_device_recover_load_slip39_state__lt_genexpr_gt_ + 7, + .opcodes = fun_data_apps_management_recovery_device_recover_load_slip39_state__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_recovery_device_recover_load_slip39_state[] = { + &raw_code_apps_management_recovery_device_recover_load_slip39_state__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_management_recovery_device_recover_load_slip39_state = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_recovery_device_recover_load_slip39_state, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 76, + #endif + .children = (void *)&children_apps_management_recovery_device_recover_load_slip39_state, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_management_recovery_device_recover_load_slip39_state + 3, + .line_info_top = fun_data_apps_management_recovery_device_recover_load_slip39_state + 12, + .opcodes = fun_data_apps_management_recovery_device_recover_load_slip39_state + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_recover__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/recover.py, scope apps_management_recovery_device_recover_fetch_previous_mnemonics +static const byte fun_data_apps_management_recovery_device_recover_fetch_previous_mnemonics[74] = { + 0x40,0x14, // prelude + 0x2d, // names: fetch_previous_mnemonics + 0x80,0x6d,0x23,0x28,0x22,0x2b,0x36,0x2c,0x22, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xc0, // STORE_FAST 0 + 0x12,0x30, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x22, // LOAD_METHOD 'get_slip39_group_count' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x30, // LOAD_GLOBAL 'storage_recovery' + 0x14,0x22, // LOAD_METHOD 'get_slip39_group_count' + 0x36,0x00, // CALL_METHOD 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x51, // JUMP 17 + 0x57, // DUP_TOP + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x14,0x2e, // LOAD_METHOD 'append' + 0x12,0x31, // LOAD_GLOBAL 'storage_recovery_shares' + 0x14,0x25, // LOAD_METHOD 'fetch_group' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2a, // POP_JUMP_IF_TRUE -22 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x3b, // LOAD_GLOBAL 'any' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_management_recovery_device_recover_fetch_previous_mnemonics +// frozen bytecode for file apps/management/recovery_device/recover.py, scope apps_management_recovery_device_recover_fetch_previous_mnemonics__lt_genexpr_gt_ +static const byte fun_data_apps_management_recovery_device_recover_fetch_previous_mnemonics__lt_genexpr_gt_[21] = { + 0xb1,0x40,0x08, // prelude + 0x2f,0x3c, // names: , * + 0x80,0x72, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x06, // FOR_ITER 6 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x38, // JUMP -8 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_recover_fetch_previous_mnemonics__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_recovery_device_recover_fetch_previous_mnemonics__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_apps_management_recovery_device_recover_fetch_previous_mnemonics__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_apps_management_recovery_device_recover_fetch_previous_mnemonics__lt_genexpr_gt_ + 7, + .opcodes = fun_data_apps_management_recovery_device_recover_fetch_previous_mnemonics__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_recovery_device_recover_fetch_previous_mnemonics[] = { + &raw_code_apps_management_recovery_device_recover_fetch_previous_mnemonics__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_management_recovery_device_recover_fetch_previous_mnemonics = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_recovery_device_recover_fetch_previous_mnemonics, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 74, + #endif + .children = (void *)&children_apps_management_recovery_device_recover_fetch_previous_mnemonics, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_management_recovery_device_recover_fetch_previous_mnemonics + 3, + .line_info_top = fun_data_apps_management_recovery_device_recover_fetch_previous_mnemonics + 12, + .opcodes = fun_data_apps_management_recovery_device_recover_fetch_previous_mnemonics + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_recovery_device_recover__lt_module_gt_[] = { + &raw_code_apps_management_recovery_device_recover_RecoveryAborted, + &raw_code_apps_management_recovery_device_recover_process_bip39, + &raw_code_apps_management_recovery_device_recover_process_slip39, + &raw_code_apps_management_recovery_device_recover_load_slip39_state, + &raw_code_apps_management_recovery_device_recover_fetch_previous_mnemonics, +}; + +static const mp_raw_code_t raw_code_apps_management_recovery_device_recover__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_recovery_device_recover__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 76, + #endif + .children = (void *)&children_apps_management_recovery_device_recover__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_recovery_device_recover__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_recovery_device_recover__lt_module_gt_ + 19, + .opcodes = fun_data_apps_management_recovery_device_recover__lt_module_gt_ + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_recovery_device_recover[61] = { + MP_QSTR_apps_slash_management_slash_recovery_device_slash_recover_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_storage_dot_recovery, + MP_QSTR_recovery, + MP_QSTR_storage_dot_recovery_shares, + MP_QSTR_recovery_shares, + MP_QSTR_slip39, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_RecoveryAborted, + MP_QSTR_process_bip39, + MP_QSTR_bip39, + MP_QSTR_MnemonicError, + MP_QSTR_trezor_dot_errors, + MP_QSTR_check, + MP_QSTR_encode, + MP_QSTR_process_slip39, + MP_QSTR_decode_mnemonic, + MP_QSTR_group_index, + MP_QSTR_fetch_slip39_remaining_shares, + MP_QSTR_set_slip39_group_count, + MP_QSTR_group_count, + MP_QSTR_set_slip39_iteration_exponent, + MP_QSTR_iteration_exponent, + MP_QSTR_set_slip39_identifier, + MP_QSTR_identifier, + MP_QSTR_set_slip39_remaining_shares, + MP_QSTR_threshold, + MP_QSTR_set, + MP_QSTR_index, + MP_QSTR_group_threshold, + MP_QSTR_recover_ems, + MP_QSTR_get_slip39_identifier, + MP_QSTR_get_slip39_iteration_exponent, + MP_QSTR_get, + MP_QSTR_get_slip39_group_count, + MP_QSTR_get_slip39_remaining_shares, + MP_QSTR_count, + MP_QSTR_fetch_group, + MP_QSTR_extend, + MP_QSTR_load_slip39_state, + MP_QSTR_backup_types, + MP_QSTR_, + MP_QSTR_split, + MP_QSTR__space_, + MP_QSTR_infer_backup_type, + MP_QSTR_fetch_previous_mnemonics, + MP_QSTR_append, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_storage_recovery, + MP_QSTR_storage_recovery_shares, + MP_QSTR_Exception, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_words, + MP_QSTR_RuntimeError, + MP_QSTR_enumerate, + MP_QSTR_next, + MP_QSTR_len, + MP_QSTR_any, + MP_QSTR__star_, +}; + +// constants +static const mp_obj_str_t const_obj_apps_management_recovery_device_recover_0 = {{&mp_type_str}, 1571, 38, (const byte*)"\x53\x6c\x69\x70\x33\x39\x3a\x20\x53\x68\x61\x72\x65\x20\x69\x64\x65\x6e\x74\x69\x66\x69\x65\x72\x73\x20\x64\x6f\x20\x6e\x6f\x74\x20\x6d\x61\x74\x63\x68"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device_recover_1 = {{&mp_type_str}, 4979, 36, (const byte*)"\x53\x6c\x69\x70\x33\x39\x3a\x20\x53\x68\x61\x72\x65\x20\x65\x78\x70\x6f\x6e\x65\x6e\x74\x73\x20\x64\x6f\x20\x6e\x6f\x74\x20\x6d\x61\x74\x63\x68"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device_recover_2 = {{&mp_type_str}, 52127, 41, (const byte*)"\x53\x6c\x69\x70\x33\x39\x3a\x20\x54\x68\x69\x73\x20\x6d\x6e\x65\x6d\x6f\x6e\x69\x63\x20\x77\x61\x73\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x65\x6e\x74\x65\x72\x65\x64"}; +static const mp_obj_str_t const_obj_apps_management_recovery_device_recover_3 = {{&mp_type_str}, 35060, 34, (const byte*)"\x53\x6c\x69\x70\x33\x39\x3a\x20\x47\x72\x6f\x75\x70\x20\x63\x6f\x75\x6e\x74\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x6d\x61\x74\x63\x68"}; +static const mp_rom_obj_tuple_t const_obj_apps_management_recovery_device_recover_4 = {{&mp_type_tuple}, 2, { + MP_ROM_NONE, + MP_ROM_NONE, +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_management_recovery_device_recover[5] = { + MP_ROM_PTR(&const_obj_apps_management_recovery_device_recover_0), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_recover_1), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_recover_2), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_recover_3), + MP_ROM_PTR(&const_obj_apps_management_recovery_device_recover_4), +}; + +static const mp_frozen_module_t frozen_module_apps_management_recovery_device_recover = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_recovery_device_recover, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_management_recovery_device_recover, + }, + .rc = &raw_code_apps_management_recovery_device_recover__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_recovery_device_word_validity +// - original source file: build/firmware/src/apps/management/recovery_device/word_validity.mpy +// - frozen file name: apps/management/recovery_device/word_validity.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/recovery_device/word_validity.py, scope apps_management_recovery_device_word_validity__lt_module_gt_ +static const byte fun_data_apps_management_recovery_device_word_validity__lt_module_gt_[76] = { + 0x18,0x20, // prelude + 0x01, // names: + 0x40,0x60,0x20,0x6b,0x20,0x6b,0x20,0x6b,0x20,0x6b,0x20,0x84,0x1a,0x84,0x13, // code info + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x02, // LOAD_CONST_STRING 'WordValidityResult' + 0x11,0x17, // LOAD_NAME 'Exception' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x02, // STORE_NAME 'WordValidityResult' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x03, // LOAD_CONST_STRING 'IdentifierMismatch' + 0x11,0x02, // LOAD_NAME 'WordValidityResult' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x03, // STORE_NAME 'IdentifierMismatch' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x02, // MAKE_FUNCTION 2 + 0x10,0x04, // LOAD_CONST_STRING 'AlreadyAdded' + 0x11,0x02, // LOAD_NAME 'WordValidityResult' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x04, // STORE_NAME 'AlreadyAdded' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x03, // MAKE_FUNCTION 3 + 0x10,0x05, // LOAD_CONST_STRING 'ThresholdReached' + 0x11,0x02, // LOAD_NAME 'WordValidityResult' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x05, // STORE_NAME 'ThresholdReached' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x06, // STORE_NAME 'check' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x0f, // STORE_NAME '_check_slip39_basic' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x12, // STORE_NAME '_check_slip39_advanced' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_recovery_device_word_validity__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/word_validity.py, scope apps_management_recovery_device_word_validity_WordValidityResult +static const byte fun_data_apps_management_recovery_device_word_validity_WordValidityResult[15] = { + 0x00,0x06, // prelude + 0x02, // names: WordValidityResult + 0x88,0x07, // code info + 0x11,0x18, // LOAD_NAME '__name__' + 0x16,0x19, // STORE_NAME '__module__' + 0x10,0x02, // LOAD_CONST_STRING 'WordValidityResult' + 0x16,0x1a, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_word_validity_WordValidityResult = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_recovery_device_word_validity_WordValidityResult, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_management_recovery_device_word_validity_WordValidityResult + 3, + .line_info_top = fun_data_apps_management_recovery_device_word_validity_WordValidityResult + 5, + .opcodes = fun_data_apps_management_recovery_device_word_validity_WordValidityResult + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_word_validity__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/word_validity.py, scope apps_management_recovery_device_word_validity_IdentifierMismatch +static const byte fun_data_apps_management_recovery_device_word_validity_IdentifierMismatch[15] = { + 0x00,0x06, // prelude + 0x03, // names: IdentifierMismatch + 0x88,0x0b, // code info + 0x11,0x18, // LOAD_NAME '__name__' + 0x16,0x19, // STORE_NAME '__module__' + 0x10,0x03, // LOAD_CONST_STRING 'IdentifierMismatch' + 0x16,0x1a, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_word_validity_IdentifierMismatch = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_recovery_device_word_validity_IdentifierMismatch, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 3, + .line_info = fun_data_apps_management_recovery_device_word_validity_IdentifierMismatch + 3, + .line_info_top = fun_data_apps_management_recovery_device_word_validity_IdentifierMismatch + 5, + .opcodes = fun_data_apps_management_recovery_device_word_validity_IdentifierMismatch + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_word_validity__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/word_validity.py, scope apps_management_recovery_device_word_validity_AlreadyAdded +static const byte fun_data_apps_management_recovery_device_word_validity_AlreadyAdded[15] = { + 0x00,0x06, // prelude + 0x04, // names: AlreadyAdded + 0x88,0x0f, // code info + 0x11,0x18, // LOAD_NAME '__name__' + 0x16,0x19, // STORE_NAME '__module__' + 0x10,0x04, // LOAD_CONST_STRING 'AlreadyAdded' + 0x16,0x1a, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_word_validity_AlreadyAdded = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_recovery_device_word_validity_AlreadyAdded, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_management_recovery_device_word_validity_AlreadyAdded + 3, + .line_info_top = fun_data_apps_management_recovery_device_word_validity_AlreadyAdded + 5, + .opcodes = fun_data_apps_management_recovery_device_word_validity_AlreadyAdded + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_word_validity__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/word_validity.py, scope apps_management_recovery_device_word_validity_ThresholdReached +static const byte fun_data_apps_management_recovery_device_word_validity_ThresholdReached[15] = { + 0x00,0x06, // prelude + 0x05, // names: ThresholdReached + 0x88,0x13, // code info + 0x11,0x18, // LOAD_NAME '__name__' + 0x16,0x19, // STORE_NAME '__module__' + 0x10,0x05, // LOAD_CONST_STRING 'ThresholdReached' + 0x16,0x1a, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_word_validity_ThresholdReached = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_recovery_device_word_validity_ThresholdReached, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_management_recovery_device_word_validity_ThresholdReached + 3, + .line_info_top = fun_data_apps_management_recovery_device_word_validity_ThresholdReached + 5, + .opcodes = fun_data_apps_management_recovery_device_word_validity_ThresholdReached + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_word_validity__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/word_validity.py, scope apps_management_recovery_device_word_validity_check +static const byte fun_data_apps_management_recovery_device_word_validity_check[109] = { + 0x3a,0x24, // prelude + 0x06,0x1b,0x1c, // names: check, backup_type, partial_mnemonic + 0x80,0x17,0x4b,0x6b,0x25,0x42,0x27,0x42,0x26,0x45,0x43,0x27,0x29,0x27,0x69, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'BackupType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.enums' + 0x1c,0x07, // IMPORT_FROM 'BackupType' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x09, // LOAD_CONST_STRING 'recover' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME '' + 0x1c,0x09, // IMPORT_FROM 'recover' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x0b, // LOAD_ATTR 'Bip39' + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb3, // LOAD_FAST 3 + 0x14,0x0c, // LOAD_METHOD 'fetch_previous_mnemonics' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x1d, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x0d, // LOAD_ATTR 'Slip39_Basic' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x0f, // LOAD_GLOBAL '_check_slip39_basic' + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x53, // JUMP 19 + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x0e, // LOAD_ATTR 'Slip39_Advanced' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x12, // LOAD_GLOBAL '_check_slip39_advanced' + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x43, // JUMP 3 + 0x12,0x1d, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_word_validity_check = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_management_recovery_device_word_validity_check, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 109, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_management_recovery_device_word_validity_check + 5, + .line_info_top = fun_data_apps_management_recovery_device_word_validity_check + 20, + .opcodes = fun_data_apps_management_recovery_device_word_validity_check + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_word_validity__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/word_validity.py, scope apps_management_recovery_device_word_validity__check_slip39_basic +static const byte fun_data_apps_management_recovery_device_word_validity__check_slip39_basic[94] = { + 0x62,0x1e, // prelude + 0x0f,0x1c,0x1e, // names: _check_slip39_basic, partial_mnemonic, previous_mnemonics + 0x80,0x35,0x28,0x24,0x25,0x2c,0x27,0x25,0x25,0x27,0x48,0x27, // code info + 0x12,0x1f, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x55, // LOAD_SUBSCR + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x14,0x10, // LOAD_METHOD 'split' + 0x10,0x11, // LOAD_CONST_STRING ' ' + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0xb3, // LOAD_FAST 3 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x03, // LOAD_GLOBAL 'IdentifierMismatch' + 0x65, // RAISE_OBJ + 0x42,0x62, // JUMP 34 + 0xb2, // LOAD_FAST 2 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5d, // POP_JUMP_IF_FALSE 29 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x5f, // GET_ITER_STACK + 0x4b,0x15, // FOR_ITER 21 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x14,0x10, // LOAD_METHOD 'split' + 0x10,0x11, // LOAD_CONST_STRING ' ' + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0xb3, // LOAD_FAST 3 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x04, // LOAD_GLOBAL 'AlreadyAdded' + 0x65, // RAISE_OBJ + 0x42,0x29, // JUMP -23 + 0x42,0x40, // JUMP 0 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_word_validity__check_slip39_basic = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_management_recovery_device_word_validity__check_slip39_basic, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 94, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_management_recovery_device_word_validity__check_slip39_basic + 5, + .line_info_top = fun_data_apps_management_recovery_device_word_validity__check_slip39_basic + 17, + .opcodes = fun_data_apps_management_recovery_device_word_validity__check_slip39_basic + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_recovery_device_word_validity__lt_module_gt_ +// frozen bytecode for file apps/management/recovery_device/word_validity.py, scope apps_management_recovery_device_word_validity__check_slip39_advanced +static const byte fun_data_apps_management_recovery_device_word_validity__check_slip39_advanced[241] = { + 0x9a,0x10,0x3e, // prelude + 0x12,0x1c,0x1e, // names: _check_slip39_advanced, partial_mnemonic, previous_mnemonics + 0x80,0x46,0x45,0x28,0x44,0x25,0x33,0x27,0x46,0x25,0x2c,0x29,0x2f,0x48,0x20,0x27,0x68,0x46,0x24,0x22,0x2c,0x29,0x2f,0x44,0x26,0x24,0x25,0x2d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x13, // IMPORT_NAME 'storage.recovery' + 0xc2, // STORE_FAST 2 + 0x12,0x1f, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x55, // LOAD_SUBSCR + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0x12,0x20, // LOAD_GLOBAL 'next' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x14,0x10, // LOAD_METHOD 'split' + 0x10,0x11, // LOAD_CONST_STRING ' ' + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x55, // LOAD_SUBSCR + 0xb4, // LOAD_FAST 4 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x03, // LOAD_GLOBAL 'IdentifierMismatch' + 0x65, // RAISE_OBJ + 0x42,0x97,0x81, // JUMP 151 + 0xb3, // LOAD_FAST 3 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7b, // POP_JUMP_IF_FALSE 59 + 0x12,0x21, // LOAD_GLOBAL 'enumerate' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x30, // FOR_ITER 48 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc6, // STORE_FAST 6 + 0xc7, // STORE_FAST 7 + 0x12,0x1f, // LOAD_GLOBAL 'len' + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x61, // POP_JUMP_IF_FALSE 33 + 0xb4, // LOAD_FAST 4 + 0xb7, // LOAD_FAST 7 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x14,0x10, // LOAD_METHOD 'split' + 0x10,0x11, // LOAD_CONST_STRING ' ' + 0x36,0x01, // CALL_METHOD 1 + 0xb3, // LOAD_FAST 3 + 0x55, // LOAD_SUBSCR + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb2, // LOAD_FAST 2 + 0x13,0x14, // LOAD_ATTR 'recovery' + 0x14,0x15, // LOAD_METHOD 'fetch_slip39_remaining_shares' + 0x36,0x00, // CALL_METHOD 0 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0xb6, // LOAD_FAST 6 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x05, // LOAD_GLOBAL 'ThresholdReached' + 0x65, // RAISE_OBJ + 0x42,0x0e, // JUMP -50 + 0x42,0xd7,0x80, // JUMP 87 + 0xb3, // LOAD_FAST 3 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xd1,0x80, // POP_JUMP_IF_FALSE 81 + 0xb0, // LOAD_FAST 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x55, // LOAD_SUBSCR + 0xc9, // STORE_FAST 9 + 0x51, // LOAD_CONST_NONE + 0xca, // STORE_FAST 10 + 0x12,0x21, // LOAD_GLOBAL 'enumerate' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x20, // FOR_ITER 32 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc6, // STORE_FAST 6 + 0xc7, // STORE_FAST 7 + 0x12,0x1f, // LOAD_GLOBAL 'len' + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb9, // LOAD_FAST 9 + 0xb7, // LOAD_FAST 7 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x14,0x10, // LOAD_METHOD 'split' + 0x10,0x11, // LOAD_CONST_STRING ' ' + 0x36,0x01, // CALL_METHOD 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x55, // LOAD_SUBSCR + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb6, // LOAD_FAST 6 + 0xca, // STORE_FAST 10 + 0x42,0x1e, // JUMP -34 + 0xba, // LOAD_FAST 10 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x5b, // POP_JUMP_IF_FALSE 27 + 0xb1, // LOAD_FAST 1 + 0xba, // LOAD_FAST 10 + 0x55, // LOAD_SUBSCR + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x5f, // GET_ITER_STACK + 0x4b,0x13, // FOR_ITER 19 + 0xcb, // STORE_FAST 11 + 0xb4, // LOAD_FAST 4 + 0xbb, // LOAD_FAST 11 + 0x14,0x10, // LOAD_METHOD 'split' + 0x10,0x11, // LOAD_CONST_STRING ' ' + 0x36,0x01, // CALL_METHOD 1 + 0xb3, // LOAD_FAST 3 + 0x55, // LOAD_SUBSCR + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x04, // LOAD_GLOBAL 'AlreadyAdded' + 0x65, // RAISE_OBJ + 0x42,0x2b, // JUMP -21 + 0x42,0x40, // JUMP 0 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_recovery_device_word_validity__check_slip39_advanced +// frozen bytecode for file apps/management/recovery_device/word_validity.py, scope apps_management_recovery_device_word_validity__check_slip39_advanced__lt_genexpr_gt_ +static const byte fun_data_apps_management_recovery_device_word_validity__check_slip39_advanced__lt_genexpr_gt_[24] = { + 0xb1,0x40,0x08, // prelude + 0x16,0x22, // names: , * + 0x80,0x4c, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x09, // FOR_ITER 9 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x44,0x3a, // POP_JUMP_IF_FALSE -6 + 0xb1, // LOAD_FAST 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x35, // JUMP -11 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_recovery_device_word_validity__check_slip39_advanced__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_recovery_device_word_validity__check_slip39_advanced__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_apps_management_recovery_device_word_validity__check_slip39_advanced__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_apps_management_recovery_device_word_validity__check_slip39_advanced__lt_genexpr_gt_ + 7, + .opcodes = fun_data_apps_management_recovery_device_word_validity__check_slip39_advanced__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_recovery_device_word_validity__check_slip39_advanced[] = { + &raw_code_apps_management_recovery_device_word_validity__check_slip39_advanced__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_management_recovery_device_word_validity__check_slip39_advanced = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_management_recovery_device_word_validity__check_slip39_advanced, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 241, + #endif + .children = (void *)&children_apps_management_recovery_device_word_validity__check_slip39_advanced, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 20, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_management_recovery_device_word_validity__check_slip39_advanced + 6, + .line_info_top = fun_data_apps_management_recovery_device_word_validity__check_slip39_advanced + 34, + .opcodes = fun_data_apps_management_recovery_device_word_validity__check_slip39_advanced + 34, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_recovery_device_word_validity__lt_module_gt_[] = { + &raw_code_apps_management_recovery_device_word_validity_WordValidityResult, + &raw_code_apps_management_recovery_device_word_validity_IdentifierMismatch, + &raw_code_apps_management_recovery_device_word_validity_AlreadyAdded, + &raw_code_apps_management_recovery_device_word_validity_ThresholdReached, + &raw_code_apps_management_recovery_device_word_validity_check, + &raw_code_apps_management_recovery_device_word_validity__check_slip39_basic, + &raw_code_apps_management_recovery_device_word_validity__check_slip39_advanced, +}; + +static const mp_raw_code_t raw_code_apps_management_recovery_device_word_validity__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_recovery_device_word_validity__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 76, + #endif + .children = (void *)&children_apps_management_recovery_device_word_validity__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 7, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_recovery_device_word_validity__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_recovery_device_word_validity__lt_module_gt_ + 18, + .opcodes = fun_data_apps_management_recovery_device_word_validity__lt_module_gt_ + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_recovery_device_word_validity[35] = { + MP_QSTR_apps_slash_management_slash_recovery_device_slash_word_validity_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_WordValidityResult, + MP_QSTR_IdentifierMismatch, + MP_QSTR_AlreadyAdded, + MP_QSTR_ThresholdReached, + MP_QSTR_check, + MP_QSTR_BackupType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_recover, + MP_QSTR_, + MP_QSTR_Bip39, + MP_QSTR_fetch_previous_mnemonics, + MP_QSTR_Slip39_Basic, + MP_QSTR_Slip39_Advanced, + MP_QSTR__check_slip39_basic, + MP_QSTR_split, + MP_QSTR__space_, + MP_QSTR__check_slip39_advanced, + MP_QSTR_storage_dot_recovery, + MP_QSTR_recovery, + MP_QSTR_fetch_slip39_remaining_shares, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_Exception, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_backup_type, + MP_QSTR_partial_mnemonic, + MP_QSTR_RuntimeError, + MP_QSTR_previous_mnemonics, + MP_QSTR_len, + MP_QSTR_next, + MP_QSTR_enumerate, + MP_QSTR__star_, +}; + +static const mp_frozen_module_t frozen_module_apps_management_recovery_device_word_validity = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_recovery_device_word_validity, + .obj_table = NULL, + }, + .rc = &raw_code_apps_management_recovery_device_word_validity__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_reset_device___init__ +// - original source file: build/firmware/src/apps/management/reset_device/__init__.mpy +// - frozen file name: apps/management/reset_device/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/reset_device/__init__.py, scope apps_management_reset_device___init____lt_module_gt_ +static const byte fun_data_apps_management_reset_device___init____lt_module_gt_[137] = { + 0x08,0x32, // prelude + 0x01, // names: + 0x40,0x26,0x28,0x2c,0x2c,0x4c,0x4c,0x60,0x60,0x20,0x26,0x26,0x26,0x64,0x84,0x59,0x84,0x1c,0x84,0x23,0x84,0x18,0x84,0x10, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'storage' + 0x16,0x02, // STORE_NAME 'storage' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'storage.device' + 0x13,0x04, // LOAD_ATTR 'device' + 0x16,0x56, // STORE_NAME 'storage_device' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'slip39' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x05, // IMPORT_FROM 'slip39' + 0x16,0x05, // STORE_NAME 'slip39' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'BackupType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.enums' + 0x1c,0x07, // IMPORT_FROM 'BackupType' + 0x16,0x07, // STORE_NAME 'BackupType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.wire' + 0x1c,0x09, // IMPORT_FROM 'ProcessError' + 0x16,0x09, // STORE_NAME 'ProcessError' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0b, // LOAD_CONST_STRING 'layout' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME '' + 0x1c,0x0b, // IMPORT_FROM 'layout' + 0x16,0x0b, // STORE_NAME 'layout' + 0x59, // POP_TOP + 0x11,0x07, // LOAD_NAME 'BackupType' + 0x13,0x0d, // LOAD_ATTR 'Bip39' + 0x16,0x57, // STORE_NAME 'BAK_T_BIP39' + 0x11,0x07, // LOAD_NAME 'BackupType' + 0x13,0x0e, // LOAD_ATTR 'Slip39_Basic' + 0x16,0x58, // STORE_NAME 'BAK_T_SLIP39_BASIC' + 0x11,0x07, // LOAD_NAME 'BackupType' + 0x13,0x0f, // LOAD_ATTR 'Slip39_Advanced' + 0x16,0x59, // STORE_NAME 'BAK_T_SLIP39_ADVANCED' + 0x11,0x57, // LOAD_NAME 'BAK_T_BIP39' + 0x16,0x5a, // STORE_NAME '_DEFAULT_BACKUP_TYPE' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x10, // STORE_NAME 'reset_device' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x3c, // STORE_NAME '_backup_slip39_basic' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x44, // STORE_NAME '_backup_slip39_advanced' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x49, // STORE_NAME '_validate_reset_device' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x4e, // STORE_NAME '_compute_secret_from_entropy' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x53, // STORE_NAME 'backup_seed' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_reset_device___init____lt_module_gt_ +// frozen bytecode for file apps/management/reset_device/__init__.py, scope apps_management_reset_device___init___reset_device +static const byte fun_data_apps_management_reset_device___init___reset_device[466] = { + 0xe1,0x50,0x66, // prelude + 0x10,0x5b, // names: reset_device, msg + 0x80,0x18,0x2b,0x30,0x35,0x2b,0x30,0x4b,0x4b,0x64,0x66,0x2a,0x45,0x23,0x68,0x68,0x67,0x25,0x27,0x2c,0x67,0x28,0x40,0x25,0x6b,0x2c,0x46,0x6c,0x46,0x2f,0x4a,0x2d,0x6d,0x63,0x20,0x6c,0x24,0x68,0x24,0x6b,0x28,0x2a,0x2e,0x69,0x25,0x6b,0x20,0x24,0x4a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'config' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x12, // IMPORT_NAME 'trezor' + 0x1c,0x11, // IMPORT_FROM 'config' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'bip39' + 0x10,0x14, // LOAD_CONST_STRING 'random' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x06, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x13, // IMPORT_FROM 'bip39' + 0xc2, // STORE_FAST 2 + 0x1c,0x14, // IMPORT_FROM 'random' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x15, // LOAD_CONST_STRING 'EntropyAck' + 0x10,0x16, // LOAD_CONST_STRING 'EntropyRequest' + 0x10,0x17, // LOAD_CONST_STRING 'Success' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x18, // IMPORT_NAME 'trezor.messages' + 0x1c,0x15, // IMPORT_FROM 'EntropyAck' + 0xc4, // STORE_FAST 4 + 0x1c,0x16, // IMPORT_FROM 'EntropyRequest' + 0xc5, // STORE_FAST 5 + 0x1c,0x17, // IMPORT_FROM 'Success' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x19, // LOAD_CONST_STRING 'render_empty_loader' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1a, // IMPORT_NAME 'trezor.pin' + 0x1c,0x19, // IMPORT_FROM 'render_empty_loader' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1b, // LOAD_CONST_STRING 'confirm_reset_device' + 0x10,0x1c, // LOAD_CONST_STRING 'prompt_backup' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x1d, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x1b, // IMPORT_FROM 'confirm_reset_device' + 0xc8, // STORE_FAST 8 + 0x1c,0x1c, // IMPORT_FROM 'prompt_backup' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1e, // LOAD_CONST_STRING 'call' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1f, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x1e, // IMPORT_FROM 'call' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x20, // LOAD_CONST_STRING 'request_pin_confirm' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x21, // IMPORT_NAME 'apps.common.request_pin' + 0x1c,0x20, // IMPORT_FROM 'request_pin_confirm' + 0xcb, // STORE_FAST 11 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'backup_type' + 0xcc, // STORE_FAST 12 + 0x12,0x49, // LOAD_GLOBAL '_validate_reset_device' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xbc, // LOAD_FAST 12 + 0x12,0x58, // LOAD_GLOBAL 'BAK_T_SLIP39_BASIC' + 0x12,0x59, // LOAD_GLOBAL 'BAK_T_SLIP39_ADVANCED' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xcd, // STORE_FAST 13 + 0x42,0x43, // JUMP 3 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xcd, // STORE_FAST 13 + 0xb8, // LOAD_FAST 8 + 0xbd, // LOAD_FAST 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x10,0x23, // LOAD_CONST_STRING 'PROCESSING' + 0x10,0x0c, // LOAD_CONST_STRING '' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'storage' + 0x14,0x24, // LOAD_METHOD 'reset' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'pin_protection' + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0xbb, // LOAD_FAST 11 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xce, // STORE_FAST 14 + 0xb1, // LOAD_FAST 1 + 0x14,0x26, // LOAD_METHOD 'change_pin' + 0x10,0x0c, // LOAD_CONST_STRING '' + 0xbe, // LOAD_FAST 14 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x36,0x04, // CALL_METHOD 4 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x09, // LOAD_GLOBAL 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x14,0x27, // LOAD_METHOD 'bytes' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x52, // LOAD_CONST_TRUE + 0x36,0x02, // CALL_METHOD 2 + 0xcf, // STORE_FAST 15 + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'display_random' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x0b, // LOAD_GLOBAL 'layout' + 0x14,0x29, // LOAD_METHOD 'show_internal_entropy' + 0xbf, // LOAD_FAST 15 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xba, // LOAD_FAST 10 + 0xb5, // LOAD_FAST 5 + 0x34,0x00, // CALL_FUNCTION 0 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x10, // STORE_FAST_N 16 + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x2a, // LOAD_ATTR 'entropy' + 0x26,0x11, // STORE_FAST_N 17 + 0x12,0x4e, // LOAD_GLOBAL '_compute_secret_from_entropy' + 0xbf, // LOAD_FAST 15 + 0x24,0x11, // LOAD_FAST_N 17 + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'strength' + 0x34,0x03, // CALL_FUNCTION 3 + 0x26,0x12, // STORE_FAST_N 18 + 0xbc, // LOAD_FAST 12 + 0x12,0x57, // LOAD_GLOBAL 'BAK_T_BIP39' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb2, // LOAD_FAST 2 + 0x14,0x2c, // LOAD_METHOD 'from_data' + 0x24,0x12, // LOAD_FAST_N 18 + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x2d, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x12, // STORE_FAST_N 18 + 0x42,0x67, // JUMP 39 + 0xbc, // LOAD_FAST 12 + 0x12,0x58, // LOAD_GLOBAL 'BAK_T_SLIP39_BASIC' + 0x12,0x59, // LOAD_GLOBAL 'BAK_T_SLIP39_ADVANCED' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0x12,0x56, // LOAD_GLOBAL 'storage_device' + 0x14,0x2e, // LOAD_METHOD 'set_slip39_identifier' + 0x12,0x05, // LOAD_GLOBAL 'slip39' + 0x14,0x2f, // LOAD_METHOD 'generate_random_identifier' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x56, // LOAD_GLOBAL 'storage_device' + 0x14,0x30, // LOAD_METHOD 'set_slip39_iteration_exponent' + 0x12,0x05, // LOAD_GLOBAL 'slip39' + 0x13,0x31, // LOAD_ATTR 'DEFAULT_ITERATION_EXPONENT' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x43, // JUMP 3 + 0x12,0x5c, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x32, // LOAD_ATTR 'no_backup' + 0xd3, // UNARY_OP 3 + 0x46,0x04, // JUMP_IF_FALSE_OR_POP 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x33, // LOAD_ATTR 'skip_backup' + 0xd3, // UNARY_OP 3 + 0x26,0x13, // STORE_FAST_N 19 + 0x24,0x13, // LOAD_FAST_N 19 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb9, // LOAD_FAST 9 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x13, // STORE_FAST_N 19 + 0x24,0x13, // LOAD_FAST_N 19 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x53, // LOAD_GLOBAL 'backup_seed' + 0xbc, // LOAD_FAST 12 + 0x24,0x12, // LOAD_FAST_N 18 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'label' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x56, // LOAD_GLOBAL 'storage_device' + 0x14,0x35, // LOAD_METHOD 'set_label' + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'label' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x56, // LOAD_GLOBAL 'storage_device' + 0x14,0x36, // LOAD_METHOD 'set_passphrase_enabled' + 0x12,0x5d, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'passphrase_protection' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x56, // LOAD_GLOBAL 'storage_device' + 0x14,0x38, // LOAD_METHOD 'store_mnemonic_secret' + 0x24,0x12, // LOAD_FAST_N 18 + 0xbc, // LOAD_FAST 12 + 0x10,0x39, // LOAD_CONST_STRING 'needs_backup' + 0x24,0x13, // LOAD_FAST_N 19 + 0xd3, // UNARY_OP 3 + 0x10,0x32, // LOAD_CONST_STRING 'no_backup' + 0x12,0x5d, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x32, // LOAD_ATTR 'no_backup' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x84,0x02, // CALL_METHOD 514 + 0x59, // POP_TOP + 0x24,0x13, // LOAD_FAST_N 19 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x0b, // LOAD_GLOBAL 'layout' + 0x14,0x3a, // LOAD_METHOD 'show_backup_success' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x10,0x3b, // LOAD_CONST_STRING 'message' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_reset_device___init___reset_device = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_reset_device___init___reset_device, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 466, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 29, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_management_reset_device___init___reset_device + 5, + .line_info_top = fun_data_apps_management_reset_device___init___reset_device + 54, + .opcodes = fun_data_apps_management_reset_device___init___reset_device + 54, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_reset_device___init____lt_module_gt_ +// frozen bytecode for file apps/management/reset_device/__init__.py, scope apps_management_reset_device___init____backup_slip39_basic +static const byte fun_data_apps_management_reset_device___init____backup_slip39_basic[139] = { + 0xe1,0x40,0x22, // prelude + 0x3c,0x5e, // names: _backup_slip39_basic, encrypted_master_secret + 0x80,0x72,0x2d,0x6a,0x2d,0x4b,0x27,0x27,0x2a,0x63,0x45,0x6b,0x20,0x63,0x2d, // code info + 0x12,0x0b, // LOAD_GLOBAL 'layout' + 0x14,0x3d, // LOAD_METHOD 'slip39_show_checklist' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x58, // LOAD_GLOBAL 'BAK_T_SLIP39_BASIC' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'layout' + 0x14,0x3e, // LOAD_METHOD 'slip39_prompt_number_of_shares' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc1, // STORE_FAST 1 + 0x12,0x0b, // LOAD_GLOBAL 'layout' + 0x14,0x3d, // LOAD_METHOD 'slip39_show_checklist' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x12,0x58, // LOAD_GLOBAL 'BAK_T_SLIP39_BASIC' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'layout' + 0x14,0x3f, // LOAD_METHOD 'slip39_prompt_threshold' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0x12,0x56, // LOAD_GLOBAL 'storage_device' + 0x14,0x40, // LOAD_METHOD 'get_slip39_identifier' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0x12,0x56, // LOAD_GLOBAL 'storage_device' + 0x14,0x41, // LOAD_METHOD 'get_slip39_iteration_exponent' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x5f, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x05, // LOAD_GLOBAL 'slip39' + 0x14,0x42, // LOAD_METHOD 'split_ems' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x01, // BUILD_LIST 1 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x36,0x05, // CALL_METHOD 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0x12,0x0b, // LOAD_GLOBAL 'layout' + 0x14,0x3d, // LOAD_METHOD 'slip39_show_checklist' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x12,0x58, // LOAD_GLOBAL 'BAK_T_SLIP39_BASIC' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'layout' + 0x14,0x43, // LOAD_METHOD 'slip39_basic_show_and_confirm_shares' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_reset_device___init____backup_slip39_basic = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_reset_device___init____backup_slip39_basic, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 139, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 60, + .line_info = fun_data_apps_management_reset_device___init____backup_slip39_basic + 5, + .line_info_top = fun_data_apps_management_reset_device___init____backup_slip39_basic + 20, + .opcodes = fun_data_apps_management_reset_device___init____backup_slip39_basic + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_reset_device___init____lt_module_gt_ +// frozen bytecode for file apps/management/reset_device/__init__.py, scope apps_management_reset_device___init____backup_slip39_advanced +static const byte fun_data_apps_management_reset_device___init____backup_slip39_advanced[186] = { + 0x81,0x50,0x28, // prelude + 0x44,0x5e, // names: _backup_slip39_advanced, encrypted_master_secret + 0x80,0x8e,0x2d,0x6a,0x2d,0x6b,0x2d,0x23,0x26,0x2b,0x2c,0x53,0x27,0x27,0x2a,0x63,0x8c,0x09, // code info + 0x12,0x0b, // LOAD_GLOBAL 'layout' + 0x14,0x3d, // LOAD_METHOD 'slip39_show_checklist' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x59, // LOAD_GLOBAL 'BAK_T_SLIP39_ADVANCED' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'layout' + 0x14,0x45, // LOAD_METHOD 'slip39_advanced_prompt_number_of_groups' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc1, // STORE_FAST 1 + 0x12,0x0b, // LOAD_GLOBAL 'layout' + 0x14,0x3d, // LOAD_METHOD 'slip39_show_checklist' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x12,0x59, // LOAD_GLOBAL 'BAK_T_SLIP39_ADVANCED' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'layout' + 0x14,0x46, // LOAD_METHOD 'slip39_advanced_prompt_group_threshold' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0x12,0x0b, // LOAD_GLOBAL 'layout' + 0x14,0x3d, // LOAD_METHOD 'slip39_show_checklist' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x12,0x59, // LOAD_GLOBAL 'BAK_T_SLIP39_ADVANCED' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x2b,0x00, // BUILD_LIST 0 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x65, // JUMP 37 + 0x57, // DUP_TOP + 0xc4, // STORE_FAST 4 + 0x12,0x0b, // LOAD_GLOBAL 'layout' + 0x14,0x3e, // LOAD_METHOD 'slip39_prompt_number_of_shares' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0x12,0x0b, // LOAD_GLOBAL 'layout' + 0x14,0x3f, // LOAD_METHOD 'slip39_prompt_threshold' + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc6, // STORE_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x14,0x47, // LOAD_METHOD 'append' + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x16, // POP_JUMP_IF_TRUE -42 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x56, // LOAD_GLOBAL 'storage_device' + 0x14,0x40, // LOAD_METHOD 'get_slip39_identifier' + 0x36,0x00, // CALL_METHOD 0 + 0xc7, // STORE_FAST 7 + 0x12,0x56, // LOAD_GLOBAL 'storage_device' + 0x14,0x41, // LOAD_METHOD 'get_slip39_iteration_exponent' + 0x36,0x00, // CALL_METHOD 0 + 0xc8, // STORE_FAST 8 + 0xb7, // LOAD_FAST 7 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb8, // LOAD_FAST 8 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x5f, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x05, // LOAD_GLOBAL 'slip39' + 0x14,0x42, // LOAD_METHOD 'split_ems' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x36,0x05, // CALL_METHOD 5 + 0xc9, // STORE_FAST 9 + 0x12,0x0b, // LOAD_GLOBAL 'layout' + 0x14,0x48, // LOAD_METHOD 'slip39_advanced_show_and_confirm_shares' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_reset_device___init____backup_slip39_advanced = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_reset_device___init____backup_slip39_advanced, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 186, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 68, + .line_info = fun_data_apps_management_reset_device___init____backup_slip39_advanced + 5, + .line_info_top = fun_data_apps_management_reset_device___init____backup_slip39_advanced + 23, + .opcodes = fun_data_apps_management_reset_device___init____backup_slip39_advanced + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_reset_device___init____lt_module_gt_ +// frozen bytecode for file apps/management/reset_device/__init__.py, scope apps_management_reset_device___init____validate_reset_device +static const byte fun_data_apps_management_reset_device___init____validate_reset_device[150] = { + 0x39,0x24, // prelude + 0x49,0x5b, // names: _validate_reset_device, msg + 0x80,0xb0,0x4b,0x4b,0x28,0x6d,0x40,0x27,0x28,0x29,0x49,0x29,0x27,0x2f,0x27,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x4a, // LOAD_CONST_STRING 'UnexpectedMessage' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.wire' + 0x1c,0x4a, // IMPORT_FROM 'UnexpectedMessage' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x4b, // LOAD_CONST_STRING 'backup_types' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME '' + 0x1c,0x4b, // IMPORT_FROM 'backup_types' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'backup_type' + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x12,0x5a, // LOAD_GLOBAL '_DEFAULT_BACKUP_TYPE' + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x12,0x57, // LOAD_GLOBAL 'BAK_T_BIP39' + 0x12,0x58, // LOAD_GLOBAL 'BAK_T_SLIP39_BASIC' + 0x12,0x59, // LOAD_GLOBAL 'BAK_T_SLIP39_ADVANCED' + 0x2a,0x03, // BUILD_TUPLE 3 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'ProcessError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x14,0x4c, // LOAD_METHOD 'is_slip39_backup_type' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'strength' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'ProcessError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x50, // JUMP 16 + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'strength' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'ProcessError' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'display_random' + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb0, // LOAD_FAST 0 + 0x13,0x33, // LOAD_ATTR 'skip_backup' + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x32, // LOAD_ATTR 'no_backup' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'ProcessError' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x56, // LOAD_GLOBAL 'storage_device' + 0x14,0x4d, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb1, // LOAD_FAST 1 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_reset_device___init____validate_reset_device = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_reset_device___init____validate_reset_device, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 150, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 73, + .line_info = fun_data_apps_management_reset_device___init____validate_reset_device + 4, + .line_info_top = fun_data_apps_management_reset_device___init____validate_reset_device + 20, + .opcodes = fun_data_apps_management_reset_device___init____validate_reset_device + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_reset_device___init____lt_module_gt_ +// frozen bytecode for file apps/management/reset_device/__init__.py, scope apps_management_reset_device___init____compute_secret_from_entropy +static const byte fun_data_apps_management_reset_device___init____compute_secret_from_entropy[65] = { + 0x53,0x1a, // prelude + 0x4e,0x60,0x61,0x62, // names: _compute_secret_from_entropy, int_entropy, ext_entropy, strength_in_bytes + 0x80,0xca,0x6b,0x26,0x27,0x27,0x46,0x24,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x4f, // LOAD_CONST_STRING 'hashlib' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x4f, // IMPORT_FROM 'hashlib' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x50, // LOAD_METHOD 'sha256' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x14,0x51, // LOAD_METHOD 'update' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x51, // LOAD_METHOD 'update' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x52, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf6, // BINARY_OP 31 __floordiv__ + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x51, // LOAD_CONST_NONE + 0xb6, // LOAD_FAST 6 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_reset_device___init____compute_secret_from_entropy = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_management_reset_device___init____compute_secret_from_entropy, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 65, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 78, + .line_info = fun_data_apps_management_reset_device___init____compute_secret_from_entropy + 6, + .line_info_top = fun_data_apps_management_reset_device___init____compute_secret_from_entropy + 15, + .opcodes = fun_data_apps_management_reset_device___init____compute_secret_from_entropy + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_reset_device___init____lt_module_gt_ +// frozen bytecode for file apps/management/reset_device/__init__.py, scope apps_management_reset_device___init___backup_seed +static const byte fun_data_apps_management_reset_device___init___backup_seed[63] = { + 0xaa,0x40,0x12, // prelude + 0x53,0x22,0x63, // names: backup_seed, backup_type, mnemonic_secret + 0x80,0xd8,0x26,0x2b,0x26,0x4b, // code info + 0xb0, // LOAD_FAST 0 + 0x12,0x58, // LOAD_GLOBAL 'BAK_T_SLIP39_BASIC' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x3c, // LOAD_GLOBAL '_backup_slip39_basic' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x60, // JUMP 32 + 0xb0, // LOAD_FAST 0 + 0x12,0x59, // LOAD_GLOBAL 'BAK_T_SLIP39_ADVANCED' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x44, // LOAD_GLOBAL '_backup_slip39_advanced' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x4f, // JUMP 15 + 0x12,0x0b, // LOAD_GLOBAL 'layout' + 0x14,0x54, // LOAD_METHOD 'bip39_show_and_confirm_mnemonic' + 0xb1, // LOAD_FAST 1 + 0x14,0x55, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_reset_device___init___backup_seed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_management_reset_device___init___backup_seed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 63, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 83, + .line_info = fun_data_apps_management_reset_device___init___backup_seed + 6, + .line_info_top = fun_data_apps_management_reset_device___init___backup_seed + 12, + .opcodes = fun_data_apps_management_reset_device___init___backup_seed + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_reset_device___init____lt_module_gt_[] = { + &raw_code_apps_management_reset_device___init___reset_device, + &raw_code_apps_management_reset_device___init____backup_slip39_basic, + &raw_code_apps_management_reset_device___init____backup_slip39_advanced, + &raw_code_apps_management_reset_device___init____validate_reset_device, + &raw_code_apps_management_reset_device___init____compute_secret_from_entropy, + &raw_code_apps_management_reset_device___init___backup_seed, +}; + +static const mp_raw_code_t raw_code_apps_management_reset_device___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_reset_device___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 137, + #endif + .children = (void *)&children_apps_management_reset_device___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_reset_device___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_reset_device___init____lt_module_gt_ + 27, + .opcodes = fun_data_apps_management_reset_device___init____lt_module_gt_ + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_reset_device___init__[100] = { + MP_QSTR_apps_slash_management_slash_reset_device_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_storage, + MP_QSTR_storage_dot_device, + MP_QSTR_device, + MP_QSTR_slip39, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_BackupType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_layout, + MP_QSTR_, + MP_QSTR_Bip39, + MP_QSTR_Slip39_Basic, + MP_QSTR_Slip39_Advanced, + MP_QSTR_reset_device, + MP_QSTR_config, + MP_QSTR_trezor, + MP_QSTR_bip39, + MP_QSTR_random, + MP_QSTR_EntropyAck, + MP_QSTR_EntropyRequest, + MP_QSTR_Success, + MP_QSTR_trezor_dot_messages, + MP_QSTR_render_empty_loader, + MP_QSTR_trezor_dot_pin, + MP_QSTR_confirm_reset_device, + MP_QSTR_prompt_backup, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_call, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_request_pin_confirm, + MP_QSTR_apps_dot_common_dot_request_pin, + MP_QSTR_backup_type, + MP_QSTR_PROCESSING, + MP_QSTR_reset, + MP_QSTR_pin_protection, + MP_QSTR_change_pin, + MP_QSTR_bytes, + MP_QSTR_display_random, + MP_QSTR_show_internal_entropy, + MP_QSTR_entropy, + MP_QSTR_strength, + MP_QSTR_from_data, + MP_QSTR_encode, + MP_QSTR_set_slip39_identifier, + MP_QSTR_generate_random_identifier, + MP_QSTR_set_slip39_iteration_exponent, + MP_QSTR_DEFAULT_ITERATION_EXPONENT, + MP_QSTR_no_backup, + MP_QSTR_skip_backup, + MP_QSTR_label, + MP_QSTR_set_label, + MP_QSTR_set_passphrase_enabled, + MP_QSTR_passphrase_protection, + MP_QSTR_store_mnemonic_secret, + MP_QSTR_needs_backup, + MP_QSTR_show_backup_success, + MP_QSTR_message, + MP_QSTR__backup_slip39_basic, + MP_QSTR_slip39_show_checklist, + MP_QSTR_slip39_prompt_number_of_shares, + MP_QSTR_slip39_prompt_threshold, + MP_QSTR_get_slip39_identifier, + MP_QSTR_get_slip39_iteration_exponent, + MP_QSTR_split_ems, + MP_QSTR_slip39_basic_show_and_confirm_shares, + MP_QSTR__backup_slip39_advanced, + MP_QSTR_slip39_advanced_prompt_number_of_groups, + MP_QSTR_slip39_advanced_prompt_group_threshold, + MP_QSTR_append, + MP_QSTR_slip39_advanced_show_and_confirm_shares, + MP_QSTR__validate_reset_device, + MP_QSTR_UnexpectedMessage, + MP_QSTR_backup_types, + MP_QSTR_is_slip39_backup_type, + MP_QSTR_is_initialized, + MP_QSTR__compute_secret_from_entropy, + MP_QSTR_hashlib, + MP_QSTR_sha256, + MP_QSTR_update, + MP_QSTR_digest, + MP_QSTR_backup_seed, + MP_QSTR_bip39_show_and_confirm_mnemonic, + MP_QSTR_decode, + MP_QSTR_storage_device, + MP_QSTR_BAK_T_BIP39, + MP_QSTR_BAK_T_SLIP39_BASIC, + MP_QSTR_BAK_T_SLIP39_ADVANCED, + MP_QSTR__DEFAULT_BACKUP_TYPE, + MP_QSTR_msg, + MP_QSTR_RuntimeError, + MP_QSTR_bool, + MP_QSTR_encrypted_master_secret, + MP_QSTR_ValueError, + MP_QSTR_int_entropy, + MP_QSTR_ext_entropy, + MP_QSTR_strength_in_bytes, + MP_QSTR_mnemonic_secret, +}; + +// constants +static const mp_obj_str_t const_obj_apps_management_reset_device___init___4 = {{&mp_type_str}, 17158, 28, (const byte*)"\x42\x61\x63\x6b\x75\x70\x20\x74\x79\x70\x65\x20\x6e\x6f\x74\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x2e"}; +static const mp_rom_obj_tuple_t const_obj_apps_management_reset_device___init___5 = {{&mp_type_tuple}, 2, { + MP_ROM_INT(128), + MP_ROM_INT(256), +}}; +static const mp_obj_str_t const_obj_apps_management_reset_device___init___6 = {{&mp_type_str}, 49805, 44, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x73\x74\x72\x65\x6e\x67\x74\x68\x20\x28\x68\x61\x73\x20\x74\x6f\x20\x62\x65\x20\x31\x32\x38\x20\x6f\x72\x20\x32\x35\x36\x20\x62\x69\x74\x73\x29"}; +static const mp_rom_obj_tuple_t const_obj_apps_management_reset_device___init___7 = {{&mp_type_tuple}, 3, { + MP_ROM_INT(128), + MP_ROM_INT(192), + MP_ROM_INT(256), +}}; +static const mp_obj_str_t const_obj_apps_management_reset_device___init___8 = {{&mp_type_str}, 31835, 49, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x73\x74\x72\x65\x6e\x67\x74\x68\x20\x28\x68\x61\x73\x20\x74\x6f\x20\x62\x65\x20\x31\x32\x38\x2c\x20\x31\x39\x32\x20\x6f\x72\x20\x32\x35\x36\x20\x62\x69\x74\x73\x29"}; +static const mp_obj_str_t const_obj_apps_management_reset_device___init___9 = {{&mp_type_str}, 15973, 50, (const byte*)"\x43\x61\x6e\x27\x74\x20\x73\x68\x6f\x77\x20\x69\x6e\x74\x65\x72\x6e\x61\x6c\x20\x65\x6e\x74\x72\x6f\x70\x79\x20\x77\x68\x65\x6e\x20\x62\x61\x63\x6b\x75\x70\x20\x69\x73\x20\x73\x6b\x69\x70\x70\x65\x64"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_management_reset_device___init__[11] = { + MP_ROM_QSTR(MP_QSTR_Create_space_wallet_space__paren_open_Shamir_paren_close_), + MP_ROM_QSTR(MP_QSTR_Create_space_wallet), + MP_ROM_QSTR(MP_QSTR_Failed_space_to_space_set_space_PIN), + MP_ROM_QSTR(MP_QSTR_Initialized), + MP_ROM_PTR(&const_obj_apps_management_reset_device___init___4), + MP_ROM_PTR(&const_obj_apps_management_reset_device___init___5), + MP_ROM_PTR(&const_obj_apps_management_reset_device___init___6), + MP_ROM_PTR(&const_obj_apps_management_reset_device___init___7), + MP_ROM_PTR(&const_obj_apps_management_reset_device___init___8), + MP_ROM_PTR(&const_obj_apps_management_reset_device___init___9), + MP_ROM_QSTR(MP_QSTR_Already_space_initialized), +}; + +static const mp_frozen_module_t frozen_module_apps_management_reset_device___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_reset_device___init__, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_management_reset_device___init__, + }, + .rc = &raw_code_apps_management_reset_device___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_management_reset_device_layout +// - original source file: build/firmware/src/apps/management/reset_device/layout.mpy +// - frozen file name: apps/management/reset_device/layout.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/management/reset_device/layout.py, scope apps_management_reset_device_layout__lt_module_gt_ +static const byte fun_data_apps_management_reset_device_layout__lt_module_gt_[176] = { + 0x30,0x36, // prelude + 0x01, // names: + 0x6c,0x2c,0x2c,0x1f,0x8b,0x0c,0x84,0x0b,0x88,0x1e,0x89,0x1b,0x88,0x15,0x8a,0x1b,0x84,0x0c,0x68,0x60,0x84,0x0a,0x84,0x13,0x84,0x0f, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.enums' + 0x1c,0x04, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x04, // STORE_NAME 'ButtonRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'show_success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x06, // IMPORT_FROM 'show_success' + 0x16,0x06, // STORE_NAME 'show_success' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'show_share_words' + 0x10,0x09, // LOAD_CONST_STRING 'slip39_advanced_prompt_group_threshold' + 0x10,0x0a, // LOAD_CONST_STRING 'slip39_advanced_prompt_number_of_groups' + 0x10,0x0b, // LOAD_CONST_STRING 'slip39_prompt_number_of_shares' + 0x10,0x0c, // LOAD_CONST_STRING 'slip39_prompt_threshold' + 0x10,0x0d, // LOAD_CONST_STRING 'slip39_show_checklist' + 0x2a,0x06, // BUILD_TUPLE 6 + 0x1b,0x0e, // IMPORT_NAME 'trezor.ui.layouts.reset' + 0x1c,0x08, // IMPORT_FROM 'show_share_words' + 0x16,0x08, // STORE_NAME 'show_share_words' + 0x1c,0x09, // IMPORT_FROM 'slip39_advanced_prompt_group_threshold' + 0x16,0x09, // STORE_NAME 'slip39_advanced_prompt_group_threshold' + 0x1c,0x0a, // IMPORT_FROM 'slip39_advanced_prompt_number_of_groups' + 0x16,0x0a, // STORE_NAME 'slip39_advanced_prompt_number_of_groups' + 0x1c,0x0b, // IMPORT_FROM 'slip39_prompt_number_of_shares' + 0x16,0x0b, // STORE_NAME 'slip39_prompt_number_of_shares' + 0x1c,0x0c, // IMPORT_FROM 'slip39_prompt_threshold' + 0x16,0x0c, // STORE_NAME 'slip39_prompt_threshold' + 0x1c,0x0d, // IMPORT_FROM 'slip39_show_checklist' + 0x16,0x0d, // STORE_NAME 'slip39_show_checklist' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0f, // STORE_NAME 'show_internal_entropy' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x14, // STORE_NAME '_confirm_word' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x1a, // STORE_NAME '_share_words_confirmed' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x03, // MAKE_FUNCTION_DEFARGS 3 + 0x16,0x1b, // STORE_NAME '_do_confirm_share_words' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2a,0x03, // BUILD_TUPLE 3 + 0x53, // LOAD_NULL + 0x33,0x04, // MAKE_FUNCTION_DEFARGS 4 + 0x16,0x1f, // STORE_NAME '_show_confirmation_success' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x22, // STORE_NAME '_show_confirmation_failure' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x06, // MAKE_FUNCTION_DEFARGS 6 + 0x16,0x24, // STORE_NAME 'show_backup_warning' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x26, // STORE_NAME 'show_backup_success' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x28, // STORE_NAME 'bip39_show_and_confirm_mnemonic' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x2a, // STORE_NAME 'slip39_basic_show_and_confirm_shares' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x2c, // STORE_NAME 'slip39_advanced_show_and_confirm_shares' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_management_reset_device_layout__lt_module_gt_ +// frozen bytecode for file apps/management/reset_device/layout.py, scope apps_management_reset_device_layout_show_internal_entropy +static const byte fun_data_apps_management_reset_device_layout_show_internal_entropy[42] = { + 0xb9,0x40,0x0e, // prelude + 0x0f,0x11, // names: show_internal_entropy, entropy + 0x80,0x12,0x4b,0x43,0x45, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'confirm_blob' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x10, // IMPORT_FROM 'confirm_blob' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x10,0x11, // LOAD_CONST_STRING 'entropy' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xb0, // LOAD_FAST 0 + 0x10,0x12, // LOAD_CONST_STRING 'br_code' + 0x12,0x04, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x13, // LOAD_ATTR 'ResetDevice' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_reset_device_layout_show_internal_entropy = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_reset_device_layout_show_internal_entropy, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_management_reset_device_layout_show_internal_entropy + 5, + .line_info_top = fun_data_apps_management_reset_device_layout_show_internal_entropy + 10, + .opcodes = fun_data_apps_management_reset_device_layout_show_internal_entropy + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_reset_device_layout__lt_module_gt_ +// frozen bytecode for file apps/management/reset_device/layout.py, scope apps_management_reset_device_layout__confirm_word +static const byte fun_data_apps_management_reset_device_layout__confirm_word[103] = { + 0x89,0x55,0x24, // prelude + 0x14,0x2d,0x2e,0x2f,0x30,0x31, // names: _confirm_word, share_index, share_words, offset, count, group_index + 0x80,0x23,0x2b,0x6b,0x4a,0x47,0x47,0x44,0x49,0x47,0x6c,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x15, // LOAD_CONST_STRING 'random' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x16, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x15, // IMPORT_FROM 'random' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING 'select_word' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'trezor.ui.layouts.reset' + 0x1c,0x17, // IMPORT_FROM 'select_word' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x12,0x32, // LOAD_GLOBAL 'list' + 0x12,0x33, // LOAD_GLOBAL 'set' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0xb5, // LOAD_FAST 5 + 0x14,0x18, // LOAD_METHOD 'shuffle' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x51, // LOAD_CONST_NONE + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xc9, // STORE_FAST 9 + 0xb1, // LOAD_FAST 1 + 0x14,0x19, // LOAD_METHOD 'index' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0xb2, // LOAD_FAST 2 + 0xf2, // BINARY_OP 27 __add__ + 0xca, // STORE_FAST 10 + 0xb5, // LOAD_FAST 5 + 0x14,0x18, // LOAD_METHOD 'shuffle' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0xb0, // LOAD_FAST 0 + 0xba, // LOAD_FAST 10 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x05, // CALL_FUNCTION 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xcb, // STORE_FAST 11 + 0xbb, // LOAD_FAST 11 + 0xb9, // LOAD_FAST 9 + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_reset_device_layout__confirm_word = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_apps_management_reset_device_layout__confirm_word, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 103, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 20, + .line_info = fun_data_apps_management_reset_device_layout__confirm_word + 9, + .line_info_top = fun_data_apps_management_reset_device_layout__confirm_word + 21, + .opcodes = fun_data_apps_management_reset_device_layout__confirm_word + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_reset_device_layout__lt_module_gt_ +// frozen bytecode for file apps/management/reset_device/layout.py, scope apps_management_reset_device_layout__share_words_confirmed +static const byte fun_data_apps_management_reset_device_layout__share_words_confirmed[53] = { + 0xb8,0xc4,0x01,0x1c, // prelude + 0x1a,0x2d,0x2e,0x34,0x31, // names: _share_words_confirmed, share_index, share_words, num_of_shares, group_index + 0x80,0x40,0x80,0x08,0x2c,0x6b,0x40,0x42,0x48, // code info + 0x12,0x1b, // LOAD_GLOBAL '_do_confirm_share_words' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x1f, // LOAD_GLOBAL '_show_confirmation_success' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE + 0x12,0x22, // LOAD_GLOBAL '_show_confirmation_failure' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_reset_device_layout__share_words_confirmed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_management_reset_device_layout__share_words_confirmed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 53, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 26, + .line_info = fun_data_apps_management_reset_device_layout__share_words_confirmed + 9, + .line_info_top = fun_data_apps_management_reset_device_layout__share_words_confirmed + 18, + .opcodes = fun_data_apps_management_reset_device_layout__share_words_confirmed + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_reset_device_layout__lt_module_gt_ +// frozen bytecode for file apps/management/reset_device/layout.py, scope apps_management_reset_device_layout__do_confirm_share_words +static const byte fun_data_apps_management_reset_device_layout__do_confirm_share_words[86] = { + 0x8b,0x51,0x1e, // prelude + 0x1b,0x2d,0x2e,0x31, // names: _do_confirm_share_words, share_index, share_words, group_index + 0x80,0x5a,0x6b,0x20,0x4a,0x22,0x26,0x2b,0x2e,0x22,0x4a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1c, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1d, // IMPORT_NAME 'trezor' + 0x1c,0x1c, // IMPORT_FROM 'utils' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x35, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf2, // BINARY_OP 27 __add__ + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xf6, // BINARY_OP 31 __floordiv__ + 0xc4, // STORE_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc5, // STORE_FAST 5 + 0x12,0x35, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc6, // STORE_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x14,0x1e, // LOAD_METHOD 'chunks' + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x5f, // GET_ITER_STACK + 0x4b,0x1b, // FOR_ITER 27 + 0xc7, // STORE_FAST 7 + 0x12,0x14, // LOAD_GLOBAL '_confirm_word' + 0xb0, // LOAD_FAST 0 + 0xb7, // LOAD_FAST 7 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0xb2, // LOAD_FAST 2 + 0x34,0x05, // CALL_FUNCTION 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0xb5, // LOAD_FAST 5 + 0x12,0x35, // LOAD_GLOBAL 'len' + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc5, // STORE_FAST 5 + 0x42,0x23, // JUMP -29 + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_reset_device_layout__do_confirm_share_words = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_management_reset_device_layout__do_confirm_share_words, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 86, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 27, + .line_info = fun_data_apps_management_reset_device_layout__do_confirm_share_words + 7, + .line_info_top = fun_data_apps_management_reset_device_layout__do_confirm_share_words + 18, + .opcodes = fun_data_apps_management_reset_device_layout__do_confirm_share_words + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_reset_device_layout__lt_module_gt_ +// frozen bytecode for file apps/management/reset_device/layout.py, scope apps_management_reset_device_layout__show_confirmation_success +static const byte fun_data_apps_management_reset_device_layout__show_confirmation_success[129] = { + 0xcb,0xc1,0x01,0x26, // prelude + 0x1f,0x2d,0x34,0x31, // names: _show_confirmation_success, share_index, num_of_shares, group_index + 0x80,0x6f,0x2a,0x23,0x46,0x27,0x25,0x45,0x2a,0x65,0x25,0x2a,0x4c,0x2d,0x43, // code info + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xc3, // STORE_FAST 3 + 0x10,0x20, // LOAD_CONST_STRING '' + 0xc4, // STORE_FAST 4 + 0x42,0xcb,0x80, // JUMP 75 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xc3, // STORE_FAST 3 + 0x42,0x4a, // JUMP 10 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x14,0x21, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x10,0x20, // LOAD_CONST_STRING '' + 0xc4, // STORE_FAST 4 + 0x42,0x6b, // JUMP 43 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x14,0x21, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x14,0x21, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0x42,0x50, // JUMP 16 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x14,0x21, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x02, // CALL_METHOD 2 + 0xc3, // STORE_FAST 3 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0xc4, // STORE_FAST 4 + 0x12,0x06, // LOAD_GLOBAL 'show_success' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_reset_device_layout__show_confirmation_success = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_management_reset_device_layout__show_confirmation_success, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 129, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 3, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_management_reset_device_layout__show_confirmation_success + 8, + .line_info_top = fun_data_apps_management_reset_device_layout__show_confirmation_success + 23, + .opcodes = fun_data_apps_management_reset_device_layout__show_confirmation_success + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_reset_device_layout__lt_module_gt_ +// frozen bytecode for file apps/management/reset_device/layout.py, scope apps_management_reset_device_layout__show_confirmation_failure +static const byte fun_data_apps_management_reset_device_layout__show_confirmation_failure[44] = { + 0xb0,0x40,0x12, // prelude + 0x22, // names: _show_confirmation_failure + 0x80,0x86,0x4b,0x21,0x22,0x22,0x22,0x22, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x23, // LOAD_CONST_STRING 'show_reset_warning' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'trezor.ui.layouts.reset' + 0x1c,0x23, // IMPORT_FROM 'show_reset_warning' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x12,0x04, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x13, // LOAD_ATTR 'ResetDevice' + 0x34,0x05, // CALL_FUNCTION 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_reset_device_layout__show_confirmation_failure = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_reset_device_layout__show_confirmation_failure, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_apps_management_reset_device_layout__show_confirmation_failure + 4, + .line_info_top = fun_data_apps_management_reset_device_layout__show_confirmation_failure + 12, + .opcodes = fun_data_apps_management_reset_device_layout__show_confirmation_failure + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_reset_device_layout__lt_module_gt_ +// frozen bytecode for file apps/management/reset_device/layout.py, scope apps_management_reset_device_layout_show_backup_warning +static const byte fun_data_apps_management_reset_device_layout_show_backup_warning[29] = { + 0x99,0x41,0x0a, // prelude + 0x24,0x36, // names: show_backup_warning, slip39 + 0x80,0x92,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x25, // LOAD_CONST_STRING 'show_warning_backup' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'trezor.ui.layouts.reset' + 0x1c,0x25, // IMPORT_FROM 'show_warning_backup' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_reset_device_layout_show_backup_warning = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_reset_device_layout_show_backup_warning, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_management_reset_device_layout_show_backup_warning + 5, + .line_info_top = fun_data_apps_management_reset_device_layout_show_backup_warning + 8, + .opcodes = fun_data_apps_management_reset_device_layout_show_backup_warning + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_reset_device_layout__lt_module_gt_ +// frozen bytecode for file apps/management/reset_device/layout.py, scope apps_management_reset_device_layout_show_backup_success +static const byte fun_data_apps_management_reset_device_layout_show_backup_success[27] = { + 0x90,0x40,0x08, // prelude + 0x26, // names: show_backup_success + 0x80,0x98,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x27, // LOAD_CONST_STRING 'show_success_backup' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'trezor.ui.layouts.reset' + 0x1c,0x27, // IMPORT_FROM 'show_success_backup' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_reset_device_layout_show_backup_success = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_reset_device_layout_show_backup_success, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 38, + .line_info = fun_data_apps_management_reset_device_layout_show_backup_success + 4, + .line_info_top = fun_data_apps_management_reset_device_layout_show_backup_success + 7, + .opcodes = fun_data_apps_management_reset_device_layout_show_backup_success + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_reset_device_layout__lt_module_gt_ +// frozen bytecode for file apps/management/reset_device/layout.py, scope apps_management_reset_device_layout_bip39_show_and_confirm_mnemonic +static const byte fun_data_apps_management_reset_device_layout_bip39_show_and_confirm_mnemonic[52] = { + 0xa1,0x40,0x12, // prelude + 0x28,0x37, // names: bip39_show_and_confirm_mnemonic, mnemonic + 0x80,0xa3,0x48,0x46,0x40,0x69,0x2b, // code info + 0x12,0x24, // LOAD_GLOBAL 'show_backup_warning' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x29, // LOAD_METHOD 'split' + 0x36,0x00, // CALL_METHOD 0 + 0xc1, // STORE_FAST 1 + 0x12,0x08, // LOAD_GLOBAL 'show_share_words' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x1a, // LOAD_GLOBAL '_share_words_confirmed' + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x42, // JUMP 2 + 0x42,0x28, // JUMP -24 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_reset_device_layout_bip39_show_and_confirm_mnemonic = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_reset_device_layout_bip39_show_and_confirm_mnemonic, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 52, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_management_reset_device_layout_bip39_show_and_confirm_mnemonic + 5, + .line_info_top = fun_data_apps_management_reset_device_layout_bip39_show_and_confirm_mnemonic + 12, + .opcodes = fun_data_apps_management_reset_device_layout_bip39_show_and_confirm_mnemonic + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_reset_device_layout__lt_module_gt_ +// frozen bytecode for file apps/management/reset_device/layout.py, scope apps_management_reset_device_layout_slip39_basic_show_and_confirm_shares +static const byte fun_data_apps_management_reset_device_layout_slip39_basic_show_and_confirm_shares[76] = { + 0xe1,0x40,0x14, // prelude + 0x2a,0x38, // names: slip39_basic_show_and_confirm_shares, shares + 0x80,0xb6,0x49,0x2c,0x28,0x40,0x6a,0x30, // code info + 0x12,0x24, // LOAD_GLOBAL 'show_backup_warning' + 0x52, // LOAD_CONST_TRUE + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x39, // LOAD_GLOBAL 'enumerate' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x2c, // FOR_ITER 44 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc1, // STORE_FAST 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x14,0x29, // LOAD_METHOD 'split' + 0x10,0x2b, // LOAD_CONST_STRING ' ' + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x12,0x08, // LOAD_GLOBAL 'show_share_words' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x1a, // LOAD_GLOBAL '_share_words_confirmed' + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x12,0x35, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x42, // JUMP 2 + 0x42,0x22, // JUMP -30 + 0x42,0x12, // JUMP -46 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_reset_device_layout_slip39_basic_show_and_confirm_shares = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_reset_device_layout_slip39_basic_show_and_confirm_shares, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 76, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_management_reset_device_layout_slip39_basic_show_and_confirm_shares + 5, + .line_info_top = fun_data_apps_management_reset_device_layout_slip39_basic_show_and_confirm_shares + 13, + .opcodes = fun_data_apps_management_reset_device_layout_slip39_basic_show_and_confirm_shares + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_management_reset_device_layout__lt_module_gt_ +// frozen bytecode for file apps/management/reset_device/layout.py, scope apps_management_reset_device_layout_slip39_advanced_show_and_confirm_shares +static const byte fun_data_apps_management_reset_device_layout_slip39_advanced_show_and_confirm_shares[94] = { + 0x91,0x50,0x18, // prelude + 0x2c,0x38, // names: slip39_advanced_show_and_confirm_shares, shares + 0x80,0xc7,0x49,0x2c,0x2c,0x28,0x40,0x6b,0x24,0x4d, // code info + 0x12,0x24, // LOAD_GLOBAL 'show_backup_warning' + 0x52, // LOAD_CONST_TRUE + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x39, // LOAD_GLOBAL 'enumerate' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x3c, // FOR_ITER 60 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc1, // STORE_FAST 1 + 0xc2, // STORE_FAST 2 + 0x12,0x39, // LOAD_GLOBAL 'enumerate' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x2e, // FOR_ITER 46 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x14,0x29, // LOAD_METHOD 'split' + 0x10,0x2b, // LOAD_CONST_STRING ' ' + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0x12,0x08, // LOAD_GLOBAL 'show_share_words' + 0xb5, // LOAD_FAST 5 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x1a, // LOAD_GLOBAL '_share_words_confirmed' + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0x12,0x35, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x42, // JUMP 2 + 0x42,0x20, // JUMP -32 + 0x42,0x10, // JUMP -48 + 0x42,0x02, // JUMP -62 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_management_reset_device_layout_slip39_advanced_show_and_confirm_shares = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_management_reset_device_layout_slip39_advanced_show_and_confirm_shares, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 94, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 44, + .line_info = fun_data_apps_management_reset_device_layout_slip39_advanced_show_and_confirm_shares + 5, + .line_info_top = fun_data_apps_management_reset_device_layout_slip39_advanced_show_and_confirm_shares + 15, + .opcodes = fun_data_apps_management_reset_device_layout_slip39_advanced_show_and_confirm_shares + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_management_reset_device_layout__lt_module_gt_[] = { + &raw_code_apps_management_reset_device_layout_show_internal_entropy, + &raw_code_apps_management_reset_device_layout__confirm_word, + &raw_code_apps_management_reset_device_layout__share_words_confirmed, + &raw_code_apps_management_reset_device_layout__do_confirm_share_words, + &raw_code_apps_management_reset_device_layout__show_confirmation_success, + &raw_code_apps_management_reset_device_layout__show_confirmation_failure, + &raw_code_apps_management_reset_device_layout_show_backup_warning, + &raw_code_apps_management_reset_device_layout_show_backup_success, + &raw_code_apps_management_reset_device_layout_bip39_show_and_confirm_mnemonic, + &raw_code_apps_management_reset_device_layout_slip39_basic_show_and_confirm_shares, + &raw_code_apps_management_reset_device_layout_slip39_advanced_show_and_confirm_shares, +}; + +static const mp_raw_code_t raw_code_apps_management_reset_device_layout__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_management_reset_device_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 176, + #endif + .children = (void *)&children_apps_management_reset_device_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 11, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_management_reset_device_layout__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_management_reset_device_layout__lt_module_gt_ + 29, + .opcodes = fun_data_apps_management_reset_device_layout__lt_module_gt_ + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_management_reset_device_layout[58] = { + MP_QSTR_apps_slash_management_slash_reset_device_slash_layout_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_show_success, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_show_share_words, + MP_QSTR_slip39_advanced_prompt_group_threshold, + MP_QSTR_slip39_advanced_prompt_number_of_groups, + MP_QSTR_slip39_prompt_number_of_shares, + MP_QSTR_slip39_prompt_threshold, + MP_QSTR_slip39_show_checklist, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_reset, + MP_QSTR_show_internal_entropy, + MP_QSTR_confirm_blob, + MP_QSTR_entropy, + MP_QSTR_br_code, + MP_QSTR_ResetDevice, + MP_QSTR__confirm_word, + MP_QSTR_random, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_select_word, + MP_QSTR_shuffle, + MP_QSTR_index, + MP_QSTR__share_words_confirmed, + MP_QSTR__do_confirm_share_words, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_chunks, + MP_QSTR__show_confirmation_success, + MP_QSTR_, + MP_QSTR_format, + MP_QSTR__show_confirmation_failure, + MP_QSTR_show_reset_warning, + MP_QSTR_show_backup_warning, + MP_QSTR_show_warning_backup, + MP_QSTR_show_backup_success, + MP_QSTR_show_success_backup, + MP_QSTR_bip39_show_and_confirm_mnemonic, + MP_QSTR_split, + MP_QSTR_slip39_basic_show_and_confirm_shares, + MP_QSTR__space_, + MP_QSTR_slip39_advanced_show_and_confirm_shares, + MP_QSTR_share_index, + MP_QSTR_share_words, + MP_QSTR_offset, + MP_QSTR_count, + MP_QSTR_group_index, + MP_QSTR_list, + MP_QSTR_set, + MP_QSTR_num_of_shares, + MP_QSTR_len, + MP_QSTR_slip39, + MP_QSTR_mnemonic, + MP_QSTR_shares, + MP_QSTR_enumerate, +}; + +// constants +static const mp_obj_str_t const_obj_apps_management_reset_device_layout_1 = {{&mp_type_str}, 29330, 47, (const byte*)"\x59\x6f\x75\x20\x68\x61\x76\x65\x20\x66\x69\x6e\x69\x73\x68\x65\x64\x20\x76\x65\x72\x69\x66\x79\x69\x6e\x67\x20\x79\x6f\x75\x72\x20\x72\x65\x63\x6f\x76\x65\x72\x79\x20\x73\x65\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_management_reset_device_layout_2 = {{&mp_type_str}, 32923, 49, (const byte*)"\x59\x6f\x75\x20\x68\x61\x76\x65\x20\x66\x69\x6e\x69\x73\x68\x65\x64\x20\x76\x65\x72\x69\x66\x79\x69\x6e\x67\x20\x79\x6f\x75\x72\x20\x72\x65\x63\x6f\x76\x65\x72\x79\x20\x73\x68\x61\x72\x65\x73\x2e"}; +static const mp_obj_str_t const_obj_apps_management_reset_device_layout_3 = {{&mp_type_str}, 28921, 62, (const byte*)"\x59\x6f\x75\x20\x68\x61\x76\x65\x20\x66\x69\x6e\x69\x73\x68\x65\x64\x20\x76\x65\x72\x69\x66\x79\x69\x6e\x67\x20\x79\x6f\x75\x72\x20\x72\x65\x63\x6f\x76\x65\x72\x79\x20\x73\x68\x61\x72\x65\x73\x20\x66\x6f\x72\x20\x67\x72\x6f\x75\x70\x20\x7b\x7d\x2e"}; +static const mp_obj_str_t const_obj_apps_management_reset_device_layout_4 = {{&mp_type_str}, 37294, 40, (const byte*)"\x52\x65\x63\x6f\x76\x65\x72\x79\x20\x73\x68\x61\x72\x65\x20\x23\x7b\x7d\x20\x63\x68\x65\x63\x6b\x65\x64\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79\x2e"}; +static const mp_obj_str_t const_obj_apps_management_reset_device_layout_6 = {{&mp_type_str}, 56762, 41, (const byte*)"\x47\x72\x6f\x75\x70\x20\x7b\x7d\x20\x2d\x20\x53\x68\x61\x72\x65\x20\x7b\x7d\x20\x63\x68\x65\x63\x6b\x65\x64\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79\x2e"}; +static const mp_obj_str_t const_obj_apps_management_reset_device_layout_7 = {{&mp_type_str}, 15771, 29, (const byte*)"\x43\x6f\x6e\x74\x69\x6e\x75\x65\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x6e\x65\x78\x74\x20\x73\x68\x61\x72\x65\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_management_reset_device_layout[13] = { + MP_ROM_QSTR(MP_QSTR_Internal_space_entropy), + MP_ROM_PTR(&const_obj_apps_management_reset_device_layout_1), + MP_ROM_PTR(&const_obj_apps_management_reset_device_layout_2), + MP_ROM_PTR(&const_obj_apps_management_reset_device_layout_3), + MP_ROM_PTR(&const_obj_apps_management_reset_device_layout_4), + MP_ROM_QSTR(MP_QSTR_Continue_space_with_space_share_space__hash__brace_open__brace_close__dot_), + MP_ROM_PTR(&const_obj_apps_management_reset_device_layout_6), + MP_ROM_PTR(&const_obj_apps_management_reset_device_layout_7), + MP_ROM_QSTR(MP_QSTR_success_recovery), + MP_ROM_QSTR(MP_QSTR_warning_backup_check), + MP_ROM_QSTR(MP_QSTR_Please_space_check_space_again), + MP_ROM_QSTR(MP_QSTR_Wrong_space_word_space_selected_bang_), + MP_ROM_QSTR(MP_QSTR_Check_space_again), +}; + +static const mp_frozen_module_t frozen_module_apps_management_reset_device_layout = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_management_reset_device_layout, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_management_reset_device_layout, + }, + .rc = &raw_code_apps_management_reset_device_layout__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_misc___init__ +// - original source file: build/firmware/src/apps/misc/__init__.mpy +// - frozen file name: apps/misc/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/misc/__init__.py, scope apps_misc___init____lt_module_gt_ +static const byte fun_data_apps_misc___init____lt_module_gt_[5] = { + 0x00,0x02, // prelude + 0x01, // names: + // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_misc___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_misc___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 5, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_misc___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_misc___init____lt_module_gt_ + 3, + .opcodes = fun_data_apps_misc___init____lt_module_gt_ + 3, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_misc___init__[2] = { + MP_QSTR_apps_slash_misc_slash___init___dot_py, + MP_QSTR__lt_module_gt_, +}; + +static const mp_frozen_module_t frozen_module_apps_misc___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_misc___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps_misc___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_misc_cipher_key_value +// - original source file: build/firmware/src/apps/misc/cipher_key_value.mpy +// - frozen file name: apps/misc/cipher_key_value.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/misc/cipher_key_value.py, scope apps_misc_cipher_key_value__lt_module_gt_ +static const byte fun_data_apps_misc_cipher_key_value__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x80,0x07, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'cipher_key_value' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_misc_cipher_key_value__lt_module_gt_ +// frozen bytecode for file apps/misc/cipher_key_value.py, scope apps_misc_cipher_key_value_cipher_key_value +static const byte fun_data_apps_misc_cipher_key_value_cipher_key_value[371] = { + 0xd1,0x50,0x4c, // prelude + 0x02,0x23, // names: cipher_key_value, msg + 0x80,0x0a,0x30,0x2b,0x2b,0x4b,0x2b,0x4b,0x4c,0x2d,0x46,0x24,0x25,0x50,0x28,0x23,0x45,0x23,0x45,0x23,0x43,0x53,0x69,0x26,0x28,0x2e,0x2e,0x2d,0x28,0x30,0x47,0x49,0x2c,0x25,0x4d,0x6b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'aes' + 0x10,0x04, // LOAD_CONST_STRING 'hmac' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x05, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x03, // IMPORT_FROM 'aes' + 0xc1, // STORE_FAST 1 + 0x1c,0x04, // IMPORT_FROM 'hmac' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'CipheredKeyValue' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.messages' + 0x1c,0x06, // IMPORT_FROM 'CipheredKeyValue' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'confirm_action' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x08, // IMPORT_FROM 'confirm_action' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'trezor.wire' + 0x1c,0x0a, // IMPORT_FROM 'DataError' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'get_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x0c, // IMPORT_FROM 'get_keychain' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'AlwaysMatchingSchema' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x0e, // IMPORT_FROM 'AlwaysMatchingSchema' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x10,0x10, // LOAD_CONST_STRING 'secp256k1' + 0xb7, // LOAD_FAST 7 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc8, // STORE_FAST 8 + 0x12,0x24, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'value' + 0x34,0x01, // CALL_FUNCTION 1 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xf8, // BINARY_OP 33 __mod__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb5, // LOAD_FAST 5 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'encrypt' + 0xc9, // STORE_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'encrypt' + 0xd3, // UNARY_OP 3 + 0xca, // STORE_FAST 10 + 0xb9, // LOAD_FAST 9 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'ask_on_encrypt' + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xba, // LOAD_FAST 10 + 0x44,0x76, // POP_JUMP_IF_FALSE 54 + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'ask_on_decrypt' + 0x44,0x71, // POP_JUMP_IF_FALSE 49 + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'key' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xcb, // STORE_FAST 11 + 0x10,0x16, // LOAD_CONST_STRING 'ENABLE' + 0xcc, // STORE_FAST 12 + 0x42,0x4e, // JUMP 14 + 0xb9, // LOAD_FAST 9 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xcb, // STORE_FAST 11 + 0x42,0x43, // JUMP 3 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xcb, // STORE_FAST 11 + 0x10,0x17, // LOAD_CONST_STRING 'CONFIRM' + 0xcc, // STORE_FAST 12 + 0xb4, // LOAD_FAST 4 + 0x10,0x02, // LOAD_CONST_STRING 'cipher_key_value' + 0xbb, // LOAD_FAST 11 + 0x10,0x18, // LOAD_CONST_STRING 'description' + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'key' + 0x10,0x19, // LOAD_CONST_STRING 'verb' + 0xbc, // LOAD_FAST 12 + 0x34,0x84,0x02, // CALL_FUNCTION 514 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x1a, // LOAD_METHOD 'derive' + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xcd, // STORE_FAST 13 + 0xbd, // LOAD_FAST 13 + 0x14,0x1c, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0xce, // STORE_FAST 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'key' + 0x14,0x1d, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0xcf, // STORE_FAST 15 + 0xbf, // LOAD_FAST 15 + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'ask_on_encrypt' + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x42,0x42, // JUMP 2 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0xe5, // BINARY_OP 14 __iadd__ + 0xcf, // STORE_FAST 15 + 0xbf, // LOAD_FAST 15 + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'ask_on_decrypt' + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x42,0x42, // JUMP 2 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0xe5, // BINARY_OP 14 __iadd__ + 0xcf, // STORE_FAST 15 + 0xb2, // LOAD_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x13,0x1e, // LOAD_ATTR 'SHA512' + 0xbe, // LOAD_FAST 14 + 0xbf, // LOAD_FAST 15 + 0x34,0x03, // CALL_FUNCTION 3 + 0x14,0x1f, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xcf, // STORE_FAST 15 + 0xbf, // LOAD_FAST 15 + 0x51, // LOAD_CONST_NONE + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x26,0x10, // STORE_FAST_N 16 + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'iv' + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x24, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'iv' + 0x34,0x01, // CALL_FUNCTION 1 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'iv' + 0x26,0x11, // STORE_FAST_N 17 + 0x42,0x49, // JUMP 9 + 0xbf, // LOAD_FAST 15 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x22,0x30, // LOAD_CONST_SMALL_INT 48 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x26,0x11, // STORE_FAST_N 17 + 0xb1, // LOAD_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'CBC' + 0x24,0x10, // LOAD_FAST_N 16 + 0x24,0x11, // LOAD_FAST_N 17 + 0x34,0x03, // CALL_FUNCTION 3 + 0x26,0x12, // STORE_FAST_N 18 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'encrypt' + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x24,0x12, // LOAD_FAST_N 18 + 0x14,0x12, // LOAD_METHOD 'encrypt' + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'value' + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x13, // STORE_FAST_N 19 + 0x42,0x4b, // JUMP 11 + 0x24,0x12, // LOAD_FAST_N 18 + 0x14,0x22, // LOAD_METHOD 'decrypt' + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'value' + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x13, // STORE_FAST_N 19 + 0xb3, // LOAD_FAST 3 + 0x10,0x11, // LOAD_CONST_STRING 'value' + 0x24,0x13, // LOAD_FAST_N 19 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_misc_cipher_key_value_cipher_key_value = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_misc_cipher_key_value_cipher_key_value, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 371, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 27, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_misc_cipher_key_value_cipher_key_value + 5, + .line_info_top = fun_data_apps_misc_cipher_key_value_cipher_key_value + 41, + .opcodes = fun_data_apps_misc_cipher_key_value_cipher_key_value + 41, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_misc_cipher_key_value__lt_module_gt_[] = { + &raw_code_apps_misc_cipher_key_value_cipher_key_value, +}; + +static const mp_raw_code_t raw_code_apps_misc_cipher_key_value__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_misc_cipher_key_value__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_misc_cipher_key_value__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_misc_cipher_key_value__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_misc_cipher_key_value__lt_module_gt_ + 6, + .opcodes = fun_data_apps_misc_cipher_key_value__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_misc_cipher_key_value[37] = { + MP_QSTR_apps_slash_misc_slash_cipher_key_value_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_cipher_key_value, + MP_QSTR_aes, + MP_QSTR_hmac, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_CipheredKeyValue, + MP_QSTR_trezor_dot_messages, + MP_QSTR_confirm_action, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_get_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_AlwaysMatchingSchema, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_secp256k1, + MP_QSTR_value, + MP_QSTR_encrypt, + MP_QSTR_ask_on_encrypt, + MP_QSTR_ask_on_decrypt, + MP_QSTR_key, + MP_QSTR_ENABLE, + MP_QSTR_CONFIRM, + MP_QSTR_description, + MP_QSTR_verb, + MP_QSTR_derive, + MP_QSTR_address_n, + MP_QSTR_private_key, + MP_QSTR_encode, + MP_QSTR_SHA512, + MP_QSTR_digest, + MP_QSTR_iv, + MP_QSTR_CBC, + MP_QSTR_decrypt, + MP_QSTR_msg, + MP_QSTR_len, +}; + +// constants +static const mp_obj_str_t const_obj_apps_misc_cipher_key_value_0 = {{&mp_type_str}, 31573, 37, (const byte*)"\x56\x61\x6c\x75\x65\x20\x6c\x65\x6e\x67\x74\x68\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x20\x6d\x75\x6c\x74\x69\x70\x6c\x65\x20\x6f\x66\x20\x31\x36"}; +static const mp_obj_str_t const_obj_apps_misc_cipher_key_value_5 = {{&mp_type_bytes}, 29137, 2, (const byte*)"\x45\x31"}; +static const mp_obj_str_t const_obj_apps_misc_cipher_key_value_6 = {{&mp_type_bytes}, 29136, 2, (const byte*)"\x45\x30"}; +static const mp_obj_str_t const_obj_apps_misc_cipher_key_value_7 = {{&mp_type_bytes}, 29232, 2, (const byte*)"\x44\x31"}; +static const mp_obj_str_t const_obj_apps_misc_cipher_key_value_8 = {{&mp_type_bytes}, 29233, 2, (const byte*)"\x44\x30"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_misc_cipher_key_value[9] = { + MP_ROM_PTR(&const_obj_apps_misc_cipher_key_value_0), + MP_ROM_QSTR(MP_QSTR_Enable_space_labeling_question_), + MP_ROM_QSTR(MP_QSTR_SUITE_space_LABELING), + MP_ROM_QSTR(MP_QSTR_Encrypt_space_value), + MP_ROM_QSTR(MP_QSTR_Decrypt_space_value), + MP_ROM_PTR(&const_obj_apps_misc_cipher_key_value_5), + MP_ROM_PTR(&const_obj_apps_misc_cipher_key_value_6), + MP_ROM_PTR(&const_obj_apps_misc_cipher_key_value_7), + MP_ROM_PTR(&const_obj_apps_misc_cipher_key_value_8), +}; + +static const mp_frozen_module_t frozen_module_apps_misc_cipher_key_value = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_misc_cipher_key_value, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_misc_cipher_key_value, + }, + .rc = &raw_code_apps_misc_cipher_key_value__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_misc_cosi_commit +// - original source file: build/firmware/src/apps/misc/cosi_commit.mpy +// - frozen file name: apps/misc/cosi_commit.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/misc/cosi_commit.py, scope apps_misc_cosi_commit__lt_module_gt_ +static const byte fun_data_apps_misc_cosi_commit__lt_module_gt_[121] = { + 0x20,0x1a, // prelude + 0x01, // names: + 0x40,0x2c,0x38,0x4c,0x52,0x80,0x07,0x8f,0x07,0x6f,0x84,0x1f, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x02, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x02, // STORE_NAME 'ButtonRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'CosiCommitment' + 0x10,0x05, // LOAD_CONST_STRING 'CosiSign' + 0x10,0x06, // LOAD_CONST_STRING 'CosiSignature' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x07, // IMPORT_NAME 'trezor.messages' + 0x1c,0x04, // IMPORT_FROM 'CosiCommitment' + 0x16,0x04, // STORE_NAME 'CosiCommitment' + 0x1c,0x05, // IMPORT_FROM 'CosiSign' + 0x16,0x05, // STORE_NAME 'CosiSign' + 0x1c,0x06, // IMPORT_FROM 'CosiSignature' + 0x16,0x06, // STORE_NAME 'CosiSignature' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.wire' + 0x1c,0x08, // IMPORT_FROM 'DataError' + 0x16,0x08, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'PathSchema' + 0x10,0x0b, // LOAD_CONST_STRING 'unharden' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0c, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x0a, // IMPORT_FROM 'PathSchema' + 0x16,0x0a, // STORE_NAME 'PathSchema' + 0x1c,0x0b, // IMPORT_FROM 'unharden' + 0x16,0x0b, // STORE_NAME 'unharden' + 0x59, // POP_TOP + 0x11,0x0a, // LOAD_NAME 'PathSchema' + 0x14,0x0d, // LOAD_METHOD 'parse' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x10,0x0e, // LOAD_CONST_STRING 'slip44_id' + 0x2a,0x00, // BUILD_TUPLE 0 + 0x36,0x82,0x01, // CALL_METHOD 257 + 0x16,0x42, // STORE_NAME 'SCHEMA_SLIP18' + 0x11,0x0a, // LOAD_NAME 'PathSchema' + 0x14,0x0d, // LOAD_METHOD 'parse' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x10,0x0e, // LOAD_CONST_STRING 'slip44_id' + 0x2a,0x00, // BUILD_TUPLE 0 + 0x36,0x82,0x01, // CALL_METHOD 257 + 0x16,0x43, // STORE_NAME 'SCHEMA_SLIP26' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0f, // STORE_NAME '_decode_path' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x19, // STORE_NAME 'cosi_commit' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_misc_cosi_commit__lt_module_gt_ +// frozen bytecode for file apps/misc/cosi_commit.py, scope apps_misc_cosi_commit__decode_path +static const byte fun_data_apps_misc_cosi_commit__decode_path[185] = { + 0x51,0x32, // prelude + 0x0f,0x2a, // names: _decode_path, address_n + 0x80,0x1a,0x22,0x24,0x24,0x65,0x32,0x2d,0x25,0x22,0x48,0x2a,0x28,0x28,0x2a,0x43,0x29,0x27,0x20,0x26,0x29,0x4c,0x4d, // code info + 0x2c,0x03, // BUILD_MAP 3 + 0x10,0x10, // LOAD_CONST_STRING 'bootloader' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x62, // STORE_MAP + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x62, // STORE_MAP + 0x10,0x11, // LOAD_CONST_STRING 'firmware' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x62, // STORE_MAP + 0xc1, // STORE_FAST 1 + 0x12,0x44, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x65, // POP_JUMP_IF_FALSE 37 + 0x12,0x42, // LOAD_GLOBAL 'SCHEMA_SLIP18' + 0x14,0x12, // LOAD_METHOD 'match' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0xb1, // LOAD_FAST 1 + 0x14,0x13, // LOAD_METHOD 'get' + 0x12,0x0b, // LOAD_GLOBAL 'unharden' + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x14,0x14, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0x12,0x43, // LOAD_GLOBAL 'SCHEMA_SLIP26' + 0x14,0x12, // LOAD_METHOD 'match' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0xd5,0x80, // POP_JUMP_IF_FALSE 85 + 0x12,0x0b, // LOAD_GLOBAL 'unharden' + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x12,0x0b, // LOAD_GLOBAL 'unharden' + 0xb0, // LOAD_FAST 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x63, // RETURN_VALUE + 0xb3, // LOAD_FAST 3 + 0x14,0x15, // LOAD_METHOD 'to_bytes' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x10,0x16, // LOAD_CONST_STRING 'little' + 0x36,0x02, // CALL_METHOD 2 + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x14,0x13, // LOAD_METHOD 'get' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x62, // POP_JUMP_IF_FALSE 34 + 0x12,0x44, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0x12,0x45, // LOAD_GLOBAL 'all' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb4, // LOAD_FAST 4 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x10,0x17, // LOAD_CONST_STRING '{} {}' + 0x14,0x14, // LOAD_METHOD 'format' + 0xb4, // LOAD_FAST 4 + 0x14,0x18, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_misc_cosi_commit__decode_path +// frozen bytecode for file apps/misc/cosi_commit.py, scope apps_misc_cosi_commit__decode_path__lt_genexpr_gt_ +static const byte fun_data_apps_misc_cosi_commit__decode_path__lt_genexpr_gt_[35] = { + 0xc1,0x40,0x08, // prelude + 0x41,0x48, // names: , * + 0x80,0x31, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x14, // FOR_ITER 20 + 0xc1, // STORE_FAST 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xb1, // LOAD_FAST 1 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0x22,0x80,0x7e, // LOAD_CONST_SMALL_INT 126 + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x2a, // JUMP -22 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_misc_cosi_commit__decode_path__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_misc_cosi_commit__decode_path__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 65, + .line_info = fun_data_apps_misc_cosi_commit__decode_path__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_apps_misc_cosi_commit__decode_path__lt_genexpr_gt_ + 7, + .opcodes = fun_data_apps_misc_cosi_commit__decode_path__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_misc_cosi_commit__decode_path[] = { + &raw_code_apps_misc_cosi_commit__decode_path__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_misc_cosi_commit__decode_path = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_misc_cosi_commit__decode_path, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 185, + #endif + .children = (void *)&children_apps_misc_cosi_commit__decode_path, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_misc_cosi_commit__decode_path + 4, + .line_info_top = fun_data_apps_misc_cosi_commit__decode_path + 27, + .opcodes = fun_data_apps_misc_cosi_commit__decode_path + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_misc_cosi_commit__lt_module_gt_ +// frozen bytecode for file apps/misc/cosi_commit.py, scope apps_misc_cosi_commit_cosi_commit +static const byte fun_data_apps_misc_cosi_commit_cosi_commit[379] = { + 0xc1,0x50,0x54, // prelude + 0x19,0x46, // names: cosi_commit, msg + 0x80,0x39,0x27,0x2b,0x2b,0x30,0x4b,0x2b,0x4b,0x2f,0x4d,0x29,0x26,0x47,0x2a,0x29,0x2a,0x2a,0x29,0x25,0x43,0x21,0x73,0x29,0x47,0x29,0x21,0x44,0x70,0x65,0x25,0x6b,0x20,0x29,0x29,0x29,0x25,0x43,0x24,0x4e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x1a, // IMPORT_NAME 'storage.cache' + 0x13,0x1b, // LOAD_ATTR 'cache' + 0xc1, // STORE_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1c, // LOAD_CONST_STRING 'cosi' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1d, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x1c, // IMPORT_FROM 'cosi' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1e, // LOAD_CONST_STRING 'ed25519' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1f, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x1e, // IMPORT_FROM 'ed25519' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x20, // LOAD_CONST_STRING 'confirm_blob' + 0x10,0x21, // LOAD_CONST_STRING 'confirm_text' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x22, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x20, // IMPORT_FROM 'confirm_blob' + 0xc4, // STORE_FAST 4 + 0x1c,0x21, // IMPORT_FROM 'confirm_text' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x23, // LOAD_CONST_STRING 'call' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x24, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x23, // IMPORT_FROM 'call' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x25, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x26, // IMPORT_NAME 'apps.common' + 0x1c,0x25, // IMPORT_FROM 'paths' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x27, // LOAD_CONST_STRING 'get_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x28, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x27, // IMPORT_FROM 'get_keychain' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x10,0x1e, // LOAD_CONST_STRING 'ed25519' + 0x12,0x42, // LOAD_GLOBAL 'SCHEMA_SLIP18' + 0x12,0x43, // LOAD_GLOBAL 'SCHEMA_SLIP26' + 0x2b,0x02, // BUILD_LIST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc9, // STORE_FAST 9 + 0xb7, // LOAD_FAST 7 + 0x14,0x29, // LOAD_METHOD 'validate_path' + 0xb9, // LOAD_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'address_n' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x14,0x2b, // LOAD_METHOD 'derive' + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0x14,0x2c, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0xcb, // STORE_FAST 11 + 0xb3, // LOAD_FAST 3 + 0x14,0x2d, // LOAD_METHOD 'publickey' + 0xbb, // LOAD_FAST 11 + 0x36,0x01, // CALL_METHOD 1 + 0xcc, // STORE_FAST 12 + 0xb1, // LOAD_FAST 1 + 0x14,0x2e, // LOAD_METHOD 'is_set' + 0xb1, // LOAD_FAST 1 + 0x13,0x2f, // LOAD_ATTR 'APP_MISC_COSI_COMMITMENT' + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x5d, // POP_JUMP_IF_TRUE 29 + 0xb2, // LOAD_FAST 2 + 0x14,0x30, // LOAD_METHOD 'commit' + 0x36,0x00, // CALL_METHOD 0 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xcd, // STORE_FAST 13 + 0xce, // STORE_FAST 14 + 0xb1, // LOAD_FAST 1 + 0x14,0x31, // LOAD_METHOD 'set' + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'APP_MISC_COSI_NONCE' + 0xbd, // LOAD_FAST 13 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x31, // LOAD_METHOD 'set' + 0xb1, // LOAD_FAST 1 + 0x13,0x2f, // LOAD_ATTR 'APP_MISC_COSI_COMMITMENT' + 0xbe, // LOAD_FAST 14 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x13, // LOAD_METHOD 'get' + 0xb1, // LOAD_FAST 1 + 0x13,0x2f, // LOAD_ATTR 'APP_MISC_COSI_COMMITMENT' + 0x36,0x01, // CALL_METHOD 1 + 0xce, // STORE_FAST 14 + 0xbe, // LOAD_FAST 14 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x47, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb6, // LOAD_FAST 6 + 0x12,0x04, // LOAD_GLOBAL 'CosiCommitment' + 0x10,0x33, // LOAD_CONST_STRING 'commitment' + 0xbe, // LOAD_FAST 14 + 0x10,0x34, // LOAD_CONST_STRING 'pubkey' + 0xbc, // LOAD_FAST 12 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x12,0x05, // LOAD_GLOBAL 'CosiSign' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xcf, // STORE_FAST 15 + 0xbf, // LOAD_FAST 15 + 0x13,0x2a, // LOAD_ATTR 'address_n' + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'address_n' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x08, // LOAD_GLOBAL 'DataError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x0f, // LOAD_GLOBAL '_decode_path' + 0xbf, // LOAD_FAST 15 + 0x13,0x2a, // LOAD_ATTR 'address_n' + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x10, // STORE_FAST_N 16 + 0xb5, // LOAD_FAST 5 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x10,0x35, // LOAD_CONST_STRING 'COSI KEYS' + 0xb7, // LOAD_FAST 7 + 0x14,0x36, // LOAD_METHOD 'address_n_to_str' + 0xbf, // LOAD_FAST 15 + 0x13,0x2a, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0x24,0x10, // LOAD_FAST_N 16 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x10,0x37, // LOAD_CONST_STRING 'cosi_sign' + 0x10,0x38, // LOAD_CONST_STRING 'COSI DATA' + 0xbf, // LOAD_FAST 15 + 0x13,0x39, // LOAD_ATTR 'data' + 0x10,0x3a, // LOAD_CONST_STRING 'br_code' + 0x12,0x02, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x3b, // LOAD_ATTR 'ProtectCall' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x13, // LOAD_METHOD 'get' + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'APP_MISC_COSI_NONCE' + 0x36,0x01, // CALL_METHOD 1 + 0xcd, // STORE_FAST 13 + 0xb1, // LOAD_FAST 1 + 0x14,0x3c, // LOAD_METHOD 'delete' + 0xb1, // LOAD_FAST 1 + 0x13,0x2f, // LOAD_ATTR 'APP_MISC_COSI_COMMITMENT' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x3c, // LOAD_METHOD 'delete' + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'APP_MISC_COSI_NONCE' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xbd, // LOAD_FAST 13 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x47, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x14,0x3d, // LOAD_METHOD 'sign' + 0xbb, // LOAD_FAST 11 + 0xbf, // LOAD_FAST 15 + 0x13,0x39, // LOAD_ATTR 'data' + 0xbd, // LOAD_FAST 13 + 0xbf, // LOAD_FAST 15 + 0x13,0x3e, // LOAD_ATTR 'global_commitment' + 0xbf, // LOAD_FAST 15 + 0x13,0x3f, // LOAD_ATTR 'global_pubkey' + 0x36,0x05, // CALL_METHOD 5 + 0x26,0x11, // STORE_FAST_N 17 + 0x12,0x06, // LOAD_GLOBAL 'CosiSignature' + 0x10,0x40, // LOAD_CONST_STRING 'signature' + 0x24,0x11, // LOAD_FAST_N 17 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_misc_cosi_commit_cosi_commit = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_misc_cosi_commit_cosi_commit, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 379, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 25, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_apps_misc_cosi_commit_cosi_commit + 5, + .line_info_top = fun_data_apps_misc_cosi_commit_cosi_commit + 45, + .opcodes = fun_data_apps_misc_cosi_commit_cosi_commit + 45, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_misc_cosi_commit__lt_module_gt_[] = { + &raw_code_apps_misc_cosi_commit__decode_path, + &raw_code_apps_misc_cosi_commit_cosi_commit, +}; + +static const mp_raw_code_t raw_code_apps_misc_cosi_commit__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_misc_cosi_commit__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 121, + #endif + .children = (void *)&children_apps_misc_cosi_commit__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_misc_cosi_commit__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_misc_cosi_commit__lt_module_gt_ + 15, + .opcodes = fun_data_apps_misc_cosi_commit__lt_module_gt_ + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_misc_cosi_commit[73] = { + MP_QSTR_apps_slash_misc_slash_cosi_commit_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_CosiCommitment, + MP_QSTR_CosiSign, + MP_QSTR_CosiSignature, + MP_QSTR_trezor_dot_messages, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_PathSchema, + MP_QSTR_unharden, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_parse, + MP_QSTR_slip44_id, + MP_QSTR__decode_path, + MP_QSTR_bootloader, + MP_QSTR_firmware, + MP_QSTR_match, + MP_QSTR_get, + MP_QSTR_format, + MP_QSTR_to_bytes, + MP_QSTR_little, + MP_QSTR__brace_open__brace_close__space__brace_open__brace_close_, + MP_QSTR_decode, + MP_QSTR_cosi_commit, + MP_QSTR_storage_dot_cache, + MP_QSTR_cache, + MP_QSTR_cosi, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_ed25519, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_confirm_blob, + MP_QSTR_confirm_text, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_call, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_get_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_validate_path, + MP_QSTR_address_n, + MP_QSTR_derive, + MP_QSTR_private_key, + MP_QSTR_publickey, + MP_QSTR_is_set, + MP_QSTR_APP_MISC_COSI_COMMITMENT, + MP_QSTR_commit, + MP_QSTR_set, + MP_QSTR_APP_MISC_COSI_NONCE, + MP_QSTR_commitment, + MP_QSTR_pubkey, + MP_QSTR_COSI_space_KEYS, + MP_QSTR_address_n_to_str, + MP_QSTR_cosi_sign, + MP_QSTR_COSI_space_DATA, + MP_QSTR_data, + MP_QSTR_br_code, + MP_QSTR_ProtectCall, + MP_QSTR_delete, + MP_QSTR_sign, + MP_QSTR_global_commitment, + MP_QSTR_global_pubkey, + MP_QSTR_signature, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_SCHEMA_SLIP18, + MP_QSTR_SCHEMA_SLIP26, + MP_QSTR_len, + MP_QSTR_all, + MP_QSTR_msg, + MP_QSTR_RuntimeError, + MP_QSTR__star_, +}; + +// constants +static const mp_obj_str_t const_obj_apps_misc_cosi_commit_0 = {{&mp_type_str}, 43525, 26, (const byte*)"\x6d\x2f\x31\x30\x30\x31\x38\x27\x2f\x61\x64\x64\x72\x65\x73\x73\x5f\x69\x6e\x64\x65\x78\x27\x2f\x2a\x27"}; +static const mp_obj_str_t const_obj_apps_misc_cosi_commit_1 = {{&mp_type_str}, 34802, 34, (const byte*)"\x6d\x2f\x31\x30\x30\x32\x36\x27\x2f\x5b\x30\x2d\x32\x31\x33\x39\x30\x36\x32\x31\x34\x33\x5d\x27\x2f\x5b\x30\x2d\x34\x5d\x27\x2f\x30\x27"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_misc_cosi_commit[7] = { + MP_ROM_PTR(&const_obj_apps_misc_cosi_commit_0), + MP_ROM_PTR(&const_obj_apps_misc_cosi_commit_1), + MP_ROM_QSTR(MP_QSTR_vendor_space_header), + MP_ROM_QSTR(MP_QSTR_T2T1_space__brace_open__brace_close__space__paren_open_old_hyphen_style_paren_close_), + MP_ROM_QSTR(MP_QSTR_External_space_definitions), + MP_ROM_QSTR(MP_QSTR_Mismatched_space_address_n), + MP_ROM_QSTR(MP_QSTR_cosi_confirm_key), +}; + +static const mp_frozen_module_t frozen_module_apps_misc_cosi_commit = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_misc_cosi_commit, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_misc_cosi_commit, + }, + .rc = &raw_code_apps_misc_cosi_commit__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_misc_get_ecdh_session_key +// - original source file: build/firmware/src/apps/misc/get_ecdh_session_key.mpy +// - frozen file name: apps/misc/get_ecdh_session_key.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/misc/get_ecdh_session_key.py, scope apps_misc_get_ecdh_session_key__lt_module_gt_ +static const byte fun_data_apps_misc_get_ecdh_session_key__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x80,0x07, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'get_ecdh_session_key' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_misc_get_ecdh_session_key__lt_module_gt_ +// frozen bytecode for file apps/misc/get_ecdh_session_key.py, scope apps_misc_get_ecdh_session_key_get_ecdh_session_key +static const byte fun_data_apps_misc_get_ecdh_session_key_get_ecdh_session_key[358] = { + 0xd9,0x50,0x48, // prelude + 0x02,0x22, // names: get_ecdh_session_key, msg + 0x80,0x0a,0x2b,0x2b,0x4b,0x2b,0x4b,0x75,0x60,0x24,0x24,0x48,0x2b,0x65,0x31,0x21,0x27,0x6b,0x40,0x2c,0x68,0x26,0x4c,0x32,0x26,0x4c,0x32,0x26,0x4c,0x29,0x26,0x26,0x73,0x68, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'ECDHSessionKey' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor.messages' + 0x1c,0x03, // IMPORT_FROM 'ECDHSessionKey' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'confirm_address' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x05, // IMPORT_FROM 'confirm_address' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.wire' + 0x1c,0x07, // IMPORT_FROM 'DataError' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'get_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x09, // IMPORT_FROM 'get_keychain' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'AlwaysMatchingSchema' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x0b, // IMPORT_FROM 'AlwaysMatchingSchema' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0d, // LOAD_CONST_STRING 'get_identity_path' + 0x10,0x0e, // LOAD_CONST_STRING 'serialize_identity' + 0x10,0x0f, // LOAD_CONST_STRING 'serialize_identity_without_proto' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x10, // IMPORT_NAME 'sign_identity' + 0x1c,0x0d, // IMPORT_FROM 'get_identity_path' + 0xc6, // STORE_FAST 6 + 0x1c,0x0e, // IMPORT_FROM 'serialize_identity' + 0xc7, // STORE_FAST 7 + 0x1c,0x0f, // IMPORT_FROM 'serialize_identity_without_proto' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'identity' + 0xc9, // STORE_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'peer_public_key' + 0xca, // STORE_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'ecdsa_curve_name' + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x14, // LOAD_CONST_STRING 'secp256k1' + 0xcb, // STORE_FAST 11 + 0xb4, // LOAD_FAST 4 + 0xbb, // LOAD_FAST 11 + 0xb5, // LOAD_FAST 5 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xcc, // STORE_FAST 12 + 0xb7, // LOAD_FAST 7 + 0xb9, // LOAD_FAST 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcd, // STORE_FAST 13 + 0xb9, // LOAD_FAST 9 + 0x13,0x15, // LOAD_ATTR 'proto' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb9, // LOAD_FAST 9 + 0x13,0x15, // LOAD_ATTR 'proto' + 0x14,0x16, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x42,0x42, // JUMP 2 + 0x10,0x11, // LOAD_CONST_STRING 'identity' + 0xce, // STORE_FAST 14 + 0xb2, // LOAD_FAST 2 + 0x10,0x17, // LOAD_CONST_STRING 'Decrypt {}' + 0x14,0x18, // LOAD_METHOD 'format' + 0xbe, // LOAD_FAST 14 + 0x36,0x01, // CALL_METHOD 1 + 0xb8, // LOAD_FAST 8 + 0xb9, // LOAD_FAST 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x51, // LOAD_CONST_NONE + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0xbd, // LOAD_FAST 13 + 0xb9, // LOAD_FAST 9 + 0x13,0x19, // LOAD_ATTR 'index' + 0x45,0x01, // JUMP_IF_TRUE_OR_POP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x91, // LOAD_CONST_SMALL_INT 17 + 0x34,0x03, // CALL_FUNCTION 3 + 0xcf, // STORE_FAST 15 + 0xbc, // LOAD_FAST 12 + 0x14,0x1a, // LOAD_METHOD 'derive' + 0xbf, // LOAD_FAST 15 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x10, // STORE_FAST_N 16 + 0xbb, // LOAD_FAST 11 + 0x10,0x14, // LOAD_CONST_STRING 'secp256k1' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5e, // POP_JUMP_IF_FALSE 30 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x14, // LOAD_CONST_STRING 'secp256k1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1b, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x14, // IMPORT_FROM 'secp256k1' + 0x26,0x11, // STORE_FAST_N 17 + 0x59, // POP_TOP + 0x24,0x11, // LOAD_FAST_N 17 + 0x14,0x1c, // LOAD_METHOD 'multiply' + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x1d, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0xba, // LOAD_FAST 10 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x12, // STORE_FAST_N 18 + 0x42,0xe6,0x80, // JUMP 102 + 0xbb, // LOAD_FAST 11 + 0x10,0x1e, // LOAD_CONST_STRING 'nist256p1' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5e, // POP_JUMP_IF_FALSE 30 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1e, // LOAD_CONST_STRING 'nist256p1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1b, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x1e, // IMPORT_FROM 'nist256p1' + 0x26,0x13, // STORE_FAST_N 19 + 0x59, // POP_TOP + 0x24,0x13, // LOAD_FAST_N 19 + 0x14,0x1c, // LOAD_METHOD 'multiply' + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x1d, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0xba, // LOAD_FAST 10 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x12, // STORE_FAST_N 18 + 0x42,0xc2,0x80, // JUMP 66 + 0xbb, // LOAD_FAST 11 + 0x10,0x1f, // LOAD_CONST_STRING 'curve25519' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x74, // POP_JUMP_IF_FALSE 52 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1f, // LOAD_CONST_STRING 'curve25519' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1b, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x1f, // IMPORT_FROM 'curve25519' + 0x26,0x14, // STORE_FAST_N 20 + 0x59, // POP_TOP + 0xba, // LOAD_FAST 10 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x24,0x14, // LOAD_FAST_N 20 + 0x14,0x1c, // LOAD_METHOD 'multiply' + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x1d, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0xba, // LOAD_FAST 10 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x36,0x02, // CALL_METHOD 2 + 0xf2, // BINARY_OP 27 __add__ + 0x26,0x12, // STORE_FAST_N 18 + 0x42,0x48, // JUMP 8 + 0xb3, // LOAD_FAST 3 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xbb, // LOAD_FAST 11 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x10,0x20, // LOAD_CONST_STRING 'session_key' + 0x24,0x12, // LOAD_FAST_N 18 + 0x10,0x21, // LOAD_CONST_STRING 'public_key' + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x21, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_misc_get_ecdh_session_key_get_ecdh_session_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_misc_get_ecdh_session_key_get_ecdh_session_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 358, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 28, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_misc_get_ecdh_session_key_get_ecdh_session_key + 5, + .line_info_top = fun_data_apps_misc_get_ecdh_session_key_get_ecdh_session_key + 39, + .opcodes = fun_data_apps_misc_get_ecdh_session_key_get_ecdh_session_key + 39, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_misc_get_ecdh_session_key__lt_module_gt_[] = { + &raw_code_apps_misc_get_ecdh_session_key_get_ecdh_session_key, +}; + +static const mp_raw_code_t raw_code_apps_misc_get_ecdh_session_key__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_misc_get_ecdh_session_key__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_misc_get_ecdh_session_key__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_misc_get_ecdh_session_key__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_misc_get_ecdh_session_key__lt_module_gt_ + 6, + .opcodes = fun_data_apps_misc_get_ecdh_session_key__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_misc_get_ecdh_session_key[35] = { + MP_QSTR_apps_slash_misc_slash_get_ecdh_session_key_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_get_ecdh_session_key, + MP_QSTR_ECDHSessionKey, + MP_QSTR_trezor_dot_messages, + MP_QSTR_confirm_address, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_get_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_AlwaysMatchingSchema, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_get_identity_path, + MP_QSTR_serialize_identity, + MP_QSTR_serialize_identity_without_proto, + MP_QSTR_sign_identity, + MP_QSTR_identity, + MP_QSTR_peer_public_key, + MP_QSTR_ecdsa_curve_name, + MP_QSTR_secp256k1, + MP_QSTR_proto, + MP_QSTR_upper, + MP_QSTR_Decrypt_space__brace_open__brace_close_, + MP_QSTR_format, + MP_QSTR_index, + MP_QSTR_derive, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_multiply, + MP_QSTR_private_key, + MP_QSTR_nist256p1, + MP_QSTR_curve25519, + MP_QSTR_session_key, + MP_QSTR_public_key, + MP_QSTR_msg, +}; + +// constants +static const mp_obj_str_t const_obj_apps_misc_get_ecdh_session_key_0 = {{&mp_type_str}, 46361, 44, (const byte*)"\x43\x75\x72\x76\x65\x32\x35\x35\x31\x39\x20\x70\x75\x62\x6c\x69\x63\x20\x6b\x65\x79\x20\x73\x68\x6f\x75\x6c\x64\x20\x73\x74\x61\x72\x74\x20\x77\x69\x74\x68\x20\x30\x78\x34\x30"}; +static const mp_obj_str_t const_obj_apps_misc_get_ecdh_session_key_1 = {{&mp_type_bytes}, 46497, 1, (const byte*)"\x04"}; +static const mp_obj_str_t const_obj_apps_misc_get_ecdh_session_key_2 = {{&mp_type_str}, 48940, 28, (const byte*)"\x55\x6e\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x63\x75\x72\x76\x65\x20\x66\x6f\x72\x20\x45\x43\x44\x48\x3a\x20"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_misc_get_ecdh_session_key[3] = { + MP_ROM_PTR(&const_obj_apps_misc_get_ecdh_session_key_0), + MP_ROM_PTR(&const_obj_apps_misc_get_ecdh_session_key_1), + MP_ROM_PTR(&const_obj_apps_misc_get_ecdh_session_key_2), +}; + +static const mp_frozen_module_t frozen_module_apps_misc_get_ecdh_session_key = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_misc_get_ecdh_session_key, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_misc_get_ecdh_session_key, + }, + .rc = &raw_code_apps_misc_get_ecdh_session_key__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_misc_get_entropy +// - original source file: build/firmware/src/apps/misc/get_entropy.mpy +// - frozen file name: apps/misc/get_entropy.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/misc/get_entropy.py, scope apps_misc_get_entropy__lt_module_gt_ +static const byte fun_data_apps_misc_get_entropy__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'get_entropy' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_misc_get_entropy__lt_module_gt_ +// frozen bytecode for file apps/misc/get_entropy.py, scope apps_misc_get_entropy_get_entropy +static const byte fun_data_apps_misc_get_entropy_get_entropy[110] = { + 0xe9,0x40,0x1e, // prelude + 0x02,0x10, // names: get_entropy, msg + 0x80,0x07,0x2b,0x2b,0x2b,0x4b,0x43,0x22,0x22,0x24,0x6a,0x2b,0x48, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'random' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x03, // IMPORT_FROM 'random' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.enums' + 0x1c,0x05, // IMPORT_FROM 'ButtonRequestType' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'Entropy' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.messages' + 0x1c,0x07, // IMPORT_FROM 'Entropy' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'confirm_action' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x09, // IMPORT_FROM 'confirm_action' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x10,0x02, // LOAD_CONST_STRING 'get_entropy' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x10,0x0b, // LOAD_CONST_STRING 'br_code' + 0xb2, // LOAD_FAST 2 + 0x13,0x0c, // LOAD_ATTR 'ProtectCall' + 0x34,0x82,0x04, // CALL_FUNCTION 260 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x11, // LOAD_GLOBAL 'min' + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'size' + 0x22,0x88,0x00, // LOAD_CONST_SMALL_INT 1024 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x14,0x0e, // LOAD_METHOD 'bytes' + 0xb5, // LOAD_FAST 5 + 0x52, // LOAD_CONST_TRUE + 0x36,0x02, // CALL_METHOD 2 + 0xc6, // STORE_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x10,0x0f, // LOAD_CONST_STRING 'entropy' + 0xb6, // LOAD_FAST 6 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_misc_get_entropy_get_entropy = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_misc_get_entropy_get_entropy, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 110, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_misc_get_entropy_get_entropy + 5, + .line_info_top = fun_data_apps_misc_get_entropy_get_entropy + 18, + .opcodes = fun_data_apps_misc_get_entropy_get_entropy + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_misc_get_entropy__lt_module_gt_[] = { + &raw_code_apps_misc_get_entropy_get_entropy, +}; + +static const mp_raw_code_t raw_code_apps_misc_get_entropy__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_misc_get_entropy__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_misc_get_entropy__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_misc_get_entropy__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_misc_get_entropy__lt_module_gt_ + 6, + .opcodes = fun_data_apps_misc_get_entropy__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_misc_get_entropy[18] = { + MP_QSTR_apps_slash_misc_slash_get_entropy_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_get_entropy, + MP_QSTR_random, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_Entropy, + MP_QSTR_trezor_dot_messages, + MP_QSTR_confirm_action, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_br_code, + MP_QSTR_ProtectCall, + MP_QSTR_size, + MP_QSTR_bytes, + MP_QSTR_entropy, + MP_QSTR_msg, + MP_QSTR_min, +}; + +// constants +static const mp_obj_str_t const_obj_apps_misc_get_entropy_1 = {{&mp_type_str}, 15709, 35, (const byte*)"\x44\x6f\x20\x79\x6f\x75\x20\x72\x65\x61\x6c\x6c\x79\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x73\x65\x6e\x64\x20\x65\x6e\x74\x72\x6f\x70\x79\x3f"}; +static const mp_obj_str_t const_obj_apps_misc_get_entropy_2 = {{&mp_type_str}, 51028, 45, (const byte*)"\x43\x6f\x6e\x74\x69\x6e\x75\x65\x20\x6f\x6e\x6c\x79\x20\x69\x66\x20\x79\x6f\x75\x20\x6b\x6e\x6f\x77\x20\x77\x68\x61\x74\x20\x79\x6f\x75\x20\x61\x72\x65\x20\x64\x6f\x69\x6e\x67\x21"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_misc_get_entropy[3] = { + MP_ROM_QSTR(MP_QSTR_Confirm_space_entropy), + MP_ROM_PTR(&const_obj_apps_misc_get_entropy_1), + MP_ROM_PTR(&const_obj_apps_misc_get_entropy_2), +}; + +static const mp_frozen_module_t frozen_module_apps_misc_get_entropy = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_misc_get_entropy, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_misc_get_entropy, + }, + .rc = &raw_code_apps_misc_get_entropy__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_misc_get_firmware_hash +// - original source file: build/firmware/src/apps/misc/get_firmware_hash.mpy +// - frozen file name: apps/misc/get_firmware_hash.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/misc/get_firmware_hash.py, scope apps_misc_get_firmware_hash__lt_module_gt_ +static const byte fun_data_apps_misc_get_firmware_hash__lt_module_gt_[22] = { + 0x00,0x0e, // prelude + 0x01, // names: + 0x40,0x60,0x20,0x63,0x84,0x14, // code info + 0x51, // LOAD_CONST_NONE + 0x17,0x12, // STORE_GLOBAL '_progress_obj' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'get_firmware_hash' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x10, // STORE_NAME '_render_progress' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_misc_get_firmware_hash__lt_module_gt_ +// frozen bytecode for file apps/misc/get_firmware_hash.py, scope apps_misc_get_firmware_hash_get_firmware_hash +static const byte fun_data_apps_misc_get_firmware_hash_get_firmware_hash[135] = { + 0xf5,0x42,0x1e, // prelude + 0x02,0x13, // names: get_firmware_hash, msg + 0x80,0x0a,0x30,0x2b,0x2b,0x4b,0x26,0x20,0x45,0x24,0x54,0x55,0x44, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'wire' + 0x10,0x04, // LOAD_CONST_STRING 'workflow' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x05, // IMPORT_NAME 'trezor' + 0x1c,0x03, // IMPORT_FROM 'wire' + 0xc1, // STORE_FAST 1 + 0x1c,0x04, // IMPORT_FROM 'workflow' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'FirmwareHash' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.messages' + 0x1c,0x06, // IMPORT_FROM 'FirmwareHash' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'progress' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.ui.layouts.progress' + 0x1c,0x08, // IMPORT_FROM 'progress' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'firmware_hash' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'trezor.utils' + 0x1c,0x0a, // IMPORT_FROM 'firmware_hash' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x0c, // LOAD_METHOD 'close_others' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x34,0x00, // CALL_FUNCTION 0 + 0x17,0x12, // STORE_GLOBAL '_progress_obj' + 0x49,0x2b, // SETUP_FINALLY 43 + 0x48,0x0b, // SETUP_EXCEPT 11 + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'challenge' + 0x12,0x10, // LOAD_GLOBAL '_render_progress' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc6, // STORE_FAST 6 + 0x4a,0x1d, // POP_EXCEPT_JUMP 29 + 0x57, // DUP_TOP + 0x12,0x14, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0xc7, // STORE_FAST 7 + 0x49,0x0c, // SETUP_FINALLY 12 + 0xb1, // LOAD_FAST 1 + 0x14,0x0e, // LOAD_METHOD 'DataError' + 0x12,0x15, // LOAD_GLOBAL 'str' + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xc7, // STORE_FAST 7 + 0x28,0x07, // DELETE_FAST 7 + 0x5d, // END_FINALLY + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x17,0x12, // STORE_GLOBAL '_progress_obj' + 0x5d, // END_FINALLY + 0xb3, // LOAD_FAST 3 + 0x10,0x0f, // LOAD_CONST_STRING 'hash' + 0xb6, // LOAD_FAST 6 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_misc_get_firmware_hash_get_firmware_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_misc_get_firmware_hash_get_firmware_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 135, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 3, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_misc_get_firmware_hash_get_firmware_hash + 5, + .line_info_top = fun_data_apps_misc_get_firmware_hash_get_firmware_hash + 18, + .opcodes = fun_data_apps_misc_get_firmware_hash_get_firmware_hash + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_misc_get_firmware_hash__lt_module_gt_ +// frozen bytecode for file apps/misc/get_firmware_hash.py, scope apps_misc_get_firmware_hash__render_progress +static const byte fun_data_apps_misc_get_firmware_hash__render_progress[32] = { + 0x2a,0x0e, // prelude + 0x10,0x08,0x16, // names: _render_progress, progress, total + 0x80,0x1e,0x20,0x27, // code info + 0x12,0x12, // LOAD_GLOBAL '_progress_obj' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x12, // LOAD_GLOBAL '_progress_obj' + 0x14,0x11, // LOAD_METHOD 'report' + 0x22,0x87,0x68, // LOAD_CONST_SMALL_INT 1000 + 0xb0, // LOAD_FAST 0 + 0xf4, // BINARY_OP 29 __mul__ + 0xb1, // LOAD_FAST 1 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_misc_get_firmware_hash__render_progress = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_misc_get_firmware_hash__render_progress, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_misc_get_firmware_hash__render_progress + 5, + .line_info_top = fun_data_apps_misc_get_firmware_hash__render_progress + 9, + .opcodes = fun_data_apps_misc_get_firmware_hash__render_progress + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_misc_get_firmware_hash__lt_module_gt_[] = { + &raw_code_apps_misc_get_firmware_hash_get_firmware_hash, + &raw_code_apps_misc_get_firmware_hash__render_progress, +}; + +static const mp_raw_code_t raw_code_apps_misc_get_firmware_hash__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_misc_get_firmware_hash__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_apps_misc_get_firmware_hash__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_misc_get_firmware_hash__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_misc_get_firmware_hash__lt_module_gt_ + 9, + .opcodes = fun_data_apps_misc_get_firmware_hash__lt_module_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_misc_get_firmware_hash[23] = { + MP_QSTR_apps_slash_misc_slash_get_firmware_hash_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_get_firmware_hash, + MP_QSTR_wire, + MP_QSTR_workflow, + MP_QSTR_trezor, + MP_QSTR_FirmwareHash, + MP_QSTR_trezor_dot_messages, + MP_QSTR_progress, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_progress, + MP_QSTR_firmware_hash, + MP_QSTR_trezor_dot_utils, + MP_QSTR_close_others, + MP_QSTR_challenge, + MP_QSTR_DataError, + MP_QSTR_hash, + MP_QSTR__render_progress, + MP_QSTR_report, + MP_QSTR__progress_obj, + MP_QSTR_msg, + MP_QSTR_ValueError, + MP_QSTR_str, + MP_QSTR_total, +}; + +static const mp_frozen_module_t frozen_module_apps_misc_get_firmware_hash = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_misc_get_firmware_hash, + .obj_table = NULL, + }, + .rc = &raw_code_apps_misc_get_firmware_hash__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_misc_sign_identity +// - original source file: build/firmware/src/apps/misc/sign_identity.mpy +// - frozen file name: apps/misc/sign_identity.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/misc/sign_identity.py, scope apps_misc_sign_identity__lt_module_gt_ +static const byte fun_data_apps_misc_sign_identity__lt_module_gt_[62] = { + 0x08,0x1c, // prelude + 0x01, // names: + 0x40,0x4c,0x4c,0x80,0x09,0x84,0x35,0x84,0x0f,0x84,0x08,0x84,0x0a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x02, // IMPORT_FROM 'sha256' + 0x16,0x02, // STORE_NAME 'sha256' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'coininfo' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'apps.common' + 0x1c,0x04, // IMPORT_FROM 'coininfo' + 0x16,0x04, // STORE_NAME 'coininfo' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x06, // STORE_NAME 'sign_identity' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x1f, // STORE_NAME 'serialize_identity' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x28, // STORE_NAME 'serialize_identity_without_proto' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x29, // STORE_NAME 'get_identity_path' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x32, // STORE_NAME 'sign_challenge' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_misc_sign_identity__lt_module_gt_ +// frozen bytecode for file apps/misc/sign_identity.py, scope apps_misc_sign_identity_sign_identity +static const byte fun_data_apps_misc_sign_identity_sign_identity[277] = { + 0xd9,0x50,0x44, // prelude + 0x06,0x40, // names: sign_identity, msg + 0x80,0x10,0x2b,0x4b,0x2b,0x4b,0x24,0x24,0x24,0x24,0x48,0x2b,0x66,0x2d,0x22,0x6c,0x20,0x2d,0x47,0x29,0x46,0x4c,0x23,0x27,0x28,0x2c,0x47,0x26,0x45,0x43,0x8d,0x08, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'SignedIdentity' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.messages' + 0x1c,0x07, // IMPORT_FROM 'SignedIdentity' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'confirm_sign_identity' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x09, // IMPORT_FROM 'confirm_sign_identity' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'get_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x0b, // IMPORT_FROM 'get_keychain' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'AlwaysMatchingSchema' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x0d, // IMPORT_FROM 'AlwaysMatchingSchema' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'identity' + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x13,0x10, // LOAD_ATTR 'proto' + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'challenge_visual' + 0xc7, // STORE_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'challenge_hidden' + 0xc8, // STORE_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'ecdsa_curve_name' + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x14, // LOAD_CONST_STRING 'secp256k1' + 0xc9, // STORE_FAST 9 + 0xb3, // LOAD_FAST 3 + 0xb9, // LOAD_FAST 9 + 0xb4, // LOAD_FAST 4 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xca, // STORE_FAST 10 + 0x12,0x1f, // LOAD_GLOBAL 'serialize_identity' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcb, // STORE_FAST 11 + 0xb6, // LOAD_FAST 6 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb6, // LOAD_FAST 6 + 0x14,0x15, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x42,0x42, // JUMP 2 + 0x10,0x0f, // LOAD_CONST_STRING 'identity' + 0xcc, // STORE_FAST 12 + 0xb2, // LOAD_FAST 2 + 0xbc, // LOAD_FAST 12 + 0x12,0x28, // LOAD_GLOBAL 'serialize_identity_without_proto' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb7, // LOAD_FAST 7 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x29, // LOAD_GLOBAL 'get_identity_path' + 0xbb, // LOAD_FAST 11 + 0xb5, // LOAD_FAST 5 + 0x13,0x16, // LOAD_ATTR 'index' + 0x45,0x01, // JUMP_IF_TRUE_OR_POP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x8d, // LOAD_CONST_SMALL_INT 13 + 0x34,0x03, // CALL_FUNCTION 3 + 0xcd, // STORE_FAST 13 + 0xba, // LOAD_FAST 10 + 0x14,0x17, // LOAD_METHOD 'derive' + 0xbd, // LOAD_FAST 13 + 0x36,0x01, // CALL_METHOD 1 + 0xce, // STORE_FAST 14 + 0x12,0x04, // LOAD_GLOBAL 'coininfo' + 0x14,0x18, // LOAD_METHOD 'by_name' + 0x10,0x19, // LOAD_CONST_STRING 'Bitcoin' + 0x36,0x01, // CALL_METHOD 1 + 0xcf, // STORE_FAST 15 + 0xb9, // LOAD_FAST 9 + 0x10,0x14, // LOAD_CONST_STRING 'secp256k1' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xbe, // LOAD_FAST 14 + 0x14,0x1a, // LOAD_METHOD 'address' + 0xbf, // LOAD_FAST 15 + 0x13,0x1b, // LOAD_ATTR 'address_type' + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x10, // STORE_FAST_N 16 + 0x42,0x43, // JUMP 3 + 0x51, // LOAD_CONST_NONE + 0x26,0x10, // STORE_FAST_N 16 + 0xbe, // LOAD_FAST 14 + 0x14,0x1c, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x11, // STORE_FAST_N 17 + 0x24,0x11, // LOAD_FAST_N 17 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x24,0x11, // LOAD_FAST_N 17 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xf2, // BINARY_OP 27 __add__ + 0x26,0x11, // STORE_FAST_N 17 + 0xbe, // LOAD_FAST 14 + 0x14,0x1d, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x12, // STORE_FAST_N 18 + 0xb6, // LOAD_FAST 6 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xdd, // BINARY_OP 6 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb6, // LOAD_FAST 6 + 0x26,0x13, // STORE_FAST_N 19 + 0x42,0x43, // JUMP 3 + 0xbf, // LOAD_FAST 15 + 0x26,0x13, // STORE_FAST_N 19 + 0x12,0x32, // LOAD_GLOBAL 'sign_challenge' + 0x24,0x12, // LOAD_FAST_N 18 + 0xb8, // LOAD_FAST 8 + 0xb7, // LOAD_FAST 7 + 0x24,0x13, // LOAD_FAST_N 19 + 0xb9, // LOAD_FAST 9 + 0x34,0x05, // CALL_FUNCTION 5 + 0x26,0x14, // STORE_FAST_N 20 + 0xb1, // LOAD_FAST 1 + 0x10,0x1a, // LOAD_CONST_STRING 'address' + 0x24,0x10, // LOAD_FAST_N 16 + 0x10,0x1c, // LOAD_CONST_STRING 'public_key' + 0x24,0x11, // LOAD_FAST_N 17 + 0x10,0x1e, // LOAD_CONST_STRING 'signature' + 0x24,0x14, // LOAD_FAST_N 20 + 0x34,0x86,0x00, // CALL_FUNCTION 768 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_misc_sign_identity_sign_identity = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_misc_sign_identity_sign_identity, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 277, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 28, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_misc_sign_identity_sign_identity + 5, + .line_info_top = fun_data_apps_misc_sign_identity_sign_identity + 37, + .opcodes = fun_data_apps_misc_sign_identity_sign_identity + 37, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_misc_sign_identity__lt_module_gt_ +// frozen bytecode for file apps/misc/sign_identity.py, scope apps_misc_sign_identity_serialize_identity +static const byte fun_data_apps_misc_sign_identity_serialize_identity[86] = { + 0x21,0x1e, // prelude + 0x1f,0x0f, // names: serialize_identity, identity + 0x80,0x45,0x23,0x25,0x29,0x25,0x29,0x25,0x26,0x25,0x29,0x25,0x26, // code info + 0x10,0x20, // LOAD_CONST_STRING '' + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'proto' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'proto' + 0x10,0x21, // LOAD_CONST_STRING '://' + 0xf2, // BINARY_OP 27 __add__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'user' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'user' + 0x10,0x23, // LOAD_CONST_STRING '@' + 0xf2, // BINARY_OP 27 __add__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'host' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'host' + 0xe5, // BINARY_OP 14 __iadd__ + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'port' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb1, // LOAD_FAST 1 + 0x10,0x26, // LOAD_CONST_STRING ':' + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'port' + 0xf2, // BINARY_OP 27 __add__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'path' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'path' + 0xe5, // BINARY_OP 14 __iadd__ + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_misc_sign_identity_serialize_identity = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_misc_sign_identity_serialize_identity, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 86, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_misc_sign_identity_serialize_identity + 4, + .line_info_top = fun_data_apps_misc_sign_identity_serialize_identity + 17, + .opcodes = fun_data_apps_misc_sign_identity_serialize_identity + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_misc_sign_identity__lt_module_gt_ +// frozen bytecode for file apps/misc/sign_identity.py, scope apps_misc_sign_identity_serialize_identity_without_proto +static const byte fun_data_apps_misc_sign_identity_serialize_identity_without_proto[30] = { + 0x21,0x10, // prelude + 0x28,0x0f, // names: serialize_identity_without_proto, identity + 0x80,0x54,0x24,0x24,0x26,0x24, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'proto' + 0xc1, // STORE_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x10, // STORE_ATTR 'proto' + 0x12,0x1f, // LOAD_GLOBAL 'serialize_identity' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x10, // STORE_ATTR 'proto' + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_misc_sign_identity_serialize_identity_without_proto = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_misc_sign_identity_serialize_identity_without_proto, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_misc_sign_identity_serialize_identity_without_proto + 4, + .line_info_top = fun_data_apps_misc_sign_identity_serialize_identity_without_proto + 10, + .opcodes = fun_data_apps_misc_sign_identity_serialize_identity_without_proto + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_misc_sign_identity__lt_module_gt_ +// frozen bytecode for file apps/misc/sign_identity.py, scope apps_misc_sign_identity_get_identity_path +static const byte fun_data_apps_misc_sign_identity_get_identity_path[83] = { + 0x6b,0x13, // prelude + 0x29,0x0f,0x16,0x41, // names: get_identity_path, identity, index, num + 0x80,0x5c,0x50,0x4c,0x55,0x06, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2a, // LOAD_CONST_STRING 'pack' + 0x10,0x2b, // LOAD_CONST_STRING 'unpack' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x2c, // IMPORT_NAME 'ustruct' + 0x1c,0x2a, // IMPORT_FROM 'pack' + 0xc3, // STORE_FAST 3 + 0x1c,0x2b, // IMPORT_FROM 'unpack' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2d, // LOAD_CONST_STRING 'HARDENED' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x2d, // IMPORT_FROM 'HARDENED' + 0x27,0x06, // STORE_DEREF 6 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'sha256' + 0xb3, // LOAD_FAST 3 + 0x10,0x2e, // LOAD_CONST_STRING ', *, * + 0x80,0x62, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x09, // FOR_ITER 9 + 0xc2, // STORE_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0xb2, // LOAD_FAST 2 + 0xed, // BINARY_OP 22 __or__ + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x35, // JUMP -11 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_misc_sign_identity_get_identity_path__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_misc_sign_identity_get_identity_path__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 63, + .line_info = fun_data_apps_misc_sign_identity_get_identity_path__lt_listcomp_gt_ + 5, + .line_info_top = fun_data_apps_misc_sign_identity_get_identity_path__lt_listcomp_gt_ + 7, + .opcodes = fun_data_apps_misc_sign_identity_get_identity_path__lt_listcomp_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_misc_sign_identity_get_identity_path[] = { + &raw_code_apps_misc_sign_identity_get_identity_path__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_apps_misc_sign_identity_get_identity_path = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_misc_sign_identity_get_identity_path, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 83, + #endif + .children = (void *)&children_apps_misc_sign_identity_get_identity_path, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_misc_sign_identity_get_identity_path + 6, + .line_info_top = fun_data_apps_misc_sign_identity_get_identity_path + 11, + .opcodes = fun_data_apps_misc_sign_identity_get_identity_path + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_misc_sign_identity__lt_module_gt_ +// frozen bytecode for file apps/misc/sign_identity.py, scope apps_misc_sign_identity_sign_challenge +static const byte fun_data_apps_misc_sign_identity_sign_challenge[296] = { + 0x81,0x14,0x50, // prelude + 0x32,0x42,0x12,0x11,0x43,0x44, // names: sign_challenge, seckey, challenge_hidden, challenge_visual, sigtype, curve + 0x80,0x6c,0x4b,0x4b,0x26,0x25,0x26,0x26,0x26,0x25,0x26,0x26,0x4c,0x24,0x4b,0x20,0x29,0x4f,0x48,0x46,0x26,0x4b,0x2a,0x26,0x4b,0x2a,0x26,0x4b,0x4a,0x46,0x26,0x27,0x26,0x4c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x33, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x34, // IMPORT_NAME 'trezor.wire' + 0x1c,0x33, // IMPORT_FROM 'DataError' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x35, // LOAD_CONST_STRING 'message_digest' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x36, // IMPORT_NAME 'apps.common.signverify' + 0x1c,0x35, // IMPORT_FROM 'message_digest' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x37, // LOAD_CONST_STRING 'gpg' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb1, // LOAD_FAST 1 + 0xc7, // STORE_FAST 7 + 0x42,0xe4,0x80, // JUMP 100 + 0xb3, // LOAD_FAST 3 + 0x10,0x38, // LOAD_CONST_STRING 'signify' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb4, // LOAD_FAST 4 + 0x10,0x39, // LOAD_CONST_STRING 'ed25519' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb5, // LOAD_FAST 5 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0xc7, // STORE_FAST 7 + 0x42,0xcd,0x80, // JUMP 77 + 0xb3, // LOAD_FAST 3 + 0x10,0x3a, // LOAD_CONST_STRING 'ssh' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0xb4, // LOAD_FAST 4 + 0x10,0x39, // LOAD_CONST_STRING 'ed25519' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'sha256' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x30, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc7, // STORE_FAST 7 + 0x42,0x42, // JUMP 2 + 0xb1, // LOAD_FAST 1 + 0xc7, // STORE_FAST 7 + 0x42,0x71, // JUMP 49 + 0x12,0x45, // LOAD_GLOBAL 'isinstance' + 0xb3, // LOAD_FAST 3 + 0x12,0x04, // LOAD_GLOBAL 'coininfo' + 0x13,0x3b, // LOAD_ATTR 'CoinInfo' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0x12,0x02, // LOAD_GLOBAL 'sha256' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x30, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x12,0x02, // LOAD_GLOBAL 'sha256' + 0xb2, // LOAD_FAST 2 + 0x14,0x2f, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x30, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xf2, // BINARY_OP 27 __add__ + 0xc8, // STORE_FAST 8 + 0xb6, // LOAD_FAST 6 + 0xb3, // LOAD_FAST 3 + 0xb8, // LOAD_FAST 8 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc7, // STORE_FAST 7 + 0x42,0x46, // JUMP 6 + 0xb5, // LOAD_FAST 5 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x10,0x14, // LOAD_CONST_STRING 'secp256k1' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x14, // LOAD_CONST_STRING 'secp256k1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x3c, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x14, // IMPORT_FROM 'secp256k1' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x14,0x3d, // LOAD_METHOD 'sign' + 0xb0, // LOAD_FAST 0 + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0xca, // STORE_FAST 10 + 0x42,0x7c, // JUMP 60 + 0xb4, // LOAD_FAST 4 + 0x10,0x3e, // LOAD_CONST_STRING 'nist256p1' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3e, // LOAD_CONST_STRING 'nist256p1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x3c, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x3e, // IMPORT_FROM 'nist256p1' + 0xcb, // STORE_FAST 11 + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0x14,0x3d, // LOAD_METHOD 'sign' + 0xb0, // LOAD_FAST 0 + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0xca, // STORE_FAST 10 + 0x42,0x61, // JUMP 33 + 0xb4, // LOAD_FAST 4 + 0x10,0x39, // LOAD_CONST_STRING 'ed25519' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x39, // LOAD_CONST_STRING 'ed25519' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x3c, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x39, // IMPORT_FROM 'ed25519' + 0xcc, // STORE_FAST 12 + 0x59, // POP_TOP + 0xbc, // LOAD_FAST 12 + 0x14,0x3d, // LOAD_METHOD 'sign' + 0xb0, // LOAD_FAST 0 + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0xca, // STORE_FAST 10 + 0x42,0x46, // JUMP 6 + 0xb5, // LOAD_FAST 5 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x10,0x39, // LOAD_CONST_STRING 'ed25519' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xba, // LOAD_FAST 10 + 0xf2, // BINARY_OP 27 __add__ + 0xca, // STORE_FAST 10 + 0x42,0x52, // JUMP 18 + 0xb3, // LOAD_FAST 3 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xdd, // BINARY_OP 6 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xba, // LOAD_FAST 10 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xf2, // BINARY_OP 27 __add__ + 0xca, // STORE_FAST 10 + 0x42,0x40, // JUMP 0 + 0xba, // LOAD_FAST 10 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_misc_sign_identity_sign_challenge = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_misc_sign_identity_sign_challenge, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 296, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 50, + .line_info = fun_data_apps_misc_sign_identity_sign_challenge + 9, + .line_info_top = fun_data_apps_misc_sign_identity_sign_challenge + 43, + .opcodes = fun_data_apps_misc_sign_identity_sign_challenge + 43, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_misc_sign_identity__lt_module_gt_[] = { + &raw_code_apps_misc_sign_identity_sign_identity, + &raw_code_apps_misc_sign_identity_serialize_identity, + &raw_code_apps_misc_sign_identity_serialize_identity_without_proto, + &raw_code_apps_misc_sign_identity_get_identity_path, + &raw_code_apps_misc_sign_identity_sign_challenge, +}; + +static const mp_raw_code_t raw_code_apps_misc_sign_identity__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_misc_sign_identity__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 62, + #endif + .children = (void *)&children_apps_misc_sign_identity__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_misc_sign_identity__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_misc_sign_identity__lt_module_gt_ + 16, + .opcodes = fun_data_apps_misc_sign_identity__lt_module_gt_ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_misc_sign_identity[71] = { + MP_QSTR_apps_slash_misc_slash_sign_identity_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_coininfo, + MP_QSTR_apps_dot_common, + MP_QSTR_sign_identity, + MP_QSTR_SignedIdentity, + MP_QSTR_trezor_dot_messages, + MP_QSTR_confirm_sign_identity, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_get_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_AlwaysMatchingSchema, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_identity, + MP_QSTR_proto, + MP_QSTR_challenge_visual, + MP_QSTR_challenge_hidden, + MP_QSTR_ecdsa_curve_name, + MP_QSTR_secp256k1, + MP_QSTR_upper, + MP_QSTR_index, + MP_QSTR_derive, + MP_QSTR_by_name, + MP_QSTR_Bitcoin, + MP_QSTR_address, + MP_QSTR_address_type, + MP_QSTR_public_key, + MP_QSTR_private_key, + MP_QSTR_signature, + MP_QSTR_serialize_identity, + MP_QSTR_, + MP_QSTR__colon__slash__slash_, + MP_QSTR_user, + MP_QSTR__at_sign_, + MP_QSTR_host, + MP_QSTR_port, + MP_QSTR__colon_, + MP_QSTR_path, + MP_QSTR_serialize_identity_without_proto, + MP_QSTR_get_identity_path, + MP_QSTR_pack, + MP_QSTR_unpack, + MP_QSTR_ustruct, + MP_QSTR_HARDENED, + MP_QSTR__lt_I, + MP_QSTR_encode, + MP_QSTR_digest, + MP_QSTR__lt_IIII, + MP_QSTR_sign_challenge, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_message_digest, + MP_QSTR_apps_dot_common_dot_signverify, + MP_QSTR_gpg, + MP_QSTR_signify, + MP_QSTR_ed25519, + MP_QSTR_ssh, + MP_QSTR_CoinInfo, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_sign, + MP_QSTR_nist256p1, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_msg, + MP_QSTR_num, + MP_QSTR_seckey, + MP_QSTR_sigtype, + MP_QSTR_curve, + MP_QSTR_isinstance, + MP_QSTR__star_, +}; + +// constants +static const mp_obj_str_t const_obj_apps_misc_sign_identity_0 = {{&mp_type_bytes}, 46501, 1, (const byte*)"\x00"}; +static const mp_rom_obj_tuple_t const_obj_apps_misc_sign_identity_1 = {{&mp_type_tuple}, 3, { + MP_ROM_QSTR(MP_QSTR_gpg), + MP_ROM_QSTR(MP_QSTR_signify), + MP_ROM_QSTR(MP_QSTR_ssh), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_misc_sign_identity_5 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_gpg), + MP_ROM_QSTR(MP_QSTR_ssh), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_misc_sign_identity[6] = { + MP_ROM_PTR(&const_obj_apps_misc_sign_identity_0), + MP_ROM_PTR(&const_obj_apps_misc_sign_identity_1), + MP_ROM_QSTR(MP_QSTR_Unsupported_space_curve), + MP_ROM_QSTR(MP_QSTR_Unsupported_space_sigtype), + MP_ROM_QSTR(MP_QSTR_Unknown_space_curve), + MP_ROM_PTR(&const_obj_apps_misc_sign_identity_5), +}; + +static const mp_frozen_module_t frozen_module_apps_misc_sign_identity = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_misc_sign_identity, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_misc_sign_identity, + }, + .rc = &raw_code_apps_misc_sign_identity__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin___init__ +// - original source file: build/firmware/src/apps/bitcoin/__init__.mpy +// - frozen file name: apps/bitcoin/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/__init__.py, scope apps_bitcoin___init____lt_module_gt_ +static const byte fun_data_apps_bitcoin___init____lt_module_gt_[5] = { + 0x00,0x02, // prelude + 0x01, // names: + // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 5, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin___init____lt_module_gt_ + 3, + .opcodes = fun_data_apps_bitcoin___init____lt_module_gt_ + 3, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin___init__[2] = { + MP_QSTR_apps_slash_bitcoin_slash___init___dot_py, + MP_QSTR__lt_module_gt_, +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps_bitcoin___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_addresses +// - original source file: build/firmware/src/apps/bitcoin/addresses.mpy +// - frozen file name: apps/bitcoin/addresses.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/addresses.py, scope apps_bitcoin_addresses__lt_module_gt_ +static const byte fun_data_apps_bitcoin_addresses__lt_module_gt_[191] = { + 0x10,0x46, // prelude + 0x01, // names: + 0x40,0x2c,0x2c,0x2c,0x4c,0x4c,0x32,0x52,0x80,0x08,0x88,0x48,0x84,0x08,0x84,0x0a,0x84,0x08,0x64,0x40,0x64,0x40,0x84,0x07,0x64,0x60,0x64,0x60,0x64,0x20,0x84,0x08,0x84,0x0f, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'base58' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x02, // IMPORT_FROM 'base58' + 0x16,0x02, // STORE_NAME 'base58' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x04, // IMPORT_FROM 'sha256' + 0x16,0x04, // STORE_NAME 'sha256' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'HashWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.utils' + 0x1c,0x06, // IMPORT_FROM 'HashWriter' + 0x16,0x06, // STORE_NAME 'HashWriter' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.wire' + 0x1c,0x08, // IMPORT_FROM 'ProcessError' + 0x16,0x08, // STORE_NAME 'ProcessError' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'address_type' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'apps.common' + 0x1c,0x0a, // IMPORT_FROM 'address_type' + 0x16,0x0a, // STORE_NAME 'address_type' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0c, // LOAD_CONST_STRING 'ecdsa_hash_pubkey' + 0x10,0x0d, // LOAD_CONST_STRING 'encode_bech32_address' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0e, // IMPORT_NAME 'common' + 0x1c,0x0c, // IMPORT_FROM 'ecdsa_hash_pubkey' + 0x16,0x0c, // STORE_NAME 'ecdsa_hash_pubkey' + 0x1c,0x0d, // IMPORT_FROM 'encode_bech32_address' + 0x16,0x0d, // STORE_NAME 'encode_bech32_address' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0f, // LOAD_CONST_STRING 'output_script_native_segwit' + 0x10,0x10, // LOAD_CONST_STRING 'write_output_script_multisig' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x11, // IMPORT_NAME 'scripts' + 0x1c,0x0f, // IMPORT_FROM 'output_script_native_segwit' + 0x16,0x0f, // STORE_NAME 'output_script_native_segwit' + 0x1c,0x10, // IMPORT_FROM 'write_output_script_multisig' + 0x16,0x10, // STORE_NAME 'write_output_script_multisig' + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x12, // STORE_NAME 'get_address' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x25, // STORE_NAME '_address_multisig_p2sh' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x28, // STORE_NAME '_address_multisig_p2wsh_in_p2sh' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x29, // STORE_NAME '_address_multisig_p2wsh' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x2a, // STORE_NAME 'address_pkh' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x2f, // STORE_NAME 'address_p2sh' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x30, // STORE_NAME 'address_p2wpkh_in_p2sh' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x31, // STORE_NAME '_address_p2wsh_in_p2sh' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x32, // STORE_NAME 'address_p2wpkh' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x33, // STORE_NAME '_address_p2wsh' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x34, // STORE_NAME '_address_p2tr' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x38, // STORE_NAME 'address_to_cashaddr' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x3e, // STORE_NAME 'address_short' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_addresses__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/addresses.py, scope apps_bitcoin_addresses_get_address +static const byte fun_data_apps_bitcoin_addresses_get_address[355] = { + 0xe8,0x05,0x5e, // prelude + 0x12,0x41,0x42,0x43,0x17, // names: get_address, script_type, coin, node, multisig + 0x80,0x1a,0x4b,0x50,0x46,0x43,0x46,0x2d,0x23,0x27,0x47,0x25,0x2a,0x28,0x27,0x22,0x27,0x67,0x29,0x28,0x27,0x42,0x27,0x2a,0x47,0x26,0x25,0x6c,0x47,0x27,0x2a,0x47,0x26,0x47,0x67,0x47,0x2c,0x47,0x26,0x25,0x6a,0x67, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'InputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'trezor.enums' + 0x1c,0x13, // IMPORT_FROM 'InputScriptType' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x15, // LOAD_CONST_STRING 'multisig_get_pubkeys' + 0x10,0x16, // LOAD_CONST_STRING 'multisig_pubkey_index' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x17, // IMPORT_NAME 'multisig' + 0x1c,0x15, // IMPORT_FROM 'multisig_get_pubkeys' + 0xc5, // STORE_FAST 5 + 0x1c,0x16, // IMPORT_FROM 'multisig_pubkey_index' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x18, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0xc7, // STORE_FAST 7 + 0xb3, // LOAD_FAST 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb6, // LOAD_FAST 6 + 0xb3, // LOAD_FAST 3 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x13,0x19, // LOAD_ATTR 'SPENDADDRESS' + 0xb4, // LOAD_FAST 4 + 0x13,0x1a, // LOAD_ATTR 'SPENDMULTISIG' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0x44,0xd9,0x80, // POP_JUMP_IF_FALSE 89 + 0xb3, // LOAD_FAST 3 + 0x44,0x6e, // POP_JUMP_IF_FALSE 46 + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'address_type_p2sh' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x08, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0x12,0x25, // LOAD_GLOBAL '_address_multisig_p2sh' + 0xb8, // LOAD_FAST 8 + 0xb3, // LOAD_FAST 3 + 0x13,0x1c, // LOAD_ATTR 'm' + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc9, // STORE_FAST 9 + 0xb1, // LOAD_FAST 1 + 0x13,0x1d, // LOAD_ATTR 'cashaddr_prefix' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x38, // LOAD_GLOBAL 'address_to_cashaddr' + 0xb9, // LOAD_FAST 9 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc9, // STORE_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x13,0x1a, // LOAD_ATTR 'SPENDMULTISIG' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x08, // LOAD_GLOBAL 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x14,0x1e, // LOAD_METHOD 'address' + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'address_type' + 0x36,0x01, // CALL_METHOD 1 + 0xc9, // STORE_FAST 9 + 0xb1, // LOAD_FAST 1 + 0x13,0x1d, // LOAD_ATTR 'cashaddr_prefix' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x38, // LOAD_GLOBAL 'address_to_cashaddr' + 0xb9, // LOAD_FAST 9 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc9, // STORE_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x13,0x1f, // LOAD_ATTR 'SPENDWITNESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6f, // POP_JUMP_IF_FALSE 47 + 0xb1, // LOAD_FAST 1 + 0x13,0x20, // LOAD_ATTR 'segwit' + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'bech32_prefix' + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x08, // LOAD_GLOBAL 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb5, // LOAD_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0x12,0x29, // LOAD_GLOBAL '_address_multisig_p2wsh' + 0xb8, // LOAD_FAST 8 + 0xb3, // LOAD_FAST 3 + 0x13,0x1c, // LOAD_ATTR 'm' + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'bech32_prefix' + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE + 0x12,0x32, // LOAD_GLOBAL 'address_p2wpkh' + 0xb7, // LOAD_FAST 7 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x13,0x22, // LOAD_ATTR 'SPENDTAPROOT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x65, // POP_JUMP_IF_FALSE 37 + 0xb1, // LOAD_FAST 1 + 0x13,0x23, // LOAD_ATTR 'taproot' + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'bech32_prefix' + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x08, // LOAD_GLOBAL 'ProcessError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x08, // LOAD_GLOBAL 'ProcessError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x34, // LOAD_GLOBAL '_address_p2tr' + 0xb7, // LOAD_FAST 7 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x13,0x24, // LOAD_ATTR 'SPENDP2SHWITNESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6f, // POP_JUMP_IF_FALSE 47 + 0xb1, // LOAD_FAST 1 + 0x13,0x20, // LOAD_ATTR 'segwit' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'address_type_p2sh' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x08, // LOAD_GLOBAL 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb5, // LOAD_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0x12,0x28, // LOAD_GLOBAL '_address_multisig_p2wsh_in_p2sh' + 0xb8, // LOAD_FAST 8 + 0xb3, // LOAD_FAST 3 + 0x13,0x1c, // LOAD_ATTR 'm' + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE + 0x12,0x30, // LOAD_GLOBAL 'address_p2wpkh_in_p2sh' + 0xb7, // LOAD_FAST 7 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x12,0x08, // LOAD_GLOBAL 'ProcessError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_addresses_get_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_addresses_get_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 355, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_bitcoin_addresses_get_address + 8, + .line_info_top = fun_data_apps_bitcoin_addresses_get_address + 50, + .opcodes = fun_data_apps_bitcoin_addresses_get_address + 50, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_addresses__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/addresses.py, scope apps_bitcoin_addresses__address_multisig_p2sh +static const byte fun_data_apps_bitcoin_addresses__address_multisig_p2sh[55] = { + 0x3b,0x14, // prelude + 0x25,0x44,0x1c,0x42, // names: _address_multisig_p2sh, pubkeys, m, coin + 0x80,0x5d,0x27,0x27,0x2a,0x28, // code info + 0xb2, // LOAD_FAST 2 + 0x13,0x1b, // LOAD_ATTR 'address_type_p2sh' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x08, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x06, // LOAD_GLOBAL 'HashWriter' + 0xb2, // LOAD_FAST 2 + 0x14,0x26, // LOAD_METHOD 'script_hash' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x12,0x10, // LOAD_GLOBAL 'write_output_script_multisig' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x2f, // LOAD_GLOBAL 'address_p2sh' + 0xb3, // LOAD_FAST 3 + 0x14,0x27, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_addresses__address_multisig_p2sh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_addresses__address_multisig_p2sh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_bitcoin_addresses__address_multisig_p2sh + 6, + .line_info_top = fun_data_apps_bitcoin_addresses__address_multisig_p2sh + 12, + .opcodes = fun_data_apps_bitcoin_addresses__address_multisig_p2sh + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_addresses__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/addresses.py, scope apps_bitcoin_addresses__address_multisig_p2wsh_in_p2sh +static const byte fun_data_apps_bitcoin_addresses__address_multisig_p2wsh_in_p2sh[54] = { + 0x3b,0x14, // prelude + 0x28,0x44,0x1c,0x42, // names: _address_multisig_p2wsh_in_p2sh, pubkeys, m, coin + 0x80,0x67,0x27,0x27,0x29,0x28, // code info + 0xb2, // LOAD_FAST 2 + 0x13,0x1b, // LOAD_ATTR 'address_type_p2sh' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x08, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x06, // LOAD_GLOBAL 'HashWriter' + 0x12,0x04, // LOAD_GLOBAL 'sha256' + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x12,0x10, // LOAD_GLOBAL 'write_output_script_multisig' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x31, // LOAD_GLOBAL '_address_p2wsh_in_p2sh' + 0xb3, // LOAD_FAST 3 + 0x14,0x27, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_addresses__address_multisig_p2wsh_in_p2sh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_addresses__address_multisig_p2wsh_in_p2sh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 54, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_bitcoin_addresses__address_multisig_p2wsh_in_p2sh + 6, + .line_info_top = fun_data_apps_bitcoin_addresses__address_multisig_p2wsh_in_p2sh + 12, + .opcodes = fun_data_apps_bitcoin_addresses__address_multisig_p2wsh_in_p2sh + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_addresses__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/addresses.py, scope apps_bitcoin_addresses__address_multisig_p2wsh +static const byte fun_data_apps_bitcoin_addresses__address_multisig_p2wsh[50] = { + 0x3b,0x14, // prelude + 0x29,0x44,0x1c,0x45, // names: _address_multisig_p2wsh, pubkeys, m, hrp + 0x80,0x6f,0x23,0x27,0x29,0x28, // code info + 0xb2, // LOAD_FAST 2 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x08, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x06, // LOAD_GLOBAL 'HashWriter' + 0x12,0x04, // LOAD_GLOBAL 'sha256' + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x12,0x10, // LOAD_GLOBAL 'write_output_script_multisig' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x33, // LOAD_GLOBAL '_address_p2wsh' + 0xb3, // LOAD_FAST 3 + 0x14,0x27, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_addresses__address_multisig_p2wsh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_addresses__address_multisig_p2wsh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_bitcoin_addresses__address_multisig_p2wsh + 6, + .line_info_top = fun_data_apps_bitcoin_addresses__address_multisig_p2wsh + 12, + .opcodes = fun_data_apps_bitcoin_addresses__address_multisig_p2wsh + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_addresses__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/addresses.py, scope apps_bitcoin_addresses_address_pkh +static const byte fun_data_apps_bitcoin_addresses_address_pkh[44] = { + 0x32,0x0c, // prelude + 0x2a,0x46,0x42, // names: address_pkh, pubkey, coin + 0x80,0x77,0x35, // code info + 0x12,0x0a, // LOAD_GLOBAL 'address_type' + 0x14,0x2b, // LOAD_METHOD 'tobytes' + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'address_type' + 0x36,0x01, // CALL_METHOD 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x26, // LOAD_METHOD 'script_hash' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x2c, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xf2, // BINARY_OP 27 __add__ + 0xc2, // STORE_FAST 2 + 0x12,0x02, // LOAD_GLOBAL 'base58' + 0x14,0x2d, // LOAD_METHOD 'encode_check' + 0x12,0x47, // LOAD_GLOBAL 'bytes' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x2e, // LOAD_ATTR 'b58_hash' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_addresses_address_pkh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_addresses_address_pkh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_bitcoin_addresses_address_pkh + 5, + .line_info_top = fun_data_apps_bitcoin_addresses_address_pkh + 8, + .opcodes = fun_data_apps_bitcoin_addresses_address_pkh + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_addresses__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/addresses.py, scope apps_bitcoin_addresses_address_p2sh +static const byte fun_data_apps_bitcoin_addresses_address_p2sh[35] = { + 0x32,0x0c, // prelude + 0x2f,0x48,0x42, // names: address_p2sh, redeem_script_hash, coin + 0x80,0x7c,0x2c, // code info + 0x12,0x0a, // LOAD_GLOBAL 'address_type' + 0x14,0x2b, // LOAD_METHOD 'tobytes' + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'address_type_p2sh' + 0x36,0x01, // CALL_METHOD 1 + 0xb0, // LOAD_FAST 0 + 0xf2, // BINARY_OP 27 __add__ + 0xc2, // STORE_FAST 2 + 0x12,0x02, // LOAD_GLOBAL 'base58' + 0x14,0x2d, // LOAD_METHOD 'encode_check' + 0x12,0x47, // LOAD_GLOBAL 'bytes' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x2e, // LOAD_ATTR 'b58_hash' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_addresses_address_p2sh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_addresses_address_p2sh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_apps_bitcoin_addresses_address_p2sh + 5, + .line_info_top = fun_data_apps_bitcoin_addresses_address_p2sh + 8, + .opcodes = fun_data_apps_bitcoin_addresses_address_p2sh + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_addresses__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/addresses.py, scope apps_bitcoin_addresses_address_p2wpkh_in_p2sh +static const byte fun_data_apps_bitcoin_addresses_address_p2wpkh_in_p2sh[42] = { + 0x3a,0x10, // prelude + 0x30,0x46,0x42, // names: address_p2wpkh_in_p2sh, pubkey, coin + 0x80,0x81,0x27,0x27,0x2b, // code info + 0x12,0x0c, // LOAD_GLOBAL 'ecdsa_hash_pubkey' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc2, // STORE_FAST 2 + 0x12,0x0f, // LOAD_GLOBAL 'output_script_native_segwit' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x14,0x26, // LOAD_METHOD 'script_hash' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x2c, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0x12,0x2f, // LOAD_GLOBAL 'address_p2sh' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_addresses_address_p2wpkh_in_p2sh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_addresses_address_p2wpkh_in_p2sh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 48, + .line_info = fun_data_apps_bitcoin_addresses_address_p2wpkh_in_p2sh + 5, + .line_info_top = fun_data_apps_bitcoin_addresses_address_p2wpkh_in_p2sh + 10, + .opcodes = fun_data_apps_bitcoin_addresses_address_p2wpkh_in_p2sh + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_addresses__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/addresses.py, scope apps_bitcoin_addresses__address_p2wsh_in_p2sh +static const byte fun_data_apps_bitcoin_addresses__address_p2wsh_in_p2sh[34] = { + 0x32,0x0e, // prelude + 0x31,0x49,0x42, // names: _address_p2wsh_in_p2sh, witness_script_hash, coin + 0x80,0x88,0x27,0x2b, // code info + 0x12,0x0f, // LOAD_GLOBAL 'output_script_native_segwit' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x14,0x26, // LOAD_METHOD 'script_hash' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x2c, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0x12,0x2f, // LOAD_GLOBAL 'address_p2sh' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_addresses__address_p2wsh_in_p2sh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_addresses__address_p2wsh_in_p2sh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 49, + .line_info = fun_data_apps_bitcoin_addresses__address_p2wsh_in_p2sh + 5, + .line_info_top = fun_data_apps_bitcoin_addresses__address_p2wsh_in_p2sh + 9, + .opcodes = fun_data_apps_bitcoin_addresses__address_p2wsh_in_p2sh + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_addresses__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/addresses.py, scope apps_bitcoin_addresses_address_p2wpkh +static const byte fun_data_apps_bitcoin_addresses_address_p2wpkh[26] = { + 0x32,0x0e, // prelude + 0x32,0x46,0x42, // names: address_p2wpkh, pubkey, coin + 0x80,0x8e,0x20,0x27, // code info + 0x12,0x0c, // LOAD_GLOBAL 'ecdsa_hash_pubkey' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc2, // STORE_FAST 2 + 0x12,0x0d, // LOAD_GLOBAL 'encode_bech32_address' + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'bech32_prefix' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_addresses_address_p2wpkh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_addresses_address_p2wpkh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 50, + .line_info = fun_data_apps_bitcoin_addresses_address_p2wpkh + 5, + .line_info_top = fun_data_apps_bitcoin_addresses_address_p2wpkh + 9, + .opcodes = fun_data_apps_bitcoin_addresses_address_p2wpkh + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_addresses__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/addresses.py, scope apps_bitcoin_addresses__address_p2wsh +static const byte fun_data_apps_bitcoin_addresses__address_p2wsh[15] = { + 0x2a,0x0a, // prelude + 0x33,0x49,0x45, // names: _address_p2wsh, witness_script_hash, hrp + 0x80,0x94, // code info + 0x12,0x0d, // LOAD_GLOBAL 'encode_bech32_address' + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_addresses__address_p2wsh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_addresses__address_p2wsh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 51, + .line_info = fun_data_apps_bitcoin_addresses__address_p2wsh + 5, + .line_info_top = fun_data_apps_bitcoin_addresses__address_p2wsh + 7, + .opcodes = fun_data_apps_bitcoin_addresses__address_p2wsh + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_addresses__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/addresses.py, scope apps_bitcoin_addresses__address_p2tr +static const byte fun_data_apps_bitcoin_addresses__address_p2tr[43] = { + 0x42,0x10, // prelude + 0x34,0x46,0x42, // names: _address_p2tr, pubkey, coin + 0x80,0x98,0x4b,0x20,0x2c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x35, // LOAD_CONST_STRING 'bip340' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x36, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x35, // IMPORT_FROM 'bip340' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x37, // LOAD_METHOD 'tweak_public_key' + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x12,0x0d, // LOAD_GLOBAL 'encode_bech32_address' + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'bech32_prefix' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_addresses__address_p2tr = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_addresses__address_p2tr, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 52, + .line_info = fun_data_apps_bitcoin_addresses__address_p2tr + 5, + .line_info_top = fun_data_apps_bitcoin_addresses__address_p2tr + 10, + .opcodes = fun_data_apps_bitcoin_addresses__address_p2tr + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_addresses__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/addresses.py, scope apps_bitcoin_addresses_address_to_cashaddr +static const byte fun_data_apps_bitcoin_addresses_address_to_cashaddr[94] = { + 0x52,0x1c, // prelude + 0x38,0x1e,0x42, // names: address_to_cashaddr, address, coin + 0x80,0xa0,0x4b,0x20,0x2b,0x2c,0x27,0x26,0x27,0x46,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x39, // LOAD_CONST_STRING 'cashaddr' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x39, // IMPORT_FROM 'cashaddr' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'base58' + 0x14,0x3a, // LOAD_METHOD 'decode_check' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x2e, // LOAD_ATTR 'b58_hash' + 0x36,0x02, // CALL_METHOD 2 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x5a, // ROT_TWO + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'address_type' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb2, // LOAD_FAST 2 + 0x13,0x3b, // LOAD_ATTR 'ADDRESS_TYPE_P2KH' + 0xc4, // STORE_FAST 4 + 0x42,0x54, // JUMP 20 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'address_type_p2sh' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb2, // LOAD_FAST 2 + 0x13,0x3c, // LOAD_ATTR 'ADDRESS_TYPE_P2SH' + 0xc4, // STORE_FAST 4 + 0x42,0x47, // JUMP 7 + 0x12,0x4a, // LOAD_GLOBAL 'ValueError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x14,0x3d, // LOAD_METHOD 'encode' + 0xb1, // LOAD_FAST 1 + 0x13,0x1d, // LOAD_ATTR 'cashaddr_prefix' + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_addresses_address_to_cashaddr = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_addresses_address_to_cashaddr, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 94, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 56, + .line_info = fun_data_apps_bitcoin_addresses_address_to_cashaddr + 5, + .line_info_top = fun_data_apps_bitcoin_addresses_address_to_cashaddr + 16, + .opcodes = fun_data_apps_bitcoin_addresses_address_to_cashaddr + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_addresses__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/addresses.py, scope apps_bitcoin_addresses_address_short +static const byte fun_data_apps_bitcoin_addresses_address_short[50] = { + 0x2a,0x10, // prelude + 0x3e,0x42,0x1e, // names: address_short, coin, address + 0x80,0xaf,0x2b,0x4a,0x4f, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'cashaddr_prefix' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0xb1, // LOAD_FAST 1 + 0x14,0x3f, // LOAD_METHOD 'startswith' + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'cashaddr_prefix' + 0x10,0x40, // LOAD_CONST_STRING ':' + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb1, // LOAD_FAST 1 + 0x12,0x4b, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'cashaddr_prefix' + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_addresses_address_short = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_addresses_address_short, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 62, + .line_info = fun_data_apps_bitcoin_addresses_address_short + 5, + .line_info_top = fun_data_apps_bitcoin_addresses_address_short + 10, + .opcodes = fun_data_apps_bitcoin_addresses_address_short + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_addresses__lt_module_gt_[] = { + &raw_code_apps_bitcoin_addresses_get_address, + &raw_code_apps_bitcoin_addresses__address_multisig_p2sh, + &raw_code_apps_bitcoin_addresses__address_multisig_p2wsh_in_p2sh, + &raw_code_apps_bitcoin_addresses__address_multisig_p2wsh, + &raw_code_apps_bitcoin_addresses_address_pkh, + &raw_code_apps_bitcoin_addresses_address_p2sh, + &raw_code_apps_bitcoin_addresses_address_p2wpkh_in_p2sh, + &raw_code_apps_bitcoin_addresses__address_p2wsh_in_p2sh, + &raw_code_apps_bitcoin_addresses_address_p2wpkh, + &raw_code_apps_bitcoin_addresses__address_p2wsh, + &raw_code_apps_bitcoin_addresses__address_p2tr, + &raw_code_apps_bitcoin_addresses_address_to_cashaddr, + &raw_code_apps_bitcoin_addresses_address_short, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_addresses__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_addresses__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 191, + #endif + .children = (void *)&children_apps_bitcoin_addresses__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 13, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_addresses__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_addresses__lt_module_gt_ + 37, + .opcodes = fun_data_apps_bitcoin_addresses__lt_module_gt_ + 37, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_addresses[76] = { + MP_QSTR_apps_slash_bitcoin_slash_addresses_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_base58, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_HashWriter, + MP_QSTR_trezor_dot_utils, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_address_type, + MP_QSTR_apps_dot_common, + MP_QSTR_ecdsa_hash_pubkey, + MP_QSTR_encode_bech32_address, + MP_QSTR_common, + MP_QSTR_output_script_native_segwit, + MP_QSTR_write_output_script_multisig, + MP_QSTR_scripts, + MP_QSTR_get_address, + MP_QSTR_InputScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_multisig_get_pubkeys, + MP_QSTR_multisig_pubkey_index, + MP_QSTR_multisig, + MP_QSTR_public_key, + MP_QSTR_SPENDADDRESS, + MP_QSTR_SPENDMULTISIG, + MP_QSTR_address_type_p2sh, + MP_QSTR_m, + MP_QSTR_cashaddr_prefix, + MP_QSTR_address, + MP_QSTR_SPENDWITNESS, + MP_QSTR_segwit, + MP_QSTR_bech32_prefix, + MP_QSTR_SPENDTAPROOT, + MP_QSTR_taproot, + MP_QSTR_SPENDP2SHWITNESS, + MP_QSTR__address_multisig_p2sh, + MP_QSTR_script_hash, + MP_QSTR_get_digest, + MP_QSTR__address_multisig_p2wsh_in_p2sh, + MP_QSTR__address_multisig_p2wsh, + MP_QSTR_address_pkh, + MP_QSTR_tobytes, + MP_QSTR_digest, + MP_QSTR_encode_check, + MP_QSTR_b58_hash, + MP_QSTR_address_p2sh, + MP_QSTR_address_p2wpkh_in_p2sh, + MP_QSTR__address_p2wsh_in_p2sh, + MP_QSTR_address_p2wpkh, + MP_QSTR__address_p2wsh, + MP_QSTR__address_p2tr, + MP_QSTR_bip340, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_tweak_public_key, + MP_QSTR_address_to_cashaddr, + MP_QSTR_cashaddr, + MP_QSTR_decode_check, + MP_QSTR_ADDRESS_TYPE_P2KH, + MP_QSTR_ADDRESS_TYPE_P2SH, + MP_QSTR_encode, + MP_QSTR_address_short, + MP_QSTR_startswith, + MP_QSTR__colon_, + MP_QSTR_script_type, + MP_QSTR_coin, + MP_QSTR_node, + MP_QSTR_pubkeys, + MP_QSTR_hrp, + MP_QSTR_pubkey, + MP_QSTR_bytes, + MP_QSTR_redeem_script_hash, + MP_QSTR_witness_script_hash, + MP_QSTR_ValueError, + MP_QSTR_len, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_addresses_0 = {{&mp_type_str}, 33997, 33, (const byte*)"\x4d\x75\x6c\x74\x69\x73\x69\x67\x20\x6e\x6f\x74\x20\x65\x6e\x61\x62\x6c\x65\x64\x20\x6f\x6e\x20\x74\x68\x69\x73\x20\x63\x6f\x69\x6e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_addresses_1 = {{&mp_type_str}, 17658, 25, (const byte*)"\x4d\x75\x6c\x74\x69\x73\x69\x67\x20\x64\x65\x74\x61\x69\x6c\x73\x20\x72\x65\x71\x75\x69\x72\x65\x64"}; +static const mp_obj_str_t const_obj_apps_bitcoin_addresses_2 = {{&mp_type_str}, 25506, 31, (const byte*)"\x53\x65\x67\x77\x69\x74\x20\x6e\x6f\x74\x20\x65\x6e\x61\x62\x6c\x65\x64\x20\x6f\x6e\x20\x74\x68\x69\x73\x20\x63\x6f\x69\x6e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_addresses_3 = {{&mp_type_str}, 15578, 32, (const byte*)"\x54\x61\x70\x72\x6f\x6f\x74\x20\x6e\x6f\x74\x20\x65\x6e\x61\x62\x6c\x65\x64\x20\x6f\x6e\x20\x74\x68\x69\x73\x20\x63\x6f\x69\x6e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_addresses_4 = {{&mp_type_str}, 56082, 34, (const byte*)"\x4d\x75\x6c\x74\x69\x73\x69\x67\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x66\x6f\x72\x20\x74\x61\x70\x72\x6f\x6f\x74"}; +static const mp_obj_str_t const_obj_apps_bitcoin_addresses_6 = {{&mp_type_str}, 45577, 29, (const byte*)"\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x63\x61\x73\x68\x61\x64\x64\x72\x20\x61\x64\x64\x72\x65\x73\x73\x20\x74\x79\x70\x65"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_addresses[7] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_addresses_0), + MP_ROM_PTR(&const_obj_apps_bitcoin_addresses_1), + MP_ROM_PTR(&const_obj_apps_bitcoin_addresses_2), + MP_ROM_PTR(&const_obj_apps_bitcoin_addresses_3), + MP_ROM_PTR(&const_obj_apps_bitcoin_addresses_4), + MP_ROM_QSTR(MP_QSTR_Invalid_space_script_space_type), + MP_ROM_PTR(&const_obj_apps_bitcoin_addresses_6), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_addresses = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_addresses, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_addresses, + }, + .rc = &raw_code_apps_bitcoin_addresses__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_authorization +// - original source file: build/firmware/src/apps/bitcoin/authorization.mpy +// - frozen file name: apps/bitcoin/authorization.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/authorization.py, scope apps_bitcoin_authorization__lt_module_gt_ +static const byte fun_data_apps_bitcoin_authorization__lt_module_gt_[52] = { + 0x10,0x10, // prelude + 0x01, // names: + 0x6c,0x4c,0x80,0x0a,0x63,0x89,0x3a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING 'BIP32_WALLET_DEPTH' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'common' + 0x1c,0x04, // IMPORT_FROM 'BIP32_WALLET_DEPTH' + 0x16,0x04, // STORE_NAME 'BIP32_WALLET_DEPTH' + 0x59, // POP_TOP + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x16,0x25, // STORE_NAME 'FEE_RATE_DECIMALS' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x06, // LOAD_CONST_STRING 'CoinJoinAuthorization' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x06, // STORE_NAME 'CoinJoinAuthorization' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x07, // STORE_NAME 'from_cached_message' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_authorization__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/authorization.py, scope apps_bitcoin_authorization_CoinJoinAuthorization +static const byte fun_data_apps_bitcoin_authorization_CoinJoinAuthorization[42] = { + 0x00,0x14, // prelude + 0x06, // names: CoinJoinAuthorization + 0x88,0x13,0x64,0x84,0x12,0x84,0x08,0x84,0x0b, // code info + 0x11,0x26, // LOAD_NAME '__name__' + 0x16,0x27, // STORE_NAME '__module__' + 0x10,0x06, // LOAD_CONST_STRING 'CoinJoinAuthorization' + 0x16,0x28, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0e, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x10, // STORE_NAME 'check_get_ownership_proof' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x1c, // STORE_NAME 'check_internal_input' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x1d, // STORE_NAME 'check_internal_output' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x1f, // STORE_NAME 'approve_sign_tx' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_authorization_CoinJoinAuthorization +// frozen bytecode for file apps/bitcoin/authorization.py, scope apps_bitcoin_authorization_CoinJoinAuthorization___init__ +static const byte fun_data_apps_bitcoin_authorization_CoinJoinAuthorization___init__[13] = { + 0x1a,0x0a, // prelude + 0x0e,0x2a,0x0f, // names: __init__, self, params + 0x80,0x14, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x0f, // STORE_ATTR 'params' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_authorization_CoinJoinAuthorization___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization___init__ + 5, + .line_info_top = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization___init__ + 7, + .opcodes = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization___init__ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_authorization_CoinJoinAuthorization +// frozen bytecode for file apps/bitcoin/authorization.py, scope apps_bitcoin_authorization_CoinJoinAuthorization_check_get_ownership_proof +static const byte fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_check_get_ownership_proof[133] = { + 0x5a,0x1e, // prelude + 0x10,0x2a,0x2b, // names: check_get_ownership_proof, self, msg + 0x80,0x17,0x4b,0x4b,0x64,0x33,0x2c,0x20,0x2c,0x30,0x29,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor' + 0x1c,0x11, // IMPORT_FROM 'utils' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x12, // LOAD_CONST_STRING 'write_bytes_prefixed' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME 'writers' + 0x1c,0x12, // IMPORT_FROM 'write_bytes_prefixed' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'params' + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x14,0x14, // LOAD_METHOD 'empty_bytearray' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x12,0x2c, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x13,0x15, // LOAD_ATTR 'coordinator' + 0x14,0x16, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x13,0x15, // LOAD_ATTR 'coordinator' + 0x14,0x16, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x2c, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x17, // LOAD_ATTR 'address_n' + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x04, // LOAD_GLOBAL 'BIP32_WALLET_DEPTH' + 0xdb, // BINARY_OP 4 __ge__ + 0x46,0x2e, // JUMP_IF_FALSE_OR_POP 46 + 0xb1, // LOAD_FAST 1 + 0x13,0x17, // LOAD_ATTR 'address_n' + 0x51, // LOAD_CONST_NONE + 0x12,0x04, // LOAD_GLOBAL 'BIP32_WALLET_DEPTH' + 0xd1, // UNARY_OP 1 __neg__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb4, // LOAD_FAST 4 + 0x13,0x17, // LOAD_ATTR 'address_n' + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x1e, // JUMP_IF_FALSE_OR_POP 30 + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'coin_name' + 0xb4, // LOAD_FAST 4 + 0x13,0x18, // LOAD_ATTR 'coin_name' + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x15, // JUMP_IF_FALSE_OR_POP 21 + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'script_type' + 0xb4, // LOAD_FAST 4 + 0x13,0x19, // LOAD_ATTR 'script_type' + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x0c, // JUMP_IF_FALSE_OR_POP 12 + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'commitment_data' + 0x14,0x1b, // LOAD_METHOD 'startswith' + 0x12,0x2d, // LOAD_GLOBAL 'bytes' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_authorization_CoinJoinAuthorization_check_get_ownership_proof = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_check_get_ownership_proof, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 133, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_check_get_ownership_proof + 5, + .line_info_top = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_check_get_ownership_proof + 17, + .opcodes = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_check_get_ownership_proof + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_authorization_CoinJoinAuthorization +// frozen bytecode for file apps/bitcoin/authorization.py, scope apps_bitcoin_authorization_CoinJoinAuthorization_check_internal_input +static const byte fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_check_internal_input[50] = { + 0x22,0x10, // prelude + 0x1c,0x2a,0x2e, // names: check_internal_input, self, txi + 0x80,0x2a,0x20,0x2c,0x32, // code info + 0x12,0x2c, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x17, // LOAD_ATTR 'address_n' + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x04, // LOAD_GLOBAL 'BIP32_WALLET_DEPTH' + 0xdb, // BINARY_OP 4 __ge__ + 0x46,0x1b, // JUMP_IF_FALSE_OR_POP 27 + 0xb1, // LOAD_FAST 1 + 0x13,0x17, // LOAD_ATTR 'address_n' + 0x51, // LOAD_CONST_NONE + 0x12,0x04, // LOAD_GLOBAL 'BIP32_WALLET_DEPTH' + 0xd1, // UNARY_OP 1 __neg__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'params' + 0x13,0x17, // LOAD_ATTR 'address_n' + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x09, // JUMP_IF_FALSE_OR_POP 9 + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'script_type' + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'params' + 0x13,0x19, // LOAD_ATTR 'script_type' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_authorization_CoinJoinAuthorization_check_internal_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_check_internal_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_check_internal_input + 5, + .line_info_top = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_check_internal_input + 10, + .opcodes = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_check_internal_input + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_authorization_CoinJoinAuthorization +// frozen bytecode for file apps/bitcoin/authorization.py, scope apps_bitcoin_authorization_CoinJoinAuthorization_check_internal_output +static const byte fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_check_internal_output[65] = { + 0x2a,0x14, // prelude + 0x1d,0x2a,0x2f, // names: check_internal_output, self, txo + 0x80,0x31,0x6b,0x20,0x2c,0x32,0x25, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1e, // LOAD_CONST_STRING 'CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'common' + 0x1c,0x1e, // IMPORT_FROM 'CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x2c, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x17, // LOAD_ATTR 'address_n' + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x04, // LOAD_GLOBAL 'BIP32_WALLET_DEPTH' + 0xdb, // BINARY_OP 4 __ge__ + 0x46,0x1d, // JUMP_IF_FALSE_OR_POP 29 + 0xb1, // LOAD_FAST 1 + 0x13,0x17, // LOAD_ATTR 'address_n' + 0x51, // LOAD_CONST_NONE + 0x12,0x04, // LOAD_GLOBAL 'BIP32_WALLET_DEPTH' + 0xd1, // UNARY_OP 1 __neg__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'params' + 0x13,0x17, // LOAD_ATTR 'address_n' + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x0b, // JUMP_IF_FALSE_OR_POP 11 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'script_type' + 0x55, // LOAD_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'params' + 0x13,0x19, // LOAD_ATTR 'script_type' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_authorization_CoinJoinAuthorization_check_internal_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_check_internal_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 65, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_check_internal_output + 5, + .line_info_top = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_check_internal_output + 12, + .opcodes = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_check_internal_output + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_authorization_CoinJoinAuthorization +// frozen bytecode for file apps/bitcoin/authorization.py, scope apps_bitcoin_authorization_CoinJoinAuthorization_approve_sign_tx +static const byte fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_approve_sign_tx[81] = { + 0x32,0x1a, // prelude + 0x1f,0x2a,0x2b, // names: approve_sign_tx, self, msg + 0x80,0x3c,0x4b,0x44,0x30,0x42,0x29,0x27,0x49,0x46, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x20, // LOAD_CONST_STRING 'authorization' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x21, // IMPORT_NAME 'apps.common' + 0x1c,0x20, // IMPORT_FROM 'authorization' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'params' + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x13,0x22, // LOAD_ATTR 'max_rounds' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'coin_name' + 0xb3, // LOAD_FAST 3 + 0x13,0x18, // LOAD_ATTR 'coin_name' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0xb3, // LOAD_FAST 3 + 0x57, // DUP_TOP + 0x13,0x22, // LOAD_ATTR 'max_rounds' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe6, // BINARY_OP 15 __isub__ + 0x5a, // ROT_TWO + 0x18,0x22, // STORE_ATTR 'max_rounds' + 0xb3, // LOAD_FAST 3 + 0x13,0x22, // LOAD_ATTR 'max_rounds' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb2, // LOAD_FAST 2 + 0x14,0x23, // LOAD_METHOD 'set' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x46, // JUMP 6 + 0xb2, // LOAD_FAST 2 + 0x14,0x24, // LOAD_METHOD 'clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_authorization_CoinJoinAuthorization_approve_sign_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_approve_sign_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 81, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_approve_sign_tx + 5, + .line_info_top = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_approve_sign_tx + 15, + .opcodes = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization_approve_sign_tx + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_authorization_CoinJoinAuthorization[] = { + &raw_code_apps_bitcoin_authorization_CoinJoinAuthorization___init__, + &raw_code_apps_bitcoin_authorization_CoinJoinAuthorization_check_get_ownership_proof, + &raw_code_apps_bitcoin_authorization_CoinJoinAuthorization_check_internal_input, + &raw_code_apps_bitcoin_authorization_CoinJoinAuthorization_check_internal_output, + &raw_code_apps_bitcoin_authorization_CoinJoinAuthorization_approve_sign_tx, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_authorization_CoinJoinAuthorization = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = (void *)&children_apps_bitcoin_authorization_CoinJoinAuthorization, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization + 3, + .line_info_top = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization + 12, + .opcodes = fun_data_apps_bitcoin_authorization_CoinJoinAuthorization + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_authorization__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/authorization.py, scope apps_bitcoin_authorization_from_cached_message +static const byte fun_data_apps_bitcoin_authorization_from_cached_message[54] = { + 0x29,0x10, // prelude + 0x07,0x29, // names: from_cached_message, auth_msg + 0x80,0x4d,0x2b,0x4b,0x28,0x48, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor' + 0x1c,0x08, // IMPORT_FROM 'wire' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'AuthorizeCoinJoin' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0a, // IMPORT_FROM 'AuthorizeCoinJoin' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x0c, // LOAD_METHOD 'is_type_of' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xb1, // LOAD_FAST 1 + 0x14,0x0d, // LOAD_METHOD 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x12,0x06, // LOAD_GLOBAL 'CoinJoinAuthorization' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_authorization_from_cached_message = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_authorization_from_cached_message, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 54, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_bitcoin_authorization_from_cached_message + 4, + .line_info_top = fun_data_apps_bitcoin_authorization_from_cached_message + 10, + .opcodes = fun_data_apps_bitcoin_authorization_from_cached_message + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_authorization__lt_module_gt_[] = { + &raw_code_apps_bitcoin_authorization_CoinJoinAuthorization, + &raw_code_apps_bitcoin_authorization_from_cached_message, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_authorization__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_authorization__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 52, + #endif + .children = (void *)&children_apps_bitcoin_authorization__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_authorization__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_authorization__lt_module_gt_ + 10, + .opcodes = fun_data_apps_bitcoin_authorization__lt_module_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_authorization[48] = { + MP_QSTR_apps_slash_bitcoin_slash_authorization_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_BIP32_WALLET_DEPTH, + MP_QSTR_common, + MP_QSTR_CoinJoinAuthorization, + MP_QSTR_from_cached_message, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_AuthorizeCoinJoin, + MP_QSTR_trezor_dot_messages, + MP_QSTR_is_type_of, + MP_QSTR_ProcessError, + MP_QSTR___init__, + MP_QSTR_params, + MP_QSTR_check_get_ownership_proof, + MP_QSTR_utils, + MP_QSTR_write_bytes_prefixed, + MP_QSTR_writers, + MP_QSTR_empty_bytearray, + MP_QSTR_coordinator, + MP_QSTR_encode, + MP_QSTR_address_n, + MP_QSTR_coin_name, + MP_QSTR_script_type, + MP_QSTR_commitment_data, + MP_QSTR_startswith, + MP_QSTR_check_internal_input, + MP_QSTR_check_internal_output, + MP_QSTR_CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES, + MP_QSTR_approve_sign_tx, + MP_QSTR_authorization, + MP_QSTR_apps_dot_common, + MP_QSTR_max_rounds, + MP_QSTR_set, + MP_QSTR_clear, + MP_QSTR_FEE_RATE_DECIMALS, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_auth_msg, + MP_QSTR_self, + MP_QSTR_msg, + MP_QSTR_len, + MP_QSTR_bytes, + MP_QSTR_txi, + MP_QSTR_txo, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_authorization_0 = {{&mp_type_str}, 51832, 32, (const byte*)"\x41\x70\x70\x72\x6f\x70\x72\x69\x61\x74\x65\x20\x70\x61\x72\x61\x6d\x73\x20\x77\x61\x73\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_authorization[1] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_authorization_0), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_authorization = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_authorization, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_authorization, + }, + .rc = &raw_code_apps_bitcoin_authorization__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_authorize_coinjoin +// - original source file: build/firmware/src/apps/bitcoin/authorize_coinjoin.mpy +// - frozen file name: apps/bitcoin/authorize_coinjoin.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/authorize_coinjoin.py, scope apps_bitcoin_authorize_coinjoin__lt_module_gt_ +static const byte fun_data_apps_bitcoin_authorize_coinjoin__lt_module_gt_[66] = { + 0x18,0x0e, // prelude + 0x01, // names: + 0x6c,0x2c,0x4c,0x80,0x08,0x6b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING 'FEE_RATE_DECIMALS' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'authorization' + 0x1c,0x04, // IMPORT_FROM 'FEE_RATE_DECIMALS' + 0x16,0x04, // STORE_NAME 'FEE_RATE_DECIMALS' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x06, // LOAD_CONST_STRING 'with_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'keychain' + 0x1c,0x06, // IMPORT_FROM 'with_keychain' + 0x16,0x06, // STORE_NAME 'with_keychain' + 0x59, // POP_TOP + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x11,0x2a, // LOAD_NAME 'pow' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x11,0x04, // LOAD_NAME 'FEE_RATE_DECIMALS' + 0x34,0x02, // CALL_FUNCTION 2 + 0xf4, // BINARY_OP 29 __mul__ + 0x16,0x2b, // STORE_NAME '_MAX_COORDINATOR_FEE_RATE' + 0x11,0x06, // LOAD_NAME 'with_keychain' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x08, // STORE_NAME 'authorize_coinjoin' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_authorize_coinjoin__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/authorize_coinjoin.py, scope apps_bitcoin_authorize_coinjoin_authorize_coinjoin +static const byte fun_data_apps_bitcoin_authorize_coinjoin_authorize_coinjoin[422] = { + 0xeb,0x50,0x62, // prelude + 0x08,0x2c,0x07,0x2d, // names: authorize_coinjoin, msg, keychain, coin + 0x80,0x15,0x2b,0x2b,0x30,0x4b,0x30,0x2b,0x50,0x30,0x4b,0x27,0x45,0x2f,0x4a,0x46,0x27,0x46,0x2d,0x46,0x20,0x6c,0x46,0x2f,0x46,0x24,0x46,0x2c,0x42,0x21,0x70,0x4c,0x2b,0x64,0x26,0x28,0x6c,0x20,0x29,0x21,0x22,0x22,0x44,0x69,0x47, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.enums' + 0x1c,0x09, // IMPORT_FROM 'ButtonRequestType' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'Success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0b, // IMPORT_FROM 'Success' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'confirm_coinjoin' + 0x10,0x0e, // LOAD_CONST_STRING 'confirm_metadata' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0f, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x0d, // IMPORT_FROM 'confirm_coinjoin' + 0xc5, // STORE_FAST 5 + 0x1c,0x0e, // IMPORT_FROM 'confirm_metadata' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'trezor.wire' + 0x1c,0x10, // IMPORT_FROM 'DataError' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'authorization' + 0x10,0x12, // LOAD_CONST_STRING 'safety_checks' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x13, // IMPORT_NAME 'apps.common' + 0x1c,0x05, // IMPORT_FROM 'authorization' + 0xc8, // STORE_FAST 8 + 0x1c,0x12, // IMPORT_FROM 'safety_checks' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x14, // LOAD_CONST_STRING 'FORBIDDEN_KEY_PATH' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x15, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x14, // IMPORT_FROM 'FORBIDDEN_KEY_PATH' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x16, // LOAD_CONST_STRING 'SLIP25_PURPOSE' + 0x10,0x17, // LOAD_CONST_STRING 'validate_path' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x18, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x16, // IMPORT_FROM 'SLIP25_PURPOSE' + 0xcb, // STORE_FAST 11 + 0x1c,0x17, // IMPORT_FROM 'validate_path' + 0xcc, // STORE_FAST 12 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x19, // LOAD_CONST_STRING 'BIP32_WALLET_DEPTH' + 0x10,0x1a, // LOAD_CONST_STRING 'format_fee_rate' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x1b, // IMPORT_NAME 'common' + 0x1c,0x19, // IMPORT_FROM 'BIP32_WALLET_DEPTH' + 0xcd, // STORE_FAST 13 + 0x1c,0x1a, // IMPORT_FROM 'format_fee_rate' + 0xce, // STORE_FAST 14 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1c, // LOAD_CONST_STRING 'validate_path_against_script_type' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'keychain' + 0x1c,0x1c, // IMPORT_FROM 'validate_path_against_script_type' + 0xcf, // STORE_FAST 15 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x14,0x1d, // LOAD_METHOD 'is_strict' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x10, // STORE_FAST_N 16 + 0xb0, // LOAD_FAST 0 + 0x13,0x1e, // LOAD_ATTR 'address_n' + 0x26,0x11, // STORE_FAST_N 17 + 0x12,0x2e, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x1f, // LOAD_ATTR 'coordinator' + 0x34,0x01, // CALL_FUNCTION 1 + 0xa4, // LOAD_CONST_SMALL_INT 36 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x4e, // POP_JUMP_IF_TRUE 14 + 0x12,0x2f, // LOAD_GLOBAL 'all' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x1f, // LOAD_ATTR 'coordinator' + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'max_rounds' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'max_rounds' + 0x22,0x83,0x74, // LOAD_CONST_SMALL_INT 500 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x24,0x10, // LOAD_FAST_N 16 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'max_coordinator_fee_rate' + 0x12,0x2b, // LOAD_GLOBAL '_MAX_COORDINATOR_FEE_RATE' + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x24,0x10, // LOAD_FAST_N 16 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'max_fee_per_kvbyte' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xb2, // LOAD_FAST 2 + 0x13,0x23, // LOAD_ATTR 'maxfee_kb' + 0xf4, // BINARY_OP 29 __mul__ + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x24,0x10, // LOAD_FAST_N 16 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x11, // LOAD_FAST_N 17 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x11, // LOAD_FAST_N 17 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xbb, // LOAD_FAST 11 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x24,0x10, // LOAD_FAST_N 16 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xba, // LOAD_FAST 10 + 0x65, // RAISE_OBJ + 0xbe, // LOAD_FAST 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'max_fee_per_kvbyte' + 0x22,0x87,0x68, // LOAD_CONST_SMALL_INT 1000 + 0xf7, // BINARY_OP 32 __truediv__ + 0xb2, // LOAD_FAST 2 + 0x10,0x24, // LOAD_CONST_STRING 'include_shortcut' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x26,0x12, // STORE_FAST_N 18 + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'max_rounds' + 0x24,0x12, // LOAD_FAST_N 18 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x1e, // LOAD_ATTR 'address_n' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x01, // BUILD_LIST 1 + 0xbd, // LOAD_FAST 13 + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0x26,0x13, // STORE_FAST_N 19 + 0xbc, // LOAD_FAST 12 + 0xb1, // LOAD_FAST 1 + 0x24,0x13, // LOAD_FAST_N 19 + 0x24,0x11, // LOAD_FAST_N 17 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xbb, // LOAD_FAST 11 + 0xd9, // BINARY_OP 2 __eq__ + 0xbf, // LOAD_FAST 15 + 0xb2, // LOAD_FAST 2 + 0x10,0x1e, // LOAD_CONST_STRING 'address_n' + 0x24,0x13, // LOAD_FAST_N 19 + 0x10,0x25, // LOAD_CONST_STRING 'script_type' + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'script_type' + 0x34,0x84,0x01, // CALL_FUNCTION 513 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'max_fee_per_kvbyte' + 0xb2, // LOAD_FAST 2 + 0x13,0x23, // LOAD_ATTR 'maxfee_kb' + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb6, // LOAD_FAST 6 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x24,0x12, // LOAD_FAST_N 18 + 0xb3, // LOAD_FAST 3 + 0x13,0x26, // LOAD_ATTR 'FeeOverThreshold' + 0x34,0x05, // CALL_FUNCTION 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x27, // LOAD_METHOD 'set' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x10,0x28, // LOAD_CONST_STRING 'message' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_authorize_coinjoin_authorize_coinjoin +// frozen bytecode for file apps/bitcoin/authorize_coinjoin.py, scope apps_bitcoin_authorize_coinjoin_authorize_coinjoin__lt_genexpr_gt_ +static const byte fun_data_apps_bitcoin_authorize_coinjoin_authorize_coinjoin__lt_genexpr_gt_[39] = { + 0xc1,0x40,0x08, // prelude + 0x29,0x30, // names: , * + 0x80,0x25, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x18, // FOR_ITER 24 + 0xc1, // STORE_FAST 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x12,0x31, // LOAD_GLOBAL 'ord' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0x22,0x80,0x7e, // LOAD_CONST_SMALL_INT 126 + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x26, // JUMP -26 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_authorize_coinjoin_authorize_coinjoin__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_authorize_coinjoin_authorize_coinjoin__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_bitcoin_authorize_coinjoin_authorize_coinjoin__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_apps_bitcoin_authorize_coinjoin_authorize_coinjoin__lt_genexpr_gt_ + 7, + .opcodes = fun_data_apps_bitcoin_authorize_coinjoin_authorize_coinjoin__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_authorize_coinjoin_authorize_coinjoin[] = { + &raw_code_apps_bitcoin_authorize_coinjoin_authorize_coinjoin__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_authorize_coinjoin_authorize_coinjoin = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_authorize_coinjoin_authorize_coinjoin, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 422, + #endif + .children = (void *)&children_apps_bitcoin_authorize_coinjoin_authorize_coinjoin, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 30, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_bitcoin_authorize_coinjoin_authorize_coinjoin + 7, + .line_info_top = fun_data_apps_bitcoin_authorize_coinjoin_authorize_coinjoin + 52, + .opcodes = fun_data_apps_bitcoin_authorize_coinjoin_authorize_coinjoin + 52, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_authorize_coinjoin__lt_module_gt_[] = { + &raw_code_apps_bitcoin_authorize_coinjoin_authorize_coinjoin, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_authorize_coinjoin__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_authorize_coinjoin__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 66, + #endif + .children = (void *)&children_apps_bitcoin_authorize_coinjoin__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_authorize_coinjoin__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_authorize_coinjoin__lt_module_gt_ + 9, + .opcodes = fun_data_apps_bitcoin_authorize_coinjoin__lt_module_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_authorize_coinjoin[50] = { + MP_QSTR_apps_slash_bitcoin_slash_authorize_coinjoin_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_FEE_RATE_DECIMALS, + MP_QSTR_authorization, + MP_QSTR_with_keychain, + MP_QSTR_keychain, + MP_QSTR_authorize_coinjoin, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_Success, + MP_QSTR_trezor_dot_messages, + MP_QSTR_confirm_coinjoin, + MP_QSTR_confirm_metadata, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_safety_checks, + MP_QSTR_apps_dot_common, + MP_QSTR_FORBIDDEN_KEY_PATH, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_SLIP25_PURPOSE, + MP_QSTR_validate_path, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_BIP32_WALLET_DEPTH, + MP_QSTR_format_fee_rate, + MP_QSTR_common, + MP_QSTR_validate_path_against_script_type, + MP_QSTR_is_strict, + MP_QSTR_address_n, + MP_QSTR_coordinator, + MP_QSTR_max_rounds, + MP_QSTR_max_coordinator_fee_rate, + MP_QSTR_max_fee_per_kvbyte, + MP_QSTR_maxfee_kb, + MP_QSTR_include_shortcut, + MP_QSTR_script_type, + MP_QSTR_FeeOverThreshold, + MP_QSTR_set, + MP_QSTR_message, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_pow, + MP_QSTR__MAX_COORDINATOR_FEE_RATE, + MP_QSTR_msg, + MP_QSTR_coin, + MP_QSTR_len, + MP_QSTR_all, + MP_QSTR__star_, + MP_QSTR_ord, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_authorize_coinjoin_0 = {{&mp_type_str}, 49575, 25, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x63\x6f\x6f\x72\x64\x69\x6e\x61\x74\x6f\x72\x20\x6e\x61\x6d\x65\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_authorize_coinjoin_1 = {{&mp_type_str}, 50785, 25, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x72\x6f\x75\x6e\x64\x73\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_authorize_coinjoin_2 = {{&mp_type_str}, 55870, 43, (const byte*)"\x54\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x72\x6f\x75\x6e\x64\x73\x20\x69\x73\x20\x75\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x6c\x79\x20\x6c\x61\x72\x67\x65\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_authorize_coinjoin_3 = {{&mp_type_str}, 61646, 48, (const byte*)"\x54\x68\x65\x20\x63\x6f\x6f\x72\x64\x69\x6e\x61\x74\x69\x6f\x6e\x20\x66\x65\x65\x20\x72\x61\x74\x65\x20\x69\x73\x20\x75\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x6c\x79\x20\x6c\x61\x72\x67\x65\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_authorize_coinjoin_4 = {{&mp_type_str}, 31224, 40, (const byte*)"\x54\x68\x65\x20\x66\x65\x65\x20\x70\x65\x72\x20\x76\x62\x79\x74\x65\x20\x69\x73\x20\x75\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x6c\x79\x20\x6c\x61\x72\x67\x65\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_authorize_coinjoin_8 = {{&mp_type_str}, 25909, 42, (const byte*)"\x54\x68\x65\x20\x6d\x69\x6e\x69\x6e\x67\x20\x66\x65\x65\x20\x6f\x66\x0a\x7b\x7d\x0a\x69\x73\x20\x75\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x6c\x79\x20\x68\x69\x67\x68\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_authorize_coinjoin[10] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_authorize_coinjoin_0), + MP_ROM_PTR(&const_obj_apps_bitcoin_authorize_coinjoin_1), + MP_ROM_PTR(&const_obj_apps_bitcoin_authorize_coinjoin_2), + MP_ROM_PTR(&const_obj_apps_bitcoin_authorize_coinjoin_3), + MP_ROM_PTR(&const_obj_apps_bitcoin_authorize_coinjoin_4), + MP_ROM_QSTR(MP_QSTR_Empty_space_path_space_not_space_allowed_dot_), + MP_ROM_QSTR(MP_QSTR_fee_over_threshold), + MP_ROM_QSTR(MP_QSTR_High_space_mining_space_fee), + MP_ROM_PTR(&const_obj_apps_bitcoin_authorize_coinjoin_8), + MP_ROM_QSTR(MP_QSTR_Coinjoin_space_authorized), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_authorize_coinjoin = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_authorize_coinjoin, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_authorize_coinjoin, + }, + .rc = &raw_code_apps_bitcoin_authorize_coinjoin__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_common +// - original source file: build/firmware/src/apps/bitcoin/common.mpy +// - frozen file name: apps/bitcoin/common.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/common.py, scope apps_bitcoin_common__lt_module_gt_ +static const byte fun_data_apps_bitcoin_common__lt_module_gt_[366] = { + 0x18,0x80,0x02, // prelude + 0x01, // names: + 0x6c,0x2c,0x2c,0x2c,0x52,0x80,0x09,0x64,0x64,0x8b,0x20,0x63,0x23,0x65,0x44,0x20,0x24,0x24,0x48,0x20,0x24,0x24,0x68,0x22,0x29,0x29,0x29,0x29,0x6b,0x2c,0x4c,0x20,0x24,0x24,0x68,0x20,0x24,0x24,0x68,0x20,0x24,0x68,0x20,0x84,0x09,0x64,0x60,0x84,0x0d,0x84,0x08,0x84,0x0c,0x84,0x0a,0x84,0x0c,0x64,0x20,0x84,0x09,0x84,0x0a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor' + 0x1c,0x04, // IMPORT_FROM 'wire' + 0x16,0x04, // STORE_NAME 'wire' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'bech32' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x06, // IMPORT_FROM 'bech32' + 0x16,0x06, // STORE_NAME 'bech32' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'bip340' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x08, // IMPORT_FROM 'bip340' + 0x16,0x08, // STORE_NAME 'bip340' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'InputScriptType' + 0x10,0x0b, // LOAD_CONST_STRING 'OutputScriptType' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0c, // IMPORT_NAME 'trezor.enums' + 0x1c,0x0a, // IMPORT_FROM 'InputScriptType' + 0x16,0x0a, // STORE_NAME 'InputScriptType' + 0x1c,0x0b, // IMPORT_FROM 'OutputScriptType' + 0x16,0x0b, // STORE_NAME 'OutputScriptType' + 0x59, // POP_TOP + 0x11,0x49, // LOAD_NAME 'object' + 0x16,0x4a, // STORE_NAME 'IntEnum' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x4b, // STORE_NAME 'BITCOIN_NAMES' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x0d, // LOAD_CONST_STRING 'SigHashType' + 0x11,0x4a, // LOAD_NAME 'IntEnum' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0d, // STORE_NAME 'SigHashType' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x4c, // STORE_NAME 'BIP32_WALLET_DEPTH' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x4d, // STORE_NAME 'OP_0' + 0x22,0x80,0x51, // LOAD_CONST_SMALL_INT 81 + 0x16,0x4e, // STORE_NAME 'OP_1' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x16,0x4f, // STORE_NAME '_BECH32_WITVERS' + 0x11,0x0a, // LOAD_NAME 'InputScriptType' + 0x13,0x0e, // LOAD_ATTR 'SPENDMULTISIG' + 0x11,0x0a, // LOAD_NAME 'InputScriptType' + 0x13,0x0f, // LOAD_ATTR 'SPENDP2SHWITNESS' + 0x11,0x0a, // LOAD_NAME 'InputScriptType' + 0x13,0x10, // LOAD_ATTR 'SPENDWITNESS' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x16,0x50, // STORE_NAME 'MULTISIG_INPUT_SCRIPT_TYPES' + 0x11,0x0b, // LOAD_NAME 'OutputScriptType' + 0x13,0x11, // LOAD_ATTR 'PAYTOMULTISIG' + 0x11,0x0b, // LOAD_NAME 'OutputScriptType' + 0x13,0x12, // LOAD_ATTR 'PAYTOP2SHWITNESS' + 0x11,0x0b, // LOAD_NAME 'OutputScriptType' + 0x13,0x13, // LOAD_ATTR 'PAYTOWITNESS' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x16,0x51, // STORE_NAME 'MULTISIG_OUTPUT_SCRIPT_TYPES' + 0x2c,0x05, // BUILD_MAP 5 + 0x11,0x0a, // LOAD_NAME 'InputScriptType' + 0x13,0x14, // LOAD_ATTR 'SPENDADDRESS' + 0x11,0x0b, // LOAD_NAME 'OutputScriptType' + 0x13,0x15, // LOAD_ATTR 'PAYTOADDRESS' + 0x62, // STORE_MAP + 0x11,0x0a, // LOAD_NAME 'InputScriptType' + 0x13,0x0e, // LOAD_ATTR 'SPENDMULTISIG' + 0x11,0x0b, // LOAD_NAME 'OutputScriptType' + 0x13,0x11, // LOAD_ATTR 'PAYTOMULTISIG' + 0x62, // STORE_MAP + 0x11,0x0a, // LOAD_NAME 'InputScriptType' + 0x13,0x0f, // LOAD_ATTR 'SPENDP2SHWITNESS' + 0x11,0x0b, // LOAD_NAME 'OutputScriptType' + 0x13,0x12, // LOAD_ATTR 'PAYTOP2SHWITNESS' + 0x62, // STORE_MAP + 0x11,0x0a, // LOAD_NAME 'InputScriptType' + 0x13,0x10, // LOAD_ATTR 'SPENDWITNESS' + 0x11,0x0b, // LOAD_NAME 'OutputScriptType' + 0x13,0x13, // LOAD_ATTR 'PAYTOWITNESS' + 0x62, // STORE_MAP + 0x11,0x0a, // LOAD_NAME 'InputScriptType' + 0x13,0x16, // LOAD_ATTR 'SPENDTAPROOT' + 0x11,0x0b, // LOAD_NAME 'OutputScriptType' + 0x13,0x17, // LOAD_ATTR 'PAYTOTAPROOT' + 0x62, // STORE_MAP + 0x16,0x52, // STORE_NAME 'CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES' + 0x11,0x53, // LOAD_NAME 'tuple' + 0x11,0x52, // LOAD_NAME 'CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES' + 0x14,0x18, // LOAD_METHOD 'values' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x54, // STORE_NAME 'INTERNAL_INPUT_SCRIPT_TYPES' + 0x11,0x53, // LOAD_NAME 'tuple' + 0x11,0x52, // LOAD_NAME 'CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES' + 0x14,0x19, // LOAD_METHOD 'keys' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x55, // STORE_NAME 'CHANGE_OUTPUT_SCRIPT_TYPES' + 0x11,0x0a, // LOAD_NAME 'InputScriptType' + 0x13,0x0f, // LOAD_ATTR 'SPENDP2SHWITNESS' + 0x11,0x0a, // LOAD_NAME 'InputScriptType' + 0x13,0x10, // LOAD_ATTR 'SPENDWITNESS' + 0x11,0x0a, // LOAD_NAME 'InputScriptType' + 0x13,0x16, // LOAD_ATTR 'SPENDTAPROOT' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x16,0x56, // STORE_NAME 'SEGWIT_INPUT_SCRIPT_TYPES' + 0x11,0x0b, // LOAD_NAME 'OutputScriptType' + 0x13,0x12, // LOAD_ATTR 'PAYTOP2SHWITNESS' + 0x11,0x0b, // LOAD_NAME 'OutputScriptType' + 0x13,0x13, // LOAD_ATTR 'PAYTOWITNESS' + 0x11,0x0b, // LOAD_NAME 'OutputScriptType' + 0x13,0x17, // LOAD_ATTR 'PAYTOTAPROOT' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x16,0x57, // STORE_NAME 'SEGWIT_OUTPUT_SCRIPT_TYPES' + 0x11,0x0a, // LOAD_NAME 'InputScriptType' + 0x13,0x14, // LOAD_ATTR 'SPENDADDRESS' + 0x11,0x0a, // LOAD_NAME 'InputScriptType' + 0x13,0x0e, // LOAD_ATTR 'SPENDMULTISIG' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x16,0x58, // STORE_NAME 'NONSEGWIT_INPUT_SCRIPT_TYPES' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x1a, // STORE_NAME 'ecdsa_sign' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x20, // STORE_NAME 'bip340_sign' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x22, // STORE_NAME 'ecdsa_hash_pubkey' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x27, // STORE_NAME 'encode_bech32_address' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x2a, // STORE_NAME 'decode_bech32_address' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x2e, // STORE_NAME 'input_is_segwit' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x33, // STORE_NAME 'input_is_taproot' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x35, // STORE_NAME 'input_is_external' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x36, // STORE_NAME 'input_is_external_unverified' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x38, // STORE_NAME 'tagged_hashwriter' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x0b, // MAKE_FUNCTION_DEFARGS 11 + 0x16,0x3d, // STORE_NAME 'format_fee_rate' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_common__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/common.py, scope apps_bitcoin_common_SigHashType +static const byte fun_data_apps_bitcoin_common_SigHashType[48] = { + 0x08,0x18, // prelude + 0x0d, // names: SigHashType + 0x88,0x18,0x80,0x08,0x63,0x20,0x63,0x20,0x65,0x20,0x45, // code info + 0x11,0x59, // LOAD_NAME '__name__' + 0x16,0x5a, // STORE_NAME '__module__' + 0x10,0x0d, // LOAD_CONST_STRING 'SigHashType' + 0x16,0x5b, // STORE_NAME '__qualname__' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x5c, // STORE_NAME 'SIGHASH_ALL_TAPROOT' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x5d, // STORE_NAME 'SIGHASH_ALL' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x16,0x5e, // STORE_NAME 'SIGHASH_FORKID' + 0x22,0x80,0x41, // LOAD_CONST_SMALL_INT 65 + 0x16,0x5f, // STORE_NAME 'SIGHASH_ALL_FORKID' + 0x11,0x60, // LOAD_NAME 'classmethod' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x47, // STORE_NAME 'from_int' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_common_SigHashType +// frozen bytecode for file apps/bitcoin/common.py, scope apps_bitcoin_common_SigHashType_from_int +static const byte fun_data_apps_bitcoin_common_SigHashType_from_int[39] = { + 0x42,0x10, // prelude + 0x47,0x6f,0x70, // names: from_int, cls, sighash_type + 0x80,0x30,0x2b,0x25,0x24, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR '__dict__' + 0x14,0x18, // LOAD_METHOD 'values' + 0x36,0x00, // CALL_METHOD 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE + 0x42,0x34, // JUMP -12 + 0x12,0x71, // LOAD_GLOBAL 'ValueError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_common_SigHashType_from_int = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_common_SigHashType_from_int, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 71, + .line_info = fun_data_apps_bitcoin_common_SigHashType_from_int + 5, + .line_info_top = fun_data_apps_bitcoin_common_SigHashType_from_int + 10, + .opcodes = fun_data_apps_bitcoin_common_SigHashType_from_int + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_common_SigHashType[] = { + &raw_code_apps_bitcoin_common_SigHashType_from_int, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_common_SigHashType = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_common_SigHashType, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = (void *)&children_apps_bitcoin_common_SigHashType, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_bitcoin_common_SigHashType + 3, + .line_info_top = fun_data_apps_bitcoin_common_SigHashType + 14, + .opcodes = fun_data_apps_bitcoin_common_SigHashType + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_common__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/common.py, scope apps_bitcoin_common_ecdsa_sign +static const byte fun_data_apps_bitcoin_common_ecdsa_sign[69] = { + 0x5a,0x12, // prelude + 0x1a,0x61,0x26, // names: ecdsa_sign, node, digest + 0x80,0x69,0x2b,0x4b,0x2c,0x36, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1b, // LOAD_CONST_STRING 'der' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x1b, // IMPORT_FROM 'der' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1c, // LOAD_CONST_STRING 'secp256k1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x1c, // IMPORT_FROM 'secp256k1' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x1d, // LOAD_METHOD 'sign' + 0xb0, // LOAD_FAST 0 + 0x14,0x1e, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x14,0x1f, // LOAD_METHOD 'encode_seq' + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb4, // LOAD_FAST 4 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x22,0x80,0x41, // LOAD_CONST_SMALL_INT 65 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_common_ecdsa_sign = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_common_ecdsa_sign, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 69, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 26, + .line_info = fun_data_apps_bitcoin_common_ecdsa_sign + 5, + .line_info_top = fun_data_apps_bitcoin_common_ecdsa_sign + 11, + .opcodes = fun_data_apps_bitcoin_common_ecdsa_sign + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_common__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/common.py, scope apps_bitcoin_common_bip340_sign +static const byte fun_data_apps_bitcoin_common_bip340_sign[32] = { + 0x3a,0x0e, // prelude + 0x20,0x61,0x26, // names: bip340_sign, node, digest + 0x80,0x72,0x26,0x28, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x1e, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0x12,0x08, // LOAD_GLOBAL 'bip340' + 0x14,0x21, // LOAD_METHOD 'tweak_secret_key' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x12,0x08, // LOAD_GLOBAL 'bip340' + 0x14,0x1d, // LOAD_METHOD 'sign' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_common_bip340_sign = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_common_bip340_sign, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_bitcoin_common_bip340_sign + 5, + .line_info_top = fun_data_apps_bitcoin_common_bip340_sign + 9, + .opcodes = fun_data_apps_bitcoin_common_bip340_sign + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_common__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/common.py, scope apps_bitcoin_common_ecdsa_hash_pubkey +static const byte fun_data_apps_bitcoin_common_ecdsa_hash_pubkey[88] = { + 0x2a,0x16, // prelude + 0x22,0x62,0x63, // names: ecdsa_hash_pubkey, pubkey, coin + 0x80,0x78,0x4b,0x27,0x2f,0x27,0x4d,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x23, // LOAD_CONST_STRING 'ensure' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x24, // IMPORT_NAME 'trezor.utils' + 0x1c,0x23, // IMPORT_FROM 'ensure' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb2, // LOAD_FAST 2 + 0x12,0x64, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x80,0x41, // LOAD_CONST_SMALL_INT 65 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x5f, // JUMP 31 + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb2, // LOAD_FAST 2 + 0x12,0x64, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x4b, // JUMP 11 + 0xb2, // LOAD_FAST 2 + 0x12,0x64, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x25, // LOAD_METHOD 'script_hash' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x26, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_common_ecdsa_hash_pubkey = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_common_ecdsa_hash_pubkey, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 88, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_apps_bitcoin_common_ecdsa_hash_pubkey + 5, + .line_info_top = fun_data_apps_bitcoin_common_ecdsa_hash_pubkey + 13, + .opcodes = fun_data_apps_bitcoin_common_ecdsa_hash_pubkey + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_common__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/common.py, scope apps_bitcoin_common_encode_bech32_address +static const byte fun_data_apps_bitcoin_common_encode_bech32_address[38] = { + 0x43,0x14, // prelude + 0x27,0x65,0x66,0x67, // names: encode_bech32_address, prefix, witver, script + 0x80,0x85,0x20,0x2a,0x25,0x29, // code info + 0x12,0x06, // LOAD_GLOBAL 'bech32' + 0x14,0x28, // LOAD_METHOD 'encode' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x04, // LOAD_GLOBAL 'wire' + 0x14,0x29, // LOAD_METHOD 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_common_encode_bech32_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_common_encode_bech32_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_bitcoin_common_encode_bech32_address + 6, + .line_info_top = fun_data_apps_bitcoin_common_encode_bech32_address + 12, + .opcodes = fun_data_apps_bitcoin_common_encode_bech32_address + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_common__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/common.py, scope apps_bitcoin_common_decode_bech32_address +static const byte fun_data_apps_bitcoin_common_decode_bech32_address[70] = { + 0x3a,0x18, // prelude + 0x2a,0x65,0x68, // names: decode_bech32_address, prefix, address + 0x80,0x8d,0x2c,0x27,0x29,0x20,0x40,0x2e,0x29, // code info + 0x12,0x06, // LOAD_GLOBAL 'bech32' + 0x14,0x2b, // LOAD_METHOD 'decode' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc2, // STORE_FAST 2 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x12,0x4f, // LOAD_GLOBAL '_BECH32_WITVERS' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x04, // LOAD_GLOBAL 'wire' + 0x14,0x2c, // LOAD_METHOD 'DataError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x08, // LOAD_GLOBAL 'bip340' + 0x14,0x2d, // LOAD_METHOD 'verify_publickey' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x12,0x04, // LOAD_GLOBAL 'wire' + 0x14,0x2c, // LOAD_METHOD 'DataError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_common_decode_bech32_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_common_decode_bech32_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_bitcoin_common_decode_bech32_address + 5, + .line_info_top = fun_data_apps_bitcoin_common_decode_bech32_address + 14, + .opcodes = fun_data_apps_bitcoin_common_decode_bech32_address + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_common__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/common.py, scope apps_bitcoin_common_input_is_segwit +static const byte fun_data_apps_bitcoin_common_input_is_segwit[40] = { + 0x11,0x0c, // prelude + 0x2e,0x69, // names: input_is_segwit, txi + 0x80,0x9c,0x28,0x2a, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'script_type' + 0x12,0x56, // LOAD_GLOBAL 'SEGWIT_INPUT_SCRIPT_TYPES' + 0xdd, // BINARY_OP 6 + 0x45,0x17, // JUMP_IF_TRUE_OR_POP 23 + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'script_type' + 0x12,0x0a, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x30, // LOAD_ATTR 'EXTERNAL' + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x0d, // JUMP_IF_FALSE_OR_POP 13 + 0x12,0x6a, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x31, // LOAD_ATTR 'witness' + 0x45,0x04, // JUMP_IF_TRUE_OR_POP 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x32, // LOAD_ATTR 'script_sig' + 0xd3, // UNARY_OP 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_common_input_is_segwit = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_common_input_is_segwit, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 40, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_bitcoin_common_input_is_segwit + 4, + .line_info_top = fun_data_apps_bitcoin_common_input_is_segwit + 8, + .opcodes = fun_data_apps_bitcoin_common_input_is_segwit + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_common__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/common.py, scope apps_bitcoin_common_input_is_taproot +static const byte fun_data_apps_bitcoin_common_input_is_taproot[49] = { + 0x11,0x14, // prelude + 0x33,0x69, // names: input_is_taproot, txi + 0x80,0xa3,0x2a,0x42,0x2a,0x20,0x2b,0x42, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'script_type' + 0x12,0x0a, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x16, // LOAD_ATTR 'SPENDTAPROOT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'script_type' + 0x12,0x0a, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x30, // LOAD_ATTR 'EXTERNAL' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'script_pubkey' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x22,0x80,0x51, // LOAD_CONST_SMALL_INT 81 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_common_input_is_taproot = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_common_input_is_taproot, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 51, + .line_info = fun_data_apps_bitcoin_common_input_is_taproot + 4, + .line_info_top = fun_data_apps_bitcoin_common_input_is_taproot + 12, + .opcodes = fun_data_apps_bitcoin_common_input_is_taproot + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_common__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/common.py, scope apps_bitcoin_common_input_is_external +static const byte fun_data_apps_bitcoin_common_input_is_external[15] = { + 0x11,0x08, // prelude + 0x35,0x69, // names: input_is_external, txi + 0x80,0xaf, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'script_type' + 0x12,0x0a, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x30, // LOAD_ATTR 'EXTERNAL' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_common_input_is_external = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_common_input_is_external, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 53, + .line_info = fun_data_apps_bitcoin_common_input_is_external + 4, + .line_info_top = fun_data_apps_bitcoin_common_input_is_external + 6, + .opcodes = fun_data_apps_bitcoin_common_input_is_external + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_common__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/common.py, scope apps_bitcoin_common_input_is_external_unverified +static const byte fun_data_apps_bitcoin_common_input_is_external_unverified[40] = { + 0x11,0x10, // prelude + 0x36,0x69, // names: input_is_external_unverified, txi + 0x80,0xb3,0x20,0x2a,0x27,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'script_type' + 0x12,0x0a, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x30, // LOAD_ATTR 'EXTERNAL' + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x13, // JUMP_IF_FALSE_OR_POP 19 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'ownership_proof' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x46,0x0c, // JUMP_IF_FALSE_OR_POP 12 + 0xb0, // LOAD_FAST 0 + 0x13,0x31, // LOAD_ATTR 'witness' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x46,0x05, // JUMP_IF_FALSE_OR_POP 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x32, // LOAD_ATTR 'script_sig' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_common_input_is_external_unverified = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_common_input_is_external_unverified, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 40, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 54, + .line_info = fun_data_apps_bitcoin_common_input_is_external_unverified + 4, + .line_info_top = fun_data_apps_bitcoin_common_input_is_external_unverified + 10, + .opcodes = fun_data_apps_bitcoin_common_input_is_external_unverified + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_common__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/common.py, scope apps_bitcoin_common_tagged_hashwriter +static const byte fun_data_apps_bitcoin_common_tagged_hashwriter[59] = { + 0x39,0x12, // prelude + 0x38,0x6b, // names: tagged_hashwriter, tag + 0x80,0xbc,0x2b,0x4b,0x29,0x25,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x39, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x3a, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x39, // IMPORT_FROM 'sha256' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3b, // LOAD_CONST_STRING 'HashWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x24, // IMPORT_NAME 'trezor.utils' + 0x1c,0x3b, // IMPORT_FROM 'HashWriter' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x26, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x14,0x3c, // LOAD_METHOD 'update' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_common_tagged_hashwriter = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_common_tagged_hashwriter, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 56, + .line_info = fun_data_apps_bitcoin_common_tagged_hashwriter + 4, + .line_info_top = fun_data_apps_bitcoin_common_tagged_hashwriter + 11, + .opcodes = fun_data_apps_bitcoin_common_tagged_hashwriter + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_common__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/common.py, scope apps_bitcoin_common_format_fee_rate +static const byte fun_data_apps_bitcoin_common_format_fee_rate[86] = { + 0xd3,0x01,0x18, // prelude + 0x3d,0x6c,0x63,0x6d, // names: format_fee_rate, fee_rate, coin, include_shortcut + 0x80,0xc8,0x6b,0x60,0x51,0x2b,0x49,0x43, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3e, // LOAD_CONST_STRING 'format_amount' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x3f, // IMPORT_NAME 'trezor.strings' + 0x1c,0x3e, // IMPORT_FROM 'format_amount' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x12,0x6e, // LOAD_GLOBAL 'int' + 0xb0, // LOAD_FAST 0 + 0x22,0x80,0x64, // LOAD_CONST_SMALL_INT 100 + 0xf4, // BINARY_OP 29 __mul__ + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb1, // LOAD_FAST 1 + 0x13,0x40, // LOAD_ATTR 'coin_shortcut' + 0x10,0x41, // LOAD_CONST_STRING 'BTC' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x10,0x42, // LOAD_CONST_STRING ' ' + 0xb1, // LOAD_FAST 1 + 0x13,0x40, // LOAD_ATTR 'coin_shortcut' + 0xf2, // BINARY_OP 27 __add__ + 0xc5, // STORE_FAST 5 + 0x42,0x43, // JUMP 3 + 0x10,0x43, // LOAD_CONST_STRING '' + 0xc5, // STORE_FAST 5 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x14,0x44, // LOAD_METHOD 'format' + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x45, // LOAD_ATTR 'segwit' + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x10,0x46, // LOAD_CONST_STRING 'v' + 0x42,0x42, // JUMP 2 + 0x10,0x43, // LOAD_CONST_STRING '' + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_common_format_fee_rate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_common_format_fee_rate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 86, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 61, + .line_info = fun_data_apps_bitcoin_common_format_fee_rate + 7, + .line_info_top = fun_data_apps_bitcoin_common_format_fee_rate + 15, + .opcodes = fun_data_apps_bitcoin_common_format_fee_rate + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_common__lt_module_gt_[] = { + &raw_code_apps_bitcoin_common_SigHashType, + &raw_code_apps_bitcoin_common_ecdsa_sign, + &raw_code_apps_bitcoin_common_bip340_sign, + &raw_code_apps_bitcoin_common_ecdsa_hash_pubkey, + &raw_code_apps_bitcoin_common_encode_bech32_address, + &raw_code_apps_bitcoin_common_decode_bech32_address, + &raw_code_apps_bitcoin_common_input_is_segwit, + &raw_code_apps_bitcoin_common_input_is_taproot, + &raw_code_apps_bitcoin_common_input_is_external, + &raw_code_apps_bitcoin_common_input_is_external_unverified, + &raw_code_apps_bitcoin_common_tagged_hashwriter, + &raw_code_apps_bitcoin_common_format_fee_rate, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_common__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_common__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 366, + #endif + .children = (void *)&children_apps_bitcoin_common__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 12, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_common__lt_module_gt_ + 4, + .line_info_top = fun_data_apps_bitcoin_common__lt_module_gt_ + 67, + .opcodes = fun_data_apps_bitcoin_common__lt_module_gt_ + 67, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_common[114] = { + MP_QSTR_apps_slash_bitcoin_slash_common_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_bech32, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_bip340, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_InputScriptType, + MP_QSTR_OutputScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_SigHashType, + MP_QSTR_SPENDMULTISIG, + MP_QSTR_SPENDP2SHWITNESS, + MP_QSTR_SPENDWITNESS, + MP_QSTR_PAYTOMULTISIG, + MP_QSTR_PAYTOP2SHWITNESS, + MP_QSTR_PAYTOWITNESS, + MP_QSTR_SPENDADDRESS, + MP_QSTR_PAYTOADDRESS, + MP_QSTR_SPENDTAPROOT, + MP_QSTR_PAYTOTAPROOT, + MP_QSTR_values, + MP_QSTR_keys, + MP_QSTR_ecdsa_sign, + MP_QSTR_der, + MP_QSTR_secp256k1, + MP_QSTR_sign, + MP_QSTR_private_key, + MP_QSTR_encode_seq, + MP_QSTR_bip340_sign, + MP_QSTR_tweak_secret_key, + MP_QSTR_ecdsa_hash_pubkey, + MP_QSTR_ensure, + MP_QSTR_trezor_dot_utils, + MP_QSTR_script_hash, + MP_QSTR_digest, + MP_QSTR_encode_bech32_address, + MP_QSTR_encode, + MP_QSTR_ProcessError, + MP_QSTR_decode_bech32_address, + MP_QSTR_decode, + MP_QSTR_DataError, + MP_QSTR_verify_publickey, + MP_QSTR_input_is_segwit, + MP_QSTR_script_type, + MP_QSTR_EXTERNAL, + MP_QSTR_witness, + MP_QSTR_script_sig, + MP_QSTR_input_is_taproot, + MP_QSTR_script_pubkey, + MP_QSTR_input_is_external, + MP_QSTR_input_is_external_unverified, + MP_QSTR_ownership_proof, + MP_QSTR_tagged_hashwriter, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_HashWriter, + MP_QSTR_update, + MP_QSTR_format_fee_rate, + MP_QSTR_format_amount, + MP_QSTR_trezor_dot_strings, + MP_QSTR_coin_shortcut, + MP_QSTR_BTC, + MP_QSTR__space_, + MP_QSTR_, + MP_QSTR_format, + MP_QSTR_segwit, + MP_QSTR_v, + MP_QSTR_from_int, + MP_QSTR___dict__, + MP_QSTR_object, + MP_QSTR_IntEnum, + MP_QSTR_BITCOIN_NAMES, + MP_QSTR_BIP32_WALLET_DEPTH, + MP_QSTR_OP_0, + MP_QSTR_OP_1, + MP_QSTR__BECH32_WITVERS, + MP_QSTR_MULTISIG_INPUT_SCRIPT_TYPES, + MP_QSTR_MULTISIG_OUTPUT_SCRIPT_TYPES, + MP_QSTR_CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES, + MP_QSTR_tuple, + MP_QSTR_INTERNAL_INPUT_SCRIPT_TYPES, + MP_QSTR_CHANGE_OUTPUT_SCRIPT_TYPES, + MP_QSTR_SEGWIT_INPUT_SCRIPT_TYPES, + MP_QSTR_SEGWIT_OUTPUT_SCRIPT_TYPES, + MP_QSTR_NONSEGWIT_INPUT_SCRIPT_TYPES, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_SIGHASH_ALL_TAPROOT, + MP_QSTR_SIGHASH_ALL, + MP_QSTR_SIGHASH_FORKID, + MP_QSTR_SIGHASH_ALL_FORKID, + MP_QSTR_classmethod, + MP_QSTR_node, + MP_QSTR_pubkey, + MP_QSTR_coin, + MP_QSTR_len, + MP_QSTR_prefix, + MP_QSTR_witver, + MP_QSTR_script, + MP_QSTR_address, + MP_QSTR_txi, + MP_QSTR_bool, + MP_QSTR_tag, + MP_QSTR_fee_rate, + MP_QSTR_include_shortcut, + MP_QSTR_int, + MP_QSTR_cls, + MP_QSTR_sighash_type, + MP_QSTR_ValueError, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_bitcoin_common_0 = {{&mp_type_tuple}, 3, { + MP_ROM_QSTR(MP_QSTR_Bitcoin), + MP_ROM_QSTR(MP_QSTR_Regtest), + MP_ROM_QSTR(MP_QSTR_Testnet), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_bitcoin_common_1 = {{&mp_type_tuple}, 2, { + MP_ROM_INT(0), + MP_ROM_INT(1), +}}; +static const mp_obj_str_t const_obj_apps_bitcoin_common_3 = {{&mp_type_str}, 23831, 31, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x61\x64\x64\x72\x65\x73\x73\x20\x77\x69\x74\x6e\x65\x73\x73\x20\x70\x72\x6f\x67\x72\x61\x6d"}; +static const mp_obj_str_t const_obj_apps_bitcoin_common_4 = {{&mp_type_str}, 34242, 31, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x54\x61\x70\x72\x6f\x6f\x74\x20\x77\x69\x74\x6e\x65\x73\x73\x20\x70\x72\x6f\x67\x72\x61\x6d"}; +#if MICROPY_OBJ_REPR == MICROPY_OBJ_REPR_A || MICROPY_OBJ_REPR == MICROPY_OBJ_REPR_B +static const mp_obj_float_t const_obj_apps_bitcoin_common_5 = {{&mp_type_float}, (mp_float_t)0.5}; +#define const_obj_apps_bitcoin_common_5_macro MP_ROM_PTR(&const_obj_apps_bitcoin_common_5) +#elif MICROPY_OBJ_REPR == MICROPY_OBJ_REPR_C +#define const_obj_apps_bitcoin_common_5_macro ((mp_rom_obj_t)(0xbf800002)) +#elif MICROPY_OBJ_REPR == MICROPY_OBJ_REPR_D +#define const_obj_apps_bitcoin_common_5_macro ((mp_rom_obj_t)(0xbfe4000000000000)) +#endif +static const mp_obj_str_t const_obj_apps_bitcoin_common_7 = {{&mp_type_str}, 61225, 25, (const byte*)"\x55\x6e\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x73\x69\x67\x68\x61\x73\x68\x20\x74\x79\x70\x65\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_common[8] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_common_0), + MP_ROM_PTR(&const_obj_apps_bitcoin_common_1), + MP_ROM_QSTR(MP_QSTR_Invalid_space_address), + MP_ROM_PTR(&const_obj_apps_bitcoin_common_3), + MP_ROM_PTR(&const_obj_apps_bitcoin_common_4), + const_obj_apps_bitcoin_common_5_macro, + MP_ROM_QSTR(MP_QSTR__brace_open__brace_close__space_sat_brace_open__brace_close__slash__brace_open__brace_close_B), + MP_ROM_PTR(&const_obj_apps_bitcoin_common_7), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_common = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_common, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_common, + }, + .rc = &raw_code_apps_bitcoin_common__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_get_address +// - original source file: build/firmware/src/apps/bitcoin/get_address.mpy +// - frozen file name: apps/bitcoin/get_address.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/get_address.py, scope apps_bitcoin_get_address__lt_module_gt_ +static const byte fun_data_apps_bitcoin_get_address__lt_module_gt_[35] = { + 0x08,0x0e, // prelude + 0x01, // names: + 0x40,0x4c,0x80,0x07,0x84,0x14, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x02, // LOAD_CONST_STRING 'with_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'keychain' + 0x1c,0x02, // IMPORT_FROM 'with_keychain' + 0x16,0x02, // STORE_NAME 'with_keychain' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x04, // STORE_NAME '_get_xpubs' + 0x11,0x02, // LOAD_NAME 'with_keychain' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x10, // STORE_NAME 'get_address' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_get_address__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/get_address.py, scope apps_bitcoin_get_address__get_xpubs +static const byte fun_data_apps_bitcoin_get_address__get_xpubs[92] = { + 0xc3,0x10,0x22, // prelude + 0x04,0x44,0x2c,0x45, // names: _get_xpubs, coin, xpub_magic, pubnodes + 0x80,0x0e,0x4b,0x23,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x47,0x4e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'bip32' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x05, // IMPORT_FROM 'bip32' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x2b,0x00, // BUILD_LIST 0 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x5f, // GET_ITER_STACK + 0x4b,0x34, // FOR_ITER 52 + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x14,0x07, // LOAD_METHOD 'HDNode' + 0x10,0x08, // LOAD_CONST_STRING 'depth' + 0xb5, // LOAD_FAST 5 + 0x13,0x08, // LOAD_ATTR 'depth' + 0x10,0x09, // LOAD_CONST_STRING 'fingerprint' + 0xb5, // LOAD_FAST 5 + 0x13,0x09, // LOAD_ATTR 'fingerprint' + 0x10,0x0a, // LOAD_CONST_STRING 'child_num' + 0xb5, // LOAD_FAST 5 + 0x13,0x0a, // LOAD_ATTR 'child_num' + 0x10,0x0b, // LOAD_CONST_STRING 'chain_code' + 0xb5, // LOAD_FAST 5 + 0x13,0x0b, // LOAD_ATTR 'chain_code' + 0x10,0x0c, // LOAD_CONST_STRING 'public_key' + 0xb5, // LOAD_FAST 5 + 0x13,0x0c, // LOAD_ATTR 'public_key' + 0x10,0x0d, // LOAD_CONST_STRING 'curve_name' + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'curve_name' + 0x36,0x8c,0x00, // CALL_METHOD 1536 + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x14,0x0e, // LOAD_METHOD 'append' + 0xb6, // LOAD_FAST 6 + 0x14,0x0f, // LOAD_METHOD 'serialize_public' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x0a, // JUMP -54 + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_get_address__get_xpubs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_get_address__get_xpubs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 92, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 25, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_bitcoin_get_address__get_xpubs + 7, + .line_info_top = fun_data_apps_bitcoin_get_address__get_xpubs + 20, + .opcodes = fun_data_apps_bitcoin_get_address__get_xpubs + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_get_address__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/get_address.py, scope apps_bitcoin_get_address_get_address +static const byte fun_data_apps_bitcoin_get_address_get_address[600] = { + 0xdb,0x60,0x8e,0x02, // prelude + 0x10,0x46,0x03,0x44, // names: get_address, msg, keychain, coin + 0x80,0x21,0x2b,0x2b,0x50,0x2b,0x50,0x2b,0x30,0x4b,0x24,0x24,0x45,0x45,0x63,0x6b,0x48,0x2d,0x4a,0x23,0x27,0x23,0x48,0x25,0x28,0x45,0x23,0x25,0x23,0x2a,0x20,0x28,0x48,0x47,0x28,0x48,0x69,0x20,0x25,0x28,0x47,0x4b,0x26,0x26,0x24,0x25,0x47,0x29,0x4c,0x21,0x22,0x22,0x68,0x71,0x40,0x2b,0x31,0x71,0x29,0x26,0x26,0x27,0x47,0x2d,0x75,0x60,0x6e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'InputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x12, // IMPORT_NAME 'trezor.enums' + 0x1c,0x11, // IMPORT_FROM 'InputScriptType' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'Address' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'trezor.messages' + 0x1c,0x13, // IMPORT_FROM 'Address' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x15, // LOAD_CONST_STRING 'show_address' + 0x10,0x16, // LOAD_CONST_STRING 'show_warning' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x17, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x15, // IMPORT_FROM 'show_address' + 0xc5, // STORE_FAST 5 + 0x1c,0x16, // IMPORT_FROM 'show_warning' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x18, // LOAD_CONST_STRING 'get_address_mac' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x19, // IMPORT_NAME 'apps.common.address_mac' + 0x1c,0x18, // IMPORT_FROM 'get_address_mac' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1a, // LOAD_CONST_STRING 'address_n_to_str' + 0x10,0x1b, // LOAD_CONST_STRING 'validate_path' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x1c, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x1a, // IMPORT_FROM 'address_n_to_str' + 0xc8, // STORE_FAST 8 + 0x1c,0x1b, // IMPORT_FROM 'validate_path' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1d, // LOAD_CONST_STRING 'addresses' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME '' + 0x1c,0x1d, // IMPORT_FROM 'addresses' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1f, // LOAD_CONST_STRING 'address_n_to_name' + 0x10,0x20, // LOAD_CONST_STRING 'validate_path_against_script_type' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x03, // IMPORT_NAME 'keychain' + 0x1c,0x1f, // IMPORT_FROM 'address_n_to_name' + 0xcb, // STORE_FAST 11 + 0x1c,0x20, // IMPORT_FROM 'validate_path_against_script_type' + 0xcc, // STORE_FAST 12 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x21, // LOAD_CONST_STRING 'multisig_pubkey_index' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x22, // IMPORT_NAME 'multisig' + 0x1c,0x21, // IMPORT_FROM 'multisig_pubkey_index' + 0xcd, // STORE_FAST 13 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'multisig' + 0xce, // STORE_FAST 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'address_n' + 0xcf, // STORE_FAST 15 + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'script_type' + 0x26,0x10, // STORE_FAST_N 16 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'show_display' + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb9, // LOAD_FAST 9 + 0xb1, // LOAD_FAST 1 + 0xbf, // LOAD_FAST 15 + 0xbc, // LOAD_FAST 12 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x26, // LOAD_METHOD 'derive' + 0xbf, // LOAD_FAST 15 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x11, // STORE_FAST_N 17 + 0xba, // LOAD_FAST 10 + 0x14,0x10, // LOAD_METHOD 'get_address' + 0x24,0x10, // LOAD_FAST_N 16 + 0xb2, // LOAD_FAST 2 + 0x24,0x11, // LOAD_FAST_N 17 + 0xbe, // LOAD_FAST 14 + 0x36,0x04, // CALL_METHOD 4 + 0x26,0x12, // STORE_FAST_N 18 + 0xba, // LOAD_FAST 10 + 0x14,0x27, // LOAD_METHOD 'address_short' + 0xb2, // LOAD_FAST 2 + 0x24,0x12, // LOAD_FAST_N 18 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x13, // STORE_FAST_N 19 + 0x52, // LOAD_CONST_TRUE + 0x26,0x14, // STORE_FAST_N 20 + 0xb2, // LOAD_FAST 2 + 0x13,0x28, // LOAD_ATTR 'segwit' + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x24,0x10, // LOAD_FAST_N 16 + 0xb3, // LOAD_FAST 3 + 0x13,0x29, // LOAD_ATTR 'SPENDWITNESS' + 0xb3, // LOAD_FAST 3 + 0x13,0x2a, // LOAD_ATTR 'SPENDTAPROOT' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x50, // LOAD_CONST_FALSE + 0x26,0x14, // STORE_FAST_N 20 + 0x42,0x4d, // JUMP 13 + 0xb2, // LOAD_FAST 2 + 0x13,0x2b, // LOAD_ATTR 'cashaddr_prefix' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x50, // LOAD_CONST_FALSE + 0x26,0x14, // STORE_FAST_N 20 + 0x42,0x40, // JUMP 0 + 0x51, // LOAD_CONST_NONE + 0x26,0x15, // STORE_FAST_N 21 + 0xb2, // LOAD_FAST 2 + 0x13,0x2c, // LOAD_ATTR 'xpub_magic' + 0x26,0x16, // STORE_FAST_N 22 + 0xbe, // LOAD_FAST 14 + 0x44,0x7a, // POP_JUMP_IF_FALSE 58 + 0xb2, // LOAD_FAST 2 + 0x13,0x28, // LOAD_ATTR 'segwit' + 0x44,0x73, // POP_JUMP_IF_FALSE 51 + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR 'ignore_xpub_magic' + 0x43,0x6e, // POP_JUMP_IF_TRUE 46 + 0x24,0x10, // LOAD_FAST_N 16 + 0xb3, // LOAD_FAST 3 + 0x13,0x29, // LOAD_ATTR 'SPENDWITNESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb2, // LOAD_FAST 2 + 0x13,0x2e, // LOAD_ATTR 'xpub_magic_multisig_segwit_native' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb2, // LOAD_FAST 2 + 0x13,0x2e, // LOAD_ATTR 'xpub_magic_multisig_segwit_native' + 0x26,0x16, // STORE_FAST_N 22 + 0x42,0x57, // JUMP 23 + 0x24,0x10, // LOAD_FAST_N 16 + 0xb3, // LOAD_FAST 3 + 0x13,0x2f, // LOAD_ATTR 'SPENDP2SHWITNESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb2, // LOAD_FAST 2 + 0x13,0x30, // LOAD_ATTR 'xpub_magic_multisig_segwit_p2sh' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb2, // LOAD_FAST 2 + 0x13,0x30, // LOAD_ATTR 'xpub_magic_multisig_segwit_p2sh' + 0x26,0x16, // STORE_FAST_N 22 + 0x42,0x40, // JUMP 0 + 0x42,0x5f, // JUMP 31 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'show_display' + 0x43,0x4f, // POP_JUMP_IF_TRUE 15 + 0xb1, // LOAD_FAST 1 + 0x14,0x31, // LOAD_METHOD 'is_in_keychain' + 0xbf, // LOAD_FAST 15 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xbc, // LOAD_FAST 12 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb7, // LOAD_FAST 7 + 0x24,0x12, // LOAD_FAST_N 18 + 0xb2, // LOAD_FAST 2 + 0x13,0x32, // LOAD_ATTR 'slip44' + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x26,0x15, // STORE_FAST_N 21 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'show_display' + 0x44,0xc9,0x81, // POP_JUMP_IF_FALSE 201 + 0xb8, // LOAD_FAST 8 + 0xbf, // LOAD_FAST 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x17, // STORE_FAST_N 23 + 0xbe, // LOAD_FAST 14 + 0x44,0xec,0x80, // POP_JUMP_IF_FALSE 108 + 0xbe, // LOAD_FAST 14 + 0x13,0x33, // LOAD_ATTR 'nodes' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xbe, // LOAD_FAST 14 + 0x13,0x33, // LOAD_ATTR 'nodes' + 0x26,0x18, // STORE_FAST_N 24 + 0x42,0x49, // JUMP 9 + 0x32,0x00, // MAKE_FUNCTION 0 + 0xbe, // LOAD_FAST 14 + 0x13,0x34, // LOAD_ATTR 'pubkeys' + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x18, // STORE_FAST_N 24 + 0xbd, // LOAD_FAST 13 + 0xbe, // LOAD_FAST 14 + 0x24,0x11, // LOAD_FAST_N 17 + 0x14,0x0c, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x19, // STORE_FAST_N 25 + 0xb6, // LOAD_FAST 6 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x24,0x13, // LOAD_FAST_N 19 + 0x10,0x35, // LOAD_CONST_STRING 'case_sensitive' + 0x24,0x14, // LOAD_FAST_N 20 + 0x10,0x36, // LOAD_CONST_STRING 'path' + 0x24,0x17, // LOAD_FAST_N 23 + 0x10,0x37, // LOAD_CONST_STRING 'multisig_index' + 0x24,0x19, // LOAD_FAST_N 25 + 0x10,0x38, // LOAD_CONST_STRING 'xpubs' + 0x12,0x04, // LOAD_GLOBAL '_get_xpubs' + 0xb2, // LOAD_FAST 2 + 0x24,0x16, // LOAD_FAST_N 22 + 0x24,0x18, // LOAD_FAST_N 24 + 0x34,0x03, // CALL_FUNCTION 3 + 0x10,0x39, // LOAD_CONST_STRING 'account' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x14,0x3a, // LOAD_METHOD 'format' + 0xbe, // LOAD_FAST 14 + 0x13,0x3b, // LOAD_ATTR 'm' + 0x12,0x47, // LOAD_GLOBAL 'len' + 0x24,0x18, // LOAD_FAST_N 24 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x02, // CALL_METHOD 2 + 0x10,0x3c, // LOAD_CONST_STRING 'chunkify' + 0x12,0x48, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x3c, // LOAD_ATTR 'chunkify' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x8c,0x01, // CALL_FUNCTION 1537 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0xd3,0x80, // JUMP 83 + 0xbb, // LOAD_FAST 11 + 0xb2, // LOAD_FAST 2 + 0xbf, // LOAD_FAST 15 + 0x24,0x10, // LOAD_FAST_N 16 + 0x34,0x03, // CALL_FUNCTION 3 + 0x26,0x1a, // STORE_FAST_N 26 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x26,0x1b, // STORE_FAST_N 27 + 0x42,0x5b, // JUMP 27 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x10,0x1e, // LOAD_CONST_STRING '' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb2, // LOAD_FAST 2 + 0x13,0x3d, // LOAD_ATTR 'coin_shortcut' + 0x26,0x1b, // STORE_FAST_N 27 + 0x42,0x4d, // JUMP 13 + 0x10,0x3e, // LOAD_CONST_STRING '{} {}' + 0x14,0x3a, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x13,0x3d, // LOAD_ATTR 'coin_shortcut' + 0x24,0x1a, // LOAD_FAST_N 26 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x1b, // STORE_FAST_N 27 + 0xb5, // LOAD_FAST 5 + 0x24,0x13, // LOAD_FAST_N 19 + 0x10,0x3f, // LOAD_CONST_STRING 'address_qr' + 0x24,0x12, // LOAD_FAST_N 18 + 0x10,0x35, // LOAD_CONST_STRING 'case_sensitive' + 0x24,0x14, // LOAD_FAST_N 20 + 0x10,0x36, // LOAD_CONST_STRING 'path' + 0x24,0x17, // LOAD_FAST_N 23 + 0x10,0x39, // LOAD_CONST_STRING 'account' + 0x24,0x1b, // LOAD_FAST_N 27 + 0x10,0x3c, // LOAD_CONST_STRING 'chunkify' + 0x12,0x48, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x3c, // LOAD_ATTR 'chunkify' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x8a,0x01, // CALL_FUNCTION 1281 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x10,0x40, // LOAD_CONST_STRING 'address' + 0x24,0x12, // LOAD_FAST_N 18 + 0x10,0x41, // LOAD_CONST_STRING 'mac' + 0x24,0x15, // LOAD_FAST_N 21 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_get_address_get_address +// frozen bytecode for file apps/bitcoin/get_address.py, scope apps_bitcoin_get_address_get_address__lt_listcomp_gt_ +static const byte fun_data_apps_bitcoin_get_address_get_address__lt_listcomp_gt_[21] = { + 0x39,0x08, // prelude + 0x42,0x49, // names: , * + 0x80,0x63, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x08, // FOR_ITER 8 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x43, // LOAD_ATTR 'node' + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x36, // JUMP -10 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_get_address_get_address__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_get_address_get_address__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 66, + .line_info = fun_data_apps_bitcoin_get_address_get_address__lt_listcomp_gt_ + 4, + .line_info_top = fun_data_apps_bitcoin_get_address_get_address__lt_listcomp_gt_ + 6, + .opcodes = fun_data_apps_bitcoin_get_address_get_address__lt_listcomp_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_get_address_get_address[] = { + &raw_code_apps_bitcoin_get_address_get_address__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_get_address_get_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_get_address_get_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 600, + #endif + .children = (void *)&children_apps_bitcoin_get_address_get_address, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 44, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_bitcoin_get_address_get_address + 8, + .line_info_top = fun_data_apps_bitcoin_get_address_get_address + 75, + .opcodes = fun_data_apps_bitcoin_get_address_get_address + 75, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_get_address__lt_module_gt_[] = { + &raw_code_apps_bitcoin_get_address__get_xpubs, + &raw_code_apps_bitcoin_get_address_get_address, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_get_address__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_get_address__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = (void *)&children_apps_bitcoin_get_address__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_get_address__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_get_address__lt_module_gt_ + 9, + .opcodes = fun_data_apps_bitcoin_get_address__lt_module_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_get_address[74] = { + MP_QSTR_apps_slash_bitcoin_slash_get_address_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_with_keychain, + MP_QSTR_keychain, + MP_QSTR__get_xpubs, + MP_QSTR_bip32, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_HDNode, + MP_QSTR_depth, + MP_QSTR_fingerprint, + MP_QSTR_child_num, + MP_QSTR_chain_code, + MP_QSTR_public_key, + MP_QSTR_curve_name, + MP_QSTR_append, + MP_QSTR_serialize_public, + MP_QSTR_get_address, + MP_QSTR_InputScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_Address, + MP_QSTR_trezor_dot_messages, + MP_QSTR_show_address, + MP_QSTR_show_warning, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_get_address_mac, + MP_QSTR_apps_dot_common_dot_address_mac, + MP_QSTR_address_n_to_str, + MP_QSTR_validate_path, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_addresses, + MP_QSTR_, + MP_QSTR_address_n_to_name, + MP_QSTR_validate_path_against_script_type, + MP_QSTR_multisig_pubkey_index, + MP_QSTR_multisig, + MP_QSTR_address_n, + MP_QSTR_script_type, + MP_QSTR_show_display, + MP_QSTR_derive, + MP_QSTR_address_short, + MP_QSTR_segwit, + MP_QSTR_SPENDWITNESS, + MP_QSTR_SPENDTAPROOT, + MP_QSTR_cashaddr_prefix, + MP_QSTR_xpub_magic, + MP_QSTR_ignore_xpub_magic, + MP_QSTR_xpub_magic_multisig_segwit_native, + MP_QSTR_SPENDP2SHWITNESS, + MP_QSTR_xpub_magic_multisig_segwit_p2sh, + MP_QSTR_is_in_keychain, + MP_QSTR_slip44, + MP_QSTR_nodes, + MP_QSTR_pubkeys, + MP_QSTR_case_sensitive, + MP_QSTR_path, + MP_QSTR_multisig_index, + MP_QSTR_xpubs, + MP_QSTR_account, + MP_QSTR_format, + MP_QSTR_m, + MP_QSTR_chunkify, + MP_QSTR_coin_shortcut, + MP_QSTR__brace_open__brace_close__space__brace_open__brace_close_, + MP_QSTR_address_qr, + MP_QSTR_address, + MP_QSTR_mac, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_node, + MP_QSTR_coin, + MP_QSTR_pubnodes, + MP_QSTR_msg, + MP_QSTR_len, + MP_QSTR_bool, + MP_QSTR__star_, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_get_address_1 = {{&mp_type_str}, 61053, 32, (const byte*)"\x52\x65\x63\x65\x69\x76\x69\x6e\x67\x20\x74\x6f\x20\x61\x20\x6d\x75\x6c\x74\x69\x73\x69\x67\x20\x61\x64\x64\x72\x65\x73\x73\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_get_address[5] = { + MP_ROM_QSTR(MP_QSTR_warning_multisig), + MP_ROM_PTR(&const_obj_apps_bitcoin_get_address_1), + MP_ROM_QSTR(MP_QSTR_Continue_space_anyway_question_), + MP_ROM_QSTR(MP_QSTR_Multisig_space__brace_open__brace_close__space_of_space__brace_open__brace_close_), + MP_ROM_QSTR(MP_QSTR_Unknown_space_path), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_get_address = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_get_address, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_get_address, + }, + .rc = &raw_code_apps_bitcoin_get_address__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_get_ownership_id +// - original source file: build/firmware/src/apps/bitcoin/get_ownership_id.mpy +// - frozen file name: apps/bitcoin/get_ownership_id.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/get_ownership_id.py, scope apps_bitcoin_get_ownership_id__lt_module_gt_ +static const byte fun_data_apps_bitcoin_get_ownership_id__lt_module_gt_[29] = { + 0x08,0x0a, // prelude + 0x01, // names: + 0x40,0x4c,0x80,0x07, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x02, // LOAD_CONST_STRING 'with_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'keychain' + 0x1c,0x02, // IMPORT_FROM 'with_keychain' + 0x16,0x02, // STORE_NAME 'with_keychain' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'with_keychain' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x04, // STORE_NAME 'get_ownership_id' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_get_ownership_id__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/get_ownership_id.py, scope apps_bitcoin_get_ownership_id_get_ownership_id +static const byte fun_data_apps_bitcoin_get_ownership_id_get_ownership_id[232] = { + 0xb3,0x50,0x36, // prelude + 0x04,0x20,0x03,0x21, // names: get_ownership_id, msg, keychain, coin + 0x80,0x0f,0x2b,0x2b,0x4b,0x4b,0x35,0x2b,0x4b,0x44,0x42,0x23,0x6b,0x28,0x46,0x2c,0x46,0x2c,0x46,0x29,0x2c,0x28,0x47, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'InputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.enums' + 0x1c,0x05, // IMPORT_FROM 'InputScriptType' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'OwnershipId' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.messages' + 0x1c,0x07, // IMPORT_FROM 'OwnershipId' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.wire' + 0x1c,0x09, // IMPORT_FROM 'DataError' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'validate_path' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x0b, // IMPORT_FROM 'validate_path' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0d, // LOAD_CONST_STRING 'addresses' + 0x10,0x0e, // LOAD_CONST_STRING 'common' + 0x10,0x0f, // LOAD_CONST_STRING 'scripts' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x10, // IMPORT_NAME '' + 0x1c,0x0d, // IMPORT_FROM 'addresses' + 0xc7, // STORE_FAST 7 + 0x1c,0x0e, // IMPORT_FROM 'common' + 0xc8, // STORE_FAST 8 + 0x1c,0x0f, // IMPORT_FROM 'scripts' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x11, // LOAD_CONST_STRING 'validate_path_against_script_type' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'keychain' + 0x1c,0x11, // IMPORT_FROM 'validate_path_against_script_type' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x12, // LOAD_CONST_STRING 'get_identifier' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME 'ownership' + 0x1c,0x12, // IMPORT_FROM 'get_identifier' + 0xcb, // STORE_FAST 11 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'script_type' + 0xcc, // STORE_FAST 12 + 0xb6, // LOAD_FAST 6 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'address_n' + 0xba, // LOAD_FAST 10 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xbc, // LOAD_FAST 12 + 0xb8, // LOAD_FAST 8 + 0x13,0x16, // LOAD_ATTR 'INTERNAL_INPUT_SCRIPT_TYPES' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb5, // LOAD_FAST 5 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbc, // LOAD_FAST 12 + 0xb8, // LOAD_FAST 8 + 0x13,0x17, // LOAD_ATTR 'SEGWIT_INPUT_SCRIPT_TYPES' + 0xdd, // BINARY_OP 6 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb2, // LOAD_FAST 2 + 0x13,0x18, // LOAD_ATTR 'segwit' + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb5, // LOAD_FAST 5 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbc, // LOAD_FAST 12 + 0xb3, // LOAD_FAST 3 + 0x13,0x19, // LOAD_ATTR 'SPENDTAPROOT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb2, // LOAD_FAST 2 + 0x13,0x1a, // LOAD_ATTR 'taproot' + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb5, // LOAD_FAST 5 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x14,0x1b, // LOAD_METHOD 'derive' + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xcd, // STORE_FAST 13 + 0xb7, // LOAD_FAST 7 + 0x14,0x1c, // LOAD_METHOD 'get_address' + 0xbc, // LOAD_FAST 12 + 0xb2, // LOAD_FAST 2 + 0xbd, // LOAD_FAST 13 + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'multisig' + 0x36,0x04, // CALL_METHOD 4 + 0xce, // STORE_FAST 14 + 0xb9, // LOAD_FAST 9 + 0x14,0x1e, // LOAD_METHOD 'output_derive_script' + 0xbe, // LOAD_FAST 14 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0xcf, // STORE_FAST 15 + 0xbb, // LOAD_FAST 11 + 0xbf, // LOAD_FAST 15 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x10, // STORE_FAST_N 16 + 0xb4, // LOAD_FAST 4 + 0x10,0x1f, // LOAD_CONST_STRING 'ownership_id' + 0x24,0x10, // LOAD_FAST_N 16 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_get_ownership_id_get_ownership_id = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_get_ownership_id_get_ownership_id, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 232, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 23, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_bitcoin_get_ownership_id_get_ownership_id + 7, + .line_info_top = fun_data_apps_bitcoin_get_ownership_id_get_ownership_id + 30, + .opcodes = fun_data_apps_bitcoin_get_ownership_id_get_ownership_id + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_get_ownership_id__lt_module_gt_[] = { + &raw_code_apps_bitcoin_get_ownership_id_get_ownership_id, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_get_ownership_id__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_get_ownership_id__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = (void *)&children_apps_bitcoin_get_ownership_id__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_get_ownership_id__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_get_ownership_id__lt_module_gt_ + 7, + .opcodes = fun_data_apps_bitcoin_get_ownership_id__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_get_ownership_id[34] = { + MP_QSTR_apps_slash_bitcoin_slash_get_ownership_id_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_with_keychain, + MP_QSTR_keychain, + MP_QSTR_get_ownership_id, + MP_QSTR_InputScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_OwnershipId, + MP_QSTR_trezor_dot_messages, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_validate_path, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_addresses, + MP_QSTR_common, + MP_QSTR_scripts, + MP_QSTR_, + MP_QSTR_validate_path_against_script_type, + MP_QSTR_get_identifier, + MP_QSTR_ownership, + MP_QSTR_script_type, + MP_QSTR_address_n, + MP_QSTR_INTERNAL_INPUT_SCRIPT_TYPES, + MP_QSTR_SEGWIT_INPUT_SCRIPT_TYPES, + MP_QSTR_segwit, + MP_QSTR_SPENDTAPROOT, + MP_QSTR_taproot, + MP_QSTR_derive, + MP_QSTR_get_address, + MP_QSTR_multisig, + MP_QSTR_output_derive_script, + MP_QSTR_ownership_id, + MP_QSTR_msg, + MP_QSTR_coin, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_get_ownership_id_1 = {{&mp_type_str}, 25506, 31, (const byte*)"\x53\x65\x67\x77\x69\x74\x20\x6e\x6f\x74\x20\x65\x6e\x61\x62\x6c\x65\x64\x20\x6f\x6e\x20\x74\x68\x69\x73\x20\x63\x6f\x69\x6e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_get_ownership_id_2 = {{&mp_type_str}, 15578, 32, (const byte*)"\x54\x61\x70\x72\x6f\x6f\x74\x20\x6e\x6f\x74\x20\x65\x6e\x61\x62\x6c\x65\x64\x20\x6f\x6e\x20\x74\x68\x69\x73\x20\x63\x6f\x69\x6e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_get_ownership_id[3] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_script_space_type), + MP_ROM_PTR(&const_obj_apps_bitcoin_get_ownership_id_1), + MP_ROM_PTR(&const_obj_apps_bitcoin_get_ownership_id_2), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_get_ownership_id = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_get_ownership_id, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_get_ownership_id, + }, + .rc = &raw_code_apps_bitcoin_get_ownership_id__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_get_ownership_proof +// - original source file: build/firmware/src/apps/bitcoin/get_ownership_proof.mpy +// - frozen file name: apps/bitcoin/get_ownership_proof.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/get_ownership_proof.py, scope apps_bitcoin_get_ownership_proof__lt_module_gt_ +static const byte fun_data_apps_bitcoin_get_ownership_proof__lt_module_gt_[33] = { + 0x10,0x0a, // prelude + 0x01, // names: + 0x40,0x4c,0x80,0x09, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x02, // LOAD_CONST_STRING 'with_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'keychain' + 0x1c,0x02, // IMPORT_FROM 'with_keychain' + 0x16,0x02, // STORE_NAME 'with_keychain' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'with_keychain' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x04, // STORE_NAME 'get_ownership_proof' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_get_ownership_proof__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/get_ownership_proof.py, scope apps_bitcoin_get_ownership_proof_get_ownership_proof +static const byte fun_data_apps_bitcoin_get_ownership_proof_get_ownership_proof[447] = { + 0x88,0x65,0x6e, // prelude + 0x04,0x2b,0x03,0x2c,0x2d, // names: get_ownership_proof, msg, keychain, coin, authorization + 0x80,0x14,0x2b,0x2b,0x30,0x50,0x4b,0x35,0x2b,0x51,0x25,0x45,0x23,0x28,0x48,0x42,0x23,0x6b,0x29,0x46,0x2d,0x46,0x2d,0x46,0x2a,0x2f,0x2a,0x69,0x20,0x25,0x28,0x4c,0x29,0x48,0x66,0x28,0x21,0x22,0x24,0x49,0x25,0x21,0x22,0x22,0x23,0x68,0x65,0x44,0x67,0x6b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'InputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.enums' + 0x1c,0x05, // IMPORT_FROM 'InputScriptType' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'OwnershipProof' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.messages' + 0x1c,0x07, // IMPORT_FROM 'OwnershipProof' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'confirm_action' + 0x10,0x0a, // LOAD_CONST_STRING 'confirm_blob' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0b, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x09, // IMPORT_FROM 'confirm_action' + 0xc6, // STORE_FAST 6 + 0x1c,0x0a, // IMPORT_FROM 'confirm_blob' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'DataError' + 0x10,0x0d, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0e, // IMPORT_NAME 'trezor.wire' + 0x1c,0x0c, // IMPORT_FROM 'DataError' + 0xc8, // STORE_FAST 8 + 0x1c,0x0d, // IMPORT_FROM 'ProcessError' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0f, // LOAD_CONST_STRING 'validate_path' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x0f, // IMPORT_FROM 'validate_path' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x11, // LOAD_CONST_STRING 'addresses' + 0x10,0x12, // LOAD_CONST_STRING 'common' + 0x10,0x13, // LOAD_CONST_STRING 'scripts' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x14, // IMPORT_NAME '' + 0x1c,0x11, // IMPORT_FROM 'addresses' + 0xcb, // STORE_FAST 11 + 0x1c,0x12, // IMPORT_FROM 'common' + 0xcc, // STORE_FAST 12 + 0x1c,0x13, // IMPORT_FROM 'scripts' + 0xcd, // STORE_FAST 13 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x15, // LOAD_CONST_STRING 'validate_path_against_script_type' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'keychain' + 0x1c,0x15, // IMPORT_FROM 'validate_path_against_script_type' + 0xce, // STORE_FAST 14 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x16, // LOAD_CONST_STRING 'generate_proof' + 0x10,0x17, // LOAD_CONST_STRING 'get_identifier' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x18, // IMPORT_NAME 'ownership' + 0x1c,0x16, // IMPORT_FROM 'generate_proof' + 0xcf, // STORE_FAST 15 + 0x1c,0x17, // IMPORT_FROM 'get_identifier' + 0x26,0x10, // STORE_FAST_N 16 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'script_type' + 0x26,0x11, // STORE_FAST_N 17 + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'ownership_ids' + 0x26,0x12, // STORE_FAST_N 18 + 0xb3, // LOAD_FAST 3 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb3, // LOAD_FAST 3 + 0x14,0x1b, // LOAD_METHOD 'check_get_ownership_proof' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb9, // LOAD_FAST 9 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x50, // JUMP 16 + 0xba, // LOAD_FAST 10 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'address_n' + 0xbe, // LOAD_FAST 14 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x24,0x11, // LOAD_FAST_N 17 + 0xbc, // LOAD_FAST 12 + 0x13,0x1d, // LOAD_ATTR 'INTERNAL_INPUT_SCRIPT_TYPES' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb8, // LOAD_FAST 8 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x11, // LOAD_FAST_N 17 + 0xbc, // LOAD_FAST 12 + 0x13,0x1e, // LOAD_ATTR 'SEGWIT_INPUT_SCRIPT_TYPES' + 0xdd, // BINARY_OP 6 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb2, // LOAD_FAST 2 + 0x13,0x1f, // LOAD_ATTR 'segwit' + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb8, // LOAD_FAST 8 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x11, // LOAD_FAST_N 17 + 0xb4, // LOAD_FAST 4 + 0x13,0x20, // LOAD_ATTR 'SPENDTAPROOT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb2, // LOAD_FAST 2 + 0x13,0x21, // LOAD_ATTR 'taproot' + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb8, // LOAD_FAST 8 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x14,0x22, // LOAD_METHOD 'derive' + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x13, // STORE_FAST_N 19 + 0xbb, // LOAD_FAST 11 + 0x14,0x23, // LOAD_METHOD 'get_address' + 0x24,0x11, // LOAD_FAST_N 17 + 0xb2, // LOAD_FAST 2 + 0x24,0x13, // LOAD_FAST_N 19 + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'multisig' + 0x36,0x04, // CALL_METHOD 4 + 0x26,0x14, // STORE_FAST_N 20 + 0xbd, // LOAD_FAST 13 + 0x14,0x25, // LOAD_METHOD 'output_derive_script' + 0x24,0x14, // LOAD_FAST_N 20 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x15, // STORE_FAST_N 21 + 0x24,0x10, // LOAD_FAST_N 16 + 0x24,0x15, // LOAD_FAST_N 21 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x16, // STORE_FAST_N 22 + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'multisig' + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x24,0x16, // LOAD_FAST_N 22 + 0x24,0x12, // LOAD_FAST_N 18 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb8, // LOAD_FAST 8 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x5b, // JUMP 27 + 0x24,0x12, // LOAD_FAST_N 18 + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x24,0x12, // LOAD_FAST_N 18 + 0x24,0x16, // LOAD_FAST_N 22 + 0x2b,0x01, // BUILD_LIST 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb8, // LOAD_FAST 8 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x46, // JUMP 6 + 0x24,0x16, // LOAD_FAST_N 22 + 0x2b,0x01, // BUILD_LIST 1 + 0x26,0x12, // STORE_FAST_N 18 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'user_confirmation' + 0x44,0x68, // POP_JUMP_IF_FALSE 40 + 0xb3, // LOAD_FAST 3 + 0x43,0x65, // POP_JUMP_IF_TRUE 37 + 0xb6, // LOAD_FAST 6 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x10,0x27, // LOAD_CONST_STRING 'description' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'commitment_data' + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb7, // LOAD_FAST 7 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'commitment_data' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xbf, // LOAD_FAST 15 + 0x24,0x13, // LOAD_FAST_N 19 + 0x24,0x11, // LOAD_FAST_N 17 + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'multisig' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'user_confirmation' + 0x24,0x12, // LOAD_FAST_N 18 + 0x24,0x15, // LOAD_FAST_N 21 + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'commitment_data' + 0x34,0x08, // CALL_FUNCTION 8 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0x26,0x17, // STORE_FAST_N 23 + 0x26,0x18, // STORE_FAST_N 24 + 0xb5, // LOAD_FAST 5 + 0x10,0x29, // LOAD_CONST_STRING 'ownership_proof' + 0x24,0x17, // LOAD_FAST_N 23 + 0x10,0x2a, // LOAD_CONST_STRING 'signature' + 0x24,0x18, // LOAD_FAST_N 24 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_get_ownership_proof_get_ownership_proof = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_get_ownership_proof_get_ownership_proof, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 447, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 34, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_bitcoin_get_ownership_proof_get_ownership_proof + 8, + .line_info_top = fun_data_apps_bitcoin_get_ownership_proof_get_ownership_proof + 58, + .opcodes = fun_data_apps_bitcoin_get_ownership_proof_get_ownership_proof + 58, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_get_ownership_proof__lt_module_gt_[] = { + &raw_code_apps_bitcoin_get_ownership_proof_get_ownership_proof, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_get_ownership_proof__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_get_ownership_proof__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = (void *)&children_apps_bitcoin_get_ownership_proof__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_get_ownership_proof__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_get_ownership_proof__lt_module_gt_ + 7, + .opcodes = fun_data_apps_bitcoin_get_ownership_proof__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_get_ownership_proof[46] = { + MP_QSTR_apps_slash_bitcoin_slash_get_ownership_proof_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_with_keychain, + MP_QSTR_keychain, + MP_QSTR_get_ownership_proof, + MP_QSTR_InputScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_OwnershipProof, + MP_QSTR_trezor_dot_messages, + MP_QSTR_confirm_action, + MP_QSTR_confirm_blob, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_DataError, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_validate_path, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_addresses, + MP_QSTR_common, + MP_QSTR_scripts, + MP_QSTR_, + MP_QSTR_validate_path_against_script_type, + MP_QSTR_generate_proof, + MP_QSTR_get_identifier, + MP_QSTR_ownership, + MP_QSTR_script_type, + MP_QSTR_ownership_ids, + MP_QSTR_check_get_ownership_proof, + MP_QSTR_address_n, + MP_QSTR_INTERNAL_INPUT_SCRIPT_TYPES, + MP_QSTR_SEGWIT_INPUT_SCRIPT_TYPES, + MP_QSTR_segwit, + MP_QSTR_SPENDTAPROOT, + MP_QSTR_taproot, + MP_QSTR_derive, + MP_QSTR_get_address, + MP_QSTR_multisig, + MP_QSTR_output_derive_script, + MP_QSTR_user_confirmation, + MP_QSTR_description, + MP_QSTR_commitment_data, + MP_QSTR_ownership_proof, + MP_QSTR_signature, + MP_QSTR_msg, + MP_QSTR_coin, + MP_QSTR_authorization, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_get_ownership_proof_2 = {{&mp_type_str}, 25506, 31, (const byte*)"\x53\x65\x67\x77\x69\x74\x20\x6e\x6f\x74\x20\x65\x6e\x61\x62\x6c\x65\x64\x20\x6f\x6e\x20\x74\x68\x69\x73\x20\x63\x6f\x69\x6e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_get_ownership_proof_3 = {{&mp_type_str}, 15578, 32, (const byte*)"\x54\x61\x70\x72\x6f\x6f\x74\x20\x6e\x6f\x74\x20\x65\x6e\x61\x62\x6c\x65\x64\x20\x6f\x6e\x20\x74\x68\x69\x73\x20\x63\x6f\x69\x6e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_get_ownership_proof_4 = {{&mp_type_str}, 58785, 28, (const byte*)"\x4d\x69\x73\x73\x69\x6e\x67\x20\x6f\x77\x6e\x65\x72\x73\x68\x69\x70\x20\x69\x64\x65\x6e\x74\x69\x66\x69\x65\x72"}; +static const mp_obj_str_t const_obj_apps_bitcoin_get_ownership_proof_5 = {{&mp_type_str}, 21076, 28, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x6f\x77\x6e\x65\x72\x73\x68\x69\x70\x20\x69\x64\x65\x6e\x74\x69\x66\x69\x65\x72"}; +static const mp_obj_str_t const_obj_apps_bitcoin_get_ownership_proof_8 = {{&mp_type_str}, 24654, 43, (const byte*)"\x44\x6f\x20\x79\x6f\x75\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x63\x72\x65\x61\x74\x65\x20\x61\x20\x70\x72\x6f\x6f\x66\x20\x6f\x66\x20\x6f\x77\x6e\x65\x72\x73\x68\x69\x70\x3f"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_get_ownership_proof[10] = { + MP_ROM_QSTR(MP_QSTR_Unauthorized_space_operation), + MP_ROM_QSTR(MP_QSTR_Invalid_space_script_space_type), + MP_ROM_PTR(&const_obj_apps_bitcoin_get_ownership_proof_2), + MP_ROM_PTR(&const_obj_apps_bitcoin_get_ownership_proof_3), + MP_ROM_PTR(&const_obj_apps_bitcoin_get_ownership_proof_4), + MP_ROM_PTR(&const_obj_apps_bitcoin_get_ownership_proof_5), + MP_ROM_QSTR(MP_QSTR_confirm_ownership_proof), + MP_ROM_QSTR(MP_QSTR_Proof_space_of_space_ownership), + MP_ROM_PTR(&const_obj_apps_bitcoin_get_ownership_proof_8), + MP_ROM_QSTR(MP_QSTR_Commitment_space_data_colon_), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_get_ownership_proof = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_get_ownership_proof, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_get_ownership_proof, + }, + .rc = &raw_code_apps_bitcoin_get_ownership_proof__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_get_public_key +// - original source file: build/firmware/src/apps/bitcoin/get_public_key.mpy +// - frozen file name: apps/bitcoin/get_public_key.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/get_public_key.py, scope apps_bitcoin_get_public_key__lt_module_gt_ +static const byte fun_data_apps_bitcoin_get_public_key__lt_module_gt_[16] = { + 0x08,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x40, // code info + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x02, // STORE_NAME 'get_public_key' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_get_public_key__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/get_public_key.py, scope apps_bitcoin_get_public_key_get_public_key +static const byte fun_data_apps_bitcoin_get_public_key_get_public_key[631] = { + 0xc2,0x61,0x8e,0x02, // prelude + 0x02,0x43,0x44, // names: get_public_key, msg, auth_msg + 0x80,0x0a,0x2b,0x2b,0x55,0x30,0x50,0x28,0x29,0x27,0x29,0x24,0x25,0x45,0x4c,0x28,0x62,0x32,0x42,0x4e,0x49,0x20,0x21,0x20,0x23,0x23,0x48,0x47,0x4d,0x25,0x2b,0x48,0x20,0x24,0x71,0x25,0x2b,0x48,0x20,0x24,0x71,0x48,0x28,0x28,0x2c,0x23,0x28,0x28,0x28,0x6f,0x20,0x26,0x52,0x4c,0x4c,0x27,0x6d,0x26,0x23,0x2c,0x27,0x47,0x2d,0x70,0x40,0x6d,0x20,0x6b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor' + 0x1c,0x03, // IMPORT_FROM 'wire' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'InputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.enums' + 0x1c,0x05, // IMPORT_FROM 'InputScriptType' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'HDNodeType' + 0x10,0x08, // LOAD_CONST_STRING 'PublicKey' + 0x10,0x09, // LOAD_CONST_STRING 'UnlockPath' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x0a, // IMPORT_NAME 'trezor.messages' + 0x1c,0x07, // IMPORT_FROM 'HDNodeType' + 0xc4, // STORE_FAST 4 + 0x1c,0x08, // IMPORT_FROM 'PublicKey' + 0xc5, // STORE_FAST 5 + 0x1c,0x09, // IMPORT_FROM 'UnlockPath' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'coininfo' + 0x10,0x0c, // LOAD_CONST_STRING 'paths' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0d, // IMPORT_NAME 'apps.common' + 0x1c,0x0b, // IMPORT_FROM 'coininfo' + 0xc7, // STORE_FAST 7 + 0x1c,0x0c, // IMPORT_FROM 'paths' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'FORBIDDEN_KEY_PATH' + 0x10,0x0f, // LOAD_CONST_STRING 'get_keychain' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x10, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x0e, // IMPORT_FROM 'FORBIDDEN_KEY_PATH' + 0xc9, // STORE_FAST 9 + 0x1c,0x0f, // IMPORT_FROM 'get_keychain' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'coin_name' + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x12, // LOAD_CONST_STRING 'Bitcoin' + 0xcb, // STORE_FAST 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'script_type' + 0x45,0x03, // JUMP_IF_TRUE_OR_POP 3 + 0xb3, // LOAD_FAST 3 + 0x13,0x14, // LOAD_ATTR 'SPENDADDRESS' + 0xcc, // STORE_FAST 12 + 0xb7, // LOAD_FAST 7 + 0x14,0x15, // LOAD_METHOD 'by_name' + 0xbb, // LOAD_FAST 11 + 0x36,0x01, // CALL_METHOD 1 + 0xcd, // STORE_FAST 13 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'ecdsa_curve_name' + 0x45,0x03, // JUMP_IF_TRUE_OR_POP 3 + 0xbd, // LOAD_FAST 13 + 0x13,0x17, // LOAD_ATTR 'curve_name' + 0xce, // STORE_FAST 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'address_n' + 0xcf, // STORE_FAST 15 + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'ignore_xpub_magic' + 0x26,0x10, // STORE_FAST_N 16 + 0xbd, // LOAD_FAST 13 + 0x13,0x1a, // LOAD_ATTR 'xpub_magic' + 0x26,0x11, // STORE_FAST_N 17 + 0xbf, // LOAD_FAST 15 + 0x44,0x67, // POP_JUMP_IF_FALSE 39 + 0xbf, // LOAD_FAST 15 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb8, // LOAD_FAST 8 + 0x13,0x1b, // LOAD_ATTR 'SLIP25_PURPOSE' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5e, // POP_JUMP_IF_FALSE 30 + 0xb6, // LOAD_FAST 6 + 0x14,0x1c, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0xb9, // LOAD_FAST 9 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'address_n' + 0xbf, // LOAD_FAST 15 + 0x51, // LOAD_CONST_NONE + 0x12,0x45, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'address_n' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb9, // LOAD_FAST 9 + 0x65, // RAISE_OBJ + 0xba, // LOAD_FAST 10 + 0xbe, // LOAD_FAST 14 + 0xb8, // LOAD_FAST 8 + 0x13,0x1d, // LOAD_ATTR 'AlwaysMatchingSchema' + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x12, // STORE_FAST_N 18 + 0x24,0x12, // LOAD_FAST_N 18 + 0x14,0x1e, // LOAD_METHOD 'derive' + 0xbf, // LOAD_FAST 15 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x13, // STORE_FAST_N 19 + 0xbc, // LOAD_FAST 12 + 0xb3, // LOAD_FAST 3 + 0x13,0x14, // LOAD_ATTR 'SPENDADDRESS' + 0xb3, // LOAD_FAST 3 + 0x13,0x1f, // LOAD_ATTR 'SPENDMULTISIG' + 0xb3, // LOAD_FAST 3 + 0x13,0x20, // LOAD_ATTR 'SPENDTAPROOT' + 0x2a,0x03, // BUILD_TUPLE 3 + 0xdd, // BINARY_OP 6 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x24,0x11, // LOAD_FAST_N 17 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x24,0x13, // LOAD_FAST_N 19 + 0x14,0x21, // LOAD_METHOD 'serialize_public' + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x14, // STORE_FAST_N 20 + 0x42,0xe2,0x80, // JUMP 98 + 0xbd, // LOAD_FAST 13 + 0x13,0x22, // LOAD_ATTR 'segwit' + 0x44,0x68, // POP_JUMP_IF_FALSE 40 + 0xbc, // LOAD_FAST 12 + 0xb3, // LOAD_FAST 3 + 0x13,0x23, // LOAD_ATTR 'SPENDP2SHWITNESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x61, // POP_JUMP_IF_FALSE 33 + 0x24,0x10, // LOAD_FAST_N 16 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xbd, // LOAD_FAST 13 + 0x13,0x24, // LOAD_ATTR 'xpub_magic_segwit_p2sh' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x24,0x13, // LOAD_FAST_N 19 + 0x14,0x21, // LOAD_METHOD 'serialize_public' + 0x24,0x10, // LOAD_FAST_N 16 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x24,0x11, // LOAD_FAST_N 17 + 0x42,0x43, // JUMP 3 + 0xbd, // LOAD_FAST 13 + 0x13,0x24, // LOAD_ATTR 'xpub_magic_segwit_p2sh' + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x14, // STORE_FAST_N 20 + 0x42,0x75, // JUMP 53 + 0xbd, // LOAD_FAST 13 + 0x13,0x22, // LOAD_ATTR 'segwit' + 0x44,0x68, // POP_JUMP_IF_FALSE 40 + 0xbc, // LOAD_FAST 12 + 0xb3, // LOAD_FAST 3 + 0x13,0x25, // LOAD_ATTR 'SPENDWITNESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x61, // POP_JUMP_IF_FALSE 33 + 0x24,0x10, // LOAD_FAST_N 16 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xbd, // LOAD_FAST 13 + 0x13,0x26, // LOAD_ATTR 'xpub_magic_segwit_native' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x24,0x13, // LOAD_FAST_N 19 + 0x14,0x21, // LOAD_METHOD 'serialize_public' + 0x24,0x10, // LOAD_FAST_N 16 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x24,0x11, // LOAD_FAST_N 17 + 0x42,0x43, // JUMP 3 + 0xbd, // LOAD_FAST 13 + 0x13,0x26, // LOAD_ATTR 'xpub_magic_segwit_native' + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x14, // STORE_FAST_N 20 + 0x42,0x48, // JUMP 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x27, // LOAD_METHOD 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x24,0x13, // LOAD_FAST_N 19 + 0x14,0x28, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x15, // STORE_FAST_N 21 + 0x24,0x15, // LOAD_FAST_N 21 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x24,0x15, // LOAD_FAST_N 21 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xf2, // BINARY_OP 27 __add__ + 0x26,0x15, // STORE_FAST_N 21 + 0xb4, // LOAD_FAST 4 + 0x10,0x29, // LOAD_CONST_STRING 'depth' + 0x24,0x13, // LOAD_FAST_N 19 + 0x14,0x29, // LOAD_METHOD 'depth' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x2a, // LOAD_CONST_STRING 'child_num' + 0x24,0x13, // LOAD_FAST_N 19 + 0x14,0x2a, // LOAD_METHOD 'child_num' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x2b, // LOAD_CONST_STRING 'fingerprint' + 0x24,0x13, // LOAD_FAST_N 19 + 0x14,0x2b, // LOAD_METHOD 'fingerprint' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x2c, // LOAD_CONST_STRING 'chain_code' + 0x24,0x13, // LOAD_FAST_N 19 + 0x14,0x2c, // LOAD_METHOD 'chain_code' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x28, // LOAD_CONST_STRING 'public_key' + 0x24,0x15, // LOAD_FAST_N 21 + 0x34,0x8a,0x00, // CALL_FUNCTION 1280 + 0x26,0x16, // STORE_FAST_N 22 + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR 'show_display' + 0x44,0x8b,0x81, // POP_JUMP_IF_FALSE 139 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2e, // LOAD_CONST_STRING 'confirm_path_warning' + 0x10,0x2f, // LOAD_CONST_STRING 'show_pubkey' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x30, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x2e, // IMPORT_FROM 'confirm_path_warning' + 0x26,0x17, // STORE_FAST_N 23 + 0x1c,0x2f, // IMPORT_FROM 'show_pubkey' + 0x26,0x18, // STORE_FAST_N 24 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x31, // LOAD_CONST_STRING 'address_n_to_str' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x32, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x31, // IMPORT_FROM 'address_n_to_str' + 0x26,0x19, // STORE_FAST_N 25 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x33, // LOAD_CONST_STRING 'address_n_to_name' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x34, // IMPORT_NAME 'keychain' + 0x1c,0x33, // IMPORT_FROM 'address_n_to_name' + 0x26,0x1a, // STORE_FAST_N 26 + 0x59, // POP_TOP + 0x24,0x19, // LOAD_FAST_N 25 + 0xbf, // LOAD_FAST 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x1b, // STORE_FAST_N 27 + 0x24,0x1a, // LOAD_FAST_N 26 + 0xbd, // LOAD_FAST 13 + 0xbf, // LOAD_FAST 15 + 0xbc, // LOAD_FAST 12 + 0x10,0x35, // LOAD_CONST_STRING 'account_level' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x26,0x1c, // STORE_FAST_N 28 + 0x24,0x1c, // LOAD_FAST_N 28 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x51, // LOAD_CONST_NONE + 0x26,0x1d, // STORE_FAST_N 29 + 0x24,0x17, // LOAD_FAST_N 23 + 0x24,0x1b, // LOAD_FAST_N 27 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x5b, // JUMP 27 + 0x24,0x1c, // LOAD_FAST_N 28 + 0x10,0x36, // LOAD_CONST_STRING '' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xbd, // LOAD_FAST 13 + 0x13,0x37, // LOAD_ATTR 'coin_shortcut' + 0x26,0x1d, // STORE_FAST_N 29 + 0x42,0x4d, // JUMP 13 + 0x10,0x38, // LOAD_CONST_STRING '{} {}' + 0x14,0x39, // LOAD_METHOD 'format' + 0xbd, // LOAD_FAST 13 + 0x13,0x37, // LOAD_ATTR 'coin_shortcut' + 0x24,0x1c, // LOAD_FAST_N 28 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x1d, // STORE_FAST_N 29 + 0x24,0x18, // LOAD_FAST_N 24 + 0x24,0x14, // LOAD_FAST_N 20 + 0x10,0x3a, // LOAD_CONST_STRING 'XPUB' + 0x10,0x3b, // LOAD_CONST_STRING 'account' + 0x24,0x1d, // LOAD_FAST_N 29 + 0x10,0x3c, // LOAD_CONST_STRING 'path' + 0x24,0x1b, // LOAD_FAST_N 27 + 0x10,0x3d, // LOAD_CONST_STRING 'mismatch_title' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x10,0x3e, // LOAD_CONST_STRING 'br_type' + 0x10,0x3f, // LOAD_CONST_STRING 'show_xpub' + 0x34,0x88,0x02, // CALL_FUNCTION 1026 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x10,0x40, // LOAD_CONST_STRING 'node' + 0x24,0x16, // LOAD_FAST_N 22 + 0x10,0x41, // LOAD_CONST_STRING 'xpub' + 0x24,0x14, // LOAD_FAST_N 20 + 0x10,0x42, // LOAD_CONST_STRING 'root_fingerprint' + 0x24,0x12, // LOAD_FAST_N 18 + 0x14,0x42, // LOAD_METHOD 'root_fingerprint' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x86,0x00, // CALL_FUNCTION 768 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_get_public_key_get_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_get_public_key_get_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 631, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 41, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_bitcoin_get_public_key_get_public_key + 7, + .line_info_top = fun_data_apps_bitcoin_get_public_key_get_public_key + 75, + .opcodes = fun_data_apps_bitcoin_get_public_key_get_public_key + 75, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_get_public_key__lt_module_gt_[] = { + &raw_code_apps_bitcoin_get_public_key_get_public_key, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_get_public_key__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_get_public_key__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = (void *)&children_apps_bitcoin_get_public_key__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_get_public_key__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_get_public_key__lt_module_gt_ + 6, + .opcodes = fun_data_apps_bitcoin_get_public_key__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_get_public_key[70] = { + MP_QSTR_apps_slash_bitcoin_slash_get_public_key_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_get_public_key, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_InputScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_HDNodeType, + MP_QSTR_PublicKey, + MP_QSTR_UnlockPath, + MP_QSTR_trezor_dot_messages, + MP_QSTR_coininfo, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_FORBIDDEN_KEY_PATH, + MP_QSTR_get_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_coin_name, + MP_QSTR_Bitcoin, + MP_QSTR_script_type, + MP_QSTR_SPENDADDRESS, + MP_QSTR_by_name, + MP_QSTR_ecdsa_curve_name, + MP_QSTR_curve_name, + MP_QSTR_address_n, + MP_QSTR_ignore_xpub_magic, + MP_QSTR_xpub_magic, + MP_QSTR_SLIP25_PURPOSE, + MP_QSTR_is_type_of, + MP_QSTR_AlwaysMatchingSchema, + MP_QSTR_derive, + MP_QSTR_SPENDMULTISIG, + MP_QSTR_SPENDTAPROOT, + MP_QSTR_serialize_public, + MP_QSTR_segwit, + MP_QSTR_SPENDP2SHWITNESS, + MP_QSTR_xpub_magic_segwit_p2sh, + MP_QSTR_SPENDWITNESS, + MP_QSTR_xpub_magic_segwit_native, + MP_QSTR_DataError, + MP_QSTR_public_key, + MP_QSTR_depth, + MP_QSTR_child_num, + MP_QSTR_fingerprint, + MP_QSTR_chain_code, + MP_QSTR_show_display, + MP_QSTR_confirm_path_warning, + MP_QSTR_show_pubkey, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_address_n_to_str, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_address_n_to_name, + MP_QSTR_keychain, + MP_QSTR_account_level, + MP_QSTR_, + MP_QSTR_coin_shortcut, + MP_QSTR__brace_open__brace_close__space__brace_open__brace_close_, + MP_QSTR_format, + MP_QSTR_XPUB, + MP_QSTR_account, + MP_QSTR_path, + MP_QSTR_mismatch_title, + MP_QSTR_br_type, + MP_QSTR_show_xpub, + MP_QSTR_node, + MP_QSTR_xpub, + MP_QSTR_root_fingerprint, + MP_QSTR_msg, + MP_QSTR_auth_msg, + MP_QSTR_len, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_get_public_key_0 = {{&mp_type_str}, 62732, 43, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x63\x6f\x6d\x62\x69\x6e\x61\x74\x69\x6f\x6e\x20\x6f\x66\x20\x63\x6f\x69\x6e\x20\x61\x6e\x64\x20\x73\x63\x72\x69\x70\x74\x5f\x74\x79\x70\x65"}; +static const mp_obj_str_t const_obj_apps_bitcoin_get_public_key_1 = {{&mp_type_bytes}, 46501, 1, (const byte*)"\x00"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_get_public_key[3] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_get_public_key_0), + MP_ROM_PTR(&const_obj_apps_bitcoin_get_public_key_1), + MP_ROM_QSTR(MP_QSTR_XPUB_space_mismatch_question_), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_get_public_key = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_get_public_key, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_get_public_key, + }, + .rc = &raw_code_apps_bitcoin_get_public_key__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_keychain +// - original source file: build/firmware/src/apps/bitcoin/keychain.mpy +// - frozen file name: apps/bitcoin/keychain.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/keychain.py, scope apps_bitcoin_keychain__lt_module_gt_ +static const byte fun_data_apps_bitcoin_keychain__lt_module_gt_[299] = { + 0x20,0x66, // prelude + 0x01, // names: + 0x6c,0x2c,0x52,0x5e,0x2c,0x52,0x80,0x25,0x64,0x40,0x24,0x24,0x64,0x44,0x44,0x64,0x24,0x64,0x24,0x24,0x24,0x44,0x44,0x20,0x44,0x20,0x44,0x64,0x20,0x64,0x63,0x63,0x8b,0x4b,0x20,0x89,0x3d,0x84,0x13,0x84,0x0e,0x40,0x89,0x0a,0x84,0x27,0x84,0x12,0x89,0x35, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'InputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.enums' + 0x1c,0x04, // IMPORT_FROM 'InputScriptType' + 0x16,0x04, // STORE_NAME 'InputScriptType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'AuthorizeCoinJoin' + 0x10,0x07, // LOAD_CONST_STRING 'SignMessage' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x08, // IMPORT_NAME 'trezor.messages' + 0x1c,0x06, // IMPORT_FROM 'AuthorizeCoinJoin' + 0x16,0x06, // STORE_NAME 'AuthorizeCoinJoin' + 0x1c,0x07, // IMPORT_FROM 'SignMessage' + 0x16,0x07, // STORE_NAME 'SignMessage' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'PATTERN_BIP44' + 0x10,0x0a, // LOAD_CONST_STRING 'PATTERN_CASA' + 0x10,0x0b, // LOAD_CONST_STRING 'PathSchema' + 0x10,0x0c, // LOAD_CONST_STRING 'unharden' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x0d, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x09, // IMPORT_FROM 'PATTERN_BIP44' + 0x16,0x09, // STORE_NAME 'PATTERN_BIP44' + 0x1c,0x0a, // IMPORT_FROM 'PATTERN_CASA' + 0x16,0x0a, // STORE_NAME 'PATTERN_CASA' + 0x1c,0x0b, // IMPORT_FROM 'PathSchema' + 0x16,0x0b, // STORE_NAME 'PathSchema' + 0x1c,0x0c, // IMPORT_FROM 'unharden' + 0x16,0x0c, // STORE_NAME 'unharden' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0e, // LOAD_CONST_STRING 'authorization' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME '' + 0x1c,0x0e, // IMPORT_FROM 'authorization' + 0x16,0x0e, // STORE_NAME 'authorization' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x10, // LOAD_CONST_STRING 'BIP32_WALLET_DEPTH' + 0x10,0x11, // LOAD_CONST_STRING 'BITCOIN_NAMES' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x12, // IMPORT_NAME 'common' + 0x1c,0x10, // IMPORT_FROM 'BIP32_WALLET_DEPTH' + 0x16,0x10, // STORE_NAME 'BIP32_WALLET_DEPTH' + 0x1c,0x11, // IMPORT_FROM 'BITCOIN_NAMES' + 0x16,0x11, // STORE_NAME 'BITCOIN_NAMES' + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x5a, // STORE_NAME 'PATTERN_BIP45' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x16,0x5b, // STORE_NAME 'PATTERN_BIP48_RAW' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x16,0x5c, // STORE_NAME 'PATTERN_BIP48_P2SHSEGWIT' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x16,0x5d, // STORE_NAME 'PATTERN_BIP48_SEGWIT' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x16,0x5e, // STORE_NAME 'PATTERN_BIP49' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x16,0x5f, // STORE_NAME 'PATTERN_BIP84' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x16,0x60, // STORE_NAME 'PATTERN_BIP86' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x16,0x61, // STORE_NAME 'PATTERN_SLIP25_TAPROOT' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x16,0x62, // STORE_NAME 'PATTERN_SLIP25_TAPROOT_EXTERNAL' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x16,0x63, // STORE_NAME 'PATTERN_GREENADDRESS_A' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x16,0x64, // STORE_NAME 'PATTERN_GREENADDRESS_B' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x16,0x65, // STORE_NAME 'PATTERN_GREENADDRESS_SIGN_A' + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x16,0x66, // STORE_NAME 'PATTERN_GREENADDRESS_SIGN_B' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x16,0x67, // STORE_NAME 'PATTERN_CASA_UNHARDENED' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x16,0x68, // STORE_NAME 'PATTERN_UNCHAINED_HARDENED' + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x16,0x69, // STORE_NAME 'PATTERN_UNCHAINED_UNHARDENED' + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x16,0x6a, // STORE_NAME 'PATTERN_UNCHAINED_DEPRECATED' + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x16,0x6b, // STORE_NAME 'PATTERN_SLIP26_T1_FW' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x6c, // STORE_NAME 'SLIP44_BITCOIN' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x6d, // STORE_NAME 'SLIP44_TESTNET' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x2a,0x04, // BUILD_TUPLE 4 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x14, // STORE_NAME 'validate_path_against_script_type' + 0x2a,0x00, // BUILD_TUPLE 0 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x24, // STORE_NAME '_get_schemas_for_coin' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x28, // STORE_NAME 'get_schemas_from_patterns' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x29, // STORE_NAME '_get_coin_by_name' + 0x2a,0x00, // BUILD_TUPLE 0 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x04, // MAKE_FUNCTION_DEFARGS 4 + 0x16,0x31, // STORE_NAME '_get_keychain_for_coin' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x35, // STORE_NAME '_get_unlock_schemas' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x39, // STORE_NAME 'with_keychain' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x07, // MAKE_FUNCTION 7 + 0x10,0x13, // LOAD_CONST_STRING 'AccountType' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x13, // STORE_NAME 'AccountType' + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x2a,0x03, // BUILD_TUPLE 3 + 0x53, // LOAD_NULL + 0x33,0x08, // MAKE_FUNCTION_DEFARGS 8 + 0x16,0x3a, // STORE_NAME 'address_n_to_name' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_keychain__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/keychain.py, scope apps_bitcoin_keychain_validate_path_against_script_type +static const byte fun_data_apps_bitcoin_keychain_validate_path_against_script_type[427] = { + 0xe9,0x84,0x80,0x01,0xf2,0x01, // prelude + 0x14,0x6e,0x6f,0x17,0x18,0x1a, // names: validate_path_against_script_type, coin, msg, address_n, script_type, multisig + 0x80,0x66,0x4b,0x23,0x24,0x45,0x26,0x20,0x25,0x29,0x6f,0x40,0x2a,0x26,0x25,0x26,0x46,0x29,0x49,0x71,0x26,0x25,0x4e,0x26,0x25,0x26,0x26,0x29,0x26,0x26,0x49,0x2e,0x26,0x26,0x23,0x26,0x25,0x26,0x26,0x29,0x49,0x2d,0x26,0x23,0x26,0x25,0x26,0x48,0x2d,0x26,0x48,0x00,0x02, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'InputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.enums' + 0x1c,0x04, // IMPORT_FROM 'InputScriptType' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x2b,0x00, // BUILD_LIST 0 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x13,0x15, // LOAD_ATTR 'append' + 0xc7, // STORE_FAST 7 + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x16, // LOAD_ATTR 'slip44' + 0xc8, // STORE_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x5d, // POP_JUMP_IF_FALSE 29 + 0xb1, // LOAD_FAST 1 + 0x13,0x17, // LOAD_ATTR 'address_n' + 0x27,0x02, // STORE_DEREF 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'script_type' + 0x45,0x03, // JUMP_IF_TRUE_OR_POP 3 + 0xb5, // LOAD_FAST 5 + 0x13,0x19, // LOAD_ATTR 'SPENDADDRESS' + 0xc3, // STORE_FAST 3 + 0x12,0x70, // LOAD_GLOBAL 'bool' + 0x12,0x71, // LOAD_GLOBAL 'getattr' + 0xb1, // LOAD_FAST 1 + 0x10,0x1a, // LOAD_CONST_STRING 'multisig' + 0x50, // LOAD_CONST_FALSE + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0x42,0x40, // JUMP 0 + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0x13,0x19, // LOAD_ATTR 'SPENDADDRESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6c, // POP_JUMP_IF_FALSE 44 + 0xb4, // LOAD_FAST 4 + 0x43,0x69, // POP_JUMP_IF_TRUE 41 + 0xb7, // LOAD_FAST 7 + 0x12,0x09, // LOAD_GLOBAL 'PATTERN_BIP44' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb7, // LOAD_FAST 7 + 0x12,0x63, // LOAD_GLOBAL 'PATTERN_GREENADDRESS_A' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x12,0x64, // LOAD_GLOBAL 'PATTERN_GREENADDRESS_B' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'SignMessage' + 0x14,0x1b, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb7, // LOAD_FAST 7 + 0x12,0x6b, // LOAD_GLOBAL 'PATTERN_SLIP26_T1_FW' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0xef,0x81, // JUMP 239 + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0x13,0x19, // LOAD_ATTR 'SPENDADDRESS' + 0xb5, // LOAD_FAST 5 + 0x13,0x1c, // LOAD_ATTR 'SPENDMULTISIG' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0x44,0xd2,0x80, // POP_JUMP_IF_FALSE 82 + 0xb4, // LOAD_FAST 4 + 0x44,0xce,0x80, // POP_JUMP_IF_FALSE 78 + 0xb7, // LOAD_FAST 7 + 0x12,0x5b, // LOAD_GLOBAL 'PATTERN_BIP48_RAW' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x43,0x4e, // POP_JUMP_IF_TRUE 14 + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x1d, // LOAD_ATTR 'fork_id' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb8, // LOAD_FAST 8 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb7, // LOAD_FAST 7 + 0x12,0x5a, // LOAD_GLOBAL 'PATTERN_BIP45' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb7, // LOAD_FAST 7 + 0x12,0x63, // LOAD_GLOBAL 'PATTERN_GREENADDRESS_A' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x12,0x64, // LOAD_GLOBAL 'PATTERN_GREENADDRESS_B' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x1e, // LOAD_ATTR 'coin_name' + 0x12,0x11, // LOAD_GLOBAL 'BITCOIN_NAMES' + 0xdd, // BINARY_OP 6 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb7, // LOAD_FAST 7 + 0x12,0x68, // LOAD_GLOBAL 'PATTERN_UNCHAINED_HARDENED' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x12,0x69, // LOAD_GLOBAL 'PATTERN_UNCHAINED_UNHARDENED' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x12,0x6a, // LOAD_GLOBAL 'PATTERN_UNCHAINED_DEPRECATED' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x90,0x81, // JUMP 144 + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x1f, // LOAD_ATTR 'segwit' + 0x44,0xbf,0x80, // POP_JUMP_IF_FALSE 63 + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0x13,0x20, // LOAD_ATTR 'SPENDP2SHWITNESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x78, // POP_JUMP_IF_FALSE 56 + 0xb7, // LOAD_FAST 7 + 0x12,0x5e, // LOAD_GLOBAL 'PATTERN_BIP49' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x12,0x0a, // LOAD_GLOBAL 'PATTERN_CASA' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb7, // LOAD_FAST 7 + 0x12,0x5c, // LOAD_GLOBAL 'PATTERN_BIP48_P2SHSEGWIT' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb7, // LOAD_FAST 7 + 0x12,0x63, // LOAD_GLOBAL 'PATTERN_GREENADDRESS_A' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x12,0x64, // LOAD_GLOBAL 'PATTERN_GREENADDRESS_B' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x1e, // LOAD_ATTR 'coin_name' + 0x12,0x11, // LOAD_GLOBAL 'BITCOIN_NAMES' + 0xdd, // BINARY_OP 6 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb7, // LOAD_FAST 7 + 0x12,0x67, // LOAD_GLOBAL 'PATTERN_CASA_UNHARDENED' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0xca,0x80, // JUMP 74 + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x1f, // LOAD_ATTR 'segwit' + 0x44,0x69, // POP_JUMP_IF_FALSE 41 + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0x13,0x21, // LOAD_ATTR 'SPENDWITNESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x62, // POP_JUMP_IF_FALSE 34 + 0xb7, // LOAD_FAST 7 + 0x12,0x5f, // LOAD_GLOBAL 'PATTERN_BIP84' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb7, // LOAD_FAST 7 + 0x12,0x5d, // LOAD_GLOBAL 'PATTERN_BIP48_SEGWIT' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb7, // LOAD_FAST 7 + 0x12,0x63, // LOAD_GLOBAL 'PATTERN_GREENADDRESS_A' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x12,0x64, // LOAD_GLOBAL 'PATTERN_GREENADDRESS_B' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x5b, // JUMP 27 + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x22, // LOAD_ATTR 'taproot' + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0x13,0x23, // LOAD_ATTR 'SPENDTAPROOT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb7, // LOAD_FAST 7 + 0x12,0x60, // LOAD_GLOBAL 'PATTERN_BIP86' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x12,0x61, // LOAD_GLOBAL 'PATTERN_SLIP25_TAPROOT' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x40, // JUMP 0 + 0x12,0x72, // LOAD_GLOBAL 'any' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x20,0x00,0x02, // MAKE_CLOSURE 0 + 0xb6, // LOAD_FAST 6 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_keychain_validate_path_against_script_type +// frozen bytecode for file apps/bitcoin/keychain.py, scope apps_bitcoin_keychain_validate_path_against_script_type__lt_genexpr_gt_ +static const byte fun_data_apps_bitcoin_keychain_validate_path_against_script_type__lt_genexpr_gt_[39] = { + 0xdb,0x40,0x0c, // prelude + 0x45,0x7c,0x7c,0x7c, // names: , *, *, * + 0x80,0xa6, // code info + 0x53, // LOAD_NULL + 0xb2, // LOAD_FAST 2 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x16, // FOR_ITER 22 + 0xc3, // STORE_FAST 3 + 0x12,0x0b, // LOAD_GLOBAL 'PathSchema' + 0x14,0x46, // LOAD_METHOD 'parse' + 0xb3, // LOAD_FAST 3 + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x16, // LOAD_ATTR 'slip44' + 0x36,0x02, // CALL_METHOD 2 + 0x14,0x47, // LOAD_METHOD 'match' + 0x25,0x01, // LOAD_DEREF 1 + 0x36,0x01, // CALL_METHOD 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x28, // JUMP -24 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_keychain_validate_path_against_script_type__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_keychain_validate_path_against_script_type__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 69, + .line_info = fun_data_apps_bitcoin_keychain_validate_path_against_script_type__lt_genexpr_gt_ + 7, + .line_info_top = fun_data_apps_bitcoin_keychain_validate_path_against_script_type__lt_genexpr_gt_ + 9, + .opcodes = fun_data_apps_bitcoin_keychain_validate_path_against_script_type__lt_genexpr_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_keychain_validate_path_against_script_type[] = { + &raw_code_apps_bitcoin_keychain_validate_path_against_script_type__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_keychain_validate_path_against_script_type = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_bitcoin_keychain_validate_path_against_script_type, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 427, + #endif + .children = (void *)&children_apps_bitcoin_keychain_validate_path_against_script_type, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 4, + .qstr_block_name_idx = 20, + .line_info = fun_data_apps_bitcoin_keychain_validate_path_against_script_type + 12, + .line_info_top = fun_data_apps_bitcoin_keychain_validate_path_against_script_type + 63, + .opcodes = fun_data_apps_bitcoin_keychain_validate_path_against_script_type + 65, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_keychain__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/keychain.py, scope apps_bitcoin_keychain__get_schemas_for_coin +static const byte fun_data_apps_bitcoin_keychain__get_schemas_for_coin[184] = { + 0xda,0x01,0x38, // prelude + 0x24,0x6e,0x73, // names: _get_schemas_for_coin, coin, unlock_schemas + 0x80,0xad,0x65,0x89,0x07,0x27,0x4f,0x48,0x27,0x23,0x8f,0x0a,0x28,0x23,0x8d,0x09,0x25,0x23,0x8d,0x09,0x25,0x48,0x27,0x47,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x25, // IMPORT_NAME 'gc' + 0xc2, // STORE_FAST 2 + 0x12,0x09, // LOAD_GLOBAL 'PATTERN_BIP44' + 0x12,0x5b, // LOAD_GLOBAL 'PATTERN_BIP48_RAW' + 0x12,0x0a, // LOAD_GLOBAL 'PATTERN_CASA' + 0x2b,0x03, // BUILD_LIST 3 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'slip44' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x43,0x4f, // POP_JUMP_IF_TRUE 15 + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'fork_id' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'slip44' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb3, // LOAD_FAST 3 + 0x14,0x15, // LOAD_METHOD 'append' + 0x12,0x5a, // LOAD_GLOBAL 'PATTERN_BIP45' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'slip44' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb3, // LOAD_FAST 3 + 0x14,0x26, // LOAD_METHOD 'extend' + 0x12,0x63, // LOAD_GLOBAL 'PATTERN_GREENADDRESS_A' + 0x12,0x64, // LOAD_GLOBAL 'PATTERN_GREENADDRESS_B' + 0x12,0x65, // LOAD_GLOBAL 'PATTERN_GREENADDRESS_SIGN_A' + 0x12,0x66, // LOAD_GLOBAL 'PATTERN_GREENADDRESS_SIGN_B' + 0x12,0x6b, // LOAD_GLOBAL 'PATTERN_SLIP26_T1_FW' + 0x2a,0x05, // BUILD_TUPLE 5 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x1e, // LOAD_ATTR 'coin_name' + 0x12,0x11, // LOAD_GLOBAL 'BITCOIN_NAMES' + 0xdd, // BINARY_OP 6 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb3, // LOAD_FAST 3 + 0x14,0x26, // LOAD_METHOD 'extend' + 0x12,0x67, // LOAD_GLOBAL 'PATTERN_CASA_UNHARDENED' + 0x12,0x68, // LOAD_GLOBAL 'PATTERN_UNCHAINED_HARDENED' + 0x12,0x69, // LOAD_GLOBAL 'PATTERN_UNCHAINED_UNHARDENED' + 0x12,0x6a, // LOAD_GLOBAL 'PATTERN_UNCHAINED_DEPRECATED' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x1f, // LOAD_ATTR 'segwit' + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb3, // LOAD_FAST 3 + 0x14,0x26, // LOAD_METHOD 'extend' + 0x12,0x5e, // LOAD_GLOBAL 'PATTERN_BIP49' + 0x12,0x5f, // LOAD_GLOBAL 'PATTERN_BIP84' + 0x12,0x5c, // LOAD_GLOBAL 'PATTERN_BIP48_P2SHSEGWIT' + 0x12,0x5d, // LOAD_GLOBAL 'PATTERN_BIP48_SEGWIT' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'taproot' + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb3, // LOAD_FAST 3 + 0x14,0x15, // LOAD_METHOD 'append' + 0x12,0x60, // LOAD_GLOBAL 'PATTERN_BIP86' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x28, // LOAD_GLOBAL 'get_schemas_from_patterns' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x14,0x26, // LOAD_METHOD 'extend' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x27, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_keychain__get_schemas_for_coin +// frozen bytecode for file apps/bitcoin/keychain.py, scope apps_bitcoin_keychain__get_schemas_for_coin__lt_listcomp_gt_ +static const byte fun_data_apps_bitcoin_keychain__get_schemas_for_coin__lt_listcomp_gt_[23] = { + 0x41,0x08, // prelude + 0x48,0x7c, // names: , * + 0x80,0xe5, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x49, // LOAD_METHOD 'copy' + 0x36,0x00, // CALL_METHOD 0 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x34, // JUMP -12 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_keychain__get_schemas_for_coin__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_keychain__get_schemas_for_coin__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 72, + .line_info = fun_data_apps_bitcoin_keychain__get_schemas_for_coin__lt_listcomp_gt_ + 4, + .line_info_top = fun_data_apps_bitcoin_keychain__get_schemas_for_coin__lt_listcomp_gt_ + 6, + .opcodes = fun_data_apps_bitcoin_keychain__get_schemas_for_coin__lt_listcomp_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_keychain__get_schemas_for_coin[] = { + &raw_code_apps_bitcoin_keychain__get_schemas_for_coin__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_keychain__get_schemas_for_coin = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_keychain__get_schemas_for_coin, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 184, + #endif + .children = (void *)&children_apps_bitcoin_keychain__get_schemas_for_coin, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_bitcoin_keychain__get_schemas_for_coin + 6, + .line_info_top = fun_data_apps_bitcoin_keychain__get_schemas_for_coin + 31, + .opcodes = fun_data_apps_bitcoin_keychain__get_schemas_for_coin + 31, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_keychain__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/keychain.py, scope apps_bitcoin_keychain_get_schemas_from_patterns +static const byte fun_data_apps_bitcoin_keychain_get_schemas_from_patterns[52] = { + 0x32,0x15, // prelude + 0x28,0x74,0x6e, // names: get_schemas_from_patterns, patterns, coin + 0x80,0xeb,0x88,0x08,0x31,0x6c,0x20,0x01, // code info + 0xb1, // LOAD_FAST 1 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x25,0x01, // LOAD_DEREF 1 + 0x13,0x1d, // LOAD_ATTR 'fork_id' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x25,0x01, // LOAD_DEREF 1 + 0x13,0x16, // LOAD_ATTR 'slip44' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb2, // LOAD_FAST 2 + 0x14,0x26, // LOAD_METHOD 'extend' + 0x32,0x01, // MAKE_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_keychain_get_schemas_from_patterns +// frozen bytecode for file apps/bitcoin/keychain.py, scope apps_bitcoin_keychain_get_schemas_from_patterns__lt_listcomp_gt_ +static const byte fun_data_apps_bitcoin_keychain_get_schemas_from_patterns__lt_listcomp_gt_[30] = { + 0x5a,0x0a, // prelude + 0x48,0x7c,0x7c, // names: , *, * + 0x80,0xeb, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x10, // FOR_ITER 16 + 0xc2, // STORE_FAST 2 + 0x12,0x0b, // LOAD_GLOBAL 'PathSchema' + 0x14,0x46, // LOAD_METHOD 'parse' + 0xb2, // LOAD_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x16, // LOAD_ATTR 'slip44' + 0x36,0x02, // CALL_METHOD 2 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x2e, // JUMP -18 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_keychain_get_schemas_from_patterns__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_keychain_get_schemas_from_patterns__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 72, + .line_info = fun_data_apps_bitcoin_keychain_get_schemas_from_patterns__lt_listcomp_gt_ + 5, + .line_info_top = fun_data_apps_bitcoin_keychain_get_schemas_from_patterns__lt_listcomp_gt_ + 7, + .opcodes = fun_data_apps_bitcoin_keychain_get_schemas_from_patterns__lt_listcomp_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_keychain_get_schemas_from_patterns +// frozen bytecode for file apps/bitcoin/keychain.py, scope apps_bitcoin_keychain_get_schemas_from_patterns__lt_genexpr_gt_ +static const byte fun_data_apps_bitcoin_keychain_get_schemas_from_patterns__lt_genexpr_gt_[28] = { + 0xc9,0x40,0x08, // prelude + 0x45,0x7c, // names: , * + 0x80,0xf5, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0d, // FOR_ITER 13 + 0xc1, // STORE_FAST 1 + 0x12,0x0b, // LOAD_GLOBAL 'PathSchema' + 0x14,0x46, // LOAD_METHOD 'parse' + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x02, // CALL_METHOD 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x31, // JUMP -15 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_keychain_get_schemas_from_patterns__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_keychain_get_schemas_from_patterns__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 69, + .line_info = fun_data_apps_bitcoin_keychain_get_schemas_from_patterns__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_apps_bitcoin_keychain_get_schemas_from_patterns__lt_genexpr_gt_ + 7, + .opcodes = fun_data_apps_bitcoin_keychain_get_schemas_from_patterns__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_keychain_get_schemas_from_patterns[] = { + &raw_code_apps_bitcoin_keychain_get_schemas_from_patterns__lt_listcomp_gt_, + &raw_code_apps_bitcoin_keychain_get_schemas_from_patterns__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_keychain_get_schemas_from_patterns = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_keychain_get_schemas_from_patterns, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 52, + #endif + .children = (void *)&children_apps_bitcoin_keychain_get_schemas_from_patterns, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_bitcoin_keychain_get_schemas_from_patterns + 5, + .line_info_top = fun_data_apps_bitcoin_keychain_get_schemas_from_patterns + 12, + .opcodes = fun_data_apps_bitcoin_keychain_get_schemas_from_patterns + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_keychain__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/keychain.py, scope apps_bitcoin_keychain__get_coin_by_name +static const byte fun_data_apps_bitcoin_keychain__get_coin_by_name[73] = { + 0x45,0x14, // prelude + 0x29,0x1e, // names: _get_coin_by_name, coin_name + 0x80,0xfc,0x4b,0x4b,0x25,0x43,0x22,0x50, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2a, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2b, // IMPORT_NAME 'trezor' + 0x1c,0x2a, // IMPORT_FROM 'wire' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2c, // LOAD_CONST_STRING 'coininfo' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2d, // IMPORT_NAME 'apps.common' + 0x1c,0x2c, // IMPORT_FROM 'coininfo' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x10,0x2e, // LOAD_CONST_STRING 'Bitcoin' + 0xc0, // STORE_FAST 0 + 0x48,0x09, // SETUP_EXCEPT 9 + 0xb2, // LOAD_FAST 2 + 0x14,0x2f, // LOAD_METHOD 'by_name' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0x4a,0x12, // POP_EXCEPT_JUMP 18 + 0x57, // DUP_TOP + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x30, // LOAD_METHOD 'DataError' + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_keychain__get_coin_by_name = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_keychain__get_coin_by_name, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 73, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_bitcoin_keychain__get_coin_by_name + 4, + .line_info_top = fun_data_apps_bitcoin_keychain__get_coin_by_name + 12, + .opcodes = fun_data_apps_bitcoin_keychain__get_coin_by_name + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_keychain__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/keychain.py, scope apps_bitcoin_keychain__get_keychain_for_coin +static const byte fun_data_apps_bitcoin_keychain__get_keychain_for_coin[55] = { + 0xca,0x41,0x12, // prelude + 0x31,0x6e,0x73, // names: _get_keychain_for_coin, coin, unlock_schemas + 0x90,0x0d,0x4b,0x27,0x2b,0x2c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x32, // LOAD_CONST_STRING 'get_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x33, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x32, // IMPORT_FROM 'get_keychain' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x24, // LOAD_GLOBAL '_get_schemas_for_coin' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc3, // STORE_FAST 3 + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x2b,0x01, // BUILD_LIST 1 + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0x2b,0x01, // BUILD_LIST 1 + 0x2b,0x02, // BUILD_LIST 2 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'curve_name' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_keychain__get_keychain_for_coin = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_keychain__get_keychain_for_coin, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 49, + .line_info = fun_data_apps_bitcoin_keychain__get_keychain_for_coin + 6, + .line_info_top = fun_data_apps_bitcoin_keychain__get_keychain_for_coin + 12, + .opcodes = fun_data_apps_bitcoin_keychain__get_keychain_for_coin + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_keychain__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/keychain.py, scope apps_bitcoin_keychain__get_unlock_schemas +static const byte fun_data_apps_bitcoin_keychain__get_unlock_schemas[138] = { + 0x5b,0x2b, // prelude + 0x35,0x6f,0x76,0x6e, // names: _get_unlock_schemas, msg, auth_msg, coin + 0x90,0x18,0x60,0x20,0x55,0x69,0x4a,0x73,0x20,0x23,0x70,0x6a,0x60,0x68,0x40,0x27,0x48,0x01, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x36, // LOAD_CONST_STRING 'GetOwnershipProof' + 0x10,0x37, // LOAD_CONST_STRING 'SignTx' + 0x10,0x38, // LOAD_CONST_STRING 'UnlockPath' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x08, // IMPORT_NAME 'trezor.messages' + 0x1c,0x36, // IMPORT_FROM 'GetOwnershipProof' + 0xc3, // STORE_FAST 3 + 0x1c,0x37, // IMPORT_FROM 'SignTx' + 0xc4, // STORE_FAST 4 + 0x1c,0x38, // IMPORT_FROM 'UnlockPath' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'AuthorizeCoinJoin' + 0x14,0x1b, // LOAD_METHOD 'is_type_of' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x28, // LOAD_GLOBAL 'get_schemas_from_patterns' + 0x12,0x61, // LOAD_GLOBAL 'PATTERN_SLIP25_TAPROOT' + 0x2b,0x01, // BUILD_LIST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x12,0x06, // LOAD_GLOBAL 'AuthorizeCoinJoin' + 0x14,0x1b, // LOAD_METHOD 'is_type_of' + 0x25,0x01, // LOAD_DEREF 1 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb5, // LOAD_FAST 5 + 0x14,0x1b, // LOAD_METHOD 'is_type_of' + 0x25,0x01, // LOAD_DEREF 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x74, // POP_JUMP_IF_FALSE 52 + 0x2b,0x00, // BUILD_LIST 0 + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x14,0x1b, // LOAD_METHOD 'is_type_of' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xb3, // LOAD_FAST 3 + 0x14,0x1b, // LOAD_METHOD 'is_type_of' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb6, // LOAD_FAST 6 + 0x14,0x15, // LOAD_METHOD 'append' + 0x12,0x61, // LOAD_GLOBAL 'PATTERN_SLIP25_TAPROOT' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x48, // JUMP 8 + 0xb6, // LOAD_FAST 6 + 0x14,0x15, // LOAD_METHOD 'append' + 0x12,0x62, // LOAD_GLOBAL 'PATTERN_SLIP25_TAPROOT_EXTERNAL' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x28, // LOAD_GLOBAL 'get_schemas_from_patterns' + 0xb6, // LOAD_FAST 6 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc7, // STORE_FAST 7 + 0xb1, // LOAD_FAST 1 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0x2b,0x00, // BUILD_LIST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_keychain__get_unlock_schemas +// frozen bytecode for file apps/bitcoin/keychain.py, scope apps_bitcoin_keychain__get_unlock_schemas__lt_listcomp_gt_ +static const byte fun_data_apps_bitcoin_keychain__get_unlock_schemas__lt_listcomp_gt_[31] = { + 0x52,0x0a, // prelude + 0x48,0x7c,0x7c, // names: , *, * + 0x90,0x37, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x11, // FOR_ITER 17 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x14,0x4a, // LOAD_METHOD 'restrict' + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x17, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x32, // POP_JUMP_IF_FALSE -14 + 0xb2, // LOAD_FAST 2 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x2d, // JUMP -19 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_keychain__get_unlock_schemas__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_keychain__get_unlock_schemas__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 72, + .line_info = fun_data_apps_bitcoin_keychain__get_unlock_schemas__lt_listcomp_gt_ + 5, + .line_info_top = fun_data_apps_bitcoin_keychain__get_unlock_schemas__lt_listcomp_gt_ + 7, + .opcodes = fun_data_apps_bitcoin_keychain__get_unlock_schemas__lt_listcomp_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_keychain__get_unlock_schemas[] = { + &raw_code_apps_bitcoin_keychain__get_unlock_schemas__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_keychain__get_unlock_schemas = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_keychain__get_unlock_schemas, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 138, + #endif + .children = (void *)&children_apps_bitcoin_keychain__get_unlock_schemas, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 53, + .line_info = fun_data_apps_bitcoin_keychain__get_unlock_schemas + 6, + .line_info_top = fun_data_apps_bitcoin_keychain__get_unlock_schemas + 23, + .opcodes = fun_data_apps_bitcoin_keychain__get_unlock_schemas + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_keychain__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/keychain.py, scope apps_bitcoin_keychain_with_keychain +static const byte fun_data_apps_bitcoin_keychain_with_keychain[20] = { + 0x21,0x0d, // prelude + 0x39,0x77, // names: with_keychain, func + 0x90,0x3d,0x89,0x0e,0x00, // code info + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x21,0x00,0x01, // MAKE_CLOSURE_DEFARGS 0 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_keychain_with_keychain +// frozen bytecode for file apps/bitcoin/keychain.py, scope apps_bitcoin_keychain_with_keychain_wrapper +static const byte fun_data_apps_bitcoin_keychain_with_keychain_wrapper[91] = { + 0xe7,0x41,0x1a, // prelude + 0x4b,0x7c,0x6f,0x76, // names: wrapper, *, msg, auth_msg + 0x90,0x41,0x28,0x28,0x2a,0x29,0x28,0x4c,0x24, // code info + 0x12,0x29, // LOAD_GLOBAL '_get_coin_by_name' + 0xb1, // LOAD_FAST 1 + 0x13,0x1e, // LOAD_ATTR 'coin_name' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x12,0x35, // LOAD_GLOBAL '_get_unlock_schemas' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc4, // STORE_FAST 4 + 0x12,0x31, // LOAD_GLOBAL '_get_keychain_for_coin' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0x12,0x06, // LOAD_GLOBAL 'AuthorizeCoinJoin' + 0x14,0x1b, // LOAD_METHOD 'is_type_of' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x0e, // LOAD_GLOBAL 'authorization' + 0x14,0x4c, // LOAD_METHOD 'from_cached_message' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0xb3, // LOAD_FAST 3 + 0xb6, // LOAD_FAST 6 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE + 0xb5, // LOAD_FAST 5 + 0x47,0x0d, // SETUP_WITH 13 + 0x59, // POP_TOP + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_keychain_with_keychain_wrapper = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_keychain_with_keychain_wrapper, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 91, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 75, + .line_info = fun_data_apps_bitcoin_keychain_with_keychain_wrapper + 7, + .line_info_top = fun_data_apps_bitcoin_keychain_with_keychain_wrapper + 16, + .opcodes = fun_data_apps_bitcoin_keychain_with_keychain_wrapper + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_keychain_with_keychain[] = { + &raw_code_apps_bitcoin_keychain_with_keychain_wrapper, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_keychain_with_keychain = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_keychain_with_keychain, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = (void *)&children_apps_bitcoin_keychain_with_keychain, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 57, + .line_info = fun_data_apps_bitcoin_keychain_with_keychain + 4, + .line_info_top = fun_data_apps_bitcoin_keychain_with_keychain + 8, + .opcodes = fun_data_apps_bitcoin_keychain_with_keychain + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_keychain__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/keychain.py, scope apps_bitcoin_keychain_AccountType +static const byte fun_data_apps_bitcoin_keychain_AccountType[29] = { + 0x08,0x0a, // prelude + 0x13, // names: AccountType + 0x98,0x4f,0x88,0x12, // code info + 0x11,0x78, // LOAD_NAME '__name__' + 0x16,0x79, // STORE_NAME '__module__' + 0x10,0x13, // LOAD_CONST_STRING 'AccountType' + 0x16,0x7a, // STORE_NAME '__qualname__' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x4d, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x44, // STORE_NAME 'get_name' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_keychain_AccountType +// frozen bytecode for file apps/bitcoin/keychain.py, scope apps_bitcoin_keychain_AccountType___init__ +static const byte fun_data_apps_bitcoin_keychain_AccountType___init__[51] = { + 0xc8,0x81,0x04,0x22, // prelude + 0x4d,0x7d,0x4e,0x4f,0x18,0x3c,0x3d,0x3e,0x3f, // names: __init__, self, account_name, pattern, script_type, require_segwit, require_bech32, require_taproot, account_level + 0x90,0x59,0x24,0x24,0x24,0x24,0x24,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x4e, // STORE_ATTR 'account_name' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x4f, // STORE_ATTR 'pattern' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x18, // STORE_ATTR 'script_type' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x3c, // STORE_ATTR 'require_segwit' + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x18,0x3d, // STORE_ATTR 'require_bech32' + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x18,0x3e, // STORE_ATTR 'require_taproot' + 0xb7, // LOAD_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x18,0x3f, // STORE_ATTR 'account_level' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_keychain_AccountType___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 8, + .fun_data = fun_data_apps_bitcoin_keychain_AccountType___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 8, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 77, + .line_info = fun_data_apps_bitcoin_keychain_AccountType___init__ + 13, + .line_info_top = fun_data_apps_bitcoin_keychain_AccountType___init__ + 21, + .opcodes = fun_data_apps_bitcoin_keychain_AccountType___init__ + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_keychain_AccountType +// frozen bytecode for file apps/bitcoin/keychain.py, scope apps_bitcoin_keychain_AccountType_get_name +static const byte fun_data_apps_bitcoin_keychain_AccountType_get_name[183] = { + 0xf1,0x04,0x34, // prelude + 0x44,0x7d,0x6e,0x17,0x18,0x7b, // names: get_name, self, coin, address_n, script_type, show_account_str + 0x90,0x68,0x24,0x65,0x55,0x20,0x2d,0x31,0x2a,0x2a,0x4a,0x42,0x24,0x23,0x2a,0x28,0x25,0x2a,0x2a,0x4a, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x4f, // LOAD_ATTR 'pattern' + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'account_level' + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x10,0x50, // LOAD_CONST_STRING '/' + 0x14,0x51, // LOAD_METHOD 'join' + 0xb5, // LOAD_FAST 5 + 0x14,0x52, // LOAD_METHOD 'split' + 0x10,0x50, // LOAD_CONST_STRING '/' + 0x36,0x01, // CALL_METHOD 1 + 0x51, // LOAD_CONST_NONE + 0x12,0x10, // LOAD_GLOBAL 'BIP32_WALLET_DEPTH' + 0xd1, // UNARY_OP 1 __neg__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'script_type' + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x6f, // POP_JUMP_IF_TRUE 47 + 0x12,0x0b, // LOAD_GLOBAL 'PathSchema' + 0x14,0x46, // LOAD_METHOD 'parse' + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'slip44' + 0x36,0x02, // CALL_METHOD 2 + 0x14,0x47, // LOAD_METHOD 'match' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x5e, // POP_JUMP_IF_FALSE 30 + 0xb1, // LOAD_FAST 1 + 0x13,0x1f, // LOAD_ATTR 'segwit' + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x3c, // LOAD_ATTR 'require_segwit' + 0x43,0x54, // POP_JUMP_IF_TRUE 20 + 0xb1, // LOAD_FAST 1 + 0x13,0x53, // LOAD_ATTR 'bech32_prefix' + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x3d, // LOAD_ATTR 'require_bech32' + 0x43,0x4a, // POP_JUMP_IF_TRUE 10 + 0xb1, // LOAD_FAST 1 + 0x13,0x22, // LOAD_ATTR 'taproot' + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x3e, // LOAD_ATTR 'require_taproot' + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x4e, // LOAD_ATTR 'account_name' + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x10,0x54, // LOAD_CONST_STRING '{} account' + 0x14,0x55, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x13,0x4e, // LOAD_ATTR 'account_name' + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x14,0x56, // LOAD_METHOD 'find' + 0x10,0x57, // LOAD_CONST_STRING "/account'" + 0x36,0x01, // CALL_METHOD 1 + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x5e, // POP_JUMP_IF_FALSE 30 + 0xb5, // LOAD_FAST 5 + 0x14,0x58, // LOAD_METHOD 'count' + 0x10,0x50, // LOAD_CONST_STRING '/' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb7, // LOAD_FAST 7 + 0x36,0x03, // CALL_METHOD 3 + 0xc8, // STORE_FAST 8 + 0x12,0x0c, // LOAD_GLOBAL 'unharden' + 0xb2, // LOAD_FAST 2 + 0xb8, // LOAD_FAST 8 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc9, // STORE_FAST 9 + 0xb6, // LOAD_FAST 6 + 0x10,0x59, // LOAD_CONST_STRING ' #{}' + 0x14,0x55, // LOAD_METHOD 'format' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_keychain_AccountType_get_name = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_bitcoin_keychain_AccountType_get_name, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 183, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 68, + .line_info = fun_data_apps_bitcoin_keychain_AccountType_get_name + 9, + .line_info_top = fun_data_apps_bitcoin_keychain_AccountType_get_name + 29, + .opcodes = fun_data_apps_bitcoin_keychain_AccountType_get_name + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_keychain_AccountType[] = { + &raw_code_apps_bitcoin_keychain_AccountType___init__, + &raw_code_apps_bitcoin_keychain_AccountType_get_name, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_keychain_AccountType = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_keychain_AccountType, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = (void *)&children_apps_bitcoin_keychain_AccountType, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_bitcoin_keychain_AccountType + 3, + .line_info_top = fun_data_apps_bitcoin_keychain_AccountType + 7, + .opcodes = fun_data_apps_bitcoin_keychain_AccountType + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_keychain__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/keychain.py, scope apps_bitcoin_keychain_address_n_to_name +static const byte fun_data_apps_bitcoin_keychain_address_n_to_name[213] = { + 0xc1,0x95,0x01,0x40, // prelude + 0x3a,0x6e,0x17,0x18,0x3f,0x7b, // names: address_n_to_name, coin, address_n, script_type, account_level, show_account_str + 0x90,0x8a,0x20,0x66,0x73,0x60,0x66,0x73,0x60,0x66,0x73,0x60,0x66,0x73,0x60,0x66,0x73,0x60,0x66,0x76,0x60,0x40,0x25,0x2a,0x23,0x44, // code info + 0x12,0x13, // LOAD_GLOBAL 'AccountType' + 0x10,0x3b, // LOAD_CONST_STRING 'Legacy' + 0x12,0x09, // LOAD_GLOBAL 'PATTERN_BIP44' + 0x12,0x04, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x19, // LOAD_ATTR 'SPENDADDRESS' + 0x10,0x3c, // LOAD_CONST_STRING 'require_segwit' + 0x52, // LOAD_CONST_TRUE + 0x10,0x3d, // LOAD_CONST_STRING 'require_bech32' + 0x50, // LOAD_CONST_FALSE + 0x10,0x3e, // LOAD_CONST_STRING 'require_taproot' + 0x50, // LOAD_CONST_FALSE + 0x10,0x3f, // LOAD_CONST_STRING 'account_level' + 0xb3, // LOAD_FAST 3 + 0x34,0x88,0x03, // CALL_FUNCTION 1027 + 0x12,0x13, // LOAD_GLOBAL 'AccountType' + 0x10,0x0f, // LOAD_CONST_STRING '' + 0x12,0x09, // LOAD_GLOBAL 'PATTERN_BIP44' + 0x12,0x04, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x19, // LOAD_ATTR 'SPENDADDRESS' + 0x10,0x3c, // LOAD_CONST_STRING 'require_segwit' + 0x50, // LOAD_CONST_FALSE + 0x10,0x3d, // LOAD_CONST_STRING 'require_bech32' + 0x50, // LOAD_CONST_FALSE + 0x10,0x3e, // LOAD_CONST_STRING 'require_taproot' + 0x50, // LOAD_CONST_FALSE + 0x10,0x3f, // LOAD_CONST_STRING 'account_level' + 0xb3, // LOAD_FAST 3 + 0x34,0x88,0x03, // CALL_FUNCTION 1027 + 0x12,0x13, // LOAD_GLOBAL 'AccountType' + 0x10,0x40, // LOAD_CONST_STRING 'L. SegWit' + 0x12,0x5e, // LOAD_GLOBAL 'PATTERN_BIP49' + 0x12,0x04, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x20, // LOAD_ATTR 'SPENDP2SHWITNESS' + 0x10,0x3c, // LOAD_CONST_STRING 'require_segwit' + 0x52, // LOAD_CONST_TRUE + 0x10,0x3d, // LOAD_CONST_STRING 'require_bech32' + 0x50, // LOAD_CONST_FALSE + 0x10,0x3e, // LOAD_CONST_STRING 'require_taproot' + 0x50, // LOAD_CONST_FALSE + 0x10,0x3f, // LOAD_CONST_STRING 'account_level' + 0xb3, // LOAD_FAST 3 + 0x34,0x88,0x03, // CALL_FUNCTION 1027 + 0x12,0x13, // LOAD_GLOBAL 'AccountType' + 0x10,0x41, // LOAD_CONST_STRING 'SegWit' + 0x12,0x5f, // LOAD_GLOBAL 'PATTERN_BIP84' + 0x12,0x04, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x21, // LOAD_ATTR 'SPENDWITNESS' + 0x10,0x3c, // LOAD_CONST_STRING 'require_segwit' + 0x52, // LOAD_CONST_TRUE + 0x10,0x3d, // LOAD_CONST_STRING 'require_bech32' + 0x52, // LOAD_CONST_TRUE + 0x10,0x3e, // LOAD_CONST_STRING 'require_taproot' + 0x50, // LOAD_CONST_FALSE + 0x10,0x3f, // LOAD_CONST_STRING 'account_level' + 0xb3, // LOAD_FAST 3 + 0x34,0x88,0x03, // CALL_FUNCTION 1027 + 0x12,0x13, // LOAD_GLOBAL 'AccountType' + 0x10,0x42, // LOAD_CONST_STRING 'Taproot' + 0x12,0x60, // LOAD_GLOBAL 'PATTERN_BIP86' + 0x12,0x04, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x23, // LOAD_ATTR 'SPENDTAPROOT' + 0x10,0x3c, // LOAD_CONST_STRING 'require_segwit' + 0x50, // LOAD_CONST_FALSE + 0x10,0x3d, // LOAD_CONST_STRING 'require_bech32' + 0x52, // LOAD_CONST_TRUE + 0x10,0x3e, // LOAD_CONST_STRING 'require_taproot' + 0x52, // LOAD_CONST_TRUE + 0x10,0x3f, // LOAD_CONST_STRING 'account_level' + 0xb3, // LOAD_FAST 3 + 0x34,0x88,0x03, // CALL_FUNCTION 1027 + 0x12,0x13, // LOAD_GLOBAL 'AccountType' + 0x10,0x43, // LOAD_CONST_STRING 'Coinjoin' + 0x12,0x61, // LOAD_GLOBAL 'PATTERN_SLIP25_TAPROOT' + 0x12,0x04, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x23, // LOAD_ATTR 'SPENDTAPROOT' + 0x10,0x3c, // LOAD_CONST_STRING 'require_segwit' + 0x50, // LOAD_CONST_FALSE + 0x10,0x3d, // LOAD_CONST_STRING 'require_bech32' + 0x52, // LOAD_CONST_TRUE + 0x10,0x3e, // LOAD_CONST_STRING 'require_taproot' + 0x52, // LOAD_CONST_TRUE + 0x10,0x3f, // LOAD_CONST_STRING 'account_level' + 0xb3, // LOAD_FAST 3 + 0x34,0x88,0x03, // CALL_FUNCTION 1027 + 0x2a,0x06, // BUILD_TUPLE 6 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x5f, // GET_ITER_STACK + 0x4b,0x12, // FOR_ITER 18 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x14,0x44, // LOAD_METHOD 'get_name' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x36,0x04, // CALL_METHOD 4 + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb7, // LOAD_FAST 7 + 0x63, // RETURN_VALUE + 0x42,0x2c, // JUMP -20 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_keychain_address_n_to_name = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_bitcoin_keychain_address_n_to_name, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 213, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 25, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 3, + .qstr_block_name_idx = 58, + .line_info = fun_data_apps_bitcoin_keychain_address_n_to_name + 10, + .line_info_top = fun_data_apps_bitcoin_keychain_address_n_to_name + 36, + .opcodes = fun_data_apps_bitcoin_keychain_address_n_to_name + 36, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_keychain__lt_module_gt_[] = { + &raw_code_apps_bitcoin_keychain_validate_path_against_script_type, + &raw_code_apps_bitcoin_keychain__get_schemas_for_coin, + &raw_code_apps_bitcoin_keychain_get_schemas_from_patterns, + &raw_code_apps_bitcoin_keychain__get_coin_by_name, + &raw_code_apps_bitcoin_keychain__get_keychain_for_coin, + &raw_code_apps_bitcoin_keychain__get_unlock_schemas, + &raw_code_apps_bitcoin_keychain_with_keychain, + &raw_code_apps_bitcoin_keychain_AccountType, + &raw_code_apps_bitcoin_keychain_address_n_to_name, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_keychain__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_keychain__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 299, + #endif + .children = (void *)&children_apps_bitcoin_keychain__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 9, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_keychain__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_keychain__lt_module_gt_ + 53, + .opcodes = fun_data_apps_bitcoin_keychain__lt_module_gt_ + 53, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_keychain[126] = { + MP_QSTR_apps_slash_bitcoin_slash_keychain_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_InputScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_AuthorizeCoinJoin, + MP_QSTR_SignMessage, + MP_QSTR_trezor_dot_messages, + MP_QSTR_PATTERN_BIP44, + MP_QSTR_PATTERN_CASA, + MP_QSTR_PathSchema, + MP_QSTR_unharden, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_authorization, + MP_QSTR_, + MP_QSTR_BIP32_WALLET_DEPTH, + MP_QSTR_BITCOIN_NAMES, + MP_QSTR_common, + MP_QSTR_AccountType, + MP_QSTR_validate_path_against_script_type, + MP_QSTR_append, + MP_QSTR_slip44, + MP_QSTR_address_n, + MP_QSTR_script_type, + MP_QSTR_SPENDADDRESS, + MP_QSTR_multisig, + MP_QSTR_is_type_of, + MP_QSTR_SPENDMULTISIG, + MP_QSTR_fork_id, + MP_QSTR_coin_name, + MP_QSTR_segwit, + MP_QSTR_SPENDP2SHWITNESS, + MP_QSTR_SPENDWITNESS, + MP_QSTR_taproot, + MP_QSTR_SPENDTAPROOT, + MP_QSTR__get_schemas_for_coin, + MP_QSTR_gc, + MP_QSTR_extend, + MP_QSTR_collect, + MP_QSTR_get_schemas_from_patterns, + MP_QSTR__get_coin_by_name, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_coininfo, + MP_QSTR_apps_dot_common, + MP_QSTR_Bitcoin, + MP_QSTR_by_name, + MP_QSTR_DataError, + MP_QSTR__get_keychain_for_coin, + MP_QSTR_get_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_curve_name, + MP_QSTR__get_unlock_schemas, + MP_QSTR_GetOwnershipProof, + MP_QSTR_SignTx, + MP_QSTR_UnlockPath, + MP_QSTR_with_keychain, + MP_QSTR_address_n_to_name, + MP_QSTR_Legacy, + MP_QSTR_require_segwit, + MP_QSTR_require_bech32, + MP_QSTR_require_taproot, + MP_QSTR_account_level, + MP_QSTR_L_dot__space_SegWit, + MP_QSTR_SegWit, + MP_QSTR_Taproot, + MP_QSTR_Coinjoin, + MP_QSTR_get_name, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_parse, + MP_QSTR_match, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_copy, + MP_QSTR_restrict, + MP_QSTR_wrapper, + MP_QSTR_from_cached_message, + MP_QSTR___init__, + MP_QSTR_account_name, + MP_QSTR_pattern, + MP_QSTR__slash_, + MP_QSTR_join, + MP_QSTR_split, + MP_QSTR_bech32_prefix, + MP_QSTR__brace_open__brace_close__space_account, + MP_QSTR_format, + MP_QSTR_find, + MP_QSTR__slash_account_squot_, + MP_QSTR_count, + MP_QSTR__space__hash__brace_open__brace_close_, + MP_QSTR_PATTERN_BIP45, + MP_QSTR_PATTERN_BIP48_RAW, + MP_QSTR_PATTERN_BIP48_P2SHSEGWIT, + MP_QSTR_PATTERN_BIP48_SEGWIT, + MP_QSTR_PATTERN_BIP49, + MP_QSTR_PATTERN_BIP84, + MP_QSTR_PATTERN_BIP86, + MP_QSTR_PATTERN_SLIP25_TAPROOT, + MP_QSTR_PATTERN_SLIP25_TAPROOT_EXTERNAL, + MP_QSTR_PATTERN_GREENADDRESS_A, + MP_QSTR_PATTERN_GREENADDRESS_B, + MP_QSTR_PATTERN_GREENADDRESS_SIGN_A, + MP_QSTR_PATTERN_GREENADDRESS_SIGN_B, + MP_QSTR_PATTERN_CASA_UNHARDENED, + MP_QSTR_PATTERN_UNCHAINED_HARDENED, + MP_QSTR_PATTERN_UNCHAINED_UNHARDENED, + MP_QSTR_PATTERN_UNCHAINED_DEPRECATED, + MP_QSTR_PATTERN_SLIP26_T1_FW, + MP_QSTR_SLIP44_BITCOIN, + MP_QSTR_SLIP44_TESTNET, + MP_QSTR_coin, + MP_QSTR_msg, + MP_QSTR_bool, + MP_QSTR_getattr, + MP_QSTR_any, + MP_QSTR_unlock_schemas, + MP_QSTR_patterns, + MP_QSTR_ValueError, + MP_QSTR_auth_msg, + MP_QSTR_func, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_show_account_str, + MP_QSTR__star_, + MP_QSTR_self, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_keychain_0 = {{&mp_type_str}, 53173, 34, (const byte*)"\x6d\x2f\x34\x35\x27\x2f\x5b\x30\x2d\x31\x30\x30\x5d\x2f\x63\x68\x61\x6e\x67\x65\x2f\x61\x64\x64\x72\x65\x73\x73\x5f\x69\x6e\x64\x65\x78"}; +static const mp_obj_str_t const_obj_apps_bitcoin_keychain_1 = {{&mp_type_str}, 3976, 49, (const byte*)"\x6d\x2f\x34\x38\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x61\x63\x63\x6f\x75\x6e\x74\x27\x2f\x30\x27\x2f\x63\x68\x61\x6e\x67\x65\x2f\x61\x64\x64\x72\x65\x73\x73\x5f\x69\x6e\x64\x65\x78"}; +static const mp_obj_str_t const_obj_apps_bitcoin_keychain_2 = {{&mp_type_str}, 54473, 49, (const byte*)"\x6d\x2f\x34\x38\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x61\x63\x63\x6f\x75\x6e\x74\x27\x2f\x31\x27\x2f\x63\x68\x61\x6e\x67\x65\x2f\x61\x64\x64\x72\x65\x73\x73\x5f\x69\x6e\x64\x65\x78"}; +static const mp_obj_str_t const_obj_apps_bitcoin_keychain_3 = {{&mp_type_str}, 55434, 49, (const byte*)"\x6d\x2f\x34\x38\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x61\x63\x63\x6f\x75\x6e\x74\x27\x2f\x32\x27\x2f\x63\x68\x61\x6e\x67\x65\x2f\x61\x64\x64\x72\x65\x73\x73\x5f\x69\x6e\x64\x65\x78"}; +static const mp_obj_str_t const_obj_apps_bitcoin_keychain_4 = {{&mp_type_str}, 60241, 46, (const byte*)"\x6d\x2f\x34\x39\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x61\x63\x63\x6f\x75\x6e\x74\x27\x2f\x63\x68\x61\x6e\x67\x65\x2f\x61\x64\x64\x72\x65\x73\x73\x5f\x69\x6e\x64\x65\x78"}; +static const mp_obj_str_t const_obj_apps_bitcoin_keychain_5 = {{&mp_type_str}, 26256, 46, (const byte*)"\x6d\x2f\x38\x34\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x61\x63\x63\x6f\x75\x6e\x74\x27\x2f\x63\x68\x61\x6e\x67\x65\x2f\x61\x64\x64\x72\x65\x73\x73\x5f\x69\x6e\x64\x65\x78"}; +static const mp_obj_str_t const_obj_apps_bitcoin_keychain_6 = {{&mp_type_str}, 61202, 46, (const byte*)"\x6d\x2f\x38\x36\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x61\x63\x63\x6f\x75\x6e\x74\x27\x2f\x63\x68\x61\x6e\x67\x65\x2f\x61\x64\x64\x72\x65\x73\x73\x5f\x69\x6e\x64\x65\x78"}; +static const mp_obj_str_t const_obj_apps_bitcoin_keychain_7 = {{&mp_type_str}, 26018, 46, (const byte*)"\x6d\x2f\x31\x30\x30\x32\x35\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x30\x27\x2f\x31\x27\x2f\x63\x68\x61\x6e\x67\x65\x2f\x61\x64\x64\x72\x65\x73\x73\x5f\x69\x6e\x64\x65\x78"}; +static const mp_obj_str_t const_obj_apps_bitcoin_keychain_8 = {{&mp_type_str}, 31540, 41, (const byte*)"\x6d\x2f\x31\x30\x30\x32\x35\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x30\x27\x2f\x31\x27\x2f\x30\x2f\x61\x64\x64\x72\x65\x73\x73\x5f\x69\x6e\x64\x65\x78"}; +static const mp_obj_str_t const_obj_apps_bitcoin_keychain_10 = {{&mp_type_str}, 14728, 33, (const byte*)"\x6d\x2f\x33\x27\x2f\x5b\x31\x2d\x31\x30\x30\x5d\x27\x2f\x5b\x31\x2c\x34\x5d\x2f\x61\x64\x64\x72\x65\x73\x73\x5f\x69\x6e\x64\x65\x78"}; +static const mp_obj_str_t const_obj_apps_bitcoin_keychain_12 = {{&mp_type_str}, 24877, 28, (const byte*)"\x6d\x2f\x31\x31\x39\x35\x34\x38\x37\x35\x31\x38\x2f\x36\x2f\x61\x64\x64\x72\x65\x73\x73\x5f\x69\x6e\x64\x65\x78"}; +static const mp_obj_str_t const_obj_apps_bitcoin_keychain_13 = {{&mp_type_str}, 27958, 43, (const byte*)"\x6d\x2f\x34\x39\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x2f\x61\x63\x63\x6f\x75\x6e\x74\x2f\x63\x68\x61\x6e\x67\x65\x2f\x61\x64\x64\x72\x65\x73\x73\x5f\x69\x6e\x64\x65\x78"}; +static const mp_obj_str_t const_obj_apps_bitcoin_keychain_14 = {{&mp_type_str}, 58104, 58, (const byte*)"\x6d\x2f\x34\x35\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x61\x63\x63\x6f\x75\x6e\x74\x27\x2f\x5b\x30\x2d\x31\x30\x30\x30\x30\x30\x30\x5d\x2f\x63\x68\x61\x6e\x67\x65\x2f\x61\x64\x64\x72\x65\x73\x73\x5f\x69\x6e\x64\x65\x78"}; +static const mp_obj_str_t const_obj_apps_bitcoin_keychain_15 = {{&mp_type_str}, 36504, 56, (const byte*)"\x6d\x2f\x34\x35\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x2f\x61\x63\x63\x6f\x75\x6e\x74\x2f\x5b\x30\x2d\x31\x30\x30\x30\x30\x30\x30\x5d\x2f\x63\x68\x61\x6e\x67\x65\x2f\x61\x64\x64\x72\x65\x73\x73\x5f\x69\x6e\x64\x65\x78"}; +static const mp_obj_str_t const_obj_apps_bitcoin_keychain_16 = {{&mp_type_str}, 39505, 51, (const byte*)"\x6d\x2f\x34\x35\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x61\x63\x63\x6f\x75\x6e\x74\x27\x2f\x5b\x30\x2d\x31\x30\x30\x30\x30\x30\x30\x5d\x2f\x61\x64\x64\x72\x65\x73\x73\x5f\x69\x6e\x64\x65\x78"}; +static const mp_obj_str_t const_obj_apps_bitcoin_keychain_17 = {{&mp_type_str}, 18145, 25, (const byte*)"\x6d\x2f\x31\x30\x30\x32\x36\x27\x2f\x38\x32\x36\x34\x32\x31\x35\x38\x38\x27\x2f\x32\x27\x2f\x30\x27"}; +static const mp_obj_str_t const_obj_apps_bitcoin_keychain_19 = {{&mp_type_bytes}, 13862, 9, (const byte*)"\x53\x4c\x49\x50\x2d\x30\x30\x31\x39"}; +static const mp_obj_str_t const_obj_apps_bitcoin_keychain_20 = {{&mp_type_bytes}, 13704, 9, (const byte*)"\x53\x4c\x49\x50\x2d\x30\x30\x32\x34"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_keychain[21] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_keychain_0), + MP_ROM_PTR(&const_obj_apps_bitcoin_keychain_1), + MP_ROM_PTR(&const_obj_apps_bitcoin_keychain_2), + MP_ROM_PTR(&const_obj_apps_bitcoin_keychain_3), + MP_ROM_PTR(&const_obj_apps_bitcoin_keychain_4), + MP_ROM_PTR(&const_obj_apps_bitcoin_keychain_5), + MP_ROM_PTR(&const_obj_apps_bitcoin_keychain_6), + MP_ROM_PTR(&const_obj_apps_bitcoin_keychain_7), + MP_ROM_PTR(&const_obj_apps_bitcoin_keychain_8), + MP_ROM_QSTR(MP_QSTR_m_slash__bracket_open_1_comma_4_bracket_close__slash_address_index), + MP_ROM_PTR(&const_obj_apps_bitcoin_keychain_10), + MP_ROM_QSTR(MP_QSTR_m_slash_1195487518), + MP_ROM_PTR(&const_obj_apps_bitcoin_keychain_12), + MP_ROM_PTR(&const_obj_apps_bitcoin_keychain_13), + MP_ROM_PTR(&const_obj_apps_bitcoin_keychain_14), + MP_ROM_PTR(&const_obj_apps_bitcoin_keychain_15), + MP_ROM_PTR(&const_obj_apps_bitcoin_keychain_16), + MP_ROM_PTR(&const_obj_apps_bitcoin_keychain_17), + MP_ROM_QSTR(MP_QSTR_Unsupported_space_coin_space_type), + MP_ROM_PTR(&const_obj_apps_bitcoin_keychain_19), + MP_ROM_PTR(&const_obj_apps_bitcoin_keychain_20), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_keychain = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_keychain, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_keychain, + }, + .rc = &raw_code_apps_bitcoin_keychain__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_multisig +// - original source file: build/firmware/src/apps/bitcoin/multisig.mpy +// - frozen file name: apps/bitcoin/multisig.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/multisig.py, scope apps_bitcoin_multisig__lt_module_gt_ +static const byte fun_data_apps_bitcoin_multisig__lt_module_gt_[55] = { + 0x08,0x1e, // prelude + 0x01, // names: + 0x40,0x4c,0x60,0x60,0x84,0x24,0x84,0x0a,0x84,0x0d,0x84,0x0f,0x84,0x08, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.wire' + 0x1c,0x02, // IMPORT_FROM 'DataError' + 0x16,0x02, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x04, // STORE_NAME 'multisig_fingerprint' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x16, // STORE_NAME 'validate_multisig' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x1a, // STORE_NAME 'multisig_pubkey_index' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x1c, // STORE_NAME 'multisig_get_pubkey' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x21, // STORE_NAME 'multisig_get_pubkeys' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x22, // STORE_NAME 'multisig_get_pubkey_count' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_multisig__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/multisig.py, scope apps_bitcoin_multisig_multisig_fingerprint +static const byte fun_data_apps_bitcoin_multisig_multisig_fingerprint[245] = { + 0x89,0x10,0x36, // prelude + 0x04,0x27, // names: multisig_fingerprint, multisig + 0x80,0x0b,0x2b,0x4b,0x50,0x25,0x46,0x28,0x24,0x46,0x34,0x47,0x25,0x36,0x69,0x4b,0x27,0x26,0x26,0x25,0x28,0x28,0x28,0x29,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x05, // IMPORT_FROM 'sha256' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'HashWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.utils' + 0x1c,0x07, // IMPORT_FROM 'HashWriter' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x09, // LOAD_CONST_STRING 'write_bytes_fixed' + 0x10,0x0a, // LOAD_CONST_STRING 'write_uint32' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0b, // IMPORT_NAME 'writers' + 0x1c,0x09, // IMPORT_FROM 'write_bytes_fixed' + 0xc3, // STORE_FAST 3 + 0x1c,0x0a, // IMPORT_FROM 'write_uint32' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'nodes' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'nodes' + 0xc5, // STORE_FAST 5 + 0x42,0x48, // JUMP 8 + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'pubkeys' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'm' + 0xc6, // STORE_FAST 6 + 0x12,0x28, // LOAD_GLOBAL 'len' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x4f, // POP_JUMP_IF_TRUE 15 + 0xb7, // LOAD_FAST 7 + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x4a, // POP_JUMP_IF_TRUE 10 + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb6, // LOAD_FAST 6 + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0x5f, // GET_ITER_STACK + 0x4b,0x20, // FOR_ITER 32 + 0xc8, // STORE_FAST 8 + 0x12,0x28, // LOAD_GLOBAL 'len' + 0xb8, // LOAD_FAST 8 + 0x13,0x0f, // LOAD_ATTR 'public_key' + 0x34,0x01, // CALL_FUNCTION 1 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0x12,0x28, // LOAD_GLOBAL 'len' + 0xb8, // LOAD_FAST 8 + 0x13,0x10, // LOAD_ATTR 'chain_code' + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x1e, // JUMP -34 + 0x12,0x29, // LOAD_GLOBAL 'sorted' + 0xb5, // LOAD_FAST 5 + 0x10,0x11, // LOAD_CONST_STRING 'key' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0xb4, // LOAD_FAST 4 + 0xb9, // LOAD_FAST 9 + 0xb6, // LOAD_FAST 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb9, // LOAD_FAST 9 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x5f, // GET_ITER_STACK + 0x4b,0x2d, // FOR_ITER 45 + 0xc8, // STORE_FAST 8 + 0xb4, // LOAD_FAST 4 + 0xb9, // LOAD_FAST 9 + 0xb8, // LOAD_FAST 8 + 0x13,0x12, // LOAD_ATTR 'depth' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb9, // LOAD_FAST 9 + 0xb8, // LOAD_FAST 8 + 0x13,0x13, // LOAD_ATTR 'fingerprint' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb9, // LOAD_FAST 9 + 0xb8, // LOAD_FAST 8 + 0x13,0x14, // LOAD_ATTR 'child_num' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb9, // LOAD_FAST 9 + 0xb8, // LOAD_FAST 8 + 0x13,0x10, // LOAD_ATTR 'chain_code' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb9, // LOAD_FAST 9 + 0xb8, // LOAD_FAST 8 + 0x13,0x0f, // LOAD_ATTR 'public_key' + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x11, // JUMP -47 + 0xb9, // LOAD_FAST 9 + 0x14,0x15, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_multisig_multisig_fingerprint +// frozen bytecode for file apps/bitcoin/multisig.py, scope apps_bitcoin_multisig_multisig_fingerprint__lt_listcomp_gt_ +static const byte fun_data_apps_bitcoin_multisig_multisig_fingerprint__lt_listcomp_gt_[21] = { + 0x39,0x08, // prelude + 0x23,0x2f, // names: , * + 0x80,0x13, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x08, // FOR_ITER 8 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'node' + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x36, // JUMP -10 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_multisig_multisig_fingerprint__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_multisig_multisig_fingerprint__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_bitcoin_multisig_multisig_fingerprint__lt_listcomp_gt_ + 4, + .line_info_top = fun_data_apps_bitcoin_multisig_multisig_fingerprint__lt_listcomp_gt_ + 6, + .opcodes = fun_data_apps_bitcoin_multisig_multisig_fingerprint__lt_listcomp_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_multisig_multisig_fingerprint +// frozen bytecode for file apps/bitcoin/multisig.py, scope apps_bitcoin_multisig_multisig_fingerprint__lt_lambda_gt_ +static const byte fun_data_apps_bitcoin_multisig_multisig_fingerprint__lt_lambda_gt_[14] = { + 0x11,0x08, // prelude + 0x24,0x2d, // names: , n + 0x80,0x1f, // code info + 0x12,0x30, // LOAD_GLOBAL 'bytes' + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'public_key' + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_multisig_multisig_fingerprint__lt_lambda_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_multisig_multisig_fingerprint__lt_lambda_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_bitcoin_multisig_multisig_fingerprint__lt_lambda_gt_ + 4, + .line_info_top = fun_data_apps_bitcoin_multisig_multisig_fingerprint__lt_lambda_gt_ + 6, + .opcodes = fun_data_apps_bitcoin_multisig_multisig_fingerprint__lt_lambda_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_multisig_multisig_fingerprint[] = { + &raw_code_apps_bitcoin_multisig_multisig_fingerprint__lt_listcomp_gt_, + &raw_code_apps_bitcoin_multisig_multisig_fingerprint__lt_lambda_gt_, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_multisig_multisig_fingerprint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_multisig_multisig_fingerprint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 245, + #endif + .children = (void *)&children_apps_bitcoin_multisig_multisig_fingerprint, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_bitcoin_multisig_multisig_fingerprint + 5, + .line_info_top = fun_data_apps_bitcoin_multisig_multisig_fingerprint + 30, + .opcodes = fun_data_apps_bitcoin_multisig_multisig_fingerprint + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_multisig__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/multisig.py, scope apps_bitcoin_multisig_validate_multisig +static const byte fun_data_apps_bitcoin_multisig_validate_multisig[81] = { + 0x49,0x13, // prelude + 0x16,0x27, // names: validate_multisig, multisig + 0x80,0x2f,0x4c,0x30,0x27,0x27,0x30,0x02, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME 'apps.common' + 0x1c,0x17, // IMPORT_FROM 'paths' + 0x27,0x02, // STORE_DEREF 2 + 0x59, // POP_TOP + 0x12,0x2a, // LOAD_GLOBAL 'any' + 0xb2, // LOAD_FAST 2 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'address_n' + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'pubkeys' + 0x5f, // GET_ITER_STACK + 0x4b,0x1a, // FOR_ITER 26 + 0xc1, // STORE_FAST 1 + 0x12,0x2a, // LOAD_GLOBAL 'any' + 0xb2, // LOAD_FAST 2 + 0x20,0x01,0x01, // MAKE_CLOSURE 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'address_n' + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x24, // JUMP -28 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_multisig_validate_multisig +// frozen bytecode for file apps/bitcoin/multisig.py, scope apps_bitcoin_multisig_validate_multisig__lt_genexpr_gt_ +static const byte fun_data_apps_bitcoin_multisig_validate_multisig__lt_genexpr_gt_[28] = { + 0xca,0x40,0x0a, // prelude + 0x25,0x2f,0x2f, // names: , *, * + 0x80,0x31, // code info + 0x53, // LOAD_NULL + 0xb1, // LOAD_FAST 1 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0c, // FOR_ITER 12 + 0xc2, // STORE_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0x14,0x26, // LOAD_METHOD 'is_hardened' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x32, // JUMP -14 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_multisig_validate_multisig__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_multisig_validate_multisig__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_bitcoin_multisig_validate_multisig__lt_genexpr_gt_ + 6, + .line_info_top = fun_data_apps_bitcoin_multisig_validate_multisig__lt_genexpr_gt_ + 8, + .opcodes = fun_data_apps_bitcoin_multisig_validate_multisig__lt_genexpr_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_multisig_validate_multisig +// frozen bytecode for file apps/bitcoin/multisig.py, scope apps_bitcoin_multisig_validate_multisig__lt_genexpr_gt_2 +static const byte fun_data_apps_bitcoin_multisig_validate_multisig__lt_genexpr_gt_2[28] = { + 0xca,0x40,0x0a, // prelude + 0x25,0x2f,0x2f, // names: , *, * + 0x80,0x34, // code info + 0x53, // LOAD_NULL + 0xb1, // LOAD_FAST 1 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0c, // FOR_ITER 12 + 0xc2, // STORE_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0x14,0x26, // LOAD_METHOD 'is_hardened' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x32, // JUMP -14 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_multisig_validate_multisig__lt_genexpr_gt_2 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_multisig_validate_multisig__lt_genexpr_gt_2, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_bitcoin_multisig_validate_multisig__lt_genexpr_gt_2 + 6, + .line_info_top = fun_data_apps_bitcoin_multisig_validate_multisig__lt_genexpr_gt_2 + 8, + .opcodes = fun_data_apps_bitcoin_multisig_validate_multisig__lt_genexpr_gt_2 + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_multisig_validate_multisig[] = { + &raw_code_apps_bitcoin_multisig_validate_multisig__lt_genexpr_gt_, + &raw_code_apps_bitcoin_multisig_validate_multisig__lt_genexpr_gt_2, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_multisig_validate_multisig = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_multisig_validate_multisig, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 81, + #endif + .children = (void *)&children_apps_bitcoin_multisig_validate_multisig, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_apps_bitcoin_multisig_validate_multisig + 4, + .line_info_top = fun_data_apps_bitcoin_multisig_validate_multisig + 11, + .opcodes = fun_data_apps_bitcoin_multisig_validate_multisig + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_multisig__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/multisig.py, scope apps_bitcoin_multisig_multisig_pubkey_index +static const byte fun_data_apps_bitcoin_multisig_multisig_pubkey_index[99] = { + 0x5a,0x1a, // prelude + 0x1a,0x27,0x2b, // names: multisig_pubkey_index, multisig, pubkey + 0x80,0x39,0x26,0x25,0x2e,0x2c,0x46,0x2e,0x2e,0x24, // code info + 0x12,0x16, // LOAD_GLOBAL 'validate_multisig' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'nodes' + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0x12,0x2c, // LOAD_GLOBAL 'enumerate' + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'nodes' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x14, // FOR_ITER 20 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc2, // STORE_FAST 2 + 0xc3, // STORE_FAST 3 + 0x12,0x1c, // LOAD_GLOBAL 'multisig_get_pubkey' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'address_n' + 0x34,0x02, // CALL_FUNCTION 2 + 0xb1, // LOAD_FAST 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE + 0x42,0x2a, // JUMP -22 + 0x42,0x60, // JUMP 32 + 0x12,0x2c, // LOAD_GLOBAL 'enumerate' + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'pubkeys' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x16, // FOR_ITER 22 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc2, // STORE_FAST 2 + 0xc4, // STORE_FAST 4 + 0x12,0x1c, // LOAD_GLOBAL 'multisig_get_pubkey' + 0xb4, // LOAD_FAST 4 + 0x13,0x1b, // LOAD_ATTR 'node' + 0xb4, // LOAD_FAST 4 + 0x13,0x19, // LOAD_ATTR 'address_n' + 0x34,0x02, // CALL_FUNCTION 2 + 0xb1, // LOAD_FAST 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE + 0x42,0x28, // JUMP -24 + 0x12,0x02, // LOAD_GLOBAL 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_multisig_multisig_pubkey_index = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_multisig_multisig_pubkey_index, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 99, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 26, + .line_info = fun_data_apps_bitcoin_multisig_multisig_pubkey_index + 5, + .line_info_top = fun_data_apps_bitcoin_multisig_multisig_pubkey_index + 15, + .opcodes = fun_data_apps_bitcoin_multisig_multisig_pubkey_index + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_multisig__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/multisig.py, scope apps_bitcoin_multisig_multisig_get_pubkey +static const byte fun_data_apps_bitcoin_multisig_multisig_get_pubkey[81] = { + 0x82,0x10,0x1c, // prelude + 0x1c,0x2d,0x2e, // names: multisig_get_pubkey, n, p + 0x80,0x46,0x4b,0x25,0x25,0x25,0x25,0x25,0x47,0x25,0x2a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1d, // LOAD_CONST_STRING 'bip32' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x1d, // IMPORT_FROM 'bip32' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x1f, // LOAD_METHOD 'HDNode' + 0x10,0x12, // LOAD_CONST_STRING 'depth' + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'depth' + 0x10,0x13, // LOAD_CONST_STRING 'fingerprint' + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'fingerprint' + 0x10,0x14, // LOAD_CONST_STRING 'child_num' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'child_num' + 0x10,0x10, // LOAD_CONST_STRING 'chain_code' + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'chain_code' + 0x10,0x0f, // LOAD_CONST_STRING 'public_key' + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'public_key' + 0x36,0x8a,0x00, // CALL_METHOD 1280 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x0b, // FOR_ITER 11 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x14,0x20, // LOAD_METHOD 'derive' + 0xb4, // LOAD_FAST 4 + 0x52, // LOAD_CONST_TRUE + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x33, // JUMP -13 + 0xb3, // LOAD_FAST 3 + 0x14,0x0f, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_multisig_multisig_get_pubkey = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_multisig_multisig_get_pubkey, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 81, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_apps_bitcoin_multisig_multisig_get_pubkey + 6, + .line_info_top = fun_data_apps_bitcoin_multisig_multisig_get_pubkey + 17, + .opcodes = fun_data_apps_bitcoin_multisig_multisig_get_pubkey + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_multisig__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/multisig.py, scope apps_bitcoin_multisig_multisig_get_pubkeys +static const byte fun_data_apps_bitcoin_multisig_multisig_get_pubkeys[45] = { + 0x11,0x0f, // prelude + 0x21,0x27, // names: multisig_get_pubkeys, multisig + 0x80,0x55,0x27,0x26,0x4b,0x00, // code info + 0x12,0x16, // LOAD_GLOBAL 'validate_multisig' + 0x25,0x00, // LOAD_DEREF 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x0c, // LOAD_ATTR 'nodes' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x0c, // LOAD_ATTR 'nodes' + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0x32,0x01, // MAKE_FUNCTION 1 + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x0d, // LOAD_ATTR 'pubkeys' + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_multisig_multisig_get_pubkeys +// frozen bytecode for file apps/bitcoin/multisig.py, scope apps_bitcoin_multisig_multisig_get_pubkeys__lt_listcomp_gt_ +static const byte fun_data_apps_bitcoin_multisig_multisig_get_pubkeys__lt_listcomp_gt_[28] = { + 0x52,0x0a, // prelude + 0x23,0x2f,0x2f, // names: , *, * + 0x80,0x57, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x0e, // FOR_ITER 14 + 0xc2, // STORE_FAST 2 + 0x12,0x1c, // LOAD_GLOBAL 'multisig_get_pubkey' + 0xb2, // LOAD_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0x13,0x19, // LOAD_ATTR 'address_n' + 0x34,0x02, // CALL_FUNCTION 2 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x30, // JUMP -16 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_multisig_multisig_get_pubkeys__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_multisig_multisig_get_pubkeys__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_bitcoin_multisig_multisig_get_pubkeys__lt_listcomp_gt_ + 5, + .line_info_top = fun_data_apps_bitcoin_multisig_multisig_get_pubkeys__lt_listcomp_gt_ + 7, + .opcodes = fun_data_apps_bitcoin_multisig_multisig_get_pubkeys__lt_listcomp_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_multisig_multisig_get_pubkeys +// frozen bytecode for file apps/bitcoin/multisig.py, scope apps_bitcoin_multisig_multisig_get_pubkeys__lt_listcomp_gt_2 +static const byte fun_data_apps_bitcoin_multisig_multisig_get_pubkeys__lt_listcomp_gt_2[28] = { + 0x49,0x08, // prelude + 0x23,0x2f, // names: , * + 0x80,0x59, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0f, // FOR_ITER 15 + 0xc1, // STORE_FAST 1 + 0x12,0x1c, // LOAD_GLOBAL 'multisig_get_pubkey' + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'node' + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'address_n' + 0x34,0x02, // CALL_FUNCTION 2 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x2f, // JUMP -17 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_multisig_multisig_get_pubkeys__lt_listcomp_gt_2 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_multisig_multisig_get_pubkeys__lt_listcomp_gt_2, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_bitcoin_multisig_multisig_get_pubkeys__lt_listcomp_gt_2 + 4, + .line_info_top = fun_data_apps_bitcoin_multisig_multisig_get_pubkeys__lt_listcomp_gt_2 + 6, + .opcodes = fun_data_apps_bitcoin_multisig_multisig_get_pubkeys__lt_listcomp_gt_2 + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_multisig_multisig_get_pubkeys[] = { + &raw_code_apps_bitcoin_multisig_multisig_get_pubkeys__lt_listcomp_gt_, + &raw_code_apps_bitcoin_multisig_multisig_get_pubkeys__lt_listcomp_gt_2, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_multisig_multisig_get_pubkeys = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_multisig_multisig_get_pubkeys, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = (void *)&children_apps_bitcoin_multisig_multisig_get_pubkeys, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_bitcoin_multisig_multisig_get_pubkeys + 4, + .line_info_top = fun_data_apps_bitcoin_multisig_multisig_get_pubkeys + 9, + .opcodes = fun_data_apps_bitcoin_multisig_multisig_get_pubkeys + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_multisig__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/multisig.py, scope apps_bitcoin_multisig_multisig_get_pubkey_count +static const byte fun_data_apps_bitcoin_multisig_multisig_get_pubkey_count[31] = { + 0x11,0x0c, // prelude + 0x22,0x27, // names: multisig_get_pubkey_count, multisig + 0x80,0x5d,0x25,0x48, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'nodes' + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x28, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'nodes' + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0x12,0x28, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'pubkeys' + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_multisig_multisig_get_pubkey_count = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_multisig_multisig_get_pubkey_count, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_apps_bitcoin_multisig_multisig_get_pubkey_count + 4, + .line_info_top = fun_data_apps_bitcoin_multisig_multisig_get_pubkey_count + 8, + .opcodes = fun_data_apps_bitcoin_multisig_multisig_get_pubkey_count + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_multisig__lt_module_gt_[] = { + &raw_code_apps_bitcoin_multisig_multisig_fingerprint, + &raw_code_apps_bitcoin_multisig_validate_multisig, + &raw_code_apps_bitcoin_multisig_multisig_pubkey_index, + &raw_code_apps_bitcoin_multisig_multisig_get_pubkey, + &raw_code_apps_bitcoin_multisig_multisig_get_pubkeys, + &raw_code_apps_bitcoin_multisig_multisig_get_pubkey_count, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_multisig__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_multisig__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = (void *)&children_apps_bitcoin_multisig__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_multisig__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_multisig__lt_module_gt_ + 17, + .opcodes = fun_data_apps_bitcoin_multisig__lt_module_gt_ + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_multisig[49] = { + MP_QSTR_apps_slash_bitcoin_slash_multisig_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_multisig_fingerprint, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_HashWriter, + MP_QSTR_trezor_dot_utils, + MP_QSTR_write_bytes_fixed, + MP_QSTR_write_uint32, + MP_QSTR_writers, + MP_QSTR_nodes, + MP_QSTR_pubkeys, + MP_QSTR_m, + MP_QSTR_public_key, + MP_QSTR_chain_code, + MP_QSTR_key, + MP_QSTR_depth, + MP_QSTR_fingerprint, + MP_QSTR_child_num, + MP_QSTR_get_digest, + MP_QSTR_validate_multisig, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_address_n, + MP_QSTR_multisig_pubkey_index, + MP_QSTR_node, + MP_QSTR_multisig_get_pubkey, + MP_QSTR_bip32, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_HDNode, + MP_QSTR_derive, + MP_QSTR_multisig_get_pubkeys, + MP_QSTR_multisig_get_pubkey_count, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR__lt_lambda_gt_, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_is_hardened, + MP_QSTR_multisig, + MP_QSTR_len, + MP_QSTR_sorted, + MP_QSTR_any, + MP_QSTR_pubkey, + MP_QSTR_enumerate, + MP_QSTR_n, + MP_QSTR_p, + MP_QSTR__star_, + MP_QSTR_bytes, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_multisig_0 = {{&mp_type_str}, 4346, 27, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x6d\x75\x6c\x74\x69\x73\x69\x67\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73"}; +static const mp_obj_str_t const_obj_apps_bitcoin_multisig_1 = {{&mp_type_str}, 47872, 44, (const byte*)"\x43\x61\x6e\x6e\x6f\x74\x20\x70\x65\x72\x66\x6f\x72\x6d\x20\x68\x61\x72\x64\x65\x6e\x65\x64\x20\x64\x65\x72\x69\x76\x61\x74\x69\x6f\x6e\x20\x66\x72\x6f\x6d\x20\x58\x50\x55\x42"}; +static const mp_obj_str_t const_obj_apps_bitcoin_multisig_2 = {{&mp_type_str}, 17162, 35, (const byte*)"\x50\x75\x62\x6b\x65\x79\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64\x20\x69\x6e\x20\x6d\x75\x6c\x74\x69\x73\x69\x67\x20\x73\x63\x72\x69\x70\x74"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_multisig[3] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_multisig_0), + MP_ROM_PTR(&const_obj_apps_bitcoin_multisig_1), + MP_ROM_PTR(&const_obj_apps_bitcoin_multisig_2), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_multisig = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_multisig, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_multisig, + }, + .rc = &raw_code_apps_bitcoin_multisig__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_ownership +// - original source file: build/firmware/src/apps/bitcoin/ownership.mpy +// - frozen file name: apps/bitcoin/ownership.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/ownership.py, scope apps_bitcoin_ownership__lt_module_gt_ +static const byte fun_data_apps_bitcoin_ownership__lt_module_gt_[147] = { + 0x08,0x26, // prelude + 0x01, // names: + 0x6c,0x2c,0x2c,0x2c,0x4c,0x2c,0x4c,0x4c,0x80,0x0c,0x64,0x68,0x84,0x33,0x84,0x30,0x84,0x14, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor' + 0x1c,0x04, // IMPORT_FROM 'utils' + 0x16,0x04, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x06, // IMPORT_FROM 'sha256' + 0x16,0x06, // STORE_NAME 'sha256' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'HashWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.utils' + 0x1c,0x08, // IMPORT_FROM 'HashWriter' + 0x16,0x08, // STORE_NAME 'HashWriter' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'trezor.wire' + 0x1c,0x0a, // IMPORT_FROM 'DataError' + 0x16,0x0a, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'write_bytes_prefixed' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'apps.bitcoin.writers' + 0x1c,0x0c, // IMPORT_FROM 'write_bytes_prefixed' + 0x16,0x0c, // STORE_NAME 'write_bytes_prefixed' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'read_compact_size' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'apps.common.readers' + 0x1c,0x0e, // IMPORT_FROM 'read_compact_size' + 0x16,0x0e, // STORE_NAME 'read_compact_size' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x10, // LOAD_CONST_STRING 'read_bip322_signature_proof' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'scripts' + 0x1c,0x10, // IMPORT_FROM 'read_bip322_signature_proof' + 0x16,0x10, // STORE_NAME 'read_bip322_signature_proof' + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x36, // STORE_NAME '_VERSION_MAGIC' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x2b,0x02, // BUILD_LIST 2 + 0x16,0x37, // STORE_NAME '_OWNERSHIP_ID_KEY_PATH' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x12, // STORE_NAME 'generate_proof' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x25, // STORE_NAME 'verify_nonownership' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x2e, // STORE_NAME 'read_scriptsig_witness' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x2f, // STORE_NAME 'get_identifier' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_ownership__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/ownership.py, scope apps_bitcoin_ownership_generate_proof +static const byte fun_data_apps_bitcoin_ownership_generate_proof[282] = { + 0xd8,0x90,0x04,0x4e, // prelude + 0x12,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, // names: generate_proof, node, script_type, multisig, coin, user_confirmed, ownership_ids, script_pubkey, commitment_data + 0x80,0x29,0x4b,0x55,0x2b,0x4b,0x22,0x23,0x44,0x54,0x28,0x26,0x2a,0x26,0x4a,0x2b,0x28,0x28,0x21,0x23,0x23,0x23,0x48,0x30,0x27,0x50,0x27,0x27,0x6c,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'InputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'trezor.enums' + 0x1c,0x13, // IMPORT_FROM 'InputScriptType' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x15, // LOAD_CONST_STRING 'write_bytes_fixed' + 0x10,0x16, // LOAD_CONST_STRING 'write_compact_size' + 0x10,0x17, // LOAD_CONST_STRING 'write_uint8' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x0d, // IMPORT_NAME 'apps.bitcoin.writers' + 0x1c,0x15, // IMPORT_FROM 'write_bytes_fixed' + 0xc9, // STORE_FAST 9 + 0x1c,0x16, // IMPORT_FROM 'write_compact_size' + 0xca, // STORE_FAST 10 + 0x1c,0x17, // IMPORT_FROM 'write_uint8' + 0xcb, // STORE_FAST 11 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x18, // LOAD_CONST_STRING 'common' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x19, // IMPORT_NAME '' + 0x1c,0x18, // IMPORT_FROM 'common' + 0xcc, // STORE_FAST 12 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1a, // LOAD_CONST_STRING 'write_bip322_signature_proof' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'scripts' + 0x1c,0x1a, // IMPORT_FROM 'write_bip322_signature_proof' + 0xcd, // STORE_FAST 13 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xce, // STORE_FAST 14 + 0xb4, // LOAD_FAST 4 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xbe, // LOAD_FAST 14 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe0, // BINARY_OP 9 __ior__ + 0xce, // STORE_FAST 14 + 0x12,0x04, // LOAD_GLOBAL 'utils' + 0x14,0x1b, // LOAD_METHOD 'empty_bytearray' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x12,0x40, // LOAD_GLOBAL 'len' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xcf, // STORE_FAST 15 + 0xb9, // LOAD_FAST 9 + 0xbf, // LOAD_FAST 15 + 0x12,0x36, // LOAD_GLOBAL '_VERSION_MAGIC' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0xbf, // LOAD_FAST 15 + 0xbe, // LOAD_FAST 14 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xba, // LOAD_FAST 10 + 0xbf, // LOAD_FAST 15 + 0x12,0x40, // LOAD_GLOBAL 'len' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x5f, // GET_ITER_STACK + 0x4b,0x0c, // FOR_ITER 12 + 0x26,0x10, // STORE_FAST_N 16 + 0xb9, // LOAD_FAST 9 + 0xbf, // LOAD_FAST 15 + 0x24,0x10, // LOAD_FAST_N 16 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x32, // JUMP -14 + 0x12,0x08, // LOAD_GLOBAL 'HashWriter' + 0x12,0x06, // LOAD_GLOBAL 'sha256' + 0xbf, // LOAD_FAST 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x11, // STORE_FAST_N 17 + 0x12,0x0c, // LOAD_GLOBAL 'write_bytes_prefixed' + 0x24,0x11, // LOAD_FAST_N 17 + 0xb6, // LOAD_FAST 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'write_bytes_prefixed' + 0x24,0x11, // LOAD_FAST_N 17 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb8, // LOAD_FAST 8 + 0x13,0x1c, // LOAD_ATTR 'SPENDADDRESS' + 0xb8, // LOAD_FAST 8 + 0x13,0x1d, // LOAD_ATTR 'SPENDMULTISIG' + 0xb8, // LOAD_FAST 8 + 0x13,0x1e, // LOAD_ATTR 'SPENDWITNESS' + 0xb8, // LOAD_FAST 8 + 0x13,0x1f, // LOAD_ATTR 'SPENDP2SHWITNESS' + 0x2a,0x04, // BUILD_TUPLE 4 + 0xdd, // BINARY_OP 6 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xbc, // LOAD_FAST 12 + 0x14,0x20, // LOAD_METHOD 'ecdsa_sign' + 0xb0, // LOAD_FAST 0 + 0x24,0x11, // LOAD_FAST_N 17 + 0x14,0x21, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x12, // STORE_FAST_N 18 + 0x42,0x5e, // JUMP 30 + 0xb1, // LOAD_FAST 1 + 0xb8, // LOAD_FAST 8 + 0x13,0x22, // LOAD_ATTR 'SPENDTAPROOT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xbc, // LOAD_FAST 12 + 0x14,0x23, // LOAD_METHOD 'bip340_sign' + 0xb0, // LOAD_FAST 0 + 0x24,0x11, // LOAD_FAST_N 17 + 0x14,0x21, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x12, // STORE_FAST_N 18 + 0x42,0x47, // JUMP 7 + 0x12,0x0a, // LOAD_GLOBAL 'DataError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x14,0x24, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x13, // STORE_FAST_N 19 + 0xbd, // LOAD_FAST 13 + 0xbf, // LOAD_FAST 15 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x24,0x13, // LOAD_FAST_N 19 + 0x24,0x12, // LOAD_FAST_N 18 + 0x34,0x06, // CALL_FUNCTION 6 + 0x59, // POP_TOP + 0xbf, // LOAD_FAST 15 + 0x24,0x12, // LOAD_FAST_N 18 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_ownership_generate_proof = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 8, + .fun_data = fun_data_apps_bitcoin_ownership_generate_proof, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 282, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 28, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 8, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_bitcoin_ownership_generate_proof + 13, + .line_info_top = fun_data_apps_bitcoin_ownership_generate_proof + 43, + .opcodes = fun_data_apps_bitcoin_ownership_generate_proof + 43, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_ownership__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/ownership.py, scope apps_bitcoin_ownership_verify_nonownership +static const byte fun_data_apps_bitcoin_ownership_verify_nonownership[247] = { + 0xc5,0x14,0x46, // prelude + 0x25,0x41,0x3e,0x3f,0x42,0x3b, // names: verify_nonownership, proof, script_pubkey, commitment_data, keychain, coin + 0x80,0x59,0x4b,0x23,0x28,0x2b,0x47,0x26,0x27,0x67,0x26,0x27,0x22,0x26,0x2f,0x6b,0x20,0x2d,0x25,0x45,0x2a,0x27,0x27,0x69,0x40,0x29,0x2f,0x2a,0x4a, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x26, // LOAD_CONST_STRING 'SignatureVerifier' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x27, // IMPORT_NAME 'verification' + 0x1c,0x26, // IMPORT_FROM 'SignatureVerifier' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x48,0xac,0x01, // SETUP_EXCEPT 172 + 0x12,0x04, // LOAD_GLOBAL 'utils' + 0x14,0x28, // LOAD_METHOD 'BufferReader' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x14,0x29, // LOAD_METHOD 'read_memoryview' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x36,0x01, // CALL_METHOD 1 + 0x12,0x36, // LOAD_GLOBAL '_VERSION_MAGIC' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0a, // LOAD_GLOBAL 'DataError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb6, // LOAD_FAST 6 + 0x14,0x2a, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x22,0x81,0x7e, // LOAD_CONST_SMALL_INT 254 + 0xef, // BINARY_OP 24 __and__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0a, // LOAD_GLOBAL 'DataError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x0e, // LOAD_GLOBAL 'read_compact_size' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0x12,0x2f, // LOAD_GLOBAL 'get_identifier' + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc9, // STORE_FAST 9 + 0x52, // LOAD_CONST_TRUE + 0xca, // STORE_FAST 10 + 0xb8, // LOAD_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x55, // JUMP 21 + 0x57, // DUP_TOP + 0xcb, // STORE_FAST 11 + 0x12,0x04, // LOAD_GLOBAL 'utils' + 0x14,0x2b, // LOAD_METHOD 'consteq' + 0xb9, // LOAD_FAST 9 + 0xb6, // LOAD_FAST 6 + 0x14,0x29, // LOAD_METHOD 'read_memoryview' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x02, // CALL_METHOD 2 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0xca, // STORE_FAST 10 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x26, // POP_JUMP_IF_TRUE -26 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x43, // LOAD_GLOBAL 'memoryview' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x51, // LOAD_CONST_NONE + 0xb6, // LOAD_FAST 6 + 0x13,0x2c, // LOAD_ATTR 'offset' + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xcc, // STORE_FAST 12 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x44, // LOAD_GLOBAL 'bytes' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc2, // STORE_FAST 2 + 0x12,0x08, // LOAD_GLOBAL 'HashWriter' + 0x12,0x06, // LOAD_GLOBAL 'sha256' + 0xbc, // LOAD_FAST 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcd, // STORE_FAST 13 + 0x12,0x0c, // LOAD_GLOBAL 'write_bytes_prefixed' + 0xbd, // LOAD_FAST 13 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'write_bytes_prefixed' + 0xbd, // LOAD_FAST 13 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'read_bip322_signature_proof' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xce, // STORE_FAST 14 + 0xcf, // STORE_FAST 15 + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0xbe, // LOAD_FAST 14 + 0xbf, // LOAD_FAST 15 + 0xb4, // LOAD_FAST 4 + 0x34,0x04, // CALL_FUNCTION 4 + 0x26,0x10, // STORE_FAST_N 16 + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x2d, // LOAD_METHOD 'verify' + 0xbd, // LOAD_FAST 13 + 0x14,0x21, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x4a,0x15, // POP_EXCEPT_JUMP 21 + 0x57, // DUP_TOP + 0x12,0x45, // LOAD_GLOBAL 'ValueError' + 0x12,0x46, // LOAD_GLOBAL 'EOFError' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'DataError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xba, // LOAD_FAST 10 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_ownership_verify_nonownership = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_bitcoin_ownership_verify_nonownership, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 247, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 25, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_bitcoin_ownership_verify_nonownership + 9, + .line_info_top = fun_data_apps_bitcoin_ownership_verify_nonownership + 38, + .opcodes = fun_data_apps_bitcoin_ownership_verify_nonownership + 38, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_ownership__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/ownership.py, scope apps_bitcoin_ownership_read_scriptsig_witness +static const byte fun_data_apps_bitcoin_ownership_read_scriptsig_witness[111] = { + 0x55,0x1e, // prelude + 0x2e,0x47, // names: read_scriptsig_witness, ownership_proof + 0x80,0x83,0x22,0x28,0x2b,0x47,0x26,0x27,0x67,0x26,0x49,0x49,0x2a, // code info + 0x48,0x45, // SETUP_EXCEPT 69 + 0x12,0x04, // LOAD_GLOBAL 'utils' + 0x14,0x28, // LOAD_METHOD 'BufferReader' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x29, // LOAD_METHOD 'read_memoryview' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x36,0x01, // CALL_METHOD 1 + 0x12,0x36, // LOAD_GLOBAL '_VERSION_MAGIC' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0a, // LOAD_GLOBAL 'DataError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x14,0x2a, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x7e, // LOAD_CONST_SMALL_INT 254 + 0xef, // BINARY_OP 24 __and__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0a, // LOAD_GLOBAL 'DataError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x0e, // LOAD_GLOBAL 'read_compact_size' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x14,0x29, // LOAD_METHOD 'read_memoryview' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xb3, // LOAD_FAST 3 + 0xf4, // BINARY_OP 29 __mul__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'read_bip322_signature_proof' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0x4a,0x15, // POP_EXCEPT_JUMP 21 + 0x57, // DUP_TOP + 0x12,0x45, // LOAD_GLOBAL 'ValueError' + 0x12,0x46, // LOAD_GLOBAL 'EOFError' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'DataError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_ownership_read_scriptsig_witness = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_ownership_read_scriptsig_witness, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 111, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_bitcoin_ownership_read_scriptsig_witness + 4, + .line_info_top = fun_data_apps_bitcoin_ownership_read_scriptsig_witness + 17, + .opcodes = fun_data_apps_bitcoin_ownership_read_scriptsig_witness + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_ownership__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/ownership.py, scope apps_bitcoin_ownership_get_identifier +static const byte fun_data_apps_bitcoin_ownership_get_identifier[45] = { + 0x3a,0x0e, // prelude + 0x2f,0x3e,0x42, // names: get_identifier, script_pubkey, keychain + 0x80,0x97,0x6b,0x68, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x30, // LOAD_CONST_STRING 'hmac' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x31, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x30, // IMPORT_FROM 'hmac' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x32, // LOAD_METHOD 'derive_slip21' + 0x12,0x37, // LOAD_GLOBAL '_OWNERSHIP_ID_KEY_PATH' + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x13,0x33, // LOAD_ATTR 'SHA256' + 0xb3, // LOAD_FAST 3 + 0x14,0x34, // LOAD_METHOD 'key' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x34,0x03, // CALL_FUNCTION 3 + 0x14,0x35, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_ownership_get_identifier = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_ownership_get_identifier, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_apps_bitcoin_ownership_get_identifier + 5, + .line_info_top = fun_data_apps_bitcoin_ownership_get_identifier + 9, + .opcodes = fun_data_apps_bitcoin_ownership_get_identifier + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_ownership__lt_module_gt_[] = { + &raw_code_apps_bitcoin_ownership_generate_proof, + &raw_code_apps_bitcoin_ownership_verify_nonownership, + &raw_code_apps_bitcoin_ownership_read_scriptsig_witness, + &raw_code_apps_bitcoin_ownership_get_identifier, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_ownership__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_ownership__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 147, + #endif + .children = (void *)&children_apps_bitcoin_ownership__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_ownership__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_ownership__lt_module_gt_ + 21, + .opcodes = fun_data_apps_bitcoin_ownership__lt_module_gt_ + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_ownership[72] = { + MP_QSTR_apps_slash_bitcoin_slash_ownership_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_HashWriter, + MP_QSTR_trezor_dot_utils, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_write_bytes_prefixed, + MP_QSTR_apps_dot_bitcoin_dot_writers, + MP_QSTR_read_compact_size, + MP_QSTR_apps_dot_common_dot_readers, + MP_QSTR_read_bip322_signature_proof, + MP_QSTR_scripts, + MP_QSTR_generate_proof, + MP_QSTR_InputScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_write_bytes_fixed, + MP_QSTR_write_compact_size, + MP_QSTR_write_uint8, + MP_QSTR_common, + MP_QSTR_, + MP_QSTR_write_bip322_signature_proof, + MP_QSTR_empty_bytearray, + MP_QSTR_SPENDADDRESS, + MP_QSTR_SPENDMULTISIG, + MP_QSTR_SPENDWITNESS, + MP_QSTR_SPENDP2SHWITNESS, + MP_QSTR_ecdsa_sign, + MP_QSTR_get_digest, + MP_QSTR_SPENDTAPROOT, + MP_QSTR_bip340_sign, + MP_QSTR_public_key, + MP_QSTR_verify_nonownership, + MP_QSTR_SignatureVerifier, + MP_QSTR_verification, + MP_QSTR_BufferReader, + MP_QSTR_read_memoryview, + MP_QSTR_get, + MP_QSTR_consteq, + MP_QSTR_offset, + MP_QSTR_verify, + MP_QSTR_read_scriptsig_witness, + MP_QSTR_get_identifier, + MP_QSTR_hmac, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_derive_slip21, + MP_QSTR_SHA256, + MP_QSTR_key, + MP_QSTR_digest, + MP_QSTR__VERSION_MAGIC, + MP_QSTR__OWNERSHIP_ID_KEY_PATH, + MP_QSTR_node, + MP_QSTR_script_type, + MP_QSTR_multisig, + MP_QSTR_coin, + MP_QSTR_user_confirmed, + MP_QSTR_ownership_ids, + MP_QSTR_script_pubkey, + MP_QSTR_commitment_data, + MP_QSTR_len, + MP_QSTR_proof, + MP_QSTR_keychain, + MP_QSTR_memoryview, + MP_QSTR_bytes, + MP_QSTR_ValueError, + MP_QSTR_EOFError, + MP_QSTR_ownership_proof, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_ownership_0 = {{&mp_type_bytes}, 39779, 4, (const byte*)"\x53\x4c\x00\x19"}; +static const mp_obj_str_t const_obj_apps_bitcoin_ownership_1 = {{&mp_type_bytes}, 13862, 9, (const byte*)"\x53\x4c\x49\x50\x2d\x30\x30\x31\x39"}; +static const mp_obj_str_t const_obj_apps_bitcoin_ownership_2 = {{&mp_type_bytes}, 42811, 28, (const byte*)"\x4f\x77\x6e\x65\x72\x73\x68\x69\x70\x20\x69\x64\x65\x6e\x74\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x20\x6b\x65\x79"}; +static const mp_obj_str_t const_obj_apps_bitcoin_ownership_4 = {{&mp_type_str}, 59881, 36, (const byte*)"\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x66\x6f\x72\x6d\x61\x74\x20\x6f\x66\x20\x70\x72\x6f\x6f\x66\x20\x6f\x66\x20\x6f\x77\x6e\x65\x72\x73\x68\x69\x70"}; +static const mp_obj_str_t const_obj_apps_bitcoin_ownership_5 = {{&mp_type_str}, 16443, 35, (const byte*)"\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x66\x6c\x61\x67\x73\x20\x69\x6e\x20\x70\x72\x6f\x6f\x66\x20\x6f\x66\x20\x6f\x77\x6e\x65\x72\x73\x68\x69\x70"}; +static const mp_obj_str_t const_obj_apps_bitcoin_ownership_6 = {{&mp_type_str}, 40090, 26, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x70\x72\x6f\x6f\x66\x20\x6f\x66\x20\x6f\x77\x6e\x65\x72\x73\x68\x69\x70"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_ownership[7] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_ownership_0), + MP_ROM_PTR(&const_obj_apps_bitcoin_ownership_1), + MP_ROM_PTR(&const_obj_apps_bitcoin_ownership_2), + MP_ROM_QSTR(MP_QSTR_Unsupported_space_script_space_type_dot_), + MP_ROM_PTR(&const_obj_apps_bitcoin_ownership_4), + MP_ROM_PTR(&const_obj_apps_bitcoin_ownership_5), + MP_ROM_PTR(&const_obj_apps_bitcoin_ownership_6), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_ownership = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_ownership, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_ownership, + }, + .rc = &raw_code_apps_bitcoin_ownership__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_readers +// - original source file: build/firmware/src/apps/bitcoin/readers.mpy +// - frozen file name: apps/bitcoin/readers.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/readers.py, scope apps_bitcoin_readers__lt_module_gt_ +static const byte fun_data_apps_bitcoin_readers__lt_module_gt_[18] = { + 0x00,0x0c, // prelude + 0x01, // names: + 0x40,0x60,0x20,0x84,0x07, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'read_memoryview_prefixed' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x06, // STORE_NAME 'read_op_push' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_readers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/readers.py, scope apps_bitcoin_readers_read_memoryview_prefixed +static const byte fun_data_apps_bitcoin_readers_read_memoryview_prefixed[31] = { + 0x29,0x0c, // prelude + 0x02,0x08, // names: read_memoryview_prefixed, r + 0x80,0x07,0x4b,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'read_compact_size' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'apps.common.readers' + 0x1c,0x03, // IMPORT_FROM 'read_compact_size' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x05, // LOAD_METHOD 'read_memoryview' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_readers_read_memoryview_prefixed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_readers_read_memoryview_prefixed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_bitcoin_readers_read_memoryview_prefixed + 4, + .line_info_top = fun_data_apps_bitcoin_readers_read_memoryview_prefixed + 8, + .opcodes = fun_data_apps_bitcoin_readers_read_memoryview_prefixed + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_readers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/readers.py, scope apps_bitcoin_readers_read_op_push +static const byte fun_data_apps_bitcoin_readers_read_op_push[117] = { + 0x31,0x26, // prelude + 0x06,0x08, // names: read_op_push, r + 0x80,0x0e,0x44,0x24,0x27,0x25,0x27,0x26,0x27,0x24,0x2a,0x27,0x24,0x28,0x28,0x4a,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x07, // LOAD_ATTR 'get' + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x22,0x80,0x4c, // LOAD_CONST_SMALL_INT 76 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb2, // LOAD_FAST 2 + 0xc3, // STORE_FAST 3 + 0x42,0xca,0x80, // JUMP 74 + 0xb2, // LOAD_FAST 2 + 0x22,0x80,0x4c, // LOAD_CONST_SMALL_INT 76 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc3, // STORE_FAST 3 + 0x42,0x7d, // JUMP 61 + 0xb2, // LOAD_FAST 2 + 0x22,0x80,0x4d, // LOAD_CONST_SMALL_INT 77 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf0, // BINARY_OP 25 __lshift__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0x42,0x68, // JUMP 40 + 0xb2, // LOAD_FAST 2 + 0x22,0x80,0x4e, // LOAD_CONST_SMALL_INT 78 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5e, // POP_JUMP_IF_FALSE 30 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf0, // BINARY_OP 25 __lshift__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xf0, // BINARY_OP 25 __lshift__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x98, // LOAD_CONST_SMALL_INT 24 + 0xf0, // BINARY_OP 25 __lshift__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0x42,0x43, // JUMP 3 + 0x12,0x09, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_readers_read_op_push = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_readers_read_op_push, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 117, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_bitcoin_readers_read_op_push + 4, + .line_info_top = fun_data_apps_bitcoin_readers_read_op_push + 21, + .opcodes = fun_data_apps_bitcoin_readers_read_op_push + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_readers__lt_module_gt_[] = { + &raw_code_apps_bitcoin_readers_read_memoryview_prefixed, + &raw_code_apps_bitcoin_readers_read_op_push, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_readers__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_readers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = (void *)&children_apps_bitcoin_readers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_readers__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_readers__lt_module_gt_ + 8, + .opcodes = fun_data_apps_bitcoin_readers__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_readers[10] = { + MP_QSTR_apps_slash_bitcoin_slash_readers_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_read_memoryview_prefixed, + MP_QSTR_read_compact_size, + MP_QSTR_apps_dot_common_dot_readers, + MP_QSTR_read_memoryview, + MP_QSTR_read_op_push, + MP_QSTR_get, + MP_QSTR_r, + MP_QSTR_ValueError, +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_readers = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_readers, + .obj_table = NULL, + }, + .rc = &raw_code_apps_bitcoin_readers__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_scripts +// - original source file: build/firmware/src/apps/bitcoin/scripts.mpy +// - frozen file name: apps/bitcoin/scripts.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts__lt_module_gt_ +static const byte fun_data_apps_bitcoin_scripts__lt_module_gt_[390] = { + 0x20,0x9a,0x02, // prelude + 0x01, // names: + 0x40,0x2c,0x2c,0x32,0x4c,0x2c,0x4c,0x2c,0x2c,0x32,0x32,0x7e,0x60,0x20,0x80,0x0a,0x84,0x30,0x84,0x2e,0x84,0x20,0x84,0x08,0x84,0x13,0x88,0x0f,0x64,0x60,0x84,0x1b,0x64,0x40,0x84,0x0f,0x84,0x1e,0x88,0x16,0x88,0x12,0x84,0x08,0x84,0x15,0x84,0x25,0x84,0x21,0x64,0x60,0x84,0x20,0x84,0x29,0x84,0x1b,0x64,0x60,0x88,0x17,0x64,0x20,0x84,0x25,0x84,0x0d,0x84,0x1c,0x84,0x0a,0x84,0x0d,0x64,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'utils' + 0x16,0x02, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'InputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.enums' + 0x1c,0x04, // IMPORT_FROM 'InputScriptType' + 0x16,0x04, // STORE_NAME 'InputScriptType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'BufferReader' + 0x10,0x07, // LOAD_CONST_STRING 'empty_bytearray' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x08, // IMPORT_NAME 'trezor.utils' + 0x1c,0x06, // IMPORT_FROM 'BufferReader' + 0x16,0x06, // STORE_NAME 'BufferReader' + 0x1c,0x07, // IMPORT_FROM 'empty_bytearray' + 0x16,0x07, // STORE_NAME 'empty_bytearray' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.wire' + 0x1c,0x09, // IMPORT_FROM 'DataError' + 0x16,0x09, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'read_compact_size' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'apps.common.readers' + 0x1c,0x0b, // IMPORT_FROM 'read_compact_size' + 0x16,0x0b, // STORE_NAME 'read_compact_size' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'write_compact_size' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'apps.common.writers' + 0x1c,0x0d, // IMPORT_FROM 'write_compact_size' + 0x16,0x0d, // STORE_NAME 'write_compact_size' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0f, // LOAD_CONST_STRING 'common' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME '' + 0x1c,0x0f, // IMPORT_FROM 'common' + 0x16,0x0f, // STORE_NAME 'common' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x11, // LOAD_CONST_STRING 'SigHashType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'common' + 0x1c,0x11, // IMPORT_FROM 'SigHashType' + 0x16,0x11, // STORE_NAME 'SigHashType' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x12, // LOAD_CONST_STRING 'multisig_get_pubkeys' + 0x10,0x13, // LOAD_CONST_STRING 'multisig_pubkey_index' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x14, // IMPORT_NAME 'multisig' + 0x1c,0x12, // IMPORT_FROM 'multisig_get_pubkeys' + 0x16,0x12, // STORE_NAME 'multisig_get_pubkeys' + 0x1c,0x13, // IMPORT_FROM 'multisig_pubkey_index' + 0x16,0x13, // STORE_NAME 'multisig_pubkey_index' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x15, // LOAD_CONST_STRING 'read_memoryview_prefixed' + 0x10,0x16, // LOAD_CONST_STRING 'read_op_push' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x17, // IMPORT_NAME 'readers' + 0x1c,0x15, // IMPORT_FROM 'read_memoryview_prefixed' + 0x16,0x15, // STORE_NAME 'read_memoryview_prefixed' + 0x1c,0x16, // IMPORT_FROM 'read_op_push' + 0x16,0x16, // STORE_NAME 'read_op_push' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x18, // LOAD_CONST_STRING 'write_bytes_fixed' + 0x10,0x19, // LOAD_CONST_STRING 'write_bytes_prefixed' + 0x10,0x1a, // LOAD_CONST_STRING 'write_bytes_unchecked' + 0x10,0x1b, // LOAD_CONST_STRING 'write_op_push' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x1c, // IMPORT_NAME 'writers' + 0x1c,0x18, // IMPORT_FROM 'write_bytes_fixed' + 0x16,0x18, // STORE_NAME 'write_bytes_fixed' + 0x1c,0x19, // IMPORT_FROM 'write_bytes_prefixed' + 0x16,0x19, // STORE_NAME 'write_bytes_prefixed' + 0x1c,0x1a, // IMPORT_FROM 'write_bytes_unchecked' + 0x16,0x1a, // STORE_NAME 'write_bytes_unchecked' + 0x1c,0x1b, // IMPORT_FROM 'write_op_push' + 0x16,0x1b, // STORE_NAME 'write_op_push' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x1d, // STORE_NAME 'write_input_script_prefixed' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x2c, // STORE_NAME 'output_derive_script' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x40, // STORE_NAME 'write_bip143_script_code_prefixed' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x43, // STORE_NAME 'write_input_script_p2pkh_or_p2sh_prefixed' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x44, // STORE_NAME 'parse_input_script_p2pkh' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x05, // MAKE_FUNCTION_DEFARGS 5 + 0x16,0x48, // STORE_NAME 'write_output_script_p2pkh' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x4a, // STORE_NAME 'output_script_p2pkh' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x4b, // STORE_NAME 'output_script_p2sh' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x4d, // STORE_NAME '_input_script_native_segwit' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x4e, // STORE_NAME 'output_script_native_segwit' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x4f, // STORE_NAME 'parse_output_script_p2tr' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x0b, // MAKE_FUNCTION_DEFARGS 11 + 0x16,0x52, // STORE_NAME 'write_input_script_p2wpkh_in_p2sh' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x0c, // MAKE_FUNCTION_DEFARGS 12 + 0x16,0x53, // STORE_NAME 'write_input_script_p2wsh_in_p2sh' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x54, // STORE_NAME 'write_witness_p2wpkh' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x16,0x55, // STORE_NAME 'parse_witness_p2wpkh' + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x16,0x56, // STORE_NAME 'write_witness_multisig' + 0x32,0x10, // MAKE_FUNCTION 16 + 0x16,0x59, // STORE_NAME 'parse_witness_multisig' + 0x32,0x11, // MAKE_FUNCTION 17 + 0x16,0x5a, // STORE_NAME 'write_witness_p2tr' + 0x32,0x12, // MAKE_FUNCTION 18 + 0x16,0x5b, // STORE_NAME 'parse_witness_p2tr' + 0x32,0x13, // MAKE_FUNCTION 19 + 0x16,0x5d, // STORE_NAME '_write_input_script_multisig_prefixed' + 0x32,0x14, // MAKE_FUNCTION 20 + 0x16,0x5f, // STORE_NAME 'parse_input_script_multisig' + 0x32,0x15, // MAKE_FUNCTION 21 + 0x16,0x60, // STORE_NAME 'output_script_multisig' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x16, // MAKE_FUNCTION_DEFARGS 22 + 0x16,0x61, // STORE_NAME 'write_output_script_multisig' + 0x32,0x17, // MAKE_FUNCTION 23 + 0x16,0x62, // STORE_NAME 'output_script_multisig_length' + 0x32,0x18, // MAKE_FUNCTION 24 + 0x16,0x63, // STORE_NAME 'parse_output_script_multisig' + 0x32,0x19, // MAKE_FUNCTION 25 + 0x16,0x64, // STORE_NAME 'output_script_paytoopreturn' + 0x32,0x1a, // MAKE_FUNCTION 26 + 0x16,0x66, // STORE_NAME 'write_bip322_signature_proof' + 0x32,0x1b, // MAKE_FUNCTION 27 + 0x16,0x69, // STORE_NAME 'read_bip322_signature_proof' + 0x32,0x1c, // MAKE_FUNCTION 28 + 0x16,0x6a, // STORE_NAME 'write_signature_prefixed' + 0x32,0x1d, // MAKE_FUNCTION 29 + 0x16,0x6b, // STORE_NAME 'append_signature' + 0x32,0x1e, // MAKE_FUNCTION 30 + 0x16,0x6c, // STORE_NAME 'append_pubkey' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_write_input_script_prefixed +static const byte fun_data_apps_bitcoin_scripts_write_input_script_prefixed[220] = { + 0xa3,0x14,0x42, // prelude + 0x1d,0x6e,0x41,0x14,0x6f,0x70,0x71,0x72, // names: write_input_script_prefixed, w, script_type, multisig, coin, sighash_type, pubkey, signature + 0x80,0x28,0x2b,0x4b,0x43,0x47,0x2c,0x68,0x46,0x26,0x2a,0x2a,0x23,0x6e,0x20,0x23,0x51,0x4c,0x25,0x29,0x47,0x20,0x27,0x6d,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1e, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x1e, // IMPORT_FROM 'wire' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1f, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x20, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x1f, // IMPORT_FROM 'sha256' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'InputScriptType' + 0xc9, // STORE_FAST 9 + 0xb1, // LOAD_FAST 1 + 0xb9, // LOAD_FAST 9 + 0x13,0x21, // LOAD_ATTR 'SPENDADDRESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x43, // LOAD_GLOBAL 'write_input_script_p2pkh_or_p2sh_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x42,0x8a,0x81, // JUMP 138 + 0xb1, // LOAD_FAST 1 + 0xb9, // LOAD_FAST 9 + 0x13,0x22, // LOAD_ATTR 'SPENDP2SHWITNESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xc5,0x80, // POP_JUMP_IF_FALSE 69 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x6b, // POP_JUMP_IF_FALSE 43 + 0x12,0x12, // LOAD_GLOBAL 'multisig_get_pubkeys' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xca, // STORE_FAST 10 + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x23, // LOAD_METHOD 'HashWriter' + 0xb8, // LOAD_FAST 8 + 0x34,0x00, // CALL_FUNCTION 0 + 0x36,0x01, // CALL_METHOD 1 + 0xcb, // STORE_FAST 11 + 0x12,0x61, // LOAD_GLOBAL 'write_output_script_multisig' + 0xbb, // LOAD_FAST 11 + 0xba, // LOAD_FAST 10 + 0xb2, // LOAD_FAST 2 + 0x13,0x24, // LOAD_ATTR 'm' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x53, // LOAD_GLOBAL 'write_input_script_p2wsh_in_p2sh' + 0xb0, // LOAD_FAST 0 + 0xbb, // LOAD_FAST 11 + 0x14,0x25, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x26, // LOAD_CONST_STRING 'prefixed' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x59, // POP_TOP + 0x42,0x52, // JUMP 18 + 0x12,0x52, // LOAD_GLOBAL 'write_input_script_p2wpkh_in_p2sh' + 0xb0, // LOAD_FAST 0 + 0x12,0x0f, // LOAD_GLOBAL 'common' + 0x14,0x27, // LOAD_METHOD 'ecdsa_hash_pubkey' + 0xb5, // LOAD_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x10,0x26, // LOAD_CONST_STRING 'prefixed' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x59, // POP_TOP + 0x42,0x7d, // JUMP 61 + 0xb1, // LOAD_FAST 1 + 0xb9, // LOAD_FAST 9 + 0x13,0x28, // LOAD_ATTR 'SPENDWITNESS' + 0xb9, // LOAD_FAST 9 + 0x13,0x29, // LOAD_ATTR 'SPENDTAPROOT' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x4d, // LOAD_GLOBAL '_input_script_native_segwit' + 0x34,0x00, // CALL_FUNCTION 0 + 0xcc, // STORE_FAST 12 + 0x12,0x19, // LOAD_GLOBAL 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0xbc, // LOAD_FAST 12 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x63, // JUMP 35 + 0xb1, // LOAD_FAST 1 + 0xb9, // LOAD_FAST 9 + 0x13,0x2a, // LOAD_ATTR 'SPENDMULTISIG' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x13, // LOAD_GLOBAL 'multisig_pubkey_index' + 0xb2, // LOAD_FAST 2 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0xcd, // STORE_FAST 13 + 0x12,0x5d, // LOAD_GLOBAL '_write_input_script_multisig_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb6, // LOAD_FAST 6 + 0xbd, // LOAD_FAST 13 + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x34,0x06, // CALL_FUNCTION 6 + 0x59, // POP_TOP + 0x42,0x48, // JUMP 8 + 0xb7, // LOAD_FAST 7 + 0x14,0x2b, // LOAD_METHOD 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_write_input_script_prefixed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 7, + .fun_data = fun_data_apps_bitcoin_scripts_write_input_script_prefixed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 220, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 21, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_apps_bitcoin_scripts_write_input_script_prefixed + 11, + .line_info_top = fun_data_apps_bitcoin_scripts_write_input_script_prefixed + 36, + .opcodes = fun_data_apps_bitcoin_scripts_write_input_script_prefixed + 36, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_output_derive_script +static const byte fun_data_apps_bitcoin_scripts_output_derive_script[286] = { + 0xa6,0x10,0x40, // prelude + 0x2c,0x73,0x6f, // names: output_derive_script, address, coin + 0x80,0x50,0x50,0x4b,0x4f,0x2e,0x47,0x40,0x29,0x4e,0x2b,0x2b,0x27,0x26,0x27,0x46,0x27,0x4c,0x22,0x53,0x4a,0x4b,0x2a,0x26,0x22,0x4b,0x2a,0x26,0x42, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2d, // LOAD_CONST_STRING 'base58' + 0x10,0x2e, // LOAD_CONST_STRING 'cashaddr' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x2f, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x2d, // IMPORT_FROM 'base58' + 0xc2, // STORE_FAST 2 + 0x1c,0x2e, // IMPORT_FROM 'cashaddr' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x30, // LOAD_CONST_STRING 'address_type' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x31, // IMPORT_NAME 'apps.common' + 0x1c,0x30, // IMPORT_FROM 'address_type' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'bech32_prefix' + 0x44,0x5f, // POP_JUMP_IF_FALSE 31 + 0xb0, // LOAD_FAST 0 + 0x14,0x33, // LOAD_METHOD 'startswith' + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'bech32_prefix' + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x12,0x0f, // LOAD_GLOBAL 'common' + 0x14,0x34, // LOAD_METHOD 'decode_bech32_address' + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'bech32_prefix' + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc5, // STORE_FAST 5 + 0xc6, // STORE_FAST 6 + 0x12,0x4e, // LOAD_GLOBAL 'output_script_native_segwit' + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x35, // LOAD_ATTR 'cashaddr_prefix' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0xd1,0x80, // POP_JUMP_IF_FALSE 81 + 0xb0, // LOAD_FAST 0 + 0x14,0x33, // LOAD_METHOD 'startswith' + 0xb1, // LOAD_FAST 1 + 0x13,0x35, // LOAD_ATTR 'cashaddr_prefix' + 0x10,0x36, // LOAD_CONST_STRING ':' + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x44,0xc3,0x80, // POP_JUMP_IF_FALSE 67 + 0xb0, // LOAD_FAST 0 + 0x14,0x37, // LOAD_METHOD 'split' + 0x10,0x36, // LOAD_CONST_STRING ':' + 0x36,0x01, // CALL_METHOD 1 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc7, // STORE_FAST 7 + 0xc8, // STORE_FAST 8 + 0xb3, // LOAD_FAST 3 + 0x14,0x38, // LOAD_METHOD 'decode' + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0x36,0x02, // CALL_METHOD 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc9, // STORE_FAST 9 + 0xca, // STORE_FAST 10 + 0xb9, // LOAD_FAST 9 + 0xb3, // LOAD_FAST 3 + 0x13,0x39, // LOAD_ATTR 'ADDRESS_TYPE_P2KH' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb1, // LOAD_FAST 1 + 0x13,0x30, // LOAD_ATTR 'address_type' + 0xc9, // STORE_FAST 9 + 0x42,0x54, // JUMP 20 + 0xb9, // LOAD_FAST 9 + 0xb3, // LOAD_FAST 3 + 0x13,0x3a, // LOAD_ATTR 'ADDRESS_TYPE_P2SH' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb1, // LOAD_FAST 1 + 0x13,0x3b, // LOAD_ATTR 'address_type_p2sh' + 0xc9, // STORE_FAST 9 + 0x42,0x47, // JUMP 7 + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x74, // LOAD_GLOBAL 'bytes' + 0xb9, // LOAD_FAST 9 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xba, // LOAD_FAST 10 + 0xf2, // BINARY_OP 27 __add__ + 0xcb, // STORE_FAST 11 + 0x42,0x5f, // JUMP 31 + 0x48,0x0c, // SETUP_EXCEPT 12 + 0xb2, // LOAD_FAST 2 + 0x14,0x3c, // LOAD_METHOD 'decode_check' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x3d, // LOAD_ATTR 'b58_hash' + 0x36,0x02, // CALL_METHOD 2 + 0xcb, // STORE_FAST 11 + 0x4a,0x11, // POP_EXCEPT_JUMP 17 + 0x57, // DUP_TOP + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb4, // LOAD_FAST 4 + 0x14,0x3e, // LOAD_METHOD 'check' + 0xb1, // LOAD_FAST 1 + 0x13,0x30, // LOAD_ATTR 'address_type' + 0xbb, // LOAD_FAST 11 + 0x36,0x02, // CALL_METHOD 2 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb4, // LOAD_FAST 4 + 0x14,0x3f, // LOAD_METHOD 'strip' + 0xb1, // LOAD_FAST 1 + 0x13,0x30, // LOAD_ATTR 'address_type' + 0xbb, // LOAD_FAST 11 + 0x36,0x02, // CALL_METHOD 2 + 0xcc, // STORE_FAST 12 + 0x12,0x4a, // LOAD_GLOBAL 'output_script_p2pkh' + 0xbc, // LOAD_FAST 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcd, // STORE_FAST 13 + 0xbd, // LOAD_FAST 13 + 0x63, // RETURN_VALUE + 0xb4, // LOAD_FAST 4 + 0x14,0x3e, // LOAD_METHOD 'check' + 0xb1, // LOAD_FAST 1 + 0x13,0x3b, // LOAD_ATTR 'address_type_p2sh' + 0xbb, // LOAD_FAST 11 + 0x36,0x02, // CALL_METHOD 2 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb4, // LOAD_FAST 4 + 0x14,0x3f, // LOAD_METHOD 'strip' + 0xb1, // LOAD_FAST 1 + 0x13,0x3b, // LOAD_ATTR 'address_type_p2sh' + 0xbb, // LOAD_FAST 11 + 0x36,0x02, // CALL_METHOD 2 + 0xce, // STORE_FAST 14 + 0x12,0x4b, // LOAD_GLOBAL 'output_script_p2sh' + 0xbe, // LOAD_FAST 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcd, // STORE_FAST 13 + 0xbd, // LOAD_FAST 13 + 0x63, // RETURN_VALUE + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_output_derive_script = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_scripts_output_derive_script, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 286, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 21, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 44, + .line_info = fun_data_apps_bitcoin_scripts_output_derive_script + 6, + .line_info_top = fun_data_apps_bitcoin_scripts_output_derive_script + 35, + .opcodes = fun_data_apps_bitcoin_scripts_output_derive_script + 35, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_write_bip143_script_code_prefixed +static const byte fun_data_apps_bitcoin_scripts_write_bip143_script_code_prefixed[102] = { + 0xd9,0x04,0x26, // prelude + 0x40,0x6e,0x76,0x77,0x78,0x6f, // names: write_bip143_script_code_prefixed, w, txi, public_keys, threshold, coin + 0x80,0x84,0x29,0x2c,0x42,0x23,0x24,0x24,0x24,0x48,0x63,0x23,0x73, // code info + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x61, // LOAD_GLOBAL 'write_output_script_multisig' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x10,0x26, // LOAD_CONST_STRING 'prefixed' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x41, // LOAD_ATTR 'script_type' + 0x12,0x04, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x28, // LOAD_ATTR 'SPENDWITNESS' + 0x12,0x04, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x22, // LOAD_ATTR 'SPENDP2SHWITNESS' + 0x12,0x04, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x21, // LOAD_ATTR 'SPENDADDRESS' + 0x12,0x04, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x42, // LOAD_ATTR 'EXTERNAL' + 0x2a,0x04, // BUILD_TUPLE 4 + 0xdd, // BINARY_OP 6 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0x12,0x48, // LOAD_GLOBAL 'write_output_script_p2pkh' + 0xb0, // LOAD_FAST 0 + 0x12,0x0f, // LOAD_GLOBAL 'common' + 0x14,0x27, // LOAD_METHOD 'ecdsa_hash_pubkey' + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x10,0x26, // LOAD_CONST_STRING 'prefixed' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_write_bip143_script_code_prefixed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_bitcoin_scripts_write_bip143_script_code_prefixed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 102, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_apps_bitcoin_scripts_write_bip143_script_code_prefixed + 9, + .line_info_top = fun_data_apps_bitcoin_scripts_write_bip143_script_code_prefixed + 22, + .opcodes = fun_data_apps_bitcoin_scripts_write_bip143_script_code_prefixed + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_write_input_script_p2pkh_or_p2sh_prefixed +static const byte fun_data_apps_bitcoin_scripts_write_input_script_p2pkh_or_p2sh_prefixed[52] = { + 0xc0,0x04,0x12, // prelude + 0x43,0x6e,0x71,0x72,0x70, // names: write_input_script_p2pkh_or_p2sh_prefixed, w, pubkey, signature, sighash_type + 0x80,0xa0,0x37,0x28, // code info + 0x12,0x0d, // LOAD_GLOBAL 'write_compact_size' + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x6b, // LOAD_GLOBAL 'append_signature' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x6c, // LOAD_GLOBAL 'append_pubkey' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_write_input_script_p2pkh_or_p2sh_prefixed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_scripts_write_input_script_p2pkh_or_p2sh_prefixed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 52, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 67, + .line_info = fun_data_apps_bitcoin_scripts_write_input_script_p2pkh_or_p2sh_prefixed + 8, + .line_info_top = fun_data_apps_bitcoin_scripts_write_input_script_p2pkh_or_p2sh_prefixed + 12, + .opcodes = fun_data_apps_bitcoin_scripts_write_input_script_p2pkh_or_p2sh_prefixed + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_parse_input_script_p2pkh +static const byte fun_data_apps_bitcoin_scripts_parse_input_script_p2pkh[105] = { + 0x65,0x1e, // prelude + 0x44,0x7a, // names: parse_input_script_p2pkh, script_sig + 0x80,0xa8,0x22,0x26,0x26,0x29,0x4c,0x26,0x26,0x29,0x26,0x2a,0x4a, // code info + 0x48,0x3b, // SETUP_EXCEPT 59 + 0x12,0x06, // LOAD_GLOBAL 'BufferReader' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0x12,0x16, // LOAD_GLOBAL 'read_op_push' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x14,0x45, // LOAD_METHOD 'read_memoryview' + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x12,0x11, // LOAD_GLOBAL 'SigHashType' + 0x14,0x46, // LOAD_METHOD 'from_int' + 0xb1, // LOAD_FAST 1 + 0x14,0x47, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0x12,0x16, // LOAD_GLOBAL 'read_op_push' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x14,0x45, // LOAD_METHOD 'read_memoryview' + 0x36,0x00, // CALL_METHOD 0 + 0xc5, // STORE_FAST 5 + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x4a,0x15, // POP_EXCEPT_JUMP 21 + 0x57, // DUP_TOP + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x12,0x7b, // LOAD_GLOBAL 'EOFError' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb5, // LOAD_FAST 5 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_parse_input_script_p2pkh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_scripts_parse_input_script_p2pkh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 105, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 68, + .line_info = fun_data_apps_bitcoin_scripts_parse_input_script_p2pkh + 4, + .line_info_top = fun_data_apps_bitcoin_scripts_parse_input_script_p2pkh + 17, + .opcodes = fun_data_apps_bitcoin_scripts_parse_input_script_p2pkh + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_write_output_script_p2pkh +static const byte fun_data_apps_bitcoin_scripts_write_output_script_p2pkh[74] = { + 0xbb,0x01,0x1c, // prelude + 0x48,0x6e,0x7c,0x26, // names: write_output_script_p2pkh, w, pubkeyhash, prefixed + 0x80,0xbb,0x44,0x23,0x27,0x27,0x27,0x25,0x28,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'append' + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0d, // LOAD_GLOBAL 'write_compact_size' + 0xb0, // LOAD_FAST 0 + 0x99, // LOAD_CONST_SMALL_INT 25 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x22,0x80,0x76, // LOAD_CONST_SMALL_INT 118 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x22,0x81,0x29, // LOAD_CONST_SMALL_INT 169 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x18, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x22,0x81,0x08, // LOAD_CONST_SMALL_INT 136 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x22,0x81,0x2c, // LOAD_CONST_SMALL_INT 172 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_write_output_script_p2pkh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_scripts_write_output_script_p2pkh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 74, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 72, + .line_info = fun_data_apps_bitcoin_scripts_write_output_script_p2pkh + 7, + .line_info_top = fun_data_apps_bitcoin_scripts_write_output_script_p2pkh + 17, + .opcodes = fun_data_apps_bitcoin_scripts_write_output_script_p2pkh + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_output_script_p2pkh +static const byte fun_data_apps_bitcoin_scripts_output_script_p2pkh[23] = { + 0x21,0x0c, // prelude + 0x4a,0x7c, // names: output_script_p2pkh, pubkeyhash + 0x80,0xc8,0x26,0x27, // code info + 0x12,0x07, // LOAD_GLOBAL 'empty_bytearray' + 0x99, // LOAD_CONST_SMALL_INT 25 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0x12,0x48, // LOAD_GLOBAL 'write_output_script_p2pkh' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_output_script_p2pkh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_scripts_output_script_p2pkh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 74, + .line_info = fun_data_apps_bitcoin_scripts_output_script_p2pkh + 4, + .line_info_top = fun_data_apps_bitcoin_scripts_output_script_p2pkh + 8, + .opcodes = fun_data_apps_bitcoin_scripts_output_script_p2pkh + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_output_script_p2sh +static const byte fun_data_apps_bitcoin_scripts_output_script_p2sh[57] = { + 0x29,0x14, // prelude + 0x4b,0x7d, // names: output_script_p2sh, scripthash + 0x80,0xcf,0x2e,0x26,0x26,0x24,0x27,0x26, // code info + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x4c, // LOAD_METHOD 'ensure' + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0xd9, // BINARY_OP 2 __eq__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x7e, // LOAD_GLOBAL 'bytearray' + 0x97, // LOAD_CONST_SMALL_INT 23 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0x22,0x81,0x29, // LOAD_CONST_SMALL_INT 169 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x56, // STORE_SUBSCR + 0x94, // LOAD_CONST_SMALL_INT 20 + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x56, // STORE_SUBSCR + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x96, // LOAD_CONST_SMALL_INT 22 + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0x22,0x81,0x07, // LOAD_CONST_SMALL_INT 135 + 0xb1, // LOAD_FAST 1 + 0x96, // LOAD_CONST_SMALL_INT 22 + 0x56, // STORE_SUBSCR + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_output_script_p2sh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_scripts_output_script_p2sh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 75, + .line_info = fun_data_apps_bitcoin_scripts_output_script_p2sh + 4, + .line_info_top = fun_data_apps_bitcoin_scripts_output_script_p2sh + 12, + .opcodes = fun_data_apps_bitcoin_scripts_output_script_p2sh + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts__input_script_native_segwit +static const byte fun_data_apps_bitcoin_scripts__input_script_native_segwit[11] = { + 0x08,0x06, // prelude + 0x4d, // names: _input_script_native_segwit + 0x80,0xea, // code info + 0x12,0x7e, // LOAD_GLOBAL 'bytearray' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts__input_script_native_segwit = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_scripts__input_script_native_segwit, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 11, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 77, + .line_info = fun_data_apps_bitcoin_scripts__input_script_native_segwit + 3, + .line_info_top = fun_data_apps_bitcoin_scripts__input_script_native_segwit + 5, + .opcodes = fun_data_apps_bitcoin_scripts__input_script_native_segwit + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_output_script_native_segwit +static const byte fun_data_apps_bitcoin_scripts_output_script_native_segwit[82] = { + 0x3a,0x18, // prelude + 0x4e,0x7f,0x81,0x00, // names: output_script_native_segwit, witver, witprog + 0x80,0xf2,0x26,0x54,0x28,0x31,0x27,0x28, // code info + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x4c, // LOAD_METHOD 'ensure' + 0xb2, // LOAD_FAST 2 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x03, // JUMP_IF_FALSE_OR_POP 3 + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x45,0x03, // JUMP_IF_TRUE_OR_POP 3 + 0xb2, // LOAD_FAST 2 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xd9, // BINARY_OP 2 __eq__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'empty_bytearray' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xb2, // LOAD_FAST 2 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x14,0x49, // LOAD_METHOD 'append' + 0xb0, // LOAD_FAST 0 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb0, // LOAD_FAST 0 + 0x22,0x80,0x50, // LOAD_CONST_SMALL_INT 80 + 0xf2, // BINARY_OP 27 __add__ + 0x42,0x41, // JUMP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x49, // LOAD_METHOD 'append' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x18, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_output_script_native_segwit = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_scripts_output_script_native_segwit, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 82, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 78, + .line_info = fun_data_apps_bitcoin_scripts_output_script_native_segwit + 6, + .line_info_top = fun_data_apps_bitcoin_scripts_output_script_native_segwit + 14, + .opcodes = fun_data_apps_bitcoin_scripts_output_script_native_segwit + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_parse_output_script_p2tr +static const byte fun_data_apps_bitcoin_scripts_parse_output_script_p2tr[95] = { + 0x4d,0x20, // prelude + 0x4f,0x81,0x01, // names: parse_output_script_p2tr, script_pubkey + 0x80,0xfe,0x22,0x46,0x4c,0x43,0x49,0x43,0x27,0x27,0x26,0x2a,0x4a, // code info + 0x48,0x34, // SETUP_EXCEPT 52 + 0x12,0x06, // LOAD_GLOBAL 'BufferReader' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x47, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x12,0x0f, // LOAD_GLOBAL 'common' + 0x13,0x50, // LOAD_ATTR 'OP_1' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x14,0x47, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x14,0x45, // LOAD_METHOD 'read_memoryview' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x14,0x51, // LOAD_METHOD 'remaining_count' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x4a,0x15, // POP_EXCEPT_JUMP 21 + 0x57, // DUP_TOP + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x12,0x7b, // LOAD_GLOBAL 'EOFError' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_parse_output_script_p2tr = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_scripts_parse_output_script_p2tr, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 95, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 79, + .line_info = fun_data_apps_bitcoin_scripts_parse_output_script_p2tr + 5, + .line_info_top = fun_data_apps_bitcoin_scripts_parse_output_script_p2tr + 18, + .opcodes = fun_data_apps_bitcoin_scripts_parse_output_script_p2tr + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_write_input_script_p2wpkh_in_p2sh +static const byte fun_data_apps_bitcoin_scripts_write_input_script_p2wpkh_in_p2sh[55] = { + 0xb3,0x01,0x16, // prelude + 0x52,0x6e,0x7c,0x26, // names: write_input_script_p2wpkh_in_p2sh, w, pubkeyhash, prefixed + 0x90,0x1f,0x23,0x47,0x27,0x27,0x27, // code info + 0xb2, // LOAD_FAST 2 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0d, // LOAD_GLOBAL 'write_compact_size' + 0xb0, // LOAD_FAST 0 + 0x97, // LOAD_CONST_SMALL_INT 23 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x49, // LOAD_METHOD 'append' + 0x96, // LOAD_CONST_SMALL_INT 22 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x49, // LOAD_METHOD 'append' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x49, // LOAD_METHOD 'append' + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x18, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_write_input_script_p2wpkh_in_p2sh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_scripts_write_input_script_p2wpkh_in_p2sh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 82, + .line_info = fun_data_apps_bitcoin_scripts_write_input_script_p2wpkh_in_p2sh + 7, + .line_info_top = fun_data_apps_bitcoin_scripts_write_input_script_p2wpkh_in_p2sh + 14, + .opcodes = fun_data_apps_bitcoin_scripts_write_input_script_p2wpkh_in_p2sh + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_write_input_script_p2wsh_in_p2sh +static const byte fun_data_apps_bitcoin_scripts_write_input_script_p2wsh_in_p2sh[56] = { + 0xb3,0x01,0x18, // prelude + 0x53,0x6e,0x81,0x02,0x26, // names: write_input_script_p2wsh_in_p2sh, w, script_hash, prefixed + 0x90,0x35,0x23,0x47,0x27,0x27,0x27, // code info + 0xb2, // LOAD_FAST 2 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0d, // LOAD_GLOBAL 'write_compact_size' + 0xb0, // LOAD_FAST 0 + 0xa3, // LOAD_CONST_SMALL_INT 35 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x49, // LOAD_METHOD 'append' + 0xa2, // LOAD_CONST_SMALL_INT 34 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x49, // LOAD_METHOD 'append' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x49, // LOAD_METHOD 'append' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x18, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_write_input_script_p2wsh_in_p2sh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_scripts_write_input_script_p2wsh_in_p2sh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 83, + .line_info = fun_data_apps_bitcoin_scripts_write_input_script_p2wsh_in_p2sh + 8, + .line_info_top = fun_data_apps_bitcoin_scripts_write_input_script_p2wsh_in_p2sh + 15, + .opcodes = fun_data_apps_bitcoin_scripts_write_input_script_p2wsh_in_p2sh + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_write_witness_p2wpkh +static const byte fun_data_apps_bitcoin_scripts_write_witness_p2wpkh[36] = { + 0xb8,0x04,0x12, // prelude + 0x54,0x6e,0x72,0x71,0x70, // names: write_witness_p2wpkh, w, signature, pubkey, sighash_type + 0x90,0x45,0x27,0x28, // code info + 0x12,0x0d, // LOAD_GLOBAL 'write_compact_size' + 0xb0, // LOAD_FAST 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x6a, // LOAD_GLOBAL 'write_signature_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x19, // LOAD_GLOBAL 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_write_witness_p2wpkh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_scripts_write_witness_p2wpkh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 84, + .line_info = fun_data_apps_bitcoin_scripts_write_witness_p2wpkh + 8, + .line_info_top = fun_data_apps_bitcoin_scripts_write_witness_p2wpkh + 12, + .opcodes = fun_data_apps_bitcoin_scripts_write_witness_p2wpkh + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_parse_witness_p2wpkh +static const byte fun_data_apps_bitcoin_scripts_parse_witness_p2wpkh[111] = { + 0x65,0x22, // prelude + 0x55,0x81,0x03, // names: parse_witness_p2wpkh, witness + 0x90,0x4b,0x22,0x46,0x49,0x43,0x26,0x29,0x4c,0x26,0x27,0x26,0x2a,0x4a, // code info + 0x48,0x3f, // SETUP_EXCEPT 63 + 0x12,0x06, // LOAD_GLOBAL 'BufferReader' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x47, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x0b, // LOAD_GLOBAL 'read_compact_size' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x14,0x45, // LOAD_METHOD 'read_memoryview' + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x12,0x11, // LOAD_GLOBAL 'SigHashType' + 0x14,0x46, // LOAD_METHOD 'from_int' + 0xb1, // LOAD_FAST 1 + 0x14,0x47, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0x12,0x15, // LOAD_GLOBAL 'read_memoryview_prefixed' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x14,0x51, // LOAD_METHOD 'remaining_count' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x4a,0x15, // POP_EXCEPT_JUMP 21 + 0x57, // DUP_TOP + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x12,0x7b, // LOAD_GLOBAL 'EOFError' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb5, // LOAD_FAST 5 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_parse_witness_p2wpkh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_scripts_parse_witness_p2wpkh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 111, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 85, + .line_info = fun_data_apps_bitcoin_scripts_parse_witness_p2wpkh + 5, + .line_info_top = fun_data_apps_bitcoin_scripts_parse_witness_p2wpkh + 19, + .opcodes = fun_data_apps_bitcoin_scripts_parse_witness_p2wpkh + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_write_witness_multisig +static const byte fun_data_apps_bitcoin_scripts_write_witness_multisig[146] = { + 0x89,0x14,0x30, // prelude + 0x56,0x6e,0x14,0x72,0x81,0x04,0x70, // names: write_witness_multisig, w, multisig, signature, signature_index, sighash_type + 0x90,0x66,0x6b,0x27,0x6f,0x20,0x25,0x27,0x64,0x30,0x67,0x40,0x47,0x25,0x23,0x6a,0x26, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x57, // LOAD_CONST_STRING 'multisig_get_pubkey_count' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'multisig' + 0x1c,0x57, // IMPORT_FROM 'multisig_get_pubkey_count' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x58, // LOAD_ATTR 'signatures' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x2b,0x01, // BUILD_LIST 1 + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x58, // LOAD_ATTR 'signatures' + 0x34,0x01, // CALL_FUNCTION 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x55, // LOAD_SUBSCR + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0xb6, // LOAD_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x56, // STORE_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x12,0x81,0x05, // LOAD_GLOBAL 'sum' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb6, // LOAD_FAST 6 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc7, // STORE_FAST 7 + 0x12,0x0d, // LOAD_GLOBAL 'write_compact_size' + 0xb0, // LOAD_FAST 0 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0d, // LOAD_GLOBAL 'write_compact_size' + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x5f, // GET_ITER_STACK + 0x4b,0x0e, // FOR_ITER 14 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x6a, // LOAD_GLOBAL 'write_signature_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb8, // LOAD_FAST 8 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x30, // JUMP -16 + 0x12,0x12, // LOAD_GLOBAL 'multisig_get_pubkeys' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0x12,0x61, // LOAD_GLOBAL 'write_output_script_multisig' + 0xb0, // LOAD_FAST 0 + 0xb9, // LOAD_FAST 9 + 0xb1, // LOAD_FAST 1 + 0x13,0x24, // LOAD_ATTR 'm' + 0x10,0x26, // LOAD_CONST_STRING 'prefixed' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_scripts_write_witness_multisig +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_write_witness_multisig__lt_genexpr_gt_ +static const byte fun_data_apps_bitcoin_scripts_write_witness_multisig__lt_genexpr_gt_[25] = { + 0xb1,0x40,0x0a, // prelude + 0x6d,0x81,0x0c, // names: , * + 0x90,0x73, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x09, // FOR_ITER 9 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x44,0x3a, // POP_JUMP_IF_FALSE -6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x35, // JUMP -11 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_write_witness_multisig__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_scripts_write_witness_multisig__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 109, + .line_info = fun_data_apps_bitcoin_scripts_write_witness_multisig__lt_genexpr_gt_ + 6, + .line_info_top = fun_data_apps_bitcoin_scripts_write_witness_multisig__lt_genexpr_gt_ + 8, + .opcodes = fun_data_apps_bitcoin_scripts_write_witness_multisig__lt_genexpr_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_scripts_write_witness_multisig[] = { + &raw_code_apps_bitcoin_scripts_write_witness_multisig__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_write_witness_multisig = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_bitcoin_scripts_write_witness_multisig, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 146, + #endif + .children = (void *)&children_apps_bitcoin_scripts_write_witness_multisig, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 86, + .line_info = fun_data_apps_bitcoin_scripts_write_witness_multisig + 10, + .line_info_top = fun_data_apps_bitcoin_scripts_write_witness_multisig + 27, + .opcodes = fun_data_apps_bitcoin_scripts_write_witness_multisig + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_parse_witness_multisig +static const byte fun_data_apps_bitcoin_scripts_parse_witness_multisig[150] = { + 0x7d,0x2a, // prelude + 0x59,0x81,0x03, // names: parse_witness_multisig, witness + 0x90,0x87,0x22,0x66,0x66,0x29,0x43,0x23,0x28,0x26,0x29,0x2c,0x53,0x26,0x27,0x26,0x2a,0x4a, // code info + 0x48,0x63, // SETUP_EXCEPT 99 + 0x12,0x06, // LOAD_GLOBAL 'BufferReader' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0x12,0x0b, // LOAD_GLOBAL 'read_compact_size' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x14,0x47, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x2b,0x00, // BUILD_LIST 0 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf3, // BINARY_OP 28 __sub__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x69, // JUMP 41 + 0x57, // DUP_TOP + 0xc4, // STORE_FAST 4 + 0x12,0x0b, // LOAD_GLOBAL 'read_compact_size' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x14,0x45, // LOAD_METHOD 'read_memoryview' + 0xb5, // LOAD_FAST 5 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0x12,0x11, // LOAD_GLOBAL 'SigHashType' + 0x14,0x46, // LOAD_METHOD 'from_int' + 0xb1, // LOAD_FAST 1 + 0x14,0x47, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc7, // STORE_FAST 7 + 0xb3, // LOAD_FAST 3 + 0x14,0x49, // LOAD_METHOD 'append' + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x12, // POP_JUMP_IF_TRUE -46 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x15, // LOAD_GLOBAL 'read_memoryview_prefixed' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x14,0x51, // LOAD_METHOD 'remaining_count' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x4a,0x15, // POP_EXCEPT_JUMP 21 + 0x57, // DUP_TOP + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x12,0x7b, // LOAD_GLOBAL 'EOFError' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb8, // LOAD_FAST 8 + 0xb3, // LOAD_FAST 3 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_parse_witness_multisig = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_scripts_parse_witness_multisig, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 150, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 89, + .line_info = fun_data_apps_bitcoin_scripts_parse_witness_multisig + 5, + .line_info_top = fun_data_apps_bitcoin_scripts_parse_witness_multisig + 23, + .opcodes = fun_data_apps_bitcoin_scripts_parse_witness_multisig + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_write_witness_p2tr +static const byte fun_data_apps_bitcoin_scripts_write_witness_p2tr[26] = { + 0x33,0x0e, // prelude + 0x5a,0x6e,0x72,0x70, // names: write_witness_p2tr, w, signature, sighash_type + 0x90,0xa7,0x27, // code info + 0x12,0x0d, // LOAD_GLOBAL 'write_compact_size' + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x6a, // LOAD_GLOBAL 'write_signature_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_write_witness_p2tr = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_scripts_write_witness_p2tr, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 90, + .line_info = fun_data_apps_bitcoin_scripts_write_witness_p2tr + 6, + .line_info_top = fun_data_apps_bitcoin_scripts_write_witness_p2tr + 9, + .opcodes = fun_data_apps_bitcoin_scripts_write_witness_p2tr + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_parse_witness_p2tr +static const byte fun_data_apps_bitcoin_scripts_parse_witness_p2tr[131] = { + 0x5d,0x28, // prelude + 0x5b,0x81,0x03, // names: parse_witness_p2tr, witness + 0x90,0xac,0x22,0x46,0x49,0x43,0x26,0x27,0x43,0x29,0x27,0x4e,0x45,0x27,0x26,0x2a,0x4a, // code info + 0x48,0x51, // SETUP_EXCEPT 81 + 0x12,0x06, // LOAD_GLOBAL 'BufferReader' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x47, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x0b, // LOAD_GLOBAL 'read_compact_size' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x14,0x45, // LOAD_METHOD 'read_memoryview' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x22,0x80,0x41, // LOAD_CONST_SMALL_INT 65 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x11, // LOAD_GLOBAL 'SigHashType' + 0x14,0x46, // LOAD_METHOD 'from_int' + 0xb1, // LOAD_FAST 1 + 0x14,0x47, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0x42,0x45, // JUMP 5 + 0x12,0x11, // LOAD_GLOBAL 'SigHashType' + 0x13,0x5c, // LOAD_ATTR 'SIGHASH_ALL_TAPROOT' + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x14,0x51, // LOAD_METHOD 'remaining_count' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x4a,0x15, // POP_EXCEPT_JUMP 21 + 0x57, // DUP_TOP + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x12,0x7b, // LOAD_GLOBAL 'EOFError' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_parse_witness_p2tr = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_scripts_parse_witness_p2tr, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 131, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 91, + .line_info = fun_data_apps_bitcoin_scripts_parse_witness_p2tr + 5, + .line_info_top = fun_data_apps_bitcoin_scripts_parse_witness_p2tr + 22, + .opcodes = fun_data_apps_bitcoin_scripts_parse_witness_p2tr + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts__write_input_script_multisig_prefixed +static const byte fun_data_apps_bitcoin_scripts__write_input_script_multisig_prefixed[168] = { + 0x9a,0x14,0x3a, // prelude + 0x5d,0x6e,0x14,0x72,0x81,0x04,0x70,0x6f, // names: _write_input_script_multisig_prefixed, w, multisig, signature, signature_index, sighash_type, coin + 0x90,0xd3,0x4b,0x24,0x2b,0x27,0x64,0x26,0x69,0x22,0x25,0x23,0x2e,0x29,0x67,0x40,0x47,0x25,0x23,0x6a,0x27, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x5e, // LOAD_CONST_STRING 'op_push_length' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1c, // IMPORT_NAME 'writers' + 0x1c,0x5e, // IMPORT_FROM 'op_push_length' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x58, // LOAD_ATTR 'signatures' + 0xc7, // STORE_FAST 7 + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb7, // LOAD_FAST 7 + 0xb3, // LOAD_FAST 3 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0xb3, // LOAD_FAST 3 + 0x56, // STORE_SUBSCR + 0x12,0x12, // LOAD_GLOBAL 'multisig_get_pubkeys' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0x12,0x62, // LOAD_GLOBAL 'output_script_multisig_length' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x24, // LOAD_ATTR 'm' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc9, // STORE_FAST 9 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xca, // STORE_FAST 10 + 0xb7, // LOAD_FAST 7 + 0x5f, // GET_ITER_STACK + 0x4b,0x12, // FOR_ITER 18 + 0xcb, // STORE_FAST 11 + 0xbb, // LOAD_FAST 11 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xba, // LOAD_FAST 10 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xbb, // LOAD_FAST 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xca, // STORE_FAST 10 + 0x42,0x2c, // JUMP -20 + 0xba, // LOAD_FAST 10 + 0xb6, // LOAD_FAST 6 + 0xb9, // LOAD_FAST 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb9, // LOAD_FAST 9 + 0xf2, // BINARY_OP 27 __add__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xca, // STORE_FAST 10 + 0x12,0x0d, // LOAD_GLOBAL 'write_compact_size' + 0xb0, // LOAD_FAST 0 + 0xba, // LOAD_FAST 10 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x49, // LOAD_METHOD 'append' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x5f, // GET_ITER_STACK + 0x4b,0x0e, // FOR_ITER 14 + 0xcb, // STORE_FAST 11 + 0xbb, // LOAD_FAST 11 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x6b, // LOAD_GLOBAL 'append_signature' + 0xb0, // LOAD_FAST 0 + 0xbb, // LOAD_FAST 11 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x30, // JUMP -16 + 0x12,0x1b, // LOAD_GLOBAL 'write_op_push' + 0xb0, // LOAD_FAST 0 + 0xb9, // LOAD_FAST 9 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x61, // LOAD_GLOBAL 'write_output_script_multisig' + 0xb0, // LOAD_FAST 0 + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x24, // LOAD_ATTR 'm' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts__write_input_script_multisig_prefixed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 6, + .fun_data = fun_data_apps_bitcoin_scripts__write_input_script_multisig_prefixed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 168, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 20, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 93, + .line_info = fun_data_apps_bitcoin_scripts__write_input_script_multisig_prefixed + 11, + .line_info_top = fun_data_apps_bitcoin_scripts__write_input_script_multisig_prefixed + 32, + .opcodes = fun_data_apps_bitcoin_scripts__write_input_script_multisig_prefixed + 32, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_parse_input_script_multisig +static const byte fun_data_apps_bitcoin_scripts_parse_input_script_multisig[145] = { + 0x6d,0x28, // prelude + 0x5f,0x7a, // names: parse_input_script_multisig, script_sig + 0x90,0xf7,0x22,0x66,0x29,0x43,0x23,0x26,0x22,0x29,0x2c,0x2a,0x4f,0x26,0x29,0x26,0x2a,0x4a, // code info + 0x48,0x5f, // SETUP_EXCEPT 95 + 0x12,0x06, // LOAD_GLOBAL 'BufferReader' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x47, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x2b,0x00, // BUILD_LIST 0 + 0xc2, // STORE_FAST 2 + 0x12,0x16, // LOAD_GLOBAL 'read_op_push' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x42,0x65, // JUMP 37 + 0xb1, // LOAD_FAST 1 + 0x14,0x45, // LOAD_METHOD 'read_memoryview' + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0x12,0x11, // LOAD_GLOBAL 'SigHashType' + 0x14,0x46, // LOAD_METHOD 'from_int' + 0xb1, // LOAD_FAST 1 + 0x14,0x47, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x14,0x49, // LOAD_METHOD 'append' + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'read_op_push' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x14,0x51, // LOAD_METHOD 'remaining_count' + 0x36,0x00, // CALL_METHOD 0 + 0xb3, // LOAD_FAST 3 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x12, // POP_JUMP_IF_TRUE -46 + 0xb1, // LOAD_FAST 1 + 0x14,0x45, // LOAD_METHOD 'read_memoryview' + 0x36,0x00, // CALL_METHOD 0 + 0xc6, // STORE_FAST 6 + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb3, // LOAD_FAST 3 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x4a,0x15, // POP_EXCEPT_JUMP 21 + 0x57, // DUP_TOP + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x12,0x7b, // LOAD_GLOBAL 'EOFError' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb6, // LOAD_FAST 6 + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_parse_input_script_multisig = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_scripts_parse_input_script_multisig, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 145, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 95, + .line_info = fun_data_apps_bitcoin_scripts_parse_input_script_multisig + 4, + .line_info_top = fun_data_apps_bitcoin_scripts_parse_input_script_multisig + 22, + .opcodes = fun_data_apps_bitcoin_scripts_parse_input_script_multisig + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_output_script_multisig +static const byte fun_data_apps_bitcoin_scripts_output_script_multisig[31] = { + 0x32,0x10, // prelude + 0x60,0x81,0x06,0x24, // names: output_script_multisig, pubkeys, m + 0xa0,0x10,0x2b,0x28, // code info + 0x12,0x07, // LOAD_GLOBAL 'empty_bytearray' + 0x12,0x62, // LOAD_GLOBAL 'output_script_multisig_length' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x12,0x61, // LOAD_GLOBAL 'write_output_script_multisig' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_output_script_multisig = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_scripts_output_script_multisig, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 96, + .line_info = fun_data_apps_bitcoin_scripts_output_script_multisig + 6, + .line_info_top = fun_data_apps_bitcoin_scripts_output_script_multisig + 10, + .opcodes = fun_data_apps_bitcoin_scripts_output_script_multisig + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_write_output_script_multisig +static const byte fun_data_apps_bitcoin_scripts_write_output_script_multisig[146] = { + 0xe8,0x05,0x28, // prelude + 0x61,0x6e,0x81,0x06,0x24,0x26, // names: write_output_script_multisig, w, pubkeys, m, prefixed + 0xa0,0x1b,0x26,0x39,0x27,0x25,0x29,0x49,0x23,0x4c,0x2b,0x25,0x29,0x2b, // code info + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x54, // POP_JUMP_IF_TRUE 20 + 0xb4, // LOAD_FAST 4 + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x4f, // POP_JUMP_IF_TRUE 15 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x4a, // POP_JUMP_IF_TRUE 10 + 0xb2, // LOAD_FAST 2 + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x13, // FOR_ITER 19 + 0xc5, // STORE_FAST 5 + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x2b, // JUMP -21 + 0xb3, // LOAD_FAST 3 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x0d, // LOAD_GLOBAL 'write_compact_size' + 0xb0, // LOAD_FAST 0 + 0x12,0x62, // LOAD_GLOBAL 'output_script_multisig_length' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x49, // LOAD_METHOD 'append' + 0x22,0x80,0x50, // LOAD_CONST_SMALL_INT 80 + 0xb2, // LOAD_FAST 2 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc6, // STORE_FAST 6 + 0x12,0x6c, // LOAD_GLOBAL 'append_pubkey' + 0xb0, // LOAD_FAST 0 + 0xb6, // LOAD_FAST 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0xb0, // LOAD_FAST 0 + 0x14,0x49, // LOAD_METHOD 'append' + 0x22,0x80,0x50, // LOAD_CONST_SMALL_INT 80 + 0xb4, // LOAD_FAST 4 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x49, // LOAD_METHOD 'append' + 0x22,0x81,0x2e, // LOAD_CONST_SMALL_INT 174 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_write_output_script_multisig = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_scripts_write_output_script_multisig, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 146, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 97, + .line_info = fun_data_apps_bitcoin_scripts_write_output_script_multisig + 9, + .line_info_top = fun_data_apps_bitcoin_scripts_write_output_script_multisig + 23, + .opcodes = fun_data_apps_bitcoin_scripts_write_output_script_multisig + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_output_script_multisig_length +static const byte fun_data_apps_bitcoin_scripts_output_script_multisig_length[22] = { + 0x22,0x0c, // prelude + 0x62,0x81,0x06,0x24, // names: output_script_multisig_length, pubkeys, m + 0xa0,0x2d, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa2, // LOAD_CONST_SMALL_INT 34 + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_output_script_multisig_length = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_scripts_output_script_multisig_length, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 98, + .line_info = fun_data_apps_bitcoin_scripts_output_script_multisig_length + 6, + .line_info_top = fun_data_apps_bitcoin_scripts_output_script_multisig_length + 8, + .opcodes = fun_data_apps_bitcoin_scripts_output_script_multisig_length + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_parse_output_script_multisig +static const byte fun_data_apps_bitcoin_scripts_parse_output_script_multisig[199] = { + 0x75,0x36, // prelude + 0x63,0x81,0x07, // names: parse_output_script_multisig, script + 0xa0,0x31,0x23,0x46,0x2a,0x48,0x20,0x2f,0x2f,0x45,0x43,0x23,0x26,0x26,0x25,0x23,0x55,0x26,0x2b,0x23,0x27,0x46,0x2d,0x4a, // code info + 0x48,0x8a,0x01, // SETUP_EXCEPT 138 + 0x12,0x06, // LOAD_GLOBAL 'BufferReader' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x47, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x22,0x80,0x50, // LOAD_CONST_SMALL_INT 80 + 0xf3, // BINARY_OP 28 __sub__ + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x7e, // LOAD_CONST_SMALL_INT -2 + 0x55, // LOAD_SUBSCR + 0x22,0x80,0x50, // LOAD_CONST_SMALL_INT 80 + 0xf3, // BINARY_OP 28 __sub__ + 0xc3, // STORE_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb2, // LOAD_FAST 2 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x04, // JUMP_IF_FALSE_OR_POP 4 + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb3, // LOAD_FAST 3 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x04, // JUMP_IF_FALSE_OR_POP 4 + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x2b,0x00, // BUILD_LIST 0 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x5e, // JUMP 30 + 0x57, // DUP_TOP + 0xc5, // STORE_FAST 5 + 0x12,0x16, // LOAD_GLOBAL 'read_op_push' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x14,0x49, // LOAD_METHOD 'append' + 0xb1, // LOAD_FAST 1 + 0x14,0x45, // LOAD_METHOD 'read_memoryview' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x1d, // POP_JUMP_IF_TRUE -35 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x47, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x47, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x22,0x81,0x2e, // LOAD_CONST_SMALL_INT 174 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x14,0x51, // LOAD_METHOD 'remaining_count' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x4a,0x18, // POP_EXCEPT_JUMP 24 + 0x57, // DUP_TOP + 0x12,0x75, // LOAD_GLOBAL 'ValueError' + 0x12,0x81,0x08, // LOAD_GLOBAL 'IndexError' + 0x12,0x7b, // LOAD_GLOBAL 'EOFError' + 0x2a,0x03, // BUILD_TUPLE 3 + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'DataError' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_parse_output_script_multisig = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_scripts_parse_output_script_multisig, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 199, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 99, + .line_info = fun_data_apps_bitcoin_scripts_parse_output_script_multisig + 5, + .line_info_top = fun_data_apps_bitcoin_scripts_parse_output_script_multisig + 29, + .opcodes = fun_data_apps_bitcoin_scripts_parse_output_script_multisig + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_output_script_paytoopreturn +static const byte fun_data_apps_bitcoin_scripts_output_script_paytoopreturn[54] = { + 0x29,0x12, // prelude + 0x64,0x81,0x09, // names: output_script_paytoopreturn, data + 0xa0,0x56,0x2e,0x29,0x2b,0x27, // code info + 0x12,0x07, // LOAD_GLOBAL 'empty_bytearray' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf2, // BINARY_OP 27 __add__ + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x49, // LOAD_METHOD 'append' + 0x22,0x80,0x6a, // LOAD_CONST_SMALL_INT 106 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x1b, // LOAD_GLOBAL 'write_op_push' + 0xb1, // LOAD_FAST 1 + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x65, // LOAD_METHOD 'extend' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_output_script_paytoopreturn = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_scripts_output_script_paytoopreturn, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 54, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 100, + .line_info = fun_data_apps_bitcoin_scripts_output_script_paytoopreturn + 5, + .line_info_top = fun_data_apps_bitcoin_scripts_output_script_paytoopreturn + 11, + .opcodes = fun_data_apps_bitcoin_scripts_output_script_paytoopreturn + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_write_bip322_signature_proof +static const byte fun_data_apps_bitcoin_scripts_write_bip322_signature_proof[115] = { + 0xf2,0x04,0x28, // prelude + 0x66,0x6e,0x41,0x14,0x6f,0x81,0x0a,0x72, // names: write_bip322_signature_proof, w, script_type, multisig, coin, public_key, signature + 0xa0,0x6a,0x26,0x69,0x28,0x2d,0x28,0x43,0x27,0x26,0x69,0x6e, // code info + 0x12,0x1d, // LOAD_GLOBAL 'write_input_script_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x12,0x11, // LOAD_GLOBAL 'SigHashType' + 0x13,0x67, // LOAD_ATTR 'SIGHASH_ALL' + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x34,0x07, // CALL_FUNCTION 7 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x12,0x04, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x29, // LOAD_ATTR 'SPENDTAPROOT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x5a, // LOAD_GLOBAL 'write_witness_p2tr' + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0x12,0x11, // LOAD_GLOBAL 'SigHashType' + 0x13,0x5c, // LOAD_ATTR 'SIGHASH_ALL_TAPROOT' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x76, // JUMP 54 + 0xb1, // LOAD_FAST 1 + 0x12,0x0f, // LOAD_GLOBAL 'common' + 0x13,0x68, // LOAD_ATTR 'SEGWIT_INPUT_SCRIPT_TYPES' + 0xdd, // BINARY_OP 6 + 0x44,0x67, // POP_JUMP_IF_FALSE 39 + 0xb2, // LOAD_FAST 2 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0x12,0x13, // LOAD_GLOBAL 'multisig_pubkey_index' + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc6, // STORE_FAST 6 + 0x12,0x56, // LOAD_GLOBAL 'write_witness_multisig' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x12,0x11, // LOAD_GLOBAL 'SigHashType' + 0x13,0x67, // LOAD_ATTR 'SIGHASH_ALL' + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0x42,0x4c, // JUMP 12 + 0x12,0x54, // LOAD_GLOBAL 'write_witness_p2wpkh' + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x12,0x11, // LOAD_GLOBAL 'SigHashType' + 0x13,0x67, // LOAD_ATTR 'SIGHASH_ALL' + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0xb0, // LOAD_FAST 0 + 0x14,0x49, // LOAD_METHOD 'append' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_write_bip322_signature_proof = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 6, + .fun_data = fun_data_apps_bitcoin_scripts_write_bip322_signature_proof, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 115, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 102, + .line_info = fun_data_apps_bitcoin_scripts_write_bip322_signature_proof + 11, + .line_info_top = fun_data_apps_bitcoin_scripts_write_bip322_signature_proof + 23, + .opcodes = fun_data_apps_bitcoin_scripts_write_bip322_signature_proof + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_read_bip322_signature_proof +static const byte fun_data_apps_bitcoin_scripts_read_bip322_signature_proof[26] = { + 0x21,0x0e, // prelude + 0x69,0x81,0x0b, // names: read_bip322_signature_proof, r + 0xa0,0x7f,0x26,0x26, // code info + 0x12,0x15, // LOAD_GLOBAL 'read_memoryview_prefixed' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x14,0x45, // LOAD_METHOD 'read_memoryview' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_read_bip322_signature_proof = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_scripts_read_bip322_signature_proof, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 105, + .line_info = fun_data_apps_bitcoin_scripts_read_bip322_signature_proof + 5, + .line_info_top = fun_data_apps_bitcoin_scripts_read_bip322_signature_proof + 9, + .opcodes = fun_data_apps_bitcoin_scripts_read_bip322_signature_proof + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_write_signature_prefixed +static const byte fun_data_apps_bitcoin_scripts_write_signature_prefixed[63] = { + 0x33,0x18, // prelude + 0x6a,0x6e,0x72,0x70, // names: write_signature_prefixed, w, signature, sighash_type + 0xa0,0x8b,0x26,0x28,0x44,0x27,0x27,0x28, // code info + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x12,0x11, // LOAD_GLOBAL 'SigHashType' + 0x13,0x5c, // LOAD_ATTR 'SIGHASH_ALL_TAPROOT' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0x12,0x0d, // LOAD_GLOBAL 'write_compact_size' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x1a, // LOAD_GLOBAL 'write_bytes_unchecked' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x12,0x11, // LOAD_GLOBAL 'SigHashType' + 0x13,0x5c, // LOAD_ATTR 'SIGHASH_ALL_TAPROOT' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb0, // LOAD_FAST 0 + 0x14,0x49, // LOAD_METHOD 'append' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_write_signature_prefixed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_scripts_write_signature_prefixed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 63, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 106, + .line_info = fun_data_apps_bitcoin_scripts_write_signature_prefixed + 6, + .line_info_top = fun_data_apps_bitcoin_scripts_write_signature_prefixed + 14, + .opcodes = fun_data_apps_bitcoin_scripts_write_signature_prefixed + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_append_signature +static const byte fun_data_apps_bitcoin_scripts_append_signature[39] = { + 0x33,0x10, // prelude + 0x6b,0x6e,0x72,0x70, // names: append_signature, w, signature, sighash_type + 0xa0,0x96,0x2d,0x27, // code info + 0x12,0x1b, // LOAD_GLOBAL 'write_op_push' + 0xb0, // LOAD_FAST 0 + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x1a, // LOAD_GLOBAL 'write_bytes_unchecked' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x49, // LOAD_METHOD 'append' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_append_signature = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_scripts_append_signature, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 107, + .line_info = fun_data_apps_bitcoin_scripts_append_signature + 6, + .line_info_top = fun_data_apps_bitcoin_scripts_append_signature + 10, + .opcodes = fun_data_apps_bitcoin_scripts_append_signature + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts.py, scope apps_bitcoin_scripts_append_pubkey +static const byte fun_data_apps_bitcoin_scripts_append_pubkey[28] = { + 0x2a,0x0c, // prelude + 0x6c,0x6e,0x71, // names: append_pubkey, w, pubkey + 0xa0,0x9c,0x2b, // code info + 0x12,0x1b, // LOAD_GLOBAL 'write_op_push' + 0xb0, // LOAD_FAST 0 + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x1a, // LOAD_GLOBAL 'write_bytes_unchecked' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_append_pubkey = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_scripts_append_pubkey, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 108, + .line_info = fun_data_apps_bitcoin_scripts_append_pubkey + 5, + .line_info_top = fun_data_apps_bitcoin_scripts_append_pubkey + 8, + .opcodes = fun_data_apps_bitcoin_scripts_append_pubkey + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_scripts__lt_module_gt_[] = { + &raw_code_apps_bitcoin_scripts_write_input_script_prefixed, + &raw_code_apps_bitcoin_scripts_output_derive_script, + &raw_code_apps_bitcoin_scripts_write_bip143_script_code_prefixed, + &raw_code_apps_bitcoin_scripts_write_input_script_p2pkh_or_p2sh_prefixed, + &raw_code_apps_bitcoin_scripts_parse_input_script_p2pkh, + &raw_code_apps_bitcoin_scripts_write_output_script_p2pkh, + &raw_code_apps_bitcoin_scripts_output_script_p2pkh, + &raw_code_apps_bitcoin_scripts_output_script_p2sh, + &raw_code_apps_bitcoin_scripts__input_script_native_segwit, + &raw_code_apps_bitcoin_scripts_output_script_native_segwit, + &raw_code_apps_bitcoin_scripts_parse_output_script_p2tr, + &raw_code_apps_bitcoin_scripts_write_input_script_p2wpkh_in_p2sh, + &raw_code_apps_bitcoin_scripts_write_input_script_p2wsh_in_p2sh, + &raw_code_apps_bitcoin_scripts_write_witness_p2wpkh, + &raw_code_apps_bitcoin_scripts_parse_witness_p2wpkh, + &raw_code_apps_bitcoin_scripts_write_witness_multisig, + &raw_code_apps_bitcoin_scripts_parse_witness_multisig, + &raw_code_apps_bitcoin_scripts_write_witness_p2tr, + &raw_code_apps_bitcoin_scripts_parse_witness_p2tr, + &raw_code_apps_bitcoin_scripts__write_input_script_multisig_prefixed, + &raw_code_apps_bitcoin_scripts_parse_input_script_multisig, + &raw_code_apps_bitcoin_scripts_output_script_multisig, + &raw_code_apps_bitcoin_scripts_write_output_script_multisig, + &raw_code_apps_bitcoin_scripts_output_script_multisig_length, + &raw_code_apps_bitcoin_scripts_parse_output_script_multisig, + &raw_code_apps_bitcoin_scripts_output_script_paytoopreturn, + &raw_code_apps_bitcoin_scripts_write_bip322_signature_proof, + &raw_code_apps_bitcoin_scripts_read_bip322_signature_proof, + &raw_code_apps_bitcoin_scripts_write_signature_prefixed, + &raw_code_apps_bitcoin_scripts_append_signature, + &raw_code_apps_bitcoin_scripts_append_pubkey, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_scripts__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_scripts__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 390, + #endif + .children = (void *)&children_apps_bitcoin_scripts__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 31, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_scripts__lt_module_gt_ + 4, + .line_info_top = fun_data_apps_bitcoin_scripts__lt_module_gt_ + 80, + .opcodes = fun_data_apps_bitcoin_scripts__lt_module_gt_ + 80, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_scripts[141] = { + MP_QSTR_apps_slash_bitcoin_slash_scripts_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_InputScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_BufferReader, + MP_QSTR_empty_bytearray, + MP_QSTR_trezor_dot_utils, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_read_compact_size, + MP_QSTR_apps_dot_common_dot_readers, + MP_QSTR_write_compact_size, + MP_QSTR_apps_dot_common_dot_writers, + MP_QSTR_common, + MP_QSTR_, + MP_QSTR_SigHashType, + MP_QSTR_multisig_get_pubkeys, + MP_QSTR_multisig_pubkey_index, + MP_QSTR_multisig, + MP_QSTR_read_memoryview_prefixed, + MP_QSTR_read_op_push, + MP_QSTR_readers, + MP_QSTR_write_bytes_fixed, + MP_QSTR_write_bytes_prefixed, + MP_QSTR_write_bytes_unchecked, + MP_QSTR_write_op_push, + MP_QSTR_writers, + MP_QSTR_write_input_script_prefixed, + MP_QSTR_wire, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_SPENDADDRESS, + MP_QSTR_SPENDP2SHWITNESS, + MP_QSTR_HashWriter, + MP_QSTR_m, + MP_QSTR_get_digest, + MP_QSTR_prefixed, + MP_QSTR_ecdsa_hash_pubkey, + MP_QSTR_SPENDWITNESS, + MP_QSTR_SPENDTAPROOT, + MP_QSTR_SPENDMULTISIG, + MP_QSTR_ProcessError, + MP_QSTR_output_derive_script, + MP_QSTR_base58, + MP_QSTR_cashaddr, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_address_type, + MP_QSTR_apps_dot_common, + MP_QSTR_bech32_prefix, + MP_QSTR_startswith, + MP_QSTR_decode_bech32_address, + MP_QSTR_cashaddr_prefix, + MP_QSTR__colon_, + MP_QSTR_split, + MP_QSTR_decode, + MP_QSTR_ADDRESS_TYPE_P2KH, + MP_QSTR_ADDRESS_TYPE_P2SH, + MP_QSTR_address_type_p2sh, + MP_QSTR_decode_check, + MP_QSTR_b58_hash, + MP_QSTR_check, + MP_QSTR_strip, + MP_QSTR_write_bip143_script_code_prefixed, + MP_QSTR_script_type, + MP_QSTR_EXTERNAL, + MP_QSTR_write_input_script_p2pkh_or_p2sh_prefixed, + MP_QSTR_parse_input_script_p2pkh, + MP_QSTR_read_memoryview, + MP_QSTR_from_int, + MP_QSTR_get, + MP_QSTR_write_output_script_p2pkh, + MP_QSTR_append, + MP_QSTR_output_script_p2pkh, + MP_QSTR_output_script_p2sh, + MP_QSTR_ensure, + MP_QSTR__input_script_native_segwit, + MP_QSTR_output_script_native_segwit, + MP_QSTR_parse_output_script_p2tr, + MP_QSTR_OP_1, + MP_QSTR_remaining_count, + MP_QSTR_write_input_script_p2wpkh_in_p2sh, + MP_QSTR_write_input_script_p2wsh_in_p2sh, + MP_QSTR_write_witness_p2wpkh, + MP_QSTR_parse_witness_p2wpkh, + MP_QSTR_write_witness_multisig, + MP_QSTR_multisig_get_pubkey_count, + MP_QSTR_signatures, + MP_QSTR_parse_witness_multisig, + MP_QSTR_write_witness_p2tr, + MP_QSTR_parse_witness_p2tr, + MP_QSTR_SIGHASH_ALL_TAPROOT, + MP_QSTR__write_input_script_multisig_prefixed, + MP_QSTR_op_push_length, + MP_QSTR_parse_input_script_multisig, + MP_QSTR_output_script_multisig, + MP_QSTR_write_output_script_multisig, + MP_QSTR_output_script_multisig_length, + MP_QSTR_parse_output_script_multisig, + MP_QSTR_output_script_paytoopreturn, + MP_QSTR_extend, + MP_QSTR_write_bip322_signature_proof, + MP_QSTR_SIGHASH_ALL, + MP_QSTR_SEGWIT_INPUT_SCRIPT_TYPES, + MP_QSTR_read_bip322_signature_proof, + MP_QSTR_write_signature_prefixed, + MP_QSTR_append_signature, + MP_QSTR_append_pubkey, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_w, + MP_QSTR_coin, + MP_QSTR_sighash_type, + MP_QSTR_pubkey, + MP_QSTR_signature, + MP_QSTR_address, + MP_QSTR_bytes, + MP_QSTR_ValueError, + MP_QSTR_txi, + MP_QSTR_public_keys, + MP_QSTR_threshold, + MP_QSTR_len, + MP_QSTR_script_sig, + MP_QSTR_EOFError, + MP_QSTR_pubkeyhash, + MP_QSTR_scripthash, + MP_QSTR_bytearray, + MP_QSTR_witver, + MP_QSTR_witprog, + MP_QSTR_script_pubkey, + MP_QSTR_script_hash, + MP_QSTR_witness, + MP_QSTR_signature_index, + MP_QSTR_sum, + MP_QSTR_pubkeys, + MP_QSTR_script, + MP_QSTR_IndexError, + MP_QSTR_data, + MP_QSTR_public_key, + MP_QSTR_r, + MP_QSTR__star_, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_scripts_1 = {{&mp_type_str}, 45577, 29, (const byte*)"\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x63\x61\x73\x68\x61\x64\x64\x72\x20\x61\x64\x64\x72\x65\x73\x73\x20\x74\x79\x70\x65"}; +static const mp_obj_str_t const_obj_apps_bitcoin_scripts_4 = {{&mp_type_str}, 248, 48, (const byte*)"\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x69\x6e\x70\x75\x74\x20\x73\x63\x72\x69\x70\x74\x20\x74\x79\x70\x65\x20\x66\x6f\x72\x20\x62\x69\x70\x31\x34\x33\x20\x73\x63\x72\x69\x70\x74\x20\x63\x6f\x64\x65"}; +static const mp_obj_str_t const_obj_apps_bitcoin_scripts_9 = {{&mp_type_str}, 4346, 27, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x6d\x75\x6c\x74\x69\x73\x69\x67\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73"}; +static const mp_rom_obj_tuple_t const_obj_apps_bitcoin_scripts_10 = {{&mp_type_tuple}, 2, { + MP_ROM_INT(64), + MP_ROM_INT(65), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_scripts[12] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_script_space_type), + MP_ROM_PTR(&const_obj_apps_bitcoin_scripts_1), + MP_ROM_QSTR(MP_QSTR_Invalid_space_address), + MP_ROM_QSTR(MP_QSTR_Invalid_space_address_space_type), + MP_ROM_PTR(&const_obj_apps_bitcoin_scripts_4), + MP_ROM_QSTR(MP_QSTR_Invalid_space_scriptSig_dot_), + MP_ROM_QSTR(MP_QSTR_Invalid_space_scriptPubKey_dot_), + MP_ROM_QSTR(MP_QSTR_Invalid_space_witness_dot_), + MP_ROM_PTR(&mp_const_empty_bytes_obj), + MP_ROM_PTR(&const_obj_apps_bitcoin_scripts_9), + MP_ROM_PTR(&const_obj_apps_bitcoin_scripts_10), + MP_ROM_QSTR(MP_QSTR_Invalid_space_multisig_space_script), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_scripts = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_scripts, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_scripts, + }, + .rc = &raw_code_apps_bitcoin_scripts__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_scripts_decred +// - original source file: build/firmware/src/apps/bitcoin/scripts_decred.mpy +// - frozen file name: apps/bitcoin/scripts_decred.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/scripts_decred.py, scope apps_bitcoin_scripts_decred__lt_module_gt_ +static const byte fun_data_apps_bitcoin_scripts_decred__lt_module_gt_[152] = { + 0x18,0x30, // prelude + 0x01, // names: + 0x40,0x2c,0x2c,0x2c,0x4c,0x2c,0x78,0x40,0x4c,0x80,0x0a,0x84,0x1e,0x84,0x26,0x84,0x0d,0x84,0x0d,0x84,0x08,0x84,0x08, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'utils' + 0x16,0x02, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'base58' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x04, // IMPORT_FROM 'base58' + 0x16,0x04, // STORE_NAME 'base58' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'blake256d_32' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.crypto.base58' + 0x1c,0x06, // IMPORT_FROM 'blake256d_32' + 0x16,0x06, // STORE_NAME 'blake256d_32' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.wire' + 0x1c,0x08, // IMPORT_FROM 'DataError' + 0x16,0x08, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0a, // LOAD_CONST_STRING 'scripts' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME '' + 0x1c,0x0a, // IMPORT_FROM 'scripts' + 0x16,0x0a, // STORE_NAME 'scripts' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0c, // LOAD_CONST_STRING 'output_script_paytoopreturn' + 0x10,0x0d, // LOAD_CONST_STRING 'write_output_script_multisig' + 0x10,0x0e, // LOAD_CONST_STRING 'write_output_script_p2pkh' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x0a, // IMPORT_NAME 'scripts' + 0x1c,0x0c, // IMPORT_FROM 'output_script_paytoopreturn' + 0x16,0x0c, // STORE_NAME 'output_script_paytoopreturn' + 0x1c,0x0d, // IMPORT_FROM 'write_output_script_multisig' + 0x16,0x0d, // STORE_NAME 'write_output_script_multisig' + 0x1c,0x0e, // IMPORT_FROM 'write_output_script_p2pkh' + 0x16,0x0e, // STORE_NAME 'write_output_script_p2pkh' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0f, // LOAD_CONST_STRING 'write_compact_size' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'writers' + 0x1c,0x0f, // IMPORT_FROM 'write_compact_size' + 0x16,0x0f, // STORE_NAME 'write_compact_size' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x11, // STORE_NAME 'write_input_script_prefixed' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x1b, // STORE_NAME '_write_input_script_multisig_prefixed' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x23, // STORE_NAME 'output_script_sstxsubmissionpkh' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x27, // STORE_NAME 'output_script_sstxchange' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x28, // STORE_NAME 'write_output_script_ssrtx_prefixed' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x2a, // STORE_NAME 'write_output_script_ssgen_prefixed' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x2b, // STORE_NAME 'sstxcommitment_pkh' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_scripts_decred__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts_decred.py, scope apps_bitcoin_scripts_decred_write_input_script_prefixed +static const byte fun_data_apps_bitcoin_scripts_decred_write_input_script_prefixed[112] = { + 0x8b,0x14,0x28, // prelude + 0x11,0x2f,0x30,0x16,0x31,0x32,0x33,0x34, // names: write_input_script_prefixed, w, script_type, multisig, coin, sighash_type, pubkey, signature + 0x80,0x22,0x2b,0x4b,0x4b,0x47,0x6d,0x47,0x20,0x26,0x6d,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x12, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x12, // IMPORT_FROM 'wire' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'InputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'trezor.enums' + 0x1c,0x13, // IMPORT_FROM 'InputScriptType' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x15, // LOAD_CONST_STRING 'multisig_pubkey_index' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x16, // IMPORT_NAME 'multisig' + 0x1c,0x15, // IMPORT_FROM 'multisig_pubkey_index' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb8, // LOAD_FAST 8 + 0x13,0x17, // LOAD_ATTR 'SPENDADDRESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x0a, // LOAD_GLOBAL 'scripts' + 0x14,0x18, // LOAD_METHOD 'write_input_script_p2pkh_or_p2sh_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0x42,0x62, // JUMP 34 + 0xb1, // LOAD_FAST 1 + 0xb8, // LOAD_FAST 8 + 0x13,0x19, // LOAD_ATTR 'SPENDMULTISIG' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xb9, // LOAD_FAST 9 + 0xb2, // LOAD_FAST 2 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0xca, // STORE_FAST 10 + 0x12,0x1b, // LOAD_GLOBAL '_write_input_script_multisig_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb6, // LOAD_FAST 6 + 0xba, // LOAD_FAST 10 + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x34,0x06, // CALL_FUNCTION 6 + 0x59, // POP_TOP + 0x42,0x48, // JUMP 8 + 0xb7, // LOAD_FAST 7 + 0x14,0x1a, // LOAD_METHOD 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_decred_write_input_script_prefixed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 7, + .fun_data = fun_data_apps_bitcoin_scripts_decred_write_input_script_prefixed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 112, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_apps_bitcoin_scripts_decred_write_input_script_prefixed + 11, + .line_info_top = fun_data_apps_bitcoin_scripts_decred_write_input_script_prefixed + 23, + .opcodes = fun_data_apps_bitcoin_scripts_decred_write_input_script_prefixed + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts_decred__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts_decred.py, scope apps_bitcoin_scripts_decred__write_input_script_multisig_prefixed +static const byte fun_data_apps_bitcoin_scripts_decred__write_input_script_multisig_prefixed[179] = { + 0xb2,0x14,0x36, // prelude + 0x1b,0x2f,0x16,0x34,0x35,0x32,0x31, // names: _write_input_script_multisig_prefixed, w, multisig, signature, signature_index, sighash_type, coin + 0x80,0x3f,0x2b,0x50,0x24,0x2b,0x27,0x64,0x25,0x6b,0x22,0x25,0x23,0x2e,0x29,0x47,0x25,0x23,0x6c,0x26, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1c, // LOAD_CONST_STRING 'multisig_get_pubkeys' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x16, // IMPORT_NAME 'multisig' + 0x1c,0x1c, // IMPORT_FROM 'multisig_get_pubkeys' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1d, // LOAD_CONST_STRING 'op_push_length' + 0x10,0x1e, // LOAD_CONST_STRING 'write_op_push' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x10, // IMPORT_NAME 'writers' + 0x1c,0x1d, // IMPORT_FROM 'op_push_length' + 0xc7, // STORE_FAST 7 + 0x1c,0x1e, // IMPORT_FROM 'write_op_push' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x1f, // LOAD_ATTR 'signatures' + 0xc9, // STORE_FAST 9 + 0x12,0x36, // LOAD_GLOBAL 'len' + 0xb9, // LOAD_FAST 9 + 0xb3, // LOAD_FAST 3 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x08, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0xb9, // LOAD_FAST 9 + 0xb3, // LOAD_FAST 3 + 0x56, // STORE_SUBSCR + 0xb6, // LOAD_FAST 6 + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xca, // STORE_FAST 10 + 0x12,0x0a, // LOAD_GLOBAL 'scripts' + 0x14,0x20, // LOAD_METHOD 'output_script_multisig_length' + 0xba, // LOAD_FAST 10 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'm' + 0x36,0x02, // CALL_METHOD 2 + 0xcb, // STORE_FAST 11 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xcc, // STORE_FAST 12 + 0xb9, // LOAD_FAST 9 + 0x5f, // GET_ITER_STACK + 0x4b,0x12, // FOR_ITER 18 + 0xcd, // STORE_FAST 13 + 0xbd, // LOAD_FAST 13 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xbc, // LOAD_FAST 12 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x12,0x36, // LOAD_GLOBAL 'len' + 0xbd, // LOAD_FAST 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xcc, // STORE_FAST 12 + 0x42,0x2c, // JUMP -20 + 0xbc, // LOAD_FAST 12 + 0xb7, // LOAD_FAST 7 + 0xbb, // LOAD_FAST 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0xbb, // LOAD_FAST 11 + 0xf2, // BINARY_OP 27 __add__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xcc, // STORE_FAST 12 + 0x12,0x0f, // LOAD_GLOBAL 'write_compact_size' + 0xb0, // LOAD_FAST 0 + 0xbc, // LOAD_FAST 12 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x5f, // GET_ITER_STACK + 0x4b,0x10, // FOR_ITER 16 + 0xcd, // STORE_FAST 13 + 0xbd, // LOAD_FAST 13 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x0a, // LOAD_GLOBAL 'scripts' + 0x14,0x22, // LOAD_METHOD 'append_signature' + 0xb0, // LOAD_FAST 0 + 0xbd, // LOAD_FAST 13 + 0xb4, // LOAD_FAST 4 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x42,0x2e, // JUMP -18 + 0xb8, // LOAD_FAST 8 + 0xb0, // LOAD_FAST 0 + 0xbb, // LOAD_FAST 11 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'scripts' + 0x14,0x0d, // LOAD_METHOD 'write_output_script_multisig' + 0xb0, // LOAD_FAST 0 + 0xba, // LOAD_FAST 10 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'm' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_decred__write_input_script_multisig_prefixed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 6, + .fun_data = fun_data_apps_bitcoin_scripts_decred__write_input_script_multisig_prefixed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 179, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 23, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 27, + .line_info = fun_data_apps_bitcoin_scripts_decred__write_input_script_multisig_prefixed + 10, + .line_info_top = fun_data_apps_bitcoin_scripts_decred__write_input_script_multisig_prefixed + 30, + .opcodes = fun_data_apps_bitcoin_scripts_decred__write_input_script_multisig_prefixed + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts_decred__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts_decred.py, scope apps_bitcoin_scripts_decred_output_script_sstxsubmissionpkh +static const byte fun_data_apps_bitcoin_scripts_decred_output_script_sstxsubmissionpkh[76] = { + 0x45,0x14, // prelude + 0x23,0x37, // names: output_script_sstxsubmissionpkh, addr + 0x80,0x5e,0x22,0x53,0x4a,0x28,0x29,0x2e, // code info + 0x48,0x0c, // SETUP_EXCEPT 12 + 0x12,0x04, // LOAD_GLOBAL 'base58' + 0x14,0x24, // LOAD_METHOD 'decode_check' + 0xb0, // LOAD_FAST 0 + 0x12,0x06, // LOAD_GLOBAL 'blake256d_32' + 0x36,0x02, // CALL_METHOD 2 + 0xc1, // STORE_FAST 1 + 0x4a,0x11, // POP_EXCEPT_JUMP 17 + 0x57, // DUP_TOP + 0x12,0x38, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x25, // LOAD_METHOD 'empty_bytearray' + 0x9a, // LOAD_CONST_SMALL_INT 26 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x14,0x26, // LOAD_METHOD 'append' + 0x22,0x81,0x3a, // LOAD_CONST_SMALL_INT 186 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'scripts' + 0x14,0x0e, // LOAD_METHOD 'write_output_script_p2pkh' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_decred_output_script_sstxsubmissionpkh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_scripts_decred_output_script_sstxsubmissionpkh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 76, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_bitcoin_scripts_decred_output_script_sstxsubmissionpkh + 4, + .line_info_top = fun_data_apps_bitcoin_scripts_decred_output_script_sstxsubmissionpkh + 12, + .opcodes = fun_data_apps_bitcoin_scripts_decred_output_script_sstxsubmissionpkh + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts_decred__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts_decred.py, scope apps_bitcoin_scripts_decred_output_script_sstxchange +static const byte fun_data_apps_bitcoin_scripts_decred_output_script_sstxchange[76] = { + 0x45,0x14, // prelude + 0x27,0x37, // names: output_script_sstxchange, addr + 0x80,0x6b,0x22,0x53,0x4a,0x28,0x29,0x2e, // code info + 0x48,0x0c, // SETUP_EXCEPT 12 + 0x12,0x04, // LOAD_GLOBAL 'base58' + 0x14,0x24, // LOAD_METHOD 'decode_check' + 0xb0, // LOAD_FAST 0 + 0x12,0x06, // LOAD_GLOBAL 'blake256d_32' + 0x36,0x02, // CALL_METHOD 2 + 0xc1, // STORE_FAST 1 + 0x4a,0x11, // POP_EXCEPT_JUMP 17 + 0x57, // DUP_TOP + 0x12,0x38, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x25, // LOAD_METHOD 'empty_bytearray' + 0x9a, // LOAD_CONST_SMALL_INT 26 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x14,0x26, // LOAD_METHOD 'append' + 0x22,0x81,0x3d, // LOAD_CONST_SMALL_INT 189 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'scripts' + 0x14,0x0e, // LOAD_METHOD 'write_output_script_p2pkh' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_decred_output_script_sstxchange = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_scripts_decred_output_script_sstxchange, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 76, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_bitcoin_scripts_decred_output_script_sstxchange + 4, + .line_info_top = fun_data_apps_bitcoin_scripts_decred_output_script_sstxchange + 12, + .opcodes = fun_data_apps_bitcoin_scripts_decred_output_script_sstxchange + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts_decred__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts_decred.py, scope apps_bitcoin_scripts_decred_write_output_script_ssrtx_prefixed +static const byte fun_data_apps_bitcoin_scripts_decred_write_output_script_ssrtx_prefixed[51] = { + 0x2a,0x10, // prelude + 0x28,0x2f,0x39, // names: write_output_script_ssrtx_prefixed, w, pkh + 0x80,0x78,0x2e,0x27,0x29, // code info + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x29, // LOAD_METHOD 'ensure' + 0x12,0x36, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0xd9, // BINARY_OP 2 __eq__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'write_compact_size' + 0xb0, // LOAD_FAST 0 + 0x9a, // LOAD_CONST_SMALL_INT 26 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x26, // LOAD_METHOD 'append' + 0x22,0x81,0x3c, // LOAD_CONST_SMALL_INT 188 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'scripts' + 0x14,0x0e, // LOAD_METHOD 'write_output_script_p2pkh' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_decred_write_output_script_ssrtx_prefixed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_scripts_decred_write_output_script_ssrtx_prefixed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_bitcoin_scripts_decred_write_output_script_ssrtx_prefixed + 5, + .line_info_top = fun_data_apps_bitcoin_scripts_decred_write_output_script_ssrtx_prefixed + 10, + .opcodes = fun_data_apps_bitcoin_scripts_decred_write_output_script_ssrtx_prefixed + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts_decred__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts_decred.py, scope apps_bitcoin_scripts_decred_write_output_script_ssgen_prefixed +static const byte fun_data_apps_bitcoin_scripts_decred_write_output_script_ssgen_prefixed[51] = { + 0x2a,0x10, // prelude + 0x2a,0x2f,0x39, // names: write_output_script_ssgen_prefixed, w, pkh + 0x80,0x80,0x2e,0x27,0x29, // code info + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x29, // LOAD_METHOD 'ensure' + 0x12,0x36, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0xd9, // BINARY_OP 2 __eq__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'write_compact_size' + 0xb0, // LOAD_FAST 0 + 0x9a, // LOAD_CONST_SMALL_INT 26 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x26, // LOAD_METHOD 'append' + 0x22,0x81,0x3b, // LOAD_CONST_SMALL_INT 187 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'scripts' + 0x14,0x0e, // LOAD_METHOD 'write_output_script_p2pkh' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_decred_write_output_script_ssgen_prefixed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_scripts_decred_write_output_script_ssgen_prefixed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_bitcoin_scripts_decred_write_output_script_ssgen_prefixed + 5, + .line_info_top = fun_data_apps_bitcoin_scripts_decred_write_output_script_ssgen_prefixed + 10, + .opcodes = fun_data_apps_bitcoin_scripts_decred_write_output_script_ssgen_prefixed + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_scripts_decred__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/scripts_decred.py, scope apps_bitcoin_scripts_decred_sstxcommitment_pkh +static const byte fun_data_apps_bitcoin_scripts_decred_sstxcommitment_pkh[59] = { + 0x42,0x14, // prelude + 0x2b,0x39,0x3a, // names: sstxcommitment_pkh, pkh, amount + 0x80,0x88,0x50,0x28,0x27,0x26,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2c, // LOAD_CONST_STRING 'write_bytes_fixed' + 0x10,0x2d, // LOAD_CONST_STRING 'write_uint64_le' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x2e, // IMPORT_NAME 'apps.common.writers' + 0x1c,0x2c, // IMPORT_FROM 'write_bytes_fixed' + 0xc2, // STORE_FAST 2 + 0x1c,0x2d, // IMPORT_FROM 'write_uint64_le' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x25, // LOAD_METHOD 'empty_bytearray' + 0x9e, // LOAD_CONST_SMALL_INT 30 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_decred_sstxcommitment_pkh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_scripts_decred_sstxcommitment_pkh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_apps_bitcoin_scripts_decred_sstxcommitment_pkh + 5, + .line_info_top = fun_data_apps_bitcoin_scripts_decred_sstxcommitment_pkh + 12, + .opcodes = fun_data_apps_bitcoin_scripts_decred_sstxcommitment_pkh + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_scripts_decred__lt_module_gt_[] = { + &raw_code_apps_bitcoin_scripts_decred_write_input_script_prefixed, + &raw_code_apps_bitcoin_scripts_decred__write_input_script_multisig_prefixed, + &raw_code_apps_bitcoin_scripts_decred_output_script_sstxsubmissionpkh, + &raw_code_apps_bitcoin_scripts_decred_output_script_sstxchange, + &raw_code_apps_bitcoin_scripts_decred_write_output_script_ssrtx_prefixed, + &raw_code_apps_bitcoin_scripts_decred_write_output_script_ssgen_prefixed, + &raw_code_apps_bitcoin_scripts_decred_sstxcommitment_pkh, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_scripts_decred__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_scripts_decred__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 152, + #endif + .children = (void *)&children_apps_bitcoin_scripts_decred__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 7, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_scripts_decred__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_scripts_decred__lt_module_gt_ + 26, + .opcodes = fun_data_apps_bitcoin_scripts_decred__lt_module_gt_ + 26, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_scripts_decred[59] = { + MP_QSTR_apps_slash_bitcoin_slash_scripts_decred_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_base58, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_blake256d_32, + MP_QSTR_trezor_dot_crypto_dot_base58, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_scripts, + MP_QSTR_, + MP_QSTR_output_script_paytoopreturn, + MP_QSTR_write_output_script_multisig, + MP_QSTR_write_output_script_p2pkh, + MP_QSTR_write_compact_size, + MP_QSTR_writers, + MP_QSTR_write_input_script_prefixed, + MP_QSTR_wire, + MP_QSTR_InputScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_multisig_pubkey_index, + MP_QSTR_multisig, + MP_QSTR_SPENDADDRESS, + MP_QSTR_write_input_script_p2pkh_or_p2sh_prefixed, + MP_QSTR_SPENDMULTISIG, + MP_QSTR_ProcessError, + MP_QSTR__write_input_script_multisig_prefixed, + MP_QSTR_multisig_get_pubkeys, + MP_QSTR_op_push_length, + MP_QSTR_write_op_push, + MP_QSTR_signatures, + MP_QSTR_output_script_multisig_length, + MP_QSTR_m, + MP_QSTR_append_signature, + MP_QSTR_output_script_sstxsubmissionpkh, + MP_QSTR_decode_check, + MP_QSTR_empty_bytearray, + MP_QSTR_append, + MP_QSTR_output_script_sstxchange, + MP_QSTR_write_output_script_ssrtx_prefixed, + MP_QSTR_ensure, + MP_QSTR_write_output_script_ssgen_prefixed, + MP_QSTR_sstxcommitment_pkh, + MP_QSTR_write_bytes_fixed, + MP_QSTR_write_uint64_le, + MP_QSTR_apps_dot_common_dot_writers, + MP_QSTR_w, + MP_QSTR_script_type, + MP_QSTR_coin, + MP_QSTR_sighash_type, + MP_QSTR_pubkey, + MP_QSTR_signature, + MP_QSTR_signature_index, + MP_QSTR_len, + MP_QSTR_addr, + MP_QSTR_ValueError, + MP_QSTR_pkh, + MP_QSTR_amount, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_scripts_decred_1 = {{&mp_type_str}, 4346, 27, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x6d\x75\x6c\x74\x69\x73\x69\x67\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73"}; +static const mp_obj_str_t const_obj_apps_bitcoin_scripts_decred_3 = {{&mp_type_bytes}, 27165, 2, (const byte*)"\x00\x58"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_scripts_decred[4] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_script_space_type), + MP_ROM_PTR(&const_obj_apps_bitcoin_scripts_decred_1), + MP_ROM_QSTR(MP_QSTR_Invalid_space_address), + MP_ROM_PTR(&const_obj_apps_bitcoin_scripts_decred_3), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_scripts_decred = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_scripts_decred, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_scripts_decred, + }, + .rc = &raw_code_apps_bitcoin_scripts_decred__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_sign_message +// - original source file: build/firmware/src/apps/bitcoin/sign_message.mpy +// - frozen file name: apps/bitcoin/sign_message.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/sign_message.py, scope apps_bitcoin_sign_message__lt_module_gt_ +static const byte fun_data_apps_bitcoin_sign_message__lt_module_gt_[29] = { + 0x08,0x0a, // prelude + 0x01, // names: + 0x40,0x4c,0x80,0x07, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x02, // LOAD_CONST_STRING 'with_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'keychain' + 0x1c,0x02, // IMPORT_FROM 'with_keychain' + 0x16,0x02, // STORE_NAME 'with_keychain' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'with_keychain' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x04, // STORE_NAME 'sign_message' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_message__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_message.py, scope apps_bitcoin_sign_message_sign_message +static const byte fun_data_apps_bitcoin_sign_message_sign_message[345] = { + 0xe3,0x50,0x4e, // prelude + 0x04,0x27,0x03,0x28, // names: sign_message, msg, keychain, coin + 0x80,0x0f,0x2b,0x2b,0x2b,0x2b,0x4b,0x2b,0x50,0x30,0x4b,0x24,0x24,0x4a,0x23,0x6b,0x28,0x2a,0x21,0x23,0x24,0x70,0x20,0x48,0x27,0x4b,0x28,0x25,0x28,0x25,0x28,0x45,0x68,0x2b,0x57, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x05, // IMPORT_FROM 'wire' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'secp256k1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x07, // IMPORT_FROM 'secp256k1' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'InputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.enums' + 0x1c,0x09, // IMPORT_FROM 'InputScriptType' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'MessageSignature' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0b, // IMPORT_FROM 'MessageSignature' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'confirm_signverify' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x0d, // IMPORT_FROM 'confirm_signverify' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0f, // LOAD_CONST_STRING 'validate_path' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x0f, // IMPORT_FROM 'validate_path' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'decode_message' + 0x10,0x12, // LOAD_CONST_STRING 'message_digest' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x13, // IMPORT_NAME 'apps.common.signverify' + 0x1c,0x11, // IMPORT_FROM 'decode_message' + 0xc9, // STORE_FAST 9 + 0x1c,0x12, // IMPORT_FROM 'message_digest' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x14, // LOAD_CONST_STRING 'address_short' + 0x10,0x15, // LOAD_CONST_STRING 'get_address' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x16, // IMPORT_NAME 'addresses' + 0x1c,0x14, // IMPORT_FROM 'address_short' + 0xcb, // STORE_FAST 11 + 0x1c,0x15, // IMPORT_FROM 'get_address' + 0xcc, // STORE_FAST 12 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x17, // LOAD_CONST_STRING 'validate_path_against_script_type' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'keychain' + 0x1c,0x17, // IMPORT_FROM 'validate_path_against_script_type' + 0xcd, // STORE_FAST 13 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'message' + 0xce, // STORE_FAST 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'address_n' + 0xcf, // STORE_FAST 15 + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'script_type' + 0x45,0x03, // JUMP_IF_TRUE_OR_POP 3 + 0xb5, // LOAD_FAST 5 + 0x13,0x1b, // LOAD_ATTR 'SPENDADDRESS' + 0x26,0x10, // STORE_FAST_N 16 + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0xbf, // LOAD_FAST 15 + 0xbd, // LOAD_FAST 13 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x1c, // LOAD_METHOD 'derive' + 0xbf, // LOAD_FAST 15 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x11, // STORE_FAST_N 17 + 0xbc, // LOAD_FAST 12 + 0x24,0x10, // LOAD_FAST_N 16 + 0xb2, // LOAD_FAST 2 + 0x24,0x11, // LOAD_FAST_N 17 + 0x34,0x03, // CALL_FUNCTION 3 + 0x26,0x12, // STORE_FAST_N 18 + 0xb7, // LOAD_FAST 7 + 0xb2, // LOAD_FAST 2 + 0x13,0x1d, // LOAD_ATTR 'coin_shortcut' + 0xb9, // LOAD_FAST 9 + 0xbe, // LOAD_FAST 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0xbb, // LOAD_FAST 11 + 0xb2, // LOAD_FAST 2 + 0x24,0x12, // LOAD_FAST_N 18 + 0x34,0x02, // CALL_FUNCTION 2 + 0x10,0x1e, // LOAD_CONST_STRING 'verify' + 0x50, // LOAD_CONST_FALSE + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x24,0x11, // LOAD_FAST_N 17 + 0x14,0x1f, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x13, // STORE_FAST_N 19 + 0xba, // LOAD_FAST 10 + 0xb2, // LOAD_FAST 2 + 0xbe, // LOAD_FAST 14 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x14, // STORE_FAST_N 20 + 0xb4, // LOAD_FAST 4 + 0x14,0x20, // LOAD_METHOD 'sign' + 0x24,0x13, // LOAD_FAST_N 19 + 0x24,0x14, // LOAD_FAST_N 20 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x15, // STORE_FAST_N 21 + 0x24,0x10, // LOAD_FAST_N 16 + 0xb5, // LOAD_FAST 5 + 0x13,0x1b, // LOAD_ATTR 'SPENDADDRESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x26,0x16, // STORE_FAST_N 22 + 0x42,0x62, // JUMP 34 + 0x24,0x10, // LOAD_FAST_N 16 + 0xb5, // LOAD_FAST 5 + 0x13,0x21, // LOAD_ATTR 'SPENDP2SHWITNESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x26,0x16, // STORE_FAST_N 22 + 0x42,0x55, // JUMP 21 + 0x24,0x10, // LOAD_FAST_N 16 + 0xb5, // LOAD_FAST 5 + 0x13,0x22, // LOAD_ATTR 'SPENDWITNESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x26,0x16, // STORE_FAST_N 22 + 0x42,0x48, // JUMP 8 + 0xb3, // LOAD_FAST 3 + 0x14,0x23, // LOAD_METHOD 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x24,0x16, // LOAD_FAST_N 22 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'no_script_type' + 0x43,0x57, // POP_JUMP_IF_TRUE 23 + 0x12,0x29, // LOAD_GLOBAL 'bytes' + 0x24,0x15, // LOAD_FAST_N 21 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x24,0x16, // LOAD_FAST_N 22 + 0xf2, // BINARY_OP 27 __add__ + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x24,0x15, // LOAD_FAST_N 21 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xf2, // BINARY_OP 27 __add__ + 0x26,0x15, // STORE_FAST_N 21 + 0xb6, // LOAD_FAST 6 + 0x10,0x25, // LOAD_CONST_STRING 'address' + 0x24,0x12, // LOAD_FAST_N 18 + 0x10,0x26, // LOAD_CONST_STRING 'signature' + 0x24,0x15, // LOAD_FAST_N 21 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_message_sign_message = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_message_sign_message, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 345, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 29, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_bitcoin_sign_message_sign_message + 7, + .line_info_top = fun_data_apps_bitcoin_sign_message_sign_message + 42, + .opcodes = fun_data_apps_bitcoin_sign_message_sign_message + 42, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_message__lt_module_gt_[] = { + &raw_code_apps_bitcoin_sign_message_sign_message, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_message__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_message__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = (void *)&children_apps_bitcoin_sign_message__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_sign_message__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_sign_message__lt_module_gt_ + 7, + .opcodes = fun_data_apps_bitcoin_sign_message__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_sign_message[42] = { + MP_QSTR_apps_slash_bitcoin_slash_sign_message_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_with_keychain, + MP_QSTR_keychain, + MP_QSTR_sign_message, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_secp256k1, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_InputScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_MessageSignature, + MP_QSTR_trezor_dot_messages, + MP_QSTR_confirm_signverify, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_validate_path, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_decode_message, + MP_QSTR_message_digest, + MP_QSTR_apps_dot_common_dot_signverify, + MP_QSTR_address_short, + MP_QSTR_get_address, + MP_QSTR_addresses, + MP_QSTR_validate_path_against_script_type, + MP_QSTR_message, + MP_QSTR_address_n, + MP_QSTR_script_type, + MP_QSTR_SPENDADDRESS, + MP_QSTR_derive, + MP_QSTR_coin_shortcut, + MP_QSTR_verify, + MP_QSTR_private_key, + MP_QSTR_sign, + MP_QSTR_SPENDP2SHWITNESS, + MP_QSTR_SPENDWITNESS, + MP_QSTR_ProcessError, + MP_QSTR_no_script_type, + MP_QSTR_address, + MP_QSTR_signature, + MP_QSTR_msg, + MP_QSTR_coin, + MP_QSTR_bytes, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_sign_message[1] = { + MP_ROM_QSTR(MP_QSTR_Unsupported_space_script_space_type), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_sign_message = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_sign_message, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_sign_message, + }, + .rc = &raw_code_apps_bitcoin_sign_message__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_verification +// - original source file: build/firmware/src/apps/bitcoin/verification.mpy +// - frozen file name: apps/bitcoin/verification.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/verification.py, scope apps_bitcoin_verification__lt_module_gt_ +static const byte fun_data_apps_bitcoin_verification__lt_module_gt_[36] = { + 0x10,0x0e, // prelude + 0x01, // names: + 0x40,0x4c,0x80,0x08,0x89,0x89, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.wire' + 0x1c,0x02, // IMPORT_FROM 'DataError' + 0x16,0x02, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x04, // LOAD_CONST_STRING 'SignatureVerifier' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x04, // STORE_NAME 'SignatureVerifier' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x05, // STORE_NAME '_decode_der_signature' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_verification__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/verification.py, scope apps_bitcoin_verification_SignatureVerifier +static const byte fun_data_apps_bitcoin_verification_SignatureVerifier[43] = { + 0x00,0x16, // prelude + 0x04, // names: SignatureVerifier + 0x88,0x0d,0x84,0x65,0x64,0x20,0x84,0x0c,0x64,0x60, // code info + 0x11,0x2f, // LOAD_NAME '__name__' + 0x16,0x30, // STORE_NAME '__module__' + 0x10,0x04, // LOAD_CONST_STRING 'SignatureVerifier' + 0x16,0x31, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x09, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x27, // STORE_NAME 'ensure_hash_type' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x28, // STORE_NAME 'verify' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x29, // STORE_NAME 'verify_bip340' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x2a, // STORE_NAME 'verify_ecdsa' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_verification_SignatureVerifier +// frozen bytecode for file apps/bitcoin/verification.py, scope apps_bitcoin_verification_SignatureVerifier___init__ +static const byte fun_data_apps_bitcoin_verification_SignatureVerifier___init__[838] = { + 0xd9,0x24,0xa2,0x02, // prelude + 0x09,0x37,0x38,0x39,0x3a,0x3b, // names: __init__, self, script_pubkey, script_sig, witness, coin + 0x80,0x14,0x2b,0x2b,0x4b,0x3a,0x1f,0x1f,0x8c,0x0f,0x24,0x25,0x25,0x44,0x24,0x23,0x46,0x29,0x2d,0x28,0x2a,0x26,0x27,0x2e,0x30,0x2c,0x2b,0x2a,0x26,0x30,0x30,0x24,0x2a,0x4c,0x2d,0x27,0x2a,0x2d,0x28,0x28,0x29,0x26,0x26,0x31,0x29,0x26,0x27,0x2e,0x2a,0x2c,0x2b,0x28,0x29,0x26,0x26,0x31,0x29,0x26,0x50,0x49,0x29,0x2d,0x28,0x29,0x26,0x27,0x2e,0x29,0x2b,0x2d,0x29,0x26,0x50,0x46,0x2d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'trezor' + 0x1c,0x0a, // IMPORT_FROM 'utils' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x0c, // IMPORT_FROM 'sha256' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.wire' + 0x1c,0x02, // IMPORT_FROM 'DataError' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0e, // LOAD_CONST_STRING 'OP_0' + 0x10,0x0f, // LOAD_CONST_STRING 'OP_1' + 0x10,0x10, // LOAD_CONST_STRING 'SigHashType' + 0x10,0x11, // LOAD_CONST_STRING 'ecdsa_hash_pubkey' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x12, // IMPORT_NAME 'common' + 0x1c,0x0e, // IMPORT_FROM 'OP_0' + 0xc8, // STORE_FAST 8 + 0x1c,0x0f, // IMPORT_FROM 'OP_1' + 0xc9, // STORE_FAST 9 + 0x1c,0x10, // IMPORT_FROM 'SigHashType' + 0xca, // STORE_FAST 10 + 0x1c,0x11, // IMPORT_FROM 'ecdsa_hash_pubkey' + 0xcb, // STORE_FAST 11 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x13, // LOAD_CONST_STRING 'output_script_native_segwit' + 0x10,0x14, // LOAD_CONST_STRING 'output_script_p2pkh' + 0x10,0x15, // LOAD_CONST_STRING 'output_script_p2sh' + 0x10,0x16, // LOAD_CONST_STRING 'parse_input_script_multisig' + 0x10,0x17, // LOAD_CONST_STRING 'parse_input_script_p2pkh' + 0x10,0x18, // LOAD_CONST_STRING 'parse_output_script_multisig' + 0x10,0x19, // LOAD_CONST_STRING 'parse_output_script_p2tr' + 0x10,0x1a, // LOAD_CONST_STRING 'parse_witness_multisig' + 0x10,0x1b, // LOAD_CONST_STRING 'parse_witness_p2tr' + 0x10,0x1c, // LOAD_CONST_STRING 'parse_witness_p2wpkh' + 0x10,0x1d, // LOAD_CONST_STRING 'write_input_script_p2wpkh_in_p2sh' + 0x10,0x1e, // LOAD_CONST_STRING 'write_input_script_p2wsh_in_p2sh' + 0x2a,0x0c, // BUILD_TUPLE 12 + 0x1b,0x1f, // IMPORT_NAME 'scripts' + 0x1c,0x13, // IMPORT_FROM 'output_script_native_segwit' + 0xcc, // STORE_FAST 12 + 0x1c,0x14, // IMPORT_FROM 'output_script_p2pkh' + 0xcd, // STORE_FAST 13 + 0x1c,0x15, // IMPORT_FROM 'output_script_p2sh' + 0xce, // STORE_FAST 14 + 0x1c,0x16, // IMPORT_FROM 'parse_input_script_multisig' + 0xcf, // STORE_FAST 15 + 0x1c,0x17, // IMPORT_FROM 'parse_input_script_p2pkh' + 0x26,0x10, // STORE_FAST_N 16 + 0x1c,0x18, // IMPORT_FROM 'parse_output_script_multisig' + 0x26,0x11, // STORE_FAST_N 17 + 0x1c,0x19, // IMPORT_FROM 'parse_output_script_p2tr' + 0x26,0x12, // STORE_FAST_N 18 + 0x1c,0x1a, // IMPORT_FROM 'parse_witness_multisig' + 0x26,0x13, // STORE_FAST_N 19 + 0x1c,0x1b, // IMPORT_FROM 'parse_witness_p2tr' + 0x26,0x14, // STORE_FAST_N 20 + 0x1c,0x1c, // IMPORT_FROM 'parse_witness_p2wpkh' + 0x26,0x15, // STORE_FAST_N 21 + 0x1c,0x1d, // IMPORT_FROM 'write_input_script_p2wpkh_in_p2sh' + 0x26,0x16, // STORE_FAST_N 22 + 0x1c,0x1e, // IMPORT_FROM 'write_input_script_p2wsh_in_p2sh' + 0x26,0x17, // STORE_FAST_N 23 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x20, // STORE_ATTR 'threshold' + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x21, // STORE_ATTR 'public_keys' + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x22, // STORE_ATTR 'signatures' + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x23, // STORE_ATTR 'is_taproot' + 0xb2, // LOAD_FAST 2 + 0x43,0xc6,0x81, // POP_JUMP_IF_TRUE 198 + 0xb3, // LOAD_FAST 3 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x33, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x96, // LOAD_CONST_SMALL_INT 22 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7a, // POP_JUMP_IF_FALSE 58 + 0x24,0x15, // LOAD_FAST_N 21 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0x26,0x18, // STORE_FAST_N 24 + 0x26,0x19, // STORE_FAST_N 25 + 0x26,0x1a, // STORE_FAST_N 26 + 0xbb, // LOAD_FAST 11 + 0x24,0x18, // LOAD_FAST_N 24 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x1b, // STORE_FAST_N 27 + 0xbc, // LOAD_FAST 12 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x24,0x1b, // LOAD_FAST_N 27 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb1, // LOAD_FAST 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x18, // LOAD_FAST_N 24 + 0x2b,0x01, // BUILD_LIST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x21, // STORE_ATTR 'public_keys' + 0x24,0x19, // LOAD_FAST_N 25 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x01, // BUILD_LIST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x22, // STORE_ATTR 'signatures' + 0x42,0xf7,0x80, // JUMP 119 + 0x12,0x33, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa2, // LOAD_CONST_SMALL_INT 34 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7e, // POP_JUMP_IF_FALSE 62 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb8, // LOAD_FAST 8 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x77, // POP_JUMP_IF_FALSE 55 + 0x24,0x13, // LOAD_FAST_N 19 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0x26,0x1c, // STORE_FAST_N 28 + 0xb0, // LOAD_FAST 0 + 0x18,0x22, // STORE_ATTR 'signatures' + 0xb6, // LOAD_FAST 6 + 0x24,0x1c, // LOAD_FAST_N 28 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x24, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x1d, // STORE_FAST_N 29 + 0xbc, // LOAD_FAST 12 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x24,0x1d, // LOAD_FAST_N 29 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb1, // LOAD_FAST 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x1c, // LOAD_FAST_N 28 + 0x34,0x01, // CALL_FUNCTION 1 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x21, // STORE_ATTR 'public_keys' + 0xb0, // LOAD_FAST 0 + 0x18,0x20, // STORE_ATTR 'threshold' + 0x42,0x70, // JUMP 48 + 0x12,0x33, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa2, // LOAD_CONST_SMALL_INT 34 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x61, // POP_JUMP_IF_FALSE 33 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb9, // LOAD_FAST 9 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x23, // STORE_ATTR 'is_taproot' + 0x24,0x12, // LOAD_FAST_N 18 + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2b,0x01, // BUILD_LIST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x21, // STORE_ATTR 'public_keys' + 0x24,0x14, // LOAD_FAST_N 20 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2b,0x01, // BUILD_LIST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x22, // STORE_ATTR 'signatures' + 0x42,0x46, // JUMP 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0xfb,0x82, // JUMP 379 + 0xb3, // LOAD_FAST 3 + 0x44,0xef,0x81, // POP_JUMP_IF_FALSE 239 + 0xb3, // LOAD_FAST 3 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0xe8,0x81, // POP_JUMP_IF_FALSE 232 + 0x12,0x33, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x97, // LOAD_CONST_SMALL_INT 23 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xe7,0x80, // POP_JUMP_IF_FALSE 103 + 0x24,0x15, // LOAD_FAST_N 21 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0x26,0x18, // STORE_FAST_N 24 + 0x26,0x19, // STORE_FAST_N 25 + 0x26,0x1a, // STORE_FAST_N 26 + 0xbb, // LOAD_FAST 11 + 0x24,0x18, // LOAD_FAST_N 24 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x1b, // STORE_FAST_N 27 + 0xb5, // LOAD_FAST 5 + 0x14,0x25, // LOAD_METHOD 'empty_bytearray' + 0x97, // LOAD_CONST_SMALL_INT 23 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x1e, // STORE_FAST_N 30 + 0x24,0x16, // LOAD_FAST_N 22 + 0x24,0x1e, // LOAD_FAST_N 30 + 0x24,0x1b, // LOAD_FAST_N 27 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x24,0x1e, // LOAD_FAST_N 30 + 0xb2, // LOAD_FAST 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x14,0x26, // LOAD_METHOD 'script_hash' + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x24, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x1d, // STORE_FAST_N 29 + 0xbe, // LOAD_FAST 14 + 0x24,0x1d, // LOAD_FAST_N 29 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x18, // LOAD_FAST_N 24 + 0x2b,0x01, // BUILD_LIST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x21, // STORE_ATTR 'public_keys' + 0x24,0x19, // LOAD_FAST_N 25 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x01, // BUILD_LIST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x22, // STORE_ATTR 'signatures' + 0x42,0xf4,0x80, // JUMP 116 + 0x12,0x33, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa3, // LOAD_CONST_SMALL_INT 35 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xe4,0x80, // POP_JUMP_IF_FALSE 100 + 0x24,0x13, // LOAD_FAST_N 19 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0x26,0x1c, // STORE_FAST_N 28 + 0xb0, // LOAD_FAST 0 + 0x18,0x22, // STORE_ATTR 'signatures' + 0xb6, // LOAD_FAST 6 + 0x24,0x1c, // LOAD_FAST_N 28 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x24, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x1d, // STORE_FAST_N 29 + 0xb5, // LOAD_FAST 5 + 0x14,0x25, // LOAD_METHOD 'empty_bytearray' + 0xa3, // LOAD_CONST_SMALL_INT 35 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x1e, // STORE_FAST_N 30 + 0x24,0x17, // LOAD_FAST_N 23 + 0x24,0x1e, // LOAD_FAST_N 30 + 0x24,0x1d, // LOAD_FAST_N 29 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x24,0x1e, // LOAD_FAST_N 30 + 0xb2, // LOAD_FAST 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x14,0x26, // LOAD_METHOD 'script_hash' + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x24, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x1d, // STORE_FAST_N 29 + 0xbe, // LOAD_FAST 14 + 0x24,0x1d, // LOAD_FAST_N 29 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x1c, // LOAD_FAST_N 28 + 0x34,0x01, // CALL_FUNCTION 1 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x21, // STORE_ATTR 'public_keys' + 0xb0, // LOAD_FAST 0 + 0x18,0x20, // STORE_ATTR 'threshold' + 0x42,0x46, // JUMP 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x88,0x81, // JUMP 136 + 0x12,0x33, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x99, // LOAD_CONST_SMALL_INT 25 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x79, // POP_JUMP_IF_FALSE 57 + 0x24,0x10, // LOAD_FAST_N 16 + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0x26,0x18, // STORE_FAST_N 24 + 0x26,0x19, // STORE_FAST_N 25 + 0x26,0x1a, // STORE_FAST_N 26 + 0xbb, // LOAD_FAST 11 + 0x24,0x18, // LOAD_FAST_N 24 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x1b, // STORE_FAST_N 27 + 0xbd, // LOAD_FAST 13 + 0x24,0x1b, // LOAD_FAST_N 27 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x18, // LOAD_FAST_N 24 + 0x2b,0x01, // BUILD_LIST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x21, // STORE_ATTR 'public_keys' + 0x24,0x19, // LOAD_FAST_N 25 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x01, // BUILD_LIST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x22, // STORE_ATTR 'signatures' + 0x42,0xc6,0x80, // JUMP 70 + 0x12,0x33, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x97, // LOAD_CONST_SMALL_INT 23 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x77, // POP_JUMP_IF_FALSE 55 + 0xbf, // LOAD_FAST 15 + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0x26,0x1c, // STORE_FAST_N 28 + 0xb0, // LOAD_FAST 0 + 0x18,0x22, // STORE_ATTR 'signatures' + 0xb4, // LOAD_FAST 4 + 0x14,0x26, // LOAD_METHOD 'script_hash' + 0x24,0x1c, // LOAD_FAST_N 28 + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x24, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x1d, // STORE_FAST_N 29 + 0xbe, // LOAD_FAST 14 + 0x24,0x1d, // LOAD_FAST_N 29 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x1c, // LOAD_FAST_N 28 + 0x34,0x01, // CALL_FUNCTION 1 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x21, // STORE_ATTR 'public_keys' + 0xb0, // LOAD_FAST 0 + 0x18,0x20, // STORE_ATTR 'threshold' + 0x42,0x46, // JUMP 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'threshold' + 0x12,0x33, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'signatures' + 0x34,0x01, // CALL_FUNCTION 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_verification_SignatureVerifier___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_bitcoin_verification_SignatureVerifier___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 838, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 44, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_bitcoin_verification_SignatureVerifier___init__ + 10, + .line_info_top = fun_data_apps_bitcoin_verification_SignatureVerifier___init__ + 85, + .opcodes = fun_data_apps_bitcoin_verification_SignatureVerifier___init__ + 85, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_verification_SignatureVerifier +// frozen bytecode for file apps/bitcoin/verification.py, scope apps_bitcoin_verification_SignatureVerifier_ensure_hash_type +static const byte fun_data_apps_bitcoin_verification_SignatureVerifier_ensure_hash_type[34] = { + 0x22,0x0d, // prelude + 0x27,0x37,0x3c, // names: ensure_hash_type, self, sighash_types + 0x80,0x73,0x30,0x01, // code info + 0x12,0x34, // LOAD_GLOBAL 'any' + 0xb1, // LOAD_FAST 1 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'signatures' + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'DataError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_verification_SignatureVerifier_ensure_hash_type +// frozen bytecode for file apps/bitcoin/verification.py, scope apps_bitcoin_verification_SignatureVerifier_ensure_hash_type__lt_genexpr_gt_ +static const byte fun_data_apps_bitcoin_verification_SignatureVerifier_ensure_hash_type__lt_genexpr_gt_[29] = { + 0xca,0x40,0x0a, // prelude + 0x2e,0x3e,0x3e, // names: , *, * + 0x80,0x73, // code info + 0x53, // LOAD_NULL + 0xb1, // LOAD_FAST 1 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0d, // FOR_ITER 13 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc2, // STORE_FAST 2 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x25,0x00, // LOAD_DEREF 0 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x31, // JUMP -15 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_verification_SignatureVerifier_ensure_hash_type__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_verification_SignatureVerifier_ensure_hash_type__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_bitcoin_verification_SignatureVerifier_ensure_hash_type__lt_genexpr_gt_ + 6, + .line_info_top = fun_data_apps_bitcoin_verification_SignatureVerifier_ensure_hash_type__lt_genexpr_gt_ + 8, + .opcodes = fun_data_apps_bitcoin_verification_SignatureVerifier_ensure_hash_type__lt_genexpr_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_verification_SignatureVerifier_ensure_hash_type[] = { + &raw_code_apps_bitcoin_verification_SignatureVerifier_ensure_hash_type__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_verification_SignatureVerifier_ensure_hash_type = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_verification_SignatureVerifier_ensure_hash_type, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = (void *)&children_apps_bitcoin_verification_SignatureVerifier_ensure_hash_type, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_bitcoin_verification_SignatureVerifier_ensure_hash_type + 5, + .line_info_top = fun_data_apps_bitcoin_verification_SignatureVerifier_ensure_hash_type + 8, + .opcodes = fun_data_apps_bitcoin_verification_SignatureVerifier_ensure_hash_type + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_verification_SignatureVerifier +// frozen bytecode for file apps/bitcoin/verification.py, scope apps_bitcoin_verification_SignatureVerifier_verify +static const byte fun_data_apps_bitcoin_verification_SignatureVerifier_verify[32] = { + 0x22,0x0e, // prelude + 0x28,0x37,0x24, // names: verify, self, digest + 0x80,0x7d,0x25,0x49, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'is_taproot' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x29, // LOAD_METHOD 'verify_bip340' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0xb0, // LOAD_FAST 0 + 0x14,0x2a, // LOAD_METHOD 'verify_ecdsa' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_verification_SignatureVerifier_verify = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_verification_SignatureVerifier_verify, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_bitcoin_verification_SignatureVerifier_verify + 5, + .line_info_top = fun_data_apps_bitcoin_verification_SignatureVerifier_verify + 9, + .opcodes = fun_data_apps_bitcoin_verification_SignatureVerifier_verify + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_verification_SignatureVerifier +// frozen bytecode for file apps/bitcoin/verification.py, scope apps_bitcoin_verification_SignatureVerifier_verify_bip340 +static const byte fun_data_apps_bitcoin_verification_SignatureVerifier_verify_bip340[49] = { + 0x3a,0x0e, // prelude + 0x29,0x37,0x24, // names: verify_bip340, self, digest + 0x80,0x83,0x4b,0x34, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2b, // LOAD_CONST_STRING 'bip340' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2c, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x2b, // IMPORT_FROM 'bip340' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x28, // LOAD_METHOD 'verify' + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'public_keys' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'signatures' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0x36,0x03, // CALL_METHOD 3 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x02, // LOAD_GLOBAL 'DataError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_verification_SignatureVerifier_verify_bip340 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_verification_SignatureVerifier_verify_bip340, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_bitcoin_verification_SignatureVerifier_verify_bip340 + 5, + .line_info_top = fun_data_apps_bitcoin_verification_SignatureVerifier_verify_bip340 + 9, + .opcodes = fun_data_apps_bitcoin_verification_SignatureVerifier_verify_bip340 + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_verification_SignatureVerifier +// frozen bytecode for file apps/bitcoin/verification.py, scope apps_bitcoin_verification_SignatureVerifier_verify_ecdsa +static const byte fun_data_apps_bitcoin_verification_SignatureVerifier_verify_ecdsa[88] = { + 0x7e,0x18, // prelude + 0x2a,0x37,0x24, // names: verify_ecdsa, self, digest + 0x80,0x89,0x4b,0x22,0x22,0x2a,0x26,0x22,0x5d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2d, // LOAD_CONST_STRING 'secp256k1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2c, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x2d, // IMPORT_FROM 'secp256k1' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x48,0x2a, // SETUP_EXCEPT 42 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'signatures' + 0x5f, // GET_ITER_STACK + 0x4b,0x20, // FOR_ITER 32 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0x12,0x05, // LOAD_GLOBAL '_decode_der_signature' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc6, // STORE_FAST 6 + 0x42,0x44, // JUMP 4 + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x14,0x28, // LOAD_METHOD 'verify' + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'public_keys' + 0xb3, // LOAD_FAST 3 + 0x55, // LOAD_SUBSCR + 0xb6, // LOAD_FAST 6 + 0xb1, // LOAD_FAST 1 + 0x36,0x03, // CALL_METHOD 3 + 0x44,0x2e, // POP_JUMP_IF_FALSE -18 + 0x42,0x1e, // JUMP -34 + 0x4a,0x11, // POP_EXCEPT_JUMP 17 + 0x57, // DUP_TOP + 0x12,0x3d, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'DataError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_verification_SignatureVerifier_verify_ecdsa = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_verification_SignatureVerifier_verify_ecdsa, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 88, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_bitcoin_verification_SignatureVerifier_verify_ecdsa + 5, + .line_info_top = fun_data_apps_bitcoin_verification_SignatureVerifier_verify_ecdsa + 14, + .opcodes = fun_data_apps_bitcoin_verification_SignatureVerifier_verify_ecdsa + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_verification_SignatureVerifier[] = { + &raw_code_apps_bitcoin_verification_SignatureVerifier___init__, + &raw_code_apps_bitcoin_verification_SignatureVerifier_ensure_hash_type, + &raw_code_apps_bitcoin_verification_SignatureVerifier_verify, + &raw_code_apps_bitcoin_verification_SignatureVerifier_verify_bip340, + &raw_code_apps_bitcoin_verification_SignatureVerifier_verify_ecdsa, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_verification_SignatureVerifier = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_verification_SignatureVerifier, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = (void *)&children_apps_bitcoin_verification_SignatureVerifier, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_bitcoin_verification_SignatureVerifier + 3, + .line_info_top = fun_data_apps_bitcoin_verification_SignatureVerifier + 13, + .opcodes = fun_data_apps_bitcoin_verification_SignatureVerifier + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_verification__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/verification.py, scope apps_bitcoin_verification__decode_der_signature +static const byte fun_data_apps_bitcoin_verification__decode_der_signature[103] = { + 0x49,0x16, // prelude + 0x05,0x32, // names: _decode_der_signature, der_signature + 0x80,0x96,0x4b,0x27,0x35,0x43,0x28,0x31,0x55, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'der' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x06, // IMPORT_FROM 'der' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x08, // LOAD_METHOD 'decode_seq' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0x12,0x33, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x4c, // POP_JUMP_IF_TRUE 12 + 0x12,0x34, // LOAD_GLOBAL 'any' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb2, // LOAD_FAST 2 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x35, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x36, // LOAD_GLOBAL 'bytearray' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb3, // LOAD_FAST 3 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x12,0x33, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0xb3, // LOAD_FAST 3 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x12,0x33, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_verification__decode_der_signature +// frozen bytecode for file apps/bitcoin/verification.py, scope apps_bitcoin_verification__decode_der_signature__lt_genexpr_gt_ +static const byte fun_data_apps_bitcoin_verification__decode_der_signature__lt_genexpr_gt_[27] = { + 0xb9,0x40,0x08, // prelude + 0x2e,0x3e, // names: , * + 0x80,0x99, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0c, // FOR_ITER 12 + 0xc1, // STORE_FAST 1 + 0x12,0x33, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xd8, // BINARY_OP 1 __gt__ + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x32, // JUMP -14 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_verification__decode_der_signature__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_verification__decode_der_signature__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_bitcoin_verification__decode_der_signature__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_apps_bitcoin_verification__decode_der_signature__lt_genexpr_gt_ + 7, + .opcodes = fun_data_apps_bitcoin_verification__decode_der_signature__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_verification__decode_der_signature[] = { + &raw_code_apps_bitcoin_verification__decode_der_signature__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_verification__decode_der_signature = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_verification__decode_der_signature, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 103, + #endif + .children = (void *)&children_apps_bitcoin_verification__decode_der_signature, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_bitcoin_verification__decode_der_signature + 4, + .line_info_top = fun_data_apps_bitcoin_verification__decode_der_signature + 13, + .opcodes = fun_data_apps_bitcoin_verification__decode_der_signature + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_verification__lt_module_gt_[] = { + &raw_code_apps_bitcoin_verification_SignatureVerifier, + &raw_code_apps_bitcoin_verification__decode_der_signature, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_verification__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_verification__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = (void *)&children_apps_bitcoin_verification__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_verification__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_verification__lt_module_gt_ + 9, + .opcodes = fun_data_apps_bitcoin_verification__lt_module_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_verification[63] = { + MP_QSTR_apps_slash_bitcoin_slash_verification_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_SignatureVerifier, + MP_QSTR__decode_der_signature, + MP_QSTR_der, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_decode_seq, + MP_QSTR___init__, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_OP_0, + MP_QSTR_OP_1, + MP_QSTR_SigHashType, + MP_QSTR_ecdsa_hash_pubkey, + MP_QSTR_common, + MP_QSTR_output_script_native_segwit, + MP_QSTR_output_script_p2pkh, + MP_QSTR_output_script_p2sh, + MP_QSTR_parse_input_script_multisig, + MP_QSTR_parse_input_script_p2pkh, + MP_QSTR_parse_output_script_multisig, + MP_QSTR_parse_output_script_p2tr, + MP_QSTR_parse_witness_multisig, + MP_QSTR_parse_witness_p2tr, + MP_QSTR_parse_witness_p2wpkh, + MP_QSTR_write_input_script_p2wpkh_in_p2sh, + MP_QSTR_write_input_script_p2wsh_in_p2sh, + MP_QSTR_scripts, + MP_QSTR_threshold, + MP_QSTR_public_keys, + MP_QSTR_signatures, + MP_QSTR_is_taproot, + MP_QSTR_digest, + MP_QSTR_empty_bytearray, + MP_QSTR_script_hash, + MP_QSTR_ensure_hash_type, + MP_QSTR_verify, + MP_QSTR_verify_bip340, + MP_QSTR_verify_ecdsa, + MP_QSTR_bip340, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_secp256k1, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_der_signature, + MP_QSTR_len, + MP_QSTR_any, + MP_QSTR_ValueError, + MP_QSTR_bytearray, + MP_QSTR_self, + MP_QSTR_script_pubkey, + MP_QSTR_script_sig, + MP_QSTR_witness, + MP_QSTR_coin, + MP_QSTR_sighash_types, + MP_QSTR_Exception, + MP_QSTR__star_, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_verification_0 = {{&mp_type_str}, 22003, 27, (const byte*)"\x53\x69\x67\x6e\x61\x74\x75\x72\x65\x20\x64\x61\x74\x61\x20\x6e\x6f\x74\x20\x70\x72\x6f\x76\x69\x64\x65\x64"}; +static const mp_obj_str_t const_obj_apps_bitcoin_verification_3 = {{&mp_type_str}, 55067, 28, (const byte*)"\x55\x6e\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x73\x69\x67\x6e\x61\x74\x75\x72\x65\x20\x73\x63\x72\x69\x70\x74"}; +static const mp_obj_str_t const_obj_apps_bitcoin_verification_4 = {{&mp_type_bytes}, 46501, 1, (const byte*)"\x00"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_verification[7] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_verification_0), + MP_ROM_QSTR(MP_QSTR_Invalid_space_public_space_key_space_hash), + MP_ROM_QSTR(MP_QSTR_Invalid_space_script_space_hash), + MP_ROM_PTR(&const_obj_apps_bitcoin_verification_3), + MP_ROM_PTR(&const_obj_apps_bitcoin_verification_4), + MP_ROM_QSTR(MP_QSTR_Invalid_space_signature), + MP_ROM_QSTR(MP_QSTR_Unsupported_space_sighash_space_type), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_verification = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_verification, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_verification, + }, + .rc = &raw_code_apps_bitcoin_verification__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_verify_message +// - original source file: build/firmware/src/apps/bitcoin/verify_message.mpy +// - frozen file name: apps/bitcoin/verify_message.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/verify_message.py, scope apps_bitcoin_verify_message__lt_module_gt_ +static const byte fun_data_apps_bitcoin_verify_message__lt_module_gt_[18] = { + 0x00,0x0c, // prelude + 0x01, // names: + 0x40,0x80,0x07,0x84,0x2b, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME '_address_to_script_type' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x1c, // STORE_NAME 'verify_message' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_verify_message__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/verify_message.py, scope apps_bitcoin_verify_message__address_to_script_type +static const byte fun_data_apps_bitcoin_verify_message__address_to_script_type[244] = { + 0x86,0x10,0x3c, // prelude + 0x02,0x30,0x38, // names: _address_to_script_type, address, coin + 0x80,0x0a,0x2b,0x2b,0x2b,0x4b,0x4b,0x6b,0x20,0x2f,0x2d,0x25,0x24,0x25,0x44,0x46,0x40,0x28,0x4d,0x44,0x22,0x53,0x49,0x4b,0x24,0x4b,0x44, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor' + 0x1c,0x03, // IMPORT_FROM 'utils' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'base58' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x05, // IMPORT_FROM 'base58' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'InputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.enums' + 0x1c,0x07, // IMPORT_FROM 'InputScriptType' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.wire' + 0x1c,0x09, // IMPORT_FROM 'DataError' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'address_type' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'apps.common' + 0x1c,0x0b, // IMPORT_FROM 'address_type' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0d, // LOAD_CONST_STRING 'common' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME '' + 0x1c,0x0d, // IMPORT_FROM 'common' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'bech32_prefix' + 0x44,0x6f, // POP_JUMP_IF_FALSE 47 + 0xb0, // LOAD_FAST 0 + 0x14,0x10, // LOAD_METHOD 'startswith' + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'bech32_prefix' + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x65, // POP_JUMP_IF_FALSE 37 + 0xb7, // LOAD_FAST 7 + 0x14,0x11, // LOAD_METHOD 'decode_bech32_address' + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'bech32_prefix' + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc8, // STORE_FAST 8 + 0xc9, // STORE_FAST 9 + 0xb8, // LOAD_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb4, // LOAD_FAST 4 + 0x13,0x12, // LOAD_ATTR 'SPENDWITNESS' + 0x63, // RETURN_VALUE + 0xb8, // LOAD_FAST 8 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb4, // LOAD_FAST 4 + 0x13,0x13, // LOAD_ATTR 'SPENDTAPROOT' + 0x63, // RETURN_VALUE + 0xb5, // LOAD_FAST 5 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x13,0x14, // LOAD_ATTR 'cashaddr_prefix' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb0, // LOAD_FAST 0 + 0x14,0x10, // LOAD_METHOD 'startswith' + 0xb1, // LOAD_FAST 1 + 0x13,0x14, // LOAD_ATTR 'cashaddr_prefix' + 0x10,0x15, // LOAD_CONST_STRING ':' + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb4, // LOAD_FAST 4 + 0x13,0x16, // LOAD_ATTR 'SPENDADDRESS' + 0x63, // RETURN_VALUE + 0x48,0x0c, // SETUP_EXCEPT 12 + 0xb3, // LOAD_FAST 3 + 0x14,0x17, // LOAD_METHOD 'decode_check' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'b58_hash' + 0x36,0x02, // CALL_METHOD 2 + 0xca, // STORE_FAST 10 + 0x4a,0x10, // POP_EXCEPT_JUMP 16 + 0x57, // DUP_TOP + 0x12,0x39, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb6, // LOAD_FAST 6 + 0x14,0x19, // LOAD_METHOD 'check' + 0xb1, // LOAD_FAST 1 + 0x13,0x0b, // LOAD_ATTR 'address_type' + 0xba, // LOAD_FAST 10 + 0x36,0x02, // CALL_METHOD 2 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb4, // LOAD_FAST 4 + 0x13,0x16, // LOAD_ATTR 'SPENDADDRESS' + 0x63, // RETURN_VALUE + 0xb6, // LOAD_FAST 6 + 0x14,0x19, // LOAD_METHOD 'check' + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'address_type_p2sh' + 0xba, // LOAD_FAST 10 + 0x36,0x02, // CALL_METHOD 2 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb4, // LOAD_FAST 4 + 0x13,0x1b, // LOAD_ATTR 'SPENDP2SHWITNESS' + 0x63, // RETURN_VALUE + 0xb5, // LOAD_FAST 5 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_verify_message__address_to_script_type = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_verify_message__address_to_script_type, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 244, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_bitcoin_verify_message__address_to_script_type + 6, + .line_info_top = fun_data_apps_bitcoin_verify_message__address_to_script_type + 33, + .opcodes = fun_data_apps_bitcoin_verify_message__address_to_script_type + 33, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_verify_message__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/verify_message.py, scope apps_bitcoin_verify_message_verify_message +static const byte fun_data_apps_bitcoin_verify_message_verify_message[523] = { + 0xf9,0x50,0x64, // prelude + 0x1c,0x3a, // names: verify_message, msg + 0x80,0x35,0x2b,0x2b,0x2b,0x2b,0x30,0x4b,0x2b,0x50,0x7f,0x60,0x40,0x25,0x25,0x25,0x29,0x49,0x49,0x2a,0x26,0x50,0x23,0x58,0x38,0x58,0x58,0x46,0x4b,0x24,0x46,0x28,0x29,0x29,0x2b,0x28,0x2b,0x28,0x4b,0x46,0x27,0x46,0x21,0x24,0x25,0x71,0x20,0x2b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor' + 0x1c,0x03, // IMPORT_FROM 'utils' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1d, // LOAD_CONST_STRING 'secp256k1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x1d, // IMPORT_FROM 'secp256k1' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'InputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.enums' + 0x1c,0x07, // IMPORT_FROM 'InputScriptType' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1f, // LOAD_CONST_STRING 'Success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x20, // IMPORT_NAME 'trezor.messages' + 0x1c,0x1f, // IMPORT_FROM 'Success' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x21, // LOAD_CONST_STRING 'confirm_signverify' + 0x10,0x22, // LOAD_CONST_STRING 'show_success' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x23, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x21, // IMPORT_FROM 'confirm_signverify' + 0xc5, // STORE_FAST 5 + 0x1c,0x22, // IMPORT_FROM 'show_success' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x24, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.wire' + 0x1c,0x24, // IMPORT_FROM 'ProcessError' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x25, // LOAD_CONST_STRING 'coins' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'apps.common' + 0x1c,0x25, // IMPORT_FROM 'coins' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x26, // LOAD_CONST_STRING 'decode_message' + 0x10,0x27, // LOAD_CONST_STRING 'message_digest' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x28, // IMPORT_NAME 'apps.common.signverify' + 0x1c,0x26, // IMPORT_FROM 'decode_message' + 0xc9, // STORE_FAST 9 + 0x1c,0x27, // IMPORT_FROM 'message_digest' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x29, // LOAD_CONST_STRING 'address_p2wpkh' + 0x10,0x2a, // LOAD_CONST_STRING 'address_p2wpkh_in_p2sh' + 0x10,0x2b, // LOAD_CONST_STRING 'address_pkh' + 0x10,0x2c, // LOAD_CONST_STRING 'address_short' + 0x10,0x2d, // LOAD_CONST_STRING 'address_to_cashaddr' + 0x2a,0x05, // BUILD_TUPLE 5 + 0x1b,0x2e, // IMPORT_NAME 'addresses' + 0x1c,0x29, // IMPORT_FROM 'address_p2wpkh' + 0xcb, // STORE_FAST 11 + 0x1c,0x2a, // IMPORT_FROM 'address_p2wpkh_in_p2sh' + 0xcc, // STORE_FAST 12 + 0x1c,0x2b, // IMPORT_FROM 'address_pkh' + 0xcd, // STORE_FAST 13 + 0x1c,0x2c, // IMPORT_FROM 'address_short' + 0xce, // STORE_FAST 14 + 0x1c,0x2d, // IMPORT_FROM 'address_to_cashaddr' + 0xcf, // STORE_FAST 15 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'message' + 0x26,0x10, // STORE_FAST_N 16 + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'address' + 0x26,0x11, // STORE_FAST_N 17 + 0xb0, // LOAD_FAST 0 + 0x13,0x31, // LOAD_ATTR 'signature' + 0x26,0x12, // STORE_FAST_N 18 + 0xb0, // LOAD_FAST 0 + 0x13,0x32, // LOAD_ATTR 'coin_name' + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x10,0x33, // LOAD_CONST_STRING 'Bitcoin' + 0x26,0x13, // STORE_FAST_N 19 + 0xb8, // LOAD_FAST 8 + 0x14,0x34, // LOAD_METHOD 'by_name' + 0x24,0x13, // LOAD_FAST_N 19 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x14, // STORE_FAST_N 20 + 0xba, // LOAD_FAST 10 + 0x24,0x14, // LOAD_FAST_N 20 + 0x24,0x10, // LOAD_FAST_N 16 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x15, // STORE_FAST_N 21 + 0x12,0x02, // LOAD_GLOBAL '_address_to_script_type' + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x14, // LOAD_FAST_N 20 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x16, // STORE_FAST_N 22 + 0x24,0x12, // LOAD_FAST_N 18 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x26,0x17, // STORE_FAST_N 23 + 0x9b, // LOAD_CONST_SMALL_INT 27 + 0x24,0x17, // LOAD_FAST_N 23 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x04, // JUMP_IF_FALSE_OR_POP 4 + 0xa2, // LOAD_CONST_SMALL_INT 34 + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x42,0xe6,0x80, // JUMP 102 + 0xa3, // LOAD_CONST_SMALL_INT 35 + 0x24,0x17, // LOAD_FAST_N 23 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x04, // JUMP_IF_FALSE_OR_POP 4 + 0xa6, // LOAD_CONST_SMALL_INT 38 + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0x24,0x16, // LOAD_FAST_N 22 + 0xb3, // LOAD_FAST 3 + 0x13,0x1b, // LOAD_ATTR 'SPENDP2SHWITNESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0x12,0x3b, // LOAD_GLOBAL 'bytes' + 0x24,0x12, // LOAD_FAST_N 18 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xf3, // BINARY_OP 28 __sub__ + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x24,0x12, // LOAD_FAST_N 18 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xf2, // BINARY_OP 27 __add__ + 0x26,0x12, // STORE_FAST_N 18 + 0x42,0x76, // JUMP 54 + 0xa7, // LOAD_CONST_SMALL_INT 39 + 0x24,0x17, // LOAD_FAST_N 23 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x04, // JUMP_IF_FALSE_OR_POP 4 + 0xaa, // LOAD_CONST_SMALL_INT 42 + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0x24,0x16, // LOAD_FAST_N 22 + 0xb3, // LOAD_FAST 3 + 0x13,0x12, // LOAD_ATTR 'SPENDWITNESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0x12,0x3b, // LOAD_GLOBAL 'bytes' + 0x24,0x12, // LOAD_FAST_N 18 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf3, // BINARY_OP 28 __sub__ + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x24,0x12, // LOAD_FAST_N 18 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xf2, // BINARY_OP 27 __add__ + 0x26,0x12, // STORE_FAST_N 18 + 0x42,0x46, // JUMP 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x14,0x35, // LOAD_METHOD 'verify_recover' + 0x24,0x12, // LOAD_FAST_N 18 + 0x24,0x15, // LOAD_FAST_N 21 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x18, // STORE_FAST_N 24 + 0x24,0x18, // LOAD_FAST_N 24 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x16, // LOAD_FAST_N 22 + 0xb3, // LOAD_FAST 3 + 0x13,0x16, // LOAD_ATTR 'SPENDADDRESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5d, // POP_JUMP_IF_FALSE 29 + 0xbd, // LOAD_FAST 13 + 0x24,0x18, // LOAD_FAST_N 24 + 0x24,0x14, // LOAD_FAST_N 20 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x19, // STORE_FAST_N 25 + 0x24,0x14, // LOAD_FAST_N 20 + 0x13,0x14, // LOAD_ATTR 'cashaddr_prefix' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xbf, // LOAD_FAST 15 + 0x24,0x19, // LOAD_FAST_N 25 + 0x24,0x14, // LOAD_FAST_N 20 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x19, // STORE_FAST_N 25 + 0x42,0x6c, // JUMP 44 + 0x24,0x16, // LOAD_FAST_N 22 + 0xb3, // LOAD_FAST 3 + 0x13,0x1b, // LOAD_ATTR 'SPENDP2SHWITNESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xbc, // LOAD_FAST 12 + 0x24,0x18, // LOAD_FAST_N 24 + 0x24,0x14, // LOAD_FAST_N 20 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x19, // STORE_FAST_N 25 + 0x42,0x59, // JUMP 25 + 0x24,0x16, // LOAD_FAST_N 22 + 0xb3, // LOAD_FAST 3 + 0x13,0x12, // LOAD_ATTR 'SPENDWITNESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xbb, // LOAD_FAST 11 + 0x24,0x18, // LOAD_FAST_N 24 + 0x24,0x14, // LOAD_FAST_N 20 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x19, // STORE_FAST_N 25 + 0x42,0x46, // JUMP 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x19, // LOAD_FAST_N 25 + 0x24,0x11, // LOAD_FAST_N 17 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb7, // LOAD_FAST 7 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0x24,0x14, // LOAD_FAST_N 20 + 0x13,0x36, // LOAD_ATTR 'coin_shortcut' + 0xb9, // LOAD_FAST 9 + 0x24,0x10, // LOAD_FAST_N 16 + 0x34,0x01, // CALL_FUNCTION 1 + 0xbe, // LOAD_FAST 14 + 0x24,0x14, // LOAD_FAST_N 20 + 0x24,0x11, // LOAD_FAST_N 17 + 0x34,0x02, // CALL_FUNCTION 2 + 0x10,0x37, // LOAD_CONST_STRING 'verify' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x10,0x1c, // LOAD_CONST_STRING 'verify_message' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x10,0x2f, // LOAD_CONST_STRING 'message' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_verify_message_verify_message = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_verify_message_verify_message, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 523, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 32, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_apps_bitcoin_verify_message_verify_message + 5, + .line_info_top = fun_data_apps_bitcoin_verify_message_verify_message + 53, + .opcodes = fun_data_apps_bitcoin_verify_message_verify_message + 53, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_verify_message__lt_module_gt_[] = { + &raw_code_apps_bitcoin_verify_message__address_to_script_type, + &raw_code_apps_bitcoin_verify_message_verify_message, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_verify_message__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_verify_message__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = (void *)&children_apps_bitcoin_verify_message__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_verify_message__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_verify_message__lt_module_gt_ + 8, + .opcodes = fun_data_apps_bitcoin_verify_message__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_verify_message[60] = { + MP_QSTR_apps_slash_bitcoin_slash_verify_message_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR__address_to_script_type, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_base58, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_InputScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_address_type, + MP_QSTR_apps_dot_common, + MP_QSTR_common, + MP_QSTR_, + MP_QSTR_bech32_prefix, + MP_QSTR_startswith, + MP_QSTR_decode_bech32_address, + MP_QSTR_SPENDWITNESS, + MP_QSTR_SPENDTAPROOT, + MP_QSTR_cashaddr_prefix, + MP_QSTR__colon_, + MP_QSTR_SPENDADDRESS, + MP_QSTR_decode_check, + MP_QSTR_b58_hash, + MP_QSTR_check, + MP_QSTR_address_type_p2sh, + MP_QSTR_SPENDP2SHWITNESS, + MP_QSTR_verify_message, + MP_QSTR_secp256k1, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_Success, + MP_QSTR_trezor_dot_messages, + MP_QSTR_confirm_signverify, + MP_QSTR_show_success, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_ProcessError, + MP_QSTR_coins, + MP_QSTR_decode_message, + MP_QSTR_message_digest, + MP_QSTR_apps_dot_common_dot_signverify, + MP_QSTR_address_p2wpkh, + MP_QSTR_address_p2wpkh_in_p2sh, + MP_QSTR_address_pkh, + MP_QSTR_address_short, + MP_QSTR_address_to_cashaddr, + MP_QSTR_addresses, + MP_QSTR_message, + MP_QSTR_address, + MP_QSTR_signature, + MP_QSTR_coin_name, + MP_QSTR_Bitcoin, + MP_QSTR_by_name, + MP_QSTR_verify_recover, + MP_QSTR_coin_shortcut, + MP_QSTR_verify, + MP_QSTR_coin, + MP_QSTR_ValueError, + MP_QSTR_msg, + MP_QSTR_bytes, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_verify_message[4] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_address), + MP_ROM_QSTR(MP_QSTR_Invalid_space_signature), + MP_ROM_QSTR(MP_QSTR_The_space_signature_space_is_space_valid_dot_), + MP_ROM_QSTR(MP_QSTR_Message_space_verified), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_verify_message = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_verify_message, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_verify_message, + }, + .rc = &raw_code_apps_bitcoin_verify_message__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_writers +// - original source file: build/firmware/src/apps/bitcoin/writers.mpy +// - frozen file name: apps/bitcoin/writers.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/writers.py, scope apps_bitcoin_writers__lt_module_gt_ +static const byte fun_data_apps_bitcoin_writers__lt_module_gt_[155] = { + 0x40,0x32, // prelude + 0x01, // names: + 0x6c,0x4c,0x1f,0x77,0x80,0x08,0x60,0x60,0x24,0x24,0x44,0x63,0x64,0x40,0x84,0x07,0x84,0x15,0x64,0x40,0x84,0x15,0x84,0x0c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'ensure' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.utils' + 0x1c,0x04, // IMPORT_FROM 'ensure' + 0x16,0x04, // STORE_NAME 'ensure' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'write_bytes_fixed' + 0x10,0x07, // LOAD_CONST_STRING 'write_bytes_reversed' + 0x10,0x08, // LOAD_CONST_STRING 'write_bytes_unchecked' + 0x10,0x09, // LOAD_CONST_STRING 'write_compact_size' + 0x10,0x0a, // LOAD_CONST_STRING 'write_uint8' + 0x10,0x0b, // LOAD_CONST_STRING 'write_uint16_le' + 0x10,0x0c, // LOAD_CONST_STRING 'write_uint32_le' + 0x10,0x0d, // LOAD_CONST_STRING 'write_uint64_le' + 0x2a,0x08, // BUILD_TUPLE 8 + 0x1b,0x0e, // IMPORT_NAME 'apps.common.writers' + 0x1c,0x06, // IMPORT_FROM 'write_bytes_fixed' + 0x16,0x06, // STORE_NAME 'write_bytes_fixed' + 0x1c,0x07, // IMPORT_FROM 'write_bytes_reversed' + 0x16,0x07, // STORE_NAME 'write_bytes_reversed' + 0x1c,0x08, // IMPORT_FROM 'write_bytes_unchecked' + 0x16,0x08, // STORE_NAME 'write_bytes_unchecked' + 0x1c,0x09, // IMPORT_FROM 'write_compact_size' + 0x16,0x09, // STORE_NAME 'write_compact_size' + 0x1c,0x0a, // IMPORT_FROM 'write_uint8' + 0x16,0x0a, // STORE_NAME 'write_uint8' + 0x1c,0x0b, // IMPORT_FROM 'write_uint16_le' + 0x16,0x0b, // STORE_NAME 'write_uint16_le' + 0x1c,0x0c, // IMPORT_FROM 'write_uint32_le' + 0x16,0x0c, // STORE_NAME 'write_uint32_le' + 0x1c,0x0d, // IMPORT_FROM 'write_uint64_le' + 0x16,0x0d, // STORE_NAME 'write_uint64_le' + 0x59, // POP_TOP + 0x11,0x0b, // LOAD_NAME 'write_uint16_le' + 0x16,0x29, // STORE_NAME 'write_uint16' + 0x11,0x0c, // LOAD_NAME 'write_uint32_le' + 0x16,0x2a, // STORE_NAME 'write_uint32' + 0x11,0x0d, // LOAD_NAME 'write_uint64_le' + 0x16,0x2b, // STORE_NAME 'write_uint64' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x16,0x2c, // STORE_NAME 'TX_HASH_SIZE' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0f, // STORE_NAME 'write_bytes_prefixed' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x10, // STORE_NAME 'write_tx_input' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x14, // STORE_NAME 'write_tx_input_check' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x20, // STORE_NAME 'write_tx_output' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x21, // STORE_NAME 'write_op_push' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x23, // STORE_NAME 'op_push_length' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x06, // MAKE_FUNCTION_DEFARGS 6 + 0x16,0x24, // STORE_NAME 'get_tx_hash' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_writers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/writers.py, scope apps_bitcoin_writers_write_bytes_prefixed +static const byte fun_data_apps_bitcoin_writers_write_bytes_prefixed[28] = { + 0x2a,0x0c, // prelude + 0x0f,0x2d,0x2e, // names: write_bytes_prefixed, w, b + 0x80,0x1e,0x2b, // code info + 0x12,0x09, // LOAD_GLOBAL 'write_compact_size' + 0xb0, // LOAD_FAST 0 + 0x12,0x2f, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'write_bytes_unchecked' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_writers_write_bytes_prefixed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_writers_write_bytes_prefixed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_bitcoin_writers_write_bytes_prefixed + 5, + .line_info_top = fun_data_apps_bitcoin_writers_write_bytes_prefixed + 8, + .opcodes = fun_data_apps_bitcoin_writers_write_bytes_prefixed + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_writers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/writers.py, scope apps_bitcoin_writers_write_tx_input +static const byte fun_data_apps_bitcoin_writers_write_tx_input[48] = { + 0x33,0x12, // prelude + 0x10,0x2d,0x30,0x31, // names: write_tx_input, w, i, script + 0x80,0x23,0x2a,0x29,0x27, // code info + 0x12,0x07, // LOAD_GLOBAL 'write_bytes_reversed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x11, // LOAD_ATTR 'prev_hash' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x2a, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x12, // LOAD_ATTR 'prev_index' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x2a, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x13, // LOAD_ATTR 'sequence' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_writers_write_tx_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_writers_write_tx_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_bitcoin_writers_write_tx_input + 6, + .line_info_top = fun_data_apps_bitcoin_writers_write_tx_input + 11, + .opcodes = fun_data_apps_bitcoin_writers_write_tx_input + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_writers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/writers.py, scope apps_bitcoin_writers_write_tx_input_check +static const byte fun_data_apps_bitcoin_writers_write_tx_input_check[214] = { + 0x5a,0x2a, // prelude + 0x14,0x2d,0x30, // names: write_tx_input_check, w, i + 0x80,0x2a,0x4b,0x2d,0x27,0x29,0x2a,0x29,0x2d,0x29,0x29,0x30,0x27,0x2c,0x2d,0x2d,0x2d,0x2c, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x15, // LOAD_CONST_STRING 'multisig_fingerprint' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x16, // IMPORT_NAME 'multisig' + 0x1c,0x15, // IMPORT_FROM 'multisig_fingerprint' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x2a, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0x12,0x2f, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x17, // LOAD_ATTR 'address_n' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x17, // LOAD_ATTR 'address_n' + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc3, // STORE_FAST 3 + 0x12,0x2a, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x12,0x06, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x11, // LOAD_ATTR 'prev_hash' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x2a, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x12, // LOAD_ATTR 'prev_index' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'script_sig' + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x2a, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x13, // LOAD_ATTR 'sequence' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x2a, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'script_type' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'multisig' + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'multisig' + 0x34,0x01, // CALL_FUNCTION 1 + 0x42,0x42, // JUMP 2 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xc4, // STORE_FAST 4 + 0x12,0x0f, // LOAD_GLOBAL 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x2b, // LOAD_GLOBAL 'write_uint64' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'amount' + 0x45,0x01, // JUMP_IF_TRUE_OR_POP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'witness' + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1c, // LOAD_ATTR 'ownership_proof' + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1d, // LOAD_ATTR 'orig_hash' + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x2a, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1e, // LOAD_ATTR 'orig_index' + 0x45,0x01, // JUMP_IF_TRUE_OR_POP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1f, // LOAD_ATTR 'script_pubkey' + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_writers_write_tx_input_check = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_writers_write_tx_input_check, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 214, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_apps_bitcoin_writers_write_tx_input_check + 5, + .line_info_top = fun_data_apps_bitcoin_writers_write_tx_input_check + 23, + .opcodes = fun_data_apps_bitcoin_writers_write_tx_input_check + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_writers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/writers.py, scope apps_bitcoin_writers_write_tx_output +static const byte fun_data_apps_bitcoin_writers_write_tx_output[27] = { + 0x2b,0x0e, // prelude + 0x20,0x2d,0x32,0x1f, // names: write_tx_output, w, o, script_pubkey + 0x80,0x3f,0x29, // code info + 0x12,0x2b, // LOAD_GLOBAL 'write_uint64' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'amount' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_writers_write_tx_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_writers_write_tx_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_bitcoin_writers_write_tx_output + 6, + .line_info_top = fun_data_apps_bitcoin_writers_write_tx_output + 9, + .opcodes = fun_data_apps_bitcoin_writers_write_tx_output + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_writers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/writers.py, scope apps_bitcoin_writers_write_op_push +static const byte fun_data_apps_bitcoin_writers_write_op_push[178] = { + 0x32,0x28, // prelude + 0x21,0x2d,0x33, // names: write_op_push, w, n + 0x80,0x44,0x44,0x33,0x27,0x2c,0x27,0x27,0x2c,0x28,0x27,0x29,0x4d,0x27,0x29,0x2b,0x2b, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'append' + 0xc2, // STORE_FAST 2 + 0x12,0x04, // LOAD_GLOBAL 'ensure' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x05, // JUMP_IF_FALSE_OR_POP 5 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x22,0x80,0x4c, // LOAD_CONST_SMALL_INT 76 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xef, // BINARY_OP 24 __and__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0xf0,0x80, // JUMP 112 + 0xb1, // LOAD_FAST 1 + 0x22,0x82,0x00, // LOAD_CONST_SMALL_INT 256 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xb2, // LOAD_FAST 2 + 0x22,0x80,0x4c, // LOAD_CONST_SMALL_INT 76 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xef, // BINARY_OP 24 __and__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0xd6,0x80, // JUMP 86 + 0xb1, // LOAD_FAST 1 + 0x22,0x84,0x80,0x00, // LOAD_CONST_SMALL_INT 65536 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x5d, // POP_JUMP_IF_FALSE 29 + 0xb2, // LOAD_FAST 2 + 0x22,0x80,0x4d, // LOAD_CONST_SMALL_INT 77 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xef, // BINARY_OP 24 __and__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf1, // BINARY_OP 26 __rshift__ + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xef, // BINARY_OP 24 __and__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x71, // JUMP 49 + 0xb2, // LOAD_FAST 2 + 0x22,0x80,0x4e, // LOAD_CONST_SMALL_INT 78 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xef, // BINARY_OP 24 __and__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf1, // BINARY_OP 26 __rshift__ + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xef, // BINARY_OP 24 __and__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xf1, // BINARY_OP 26 __rshift__ + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xef, // BINARY_OP 24 __and__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x98, // LOAD_CONST_SMALL_INT 24 + 0xf1, // BINARY_OP 26 __rshift__ + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xef, // BINARY_OP 24 __and__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_writers_write_op_push = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_writers_write_op_push, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 178, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_bitcoin_writers_write_op_push + 5, + .line_info_top = fun_data_apps_bitcoin_writers_write_op_push + 22, + .opcodes = fun_data_apps_bitcoin_writers_write_op_push + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_writers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/writers.py, scope apps_bitcoin_writers_op_push_length +static const byte fun_data_apps_bitcoin_writers_op_push_length[64] = { + 0x21,0x16, // prelude + 0x23,0x33, // names: op_push_length, n + 0x80,0x59,0x33,0x27,0x22,0x27,0x22,0x28,0x42, // code info + 0x12,0x04, // LOAD_GLOBAL 'ensure' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x05, // JUMP_IF_FALSE_OR_POP 5 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x22,0x80,0x4c, // LOAD_CONST_SMALL_INT 76 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x22,0x82,0x00, // LOAD_CONST_SMALL_INT 256 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x22,0x84,0x80,0x00, // LOAD_CONST_SMALL_INT 65536 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x63, // RETURN_VALUE + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_writers_op_push_length = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_writers_op_push_length, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 64, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_bitcoin_writers_op_push_length + 4, + .line_info_top = fun_data_apps_bitcoin_writers_op_push_length + 13, + .opcodes = fun_data_apps_bitcoin_writers_op_push_length + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_writers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/writers.py, scope apps_bitcoin_writers_get_tx_hash +static const byte fun_data_apps_bitcoin_writers_get_tx_hash[60] = { + 0xbb,0x80,0x01,0x18, // prelude + 0x24,0x2d,0x34,0x35, // names: get_tx_hash, w, double, reverse + 0x80,0x65,0x4b,0x26,0x23,0x29,0x23,0x2a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x25, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x26, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x25, // IMPORT_FROM 'sha256' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x27, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x28, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x36, // LOAD_GLOBAL 'bytes' + 0x12,0x37, // LOAD_GLOBAL 'reversed' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_writers_get_tx_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_writers_get_tx_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 60, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_bitcoin_writers_get_tx_hash + 8, + .line_info_top = fun_data_apps_bitcoin_writers_get_tx_hash + 16, + .opcodes = fun_data_apps_bitcoin_writers_get_tx_hash + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_writers__lt_module_gt_[] = { + &raw_code_apps_bitcoin_writers_write_bytes_prefixed, + &raw_code_apps_bitcoin_writers_write_tx_input, + &raw_code_apps_bitcoin_writers_write_tx_input_check, + &raw_code_apps_bitcoin_writers_write_tx_output, + &raw_code_apps_bitcoin_writers_write_op_push, + &raw_code_apps_bitcoin_writers_op_push_length, + &raw_code_apps_bitcoin_writers_get_tx_hash, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_writers__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_writers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 155, + #endif + .children = (void *)&children_apps_bitcoin_writers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 7, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_writers__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_writers__lt_module_gt_ + 27, + .opcodes = fun_data_apps_bitcoin_writers__lt_module_gt_ + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_writers[56] = { + MP_QSTR_apps_slash_bitcoin_slash_writers_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_ensure, + MP_QSTR_trezor_dot_utils, + MP_QSTR_write_bytes_fixed, + MP_QSTR_write_bytes_reversed, + MP_QSTR_write_bytes_unchecked, + MP_QSTR_write_compact_size, + MP_QSTR_write_uint8, + MP_QSTR_write_uint16_le, + MP_QSTR_write_uint32_le, + MP_QSTR_write_uint64_le, + MP_QSTR_apps_dot_common_dot_writers, + MP_QSTR_write_bytes_prefixed, + MP_QSTR_write_tx_input, + MP_QSTR_prev_hash, + MP_QSTR_prev_index, + MP_QSTR_sequence, + MP_QSTR_write_tx_input_check, + MP_QSTR_multisig_fingerprint, + MP_QSTR_multisig, + MP_QSTR_address_n, + MP_QSTR_script_sig, + MP_QSTR_script_type, + MP_QSTR_amount, + MP_QSTR_witness, + MP_QSTR_ownership_proof, + MP_QSTR_orig_hash, + MP_QSTR_orig_index, + MP_QSTR_script_pubkey, + MP_QSTR_write_tx_output, + MP_QSTR_write_op_push, + MP_QSTR_append, + MP_QSTR_op_push_length, + MP_QSTR_get_tx_hash, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_get_digest, + MP_QSTR_digest, + MP_QSTR_write_uint16, + MP_QSTR_write_uint32, + MP_QSTR_write_uint64, + MP_QSTR_TX_HASH_SIZE, + MP_QSTR_w, + MP_QSTR_b, + MP_QSTR_len, + MP_QSTR_i, + MP_QSTR_script, + MP_QSTR_o, + MP_QSTR_n, + MP_QSTR_double, + MP_QSTR_reverse, + MP_QSTR_bytes, + MP_QSTR_reversed, +}; + +// constants +static const mp_obj_int_t const_obj_apps_bitcoin_writers_1 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xffff,0xffff}}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_writers[2] = { + MP_ROM_PTR(&mp_const_empty_bytes_obj), + MP_ROM_PTR(&const_obj_apps_bitcoin_writers_1), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_writers = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_writers, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_writers, + }, + .rc = &raw_code_apps_bitcoin_writers__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_sign_tx___init__ +// - original source file: build/firmware/src/apps/bitcoin/sign_tx/__init__.mpy +// - frozen file name: apps/bitcoin/sign_tx/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/sign_tx/__init__.py, scope apps_bitcoin_sign_tx___init____lt_module_gt_ +static const byte fun_data_apps_bitcoin_sign_tx___init____lt_module_gt_[46] = { + 0x10,0x0c, // prelude + 0x01, // names: + 0x40,0x4c,0x4c,0x80,0x2b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'utils' + 0x16,0x02, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x04, // LOAD_CONST_STRING 'with_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'keychain' + 0x1c,0x04, // IMPORT_FROM 'with_keychain' + 0x16,0x04, // STORE_NAME 'with_keychain' + 0x59, // POP_TOP + 0x11,0x04, // LOAD_NAME 'with_keychain' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x06, // STORE_NAME 'sign_tx' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx___init____lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/__init__.py, scope apps_bitcoin_sign_tx___init___sign_tx +static const byte fun_data_apps_bitcoin_sign_tx___init___sign_tx[343] = { + 0xd0,0x55,0x52, // prelude + 0x06,0x28,0x05,0x29,0x2a, // names: sign_tx, msg, keychain, coin, authorization + 0x80,0x38,0x2b,0x2b,0x4b,0x2b,0x5a,0x22,0x23,0x49,0x27,0x47,0x25,0x4b,0x27,0x25,0x27,0x4b,0x44,0x4c,0x47,0x4c,0x45,0x4d,0x23,0x20,0x2a,0x2a,0x28,0x20,0x2a,0x23,0x2e,0x2b,0x2b,0x4a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'RequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.enums' + 0x1c,0x07, // IMPORT_FROM 'RequestType' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'TxRequest' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.messages' + 0x1c,0x09, // IMPORT_FROM 'TxRequest' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'call' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x0b, // IMPORT_FROM 'call' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x0d, // LOAD_CONST_STRING 'BITCOIN_NAMES' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'common' + 0x1c,0x0d, // IMPORT_FROM 'BITCOIN_NAMES' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0f, // LOAD_CONST_STRING 'approvers' + 0x10,0x10, // LOAD_CONST_STRING 'bitcoin' + 0x10,0x11, // LOAD_CONST_STRING 'helpers' + 0x10,0x12, // LOAD_CONST_STRING 'progress' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x13, // IMPORT_NAME '' + 0x1c,0x0f, // IMPORT_FROM 'approvers' + 0xc8, // STORE_FAST 8 + 0x1c,0x10, // IMPORT_FROM 'bitcoin' + 0xc9, // STORE_FAST 9 + 0x1c,0x11, // IMPORT_FROM 'helpers' + 0xca, // STORE_FAST 10 + 0x1c,0x12, // IMPORT_FROM 'progress' + 0xcb, // STORE_FAST 11 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xcc, // STORE_FAST 12 + 0xb3, // LOAD_FAST 3 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb8, // LOAD_FAST 8 + 0x14,0x14, // LOAD_METHOD 'CoinJoinApprover' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0xcc, // STORE_FAST 12 + 0xb2, // LOAD_FAST 2 + 0x13,0x15, // LOAD_ATTR 'coin_name' + 0xb7, // LOAD_FAST 7 + 0xdd, // BINARY_OP 6 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb9, // LOAD_FAST 9 + 0x13,0x16, // LOAD_ATTR 'Bitcoin' + 0xcd, // STORE_FAST 13 + 0x42,0xd6,0x80, // JUMP 86 + 0xb2, // LOAD_FAST 2 + 0x13,0x17, // LOAD_ATTR 'decred' + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x17, // LOAD_CONST_STRING 'decred' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME '' + 0x1c,0x17, // IMPORT_FROM 'decred' + 0xce, // STORE_FAST 14 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x13,0x18, // LOAD_ATTR 'Decred' + 0xcd, // STORE_FAST 13 + 0x42,0xbf,0x80, // JUMP 63 + 0xb2, // LOAD_FAST 2 + 0x13,0x19, // LOAD_ATTR 'overwintered' + 0x44,0x69, // POP_JUMP_IF_FALSE 41 + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'version' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1b, // LOAD_CONST_STRING 'Zcash' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1c, // IMPORT_NAME 'apps.zcash.signer' + 0x1c,0x1b, // IMPORT_FROM 'Zcash' + 0xcf, // STORE_FAST 15 + 0x59, // POP_TOP + 0xbf, // LOAD_FAST 15 + 0xcd, // STORE_FAST 13 + 0x42,0x51, // JUMP 17 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1d, // LOAD_CONST_STRING 'zcash_v4' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME '' + 0x1c,0x1d, // IMPORT_FROM 'zcash_v4' + 0x26,0x10, // STORE_FAST_N 16 + 0x59, // POP_TOP + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x1e, // LOAD_ATTR 'ZcashV4' + 0xcd, // STORE_FAST 13 + 0x42,0x51, // JUMP 17 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1f, // LOAD_CONST_STRING 'bitcoinlike' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME '' + 0x1c,0x1f, // IMPORT_FROM 'bitcoinlike' + 0x26,0x11, // STORE_FAST_N 17 + 0x59, // POP_TOP + 0x24,0x11, // LOAD_FAST_N 17 + 0x13,0x20, // LOAD_ATTR 'Bitcoinlike' + 0xcd, // STORE_FAST 13 + 0xbd, // LOAD_FAST 13 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xbc, // LOAD_FAST 12 + 0x34,0x04, // CALL_FUNCTION 4 + 0x14,0x21, // LOAD_METHOD 'signer' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x12, // STORE_FAST_N 18 + 0x51, // LOAD_CONST_NONE + 0x26,0x13, // STORE_FAST_N 19 + 0x24,0x12, // LOAD_FAST_N 18 + 0x14,0x22, // LOAD_METHOD 'send' + 0x24,0x13, // LOAD_FAST_N 19 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x14, // STORE_FAST_N 20 + 0x12,0x2b, // LOAD_GLOBAL 'isinstance' + 0x24,0x14, // LOAD_FAST_N 20 + 0x12,0x2c, // LOAD_GLOBAL 'tuple' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x63, // POP_JUMP_IF_FALSE 35 + 0x24,0x14, // LOAD_FAST_N 20 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0x26,0x15, // STORE_FAST_N 21 + 0x26,0x14, // STORE_FAST_N 20 + 0x24,0x14, // LOAD_FAST_N 20 + 0x13,0x23, // LOAD_ATTR 'request_type' + 0xb4, // LOAD_FAST 4 + 0x13,0x24, // LOAD_ATTR 'TXFINISHED' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x24,0x14, // LOAD_FAST_N 20 + 0x63, // RETURN_VALUE + 0xb6, // LOAD_FAST 6 + 0x24,0x14, // LOAD_FAST_N 20 + 0x24,0x15, // LOAD_FAST_N 21 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x13, // STORE_FAST_N 19 + 0x42,0x67, // JUMP 39 + 0x12,0x2b, // LOAD_GLOBAL 'isinstance' + 0x24,0x14, // LOAD_FAST_N 20 + 0xba, // LOAD_FAST 10 + 0x13,0x25, // LOAD_ATTR 'UiConfirm' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x24,0x14, // LOAD_FAST_N 20 + 0x14,0x26, // LOAD_METHOD 'confirm_dialog' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x13, // STORE_FAST_N 19 + 0xbb, // LOAD_FAST 11 + 0x13,0x12, // LOAD_ATTR 'progress' + 0x14,0x27, // LOAD_METHOD 'report_init' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0x12,0x2d, // LOAD_GLOBAL 'TypeError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x9f,0x7f, // JUMP -97 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx___init___sign_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx___init___sign_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 343, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 27, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_bitcoin_sign_tx___init___sign_tx + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx___init___sign_tx + 44, + .opcodes = fun_data_apps_bitcoin_sign_tx___init___sign_tx + 44, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx___init____lt_module_gt_[] = { + &raw_code_apps_bitcoin_sign_tx___init___sign_tx, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_sign_tx___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx___init____lt_module_gt_ + 8, + .opcodes = fun_data_apps_bitcoin_sign_tx___init____lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_sign_tx___init__[46] = { + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_with_keychain, + MP_QSTR_keychain, + MP_QSTR_sign_tx, + MP_QSTR_RequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_TxRequest, + MP_QSTR_trezor_dot_messages, + MP_QSTR_call, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_BITCOIN_NAMES, + MP_QSTR_common, + MP_QSTR_approvers, + MP_QSTR_bitcoin, + MP_QSTR_helpers, + MP_QSTR_progress, + MP_QSTR_, + MP_QSTR_CoinJoinApprover, + MP_QSTR_coin_name, + MP_QSTR_Bitcoin, + MP_QSTR_decred, + MP_QSTR_Decred, + MP_QSTR_overwintered, + MP_QSTR_version, + MP_QSTR_Zcash, + MP_QSTR_apps_dot_zcash_dot_signer, + MP_QSTR_zcash_v4, + MP_QSTR_ZcashV4, + MP_QSTR_bitcoinlike, + MP_QSTR_Bitcoinlike, + MP_QSTR_signer, + MP_QSTR_send, + MP_QSTR_request_type, + MP_QSTR_TXFINISHED, + MP_QSTR_UiConfirm, + MP_QSTR_confirm_dialog, + MP_QSTR_report_init, + MP_QSTR_msg, + MP_QSTR_coin, + MP_QSTR_authorization, + MP_QSTR_isinstance, + MP_QSTR_tuple, + MP_QSTR_TypeError, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx___init___0 = {{&mp_type_str}, 46687, 27, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x73\x69\x67\x6e\x69\x6e\x67\x20\x69\x6e\x73\x74\x72\x75\x63\x74\x69\x6f\x6e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_sign_tx___init__[1] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx___init___0), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_sign_tx___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_sign_tx___init__, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_sign_tx___init__, + }, + .rc = &raw_code_apps_bitcoin_sign_tx___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_sign_tx_approvers +// - original source file: build/firmware/src/apps/bitcoin/sign_tx/approvers.mpy +// - frozen file name: apps/bitcoin/sign_tx/approvers.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers__lt_module_gt_ +static const byte fun_data_apps_bitcoin_sign_tx_approvers__lt_module_gt_[222] = { + 0x18,0x26, // prelude + 0x01, // names: + 0x6c,0x32,0x2c,0x2c,0x52,0x4c,0x2c,0x2c,0x32,0x32,0x2c,0x4c,0x80,0x10,0x89,0x69,0x8b,0xee, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'bip340' + 0x10,0x05, // LOAD_CONST_STRING 'secp256k1' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x06, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x04, // IMPORT_FROM 'bip340' + 0x16,0x04, // STORE_NAME 'bip340' + 0x1c,0x05, // IMPORT_FROM 'secp256k1' + 0x16,0x05, // STORE_NAME 'secp256k1' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x07, // IMPORT_FROM 'sha256' + 0x16,0x07, // STORE_NAME 'sha256' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'HashWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.utils' + 0x1c,0x09, // IMPORT_FROM 'HashWriter' + 0x16,0x09, // STORE_NAME 'HashWriter' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'DataError' + 0x10,0x0c, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0d, // IMPORT_NAME 'trezor.wire' + 0x1c,0x0b, // IMPORT_FROM 'DataError' + 0x16,0x0b, // STORE_NAME 'DataError' + 0x1c,0x0c, // IMPORT_FROM 'ProcessError' + 0x16,0x0c, // STORE_NAME 'ProcessError' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'safety_checks' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'apps.common' + 0x1c,0x0e, // IMPORT_FROM 'safety_checks' + 0x16,0x0e, // STORE_NAME 'safety_checks' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x10, // LOAD_CONST_STRING 'writers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME '' + 0x1c,0x10, // IMPORT_FROM 'writers' + 0x16,0x10, // STORE_NAME 'writers' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x12, // LOAD_CONST_STRING 'input_is_external_unverified' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME 'common' + 0x1c,0x12, // IMPORT_FROM 'input_is_external_unverified' + 0x16,0x12, // STORE_NAME 'input_is_external_unverified' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x14, // LOAD_CONST_STRING 'SLIP44_TESTNET' + 0x10,0x15, // LOAD_CONST_STRING 'validate_path_against_script_type' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x16, // IMPORT_NAME 'keychain' + 0x1c,0x14, // IMPORT_FROM 'SLIP44_TESTNET' + 0x16,0x14, // STORE_NAME 'SLIP44_TESTNET' + 0x1c,0x15, // IMPORT_FROM 'validate_path_against_script_type' + 0x16,0x15, // STORE_NAME 'validate_path_against_script_type' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x17, // LOAD_CONST_STRING 'helpers' + 0x10,0x18, // LOAD_CONST_STRING 'tx_weight' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x11, // IMPORT_NAME '' + 0x1c,0x17, // IMPORT_FROM 'helpers' + 0x16,0x17, // STORE_NAME 'helpers' + 0x1c,0x18, // IMPORT_FROM 'tx_weight' + 0x16,0x18, // STORE_NAME 'tx_weight' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x19, // LOAD_CONST_STRING 'BitcoinSigHasher' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1a, // IMPORT_NAME 'sig_hasher' + 0x1c,0x19, // IMPORT_FROM 'BitcoinSigHasher' + 0x16,0x19, // STORE_NAME 'BitcoinSigHasher' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1b, // LOAD_CONST_STRING 'OriginalTxInfo' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1c, // IMPORT_NAME 'tx_info' + 0x1c,0x1b, // IMPORT_FROM 'OriginalTxInfo' + 0x16,0x1b, // STORE_NAME 'OriginalTxInfo' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x1d, // LOAD_CONST_STRING 'Approver' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x1d, // STORE_NAME 'Approver' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x1e, // LOAD_CONST_STRING 'BasicApprover' + 0x11,0x1d, // LOAD_NAME 'Approver' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x1e, // STORE_NAME 'BasicApprover' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x02, // MAKE_FUNCTION 2 + 0x10,0x1f, // LOAD_CONST_STRING 'CoinJoinApprover' + 0x11,0x1d, // LOAD_NAME 'Approver' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x1f, // STORE_NAME 'CoinJoinApprover' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_approvers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_Approver +static const byte fun_data_apps_bitcoin_sign_tx_approvers_Approver[107] = { + 0x08,0x38, // prelude + 0x1d, // names: Approver + 0x8b,0x22,0x84,0x18,0x64,0x60,0x64,0x60,0x64,0x64,0x84,0x0c,0x64,0x20,0x84,0x08,0x64,0x60,0x64,0x60,0x64,0x20,0x88,0x0a,0x64,0x64,0x40, // code info + 0x11,0x81,0x1c, // LOAD_NAME '__name__' + 0x16,0x81,0x1d, // STORE_NAME '__module__' + 0x10,0x1d, // LOAD_CONST_STRING 'Approver' + 0x16,0x81,0x1e, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x20, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x31, // STORE_NAME 'is_payjoin' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x32, // STORE_NAME '_add_input' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x36, // STORE_NAME 'add_internal_input' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x37, // STORE_NAME 'check_internal_input' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x38, // STORE_NAME 'add_external_input' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x3a, // STORE_NAME '_add_output' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x3c, // STORE_NAME 'add_payment_request' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x3f, // STORE_NAME 'finish_payment_request' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x41, // STORE_NAME 'add_change_output' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x42, // STORE_NAME 'add_orig_change_output' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x0b, // MAKE_FUNCTION_DEFARGS 11 + 0x16,0x43, // STORE_NAME 'add_external_output' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x44, // STORE_NAME 'add_orig_external_output' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x45, // STORE_NAME 'approve_orig_txids' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x16,0x46, // STORE_NAME 'approve_tx' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_approvers_Approver +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_Approver___init__ +static const byte fun_data_apps_bitcoin_sign_tx_approvers_Approver___init__[92] = { + 0x23,0x2a, // prelude + 0x20,0x81,0x1f,0x66,0x21, // names: __init__, self, tx, coin + 0x80,0x23,0x24,0x29,0x24,0x64,0x24,0x24,0x24,0x64,0x24,0x24,0x24,0x44,0x26,0x64, // code info + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x21, // STORE_ATTR 'coin' + 0x12,0x18, // LOAD_GLOBAL 'tx_weight' + 0x14,0x22, // LOAD_METHOD 'TxWeightCalculator' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x23, // STORE_ATTR 'weight' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x24, // STORE_ATTR 'payment_req_verifier' + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x25, // STORE_ATTR 'show_payment_req_details' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x26, // STORE_ATTR 'total_in' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x27, // STORE_ATTR 'external_in' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x28, // STORE_ATTR 'total_out' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x29, // STORE_ATTR 'change_out' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x2a, // STORE_ATTR 'orig_total_in' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x2b, // STORE_ATTR 'orig_external_in' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x2c, // STORE_ATTR 'orig_total_out' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x2d, // STORE_ATTR 'orig_change_out' + 0xb1, // LOAD_FAST 1 + 0x13,0x2e, // LOAD_ATTR 'amount_unit' + 0xb0, // LOAD_FAST 0 + 0x18,0x2e, // STORE_ATTR 'amount_unit' + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'has_unverified_external_input' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x30, // STORE_ATTR 'external_output_index' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_Approver___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_Approver___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 92, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_Approver___init__ + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_Approver___init__ + 23, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_Approver___init__ + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_Approver +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_Approver_is_payjoin +static const byte fun_data_apps_bitcoin_sign_tx_approvers_Approver_is_payjoin[15] = { + 0x11,0x0a, // prelude + 0x31,0x81,0x1f, // names: is_payjoin, self + 0x80,0x3e, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'external_in' + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'orig_external_in' + 0xdc, // BINARY_OP 5 __ne__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_Approver_is_payjoin = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_Approver_is_payjoin, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 49, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_Approver_is_payjoin + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_Approver_is_payjoin + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_Approver_is_payjoin + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_Approver +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_Approver__add_input +static const byte fun_data_apps_bitcoin_sign_tx_approvers_Approver__add_input[50] = { + 0x22,0x14, // prelude + 0x32,0x81,0x1f,0x81,0x20, // names: _add_input, self, txi + 0x80,0x41,0x29,0x2b,0x25, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'weight' + 0x14,0x33, // LOAD_METHOD 'add_input' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x26, // LOAD_ATTR 'total_in' + 0xb1, // LOAD_FAST 1 + 0x13,0x34, // LOAD_ATTR 'amount' + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x26, // STORE_ATTR 'total_in' + 0xb1, // LOAD_FAST 1 + 0x13,0x35, // LOAD_ATTR 'orig_hash' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x2a, // LOAD_ATTR 'orig_total_in' + 0xb1, // LOAD_FAST 1 + 0x13,0x34, // LOAD_ATTR 'amount' + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x2a, // STORE_ATTR 'orig_total_in' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_Approver__add_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_Approver__add_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 50, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_Approver__add_input + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_Approver__add_input + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_Approver__add_input + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_Approver +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_Approver_add_internal_input +static const byte fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_internal_input[21] = { + 0xab,0x40,0x12, // prelude + 0x36,0x81,0x1f,0x81,0x20,0x81,0x21, // names: add_internal_input, self, txi, node + 0x80,0x47, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x32, // LOAD_METHOD '_add_input' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_Approver_add_internal_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_internal_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 54, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_internal_input + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_internal_input + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_internal_input + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_Approver +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_Approver_check_internal_input +static const byte fun_data_apps_bitcoin_sign_tx_approvers_Approver_check_internal_input[11] = { + 0x12,0x0e, // prelude + 0x37,0x81,0x1f,0x81,0x20, // names: check_internal_input, self, txi + 0x80,0x4a, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_Approver_check_internal_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_Approver_check_internal_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 11, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 55, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_Approver_check_internal_input + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_Approver_check_internal_input + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_Approver_check_internal_input + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_Approver +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_Approver_add_external_input +static const byte fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_external_input[80] = { + 0x22,0x1c, // prelude + 0x38,0x81,0x1f,0x81,0x20, // names: add_external_input, self, txi + 0x80,0x4d,0x47,0x27,0x24,0x28,0x49,0x2b,0x25, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x32, // LOAD_METHOD '_add_input' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'input_is_external_unverified' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'has_unverified_external_input' + 0x12,0x0e, // LOAD_GLOBAL 'safety_checks' + 0x14,0x39, // LOAD_METHOD 'is_strict' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0c, // LOAD_GLOBAL 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x5b, // JUMP 27 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x27, // LOAD_ATTR 'external_in' + 0xb1, // LOAD_FAST 1 + 0x13,0x34, // LOAD_ATTR 'amount' + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x27, // STORE_ATTR 'external_in' + 0xb1, // LOAD_FAST 1 + 0x13,0x35, // LOAD_ATTR 'orig_hash' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x2b, // LOAD_ATTR 'orig_external_in' + 0xb1, // LOAD_FAST 1 + 0x13,0x34, // LOAD_ATTR 'amount' + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x2b, // STORE_ATTR 'orig_external_in' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_Approver_add_external_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_external_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 80, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 56, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_external_input + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_external_input + 16, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_external_input + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_Approver +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_Approver__add_output +static const byte fun_data_apps_bitcoin_sign_tx_approvers_Approver__add_output[35] = { + 0xab,0x40,0x14, // prelude + 0x3a,0x81,0x1f,0x81,0x22,0x81,0x23, // names: _add_output, self, txo, script_pubkey + 0x80,0x59,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'weight' + 0x14,0x3b, // LOAD_METHOD 'add_output' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x28, // LOAD_ATTR 'total_out' + 0xb1, // LOAD_FAST 1 + 0x13,0x34, // LOAD_ATTR 'amount' + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x28, // STORE_ATTR 'total_out' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_Approver__add_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_Approver__add_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 58, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_Approver__add_output + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_Approver__add_output + 13, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_Approver__add_output + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_Approver +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_Approver_add_payment_request +static const byte fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_payment_request[43] = { + 0xbb,0x40,0x14, // prelude + 0x3c,0x81,0x1f,0x81,0x24,0x16, // names: add_payment_request, self, msg, keychain + 0x80,0x5f,0x4b,0x26, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x3d, // LOAD_CONST_STRING 'PaymentRequestVerifier' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x3e, // IMPORT_NAME 'payment_request' + 0x1c,0x3d, // IMPORT_FROM 'PaymentRequestVerifier' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x3f, // LOAD_METHOD 'finish_payment_request' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'coin' + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x24, // STORE_ATTR 'payment_req_verifier' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_Approver_add_payment_request = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_payment_request, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 60, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_payment_request + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_payment_request + 13, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_payment_request + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_Approver +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_Approver_finish_payment_request +static const byte fun_data_apps_bitcoin_sign_tx_approvers_Approver_finish_payment_request[33] = { + 0x11,0x10, // prelude + 0x3f,0x81,0x1f, // names: finish_payment_request, self + 0x80,0x65,0x25,0x28,0x24, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'payment_req_verifier' + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'payment_req_verifier' + 0x14,0x40, // LOAD_METHOD 'verify' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x24, // STORE_ATTR 'payment_req_verifier' + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x25, // STORE_ATTR 'show_payment_req_details' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_Approver_finish_payment_request = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_Approver_finish_payment_request, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 63, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_Approver_finish_payment_request + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_Approver_finish_payment_request + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_Approver_finish_payment_request + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_Approver +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_Approver_add_change_output +static const byte fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_change_output[53] = { + 0xb3,0x40,0x18, // prelude + 0x41,0x81,0x1f,0x81,0x22,0x81,0x23, // names: add_change_output, self, txo, script_pubkey + 0x80,0x6b,0x2b,0x2b,0x25, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x3a, // LOAD_METHOD '_add_output' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x29, // LOAD_ATTR 'change_out' + 0xb1, // LOAD_FAST 1 + 0x13,0x34, // LOAD_ATTR 'amount' + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x29, // STORE_ATTR 'change_out' + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'payment_req_verifier' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'payment_req_verifier' + 0x14,0x41, // LOAD_METHOD 'add_change_output' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_Approver_add_change_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_change_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 53, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 65, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_change_output + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_change_output + 15, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_change_output + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_Approver +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_Approver_add_orig_change_output +static const byte fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_orig_change_output[34] = { + 0x22,0x10, // prelude + 0x42,0x81,0x1f,0x81,0x22, // names: add_orig_change_output, self, txo + 0x80,0x71,0x2b, // code info + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x2c, // LOAD_ATTR 'orig_total_out' + 0xb1, // LOAD_FAST 1 + 0x13,0x34, // LOAD_ATTR 'amount' + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x2c, // STORE_ATTR 'orig_total_out' + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x2d, // LOAD_ATTR 'orig_change_out' + 0xb1, // LOAD_FAST 1 + 0x13,0x34, // LOAD_ATTR 'amount' + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x2d, // STORE_ATTR 'orig_change_out' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_Approver_add_orig_change_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_orig_change_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 66, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_orig_change_output + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_orig_change_output + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_orig_change_output + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_Approver +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_Approver_add_external_output +static const byte fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_external_output[43] = { + 0xb8,0x45,0x1a, // prelude + 0x43,0x81,0x1f,0x81,0x22,0x81,0x23,0x81,0x25, // names: add_external_output, self, txo, script_pubkey, orig_txo + 0x80,0x7a,0x2b,0x25, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x3a, // LOAD_METHOD '_add_output' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'payment_req_verifier' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'payment_req_verifier' + 0x14,0x43, // LOAD_METHOD 'add_external_output' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_Approver_add_external_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_external_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 67, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_external_output + 12, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_external_output + 16, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_external_output + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_Approver +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_Approver_add_orig_external_output +static const byte fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_orig_external_output[22] = { + 0x22,0x0e, // prelude + 0x44,0x81,0x1f,0x81,0x22, // names: add_orig_external_output, self, txo + 0x80,0x7f, // code info + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x2c, // LOAD_ATTR 'orig_total_out' + 0xb1, // LOAD_FAST 1 + 0x13,0x34, // LOAD_ATTR 'amount' + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x2c, // STORE_ATTR 'orig_total_out' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_Approver_add_orig_external_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_orig_external_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 68, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_orig_external_output + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_orig_external_output + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_Approver_add_orig_external_output + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_Approver +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_Approver_approve_orig_txids +static const byte fun_data_apps_bitcoin_sign_tx_approvers_Approver_approve_orig_txids[17] = { + 0x9b,0x40,0x10, // prelude + 0x45,0x81,0x1f,0x1c,0x81,0x26, // names: approve_orig_txids, self, tx_info, orig_txs + 0x80,0x84, // code info + 0x12,0x81,0x27, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_Approver_approve_orig_txids = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_Approver_approve_orig_txids, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 69, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_Approver_approve_orig_txids + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_Approver_approve_orig_txids + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_Approver_approve_orig_txids + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_Approver +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_Approver_approve_tx +static const byte fun_data_apps_bitcoin_sign_tx_approvers_Approver_approve_tx[19] = { + 0xa3,0x40,0x10, // prelude + 0x46,0x81,0x1f,0x1c,0x81,0x26, // names: approve_tx, self, tx_info, orig_txs + 0x80,0x87, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x3f, // LOAD_METHOD 'finish_payment_request' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_Approver_approve_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_Approver_approve_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 70, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_Approver_approve_tx + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_Approver_approve_tx + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_Approver_approve_tx + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_approvers_Approver[] = { + &raw_code_apps_bitcoin_sign_tx_approvers_Approver___init__, + &raw_code_apps_bitcoin_sign_tx_approvers_Approver_is_payjoin, + &raw_code_apps_bitcoin_sign_tx_approvers_Approver__add_input, + &raw_code_apps_bitcoin_sign_tx_approvers_Approver_add_internal_input, + &raw_code_apps_bitcoin_sign_tx_approvers_Approver_check_internal_input, + &raw_code_apps_bitcoin_sign_tx_approvers_Approver_add_external_input, + &raw_code_apps_bitcoin_sign_tx_approvers_Approver__add_output, + &raw_code_apps_bitcoin_sign_tx_approvers_Approver_add_payment_request, + &raw_code_apps_bitcoin_sign_tx_approvers_Approver_finish_payment_request, + &raw_code_apps_bitcoin_sign_tx_approvers_Approver_add_change_output, + &raw_code_apps_bitcoin_sign_tx_approvers_Approver_add_orig_change_output, + &raw_code_apps_bitcoin_sign_tx_approvers_Approver_add_external_output, + &raw_code_apps_bitcoin_sign_tx_approvers_Approver_add_orig_external_output, + &raw_code_apps_bitcoin_sign_tx_approvers_Approver_approve_orig_txids, + &raw_code_apps_bitcoin_sign_tx_approvers_Approver_approve_tx, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_Approver = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_Approver, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 107, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_approvers_Approver, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 15, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_Approver + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_Approver + 30, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_Approver + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_BasicApprover +static const byte fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover[99] = { + 0x18,0x2d, // prelude + 0x1e, // names: BasicApprover + 0x8b,0x8c,0x43,0x66,0x60,0x86,0x07,0x84,0x0b,0x86,0x0d,0x66,0x20,0x8a,0x34,0x86,0x0b,0x84,0x0a,0x84,0x0e,0x00, // code info + 0x11,0x81,0x1c, // LOAD_NAME '__name__' + 0x16,0x81,0x1d, // STORE_NAME '__module__' + 0x10,0x1e, // LOAD_CONST_STRING 'BasicApprover' + 0x16,0x81,0x1e, // STORE_NAME '__qualname__' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x63, // STORE_NAME 'MAX_SILENT_CHANGE_COUNT' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x20, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x20,0x01,0x01, // MAKE_CLOSURE 1 + 0x16,0x36, // STORE_NAME 'add_internal_input' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x37, // STORE_NAME 'check_internal_input' + 0xb0, // LOAD_FAST 0 + 0x20,0x03,0x01, // MAKE_CLOSURE 3 + 0x16,0x3a, // STORE_NAME '_add_output' + 0xb0, // LOAD_FAST 0 + 0x20,0x04,0x01, // MAKE_CLOSURE 4 + 0x16,0x41, // STORE_NAME 'add_change_output' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x21,0x05,0x01, // MAKE_CLOSURE_DEFARGS 5 + 0x16,0x43, // STORE_NAME 'add_external_output' + 0xb0, // LOAD_FAST 0 + 0x20,0x06,0x01, // MAKE_CLOSURE 6 + 0x16,0x3c, // STORE_NAME 'add_payment_request' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x45, // STORE_NAME 'approve_orig_txids' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x56, // STORE_NAME '_replacement_title' + 0xb0, // LOAD_FAST 0 + 0x20,0x09,0x01, // MAKE_CLOSURE 9 + 0x16,0x46, // STORE_NAME 'approve_tx' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_approvers_BasicApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_BasicApprover___init__ +static const byte fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover___init__[49] = { + 0xb8,0x04,0x18, // prelude + 0x20,0x81,0x28,0x81,0x1f,0x66,0x21, // names: __init__, *, self, tx, coin + 0x80,0x8f,0x2d,0x24,0x24, // code info + 0x12,0x81,0x29, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x20, // LOAD_SUPER_METHOD '__init__' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x47, // STORE_ATTR 'change_count' + 0x50, // LOAD_CONST_FALSE + 0xb1, // LOAD_FAST 1 + 0x18,0x48, // STORE_ATTR 'foreign_address_confirmed' + 0x12,0x81,0x2a, // LOAD_GLOBAL 'bool' + 0xb2, // LOAD_FAST 2 + 0x13,0x49, // LOAD_ATTR 'chunkify' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0x18,0x49, // STORE_ATTR 'chunkify' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover___init__ + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover___init__ + 15, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover___init__ + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_BasicApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_BasicApprover_add_internal_input +static const byte fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_internal_input[62] = { + 0xb8,0x44,0x1c, // prelude + 0x36,0x81,0x28,0x81,0x1f,0x81,0x20,0x81,0x21, // names: add_internal_input, *, self, txi, node + 0x80,0x95,0x2a,0x2d,0x44, // code info + 0x12,0x15, // LOAD_GLOBAL 'validate_path_against_script_type' + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'coin' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x51, // POP_JUMP_IF_TRUE 17 + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x4a, // LOAD_METHOD 'confirm_foreign_address' + 0xb2, // LOAD_FAST 2 + 0x13,0x4b, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0xb1, // LOAD_FAST 1 + 0x18,0x48, // STORE_ATTR 'foreign_address_confirmed' + 0x12,0x81,0x29, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x36, // LOAD_SUPER_METHOD 'add_internal_input' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover_add_internal_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_internal_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 62, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 54, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_internal_input + 12, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_internal_input + 17, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_internal_input + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_BasicApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_BasicApprover_check_internal_input +static const byte fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_check_internal_input[36] = { + 0x22,0x14, // prelude + 0x37,0x81,0x1f,0x81,0x20, // names: check_internal_input, self, txi + 0x80,0xa0,0x20,0x2a,0x45, // code info + 0x12,0x15, // LOAD_GLOBAL 'validate_path_against_script_type' + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'coin' + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x4c, // POP_JUMP_IF_TRUE 12 + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'foreign_address_confirmed' + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x0c, // LOAD_GLOBAL 'ProcessError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover_check_internal_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_check_internal_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 55, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_check_internal_input + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_check_internal_input + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_check_internal_input + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_BasicApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_BasicApprover__add_output +static const byte fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover__add_output[100] = { + 0xe8,0x44,0x24, // prelude + 0x3a,0x81,0x28,0x81,0x1f,0x81,0x22,0x81,0x23, // names: _add_output, *, self, txo, script_pubkey + 0x80,0xa7,0x4b,0x27,0x25,0x25,0x27,0x4d,0x4d, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x4c, // LOAD_CONST_STRING 'CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME 'common' + 0x1c,0x4c, // IMPORT_FROM 'CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x4b, // LOAD_ATTR 'address_n' + 0x44,0x6d, // POP_JUMP_IF_FALSE 45 + 0x12,0x15, // LOAD_GLOBAL 'validate_path_against_script_type' + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'coin' + 0x10,0x4b, // LOAD_CONST_STRING 'address_n' + 0xb2, // LOAD_FAST 2 + 0x13,0x4b, // LOAD_ATTR 'address_n' + 0x10,0x4d, // LOAD_CONST_STRING 'script_type' + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x4d, // LOAD_ATTR 'script_type' + 0x55, // LOAD_SUBSCR + 0x10,0x4e, // LOAD_CONST_STRING 'multisig' + 0x12,0x81,0x2a, // LOAD_GLOBAL 'bool' + 0xb2, // LOAD_FAST 2 + 0x13,0x4e, // LOAD_ATTR 'multisig' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x86,0x01, // CALL_FUNCTION 769 + 0x43,0x4d, // POP_JUMP_IF_TRUE 13 + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x4a, // LOAD_METHOD 'confirm_foreign_address' + 0xb2, // LOAD_FAST 2 + 0x13,0x4b, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x81,0x29, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x3a, // LOAD_SUPER_METHOD '_add_output' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover__add_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover__add_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 100, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 58, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover__add_output + 12, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover__add_output + 21, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover__add_output + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_BasicApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_BasicApprover_add_change_output +static const byte fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_change_output[42] = { + 0xb8,0x44,0x18, // prelude + 0x41,0x81,0x28,0x81,0x1f,0x81,0x22,0x81,0x23, // names: add_change_output, *, self, txo, script_pubkey + 0x80,0xb4,0x30, // code info + 0x12,0x81,0x29, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x41, // LOAD_SUPER_METHOD 'add_change_output' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x57, // DUP_TOP + 0x13,0x47, // LOAD_ATTR 'change_count' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x47, // STORE_ATTR 'change_count' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover_add_change_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_change_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 65, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_change_output + 12, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_change_output + 15, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_change_output + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_BasicApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_BasicApprover_add_external_output +static const byte fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_external_output[215] = { + 0xe1,0x45,0x4c, // prelude + 0x43,0x81,0x28,0x81,0x1f,0x81,0x22,0x81,0x23,0x81,0x25, // names: add_external_output, *, self, txo, script_pubkey, orig_txo + 0x80,0xbd,0x4b,0x51,0x24,0x69,0x20,0x67,0x22,0x45,0x26,0x4e,0x69,0x20,0x27,0x22,0x67,0x65,0x2c,0x22,0x47,0x6c,0x45,0x23,0x23,0x23,0x49, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x4f, // LOAD_CONST_STRING 'OutputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x50, // IMPORT_NAME 'trezor.enums' + 0x1c,0x4f, // IMPORT_FROM 'OutputScriptType' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x12,0x81,0x29, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x43, // LOAD_SUPER_METHOD 'add_external_output' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x44,0xc4,0x80, // POP_JUMP_IF_FALSE 68 + 0xb2, // LOAD_FAST 2 + 0x13,0x34, // LOAD_ATTR 'amount' + 0xb4, // LOAD_FAST 4 + 0x13,0x34, // LOAD_ATTR 'amount' + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x62, // POP_JUMP_IF_FALSE 34 + 0xb1, // LOAD_FAST 1 + 0x14,0x31, // LOAD_METHOD 'is_payjoin' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0c, // LOAD_GLOBAL 'ProcessError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x51, // LOAD_METHOD 'confirm_modify_output' + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'coin' + 0xb1, // LOAD_FAST 1 + 0x13,0x2e, // LOAD_ATTR 'amount_unit' + 0x36,0x04, // CALL_METHOD 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x59, // JUMP 25 + 0xb2, // LOAD_FAST 2 + 0x13,0x34, // LOAD_ATTR 'amount' + 0xb4, // LOAD_FAST 4 + 0x13,0x34, // LOAD_ATTR 'amount' + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb1, // LOAD_FAST 1 + 0x14,0x31, // LOAD_METHOD 'is_payjoin' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x0c, // LOAD_GLOBAL 'ProcessError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x40, // JUMP 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x2a, // LOAD_ATTR 'orig_total_in' + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb2, // LOAD_FAST 2 + 0x13,0x4d, // LOAD_ATTR 'script_type' + 0xb5, // LOAD_FAST 5 + 0x13,0x52, // LOAD_ATTR 'PAYTOOPRETURN' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb4, // LOAD_FAST 4 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x0c, // LOAD_GLOBAL 'ProcessError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x6e, // JUMP 46 + 0xb2, // LOAD_FAST 2 + 0x13,0x53, // LOAD_ATTR 'payment_req_index' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x25, // LOAD_ATTR 'show_payment_req_details' + 0x44,0x62, // POP_JUMP_IF_FALSE 34 + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x54, // LOAD_METHOD 'confirm_output' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'coin' + 0xb1, // LOAD_FAST 1 + 0x13,0x2e, // LOAD_ATTR 'amount_unit' + 0xb1, // LOAD_FAST 1 + 0x13,0x30, // LOAD_ATTR 'external_output_index' + 0xb1, // LOAD_FAST 1 + 0x13,0x49, // LOAD_ATTR 'chunkify' + 0x36,0x05, // CALL_METHOD 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x57, // DUP_TOP + 0x13,0x30, // LOAD_ATTR 'external_output_index' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x30, // STORE_ATTR 'external_output_index' + 0x42,0x40, // JUMP 0 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover_add_external_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_external_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 215, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 67, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_external_output + 14, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_external_output + 41, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_external_output + 41, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_BasicApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_BasicApprover_add_payment_request +static const byte fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_payment_request[72] = { + 0xc8,0x44,0x1c, // prelude + 0x3c,0x81,0x28,0x81,0x1f,0x81,0x24,0x16, // names: add_payment_request, *, self, msg, keychain + 0x80,0xee,0x30,0x27,0x47,0x51, // code info + 0x12,0x81,0x29, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x3c, // LOAD_SUPER_METHOD 'add_payment_request' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x34, // LOAD_ATTR 'amount' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0b, // LOAD_GLOBAL 'DataError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x55, // LOAD_METHOD 'confirm_payment_request' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'coin' + 0xb1, // LOAD_FAST 1 + 0x13,0x2e, // LOAD_ATTR 'amount_unit' + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x50, // LOAD_CONST_FALSE + 0xde, // BINARY_OP 7 + 0xb1, // LOAD_FAST 1 + 0x18,0x25, // STORE_ATTR 'show_payment_req_details' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover_add_payment_request = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_payment_request, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 60, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_payment_request + 11, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_payment_request + 17, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_add_payment_request + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_BasicApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_BasicApprover_approve_orig_txids +static const byte fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_approve_orig_txids[51] = { + 0xe3,0x40,0x18, // prelude + 0x45,0x81,0x1f,0x1c,0x81,0x26, // names: approve_orig_txids, self, tx_info, orig_txs + 0x80,0xf9,0x23,0x42,0x28,0x25, // code info + 0xb2, // LOAD_FAST 2 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x14,0x56, // LOAD_METHOD '_replacement_title' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x5f, // GET_ITER_STACK + 0x4b,0x11, // FOR_ITER 17 + 0xc4, // STORE_FAST 4 + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x57, // LOAD_METHOD 'confirm_replacement' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x13,0x35, // LOAD_ATTR 'orig_hash' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x2d, // JUMP -19 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover_approve_orig_txids = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_approve_orig_txids, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 69, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_approve_orig_txids + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_approve_orig_txids + 15, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_approve_orig_txids + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_BasicApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_BasicApprover__replacement_title +static const byte fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover__replacement_title[67] = { + 0x2b,0x1c, // prelude + 0x56,0x81,0x1f,0x1c,0x81,0x26, // names: _replacement_title, self, tx_info, orig_txs + 0x90,0x03,0x27,0x23,0x74,0x23,0x2a,0x43, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x31, // LOAD_METHOD 'is_payjoin' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x10,0x58, // LOAD_CONST_STRING 'PayJoin' + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x14,0x59, // LOAD_METHOD 'rbf_disabled' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x12,0x81,0x2b, // LOAD_GLOBAL 'any' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb2, // LOAD_FAST 2 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x63, // RETURN_VALUE + 0x12,0x81,0x2c, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x63, // RETURN_VALUE + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_approvers_BasicApprover__replacement_title +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_BasicApprover__replacement_title__lt_genexpr_gt_ +static const byte fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover__replacement_title__lt_genexpr_gt_[28] = { + 0xb9,0x40,0x0c, // prelude + 0x81,0x1b,0x81,0x28, // names: , * + 0x90,0x06, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0b, // FOR_ITER 11 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x59, // LOAD_METHOD 'rbf_disabled' + 0x36,0x00, // CALL_METHOD 0 + 0xd3, // UNARY_OP 3 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x33, // JUMP -13 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover__replacement_title__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover__replacement_title__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 155, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover__replacement_title__lt_genexpr_gt_ + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover__replacement_title__lt_genexpr_gt_ + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover__replacement_title__lt_genexpr_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_approvers_BasicApprover__replacement_title[] = { + &raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover__replacement_title__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover__replacement_title = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover__replacement_title, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 67, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_approvers_BasicApprover__replacement_title, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 86, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover__replacement_title + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover__replacement_title + 16, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover__replacement_title + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_BasicApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_BasicApprover_approve_tx +static const byte fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_approve_tx[526] = { + 0xd8,0x54,0x86,0x02, // prelude + 0x46,0x81,0x28,0x81,0x1f,0x1c,0x81,0x26, // names: approve_tx, *, self, tx_info, orig_txs + 0x90,0x0f,0x4b,0x24,0x44,0x50,0x25,0x4a,0x2b,0x4a,0x68,0x2a,0x46,0x28,0x26,0x28,0x44,0x6a,0x25,0x2f,0x27,0x4d,0x29,0x4d,0x44,0x20,0x4c,0x48,0x2a,0x22,0x85,0x08,0x29,0x67,0x30,0x26,0x33,0x26,0x22,0x67,0x27,0x69,0x20,0x26,0x4f,0x25,0x69,0x20,0x26,0x6f,0x60,0x63,0x29,0x24,0x70,0x25,0x69,0x60,0x6f, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x5a, // LOAD_CONST_STRING 'NotEnoughFunds' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'trezor.wire' + 0x1c,0x5a, // IMPORT_FROM 'NotEnoughFunds' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'coin' + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x2e, // LOAD_ATTR 'amount_unit' + 0xc6, // STORE_FAST 6 + 0x12,0x81,0x29, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x46, // LOAD_SUPER_METHOD 'approve_tx' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x2f, // LOAD_ATTR 'has_unverified_external_input' + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x5b, // LOAD_METHOD 'confirm_unverified_external_input' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x5c, // LOAD_ATTR 'wallet_path' + 0x14,0x5d, // LOAD_METHOD 'get_path' + 0x36,0x00, // CALL_METHOD 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x5e, // LOAD_METHOD 'confirm_multiple_accounts' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x26, // LOAD_ATTR 'total_in' + 0xb1, // LOAD_FAST 1 + 0x13,0x28, // LOAD_ATTR 'total_out' + 0xf3, // BINARY_OP 28 __sub__ + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb5, // LOAD_FAST 5 + 0x13,0x5f, // LOAD_ATTR 'negative_fee' + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb4, // LOAD_FAST 4 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x13,0x26, // LOAD_ATTR 'total_in' + 0xb1, // LOAD_FAST 1 + 0x13,0x29, // LOAD_ATTR 'change_out' + 0xf3, // BINARY_OP 28 __sub__ + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x27, // LOAD_ATTR 'external_in' + 0xf3, // BINARY_OP 28 __sub__ + 0xc9, // STORE_FAST 9 + 0xb1, // LOAD_FAST 1 + 0x13,0x23, // LOAD_ATTR 'weight' + 0x14,0x60, // LOAD_METHOD 'get_virtual_size' + 0x36,0x00, // CALL_METHOD 0 + 0xca, // STORE_FAST 10 + 0xb7, // LOAD_FAST 7 + 0xba, // LOAD_FAST 10 + 0xf7, // BINARY_OP 32 __truediv__ + 0xcb, // STORE_FAST 11 + 0xb5, // LOAD_FAST 5 + 0x13,0x61, // LOAD_ATTR 'maxfee_kb' + 0x22,0x87,0x68, // LOAD_CONST_SMALL_INT 1000 + 0xf7, // BINARY_OP 32 __truediv__ + 0xba, // LOAD_FAST 10 + 0xf4, // BINARY_OP 29 __mul__ + 0xcc, // STORE_FAST 12 + 0xb7, // LOAD_FAST 7 + 0xbc, // LOAD_FAST 12 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x63, // POP_JUMP_IF_FALSE 35 + 0xb7, // LOAD_FAST 7 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xbc, // LOAD_FAST 12 + 0xf4, // BINARY_OP 29 __mul__ + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x12,0x0e, // LOAD_GLOBAL 'safety_checks' + 0x14,0x39, // LOAD_METHOD 'is_strict' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0b, // LOAD_GLOBAL 'DataError' + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x62, // LOAD_METHOD 'confirm_feeoverthreshold' + 0xb7, // LOAD_FAST 7 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x47, // LOAD_ATTR 'change_count' + 0xb1, // LOAD_FAST 1 + 0x13,0x63, // LOAD_ATTR 'MAX_SILENT_CHANGE_COUNT' + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x64, // LOAD_METHOD 'confirm_change_count_over_threshold' + 0xb1, // LOAD_FAST 1 + 0x13,0x47, // LOAD_ATTR 'change_count' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x44,0xb8,0x81, // POP_JUMP_IF_FALSE 184 + 0xb1, // LOAD_FAST 1 + 0x13,0x2a, // LOAD_ATTR 'orig_total_in' + 0xb1, // LOAD_FAST 1 + 0x13,0x2d, // LOAD_ATTR 'orig_change_out' + 0xf3, // BINARY_OP 28 __sub__ + 0xb1, // LOAD_FAST 1 + 0x13,0x2b, // LOAD_ATTR 'orig_external_in' + 0xf3, // BINARY_OP 28 __sub__ + 0xcd, // STORE_FAST 13 + 0xb1, // LOAD_FAST 1 + 0x13,0x2a, // LOAD_ATTR 'orig_total_in' + 0xb1, // LOAD_FAST 1 + 0x13,0x2c, // LOAD_ATTR 'orig_total_out' + 0xf3, // BINARY_OP 28 __sub__ + 0xce, // STORE_FAST 14 + 0xb7, // LOAD_FAST 7 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xbe, // LOAD_FAST 14 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0c, // LOAD_GLOBAL 'ProcessError' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb9, // LOAD_FAST 9 + 0xbd, // LOAD_FAST 13 + 0xf3, // BINARY_OP 28 __sub__ + 0xb7, // LOAD_FAST 7 + 0xbe, // LOAD_FAST 14 + 0xf3, // BINARY_OP 28 __sub__ + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0c, // LOAD_GLOBAL 'ProcessError' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x14,0x65, // LOAD_METHOD 'lock_time_disabled' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x45, // JUMP 5 + 0xb2, // LOAD_FAST 2 + 0x13,0x66, // LOAD_ATTR 'tx' + 0x13,0x67, // LOAD_ATTR 'lock_time' + 0xcf, // STORE_FAST 15 + 0xb3, // LOAD_FAST 3 + 0x5f, // GET_ITER_STACK + 0x4b,0x24, // FOR_ITER 36 + 0x26,0x10, // STORE_FAST_N 16 + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x65, // LOAD_METHOD 'lock_time_disabled' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x46, // JUMP 6 + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x66, // LOAD_ATTR 'tx' + 0x13,0x67, // LOAD_ATTR 'lock_time' + 0x26,0x11, // STORE_FAST_N 17 + 0xbf, // LOAD_FAST 15 + 0x24,0x11, // LOAD_FAST_N 17 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0c, // LOAD_GLOBAL 'ProcessError' + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x1a, // JUMP -38 + 0xb1, // LOAD_FAST 1 + 0x14,0x31, // LOAD_METHOD 'is_payjoin' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x5e, // POP_JUMP_IF_TRUE 30 + 0xb1, // LOAD_FAST 1 + 0x14,0x56, // LOAD_METHOD '_replacement_title' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x12, // STORE_FAST_N 18 + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x68, // LOAD_METHOD 'confirm_modify_fee' + 0x24,0x12, // LOAD_FAST_N 18 + 0xb7, // LOAD_FAST 7 + 0xbe, // LOAD_FAST 14 + 0xf3, // BINARY_OP 28 __sub__ + 0xb7, // LOAD_FAST 7 + 0xbb, // LOAD_FAST 11 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x36,0x06, // CALL_METHOD 6 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x63, // JUMP 35 + 0xb9, // LOAD_FAST 9 + 0xbd, // LOAD_FAST 13 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x5e, // POP_JUMP_IF_FALSE 30 + 0xb1, // LOAD_FAST 1 + 0x14,0x56, // LOAD_METHOD '_replacement_title' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x12, // STORE_FAST_N 18 + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x68, // LOAD_METHOD 'confirm_modify_fee' + 0x24,0x12, // LOAD_FAST_N 18 + 0xb9, // LOAD_FAST 9 + 0xbd, // LOAD_FAST 13 + 0xf3, // BINARY_OP 28 __sub__ + 0xb7, // LOAD_FAST 7 + 0xbb, // LOAD_FAST 11 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x36,0x06, // CALL_METHOD 6 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x40, // JUMP 0 + 0x42,0xc8,0x80, // JUMP 72 + 0xb2, // LOAD_FAST 2 + 0x13,0x66, // LOAD_ATTR 'tx' + 0x13,0x67, // LOAD_ATTR 'lock_time' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x69, // LOAD_METHOD 'confirm_nondefault_locktime' + 0xb2, // LOAD_FAST 2 + 0x13,0x66, // LOAD_ATTR 'tx' + 0x13,0x67, // LOAD_ATTR 'lock_time' + 0xb2, // LOAD_FAST 2 + 0x14,0x65, // LOAD_METHOD 'lock_time_disabled' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x27, // LOAD_ATTR 'external_in' + 0x43,0x58, // POP_JUMP_IF_TRUE 24 + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x6a, // LOAD_METHOD 'confirm_total' + 0xb8, // LOAD_FAST 8 + 0xb7, // LOAD_FAST 7 + 0xbb, // LOAD_FAST 11 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0xb2, // LOAD_FAST 2 + 0x13,0x5c, // LOAD_ATTR 'wallet_path' + 0x14,0x5d, // LOAD_METHOD 'get_path' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x06, // CALL_METHOD 6 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x4e, // JUMP 14 + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x6b, // LOAD_METHOD 'confirm_joint_total' + 0xb9, // LOAD_FAST 9 + 0xb8, // LOAD_FAST 8 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x36,0x04, // CALL_METHOD 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover_approve_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_approve_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 526, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 28, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 70, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_approve_tx + 12, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_approve_tx + 71, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover_approve_tx + 71, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_approvers_BasicApprover[] = { + &raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover___init__, + &raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover_add_internal_input, + &raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover_check_internal_input, + &raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover__add_output, + &raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover_add_change_output, + &raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover_add_external_output, + &raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover_add_payment_request, + &raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover_approve_orig_txids, + &raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover__replacement_title, + &raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover_approve_tx, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 99, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_approvers_BasicApprover, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 10, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover + 24, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_BasicApprover + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_CoinJoinApprover +static const byte fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover[129] = { + 0x08,0x39, // prelude + 0x1f, // names: CoinJoinApprover + 0x9b,0x7b,0x66,0x66,0x24,0x64,0x65,0x20,0x45,0x86,0x1e,0x66,0x20,0x86,0x1d,0x84,0x08,0x86,0x09,0x66,0x20,0x64,0x40,0x85,0x1b,0x86,0x38,0x00, // code info + 0x11,0x81,0x1c, // LOAD_NAME '__name__' + 0x16,0x81,0x1d, // STORE_NAME '__module__' + 0x10,0x1f, // LOAD_CONST_STRING 'CoinJoinApprover' + 0x16,0x81,0x1e, // STORE_NAME '__qualname__' + 0x22,0xa7,0x08, // LOAD_CONST_SMALL_INT 5000 + 0x16,0x81,0x17, // STORE_NAME 'MIN_REGISTRABLE_OUTPUT_AMOUNT' + 0x22,0x81,0x2c, // LOAD_CONST_SMALL_INT 172 + 0x16,0x81,0x18, // STORE_NAME 'MAX_OUTPUT_WEIGHT' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x81,0x0a, // STORE_NAME 'COINJOIN_FLAGS_SIGNABLE' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x81,0x0b, // STORE_NAME 'COINJOIN_FLAGS_NO_FEE' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x81,0x11, // STORE_NAME 'COINJOIN_REQ_PUBKEY' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x16,0x81,0x0f, // STORE_NAME 'COINJOIN_REQ_PUBKEY_TEST' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x20, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x20,0x01,0x01, // MAKE_CLOSURE 1 + 0x16,0x32, // STORE_NAME '_add_input' + 0xb0, // LOAD_FAST 0 + 0x20,0x02,0x01, // MAKE_CLOSURE 2 + 0x16,0x36, // STORE_NAME 'add_internal_input' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x37, // STORE_NAME 'check_internal_input' + 0xb0, // LOAD_FAST 0 + 0x20,0x04,0x01, // MAKE_CLOSURE 4 + 0x16,0x38, // STORE_NAME 'add_external_input' + 0xb0, // LOAD_FAST 0 + 0x20,0x05,0x01, // MAKE_CLOSURE 5 + 0x16,0x41, // STORE_NAME 'add_change_output' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x45, // STORE_NAME 'approve_orig_txids' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x81,0x0c, // STORE_NAME '_verify_coinjoin_request' + 0xb0, // LOAD_FAST 0 + 0x20,0x08,0x01, // MAKE_CLOSURE 8 + 0x16,0x46, // STORE_NAME 'approve_tx' + 0xb0, // LOAD_FAST 0 + 0x20,0x09,0x01, // MAKE_CLOSURE 9 + 0x16,0x3a, // STORE_NAME '_add_output' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_approvers_CoinJoinApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_CoinJoinApprover___init__ +static const byte fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover___init__[197] = { + 0xc9,0x04,0x32, // prelude + 0x20,0x81,0x28,0x81,0x1f,0x66,0x21,0x6e, // names: __init__, *, self, tx, coin, authorization + 0x90,0x91,0x4d,0x25,0x47,0x26,0x24,0x64,0x2d,0x24,0x4f,0x2d,0x2f,0x2f,0x2f,0x30,0x6d, // code info + 0x12,0x81,0x29, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x20, // LOAD_SUPER_METHOD '__init__' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x6c, // LOAD_ATTR 'coinjoin_request' + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x0b, // LOAD_GLOBAL 'DataError' + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x13,0x6c, // LOAD_ATTR 'coinjoin_request' + 0xb1, // LOAD_FAST 1 + 0x18,0x6d, // STORE_ATTR 'request' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x18,0x6e, // STORE_ATTR 'authorization' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x6f, // STORE_ATTR 'coordination_fee_base' + 0x12,0x09, // LOAD_GLOBAL 'HashWriter' + 0x12,0x07, // LOAD_GLOBAL 'sha256' + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0x18,0x70, // STORE_ATTR 'h_request' + 0x12,0x10, // LOAD_GLOBAL 'writers' + 0x14,0x71, // LOAD_METHOD 'write_bytes_prefixed' + 0xb1, // LOAD_FAST 1 + 0x13,0x70, // LOAD_ATTR 'h_request' + 0xb4, // LOAD_FAST 4 + 0x13,0x72, // LOAD_ATTR 'params' + 0x13,0x73, // LOAD_ATTR 'coordinator' + 0x14,0x74, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'writers' + 0x14,0x75, // LOAD_METHOD 'write_uint32' + 0xb1, // LOAD_FAST 1 + 0x13,0x70, // LOAD_ATTR 'h_request' + 0xb3, // LOAD_FAST 3 + 0x13,0x76, // LOAD_ATTR 'slip44' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'writers' + 0x14,0x75, // LOAD_METHOD 'write_uint32' + 0xb1, // LOAD_FAST 1 + 0x13,0x70, // LOAD_ATTR 'h_request' + 0xb1, // LOAD_FAST 1 + 0x13,0x6d, // LOAD_ATTR 'request' + 0x13,0x77, // LOAD_ATTR 'fee_rate' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'writers' + 0x14,0x78, // LOAD_METHOD 'write_uint64' + 0xb1, // LOAD_FAST 1 + 0x13,0x70, // LOAD_ATTR 'h_request' + 0xb1, // LOAD_FAST 1 + 0x13,0x6d, // LOAD_ATTR 'request' + 0x13,0x79, // LOAD_ATTR 'no_fee_threshold' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'writers' + 0x14,0x78, // LOAD_METHOD 'write_uint64' + 0xb1, // LOAD_FAST 1 + 0x13,0x70, // LOAD_ATTR 'h_request' + 0xb1, // LOAD_FAST 1 + 0x13,0x6d, // LOAD_ATTR 'request' + 0x13,0x7a, // LOAD_ATTR 'min_registrable_amount' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'writers' + 0x14,0x7b, // LOAD_METHOD 'write_bytes_fixed' + 0xb1, // LOAD_FAST 1 + 0x13,0x70, // LOAD_ATTR 'h_request' + 0xb1, // LOAD_FAST 1 + 0x13,0x6d, // LOAD_ATTR 'request' + 0x13,0x7c, // LOAD_ATTR 'mask_public_key' + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'writers' + 0x14,0x7d, // LOAD_METHOD 'write_compact_size' + 0xb1, // LOAD_FAST 1 + 0x13,0x70, // LOAD_ATTR 'h_request' + 0xb2, // LOAD_FAST 2 + 0x13,0x7e, // LOAD_ATTR 'inputs_count' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x18, // LOAD_GLOBAL 'tx_weight' + 0x14,0x22, // LOAD_METHOD 'TxWeightCalculator' + 0x36,0x00, // CALL_METHOD 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x7f, // STORE_ATTR 'our_weight' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 197, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover___init__ + 11, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover___init__ + 28, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover___init__ + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_CoinJoinApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_CoinJoinApprover__add_input +static const byte fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__add_input[41] = { + 0x33,0x14, // prelude + 0x32,0x81,0x28,0x81,0x1f,0x81,0x20, // names: _add_input, *, self, txi + 0x90,0xaa,0x2c, // code info + 0x12,0x81,0x29, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x32, // LOAD_SUPER_METHOD '_add_input' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'writers' + 0x14,0x81,0x00, // LOAD_METHOD 'write_uint8' + 0xb1, // LOAD_FAST 1 + 0x13,0x70, // LOAD_ATTR 'h_request' + 0xb2, // LOAD_FAST 2 + 0x13,0x81,0x01, // LOAD_ATTR 'coinjoin_flags' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__add_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__add_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 50, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__add_input + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__add_input + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__add_input + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_CoinJoinApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_internal_input +static const byte fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_internal_input[238] = { + 0xf8,0x44,0x3a, // prelude + 0x36,0x81,0x28,0x81,0x1f,0x81,0x20,0x81,0x21, // names: add_internal_input, *, self, txi, node + 0x90,0xae,0x29,0x2a,0x67,0x27,0x29,0x26,0x48,0x29,0x2f,0x32,0x2c,0x6b,0x34,0x67,0x20,0x2f,0x2e,0x4b, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x7f, // LOAD_ATTR 'our_weight' + 0x14,0x33, // LOAD_METHOD 'add_input' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x6e, // LOAD_ATTR 'authorization' + 0x14,0x37, // LOAD_METHOD 'check_internal_input' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x0c, // LOAD_GLOBAL 'ProcessError' + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x14,0x81,0x02, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0x12,0x04, // LOAD_GLOBAL 'bip340' + 0x14,0x81,0x03, // LOAD_METHOD 'tweak_secret_key' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0x12,0x05, // LOAD_GLOBAL 'secp256k1' + 0x14,0x81,0x04, // LOAD_METHOD 'multiply' + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x6d, // LOAD_ATTR 'request' + 0x13,0x7c, // LOAD_ATTR 'mask_public_key' + 0x36,0x02, // CALL_METHOD 2 + 0xc6, // STORE_FAST 6 + 0x12,0x09, // LOAD_GLOBAL 'HashWriter' + 0x12,0x07, // LOAD_GLOBAL 'sha256' + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0x12,0x10, // LOAD_GLOBAL 'writers' + 0x14,0x7b, // LOAD_METHOD 'write_bytes_fixed' + 0xb7, // LOAD_FAST 7 + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'writers' + 0x14,0x81,0x05, // LOAD_METHOD 'write_bytes_reversed' + 0xb7, // LOAD_FAST 7 + 0xb2, // LOAD_FAST 2 + 0x13,0x81,0x06, // LOAD_ATTR 'prev_hash' + 0x12,0x10, // LOAD_GLOBAL 'writers' + 0x13,0x81,0x07, // LOAD_ATTR 'TX_HASH_SIZE' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'writers' + 0x14,0x75, // LOAD_METHOD 'write_uint32' + 0xb7, // LOAD_FAST 7 + 0xb2, // LOAD_FAST 2 + 0x13,0x81,0x08, // LOAD_ATTR 'prev_index' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x81,0x09, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xef, // BINARY_OP 24 __and__ + 0xc8, // STORE_FAST 8 + 0x12,0x81,0x2a, // LOAD_GLOBAL 'bool' + 0xb2, // LOAD_FAST 2 + 0x13,0x81,0x01, // LOAD_ATTR 'coinjoin_flags' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x0a, // LOAD_ATTR 'COINJOIN_FLAGS_SIGNABLE' + 0xef, // BINARY_OP 24 __and__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xb8, // LOAD_FAST 8 + 0xee, // BINARY_OP 23 __xor__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0c, // LOAD_GLOBAL 'ProcessError' + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x81,0x2a, // LOAD_GLOBAL 'bool' + 0xb2, // LOAD_FAST 2 + 0x13,0x81,0x01, // LOAD_ATTR 'coinjoin_flags' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x0b, // LOAD_ATTR 'COINJOIN_FLAGS_NO_FEE' + 0xef, // BINARY_OP 24 __and__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0xb2, // LOAD_FAST 2 + 0x13,0x34, // LOAD_ATTR 'amount' + 0xb1, // LOAD_FAST 1 + 0x13,0x6d, // LOAD_ATTR 'request' + 0x13,0x79, // LOAD_ATTR 'no_fee_threshold' + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb9, // LOAD_FAST 9 + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0xb1, // LOAD_FAST 1 + 0x57, // DUP_TOP + 0x13,0x6f, // LOAD_ATTR 'coordination_fee_base' + 0xb2, // LOAD_FAST 2 + 0x13,0x34, // LOAD_ATTR 'amount' + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x6f, // STORE_ATTR 'coordination_fee_base' + 0x12,0x81,0x29, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x36, // LOAD_SUPER_METHOD 'add_internal_input' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_internal_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_internal_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 238, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 54, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_internal_input + 12, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_internal_input + 32, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_internal_input + 32, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_CoinJoinApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_CoinJoinApprover_check_internal_input +static const byte fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_check_internal_input[29] = { + 0x22,0x10, // prelude + 0x37,0x81,0x1f,0x81,0x20, // names: check_internal_input, self, txi + 0x90,0xcf,0x2a, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x6e, // LOAD_ATTR 'authorization' + 0x14,0x37, // LOAD_METHOD 'check_internal_input' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x0c, // LOAD_GLOBAL 'ProcessError' + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_check_internal_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_check_internal_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 55, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_check_internal_input + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_check_internal_input + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_check_internal_input + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_CoinJoinApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_external_input +static const byte fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_external_input[42] = { + 0x2b,0x18, // prelude + 0x38,0x81,0x28,0x81,0x1f,0x81,0x20, // names: add_external_input, *, self, txi + 0x90,0xd3,0x6c,0x40,0x27, // code info + 0x12,0x81,0x29, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x38, // LOAD_SUPER_METHOD 'add_external_input' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'input_is_external_unverified' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0c, // LOAD_GLOBAL 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_external_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_external_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 56, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_external_input + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_external_input + 14, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_external_input + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_CoinJoinApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_change_output +static const byte fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_change_output[42] = { + 0xb8,0x44,0x18, // prelude + 0x41,0x81,0x28,0x81,0x1f,0x81,0x22,0x81,0x23, // names: add_change_output, *, self, txo, script_pubkey + 0x90,0xdc,0x30, // code info + 0x12,0x81,0x29, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x41, // LOAD_SUPER_METHOD 'add_change_output' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x7f, // LOAD_ATTR 'our_weight' + 0x14,0x3b, // LOAD_METHOD 'add_output' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_change_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_change_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 65, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_change_output + 12, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_change_output + 15, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_change_output + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_CoinJoinApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_CoinJoinApprover_approve_orig_txids +static const byte fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_approve_orig_txids[13] = { + 0x9b,0x40,0x10, // prelude + 0x45,0x81,0x1f,0x1c,0x81,0x26, // names: approve_orig_txids, self, tx_info, orig_txs + 0x90,0xe2, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_approve_orig_txids = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_approve_orig_txids, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 69, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_approve_orig_txids + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_approve_orig_txids + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_approve_orig_txids + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_CoinJoinApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_CoinJoinApprover__verify_coinjoin_request +static const byte fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__verify_coinjoin_request[151] = { + 0x3a,0x2e, // prelude + 0x81,0x0c,0x81,0x1f,0x1c, // names: _verify_coinjoin_request, self, tx_info + 0x90,0xe5,0x2c,0x67,0x24,0x52,0x24,0x72,0x20,0x2a,0x24,0x24,0x26,0x4c,0x42,0x24,0x24,0x26, // code info + 0x12,0x81,0x2d, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'sig_hasher' + 0x12,0x19, // LOAD_GLOBAL 'BitcoinSigHasher' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x0c, // LOAD_GLOBAL 'ProcessError' + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x10, // LOAD_GLOBAL 'writers' + 0x14,0x7b, // LOAD_METHOD 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0x13,0x70, // LOAD_ATTR 'h_request' + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'sig_hasher' + 0x13,0x81,0x0d, // LOAD_ATTR 'h_prevouts' + 0x14,0x81,0x09, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'writers' + 0x14,0x7b, // LOAD_METHOD 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0x13,0x70, // LOAD_ATTR 'h_request' + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'sig_hasher' + 0x13,0x81,0x0e, // LOAD_ATTR 'h_outputs' + 0x14,0x81,0x09, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'coin' + 0x13,0x76, // LOAD_ATTR 'slip44' + 0x12,0x14, // LOAD_GLOBAL 'SLIP44_TESTNET' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0x12,0x05, // LOAD_GLOBAL 'secp256k1' + 0x14,0x40, // LOAD_METHOD 'verify' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0f, // LOAD_ATTR 'COINJOIN_REQ_PUBKEY_TEST' + 0xb0, // LOAD_FAST 0 + 0x13,0x6d, // LOAD_ATTR 'request' + 0x13,0x81,0x10, // LOAD_ATTR 'signature' + 0xb0, // LOAD_FAST 0 + 0x13,0x70, // LOAD_ATTR 'h_request' + 0x14,0x81,0x09, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x03, // CALL_METHOD 3 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE + 0x12,0x05, // LOAD_GLOBAL 'secp256k1' + 0x14,0x40, // LOAD_METHOD 'verify' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x11, // LOAD_ATTR 'COINJOIN_REQ_PUBKEY' + 0xb0, // LOAD_FAST 0 + 0x13,0x6d, // LOAD_ATTR 'request' + 0x13,0x81,0x10, // LOAD_ATTR 'signature' + 0xb0, // LOAD_FAST 0 + 0x13,0x70, // LOAD_ATTR 'h_request' + 0x14,0x81,0x09, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__verify_coinjoin_request = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__verify_coinjoin_request, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 151, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 140, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__verify_coinjoin_request + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__verify_coinjoin_request + 25, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__verify_coinjoin_request + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_CoinJoinApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_CoinJoinApprover_approve_tx +static const byte fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_approve_tx[241] = { + 0xf8,0x44,0x4e, // prelude + 0x46,0x81,0x28,0x81,0x1f,0x1c,0x81,0x26, // names: approve_tx, *, self, tx_info, orig_txs + 0xa0,0x00,0x4d,0x50,0x29,0x67,0x68,0x20,0x28,0x6d,0x40,0x20,0x23,0x25,0x4a,0x24,0x6b,0x20,0x6c,0x40,0x21,0x73,0x60,0x20,0x2e,0x68,0x21,0x68,0x20,0x47,0x2d, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x81,0x12, // LOAD_CONST_STRING 'FEE_RATE_DECIMALS' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x6e, // IMPORT_NAME 'authorization' + 0x1c,0x81,0x12, // IMPORT_FROM 'FEE_RATE_DECIMALS' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x12,0x81,0x29, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x46, // LOAD_SUPER_METHOD 'approve_tx' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x0c, // LOAD_METHOD '_verify_coinjoin_request' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x0b, // LOAD_GLOBAL 'DataError' + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x13,0x26, // LOAD_ATTR 'total_in' + 0xb1, // LOAD_FAST 1 + 0x13,0x28, // LOAD_ATTR 'total_out' + 0xf3, // BINARY_OP 28 __sub__ + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x6e, // LOAD_ATTR 'authorization' + 0x13,0x72, // LOAD_ATTR 'params' + 0x13,0x81,0x13, // LOAD_ATTR 'max_fee_per_kvbyte' + 0xb1, // LOAD_FAST 1 + 0x13,0x7f, // LOAD_ATTR 'our_weight' + 0x14,0x60, // LOAD_METHOD 'get_virtual_size' + 0x36,0x00, // CALL_METHOD 0 + 0xf4, // BINARY_OP 29 __mul__ + 0x22,0x87,0x68, // LOAD_CONST_SMALL_INT 1000 + 0xf7, // BINARY_OP 32 __truediv__ + 0xc6, // STORE_FAST 6 + 0x12,0x81,0x2e, // LOAD_GLOBAL 'min' + 0xb1, // LOAD_FAST 1 + 0x13,0x6d, // LOAD_ATTR 'request' + 0x13,0x77, // LOAD_ATTR 'fee_rate' + 0xb1, // LOAD_FAST 1 + 0x13,0x6e, // LOAD_ATTR 'authorization' + 0x13,0x72, // LOAD_ATTR 'params' + 0x13,0x81,0x14, // LOAD_ATTR 'max_coordinator_fee_rate' + 0x34,0x02, // CALL_FUNCTION 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x6f, // LOAD_ATTR 'coordination_fee_base' + 0xf4, // BINARY_OP 29 __mul__ + 0x12,0x81,0x2f, // LOAD_GLOBAL 'pow' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xb4, // LOAD_FAST 4 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x02, // CALL_FUNCTION 2 + 0xf7, // BINARY_OP 32 __truediv__ + 0xc7, // STORE_FAST 7 + 0xb1, // LOAD_FAST 1 + 0x13,0x26, // LOAD_ATTR 'total_in' + 0xb1, // LOAD_FAST 1 + 0x13,0x27, // LOAD_ATTR 'external_in' + 0xf3, // BINARY_OP 28 __sub__ + 0xb1, // LOAD_FAST 1 + 0x13,0x29, // LOAD_ATTR 'change_out' + 0xf3, // BINARY_OP 28 __sub__ + 0xc8, // STORE_FAST 8 + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x23, // LOAD_ATTR 'weight' + 0x14,0x81,0x15, // LOAD_METHOD 'get_weight' + 0x36,0x00, // CALL_METHOD 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x23, // LOAD_ATTR 'weight' + 0x14,0x81,0x16, // LOAD_METHOD 'get_base_weight' + 0x36,0x00, // CALL_METHOD 0 + 0xf3, // BINARY_OP 28 __sub__ + 0xf7, // BINARY_OP 32 __truediv__ + 0xc9, // STORE_FAST 9 + 0x12,0x81,0x2e, // LOAD_GLOBAL 'min' + 0xb1, // LOAD_FAST 1 + 0x13,0x6d, // LOAD_ATTR 'request' + 0x13,0x7a, // LOAD_ATTR 'min_registrable_amount' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x17, // LOAD_ATTR 'MIN_REGISTRABLE_OUTPUT_AMOUNT' + 0x34,0x02, // CALL_FUNCTION 2 + 0xb9, // LOAD_FAST 9 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x18, // LOAD_ATTR 'MAX_OUTPUT_WEIGHT' + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0xca, // STORE_FAST 10 + 0xb8, // LOAD_FAST 8 + 0xb7, // LOAD_FAST 7 + 0xb6, // LOAD_FAST 6 + 0xf2, // BINARY_OP 27 __add__ + 0xba, // LOAD_FAST 10 + 0xf2, // BINARY_OP 27 __add__ + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0c, // LOAD_GLOBAL 'ProcessError' + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x13,0x6e, // LOAD_ATTR 'authorization' + 0x14,0x81,0x19, // LOAD_METHOD 'approve_sign_tx' + 0xb2, // LOAD_FAST 2 + 0x13,0x66, // LOAD_ATTR 'tx' + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x0c, // LOAD_GLOBAL 'ProcessError' + 0x23,0x17, // LOAD_CONST_OBJ 23 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_approve_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_approve_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 241, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 70, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_approve_tx + 11, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_approve_tx + 42, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_approve_tx + 42, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_approvers_CoinJoinApprover +// frozen bytecode for file apps/bitcoin/sign_tx/approvers.py, scope apps_bitcoin_sign_tx_approvers_CoinJoinApprover__add_output +static const byte fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__add_output[71] = { + 0xb8,0x44,0x1e, // prelude + 0x3a,0x81,0x28,0x81,0x1f,0x81,0x22,0x81,0x23, // names: _add_output, *, self, txo, script_pubkey + 0xa0,0x38,0x50,0x30,0x47,0x25, // code info + 0x12,0x81,0x29, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x3a, // LOAD_SUPER_METHOD '_add_output' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x4b, // LOAD_ATTR 'address_n' + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb1, // LOAD_FAST 1 + 0x13,0x6e, // LOAD_ATTR 'authorization' + 0x14,0x81,0x1a, // LOAD_METHOD 'check_internal_output' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x0c, // LOAD_GLOBAL 'ProcessError' + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x13,0x53, // LOAD_ATTR 'payment_req_index' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0b, // LOAD_GLOBAL 'DataError' + 0x23,0x18, // LOAD_CONST_OBJ 24 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__add_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__add_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 71, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 58, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__add_output + 12, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__add_output + 18, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__add_output + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_approvers_CoinJoinApprover[] = { + &raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover___init__, + &raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__add_input, + &raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_internal_input, + &raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_check_internal_input, + &raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_external_input, + &raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_add_change_output, + &raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_approve_orig_txids, + &raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__verify_coinjoin_request, + &raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover_approve_tx, + &raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover__add_output, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 129, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_approvers_CoinJoinApprover, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 10, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover + 30, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers_CoinJoinApprover + 31, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_approvers__lt_module_gt_[] = { + &raw_code_apps_bitcoin_sign_tx_approvers_Approver, + &raw_code_apps_bitcoin_sign_tx_approvers_BasicApprover, + &raw_code_apps_bitcoin_sign_tx_approvers_CoinJoinApprover, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_approvers__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_approvers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 222, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_approvers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_sign_tx_approvers__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_approvers__lt_module_gt_ + 21, + .opcodes = fun_data_apps_bitcoin_sign_tx_approvers__lt_module_gt_ + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_sign_tx_approvers[176] = { + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_approvers_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_bip340, + MP_QSTR_secp256k1, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_HashWriter, + MP_QSTR_trezor_dot_utils, + MP_QSTR_DataError, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_safety_checks, + MP_QSTR_apps_dot_common, + MP_QSTR_writers, + MP_QSTR_, + MP_QSTR_input_is_external_unverified, + MP_QSTR_common, + MP_QSTR_SLIP44_TESTNET, + MP_QSTR_validate_path_against_script_type, + MP_QSTR_keychain, + MP_QSTR_helpers, + MP_QSTR_tx_weight, + MP_QSTR_BitcoinSigHasher, + MP_QSTR_sig_hasher, + MP_QSTR_OriginalTxInfo, + MP_QSTR_tx_info, + MP_QSTR_Approver, + MP_QSTR_BasicApprover, + MP_QSTR_CoinJoinApprover, + MP_QSTR___init__, + MP_QSTR_coin, + MP_QSTR_TxWeightCalculator, + MP_QSTR_weight, + MP_QSTR_payment_req_verifier, + MP_QSTR_show_payment_req_details, + MP_QSTR_total_in, + MP_QSTR_external_in, + MP_QSTR_total_out, + MP_QSTR_change_out, + MP_QSTR_orig_total_in, + MP_QSTR_orig_external_in, + MP_QSTR_orig_total_out, + MP_QSTR_orig_change_out, + MP_QSTR_amount_unit, + MP_QSTR_has_unverified_external_input, + MP_QSTR_external_output_index, + MP_QSTR_is_payjoin, + MP_QSTR__add_input, + MP_QSTR_add_input, + MP_QSTR_amount, + MP_QSTR_orig_hash, + MP_QSTR_add_internal_input, + MP_QSTR_check_internal_input, + MP_QSTR_add_external_input, + MP_QSTR_is_strict, + MP_QSTR__add_output, + MP_QSTR_add_output, + MP_QSTR_add_payment_request, + MP_QSTR_PaymentRequestVerifier, + MP_QSTR_payment_request, + MP_QSTR_finish_payment_request, + MP_QSTR_verify, + MP_QSTR_add_change_output, + MP_QSTR_add_orig_change_output, + MP_QSTR_add_external_output, + MP_QSTR_add_orig_external_output, + MP_QSTR_approve_orig_txids, + MP_QSTR_approve_tx, + MP_QSTR_change_count, + MP_QSTR_foreign_address_confirmed, + MP_QSTR_chunkify, + MP_QSTR_confirm_foreign_address, + MP_QSTR_address_n, + MP_QSTR_CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES, + MP_QSTR_script_type, + MP_QSTR_multisig, + MP_QSTR_OutputScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_confirm_modify_output, + MP_QSTR_PAYTOOPRETURN, + MP_QSTR_payment_req_index, + MP_QSTR_confirm_output, + MP_QSTR_confirm_payment_request, + MP_QSTR__replacement_title, + MP_QSTR_confirm_replacement, + MP_QSTR_PayJoin, + MP_QSTR_rbf_disabled, + MP_QSTR_NotEnoughFunds, + MP_QSTR_confirm_unverified_external_input, + MP_QSTR_wallet_path, + MP_QSTR_get_path, + MP_QSTR_confirm_multiple_accounts, + MP_QSTR_negative_fee, + MP_QSTR_get_virtual_size, + MP_QSTR_maxfee_kb, + MP_QSTR_confirm_feeoverthreshold, + MP_QSTR_MAX_SILENT_CHANGE_COUNT, + MP_QSTR_confirm_change_count_over_threshold, + MP_QSTR_lock_time_disabled, + MP_QSTR_tx, + MP_QSTR_lock_time, + MP_QSTR_confirm_modify_fee, + MP_QSTR_confirm_nondefault_locktime, + MP_QSTR_confirm_total, + MP_QSTR_confirm_joint_total, + MP_QSTR_coinjoin_request, + MP_QSTR_request, + MP_QSTR_authorization, + MP_QSTR_coordination_fee_base, + MP_QSTR_h_request, + MP_QSTR_write_bytes_prefixed, + MP_QSTR_params, + MP_QSTR_coordinator, + MP_QSTR_encode, + MP_QSTR_write_uint32, + MP_QSTR_slip44, + MP_QSTR_fee_rate, + MP_QSTR_write_uint64, + MP_QSTR_no_fee_threshold, + MP_QSTR_min_registrable_amount, + MP_QSTR_write_bytes_fixed, + MP_QSTR_mask_public_key, + MP_QSTR_write_compact_size, + MP_QSTR_inputs_count, + MP_QSTR_our_weight, + MP_QSTR_write_uint8, + MP_QSTR_coinjoin_flags, + MP_QSTR_private_key, + MP_QSTR_tweak_secret_key, + MP_QSTR_multiply, + MP_QSTR_write_bytes_reversed, + MP_QSTR_prev_hash, + MP_QSTR_TX_HASH_SIZE, + MP_QSTR_prev_index, + MP_QSTR_get_digest, + MP_QSTR_COINJOIN_FLAGS_SIGNABLE, + MP_QSTR_COINJOIN_FLAGS_NO_FEE, + MP_QSTR__verify_coinjoin_request, + MP_QSTR_h_prevouts, + MP_QSTR_h_outputs, + MP_QSTR_COINJOIN_REQ_PUBKEY_TEST, + MP_QSTR_signature, + MP_QSTR_COINJOIN_REQ_PUBKEY, + MP_QSTR_FEE_RATE_DECIMALS, + MP_QSTR_max_fee_per_kvbyte, + MP_QSTR_max_coordinator_fee_rate, + MP_QSTR_get_weight, + MP_QSTR_get_base_weight, + MP_QSTR_MIN_REGISTRABLE_OUTPUT_AMOUNT, + MP_QSTR_MAX_OUTPUT_WEIGHT, + MP_QSTR_approve_sign_tx, + MP_QSTR_check_internal_output, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_self, + MP_QSTR_txi, + MP_QSTR_node, + MP_QSTR_txo, + MP_QSTR_script_pubkey, + MP_QSTR_msg, + MP_QSTR_orig_txo, + MP_QSTR_orig_txs, + MP_QSTR_NotImplementedError, + MP_QSTR__star_, + MP_QSTR_super, + MP_QSTR_bool, + MP_QSTR_any, + MP_QSTR_len, + MP_QSTR_isinstance, + MP_QSTR_min, + MP_QSTR_pow, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_approvers_0 = {{&mp_type_bytes}, 62358, 33, (const byte*)"\x02\x57\x03\xbb\xe1\x5b\xb0\x8e\x98\x21\xfe\x64\xaf\xf6\xb2\xef\x1a\x31\x60\xe3\x79\x9d\xd8\xf0\xce\xbf\x2c\x79\xe8\x67\xdd\x12\x5d"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_approvers_1 = {{&mp_type_bytes}, 2909, 33, (const byte*)"\x03\x0f\xdf\x5e\x28\x9b\x5a\xef\x53\x62\x90\x95\x3a\xe8\x1c\xe6\x0e\x84\x1f\xf9\x56\xf3\x66\xac\x12\x3f\xa6\x9d\xb3\xc7\x9f\x21\xb0"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_approvers_2 = {{&mp_type_str}, 28214, 28, (const byte*)"\x55\x6e\x76\x65\x72\x69\x66\x69\x61\x62\x6c\x65\x20\x65\x78\x74\x65\x72\x6e\x61\x6c\x20\x69\x6e\x70\x75\x74\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_approvers_3 = {{&mp_type_str}, 4745, 38, (const byte*)"\x54\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x68\x61\x73\x20\x63\x68\x61\x6e\x67\x65\x64\x20\x64\x75\x72\x69\x6e\x67\x20\x73\x69\x67\x6e\x69\x6e\x67"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_approvers_4 = {{&mp_type_str}, 50838, 50, (const byte*)"\x52\x65\x64\x75\x63\x69\x6e\x67\x20\x6f\x72\x69\x67\x69\x6e\x61\x6c\x20\x6f\x75\x74\x70\x75\x74\x20\x61\x6d\x6f\x75\x6e\x74\x73\x20\x69\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_approvers_5 = {{&mp_type_str}, 2610, 52, (const byte*)"\x49\x6e\x63\x72\x65\x61\x73\x69\x6e\x67\x20\x6f\x72\x69\x67\x69\x6e\x61\x6c\x20\x6f\x75\x74\x70\x75\x74\x20\x61\x6d\x6f\x75\x6e\x74\x73\x20\x69\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_approvers_6 = {{&mp_type_str}, 2303, 74, (const byte*)"\x41\x64\x64\x69\x6e\x67\x20\x6e\x65\x77\x20\x4f\x50\x5f\x52\x45\x54\x55\x52\x4e\x20\x6f\x75\x74\x70\x75\x74\x73\x20\x69\x6e\x20\x72\x65\x70\x6c\x61\x63\x65\x6d\x65\x6e\x74\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x73\x20\x69\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_approvers_7 = {{&mp_type_str}, 61320, 31, (const byte*)"\x4d\x69\x73\x73\x69\x6e\x67\x20\x70\x61\x79\x6d\x65\x6e\x74\x20\x72\x65\x71\x75\x65\x73\x74\x20\x61\x6d\x6f\x75\x6e\x74\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_approvers_12 = {{&mp_type_str}, 38061, 29, (const byte*)"\x54\x68\x65\x20\x66\x65\x65\x20\x69\x73\x20\x75\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x6c\x79\x20\x6c\x61\x72\x67\x65"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_approvers_13 = {{&mp_type_str}, 20763, 55, (const byte*)"\x4e\x65\x67\x61\x74\x69\x76\x65\x20\x66\x65\x65\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x69\x6e\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x72\x65\x70\x6c\x61\x63\x65\x6d\x65\x6e\x74\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_approvers_14 = {{&mp_type_str}, 20832, 32, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x72\x65\x70\x6c\x61\x63\x65\x6d\x65\x6e\x74\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_approvers_15 = {{&mp_type_str}, 48559, 84, (const byte*)"\x4f\x72\x69\x67\x69\x6e\x61\x6c\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x73\x20\x6d\x75\x73\x74\x20\x68\x61\x76\x65\x20\x73\x61\x6d\x65\x20\x65\x66\x66\x65\x63\x74\x69\x76\x65\x20\x6e\x4c\x6f\x63\x6b\x54\x69\x6d\x65\x20\x61\x73\x20\x72\x65\x70\x6c\x61\x63\x65\x6d\x65\x6e\x74\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_approvers_16 = {{&mp_type_str}, 47799, 25, (const byte*)"\x4d\x69\x73\x73\x69\x6e\x67\x20\x63\x6f\x69\x6e\x6a\x6f\x69\x6e\x20\x72\x65\x71\x75\x65\x73\x74\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_approvers_17 = {{&mp_type_bytes}, 55247, 4, (const byte*)"\x43\x4a\x52\x31"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_approvers_20 = {{&mp_type_str}, 13871, 28, (const byte*)"\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x73\x69\x67\x6e\x61\x74\x75\x72\x65\x20\x68\x61\x73\x68\x65\x72\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_approvers_21 = {{&mp_type_str}, 32385, 38, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x73\x69\x67\x6e\x61\x74\x75\x72\x65\x20\x69\x6e\x20\x63\x6f\x69\x6e\x6a\x6f\x69\x6e\x20\x72\x65\x71\x75\x65\x73\x74\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_approvers_22 = {{&mp_type_str}, 17174, 25, (const byte*)"\x54\x6f\x74\x61\x6c\x20\x66\x65\x65\x20\x6f\x76\x65\x72\x20\x74\x68\x72\x65\x73\x68\x6f\x6c\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_approvers_23 = {{&mp_type_str}, 1634, 35, (const byte*)"\x45\x78\x63\x65\x65\x64\x65\x64\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x63\x6f\x69\x6e\x6a\x6f\x69\x6e\x20\x72\x6f\x75\x6e\x64\x73\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_approvers_24 = {{&mp_type_str}, 14149, 27, (const byte*)"\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x70\x61\x79\x6d\x65\x6e\x74\x20\x72\x65\x71\x75\x65\x73\x74\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_sign_tx_approvers[25] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_approvers_0), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_approvers_1), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_approvers_2), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_approvers_3), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_approvers_4), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_approvers_5), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_approvers_6), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_approvers_7), + MP_ROM_QSTR(MP_QSTR_Finalize_space_transaction), + MP_ROM_QSTR(MP_QSTR_Meld_space_transactions), + MP_ROM_QSTR(MP_QSTR_Update_space_transaction), + MP_ROM_QSTR(MP_QSTR_Not_space_enough_space_funds), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_approvers_12), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_approvers_13), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_approvers_14), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_approvers_15), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_approvers_16), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_approvers_17), + MP_ROM_QSTR(MP_QSTR_Unauthorized_space_path), + MP_ROM_QSTR(MP_QSTR_Unauthorized_space_input), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_approvers_20), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_approvers_21), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_approvers_22), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_approvers_23), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_approvers_24), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_sign_tx_approvers = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_sign_tx_approvers, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_sign_tx_approvers, + }, + .rc = &raw_code_apps_bitcoin_sign_tx_approvers__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_sign_tx_bitcoin +// - original source file: build/firmware/src/apps/bitcoin/sign_tx/bitcoin.mpy +// - frozen file name: apps/bitcoin/sign_tx/bitcoin.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin__lt_module_gt_ +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin__lt_module_gt_[290] = { + 0x28,0x2a, // prelude + 0x01, // names: + 0x6c,0x2c,0x2c,0x2c,0x32,0x52,0x4c,0x1f,0x25,0x38,0x2c,0x2c,0x2c,0x2c,0x32,0x2c,0x4c,0x80,0x11,0x6a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'workflow' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor' + 0x1c,0x04, // IMPORT_FROM 'workflow' + 0x16,0x04, // STORE_NAME 'workflow' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x06, // IMPORT_FROM 'sha256' + 0x16,0x06, // STORE_NAME 'sha256' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'InputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.enums' + 0x1c,0x08, // IMPORT_FROM 'InputScriptType' + 0x16,0x08, // STORE_NAME 'InputScriptType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'HashWriter' + 0x10,0x0b, // LOAD_CONST_STRING 'empty_bytearray' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0c, // IMPORT_NAME 'trezor.utils' + 0x1c,0x0a, // IMPORT_FROM 'HashWriter' + 0x16,0x0a, // STORE_NAME 'HashWriter' + 0x1c,0x0b, // IMPORT_FROM 'empty_bytearray' + 0x16,0x0b, // STORE_NAME 'empty_bytearray' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'DataError' + 0x10,0x0e, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0f, // IMPORT_NAME 'trezor.wire' + 0x1c,0x0d, // IMPORT_FROM 'DataError' + 0x16,0x0d, // STORE_NAME 'DataError' + 0x1c,0x0e, // IMPORT_FROM 'ProcessError' + 0x16,0x0e, // STORE_NAME 'ProcessError' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'write_compact_size' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'apps.common.writers' + 0x1c,0x10, // IMPORT_FROM 'write_compact_size' + 0x16,0x10, // STORE_NAME 'write_compact_size' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x12, // LOAD_CONST_STRING 'addresses' + 0x10,0x13, // LOAD_CONST_STRING 'common' + 0x10,0x14, // LOAD_CONST_STRING 'multisig' + 0x10,0x15, // LOAD_CONST_STRING 'scripts' + 0x10,0x16, // LOAD_CONST_STRING 'writers' + 0x2a,0x05, // BUILD_TUPLE 5 + 0x1b,0x17, // IMPORT_NAME '' + 0x1c,0x12, // IMPORT_FROM 'addresses' + 0x16,0x12, // STORE_NAME 'addresses' + 0x1c,0x13, // IMPORT_FROM 'common' + 0x16,0x13, // STORE_NAME 'common' + 0x1c,0x14, // IMPORT_FROM 'multisig' + 0x16,0x14, // STORE_NAME 'multisig' + 0x1c,0x15, // IMPORT_FROM 'scripts' + 0x16,0x15, // STORE_NAME 'scripts' + 0x1c,0x16, // IMPORT_FROM 'writers' + 0x16,0x16, // STORE_NAME 'writers' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x18, // LOAD_CONST_STRING 'SigHashType' + 0x10,0x19, // LOAD_CONST_STRING 'ecdsa_sign' + 0x10,0x1a, // LOAD_CONST_STRING 'input_is_external' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x13, // IMPORT_NAME 'common' + 0x1c,0x18, // IMPORT_FROM 'SigHashType' + 0x16,0x18, // STORE_NAME 'SigHashType' + 0x1c,0x19, // IMPORT_FROM 'ecdsa_sign' + 0x16,0x19, // STORE_NAME 'ecdsa_sign' + 0x1c,0x1a, // IMPORT_FROM 'input_is_external' + 0x16,0x1a, // STORE_NAME 'input_is_external' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x1b, // LOAD_CONST_STRING 'verify_nonownership' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1c, // IMPORT_NAME 'ownership' + 0x1c,0x1b, // IMPORT_FROM 'verify_nonownership' + 0x16,0x1b, // STORE_NAME 'verify_nonownership' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x1d, // LOAD_CONST_STRING 'SignatureVerifier' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME 'verification' + 0x1c,0x1d, // IMPORT_FROM 'SignatureVerifier' + 0x16,0x1d, // STORE_NAME 'SignatureVerifier' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1f, // LOAD_CONST_STRING 'helpers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x17, // IMPORT_NAME '' + 0x1c,0x1f, // IMPORT_FROM 'helpers' + 0x16,0x1f, // STORE_NAME 'helpers' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x20, // LOAD_CONST_STRING 'CoinJoinApprover' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x21, // IMPORT_NAME 'approvers' + 0x1c,0x20, // IMPORT_FROM 'CoinJoinApprover' + 0x16,0x20, // STORE_NAME 'CoinJoinApprover' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x22, // LOAD_CONST_STRING 'request_tx_input' + 0x10,0x23, // LOAD_CONST_STRING 'request_tx_output' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x1f, // IMPORT_NAME 'helpers' + 0x1c,0x22, // IMPORT_FROM 'request_tx_input' + 0x16,0x22, // STORE_NAME 'request_tx_input' + 0x1c,0x23, // IMPORT_FROM 'request_tx_output' + 0x16,0x23, // STORE_NAME 'request_tx_output' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x24, // LOAD_CONST_STRING 'progress' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x24, // IMPORT_NAME 'progress' + 0x1c,0x24, // IMPORT_FROM 'progress' + 0x16,0x24, // STORE_NAME 'progress' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x25, // LOAD_CONST_STRING 'OriginalTxInfo' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x26, // IMPORT_NAME 'tx_info' + 0x1c,0x25, // IMPORT_FROM 'OriginalTxInfo' + 0x16,0x25, // STORE_NAME 'OriginalTxInfo' + 0x59, // POP_TOP + 0x11,0x0b, // LOAD_NAME 'empty_bytearray' + 0x22,0x90,0x00, // LOAD_CONST_SMALL_INT 2048 + 0x34,0x01, // CALL_FUNCTION 1 + 0x17,0x81,0x4d, // STORE_GLOBAL '_SERIALIZED_TX_BUFFER' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x27, // LOAD_CONST_STRING 'Bitcoin' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x27, // STORE_NAME 'Bitcoin' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_bitcoin__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin[291] = { + 0x08,0xa2,0x02, // prelude + 0x27, // names: Bitcoin + 0x8b,0x2a,0x84,0x32,0x84,0x3e,0x64,0x64,0x40,0x84,0x2f,0x84,0x13,0x84,0x35,0x84,0x12,0x84,0x09,0x84,0x16,0x84,0x07,0x64,0x60,0x84,0x0f,0x84,0x2e,0x84,0x12,0x84,0x2d,0x84,0x1e,0x84,0x1b,0x85,0x1d,0x84,0x15,0x84,0x07,0x84,0x11,0x85,0x1d,0x85,0x0c,0x84,0x27,0x89,0x4d,0x84,0x13,0x64,0x60,0x84,0x32,0x85,0x07,0x85,0x07,0x85,0x07,0x85,0x14,0x8a,0x08,0x8a,0x08,0x84,0x0b,0x64,0x65,0x40,0x85,0x0f,0x88,0x0d, // code info + 0x11,0x81,0x4e, // LOAD_NAME '__name__' + 0x16,0x81,0x4f, // STORE_NAME '__module__' + 0x10,0x27, // LOAD_CONST_STRING 'Bitcoin' + 0x16,0x81,0x50, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x28, // STORE_NAME 'signer' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x3f, // STORE_NAME '__init__' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x4e, // STORE_NAME 'create_hash_writer' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x4f, // STORE_NAME 'create_sig_hasher' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x2d, // STORE_NAME 'step1_process_inputs' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x30, // STORE_NAME 'step2_approve_outputs' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x3a, // STORE_NAME 'step3_verify_inputs' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x3b, // STORE_NAME 'step4_serialize_inputs' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x3c, // STORE_NAME 'step5_serialize_outputs' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x3d, // STORE_NAME 'step6_sign_segwit_inputs' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x3e, // STORE_NAME 'step7_finish' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x5f, // STORE_NAME 'process_internal_input' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x5c, // STORE_NAME 'process_external_input' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x63, // STORE_NAME 'process_original_input' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x16,0x6c, // STORE_NAME 'fetch_removed_original_outputs' + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x16,0x6a, // STORE_NAME 'get_original_output' + 0x32,0x10, // MAKE_FUNCTION 16 + 0x16,0x74, // STORE_NAME 'verify_original_txs' + 0x32,0x11, // MAKE_FUNCTION 17 + 0x16,0x6b, // STORE_NAME 'approve_output' + 0x32,0x12, // MAKE_FUNCTION 18 + 0x16,0x81,0x0d, // STORE_NAME 'get_tx_digest' + 0x32,0x13, // MAKE_FUNCTION 19 + 0x16,0x6e, // STORE_NAME 'verify_presigned_external_input' + 0x32,0x14, // MAKE_FUNCTION 20 + 0x16,0x76, // STORE_NAME 'serialize_external_input' + 0x32,0x15, // MAKE_FUNCTION 21 + 0x16,0x77, // STORE_NAME 'serialize_segwit_input' + 0x32,0x16, // MAKE_FUNCTION 22 + 0x16,0x81,0x21, // STORE_NAME 'sign_bip143_input' + 0x32,0x17, // MAKE_FUNCTION 23 + 0x16,0x81,0x24, // STORE_NAME 'sign_taproot_input' + 0x32,0x18, // MAKE_FUNCTION 24 + 0x16,0x7c, // STORE_NAME 'sign_segwit_input' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x19, // MAKE_FUNCTION_DEFARGS 25 + 0x16,0x81,0x1a, // STORE_NAME 'get_legacy_tx_digest' + 0x32,0x1a, // MAKE_FUNCTION 26 + 0x16,0x78, // STORE_NAME 'sign_nonsegwit_input' + 0x32,0x1b, // MAKE_FUNCTION 27 + 0x16,0x79, // STORE_NAME 'serialize_output' + 0x32,0x1c, // MAKE_FUNCTION 28 + 0x16,0x70, // STORE_NAME 'get_prevtx_output' + 0x32,0x1d, // MAKE_FUNCTION 29 + 0x16,0x81,0x3b, // STORE_NAME 'check_prevtx_output' + 0x32,0x1e, // MAKE_FUNCTION 30 + 0x16,0x81,0x19, // STORE_NAME 'get_hash_type' + 0x32,0x1f, // MAKE_FUNCTION 31 + 0x16,0x81,0x0c, // STORE_NAME 'get_sighash_type' + 0x32,0x20, // MAKE_FUNCTION 32 + 0x16,0x81,0x20, // STORE_NAME 'write_tx_input_derived' + 0x11,0x81,0x51, // LOAD_NAME 'staticmethod' + 0x32,0x21, // MAKE_FUNCTION 33 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x81,0x1b, // STORE_NAME 'write_tx_input' + 0x11,0x81,0x51, // LOAD_NAME 'staticmethod' + 0x32,0x22, // MAKE_FUNCTION 34 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x81,0x32, // STORE_NAME 'write_tx_output' + 0x32,0x23, // MAKE_FUNCTION 35 + 0x16,0x75, // STORE_NAME 'write_tx_header' + 0x32,0x24, // MAKE_FUNCTION 36 + 0x16,0x7d, // STORE_NAME 'write_tx_footer' + 0x32,0x25, // MAKE_FUNCTION 37 + 0x16,0x81,0x3c, // STORE_NAME 'write_prev_tx_footer' + 0x32,0x26, // MAKE_FUNCTION 38 + 0x16,0x81,0x2b, // STORE_NAME 'set_serialized_signature' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x27, // MAKE_FUNCTION_DEFARGS 39 + 0x16,0x60, // STORE_NAME 'input_derive_script' + 0x32,0x28, // MAKE_FUNCTION 40 + 0x16,0x69, // STORE_NAME 'output_derive_script' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_signer +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_signer[209] = { + 0xd1,0x40,0x3a, // prelude + 0x28,0x81,0x52, // names: signer, self + 0x80,0x2b,0x24,0x75,0x20,0x69,0x71,0x20,0x69,0x51,0x24,0x28,0x28,0x28,0x23,0x23,0x23,0x25,0x66,0x40,0x65,0x40,0x69,0x69,0x69,0x69, // code info + 0x12,0x24, // LOAD_GLOBAL 'progress' + 0x14,0x29, // LOAD_METHOD 'init' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x13,0x2a, // LOAD_ATTR 'tx' + 0x10,0x2b, // LOAD_CONST_STRING 'is_coinjoin' + 0x12,0x81,0x53, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x13,0x2c, // LOAD_ATTR 'approver' + 0x12,0x20, // LOAD_GLOBAL 'CoinJoinApprover' + 0x34,0x02, // CALL_FUNCTION 2 + 0x36,0x82,0x01, // CALL_METHOD 257 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x2d, // LOAD_METHOD 'step1_process_inputs' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x2c, // LOAD_ATTR 'approver' + 0x14,0x2e, // LOAD_METHOD 'approve_orig_txids' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'orig_txs' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x30, // LOAD_METHOD 'step2_approve_outputs' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x2c, // LOAD_ATTR 'approver' + 0x14,0x31, // LOAD_METHOD 'approve_tx' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'orig_txs' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x24, // LOAD_GLOBAL 'progress' + 0x14,0x32, // LOAD_METHOD 'init_signing' + 0x12,0x81,0x54, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x33, // LOAD_ATTR 'external' + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x81,0x54, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'segwit' + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x81,0x54, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'presigned' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'taproot_only' + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'serialize' + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x13,0x2a, // LOAD_ATTR 'tx' + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'orig_txs' + 0x36,0x08, // CALL_METHOD 8 + 0x59, // POP_TOP + 0x50, // LOAD_CONST_FALSE + 0x12,0x04, // LOAD_GLOBAL 'workflow' + 0x18,0x39, // STORE_ATTR 'autolock_interrupts_workflow' + 0xb0, // LOAD_FAST 0 + 0x14,0x3a, // LOAD_METHOD 'step3_verify_inputs' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x3b, // LOAD_METHOD 'step4_serialize_inputs' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x3c, // LOAD_METHOD 'step5_serialize_outputs' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x3d, // LOAD_METHOD 'step6_sign_segwit_inputs' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x3e, // LOAD_METHOD 'step7_finish' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_signer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_signer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 209, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_signer + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_signer + 32, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_signer + 32, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin___init__ +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin___init__[226] = { + 0xf9,0x04,0x46, // prelude + 0x3f,0x81,0x52,0x2a,0x46,0x38,0x2c, // names: __init__, self, tx, keychain, coin, approver + 0x80,0x63,0x75,0x60,0x2b,0x4b,0x40,0x2f,0x24,0x44,0x26,0x46,0x6a,0x68,0x68,0x68,0x64,0x2d,0x26,0x26,0x26,0x28,0x28,0x6a,0x60,0x65,0x40,0x64, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x40, // LOAD_CONST_STRING 'TxRequest' + 0x10,0x41, // LOAD_CONST_STRING 'TxRequestDetailsType' + 0x10,0x42, // LOAD_CONST_STRING 'TxRequestSerializedType' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x43, // IMPORT_NAME 'trezor.messages' + 0x1c,0x40, // IMPORT_FROM 'TxRequest' + 0xc5, // STORE_FAST 5 + 0x1c,0x41, // IMPORT_FROM 'TxRequestDetailsType' + 0xc6, // STORE_FAST 6 + 0x1c,0x42, // IMPORT_FROM 'TxRequestSerializedType' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x21, // LOAD_CONST_STRING 'approvers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x17, // IMPORT_NAME '' + 0x1c,0x21, // IMPORT_FROM 'approvers' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x44, // LOAD_CONST_STRING 'TxInfo' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x26, // IMPORT_NAME 'tx_info' + 0x1c,0x44, // IMPORT_FROM 'TxInfo' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x12,0x1f, // LOAD_GLOBAL 'helpers' + 0x14,0x45, // LOAD_METHOD 'sanitize_sign_tx' + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x26, // STORE_ATTR 'tx_info' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x46, // STORE_ATTR 'keychain' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x38, // STORE_ATTR 'coin' + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x2c, // STORE_ATTR 'approver' + 0x42,0x4a, // JUMP 10 + 0xb8, // LOAD_FAST 8 + 0x14,0x47, // LOAD_METHOD 'BasicApprover' + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x2c, // STORE_ATTR 'approver' + 0x12,0x81,0x55, // LOAD_GLOBAL 'set' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x34, // STORE_ATTR 'segwit' + 0x12,0x81,0x55, // LOAD_GLOBAL 'set' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x33, // STORE_ATTR 'external' + 0x12,0x81,0x55, // LOAD_GLOBAL 'set' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x35, // STORE_ATTR 'presigned' + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x36, // STORE_ATTR 'taproot_only' + 0x12,0x81,0x56, // LOAD_GLOBAL 'bytes' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x81,0x4d, // LOAD_GLOBAL '_SERIALIZED_TX_BUFFER' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0x12,0x81,0x4d, // LOAD_GLOBAL '_SERIALIZED_TX_BUFFER' + 0xb0, // LOAD_FAST 0 + 0x18,0x48, // STORE_ATTR 'serialized_tx' + 0xb1, // LOAD_FAST 1 + 0x13,0x37, // LOAD_ATTR 'serialize' + 0xb0, // LOAD_FAST 0 + 0x18,0x37, // STORE_ATTR 'serialize' + 0xb5, // LOAD_FAST 5 + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x49, // STORE_ATTR 'tx_req' + 0xb6, // LOAD_FAST 6 + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0x18,0x4a, // STORE_ATTR 'details' + 0xb7, // LOAD_FAST 7 + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0x18,0x4b, // STORE_ATTR 'serialized' + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'serialized_tx' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0x13,0x4b, // LOAD_ATTR 'serialized' + 0x18,0x48, // STORE_ATTR 'serialized_tx' + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'orig_txs' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x4c, // STORE_ATTR 'h_presigned_inputs' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x4d, // STORE_ATTR 'payment_req_index' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 226, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 63, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin___init__ + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin___init__ + 38, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin___init__ + 38, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_create_hash_writer +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_create_hash_writer[16] = { + 0x11,0x0a, // prelude + 0x4e,0x81,0x52, // names: create_hash_writer, self + 0x80,0x9b, // code info + 0x12,0x0a, // LOAD_GLOBAL 'HashWriter' + 0x12,0x06, // LOAD_GLOBAL 'sha256' + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_create_hash_writer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_create_hash_writer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 78, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_create_hash_writer + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_create_hash_writer + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_create_hash_writer + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_create_sig_hasher +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_create_sig_hasher[24] = { + 0x22,0x0e, // prelude + 0x4f,0x81,0x52,0x2a, // names: create_sig_hasher, self, tx + 0x80,0x9e,0x4b, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x50, // LOAD_CONST_STRING 'BitcoinSigHasher' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x51, // IMPORT_NAME 'sig_hasher' + 0x1c,0x50, // IMPORT_FROM 'BitcoinSigHasher' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x34,0x00, // CALL_FUNCTION 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_create_sig_hasher = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_create_sig_hasher, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 79, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_create_sig_hasher + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_create_sig_hasher + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_create_sig_hasher + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_step1_process_inputs +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step1_process_inputs[313] = { + 0xf1,0x40,0x48, // prelude + 0x2d,0x81,0x52, // names: step1_process_inputs, self + 0x80,0xa3,0x4b,0x24,0x49,0x4b,0x27,0x2f,0x23,0x24,0x4a,0x44,0x26,0x49,0x27,0x22,0x29,0x2a,0x29,0x29,0x4c,0x2b,0x4b,0x28,0x4a,0x25,0x55,0x28,0x68,0x27,0x28,0x2b,0x47, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x52, // LOAD_CONST_STRING 'input_is_segwit' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME 'common' + 0x1c,0x52, // IMPORT_FROM 'input_is_segwit' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0xc2, // STORE_FAST 2 + 0x12,0x0a, // LOAD_GLOBAL 'HashWriter' + 0x12,0x06, // LOAD_GLOBAL 'sha256' + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x2a, // LOAD_ATTR 'tx' + 0x13,0x53, // LOAD_ATTR 'inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xb0,0x81, // JUMP 176 + 0x57, // DUP_TOP + 0xc4, // STORE_FAST 4 + 0x12,0x24, // LOAD_GLOBAL 'progress' + 0x14,0x54, // LOAD_METHOD 'advance' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x22, // LOAD_GLOBAL 'request_tx_input' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x13,0x55, // LOAD_ATTR 'script_type' + 0x12,0x08, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x56, // LOAD_ATTR 'SPENDTAPROOT' + 0x12,0x08, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x57, // LOAD_ATTR 'EXTERNAL' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x36, // STORE_ATTR 'taproot_only' + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'segwit' + 0x14,0x58, // LOAD_METHOD 'add' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x1a, // LOAD_GLOBAL 'input_is_external' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x73, // POP_JUMP_IF_FALSE 51 + 0x51, // LOAD_CONST_NONE + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x33, // LOAD_ATTR 'external' + 0x14,0x58, // LOAD_METHOD 'add' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x13,0x59, // LOAD_ATTR 'witness' + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb5, // LOAD_FAST 5 + 0x13,0x5a, // LOAD_ATTR 'script_sig' + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'presigned' + 0x14,0x58, // LOAD_METHOD 'add' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'writers' + 0x14,0x5b, // LOAD_METHOD 'write_tx_input_check' + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x5c, // LOAD_METHOD 'process_external_input' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x56, // JUMP 22 + 0xb0, // LOAD_FAST 0 + 0x13,0x46, // LOAD_ATTR 'keychain' + 0x14,0x5d, // LOAD_METHOD 'derive' + 0xb5, // LOAD_FAST 5 + 0x13,0x5e, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x14,0x5f, // LOAD_METHOD 'process_internal_input' + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x60, // LOAD_METHOD 'input_derive_script' + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x36,0x02, // CALL_METHOD 2 + 0xc7, // STORE_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x14,0x61, // LOAD_METHOD 'add_input' + 0xb5, // LOAD_FAST 5 + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x13,0x62, // LOAD_ATTR 'orig_hash' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x14,0x63, // LOAD_METHOD 'process_original_input' + 0xb5, // LOAD_FAST 5 + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xca,0x7e, // POP_JUMP_IF_TRUE -182 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x64, // LOAD_METHOD 'get_tx_check_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xb2, // LOAD_FAST 2 + 0x18,0x65, // STORE_ATTR 'h_inputs_check' + 0xb3, // LOAD_FAST 3 + 0x14,0x66, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x4c, // STORE_ATTR 'h_presigned_inputs' + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'orig_txs' + 0x5f, // GET_ITER_STACK + 0x4b,0x21, // FOR_ITER 33 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x14,0x64, // LOAD_METHOD 'get_tx_check_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xb8, // LOAD_FAST 8 + 0x18,0x65, // STORE_ATTR 'h_inputs_check' + 0xb8, // LOAD_FAST 8 + 0x13,0x67, // LOAD_ATTR 'index' + 0xb8, // LOAD_FAST 8 + 0x13,0x2a, // LOAD_ATTR 'tx' + 0x13,0x53, // LOAD_ATTR 'inputs_count' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb8, // LOAD_FAST 8 + 0x18,0x67, // STORE_ATTR 'index' + 0x42,0x1d, // JUMP -35 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step1_process_inputs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step1_process_inputs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 313, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step1_process_inputs + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step1_process_inputs + 39, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step1_process_inputs + 39, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_step2_approve_outputs +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step2_approve_outputs[139] = { + 0xf1,0x40,0x20, // prelude + 0x30,0x81,0x52, // names: step2_approve_outputs, self + 0x80,0xd2,0x4d,0x27,0x2f,0x27,0x22,0x25,0x2b,0x76,0x47,0x24,0x4e, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x13,0x2a, // LOAD_ATTR 'tx' + 0x13,0x68, // LOAD_ATTR 'outputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xbf,0x80, // JUMP 63 + 0x57, // DUP_TOP + 0xc1, // STORE_FAST 1 + 0x12,0x24, // LOAD_GLOBAL 'progress' + 0x14,0x54, // LOAD_METHOD 'advance' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x23, // LOAD_GLOBAL 'request_tx_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x69, // LOAD_METHOD 'output_derive_script' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x62, // LOAD_ATTR 'orig_hash' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x14,0x6a, // LOAD_METHOD 'get_original_output' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x6b, // LOAD_METHOD 'approve_output' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xbb,0x7f, // POP_JUMP_IF_TRUE -69 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'orig_txs' + 0x5f, // GET_ITER_STACK + 0x4b,0x1e, // FOR_ITER 30 + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x14,0x6c, // LOAD_METHOD 'fetch_removed_original_outputs' + 0xb5, // LOAD_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x13,0x62, // LOAD_ATTR 'orig_hash' + 0xb5, // LOAD_FAST 5 + 0x13,0x2a, // LOAD_ATTR 'tx' + 0x13,0x68, // LOAD_ATTR 'outputs_count' + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x6d, // LOAD_METHOD 'finalize_tx_hash' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x20, // JUMP -32 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step2_approve_outputs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step2_approve_outputs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 139, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 48, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step2_approve_outputs + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step2_approve_outputs + 19, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step2_approve_outputs + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_step3_verify_inputs +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step3_verify_inputs[279] = { + 0xe9,0x40,0x42, // prelude + 0x3a,0x81,0x52, // names: step3_verify_inputs, self + 0x80,0xe6,0x49,0x66,0x20,0x24,0x2c,0x27,0x27,0x2f,0x69,0x20,0x25,0x75,0x80,0x08,0x26,0x2d,0x2f,0x49,0x23,0x4f,0x27,0x47,0x2a,0x47,0x27,0x76,0x29,0x67, // code info + 0x12,0x0a, // LOAD_GLOBAL 'HashWriter' + 0x12,0x06, // LOAD_GLOBAL 'sha256' + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'taproot_only' + 0x44,0xd0,0x80, // POP_JUMP_IF_FALSE 80 + 0xb0, // LOAD_FAST 0 + 0x13,0x4c, // LOAD_ATTR 'h_presigned_inputs' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x13,0x2a, // LOAD_ATTR 'tx' + 0x13,0x53, // LOAD_ATTR 'inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x78, // JUMP 56 + 0x57, // DUP_TOP + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'presigned' + 0xdd, // BINARY_OP 6 + 0x44,0x6d, // POP_JUMP_IF_FALSE 45 + 0x12,0x24, // LOAD_GLOBAL 'progress' + 0x14,0x54, // LOAD_METHOD 'advance' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x22, // LOAD_GLOBAL 'request_tx_input' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0x12,0x16, // LOAD_GLOBAL 'writers' + 0x14,0x5b, // LOAD_METHOD 'write_tx_input_check' + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x6e, // LOAD_METHOD 'verify_presigned_external_input' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x13,0x6f, // LOAD_ATTR 'script_pubkey' + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x03, // POP_JUMP_IF_TRUE -61 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x42,0xf9,0x80, // JUMP 121 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x13,0x65, // LOAD_ATTR 'h_inputs_check' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x13,0x2a, // LOAD_ATTR 'tx' + 0x13,0x53, // LOAD_ATTR 'inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xe0,0x80, // JUMP 96 + 0x57, // DUP_TOP + 0xc3, // STORE_FAST 3 + 0x12,0x22, // LOAD_GLOBAL 'request_tx_input' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0x12,0x16, // LOAD_GLOBAL 'writers' + 0x14,0x5b, // LOAD_METHOD 'write_tx_input_check' + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x70, // LOAD_METHOD 'get_prevtx_output' + 0xb4, // LOAD_FAST 4 + 0x13,0x71, // LOAD_ATTR 'prev_hash' + 0xb4, // LOAD_FAST 4 + 0x13,0x72, // LOAD_ATTR 'prev_index' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc5, // STORE_FAST 5 + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x13,0x73, // LOAD_ATTR 'amount' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0d, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x14,0x60, // LOAD_METHOD 'input_derive_script' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0d, // LOAD_GLOBAL 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'presigned' + 0xdd, // BINARY_OP 6 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb0, // LOAD_FAST 0 + 0x14,0x6e, // LOAD_METHOD 'verify_presigned_external_input' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x9a,0x7f, // POP_JUMP_IF_TRUE -102 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x66, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xb2, // LOAD_FAST 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x14,0x74, // LOAD_METHOD 'verify_original_txs' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step3_verify_inputs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step3_verify_inputs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 279, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 58, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step3_verify_inputs + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step3_verify_inputs + 36, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step3_verify_inputs + 36, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_step4_serialize_inputs +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step4_serialize_inputs[167] = { + 0xb9,0x40,0x24, // prelude + 0x3b,0x81,0x52, // names: step4_serialize_inputs, self + 0x90,0x1a,0x25,0x36,0x4f,0x2d,0x27,0x25,0x27,0x2c,0x27,0x25,0x27,0x4c,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'serialize' + 0x44,0x65, // POP_JUMP_IF_FALSE 37 + 0xb0, // LOAD_FAST 0 + 0x14,0x75, // LOAD_METHOD 'write_tx_header' + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'serialized_tx' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x13,0x2a, // LOAD_ATTR 'tx' + 0x12,0x81,0x57, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'segwit' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'write_compact_size' + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'serialized_tx' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x13,0x2a, // LOAD_ATTR 'tx' + 0x13,0x53, // LOAD_ATTR 'inputs_count' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x13,0x2a, // LOAD_ATTR 'tx' + 0x13,0x53, // LOAD_ATTR 'inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xd3,0x80, // JUMP 83 + 0x57, // DUP_TOP + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x33, // LOAD_ATTR 'external' + 0xdd, // BINARY_OP 6 + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'serialize' + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x12,0x24, // LOAD_GLOBAL 'progress' + 0x14,0x54, // LOAD_METHOD 'advance' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x76, // LOAD_METHOD 'serialize_external_input' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x70, // JUMP 48 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'segwit' + 0xdd, // BINARY_OP 6 + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'serialize' + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x12,0x24, // LOAD_GLOBAL 'progress' + 0x14,0x54, // LOAD_METHOD 'advance' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x77, // LOAD_METHOD 'serialize_segwit_input' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x51, // JUMP 17 + 0x12,0x24, // LOAD_GLOBAL 'progress' + 0x14,0x54, // LOAD_METHOD 'advance' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x78, // LOAD_METHOD 'sign_nonsegwit_input' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xa7,0x7f, // POP_JUMP_IF_TRUE -89 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step4_serialize_inputs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step4_serialize_inputs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 167, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 59, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step4_serialize_inputs + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step4_serialize_inputs + 21, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step4_serialize_inputs + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_step5_serialize_outputs +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step5_serialize_outputs[75] = { + 0xb1,0x40,0x14, // prelude + 0x3c,0x81,0x52, // names: step5_serialize_outputs, self + 0x90,0x2c,0x25,0x42,0x2f,0x2c,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'serialize' + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x10, // LOAD_GLOBAL 'write_compact_size' + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'serialized_tx' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x13,0x2a, // LOAD_ATTR 'tx' + 0x13,0x68, // LOAD_ATTR 'outputs_count' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x13,0x2a, // LOAD_ATTR 'tx' + 0x13,0x68, // LOAD_ATTR 'outputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x55, // JUMP 21 + 0x57, // DUP_TOP + 0xc1, // STORE_FAST 1 + 0x12,0x24, // LOAD_GLOBAL 'progress' + 0x14,0x54, // LOAD_METHOD 'advance' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x79, // LOAD_METHOD 'serialize_output' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x26, // POP_JUMP_IF_TRUE -26 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step5_serialize_outputs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step5_serialize_outputs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 75, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 60, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step5_serialize_outputs + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step5_serialize_outputs + 13, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step5_serialize_outputs + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_step6_sign_segwit_inputs +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step6_sign_segwit_inputs[164] = { + 0xc1,0x40,0x26, // prelude + 0x3d,0x81,0x52, // names: step6_sign_segwit_inputs, self + 0x90,0x35,0x25,0x42,0x2d,0x28,0x27,0x25,0x27,0x27,0x2f,0x51,0x4b,0x27,0x6c,0x25, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'segwit' + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x13,0x2a, // LOAD_ATTR 'tx' + 0x13,0x53, // LOAD_ATTR 'inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xf2,0x80, // JUMP 114 + 0x57, // DUP_TOP + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'segwit' + 0xdd, // BINARY_OP 6 + 0x44,0xd8,0x80, // POP_JUMP_IF_FALSE 88 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x33, // LOAD_ATTR 'external' + 0xdd, // BINARY_OP 6 + 0x44,0x7e, // POP_JUMP_IF_FALSE 62 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'serialize' + 0x44,0x77, // POP_JUMP_IF_FALSE 55 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'presigned' + 0xdd, // BINARY_OP 6 + 0x44,0x67, // POP_JUMP_IF_FALSE 39 + 0x12,0x24, // LOAD_GLOBAL 'progress' + 0x14,0x54, // LOAD_METHOD 'advance' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x22, // LOAD_GLOBAL 'request_tx_input' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'serialized_tx' + 0x14,0x7a, // LOAD_METHOD 'extend' + 0xb2, // LOAD_FAST 2 + 0x13,0x59, // LOAD_ATTR 'witness' + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x49, // JUMP 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'serialized_tx' + 0x14,0x7b, // LOAD_METHOD 'append' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x51, // JUMP 17 + 0x12,0x24, // LOAD_GLOBAL 'progress' + 0x14,0x54, // LOAD_METHOD 'advance' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x7c, // LOAD_METHOD 'sign_segwit_input' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x4e, // JUMP 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'serialize' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'serialized_tx' + 0x14,0x7b, // LOAD_METHOD 'append' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x88,0x7f, // POP_JUMP_IF_TRUE -120 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step6_sign_segwit_inputs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step6_sign_segwit_inputs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 164, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 61, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step6_sign_segwit_inputs + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step6_sign_segwit_inputs + 22, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step6_sign_segwit_inputs + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_step7_finish +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step7_finish[45] = { + 0xa1,0x40,0x10, // prelude + 0x3e,0x81,0x52, // names: step7_finish, self + 0x90,0x4b,0x25,0x2e,0x40, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'serialize' + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb0, // LOAD_FAST 0 + 0x14,0x7d, // LOAD_METHOD 'write_tx_footer' + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'serialized_tx' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x13,0x2a, // LOAD_ATTR 'tx' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x1f, // LOAD_GLOBAL 'helpers' + 0x14,0x7e, // LOAD_METHOD 'request_tx_finish' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step7_finish = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step7_finish, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 62, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step7_finish + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step7_finish + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step7_finish + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_internal_input +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_internal_input[48] = { + 0xb3,0x40,0x16, // prelude + 0x5f,0x81,0x52,0x81,0x58,0x81,0x59, // names: process_internal_input, self, txi, node + 0x90,0x52,0x2b,0x47, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x55, // LOAD_ATTR 'script_type' + 0x12,0x13, // LOAD_GLOBAL 'common' + 0x13,0x7f, // LOAD_ATTR 'INTERNAL_INPUT_SCRIPT_TYPES' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0d, // LOAD_GLOBAL 'DataError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x2c, // LOAD_ATTR 'approver' + 0x14,0x81,0x00, // LOAD_METHOD 'add_internal_input' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_internal_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_internal_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 95, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_internal_input + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_internal_input + 14, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_internal_input + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_external_input +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_external_input[67] = { + 0xba,0x40,0x20, // prelude + 0x5c,0x81,0x52,0x81,0x58, // names: process_external_input, self, txi + 0x90,0x58,0x40,0x4a,0x26,0x22,0x24,0x23,0x24,0x23,0x47, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x2c, // LOAD_ATTR 'approver' + 0x14,0x81,0x01, // LOAD_METHOD 'add_external_input' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x02, // LOAD_ATTR 'ownership_proof' + 0x44,0x5e, // POP_JUMP_IF_FALSE 30 + 0x12,0x1b, // LOAD_GLOBAL 'verify_nonownership' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x02, // LOAD_ATTR 'ownership_proof' + 0xb1, // LOAD_FAST 1 + 0x13,0x6f, // LOAD_ATTR 'script_pubkey' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x03, // LOAD_ATTR 'commitment_data' + 0xb0, // LOAD_FAST 0 + 0x13,0x46, // LOAD_ATTR 'keychain' + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0x34,0x05, // CALL_FUNCTION 5 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x0d, // LOAD_GLOBAL 'DataError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_external_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_external_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 67, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 92, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_external_input + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_external_input + 19, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_external_input + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_original_input +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_original_input[221] = { + 0xeb,0x40,0x44, // prelude + 0x63,0x81,0x52,0x81,0x58,0x6f, // names: process_original_input, self, txi, script_pubkey + 0x90,0x67,0x24,0x45,0x20,0x40,0x27,0x27,0x48,0x32,0x28,0x49,0x29,0x47,0x27,0x22,0x65,0x70,0x80,0x08,0x20,0x29,0x29,0x29,0x29,0x4a,0x47,0x28, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x62, // LOAD_ATTR 'orig_hash' + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x04, // LOAD_ATTR 'orig_index' + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'orig_txs' + 0x5f, // GET_ITER_STACK + 0x4b,0x10, // FOR_ITER 16 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x13,0x62, // LOAD_ATTR 'orig_hash' + 0xb3, // LOAD_FAST 3 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x42,0x65, // JUMP 37 + 0x42,0x2e, // JUMP -18 + 0x12,0x1f, // LOAD_GLOBAL 'helpers' + 0x14,0x81,0x05, // LOAD_METHOD 'request_tx_meta' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc6, // STORE_FAST 6 + 0x12,0x25, // LOAD_GLOBAL 'OriginalTxInfo' + 0xb0, // LOAD_FAST 0 + 0xb6, // LOAD_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'orig_txs' + 0x14,0x7b, // LOAD_METHOD 'append' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x13,0x2a, // LOAD_ATTR 'tx' + 0x13,0x53, // LOAD_ATTR 'inputs_count' + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0x13,0x67, // LOAD_ATTR 'index' + 0xb4, // LOAD_FAST 4 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x22, // LOAD_GLOBAL 'request_tx_input' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0xb3, // LOAD_FAST 3 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x13,0x71, // LOAD_ATTR 'prev_hash' + 0xb1, // LOAD_FAST 1 + 0x13,0x71, // LOAD_ATTR 'prev_hash' + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x65, // POP_JUMP_IF_TRUE 37 + 0xb7, // LOAD_FAST 7 + 0x13,0x72, // LOAD_ATTR 'prev_index' + 0xb1, // LOAD_FAST 1 + 0x13,0x72, // LOAD_ATTR 'prev_index' + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x5c, // POP_JUMP_IF_TRUE 28 + 0xb7, // LOAD_FAST 7 + 0x13,0x73, // LOAD_ATTR 'amount' + 0xb1, // LOAD_FAST 1 + 0x13,0x73, // LOAD_ATTR 'amount' + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x53, // POP_JUMP_IF_TRUE 19 + 0xb7, // LOAD_FAST 7 + 0x13,0x55, // LOAD_ATTR 'script_type' + 0xb1, // LOAD_FAST 1 + 0x13,0x55, // LOAD_ATTR 'script_type' + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x4a, // POP_JUMP_IF_TRUE 10 + 0xb0, // LOAD_FAST 0 + 0x14,0x60, // LOAD_METHOD 'input_derive_script' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0xb2, // LOAD_FAST 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0x14,0x61, // LOAD_METHOD 'add_input' + 0xb7, // LOAD_FAST 7 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x57, // DUP_TOP + 0x13,0x67, // LOAD_ATTR 'index' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x67, // STORE_ATTR 'index' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_original_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_original_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 221, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 99, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_original_input + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_original_input + 37, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_original_input + 37, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_fetch_removed_original_outputs +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_fetch_removed_original_outputs[102] = { + 0xd0,0x44,0x22, // prelude + 0x6c,0x81,0x52,0x81,0x5a,0x62,0x81,0x5b, // names: fetch_removed_original_outputs, self, orig, orig_hash, last_index + 0x90,0x97,0x23,0x32,0x4e,0x49,0x6c,0x22,0x65, // code info + 0x42,0xc5,0x80, // JUMP 69 + 0x12,0x23, // LOAD_GLOBAL 'request_tx_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xb1, // LOAD_FAST 1 + 0x13,0x67, // LOAD_ATTR 'index' + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0xb2, // LOAD_FAST 2 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x06, // LOAD_METHOD 'add_output' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x69, // LOAD_METHOD 'output_derive_script' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x07, // LOAD_METHOD 'output_is_change' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb0, // LOAD_FAST 0 + 0x13,0x2c, // LOAD_ATTR 'approver' + 0x14,0x81,0x08, // LOAD_METHOD 'add_orig_change_output' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x57, // DUP_TOP + 0x13,0x67, // LOAD_ATTR 'index' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x67, // STORE_ATTR 'index' + 0xb1, // LOAD_FAST 1 + 0x13,0x67, // LOAD_ATTR 'index' + 0xb3, // LOAD_FAST 3 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xb3,0x7f, // POP_JUMP_IF_TRUE -77 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_fetch_removed_original_outputs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_fetch_removed_original_outputs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 102, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 108, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_fetch_removed_original_outputs + 11, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_fetch_removed_original_outputs + 20, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_fetch_removed_original_outputs + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_original_output +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_original_output[228] = { + 0xe3,0x40,0x40, // prelude + 0x6a,0x81,0x52,0x81,0x5c,0x6f, // names: get_original_output, self, txo, script_pubkey + 0x90,0xa9,0x24,0x45,0x20,0x40,0x27,0x27,0x48,0x47,0x29,0x47,0x27,0x67,0x4c,0x22,0x70,0x2a,0x47,0x34,0x47,0x49,0x29,0x4c,0x4a,0x49, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x62, // LOAD_ATTR 'orig_hash' + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x04, // LOAD_ATTR 'orig_index' + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'orig_txs' + 0x5f, // GET_ITER_STACK + 0x4b,0x10, // FOR_ITER 16 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x13,0x62, // LOAD_ATTR 'orig_hash' + 0xb3, // LOAD_FAST 3 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x42,0x49, // JUMP 9 + 0x42,0x2e, // JUMP -18 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x13,0x2a, // LOAD_ATTR 'tx' + 0x13,0x68, // LOAD_ATTR 'outputs_count' + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0x13,0x67, // LOAD_ATTR 'index' + 0xb4, // LOAD_FAST 4 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x14,0x6c, // LOAD_METHOD 'fetch_removed_original_outputs' + 0xb5, // LOAD_FAST 5 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x23, // LOAD_GLOBAL 'request_tx_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xb5, // LOAD_FAST 5 + 0x13,0x67, // LOAD_ATTR 'index' + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0xb3, // LOAD_FAST 3 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc6, // STORE_FAST 6 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x69, // LOAD_METHOD 'output_derive_script' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x14,0x81,0x07, // LOAD_METHOD 'output_is_change' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb5, // LOAD_FAST 5 + 0x14,0x81,0x07, // LOAD_METHOD 'output_is_change' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0x14,0x81,0x06, // LOAD_METHOD 'add_output' + 0xb6, // LOAD_FAST 6 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x81,0x07, // LOAD_METHOD 'output_is_change' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb0, // LOAD_FAST 0 + 0x13,0x2c, // LOAD_ATTR 'approver' + 0x14,0x81,0x08, // LOAD_METHOD 'add_orig_change_output' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x4a, // JUMP 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x2c, // LOAD_ATTR 'approver' + 0x14,0x81,0x09, // LOAD_METHOD 'add_orig_external_output' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x57, // DUP_TOP + 0x13,0x67, // LOAD_ATTR 'index' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x67, // STORE_ATTR 'index' + 0xb6, // LOAD_FAST 6 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_original_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_original_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 228, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 106, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_original_output + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_original_output + 35, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_original_output + 35, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_verify_original_txs +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_verify_original_txs[193] = { + 0xa9,0x50,0x2c, // prelude + 0x74,0x81,0x52, // names: verify_original_txs, self + 0x90,0xd4,0x48,0x49,0x2b,0x27,0x32,0x29,0x27,0x23,0x4c,0x24,0x51,0x67,0x20,0x24,0x6b,0x72,0x2b, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'orig_txs' + 0x5f, // GET_ITER_STACK + 0x4b,0x9f,0x01, // FOR_ITER 159 + 0xc1, // STORE_FAST 1 + 0x12,0x0a, // LOAD_GLOBAL 'HashWriter' + 0x12,0x06, // LOAD_GLOBAL 'sha256' + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x2a, // LOAD_ATTR 'tx' + 0x13,0x53, // LOAD_ATTR 'inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xef,0x80, // JUMP 111 + 0x57, // DUP_TOP + 0xc3, // STORE_FAST 3 + 0x12,0x24, // LOAD_GLOBAL 'progress' + 0x14,0x54, // LOAD_METHOD 'advance' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x22, // LOAD_GLOBAL 'request_tx_input' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0xb1, // LOAD_FAST 1 + 0x13,0x62, // LOAD_ATTR 'orig_hash' + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0x12,0x16, // LOAD_GLOBAL 'writers' + 0x14,0x5b, // LOAD_METHOD 'write_tx_input_check' + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x60, // LOAD_METHOD 'input_derive_script' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0x12,0x1d, // LOAD_GLOBAL 'SignatureVerifier' + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x13,0x5a, // LOAD_ATTR 'script_sig' + 0xb4, // LOAD_FAST 4 + 0x13,0x59, // LOAD_ATTR 'witness' + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0x34,0x04, // CALL_FUNCTION 4 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x14,0x81,0x0a, // LOAD_METHOD 'ensure_hash_type' + 0x12,0x18, // LOAD_GLOBAL 'SigHashType' + 0x13,0x81,0x0b, // LOAD_ATTR 'SIGHASH_ALL_TAPROOT' + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0c, // LOAD_METHOD 'get_sighash_type' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0d, // LOAD_METHOD 'get_tx_digest' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0xb6, // LOAD_FAST 6 + 0x13,0x81,0x0e, // LOAD_ATTR 'public_keys' + 0xb6, // LOAD_FAST 6 + 0x13,0x81,0x0f, // LOAD_ATTR 'threshold' + 0xb5, // LOAD_FAST 5 + 0x36,0x06, // CALL_METHOD 6 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc7, // STORE_FAST 7 + 0xb6, // LOAD_FAST 6 + 0x14,0x81,0x10, // LOAD_METHOD 'verify' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x8b,0x7f, // POP_JUMP_IF_TRUE -117 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x66, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x65, // LOAD_ATTR 'h_inputs_check' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0xde,0x7e, // JUMP -162 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_verify_original_txs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_verify_original_txs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 193, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 22, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 116, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_verify_original_txs + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_verify_original_txs + 25, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_verify_original_txs + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_approve_output +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_approve_output[140] = { + 0xd8,0x44,0x2c, // prelude + 0x6b,0x81,0x52,0x81,0x5c,0x6f,0x81,0x5d, // names: approve_output, self, txo, script_pubkey, orig_txo + 0x90,0xf7,0x24,0x44,0x27,0x25,0x4b,0x25,0x4a,0x2e,0x44,0x4b,0x4e,0x4d, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x4d, // LOAD_ATTR 'payment_req_index' + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x2c, // LOAD_ATTR 'approver' + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x4d, // LOAD_ATTR 'payment_req_index' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x71, // POP_JUMP_IF_FALSE 49 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x2c, // LOAD_ATTR 'approver' + 0x14,0x81,0x11, // LOAD_METHOD 'finish_payment_request' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0x5d, // JUMP 29 + 0x12,0x1f, // LOAD_GLOBAL 'helpers' + 0x14,0x81,0x12, // LOAD_METHOD 'request_payment_req' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x14,0x81,0x13, // LOAD_METHOD 'add_payment_request' + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x46, // LOAD_ATTR 'keychain' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x4d, // STORE_ATTR 'payment_req_index' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x14,0x81,0x07, // LOAD_METHOD 'output_is_change' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb5, // LOAD_FAST 5 + 0x14,0x81,0x14, // LOAD_METHOD 'add_change_output' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x4d, // JUMP 13 + 0xb5, // LOAD_FAST 5 + 0x14,0x81,0x15, // LOAD_METHOD 'add_external_output' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x14,0x81,0x06, // LOAD_METHOD 'add_output' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_approve_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_approve_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 140, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 107, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_approve_output + 11, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_approve_output + 25, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_approve_output + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_tx_digest +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_tx_digest[113] = { + 0x93,0x54,0x36, // prelude + 0x81,0x0d,0x81,0x52,0x81,0x5e,0x81,0x58,0x26,0x81,0x0e,0x81,0x0f,0x6f, // names: get_tx_digest, self, i, txi, tx_info, public_keys, threshold, script_pubkey + 0xa0,0x15,0x25,0x2a,0x47,0x23,0x6a,0x69,0x20,0x23,0x23,0x6c,0x31, // code info + 0xb2, // LOAD_FAST 2 + 0x13,0x59, // LOAD_ATTR 'witness' + 0x44,0x79, // POP_JUMP_IF_FALSE 57 + 0x12,0x13, // LOAD_GLOBAL 'common' + 0x14,0x81,0x16, // LOAD_METHOD 'input_is_taproot' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0xb3, // LOAD_FAST 3 + 0x13,0x51, // LOAD_ATTR 'sig_hasher' + 0x14,0x81,0x17, // LOAD_METHOD 'hash341' + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x13,0x2a, // LOAD_ATTR 'tx' + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0c, // LOAD_METHOD 'get_sighash_type' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE + 0xb3, // LOAD_FAST 3 + 0x13,0x51, // LOAD_ATTR 'sig_hasher' + 0x14,0x81,0x18, // LOAD_METHOD 'hash143' + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x13,0x2a, // LOAD_ATTR 'tx' + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x19, // LOAD_METHOD 'get_hash_type' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x06, // CALL_METHOD 6 + 0x63, // RETURN_VALUE + 0x42,0x53, // JUMP 19 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x1a, // LOAD_METHOD 'get_legacy_tx_digest' + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0xb6, // LOAD_FAST 6 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc7, // STORE_FAST 7 + 0xc8, // STORE_FAST 8 + 0xc8, // STORE_FAST 8 + 0xb7, // LOAD_FAST 7 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_tx_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 7, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_tx_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 113, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 141, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_tx_digest + 17, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_tx_digest + 30, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_tx_digest + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_verify_presigned_external_input +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_verify_presigned_external_input[91] = { + 0xe8,0x44,0x24, // prelude + 0x6e,0x81,0x52,0x81,0x5e,0x81,0x58,0x6f, // names: verify_presigned_external_input, self, i, txi, script_pubkey + 0xa0,0x2c,0x23,0x6c,0x24,0x71,0x66,0x23,0x24,0x6b, // code info + 0x12,0x1d, // LOAD_GLOBAL 'SignatureVerifier' + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x5a, // LOAD_ATTR 'script_sig' + 0xb2, // LOAD_FAST 2 + 0x13,0x59, // LOAD_ATTR 'witness' + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0x34,0x04, // CALL_FUNCTION 4 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x14,0x81,0x0a, // LOAD_METHOD 'ensure_hash_type' + 0x12,0x18, // LOAD_GLOBAL 'SigHashType' + 0x13,0x81,0x0b, // LOAD_ATTR 'SIGHASH_ALL_TAPROOT' + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0c, // LOAD_METHOD 'get_sighash_type' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0d, // LOAD_METHOD 'get_tx_digest' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x0e, // LOAD_ATTR 'public_keys' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x0f, // LOAD_ATTR 'threshold' + 0xb3, // LOAD_FAST 3 + 0x36,0x06, // CALL_METHOD 6 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x14,0x81,0x10, // LOAD_METHOD 'verify' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_verify_presigned_external_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_verify_presigned_external_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 91, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 110, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_verify_presigned_external_input + 11, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_verify_presigned_external_input + 21, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_verify_presigned_external_input + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_external_input +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_external_input[65] = { + 0xba,0x40,0x14, // prelude + 0x76,0x81,0x52,0x81,0x5e, // names: serialize_external_input, self, i + 0xa0,0x3f,0x2f,0x27,0x47, // code info + 0x12,0x22, // LOAD_GLOBAL 'request_tx_input' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0x12,0x1a, // LOAD_GLOBAL 'input_is_external' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x1b, // LOAD_METHOD 'write_tx_input' + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'serialized_tx' + 0xb2, // LOAD_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x13,0x5a, // LOAD_ATTR 'script_sig' + 0x45,0x05, // JUMP_IF_TRUE_OR_POP 5 + 0x12,0x81,0x56, // LOAD_GLOBAL 'bytes' + 0x34,0x00, // CALL_FUNCTION 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_external_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_external_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 65, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 118, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_external_input + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_external_input + 13, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_external_input + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_segwit_input +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_segwit_input[112] = { + 0xd2,0x40,0x1e, // prelude + 0x77,0x81,0x52,0x81,0x5e, // names: serialize_segwit_input, self, i + 0xa0,0x47,0x4f,0x2c,0x27,0x4a,0x2b,0x2b,0x69,0x43, // code info + 0x12,0x22, // LOAD_GLOBAL 'request_tx_input' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x13,0x55, // LOAD_ATTR 'script_type' + 0x12,0x13, // LOAD_GLOBAL 'common' + 0x13,0x81,0x1c, // LOAD_ATTR 'SEGWIT_INPUT_SCRIPT_TYPES' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x14,0x81,0x1d, // LOAD_METHOD 'check_input' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x55, // LOAD_ATTR 'script_type' + 0x12,0x08, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x81,0x1e, // LOAD_ATTR 'SPENDP2SHWITNESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0xb0, // LOAD_FAST 0 + 0x13,0x46, // LOAD_ATTR 'keychain' + 0x14,0x5d, // LOAD_METHOD 'derive' + 0xb2, // LOAD_FAST 2 + 0x13,0x5e, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x14,0x81,0x1f, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0x42,0x43, // JUMP 3 + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x20, // LOAD_METHOD 'write_tx_input_derived' + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'serialized_tx' + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_segwit_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_segwit_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 112, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 119, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_segwit_input + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_segwit_input + 18, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_segwit_input + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_bip143_input +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_bip143_input[130] = { + 0x93,0x10,0x32, // prelude + 0x81,0x21,0x81,0x52,0x81,0x5e,0x81,0x58, // names: sign_bip143_input, self, i, txi + 0xa0,0x57,0x65,0x47,0x2b,0x47,0x25,0x2b,0x49,0x24,0x42,0x6b,0x20,0x25,0x23,0x6a,0x47, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'taproot_only' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x46, // LOAD_ATTR 'keychain' + 0x14,0x5d, // LOAD_METHOD 'derive' + 0xb2, // LOAD_FAST 2 + 0x13,0x5e, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x14,0x81,0x1f, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x14, // LOAD_ATTR 'multisig' + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x14, // LOAD_GLOBAL 'multisig' + 0x14,0x81,0x22, // LOAD_METHOD 'multisig_get_pubkeys' + 0xb2, // LOAD_FAST 2 + 0x13,0x14, // LOAD_ATTR 'multisig' + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x13,0x14, // LOAD_ATTR 'multisig' + 0x13,0x81,0x23, // LOAD_ATTR 'm' + 0xc6, // STORE_FAST 6 + 0x42,0x46, // JUMP 6 + 0xb4, // LOAD_FAST 4 + 0x2b,0x01, // BUILD_LIST 1 + 0xc5, // STORE_FAST 5 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x13,0x51, // LOAD_ATTR 'sig_hasher' + 0x14,0x81,0x18, // LOAD_METHOD 'hash143' + 0xb2, // LOAD_FAST 2 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x13,0x2a, // LOAD_ATTR 'tx' + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x19, // LOAD_METHOD 'get_hash_type' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x06, // CALL_METHOD 6 + 0xc7, // STORE_FAST 7 + 0x12,0x19, // LOAD_GLOBAL 'ecdsa_sign' + 0xb3, // LOAD_FAST 3 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc8, // STORE_FAST 8 + 0xb4, // LOAD_FAST 4 + 0xb8, // LOAD_FAST 8 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_bip143_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_bip143_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 130, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 161, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_bip143_input + 11, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_bip143_input + 28, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_bip143_input + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_taproot_input +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_taproot_input[71] = { + 0x63,0x1e, // prelude + 0x81,0x24,0x81,0x52,0x81,0x5e,0x81,0x58, // names: sign_taproot_input, self, i, txi + 0xa0,0x74,0x4d,0x49,0x25,0x6a,0x2b, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x81,0x25, // LOAD_CONST_STRING 'bip340_sign' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME 'common' + 0x1c,0x81,0x25, // IMPORT_FROM 'bip340_sign' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x13,0x51, // LOAD_ATTR 'sig_hasher' + 0x14,0x81,0x17, // LOAD_METHOD 'hash341' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x13,0x2a, // LOAD_ATTR 'tx' + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0c, // LOAD_METHOD 'get_sighash_type' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x03, // CALL_METHOD 3 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x46, // LOAD_ATTR 'keychain' + 0x14,0x5d, // LOAD_METHOD 'derive' + 0xb2, // LOAD_FAST 2 + 0x13,0x5e, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_taproot_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_taproot_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 71, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 164, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_taproot_input + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_taproot_input + 17, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_taproot_input + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_segwit_input +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_segwit_input[222] = { + 0xf2,0x40,0x3a, // prelude + 0x7c,0x81,0x52,0x81,0x5e, // names: sign_segwit_input, self, i + 0xa0,0x81,0x2f,0x2a,0x2a,0x2c,0x47,0x2a,0x29,0x25,0x25,0x71,0x2c,0x25,0x45,0x25,0x47,0x25,0x23,0x65,0x6c,0x25,0x65,0x6a, // code info + 0x12,0x22, // LOAD_GLOBAL 'request_tx_input' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x14,0x81,0x1d, // LOAD_METHOD 'check_input' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x2c, // LOAD_ATTR 'approver' + 0x14,0x81,0x26, // LOAD_METHOD 'check_internal_input' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x55, // LOAD_ATTR 'script_type' + 0x12,0x13, // LOAD_GLOBAL 'common' + 0x13,0x81,0x1c, // LOAD_ATTR 'SEGWIT_INPUT_SCRIPT_TYPES' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x13,0x55, // LOAD_ATTR 'script_type' + 0x12,0x08, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x56, // LOAD_ATTR 'SPENDTAPROOT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x64, // POP_JUMP_IF_FALSE 36 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x24, // LOAD_METHOD 'sign_taproot_input' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'serialize' + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x15, // LOAD_GLOBAL 'scripts' + 0x14,0x81,0x27, // LOAD_METHOD 'write_witness_p2tr' + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'serialized_tx' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0c, // LOAD_METHOD 'get_sighash_type' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x42,0xcf,0x80, // JUMP 79 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x21, // LOAD_METHOD 'sign_bip143_input' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc4, // STORE_FAST 4 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'serialize' + 0x44,0x7e, // POP_JUMP_IF_FALSE 62 + 0xb2, // LOAD_FAST 2 + 0x13,0x14, // LOAD_ATTR 'multisig' + 0x44,0x65, // POP_JUMP_IF_FALSE 37 + 0x12,0x14, // LOAD_GLOBAL 'multisig' + 0x14,0x81,0x28, // LOAD_METHOD 'multisig_pubkey_index' + 0xb2, // LOAD_FAST 2 + 0x13,0x14, // LOAD_ATTR 'multisig' + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0xc5, // STORE_FAST 5 + 0x12,0x15, // LOAD_GLOBAL 'scripts' + 0x14,0x81,0x29, // LOAD_METHOD 'write_witness_multisig' + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'serialized_tx' + 0xb2, // LOAD_FAST 2 + 0x13,0x14, // LOAD_ATTR 'multisig' + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0c, // LOAD_METHOD 'get_sighash_type' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x05, // CALL_METHOD 5 + 0x59, // POP_TOP + 0x42,0x54, // JUMP 20 + 0x12,0x15, // LOAD_GLOBAL 'scripts' + 0x14,0x81,0x2a, // LOAD_METHOD 'write_witness_p2wpkh' + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'serialized_tx' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0c, // LOAD_METHOD 'get_sighash_type' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x2b, // LOAD_METHOD 'set_serialized_signature' + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_segwit_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_segwit_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 222, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 124, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_segwit_input + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_segwit_input + 32, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_segwit_input + 32, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_legacy_tx_digest +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_legacy_tx_digest[480] = { + 0xc0,0x55,0x70, // prelude + 0x81,0x1a,0x81,0x52,0x67,0x26,0x6f, // names: get_legacy_tx_digest, self, index, tx_info, script_pubkey + 0xa0,0xac,0x24,0x44,0x71,0x46,0x49,0x2d,0x49,0x22,0x22,0x49,0x27,0x2e,0x49,0x26,0x22,0x24,0x2a,0x2b,0x27,0x24,0x43,0x4a,0x2b,0x20,0x25,0x28,0x49,0x2b,0x25,0x6e,0x27,0x4c,0x58,0x25,0x44,0x49,0x48,0x27,0x2e,0x27,0x2a,0x53,0x2d,0x70,0x2d,0x47,0x2e, // code info + 0xb2, // LOAD_FAST 2 + 0x13,0x2a, // LOAD_ATTR 'tx' + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0xc5, // STORE_FAST 5 + 0x12,0x81,0x53, // LOAD_GLOBAL 'isinstance' + 0xb2, // LOAD_FAST 2 + 0x12,0x25, // LOAD_GLOBAL 'OriginalTxInfo' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb2, // LOAD_FAST 2 + 0x13,0x62, // LOAD_ATTR 'orig_hash' + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x14,0x4e, // LOAD_METHOD 'create_hash_writer' + 0x36,0x00, // CALL_METHOD 0 + 0xc7, // STORE_FAST 7 + 0x12,0x0a, // LOAD_GLOBAL 'HashWriter' + 0x12,0x06, // LOAD_GLOBAL 'sha256' + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x14,0x75, // LOAD_METHOD 'write_tx_header' + 0xb7, // LOAD_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x10,0x81,0x2c, // LOAD_CONST_STRING 'witness_marker' + 0x50, // LOAD_CONST_FALSE + 0x36,0x82,0x02, // CALL_METHOD 258 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'write_compact_size' + 0xb7, // LOAD_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x13,0x53, // LOAD_ATTR 'inputs_count' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xc9, // STORE_FAST 9 + 0x51, // LOAD_CONST_NONE + 0xca, // STORE_FAST 10 + 0xb4, // LOAD_FAST 4 + 0x13,0x53, // LOAD_ATTR 'inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xbb,0x81, // JUMP 187 + 0x57, // DUP_TOP + 0xcb, // STORE_FAST 11 + 0x12,0x24, // LOAD_GLOBAL 'progress' + 0x14,0x54, // LOAD_METHOD 'advance' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x22, // LOAD_GLOBAL 'request_tx_input' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xbb, // LOAD_FAST 11 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xcc, // STORE_FAST 12 + 0x12,0x16, // LOAD_GLOBAL 'writers' + 0x14,0x5b, // LOAD_METHOD 'write_tx_input_check' + 0xb8, // LOAD_FAST 8 + 0xbc, // LOAD_FAST 12 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0xb1, // LOAD_FAST 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x85,0x81, // POP_JUMP_IF_FALSE 133 + 0xbc, // LOAD_FAST 12 + 0xc9, // STORE_FAST 9 + 0xb3, // LOAD_FAST 3 + 0x43,0xf3,0x80, // POP_JUMP_IF_TRUE 115 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x14,0x81,0x1d, // LOAD_METHOD 'check_input' + 0xbc, // LOAD_FAST 12 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x46, // LOAD_ATTR 'keychain' + 0x14,0x5d, // LOAD_METHOD 'derive' + 0xbc, // LOAD_FAST 12 + 0x13,0x5e, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0x14,0x81,0x1f, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0xcd, // STORE_FAST 13 + 0xbc, // LOAD_FAST 12 + 0x13,0x14, // LOAD_ATTR 'multisig' + 0xce, // STORE_FAST 14 + 0xbe, // LOAD_FAST 14 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x14, // LOAD_GLOBAL 'multisig' + 0x14,0x81,0x28, // LOAD_METHOD 'multisig_pubkey_index' + 0xbe, // LOAD_FAST 14 + 0xbd, // LOAD_FAST 13 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xbc, // LOAD_FAST 12 + 0x13,0x55, // LOAD_ATTR 'script_type' + 0x12,0x08, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x81,0x2d, // LOAD_ATTR 'SPENDMULTISIG' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0x12,0x15, // LOAD_GLOBAL 'scripts' + 0x14,0x81,0x2e, // LOAD_METHOD 'output_script_multisig' + 0x12,0x14, // LOAD_GLOBAL 'multisig' + 0x14,0x81,0x22, // LOAD_METHOD 'multisig_get_pubkeys' + 0xbe, // LOAD_FAST 14 + 0x36,0x01, // CALL_METHOD 1 + 0xbe, // LOAD_FAST 14 + 0x13,0x81,0x23, // LOAD_ATTR 'm' + 0x36,0x02, // CALL_METHOD 2 + 0xc3, // STORE_FAST 3 + 0x42,0x65, // JUMP 37 + 0xbc, // LOAD_FAST 12 + 0x13,0x55, // LOAD_ATTR 'script_type' + 0x12,0x08, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x81,0x2f, // LOAD_ATTR 'SPENDADDRESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x15, // LOAD_GLOBAL 'scripts' + 0x14,0x81,0x30, // LOAD_METHOD 'output_script_p2pkh' + 0x12,0x12, // LOAD_GLOBAL 'addresses' + 0x14,0x81,0x31, // LOAD_METHOD 'ecdsa_hash_pubkey' + 0xbd, // LOAD_FAST 13 + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x42,0x47, // JUMP 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x1b, // LOAD_METHOD 'write_tx_input' + 0xb7, // LOAD_FAST 7 + 0xbc, // LOAD_FAST 12 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x42,0x4e, // JUMP 14 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x1b, // LOAD_METHOD 'write_tx_input' + 0xb7, // LOAD_FAST 7 + 0xbc, // LOAD_FAST 12 + 0x12,0x81,0x56, // LOAD_GLOBAL 'bytes' + 0x34,0x00, // CALL_FUNCTION 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xbf,0x7e, // POP_JUMP_IF_TRUE -193 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x12,0x81,0x5f, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x12,0x10, // LOAD_GLOBAL 'write_compact_size' + 0xb7, // LOAD_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x13,0x68, // LOAD_ATTR 'outputs_count' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x13,0x68, // LOAD_ATTR 'outputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x74, // JUMP 52 + 0x57, // DUP_TOP + 0xcb, // STORE_FAST 11 + 0x12,0x24, // LOAD_GLOBAL 'progress' + 0x14,0x54, // LOAD_METHOD 'advance' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x23, // LOAD_GLOBAL 'request_tx_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xbb, // LOAD_FAST 11 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xcf, // STORE_FAST 15 + 0xb0, // LOAD_FAST 0 + 0x14,0x69, // LOAD_METHOD 'output_derive_script' + 0xbf, // LOAD_FAST 15 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x32, // LOAD_METHOD 'write_tx_output' + 0xb8, // LOAD_FAST 8 + 0xbf, // LOAD_FAST 15 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x32, // LOAD_METHOD 'write_tx_output' + 0xb7, // LOAD_FAST 7 + 0xbf, // LOAD_FAST 15 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x07, // POP_JUMP_IF_TRUE -57 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'writers' + 0x14,0x81,0x33, // LOAD_METHOD 'write_uint32' + 0xb7, // LOAD_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x34, // LOAD_ATTR 'lock_time' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'writers' + 0x14,0x81,0x33, // LOAD_METHOD 'write_uint32' + 0xb7, // LOAD_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x19, // LOAD_METHOD 'get_hash_type' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x64, // LOAD_METHOD 'get_tx_check_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xb8, // LOAD_FAST 8 + 0x14,0x66, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x16, // LOAD_GLOBAL 'writers' + 0x14,0x81,0x35, // LOAD_METHOD 'get_tx_hash' + 0xb7, // LOAD_FAST 7 + 0xb5, // LOAD_FAST 5 + 0x13,0x81,0x36, // LOAD_ATTR 'sign_hash_double' + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x10, // STORE_FAST_N 16 + 0x24,0x10, // LOAD_FAST_N 16 + 0xb9, // LOAD_FAST 9 + 0xba, // LOAD_FAST 10 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_legacy_tx_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_legacy_tx_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 480, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 25, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 154, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_legacy_tx_digest + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_legacy_tx_digest + 59, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_legacy_tx_digest + 59, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_nonsegwit_input +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_nonsegwit_input[89] = { + 0xda,0x40,0x1e, // prelude + 0x78,0x81,0x52,0x81,0x5e, // names: sign_nonsegwit_input, self, i + 0xa0,0xf4,0x65,0x47,0x32,0x60,0x47,0x45,0x24,0x4e, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'taproot_only' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x1a, // LOAD_METHOD 'get_legacy_tx_digest' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_info' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc2, // STORE_FAST 2 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0x12,0x19, // LOAD_GLOBAL 'ecdsa_sign' + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'serialize' + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x20, // LOAD_METHOD 'write_tx_input_derived' + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'serialized_tx' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x14,0x81,0x1f, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0xb5, // LOAD_FAST 5 + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x2b, // LOAD_METHOD 'set_serialized_signature' + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_nonsegwit_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_nonsegwit_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 89, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 120, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_nonsegwit_input + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_nonsegwit_input + 18, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_nonsegwit_input + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_output +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_output[48] = { + 0xc2,0x40,0x12, // prelude + 0x79,0x81,0x52,0x81,0x5e, // names: serialize_output, self, i + 0xb0,0x08,0x2f,0x27, // code info + 0x12,0x23, // LOAD_GLOBAL 'request_tx_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x69, // LOAD_METHOD 'output_derive_script' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x32, // LOAD_METHOD 'write_tx_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'serialized_tx' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 121, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_output + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_output + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_output + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_prevtx_output +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_prevtx_output[299] = { + 0x93,0x50,0x46, // prelude + 0x70,0x81,0x52,0x71,0x72, // names: get_prevtx_output, self, prev_hash, prev_index + 0xb0,0x0f,0x44,0x62,0x30,0x4e,0x27,0x47,0x66,0x2d,0x49,0x48,0x28,0x31,0x55,0x49,0x22,0x48,0x28,0x25,0x4c,0x2c,0x25,0x24,0x24,0x52,0x40,0x4d,0x31,0x47, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0xc3, // STORE_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc4, // STORE_FAST 4 + 0x12,0x1f, // LOAD_GLOBAL 'helpers' + 0x14,0x81,0x05, // LOAD_METHOD 'request_tx_meta' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0x12,0x24, // LOAD_GLOBAL 'progress' + 0x14,0x81,0x37, // LOAD_METHOD 'init_prev_tx' + 0xb5, // LOAD_FAST 5 + 0x13,0x53, // LOAD_ATTR 'inputs_count' + 0xb5, // LOAD_FAST 5 + 0x13,0x68, // LOAD_ATTR 'outputs_count' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x13,0x68, // LOAD_ATTR 'outputs_count' + 0xb2, // LOAD_FAST 2 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x14,0x4e, // LOAD_METHOD 'create_hash_writer' + 0x36,0x00, // CALL_METHOD 0 + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x14,0x75, // LOAD_METHOD 'write_tx_header' + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x10,0x81,0x2c, // LOAD_CONST_STRING 'witness_marker' + 0x50, // LOAD_CONST_FALSE + 0x36,0x82,0x02, // CALL_METHOD 258 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'write_compact_size' + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x13,0x53, // LOAD_ATTR 'inputs_count' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x13,0x53, // LOAD_ATTR 'inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x69, // JUMP 41 + 0x57, // DUP_TOP + 0xc7, // STORE_FAST 7 + 0x12,0x24, // LOAD_GLOBAL 'progress' + 0x14,0x81,0x38, // LOAD_METHOD 'advance_prev_tx' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x1f, // LOAD_GLOBAL 'helpers' + 0x14,0x81,0x39, // LOAD_METHOD 'request_tx_prev_input' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xb7, // LOAD_FAST 7 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x36,0x04, // CALL_METHOD 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc8, // STORE_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x1b, // LOAD_METHOD 'write_tx_input' + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x13,0x5a, // LOAD_ATTR 'script_sig' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x12, // POP_JUMP_IF_TRUE -46 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'write_compact_size' + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x13,0x68, // LOAD_ATTR 'outputs_count' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xc9, // STORE_FAST 9 + 0xb5, // LOAD_FAST 5 + 0x13,0x68, // LOAD_ATTR 'outputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x7e, // JUMP 62 + 0x57, // DUP_TOP + 0xc7, // STORE_FAST 7 + 0x12,0x24, // LOAD_GLOBAL 'progress' + 0x14,0x81,0x38, // LOAD_METHOD 'advance_prev_tx' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x1f, // LOAD_GLOBAL 'helpers' + 0x14,0x81,0x3a, // LOAD_METHOD 'request_tx_prev_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0xb7, // LOAD_FAST 7 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x36,0x04, // CALL_METHOD 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xca, // STORE_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x32, // LOAD_METHOD 'write_tx_output' + 0xb6, // LOAD_FAST 6 + 0xba, // LOAD_FAST 10 + 0xba, // LOAD_FAST 10 + 0x13,0x6f, // LOAD_ATTR 'script_pubkey' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0xb2, // LOAD_FAST 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xba, // LOAD_FAST 10 + 0x13,0x73, // LOAD_ATTR 'amount' + 0xc4, // STORE_FAST 4 + 0xba, // LOAD_FAST 10 + 0x13,0x6f, // LOAD_ATTR 'script_pubkey' + 0xc9, // STORE_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x3b, // LOAD_METHOD 'check_prevtx_output' + 0xba, // LOAD_FAST 10 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xbc,0x7f, // POP_JUMP_IF_TRUE -68 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x3c, // LOAD_METHOD 'write_prev_tx_footer' + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'writers' + 0x14,0x81,0x35, // LOAD_METHOD 'get_tx_hash' + 0xb6, // LOAD_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x13,0x81,0x36, // LOAD_ATTR 'sign_hash_double' + 0x52, // LOAD_CONST_TRUE + 0x36,0x03, // CALL_METHOD 3 + 0xb1, // LOAD_FAST 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0xb9, // LOAD_FAST 9 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_prevtx_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_prevtx_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 299, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 112, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_prevtx_output + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_prevtx_output + 38, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_prevtx_output + 38, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_check_prevtx_output +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_check_prevtx_output[12] = { + 0x12,0x10, // prelude + 0x81,0x3b,0x81,0x52,0x81,0x60, // names: check_prevtx_output, self, txo_bin + 0xb0,0x40, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_check_prevtx_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_check_prevtx_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 187, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_check_prevtx_output + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_check_prevtx_output + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_check_prevtx_output + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_hash_type +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_hash_type[36] = { + 0x22,0x14, // prelude + 0x81,0x19,0x81,0x52,0x81,0x58, // names: get_hash_type, self, txi + 0xb0,0x47,0x2a,0x46, // code info + 0x12,0x13, // LOAD_GLOBAL 'common' + 0x14,0x81,0x16, // LOAD_METHOD 'input_is_taproot' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x12,0x18, // LOAD_GLOBAL 'SigHashType' + 0x13,0x81,0x0b, // LOAD_ATTR 'SIGHASH_ALL_TAPROOT' + 0x63, // RETURN_VALUE + 0x12,0x18, // LOAD_GLOBAL 'SigHashType' + 0x13,0x81,0x3d, // LOAD_ATTR 'SIGHASH_ALL' + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_hash_type = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_hash_type, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 153, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_hash_type + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_hash_type + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_hash_type + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_sighash_type +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_sighash_type[24] = { + 0x22,0x14, // prelude + 0x81,0x0c,0x81,0x52,0x81,0x58, // names: get_sighash_type, self, txi + 0xb0,0x4d,0x60,0x20, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x19, // LOAD_METHOD 'get_hash_type' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xef, // BINARY_OP 24 __and__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_sighash_type = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_sighash_type, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 140, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_sighash_type + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_sighash_type + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_sighash_type + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_input_derived +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_input_derived[96] = { + 0xe9,0x04,0x2c, // prelude + 0x81,0x20,0x81,0x52,0x81,0x61,0x81,0x58,0x81,0x62,0x81,0x44, // names: write_tx_input_derived, self, w, txi, pubkey, signature + 0xb0,0x5a,0x31,0x2c,0x46,0x23,0x23,0x23,0x6c,0x20, // code info + 0x12,0x16, // LOAD_GLOBAL 'writers' + 0x14,0x81,0x3e, // LOAD_METHOD 'write_bytes_reversed' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x71, // LOAD_ATTR 'prev_hash' + 0x12,0x16, // LOAD_GLOBAL 'writers' + 0x13,0x81,0x3f, // LOAD_ATTR 'TX_HASH_SIZE' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'writers' + 0x14,0x81,0x33, // LOAD_METHOD 'write_uint32' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x72, // LOAD_ATTR 'prev_index' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x15, // LOAD_GLOBAL 'scripts' + 0x14,0x81,0x40, // LOAD_METHOD 'write_input_script_prefixed' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x55, // LOAD_ATTR 'script_type' + 0xb2, // LOAD_FAST 2 + 0x13,0x14, // LOAD_ATTR 'multisig' + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0c, // LOAD_METHOD 'get_sighash_type' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x07, // CALL_METHOD 7 + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'writers' + 0x14,0x81,0x33, // LOAD_METHOD 'write_uint32' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x81,0x41, // LOAD_ATTR 'sequence' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_input_derived = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_input_derived, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 96, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 160, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_input_derived + 15, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_input_derived + 25, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_input_derived + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_input +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_input[25] = { + 0x3b,0x14, // prelude + 0x81,0x1b,0x81,0x61,0x81,0x58,0x81,0x63, // names: write_tx_input, w, txi, script + 0xb0,0x6d, // code info + 0x12,0x16, // LOAD_GLOBAL 'writers' + 0x14,0x81,0x1b, // LOAD_METHOD 'write_tx_input' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 155, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_input + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_input + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_input + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_output +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_output[24] = { + 0x3b,0x12, // prelude + 0x81,0x32,0x81,0x61,0x81,0x5c,0x6f, // names: write_tx_output, w, txo, script_pubkey + 0xb0,0x75, // code info + 0x12,0x16, // LOAD_GLOBAL 'writers' + 0x14,0x81,0x32, // LOAD_METHOD 'write_tx_output' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 178, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_output + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_output + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_output + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_header +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_header[48] = { + 0xb8,0x04,0x1a, // prelude + 0x75,0x81,0x52,0x81,0x61,0x2a,0x81,0x2c, // names: write_tx_header, self, w, tx, witness_marker + 0xb0,0x7d,0x2d,0x23,0x27, // code info + 0x12,0x16, // LOAD_GLOBAL 'writers' + 0x14,0x81,0x33, // LOAD_METHOD 'write_uint32' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x81,0x42, // LOAD_ATTR 'version' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x10, // LOAD_GLOBAL 'write_compact_size' + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'write_compact_size' + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_header = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_header, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 117, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_header + 11, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_header + 16, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_header + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_footer +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_footer[25] = { + 0x33,0x10, // prelude + 0x7d,0x81,0x52,0x81,0x61,0x2a, // names: write_tx_footer, self, w, tx + 0xb0,0x83, // code info + 0x12,0x16, // LOAD_GLOBAL 'writers' + 0x14,0x81,0x33, // LOAD_METHOD 'write_uint32' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x81,0x34, // LOAD_ATTR 'lock_time' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_footer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_footer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 125, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_footer + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_footer + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_footer + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_prev_tx_footer +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_prev_tx_footer[23] = { + 0xb8,0x44,0x14, // prelude + 0x81,0x3c,0x81,0x52,0x81,0x61,0x2a,0x71, // names: write_prev_tx_footer, self, w, tx, prev_hash + 0xb0,0x88, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x7d, // LOAD_METHOD 'write_tx_footer' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_prev_tx_footer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_prev_tx_footer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 188, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_prev_tx_footer + 11, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_prev_tx_footer + 13, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_prev_tx_footer + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_set_serialized_signature +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_set_serialized_signature[57] = { + 0x3b,0x1c, // prelude + 0x81,0x2b,0x81,0x52,0x67,0x81,0x44, // names: set_serialized_signature, self, index, signature + 0xb0,0x8b,0x4d,0x66,0x20,0x4a,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x43, // LOAD_CONST_STRING 'ensure' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.utils' + 0x1c,0x81,0x43, // IMPORT_FROM 'ensure' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x49, // LOAD_ATTR 'tx_req' + 0x13,0x4b, // LOAD_ATTR 'serialized' + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x44, // LOAD_ATTR 'signature' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x18,0x81,0x45, // STORE_ATTR 'signature_index' + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x18,0x81,0x44, // STORE_ATTR 'signature' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_set_serialized_signature = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_set_serialized_signature, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 171, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_set_serialized_signature + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_set_serialized_signature + 16, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_set_serialized_signature + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_input_derive_script +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_input_derive_script[74] = { + 0xcb,0x01,0x1e, // prelude + 0x60,0x81,0x52,0x81,0x58,0x81,0x59, // names: input_derive_script, self, txi, node + 0xb0,0x9c,0x27,0x20,0x44,0x25,0x4b,0x32, // code info + 0x12,0x1a, // LOAD_GLOBAL 'input_is_external' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x6f, // LOAD_ATTR 'script_pubkey' + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x46, // LOAD_ATTR 'keychain' + 0x14,0x5d, // LOAD_METHOD 'derive' + 0xb1, // LOAD_FAST 1 + 0x13,0x5e, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0x12,0x12, // LOAD_GLOBAL 'addresses' + 0x14,0x81,0x46, // LOAD_METHOD 'get_address' + 0xb1, // LOAD_FAST 1 + 0x13,0x55, // LOAD_ATTR 'script_type' + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x14, // LOAD_ATTR 'multisig' + 0x36,0x04, // CALL_METHOD 4 + 0xc3, // STORE_FAST 3 + 0x12,0x15, // LOAD_GLOBAL 'scripts' + 0x14,0x69, // LOAD_METHOD 'output_derive_script' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_input_derive_script = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_input_derive_script, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 74, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 96, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_input_derive_script + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_input_derive_script + 18, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_input_derive_script + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoin_Bitcoin +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoin.py, scope apps_bitcoin_sign_tx_bitcoin_Bitcoin_output_derive_script +static const byte fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_output_derive_script[138] = { + 0x56,0x28, // prelude + 0x69,0x81,0x52,0x81,0x5c, // names: output_derive_script, self, txo + 0xb0,0xa7,0x4d,0x2a,0x20,0x4c,0x45,0x22,0x25,0x6f,0x2a,0x2b,0x26,0x6d,0x40, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x47, // LOAD_CONST_STRING 'OutputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.enums' + 0x1c,0x81,0x47, // IMPORT_FROM 'OutputScriptType' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x55, // LOAD_ATTR 'script_type' + 0xb2, // LOAD_FAST 2 + 0x13,0x81,0x48, // LOAD_ATTR 'PAYTOOPRETURN' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x15, // LOAD_GLOBAL 'scripts' + 0x14,0x81,0x49, // LOAD_METHOD 'output_script_paytoopreturn' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x4a, // LOAD_ATTR 'op_return_data' + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x5e, // LOAD_ATTR 'address_n' + 0x44,0x7e, // POP_JUMP_IF_FALSE 62 + 0x48,0x0c, // SETUP_EXCEPT 12 + 0x12,0x13, // LOAD_GLOBAL 'common' + 0x13,0x81,0x4b, // LOAD_ATTR 'CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES' + 0xb1, // LOAD_FAST 1 + 0x13,0x55, // LOAD_ATTR 'script_type' + 0x55, // LOAD_SUBSCR + 0xc3, // STORE_FAST 3 + 0x4a,0x12, // POP_EXCEPT_JUMP 18 + 0x57, // DUP_TOP + 0x12,0x81,0x64, // LOAD_GLOBAL 'KeyError' + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x0d, // LOAD_GLOBAL 'DataError' + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb0, // LOAD_FAST 0 + 0x13,0x46, // LOAD_ATTR 'keychain' + 0x14,0x5d, // LOAD_METHOD 'derive' + 0xb1, // LOAD_FAST 1 + 0x13,0x5e, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0x12,0x12, // LOAD_GLOBAL 'addresses' + 0x14,0x81,0x46, // LOAD_METHOD 'get_address' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x14, // LOAD_ATTR 'multisig' + 0x36,0x04, // CALL_METHOD 4 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x4c, // STORE_ATTR 'address' + 0x12,0x15, // LOAD_GLOBAL 'scripts' + 0x14,0x69, // LOAD_METHOD 'output_derive_script' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x4c, // LOAD_ATTR 'address' + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'coin' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_output_derive_script = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_output_derive_script, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 138, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 105, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_output_derive_script + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_output_derive_script + 22, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin_output_derive_script + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_bitcoin_Bitcoin[] = { + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_signer, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin___init__, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_create_hash_writer, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_create_sig_hasher, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step1_process_inputs, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step2_approve_outputs, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step3_verify_inputs, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step4_serialize_inputs, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step5_serialize_outputs, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step6_sign_segwit_inputs, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_step7_finish, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_internal_input, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_external_input, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_process_original_input, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_fetch_removed_original_outputs, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_original_output, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_verify_original_txs, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_approve_output, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_tx_digest, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_verify_presigned_external_input, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_external_input, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_segwit_input, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_bip143_input, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_taproot_input, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_segwit_input, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_legacy_tx_digest, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_sign_nonsegwit_input, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_serialize_output, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_prevtx_output, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_check_prevtx_output, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_hash_type, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_get_sighash_type, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_input_derived, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_input, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_output, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_header, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_tx_footer, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_write_prev_tx_footer, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_set_serialized_signature, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_input_derive_script, + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin_output_derive_script, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 291, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_bitcoin_Bitcoin, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 41, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin + 84, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin_Bitcoin + 84, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_bitcoin__lt_module_gt_[] = { + &raw_code_apps_bitcoin_sign_tx_bitcoin_Bitcoin, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoin__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoin__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 290, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_bitcoin__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoin__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoin__lt_module_gt_ + 23, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoin__lt_module_gt_ + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_sign_tx_bitcoin[229] = { + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_bitcoin_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_workflow, + MP_QSTR_trezor, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_InputScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_HashWriter, + MP_QSTR_empty_bytearray, + MP_QSTR_trezor_dot_utils, + MP_QSTR_DataError, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_write_compact_size, + MP_QSTR_apps_dot_common_dot_writers, + MP_QSTR_addresses, + MP_QSTR_common, + MP_QSTR_multisig, + MP_QSTR_scripts, + MP_QSTR_writers, + MP_QSTR_, + MP_QSTR_SigHashType, + MP_QSTR_ecdsa_sign, + MP_QSTR_input_is_external, + MP_QSTR_verify_nonownership, + MP_QSTR_ownership, + MP_QSTR_SignatureVerifier, + MP_QSTR_verification, + MP_QSTR_helpers, + MP_QSTR_CoinJoinApprover, + MP_QSTR_approvers, + MP_QSTR_request_tx_input, + MP_QSTR_request_tx_output, + MP_QSTR_progress, + MP_QSTR_OriginalTxInfo, + MP_QSTR_tx_info, + MP_QSTR_Bitcoin, + MP_QSTR_signer, + MP_QSTR_init, + MP_QSTR_tx, + MP_QSTR_is_coinjoin, + MP_QSTR_approver, + MP_QSTR_step1_process_inputs, + MP_QSTR_approve_orig_txids, + MP_QSTR_orig_txs, + MP_QSTR_step2_approve_outputs, + MP_QSTR_approve_tx, + MP_QSTR_init_signing, + MP_QSTR_external, + MP_QSTR_segwit, + MP_QSTR_presigned, + MP_QSTR_taproot_only, + MP_QSTR_serialize, + MP_QSTR_coin, + MP_QSTR_autolock_interrupts_workflow, + MP_QSTR_step3_verify_inputs, + MP_QSTR_step4_serialize_inputs, + MP_QSTR_step5_serialize_outputs, + MP_QSTR_step6_sign_segwit_inputs, + MP_QSTR_step7_finish, + MP_QSTR___init__, + MP_QSTR_TxRequest, + MP_QSTR_TxRequestDetailsType, + MP_QSTR_TxRequestSerializedType, + MP_QSTR_trezor_dot_messages, + MP_QSTR_TxInfo, + MP_QSTR_sanitize_sign_tx, + MP_QSTR_keychain, + MP_QSTR_BasicApprover, + MP_QSTR_serialized_tx, + MP_QSTR_tx_req, + MP_QSTR_details, + MP_QSTR_serialized, + MP_QSTR_h_presigned_inputs, + MP_QSTR_payment_req_index, + MP_QSTR_create_hash_writer, + MP_QSTR_create_sig_hasher, + MP_QSTR_BitcoinSigHasher, + MP_QSTR_sig_hasher, + MP_QSTR_input_is_segwit, + MP_QSTR_inputs_count, + MP_QSTR_advance, + MP_QSTR_script_type, + MP_QSTR_SPENDTAPROOT, + MP_QSTR_EXTERNAL, + MP_QSTR_add, + MP_QSTR_witness, + MP_QSTR_script_sig, + MP_QSTR_write_tx_input_check, + MP_QSTR_process_external_input, + MP_QSTR_derive, + MP_QSTR_address_n, + MP_QSTR_process_internal_input, + MP_QSTR_input_derive_script, + MP_QSTR_add_input, + MP_QSTR_orig_hash, + MP_QSTR_process_original_input, + MP_QSTR_get_tx_check_digest, + MP_QSTR_h_inputs_check, + MP_QSTR_get_digest, + MP_QSTR_index, + MP_QSTR_outputs_count, + MP_QSTR_output_derive_script, + MP_QSTR_get_original_output, + MP_QSTR_approve_output, + MP_QSTR_fetch_removed_original_outputs, + MP_QSTR_finalize_tx_hash, + MP_QSTR_verify_presigned_external_input, + MP_QSTR_script_pubkey, + MP_QSTR_get_prevtx_output, + MP_QSTR_prev_hash, + MP_QSTR_prev_index, + MP_QSTR_amount, + MP_QSTR_verify_original_txs, + MP_QSTR_write_tx_header, + MP_QSTR_serialize_external_input, + MP_QSTR_serialize_segwit_input, + MP_QSTR_sign_nonsegwit_input, + MP_QSTR_serialize_output, + MP_QSTR_extend, + MP_QSTR_append, + MP_QSTR_sign_segwit_input, + MP_QSTR_write_tx_footer, + MP_QSTR_request_tx_finish, + MP_QSTR_INTERNAL_INPUT_SCRIPT_TYPES, + MP_QSTR_add_internal_input, + MP_QSTR_add_external_input, + MP_QSTR_ownership_proof, + MP_QSTR_commitment_data, + MP_QSTR_orig_index, + MP_QSTR_request_tx_meta, + MP_QSTR_add_output, + MP_QSTR_output_is_change, + MP_QSTR_add_orig_change_output, + MP_QSTR_add_orig_external_output, + MP_QSTR_ensure_hash_type, + MP_QSTR_SIGHASH_ALL_TAPROOT, + MP_QSTR_get_sighash_type, + MP_QSTR_get_tx_digest, + MP_QSTR_public_keys, + MP_QSTR_threshold, + MP_QSTR_verify, + MP_QSTR_finish_payment_request, + MP_QSTR_request_payment_req, + MP_QSTR_add_payment_request, + MP_QSTR_add_change_output, + MP_QSTR_add_external_output, + MP_QSTR_input_is_taproot, + MP_QSTR_hash341, + MP_QSTR_hash143, + MP_QSTR_get_hash_type, + MP_QSTR_get_legacy_tx_digest, + MP_QSTR_write_tx_input, + MP_QSTR_SEGWIT_INPUT_SCRIPT_TYPES, + MP_QSTR_check_input, + MP_QSTR_SPENDP2SHWITNESS, + MP_QSTR_public_key, + MP_QSTR_write_tx_input_derived, + MP_QSTR_sign_bip143_input, + MP_QSTR_multisig_get_pubkeys, + MP_QSTR_m, + MP_QSTR_sign_taproot_input, + MP_QSTR_bip340_sign, + MP_QSTR_check_internal_input, + MP_QSTR_write_witness_p2tr, + MP_QSTR_multisig_pubkey_index, + MP_QSTR_write_witness_multisig, + MP_QSTR_write_witness_p2wpkh, + MP_QSTR_set_serialized_signature, + MP_QSTR_witness_marker, + MP_QSTR_SPENDMULTISIG, + MP_QSTR_output_script_multisig, + MP_QSTR_SPENDADDRESS, + MP_QSTR_output_script_p2pkh, + MP_QSTR_ecdsa_hash_pubkey, + MP_QSTR_write_tx_output, + MP_QSTR_write_uint32, + MP_QSTR_lock_time, + MP_QSTR_get_tx_hash, + MP_QSTR_sign_hash_double, + MP_QSTR_init_prev_tx, + MP_QSTR_advance_prev_tx, + MP_QSTR_request_tx_prev_input, + MP_QSTR_request_tx_prev_output, + MP_QSTR_check_prevtx_output, + MP_QSTR_write_prev_tx_footer, + MP_QSTR_SIGHASH_ALL, + MP_QSTR_write_bytes_reversed, + MP_QSTR_TX_HASH_SIZE, + MP_QSTR_write_input_script_prefixed, + MP_QSTR_sequence, + MP_QSTR_version, + MP_QSTR_ensure, + MP_QSTR_signature, + MP_QSTR_signature_index, + MP_QSTR_get_address, + MP_QSTR_OutputScriptType, + MP_QSTR_PAYTOOPRETURN, + MP_QSTR_output_script_paytoopreturn, + MP_QSTR_op_return_data, + MP_QSTR_CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES, + MP_QSTR_address, + MP_QSTR__SERIALIZED_TX_BUFFER, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_staticmethod, + MP_QSTR_self, + MP_QSTR_isinstance, + MP_QSTR_len, + MP_QSTR_set, + MP_QSTR_bytes, + MP_QSTR_bool, + MP_QSTR_txi, + MP_QSTR_node, + MP_QSTR_orig, + MP_QSTR_last_index, + MP_QSTR_txo, + MP_QSTR_orig_txo, + MP_QSTR_i, + MP_QSTR_RuntimeError, + MP_QSTR_txo_bin, + MP_QSTR_w, + MP_QSTR_pubkey, + MP_QSTR_script, + MP_QSTR_KeyError, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_bitcoin_0 = {{&mp_type_str}, 17425, 44, (const byte*)"\x52\x65\x6d\x6f\x76\x61\x6c\x20\x6f\x66\x20\x6f\x72\x69\x67\x69\x6e\x61\x6c\x20\x69\x6e\x70\x75\x74\x73\x20\x69\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_bitcoin_2 = {{&mp_type_str}, 2999, 33, (const byte*)"\x49\x6e\x70\x75\x74\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x6d\x61\x74\x63\x68\x20\x73\x63\x72\x69\x70\x74\x50\x75\x62\x4b\x65\x79"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_bitcoin_3 = {{&mp_type_str}, 4745, 38, (const byte*)"\x54\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x68\x61\x73\x20\x63\x68\x61\x6e\x67\x65\x64\x20\x64\x75\x72\x69\x6e\x67\x20\x73\x69\x67\x6e\x69\x6e\x67"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_bitcoin_4 = {{&mp_type_bytes}, 46501, 1, (const byte*)"\x00"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_bitcoin_7 = {{&mp_type_str}, 44767, 42, (const byte*)"\x4e\x6f\x74\x20\x65\x6e\x6f\x75\x67\x68\x20\x69\x6e\x70\x75\x74\x73\x20\x69\x6e\x20\x6f\x72\x69\x67\x69\x6e\x61\x6c\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_bitcoin_8 = {{&mp_type_str}, 21106, 59, (const byte*)"\x52\x65\x61\x72\x72\x61\x6e\x67\x69\x6e\x67\x20\x6f\x72\x20\x72\x65\x6d\x6f\x76\x61\x6c\x20\x6f\x66\x20\x6f\x72\x69\x67\x69\x6e\x61\x6c\x20\x69\x6e\x70\x75\x74\x73\x20\x69\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_bitcoin_9 = {{&mp_type_str}, 14016, 44, (const byte*)"\x4f\x72\x69\x67\x69\x6e\x61\x6c\x20\x69\x6e\x70\x75\x74\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x6d\x61\x74\x63\x68\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x69\x6e\x70\x75\x74\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_bitcoin_10 = {{&mp_type_str}, 20421, 54, (const byte*)"\x52\x65\x6d\x6f\x76\x61\x6c\x20\x6f\x66\x20\x6f\x72\x69\x67\x69\x6e\x61\x6c\x20\x65\x78\x74\x65\x72\x6e\x61\x6c\x20\x6f\x75\x74\x70\x75\x74\x73\x20\x69\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_bitcoin_11 = {{&mp_type_str}, 30590, 29, (const byte*)"\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x6f\x72\x69\x67\x69\x6e\x61\x6c\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_bitcoin_12 = {{&mp_type_str}, 51030, 43, (const byte*)"\x4e\x6f\x74\x20\x65\x6e\x6f\x75\x67\x68\x20\x6f\x75\x74\x70\x75\x74\x73\x20\x69\x6e\x20\x6f\x72\x69\x67\x69\x6e\x61\x6c\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_bitcoin_13 = {{&mp_type_str}, 38408, 49, (const byte*)"\x52\x65\x61\x72\x72\x61\x6e\x67\x69\x6e\x67\x20\x6f\x66\x20\x6f\x72\x69\x67\x69\x6e\x61\x6c\x20\x6f\x75\x74\x70\x75\x74\x73\x20\x69\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_bitcoin_15 = {{&mp_type_str}, 33981, 52, (const byte*)"\x4f\x72\x69\x67\x69\x6e\x61\x6c\x20\x6f\x75\x74\x70\x75\x74\x20\x69\x73\x20\x6d\x69\x73\x73\x69\x6e\x67\x20\x63\x68\x61\x6e\x67\x65\x2d\x6f\x75\x74\x70\x75\x74\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_bitcoin_18 = {{&mp_type_str}, 56510, 43, (const byte*)"\x4e\x6f\x74\x20\x65\x6e\x6f\x75\x67\x68\x20\x6f\x75\x74\x70\x75\x74\x73\x20\x69\x6e\x20\x70\x72\x65\x76\x69\x6f\x75\x73\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_bitcoin_19 = {{&mp_type_str}, 38934, 29, (const byte*)"\x45\x6e\x63\x6f\x75\x6e\x74\x65\x72\x65\x64\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x70\x72\x65\x76\x5f\x68\x61\x73\x68"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_sign_tx_bitcoin[21] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_bitcoin_0), + MP_ROM_QSTR(MP_QSTR_Invalid_space_amount_space_specified), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_bitcoin_2), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_bitcoin_3), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_bitcoin_4), + MP_ROM_QSTR(MP_QSTR_Wrong_space_input_space_script_space_type), + MP_ROM_QSTR(MP_QSTR_Invalid_space_external_space_input), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_bitcoin_7), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_bitcoin_8), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_bitcoin_9), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_bitcoin_10), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_bitcoin_11), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_bitcoin_12), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_bitcoin_13), + MP_ROM_QSTR(MP_QSTR_Not_space_an_space_original_space_output_dot_), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_bitcoin_15), + MP_ROM_PTR(&mp_const_empty_bytes_obj), + MP_ROM_QSTR(MP_QSTR_Unknown_space_transaction_space_type), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_bitcoin_18), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_bitcoin_19), + MP_ROM_QSTR(MP_QSTR_Invalid_space_script_space_type), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_sign_tx_bitcoin = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_sign_tx_bitcoin, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_sign_tx_bitcoin, + }, + .rc = &raw_code_apps_bitcoin_sign_tx_bitcoin__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_sign_tx_helpers +// - original source file: build/firmware/src/apps/bitcoin/sign_tx/helpers.mpy +// - frozen file name: apps/bitcoin/sign_tx/helpers.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers__lt_module_gt_ +static const byte fun_data_apps_bitcoin_sign_tx_helpers__lt_module_gt_[476] = { + 0x18,0xc0,0x02, // prelude + 0x01, // names: + 0x40,0x2c,0x2c,0x4c,0x2c,0x2c,0x4c,0x80,0x16,0x89,0x07,0x8b,0x19,0x8b,0x0c,0x8b,0x13,0x8b,0x09,0x8b,0x13,0x8b,0x1c,0x8b,0x1c,0x8b,0x0f,0x8b,0x0a,0x8b,0x08,0x6b,0x40,0x8b,0x0a,0x8b,0x0b,0x6b,0x40,0x64,0x20,0x64,0x20,0x64,0x20,0x64,0x20,0x64,0x20,0x84,0x08,0x64,0x20,0x64,0x20,0x64,0x20,0x64,0x20,0x64,0x20,0x64,0x20,0x64,0x20,0x64,0x20,0x88,0x0b,0x88,0x11,0x88,0x0f,0x88,0x0c,0x88,0x0f,0x88,0x0d,0x84,0x0b,0x64,0x60,0x84,0x17,0x84,0x19,0x84,0x16,0x84,0x2f,0x84,0x0a,0x84,0x30, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'utils' + 0x16,0x02, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'RequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.enums' + 0x1c,0x04, // IMPORT_FROM 'RequestType' + 0x16,0x04, // STORE_NAME 'RequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.wire' + 0x1c,0x06, // IMPORT_FROM 'DataError' + 0x16,0x06, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x08, // LOAD_CONST_STRING 'common' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME '' + 0x1c,0x08, // IMPORT_FROM 'common' + 0x16,0x08, // STORE_NAME 'common' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x0a, // LOAD_CONST_STRING 'TX_HASH_SIZE' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'writers' + 0x1c,0x0a, // IMPORT_FROM 'TX_HASH_SIZE' + 0x16,0x0a, // STORE_NAME 'TX_HASH_SIZE' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0c, // LOAD_CONST_STRING 'layout' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME '' + 0x1c,0x0c, // IMPORT_FROM 'layout' + 0x16,0x0c, // STORE_NAME 'layout' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x0d, // LOAD_CONST_STRING 'UiConfirm' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x0d, // STORE_NAME 'UiConfirm' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x0e, // LOAD_CONST_STRING 'UiConfirmOutput' + 0x11,0x0d, // LOAD_NAME 'UiConfirm' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0e, // STORE_NAME 'UiConfirmOutput' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x02, // MAKE_FUNCTION 2 + 0x10,0x0f, // LOAD_CONST_STRING 'UiConfirmDecredSSTXSubmission' + 0x11,0x0d, // LOAD_NAME 'UiConfirm' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0f, // STORE_NAME 'UiConfirmDecredSSTXSubmission' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x03, // MAKE_FUNCTION 3 + 0x10,0x10, // LOAD_CONST_STRING 'UiConfirmPaymentRequest' + 0x11,0x0d, // LOAD_NAME 'UiConfirm' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x10, // STORE_NAME 'UiConfirmPaymentRequest' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x04, // MAKE_FUNCTION 4 + 0x10,0x11, // LOAD_CONST_STRING 'UiConfirmReplacement' + 0x11,0x0d, // LOAD_NAME 'UiConfirm' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x11, // STORE_NAME 'UiConfirmReplacement' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x05, // MAKE_FUNCTION 5 + 0x10,0x12, // LOAD_CONST_STRING 'UiConfirmModifyOutput' + 0x11,0x0d, // LOAD_NAME 'UiConfirm' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x12, // STORE_NAME 'UiConfirmModifyOutput' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x06, // MAKE_FUNCTION 6 + 0x10,0x13, // LOAD_CONST_STRING 'UiConfirmModifyFee' + 0x11,0x0d, // LOAD_NAME 'UiConfirm' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x13, // STORE_NAME 'UiConfirmModifyFee' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x07, // MAKE_FUNCTION 7 + 0x10,0x14, // LOAD_CONST_STRING 'UiConfirmTotal' + 0x11,0x0d, // LOAD_NAME 'UiConfirm' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x14, // STORE_NAME 'UiConfirmTotal' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x08, // MAKE_FUNCTION 8 + 0x10,0x15, // LOAD_CONST_STRING 'UiConfirmJointTotal' + 0x11,0x0d, // LOAD_NAME 'UiConfirm' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x15, // STORE_NAME 'UiConfirmJointTotal' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x09, // MAKE_FUNCTION 9 + 0x10,0x16, // LOAD_CONST_STRING 'UiConfirmFeeOverThreshold' + 0x11,0x0d, // LOAD_NAME 'UiConfirm' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x16, // STORE_NAME 'UiConfirmFeeOverThreshold' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x10,0x17, // LOAD_CONST_STRING 'UiConfirmChangeCountOverThreshold' + 0x11,0x0d, // LOAD_NAME 'UiConfirm' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x17, // STORE_NAME 'UiConfirmChangeCountOverThreshold' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x10,0x18, // LOAD_CONST_STRING 'UiConfirmUnverifiedExternalInput' + 0x11,0x0d, // LOAD_NAME 'UiConfirm' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x18, // STORE_NAME 'UiConfirmUnverifiedExternalInput' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x10,0x19, // LOAD_CONST_STRING 'UiConfirmForeignAddress' + 0x11,0x0d, // LOAD_NAME 'UiConfirm' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x19, // STORE_NAME 'UiConfirmForeignAddress' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x10,0x1a, // LOAD_CONST_STRING 'UiConfirmNonDefaultLocktime' + 0x11,0x0d, // LOAD_NAME 'UiConfirm' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x1a, // STORE_NAME 'UiConfirmNonDefaultLocktime' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x10,0x1b, // LOAD_CONST_STRING 'UiConfirmMultipleAccounts' + 0x11,0x0d, // LOAD_NAME 'UiConfirm' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x1b, // STORE_NAME 'UiConfirmMultipleAccounts' + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x16,0x1d, // STORE_NAME 'confirm_output' + 0x32,0x10, // MAKE_FUNCTION 16 + 0x16,0x1e, // STORE_NAME 'confirm_decred_sstx_submission' + 0x32,0x11, // MAKE_FUNCTION 17 + 0x16,0x1f, // STORE_NAME 'confirm_payment_request' + 0x32,0x12, // MAKE_FUNCTION 18 + 0x16,0x20, // STORE_NAME 'confirm_replacement' + 0x32,0x13, // MAKE_FUNCTION 19 + 0x16,0x21, // STORE_NAME 'confirm_modify_output' + 0x32,0x14, // MAKE_FUNCTION 20 + 0x16,0x22, // STORE_NAME 'confirm_modify_fee' + 0x32,0x15, // MAKE_FUNCTION 21 + 0x16,0x23, // STORE_NAME 'confirm_total' + 0x32,0x16, // MAKE_FUNCTION 22 + 0x16,0x24, // STORE_NAME 'confirm_joint_total' + 0x32,0x17, // MAKE_FUNCTION 23 + 0x16,0x25, // STORE_NAME 'confirm_feeoverthreshold' + 0x32,0x18, // MAKE_FUNCTION 24 + 0x16,0x26, // STORE_NAME 'confirm_change_count_over_threshold' + 0x32,0x19, // MAKE_FUNCTION 25 + 0x16,0x27, // STORE_NAME 'confirm_unverified_external_input' + 0x32,0x1a, // MAKE_FUNCTION 26 + 0x16,0x28, // STORE_NAME 'confirm_foreign_address' + 0x32,0x1b, // MAKE_FUNCTION 27 + 0x16,0x29, // STORE_NAME 'confirm_nondefault_locktime' + 0x32,0x1c, // MAKE_FUNCTION 28 + 0x16,0x2a, // STORE_NAME 'confirm_multiple_accounts' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x1d, // MAKE_FUNCTION_DEFARGS 29 + 0x16,0x2b, // STORE_NAME 'request_tx_meta' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x1e, // MAKE_FUNCTION_DEFARGS 30 + 0x16,0x33, // STORE_NAME 'request_tx_extra_data' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x1f, // MAKE_FUNCTION_DEFARGS 31 + 0x16,0x39, // STORE_NAME 'request_tx_input' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x20, // MAKE_FUNCTION_DEFARGS 32 + 0x16,0x3f, // STORE_NAME 'request_tx_prev_input' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x21, // MAKE_FUNCTION_DEFARGS 33 + 0x16,0x41, // STORE_NAME 'request_tx_output' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x22, // MAKE_FUNCTION_DEFARGS 34 + 0x16,0x46, // STORE_NAME 'request_tx_prev_output' + 0x32,0x23, // MAKE_FUNCTION 35 + 0x16,0x48, // STORE_NAME 'request_payment_req' + 0x32,0x24, // MAKE_FUNCTION 36 + 0x16,0x4b, // STORE_NAME 'request_tx_finish' + 0x32,0x25, // MAKE_FUNCTION 37 + 0x16,0x4d, // STORE_NAME '_clear_tx_request' + 0x32,0x26, // MAKE_FUNCTION 38 + 0x16,0x52, // STORE_NAME 'sanitize_sign_tx' + 0x32,0x27, // MAKE_FUNCTION 39 + 0x16,0x59, // STORE_NAME '_sanitize_tx_meta' + 0x32,0x28, // MAKE_FUNCTION 40 + 0x16,0x5b, // STORE_NAME '_sanitize_tx_input' + 0x32,0x29, // MAKE_FUNCTION 41 + 0x16,0x6f, // STORE_NAME '_sanitize_tx_prev_input' + 0x32,0x2a, // MAKE_FUNCTION 42 + 0x16,0x70, // STORE_NAME '_sanitize_tx_output' + 0x32,0x2b, // MAKE_FUNCTION 43 + 0x16,0x7b, // STORE_NAME '_sanitize_payment_req' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirm +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirm[31] = { + 0x00,0x08, // prelude + 0x0d, // names: UiConfirm + 0x8b,0x21,0x65, // code info + 0x11,0x81,0x18, // LOAD_NAME '__name__' + 0x16,0x81,0x19, // STORE_NAME '__module__' + 0x10,0x0d, // LOAD_CONST_STRING 'UiConfirm' + 0x16,0x81,0x1a, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x01, // STORE_NAME 'confirm_dialog' + 0x11,0x02, // LOAD_NAME 'utils' + 0x13,0x1c, // LOAD_ATTR 'obj_eq' + 0x16,0x81,0x1b, // STORE_NAME '__eq__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_helpers_UiConfirm +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirm_confirm_dialog +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirm_confirm_dialog[14] = { + 0x09,0x0c, // prelude + 0x81,0x01,0x81,0x24, // names: confirm_dialog, self + 0x80,0x22, // code info + 0x12,0x81,0x25, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirm_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirm_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 129, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirm_confirm_dialog + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirm_confirm_dialog + 8, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirm_confirm_dialog + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_helpers_UiConfirm[] = { + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirm_confirm_dialog, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirm = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirm, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_helpers_UiConfirm, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirm + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirm + 6, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirm + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmOutput +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmOutput[30] = { + 0x00,0x0a, // prelude + 0x0e, // names: UiConfirmOutput + 0x8b,0x28,0x85,0x0e, // code info + 0x11,0x81,0x18, // LOAD_NAME '__name__' + 0x16,0x81,0x19, // STORE_NAME '__module__' + 0x10,0x0e, // LOAD_CONST_STRING 'UiConfirmOutput' + 0x16,0x81,0x1a, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x02, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x81,0x01, // STORE_NAME 'confirm_dialog' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_helpers_UiConfirmOutput +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmOutput___init__ +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmOutput___init__[48] = { + 0xba,0x04,0x26, // prelude + 0x81,0x02,0x81,0x24,0x45,0x81,0x03,0x81,0x04,0x81,0x05,0x81,0x06, // names: __init__, self, output, coin, amount_unit, output_index, chunkify + 0x80,0x30,0x24,0x25,0x25,0x25, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x45, // STORE_ATTR 'output' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x03, // STORE_ATTR 'coin' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x04, // STORE_ATTR 'amount_unit' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x05, // STORE_ATTR 'output_index' + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x06, // STORE_ATTR 'chunkify' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmOutput___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 6, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmOutput___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 130, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmOutput___init__ + 16, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmOutput___init__ + 22, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmOutput___init__ + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers_UiConfirmOutput +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmOutput_confirm_dialog +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmOutput_confirm_dialog[39] = { + 0x39,0x16, // prelude + 0x81,0x01,0x81,0x24, // names: confirm_dialog, self + 0x80,0x37,0x24,0x23,0x24,0x24,0x24, // code info + 0x12,0x0c, // LOAD_GLOBAL 'layout' + 0x14,0x1d, // LOAD_METHOD 'confirm_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x45, // LOAD_ATTR 'output' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x03, // LOAD_ATTR 'coin' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x04, // LOAD_ATTR 'amount_unit' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x05, // LOAD_ATTR 'output_index' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x06, // LOAD_ATTR 'chunkify' + 0x36,0x05, // CALL_METHOD 5 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmOutput_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmOutput_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 129, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmOutput_confirm_dialog + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmOutput_confirm_dialog + 13, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmOutput_confirm_dialog + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_helpers_UiConfirmOutput[] = { + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmOutput___init__, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmOutput_confirm_dialog, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmOutput = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmOutput, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_helpers_UiConfirmOutput, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmOutput + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmOutput + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmOutput + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission[30] = { + 0x00,0x0a, // prelude + 0x0f, // names: UiConfirmDecredSSTXSubmission + 0x8b,0x41,0x65,0x40, // code info + 0x11,0x81,0x18, // LOAD_NAME '__name__' + 0x16,0x81,0x19, // STORE_NAME '__module__' + 0x10,0x0f, // LOAD_CONST_STRING 'UiConfirmDecredSSTXSubmission' + 0x16,0x81,0x1a, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x02, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x81,0x01, // STORE_NAME 'confirm_dialog' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission___init__ +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission___init__[32] = { + 0xa8,0x04,0x1a, // prelude + 0x81,0x02,0x81,0x24,0x45,0x81,0x03,0x81,0x04, // names: __init__, self, output, coin, amount_unit + 0x80,0x42,0x24,0x25, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x45, // STORE_ATTR 'output' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x03, // STORE_ATTR 'coin' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x04, // STORE_ATTR 'amount_unit' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 130, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission___init__ + 12, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission___init__ + 16, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission___init__ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission_confirm_dialog +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission_confirm_dialog[27] = { + 0x29,0x0e, // prelude + 0x81,0x01,0x81,0x24, // names: confirm_dialog, self + 0x80,0x47,0x24, // code info + 0x12,0x0c, // LOAD_GLOBAL 'layout' + 0x14,0x1e, // LOAD_METHOD 'confirm_decred_sstx_submission' + 0xb0, // LOAD_FAST 0 + 0x13,0x45, // LOAD_ATTR 'output' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x03, // LOAD_ATTR 'coin' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x04, // LOAD_ATTR 'amount_unit' + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 129, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission_confirm_dialog + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission_confirm_dialog + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission_confirm_dialog + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission[] = { + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission___init__, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission_confirm_dialog, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest[39] = { + 0x00,0x0e, // prelude + 0x10, // names: UiConfirmPaymentRequest + 0x8b,0x4d,0x85,0x0a,0x65,0x40, // code info + 0x11,0x81,0x18, // LOAD_NAME '__name__' + 0x16,0x81,0x19, // STORE_NAME '__module__' + 0x10,0x10, // LOAD_CONST_STRING 'UiConfirmPaymentRequest' + 0x16,0x81,0x1a, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x02, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x81,0x01, // STORE_NAME 'confirm_dialog' + 0x11,0x02, // LOAD_NAME 'utils' + 0x13,0x1c, // LOAD_ATTR 'obj_eq' + 0x16,0x81,0x1b, // STORE_NAME '__eq__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest___init__ +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest___init__[34] = { + 0xa8,0x04,0x1c, // prelude + 0x81,0x02,0x81,0x24,0x81,0x07,0x81,0x03,0x81,0x04, // names: __init__, self, payment_req, coin, amount_unit + 0x80,0x53,0x25,0x25, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x07, // STORE_ATTR 'payment_req' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x04, // STORE_ATTR 'amount_unit' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x03, // STORE_ATTR 'coin' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 130, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest___init__ + 13, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest___init__ + 17, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest___init__ + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest_confirm_dialog +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest_confirm_dialog[28] = { + 0x29,0x0e, // prelude + 0x81,0x01,0x81,0x24, // names: confirm_dialog, self + 0x80,0x58,0x24, // code info + 0x12,0x0c, // LOAD_GLOBAL 'layout' + 0x14,0x1f, // LOAD_METHOD 'confirm_payment_request' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x07, // LOAD_ATTR 'payment_req' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x03, // LOAD_ATTR 'coin' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x04, // LOAD_ATTR 'amount_unit' + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 129, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest_confirm_dialog + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest_confirm_dialog + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest_confirm_dialog + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest[] = { + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest___init__, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest_confirm_dialog, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmReplacement +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement[30] = { + 0x00,0x0a, // prelude + 0x11, // names: UiConfirmReplacement + 0x8b,0x60,0x65,0x20, // code info + 0x11,0x81,0x18, // LOAD_NAME '__name__' + 0x16,0x81,0x19, // STORE_NAME '__module__' + 0x10,0x11, // LOAD_CONST_STRING 'UiConfirmReplacement' + 0x16,0x81,0x1a, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x02, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x81,0x01, // STORE_NAME 'confirm_dialog' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_helpers_UiConfirmReplacement +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmReplacement___init__ +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement___init__[25] = { + 0x23,0x16, // prelude + 0x81,0x02,0x81,0x24,0x81,0x08,0x81,0x09, // names: __init__, self, title, txid + 0x80,0x61,0x25, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x08, // STORE_ATTR 'title' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x09, // STORE_ATTR 'txid' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 130, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement___init__ + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement___init__ + 13, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement___init__ + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers_UiConfirmReplacement +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmReplacement_confirm_dialog +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement_confirm_dialog[23] = { + 0x21,0x0c, // prelude + 0x81,0x01,0x81,0x24, // names: confirm_dialog, self + 0x80,0x65, // code info + 0x12,0x0c, // LOAD_GLOBAL 'layout' + 0x14,0x20, // LOAD_METHOD 'confirm_replacement' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x08, // LOAD_ATTR 'title' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x09, // LOAD_ATTR 'txid' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 129, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement_confirm_dialog + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement_confirm_dialog + 8, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement_confirm_dialog + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement[] = { + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement___init__, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement_confirm_dialog, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput[30] = { + 0x00,0x0a, // prelude + 0x12, // names: UiConfirmModifyOutput + 0x8b,0x69,0x85,0x0c, // code info + 0x11,0x81,0x18, // LOAD_NAME '__name__' + 0x16,0x81,0x19, // STORE_NAME '__module__' + 0x10,0x12, // LOAD_CONST_STRING 'UiConfirmModifyOutput' + 0x16,0x81,0x1a, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x02, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x81,0x01, // STORE_NAME 'confirm_dialog' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput___init__ +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput___init__[42] = { + 0xb1,0x04,0x22, // prelude + 0x81,0x02,0x81,0x24,0x81,0x0a,0x81,0x0b,0x81,0x03,0x81,0x04, // names: __init__, self, txo, orig_txo, coin, amount_unit + 0x80,0x70,0x25,0x25,0x25, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x0a, // STORE_ATTR 'txo' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x0b, // STORE_ATTR 'orig_txo' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x03, // STORE_ATTR 'coin' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x04, // STORE_ATTR 'amount_unit' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 130, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput___init__ + 15, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput___init__ + 20, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput___init__ + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput_confirm_dialog +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput_confirm_dialog[32] = { + 0x31,0x0e, // prelude + 0x81,0x01,0x81,0x24, // names: confirm_dialog, self + 0x80,0x76,0x24, // code info + 0x12,0x0c, // LOAD_GLOBAL 'layout' + 0x14,0x21, // LOAD_METHOD 'confirm_modify_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0a, // LOAD_ATTR 'txo' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0b, // LOAD_ATTR 'orig_txo' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x03, // LOAD_ATTR 'coin' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x04, // LOAD_ATTR 'amount_unit' + 0x36,0x04, // CALL_METHOD 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 129, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput_confirm_dialog + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput_confirm_dialog + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput_confirm_dialog + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput[] = { + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput___init__, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput_confirm_dialog, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee[30] = { + 0x00,0x0a, // prelude + 0x13, // names: UiConfirmModifyFee + 0x8b,0x7c,0x85,0x10, // code info + 0x11,0x81,0x18, // LOAD_NAME '__name__' + 0x16,0x81,0x19, // STORE_NAME '__module__' + 0x10,0x13, // LOAD_CONST_STRING 'UiConfirmModifyFee' + 0x16,0x81,0x1a, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x02, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x81,0x01, // STORE_NAME 'confirm_dialog' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee___init__ +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee___init__[58] = { + 0xc3,0x04,0x2e, // prelude + 0x81,0x02,0x81,0x24,0x81,0x08,0x81,0x0c,0x81,0x0d,0x81,0x0e,0x81,0x03,0x81,0x04, // names: __init__, self, title, user_fee_change, total_fee_new, fee_rate, coin, amount_unit + 0x80,0x85,0x25,0x25,0x25,0x25,0x25, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x08, // STORE_ATTR 'title' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x0c, // STORE_ATTR 'user_fee_change' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x0d, // STORE_ATTR 'total_fee_new' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x0e, // STORE_ATTR 'fee_rate' + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x03, // STORE_ATTR 'coin' + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x04, // STORE_ATTR 'amount_unit' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 7, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 58, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 130, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee___init__ + 19, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee___init__ + 26, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee___init__ + 26, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee_confirm_dialog +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee_confirm_dialog[45] = { + 0x41,0x18, // prelude + 0x81,0x01,0x81,0x24, // names: confirm_dialog, self + 0x80,0x8d,0x24,0x24,0x24,0x24,0x24,0x24, // code info + 0x12,0x0c, // LOAD_GLOBAL 'layout' + 0x14,0x22, // LOAD_METHOD 'confirm_modify_fee' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x08, // LOAD_ATTR 'title' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0c, // LOAD_ATTR 'user_fee_change' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0d, // LOAD_ATTR 'total_fee_new' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0e, // LOAD_ATTR 'fee_rate' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x03, // LOAD_ATTR 'coin' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x04, // LOAD_ATTR 'amount_unit' + 0x36,0x06, // CALL_METHOD 6 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 129, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee_confirm_dialog + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee_confirm_dialog + 14, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee_confirm_dialog + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee[] = { + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee___init__, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee_confirm_dialog, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmTotal +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmTotal[30] = { + 0x00,0x0a, // prelude + 0x14, // names: UiConfirmTotal + 0x8b,0x98,0x85,0x10, // code info + 0x11,0x81,0x18, // LOAD_NAME '__name__' + 0x16,0x81,0x19, // STORE_NAME '__module__' + 0x10,0x14, // LOAD_CONST_STRING 'UiConfirmTotal' + 0x16,0x81,0x1a, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x02, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x81,0x01, // STORE_NAME 'confirm_dialog' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_helpers_UiConfirmTotal +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmTotal___init__ +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmTotal___init__[56] = { + 0xc3,0x04,0x2c, // prelude + 0x81,0x02,0x81,0x24,0x81,0x0f,0x81,0x10,0x81,0x0e,0x81,0x03,0x81,0x04,0x63, // names: __init__, self, spending, fee, fee_rate, coin, amount_unit, address_n + 0x80,0xa1,0x25,0x25,0x25,0x25,0x25, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x0f, // STORE_ATTR 'spending' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x10, // STORE_ATTR 'fee' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x0e, // STORE_ATTR 'fee_rate' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x03, // STORE_ATTR 'coin' + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x04, // STORE_ATTR 'amount_unit' + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x18,0x63, // STORE_ATTR 'address_n' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmTotal___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 7, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmTotal___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 130, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmTotal___init__ + 18, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmTotal___init__ + 25, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmTotal___init__ + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers_UiConfirmTotal +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmTotal_confirm_dialog +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmTotal_confirm_dialog[44] = { + 0x41,0x18, // prelude + 0x81,0x01,0x81,0x24, // names: confirm_dialog, self + 0x80,0xa9,0x24,0x24,0x24,0x24,0x24,0x24, // code info + 0x12,0x0c, // LOAD_GLOBAL 'layout' + 0x14,0x23, // LOAD_METHOD 'confirm_total' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0f, // LOAD_ATTR 'spending' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'fee' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0e, // LOAD_ATTR 'fee_rate' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x03, // LOAD_ATTR 'coin' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x04, // LOAD_ATTR 'amount_unit' + 0xb0, // LOAD_FAST 0 + 0x13,0x63, // LOAD_ATTR 'address_n' + 0x36,0x06, // CALL_METHOD 6 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmTotal_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmTotal_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 129, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmTotal_confirm_dialog + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmTotal_confirm_dialog + 14, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmTotal_confirm_dialog + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_helpers_UiConfirmTotal[] = { + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmTotal___init__, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmTotal_confirm_dialog, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmTotal = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmTotal, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_helpers_UiConfirmTotal, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmTotal + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmTotal + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmTotal + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal[30] = { + 0x00,0x0a, // prelude + 0x15, // names: UiConfirmJointTotal + 0x8b,0xb4,0x85,0x08, // code info + 0x11,0x81,0x18, // LOAD_NAME '__name__' + 0x16,0x81,0x19, // STORE_NAME '__module__' + 0x10,0x15, // LOAD_CONST_STRING 'UiConfirmJointTotal' + 0x16,0x81,0x1a, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x02, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x81,0x01, // STORE_NAME 'confirm_dialog' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal___init__ +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal___init__[42] = { + 0xb1,0x04,0x22, // prelude + 0x81,0x02,0x81,0x24,0x81,0x0f,0x81,0x11,0x81,0x03,0x81,0x04, // names: __init__, self, spending, total, coin, amount_unit + 0x80,0xb7,0x25,0x25,0x25, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x0f, // STORE_ATTR 'spending' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x11, // STORE_ATTR 'total' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x03, // STORE_ATTR 'coin' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x04, // STORE_ATTR 'amount_unit' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 130, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal___init__ + 15, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal___init__ + 20, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal___init__ + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal_confirm_dialog +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal_confirm_dialog[32] = { + 0x31,0x0e, // prelude + 0x81,0x01,0x81,0x24, // names: confirm_dialog, self + 0x80,0xbd,0x24, // code info + 0x12,0x0c, // LOAD_GLOBAL 'layout' + 0x14,0x24, // LOAD_METHOD 'confirm_joint_total' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0f, // LOAD_ATTR 'spending' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x11, // LOAD_ATTR 'total' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x03, // LOAD_ATTR 'coin' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x04, // LOAD_ATTR 'amount_unit' + 0x36,0x04, // CALL_METHOD 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 129, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal_confirm_dialog + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal_confirm_dialog + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal_confirm_dialog + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal[] = { + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal___init__, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal_confirm_dialog, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold[30] = { + 0x00,0x0a, // prelude + 0x16, // names: UiConfirmFeeOverThreshold + 0x8b,0xc3,0x65,0x40, // code info + 0x11,0x81,0x18, // LOAD_NAME '__name__' + 0x16,0x81,0x19, // STORE_NAME '__module__' + 0x10,0x16, // LOAD_CONST_STRING 'UiConfirmFeeOverThreshold' + 0x16,0x81,0x1a, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x02, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x81,0x01, // STORE_NAME 'confirm_dialog' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold___init__ +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold___init__[34] = { + 0xa8,0x04,0x1c, // prelude + 0x81,0x02,0x81,0x24,0x81,0x10,0x81,0x03,0x81,0x04, // names: __init__, self, fee, coin, amount_unit + 0x80,0xc4,0x25,0x25, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x10, // STORE_ATTR 'fee' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x03, // STORE_ATTR 'coin' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x04, // STORE_ATTR 'amount_unit' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 130, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold___init__ + 13, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold___init__ + 17, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold___init__ + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold_confirm_dialog +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold_confirm_dialog[27] = { + 0x29,0x0c, // prelude + 0x81,0x01,0x81,0x24, // names: confirm_dialog, self + 0x80,0xc9, // code info + 0x12,0x0c, // LOAD_GLOBAL 'layout' + 0x14,0x25, // LOAD_METHOD 'confirm_feeoverthreshold' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'fee' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x03, // LOAD_ATTR 'coin' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x04, // LOAD_ATTR 'amount_unit' + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 129, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold_confirm_dialog + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold_confirm_dialog + 8, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold_confirm_dialog + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold[] = { + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold___init__, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold_confirm_dialog, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold[29] = { + 0x00,0x08, // prelude + 0x17, // names: UiConfirmChangeCountOverThreshold + 0x8b,0xcd,0x65, // code info + 0x11,0x81,0x18, // LOAD_NAME '__name__' + 0x16,0x81,0x19, // STORE_NAME '__module__' + 0x10,0x17, // LOAD_CONST_STRING 'UiConfirmChangeCountOverThreshold' + 0x16,0x81,0x1a, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x02, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x81,0x01, // STORE_NAME 'confirm_dialog' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold___init__ +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold___init__[17] = { + 0x1a,0x10, // prelude + 0x81,0x02,0x81,0x24,0x81,0x12, // names: __init__, self, change_count + 0x80,0xce, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x12, // STORE_ATTR 'change_count' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 130, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold___init__ + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold___init__ + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold___init__ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold_confirm_dialog +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold_confirm_dialog[19] = { + 0x19,0x0c, // prelude + 0x81,0x01,0x81,0x24, // names: confirm_dialog, self + 0x80,0xd1, // code info + 0x12,0x0c, // LOAD_GLOBAL 'layout' + 0x14,0x26, // LOAD_METHOD 'confirm_change_count_over_threshold' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x12, // LOAD_ATTR 'change_count' + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 129, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold_confirm_dialog + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold_confirm_dialog + 8, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold_confirm_dialog + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold[] = { + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold___init__, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold_confirm_dialog, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold + 6, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmUnverifiedExternalInput +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmUnverifiedExternalInput[23] = { + 0x00,0x06, // prelude + 0x18, // names: UiConfirmUnverifiedExternalInput + 0x8b,0xd5, // code info + 0x11,0x81,0x18, // LOAD_NAME '__name__' + 0x16,0x81,0x19, // STORE_NAME '__module__' + 0x10,0x18, // LOAD_CONST_STRING 'UiConfirmUnverifiedExternalInput' + 0x16,0x81,0x1a, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x01, // STORE_NAME 'confirm_dialog' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_helpers_UiConfirmUnverifiedExternalInput +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmUnverifiedExternalInput_confirm_dialog +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmUnverifiedExternalInput_confirm_dialog[15] = { + 0x11,0x0c, // prelude + 0x81,0x01,0x81,0x24, // names: confirm_dialog, self + 0x80,0xd6, // code info + 0x12,0x0c, // LOAD_GLOBAL 'layout' + 0x14,0x27, // LOAD_METHOD 'confirm_unverified_external_input' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmUnverifiedExternalInput_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmUnverifiedExternalInput_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 129, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmUnverifiedExternalInput_confirm_dialog + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmUnverifiedExternalInput_confirm_dialog + 8, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmUnverifiedExternalInput_confirm_dialog + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_helpers_UiConfirmUnverifiedExternalInput[] = { + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmUnverifiedExternalInput_confirm_dialog, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmUnverifiedExternalInput = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmUnverifiedExternalInput, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_helpers_UiConfirmUnverifiedExternalInput, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 24, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmUnverifiedExternalInput + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmUnverifiedExternalInput + 5, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmUnverifiedExternalInput + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress[29] = { + 0x00,0x08, // prelude + 0x19, // names: UiConfirmForeignAddress + 0x8b,0xda,0x65, // code info + 0x11,0x81,0x18, // LOAD_NAME '__name__' + 0x16,0x81,0x19, // STORE_NAME '__module__' + 0x10,0x19, // LOAD_CONST_STRING 'UiConfirmForeignAddress' + 0x16,0x81,0x1a, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x02, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x81,0x01, // STORE_NAME 'confirm_dialog' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress___init__ +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress___init__[15] = { + 0x1a,0x0e, // prelude + 0x81,0x02,0x81,0x24,0x63, // names: __init__, self, address_n + 0x80,0xdb, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x63, // STORE_ATTR 'address_n' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 130, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress___init__ + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress___init__ + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress___init__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress_confirm_dialog +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress_confirm_dialog[33] = { + 0x21,0x0e, // prelude + 0x81,0x01,0x81,0x24, // names: confirm_dialog, self + 0x80,0xde,0x4e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x13, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x81,0x14, // IMPORT_NAME 'apps.common' + 0x1c,0x81,0x13, // IMPORT_FROM 'paths' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x15, // LOAD_METHOD 'show_path_warning' + 0xb0, // LOAD_FAST 0 + 0x13,0x63, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 129, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress_confirm_dialog + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress_confirm_dialog + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress_confirm_dialog + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress[] = { + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress___init__, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress_confirm_dialog, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress + 6, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime[30] = { + 0x00,0x0a, // prelude + 0x1a, // names: UiConfirmNonDefaultLocktime + 0x8b,0xe4,0x65,0x20, // code info + 0x11,0x81,0x18, // LOAD_NAME '__name__' + 0x16,0x81,0x19, // STORE_NAME '__module__' + 0x10,0x1a, // LOAD_CONST_STRING 'UiConfirmNonDefaultLocktime' + 0x16,0x81,0x1a, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x02, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x81,0x01, // STORE_NAME 'confirm_dialog' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime___init__ +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime___init__[25] = { + 0x23,0x16, // prelude + 0x81,0x02,0x81,0x24,0x81,0x16,0x81,0x17, // names: __init__, self, lock_time, lock_time_disabled + 0x80,0xe5,0x25, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x16, // STORE_ATTR 'lock_time' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x17, // STORE_ATTR 'lock_time_disabled' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 130, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime___init__ + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime___init__ + 13, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime___init__ + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime_confirm_dialog +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime_confirm_dialog[24] = { + 0x21,0x0e, // prelude + 0x81,0x01,0x81,0x24, // names: confirm_dialog, self + 0x80,0xe9,0x24, // code info + 0x12,0x0c, // LOAD_GLOBAL 'layout' + 0x14,0x29, // LOAD_METHOD 'confirm_nondefault_locktime' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x16, // LOAD_ATTR 'lock_time' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x17, // LOAD_ATTR 'lock_time_disabled' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 129, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime_confirm_dialog + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime_confirm_dialog + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime_confirm_dialog + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime[] = { + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime___init__, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime_confirm_dialog, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 26, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmMultipleAccounts +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmMultipleAccounts[23] = { + 0x00,0x06, // prelude + 0x1b, // names: UiConfirmMultipleAccounts + 0x8b,0xef, // code info + 0x11,0x81,0x18, // LOAD_NAME '__name__' + 0x16,0x81,0x19, // STORE_NAME '__module__' + 0x10,0x1b, // LOAD_CONST_STRING 'UiConfirmMultipleAccounts' + 0x16,0x81,0x1a, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x01, // STORE_NAME 'confirm_dialog' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_helpers_UiConfirmMultipleAccounts +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_UiConfirmMultipleAccounts_confirm_dialog +static const byte fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmMultipleAccounts_confirm_dialog[15] = { + 0x11,0x0c, // prelude + 0x81,0x01,0x81,0x24, // names: confirm_dialog, self + 0x80,0xf0, // code info + 0x12,0x0c, // LOAD_GLOBAL 'layout' + 0x14,0x2a, // LOAD_METHOD 'confirm_multiple_accounts' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmMultipleAccounts_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmMultipleAccounts_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 129, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmMultipleAccounts_confirm_dialog + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmMultipleAccounts_confirm_dialog + 8, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmMultipleAccounts_confirm_dialog + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_helpers_UiConfirmMultipleAccounts[] = { + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmMultipleAccounts_confirm_dialog, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmMultipleAccounts = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmMultipleAccounts, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_helpers_UiConfirmMultipleAccounts, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 27, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmMultipleAccounts + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmMultipleAccounts + 5, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_UiConfirmMultipleAccounts + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_confirm_output +static const byte fun_data_apps_bitcoin_sign_tx_helpers_confirm_output[26] = { + 0xd1,0x44,0x18, // prelude + 0x1d,0x45,0x81,0x03,0x81,0x04,0x81,0x05,0x81,0x06, // names: confirm_output, output, coin, amount_unit, output_index, chunkify + 0x80,0xf4, // code info + 0x12,0x0e, // LOAD_GLOBAL 'UiConfirmOutput' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x05, // CALL_FUNCTION 5 + 0x67, // YIELD_VALUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_confirm_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_confirm_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_confirm_output + 13, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_confirm_output + 15, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_confirm_output + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_confirm_decred_sstx_submission +static const byte fun_data_apps_bitcoin_sign_tx_helpers_confirm_decred_sstx_submission[20] = { + 0xb3,0x40,0x10, // prelude + 0x1e,0x45,0x81,0x03,0x81,0x04, // names: confirm_decred_sstx_submission, output, coin, amount_unit + 0x80,0xf8, // code info + 0x12,0x0f, // LOAD_GLOBAL 'UiConfirmDecredSSTXSubmission' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x67, // YIELD_VALUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_confirm_decred_sstx_submission = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_confirm_decred_sstx_submission, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_confirm_decred_sstx_submission + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_confirm_decred_sstx_submission + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_confirm_decred_sstx_submission + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_confirm_payment_request +static const byte fun_data_apps_bitcoin_sign_tx_helpers_confirm_payment_request[21] = { + 0xb3,0x40,0x12, // prelude + 0x1f,0x81,0x07,0x81,0x03,0x81,0x04, // names: confirm_payment_request, payment_req, coin, amount_unit + 0x80,0xfc, // code info + 0x12,0x10, // LOAD_GLOBAL 'UiConfirmPaymentRequest' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x67, // YIELD_VALUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_confirm_payment_request = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_confirm_payment_request, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_confirm_payment_request + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_confirm_payment_request + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_confirm_payment_request + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_confirm_replacement +static const byte fun_data_apps_bitcoin_sign_tx_helpers_confirm_replacement[18] = { + 0xa2,0x40,0x0e, // prelude + 0x20,0x81,0x1c,0x81,0x09, // names: confirm_replacement, description, txid + 0x90,0x00, // code info + 0x12,0x11, // LOAD_GLOBAL 'UiConfirmReplacement' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x67, // YIELD_VALUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_confirm_replacement = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_confirm_replacement, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_confirm_replacement + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_confirm_replacement + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_confirm_replacement + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_confirm_modify_output +static const byte fun_data_apps_bitcoin_sign_tx_helpers_confirm_modify_output[24] = { + 0xc0,0x44,0x16, // prelude + 0x21,0x81,0x0a,0x81,0x0b,0x81,0x03,0x81,0x04, // names: confirm_modify_output, txo, orig_txo, coin, amount_unit + 0x90,0x04, // code info + 0x12,0x12, // LOAD_GLOBAL 'UiConfirmModifyOutput' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x04, // CALL_FUNCTION 4 + 0x67, // YIELD_VALUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_confirm_modify_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_confirm_modify_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_confirm_modify_output + 12, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_confirm_modify_output + 14, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_confirm_modify_output + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_confirm_modify_fee +static const byte fun_data_apps_bitcoin_sign_tx_helpers_confirm_modify_fee[31] = { + 0xe2,0x44,0x20, // prelude + 0x22,0x81,0x08,0x81,0x0c,0x81,0x0d,0x81,0x0e,0x81,0x03,0x81,0x04, // names: confirm_modify_fee, title, user_fee_change, total_fee_new, fee_rate, coin, amount_unit + 0x90,0x08,0x20, // code info + 0x12,0x13, // LOAD_GLOBAL 'UiConfirmModifyFee' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x34,0x06, // CALL_FUNCTION 6 + 0x67, // YIELD_VALUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_confirm_modify_fee = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 6, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_confirm_modify_fee, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_confirm_modify_fee + 16, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_confirm_modify_fee + 19, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_confirm_modify_fee + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_confirm_total +static const byte fun_data_apps_bitcoin_sign_tx_helpers_confirm_total[29] = { + 0xe2,0x44,0x1c, // prelude + 0x23,0x81,0x0f,0x81,0x10,0x81,0x0e,0x81,0x03,0x81,0x04,0x63, // names: confirm_total, spending, fee, fee_rate, coin, amount_unit, address_n + 0x90,0x10, // code info + 0x12,0x14, // LOAD_GLOBAL 'UiConfirmTotal' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x34,0x06, // CALL_FUNCTION 6 + 0x67, // YIELD_VALUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_confirm_total = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 6, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_confirm_total, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_confirm_total + 15, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_confirm_total + 17, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_confirm_total + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_confirm_joint_total +static const byte fun_data_apps_bitcoin_sign_tx_helpers_confirm_joint_total[24] = { + 0xc0,0x44,0x16, // prelude + 0x24,0x81,0x0f,0x81,0x11,0x81,0x03,0x81,0x04, // names: confirm_joint_total, spending, total, coin, amount_unit + 0x90,0x14, // code info + 0x12,0x15, // LOAD_GLOBAL 'UiConfirmJointTotal' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x04, // CALL_FUNCTION 4 + 0x67, // YIELD_VALUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_confirm_joint_total = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_confirm_joint_total, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_confirm_joint_total + 12, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_confirm_joint_total + 14, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_confirm_joint_total + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_confirm_feeoverthreshold +static const byte fun_data_apps_bitcoin_sign_tx_helpers_confirm_feeoverthreshold[21] = { + 0xb3,0x40,0x12, // prelude + 0x25,0x81,0x10,0x81,0x03,0x81,0x04, // names: confirm_feeoverthreshold, fee, coin, amount_unit + 0x90,0x18, // code info + 0x12,0x16, // LOAD_GLOBAL 'UiConfirmFeeOverThreshold' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x67, // YIELD_VALUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_confirm_feeoverthreshold = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_confirm_feeoverthreshold, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_confirm_feeoverthreshold + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_confirm_feeoverthreshold + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_confirm_feeoverthreshold + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_confirm_change_count_over_threshold +static const byte fun_data_apps_bitcoin_sign_tx_helpers_confirm_change_count_over_threshold[15] = { + 0x91,0x40,0x0a, // prelude + 0x26,0x81,0x12, // names: confirm_change_count_over_threshold, change_count + 0x90,0x1c, // code info + 0x12,0x17, // LOAD_GLOBAL 'UiConfirmChangeCountOverThreshold' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_confirm_change_count_over_threshold = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_confirm_change_count_over_threshold, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 38, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_confirm_change_count_over_threshold + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_confirm_change_count_over_threshold + 8, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_confirm_change_count_over_threshold + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_confirm_unverified_external_input +static const byte fun_data_apps_bitcoin_sign_tx_helpers_confirm_unverified_external_input[12] = { + 0x80,0x40,0x06, // prelude + 0x27, // names: confirm_unverified_external_input + 0x90,0x20, // code info + 0x12,0x18, // LOAD_GLOBAL 'UiConfirmUnverifiedExternalInput' + 0x34,0x00, // CALL_FUNCTION 0 + 0x67, // YIELD_VALUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_confirm_unverified_external_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_confirm_unverified_external_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_confirm_unverified_external_input + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_confirm_unverified_external_input + 6, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_confirm_unverified_external_input + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_confirm_foreign_address +static const byte fun_data_apps_bitcoin_sign_tx_helpers_confirm_foreign_address[14] = { + 0x91,0x40,0x08, // prelude + 0x28,0x63, // names: confirm_foreign_address, address_n + 0x90,0x24, // code info + 0x12,0x19, // LOAD_GLOBAL 'UiConfirmForeignAddress' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_confirm_foreign_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_confirm_foreign_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_confirm_foreign_address + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_confirm_foreign_address + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_confirm_foreign_address + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_confirm_nondefault_locktime +static const byte fun_data_apps_bitcoin_sign_tx_helpers_confirm_nondefault_locktime[18] = { + 0xa2,0x40,0x0e, // prelude + 0x29,0x81,0x16,0x81,0x17, // names: confirm_nondefault_locktime, lock_time, lock_time_disabled + 0x90,0x28, // code info + 0x12,0x1a, // LOAD_GLOBAL 'UiConfirmNonDefaultLocktime' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x67, // YIELD_VALUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_confirm_nondefault_locktime = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_confirm_nondefault_locktime, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_confirm_nondefault_locktime + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_confirm_nondefault_locktime + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_confirm_nondefault_locktime + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_confirm_multiple_accounts +static const byte fun_data_apps_bitcoin_sign_tx_helpers_confirm_multiple_accounts[12] = { + 0x80,0x40,0x06, // prelude + 0x2a, // names: confirm_multiple_accounts + 0x90,0x2c, // code info + 0x12,0x1b, // LOAD_GLOBAL 'UiConfirmMultipleAccounts' + 0x34,0x00, // CALL_FUNCTION 0 + 0x67, // YIELD_VALUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_confirm_multiple_accounts = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_confirm_multiple_accounts, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_confirm_multiple_accounts + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_confirm_multiple_accounts + 6, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_confirm_multiple_accounts + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_request_tx_meta +static const byte fun_data_apps_bitcoin_sign_tx_helpers_request_tx_meta[62] = { + 0xbb,0x41,0x1c, // prelude + 0x2b,0x81,0x1d,0x81,0x03,0x31, // names: request_tx_meta, tx_req, coin, tx_hash + 0x90,0x30,0x4b,0x20,0x27,0x26,0x26,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2c, // LOAD_CONST_STRING 'TxAckPrevMeta' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2d, // IMPORT_NAME 'trezor.messages' + 0x1c,0x2c, // IMPORT_FROM 'TxAckPrevMeta' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'RequestType' + 0x13,0x2e, // LOAD_ATTR 'TXMETA' + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'request_type' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'details' + 0x18,0x31, // STORE_ATTR 'tx_hash' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x67, // YIELD_VALUE + 0xc4, // STORE_FAST 4 + 0x12,0x4d, // LOAD_GLOBAL '_clear_tx_request' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x59, // LOAD_GLOBAL '_sanitize_tx_meta' + 0xb4, // LOAD_FAST 4 + 0x13,0x32, // LOAD_ATTR 'tx' + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_request_tx_meta = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_meta, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 62, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 43, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_meta + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_meta + 17, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_meta + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_request_tx_extra_data +static const byte fun_data_apps_bitcoin_sign_tx_helpers_request_tx_extra_data[74] = { + 0xc0,0x45,0x26, // prelude + 0x33,0x81,0x1d,0x81,0x1e,0x81,0x1f,0x31, // names: request_tx_extra_data, tx_req, offset, size, tx_hash + 0x90,0x3d,0x4b,0x44,0x20,0x27,0x24,0x24,0x24,0x26,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x34, // LOAD_CONST_STRING 'TxAckPrevExtraData' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2d, // IMPORT_NAME 'trezor.messages' + 0x1c,0x34, // IMPORT_FROM 'TxAckPrevExtraData' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'details' + 0xc5, // STORE_FAST 5 + 0x12,0x04, // LOAD_GLOBAL 'RequestType' + 0x13,0x35, // LOAD_ATTR 'TXEXTRADATA' + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'request_type' + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0x18,0x36, // STORE_ATTR 'extra_data_offset' + 0xb2, // LOAD_FAST 2 + 0xb5, // LOAD_FAST 5 + 0x18,0x37, // STORE_ATTR 'extra_data_len' + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0x18,0x31, // STORE_ATTR 'tx_hash' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x67, // YIELD_VALUE + 0xc6, // STORE_FAST 6 + 0x12,0x4d, // LOAD_GLOBAL '_clear_tx_request' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x13,0x32, // LOAD_ATTR 'tx' + 0x13,0x38, // LOAD_ATTR 'extra_data_chunk' + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_request_tx_extra_data = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_extra_data, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 74, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 51, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_extra_data + 11, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_extra_data + 22, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_extra_data + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_request_tx_input +static const byte fun_data_apps_bitcoin_sign_tx_helpers_request_tx_input[87] = { + 0xc0,0x45,0x26, // prelude + 0x39,0x81,0x1d,0x81,0x20,0x81,0x03,0x31, // names: request_tx_input, tx_req, i, coin, tx_hash + 0x90,0x4c,0x4b,0x20,0x23,0x27,0x48,0x27,0x26,0x26,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3a, // LOAD_CONST_STRING 'TxAckInput' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2d, // IMPORT_NAME 'trezor.messages' + 0x1c,0x3a, // IMPORT_FROM 'TxAckInput' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x12,0x04, // LOAD_GLOBAL 'RequestType' + 0x13,0x3b, // LOAD_ATTR 'TXORIGINPUT' + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'request_type' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'details' + 0x18,0x31, // STORE_ATTR 'tx_hash' + 0x42,0x47, // JUMP 7 + 0x12,0x04, // LOAD_GLOBAL 'RequestType' + 0x13,0x3c, // LOAD_ATTR 'TXINPUT' + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'request_type' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'details' + 0x18,0x3d, // STORE_ATTR 'request_index' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x67, // YIELD_VALUE + 0xc5, // STORE_FAST 5 + 0x12,0x4d, // LOAD_GLOBAL '_clear_tx_request' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x5b, // LOAD_GLOBAL '_sanitize_tx_input' + 0xb5, // LOAD_FAST 5 + 0x13,0x32, // LOAD_ATTR 'tx' + 0x13,0x3e, // LOAD_ATTR 'input' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_request_tx_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 87, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 57, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_input + 11, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_input + 22, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_input + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_request_tx_prev_input +static const byte fun_data_apps_bitcoin_sign_tx_helpers_request_tx_prev_input[73] = { + 0xc0,0x45,0x22, // prelude + 0x3f,0x81,0x1d,0x81,0x20,0x81,0x03,0x31, // names: request_tx_prev_input, tx_req, i, coin, tx_hash + 0x90,0x5b,0x4b,0x20,0x27,0x26,0x26,0x26,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x40, // LOAD_CONST_STRING 'TxAckPrevInput' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2d, // IMPORT_NAME 'trezor.messages' + 0x1c,0x40, // IMPORT_FROM 'TxAckPrevInput' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'RequestType' + 0x13,0x3c, // LOAD_ATTR 'TXINPUT' + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'request_type' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'details' + 0x18,0x3d, // STORE_ATTR 'request_index' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'details' + 0x18,0x31, // STORE_ATTR 'tx_hash' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x67, // YIELD_VALUE + 0xc5, // STORE_FAST 5 + 0x12,0x4d, // LOAD_GLOBAL '_clear_tx_request' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x6f, // LOAD_GLOBAL '_sanitize_tx_prev_input' + 0xb5, // LOAD_FAST 5 + 0x13,0x32, // LOAD_ATTR 'tx' + 0x13,0x3e, // LOAD_ATTR 'input' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_request_tx_prev_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_prev_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 73, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 63, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_prev_input + 11, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_prev_input + 20, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_prev_input + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_request_tx_output +static const byte fun_data_apps_bitcoin_sign_tx_helpers_request_tx_output[87] = { + 0xc0,0x45,0x26, // prelude + 0x41,0x81,0x1d,0x81,0x20,0x81,0x03,0x31, // names: request_tx_output, tx_req, i, coin, tx_hash + 0x90,0x67,0x4b,0x20,0x23,0x27,0x48,0x27,0x26,0x26,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x42, // LOAD_CONST_STRING 'TxAckOutput' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2d, // IMPORT_NAME 'trezor.messages' + 0x1c,0x42, // IMPORT_FROM 'TxAckOutput' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x12,0x04, // LOAD_GLOBAL 'RequestType' + 0x13,0x43, // LOAD_ATTR 'TXORIGOUTPUT' + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'request_type' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'details' + 0x18,0x31, // STORE_ATTR 'tx_hash' + 0x42,0x47, // JUMP 7 + 0x12,0x04, // LOAD_GLOBAL 'RequestType' + 0x13,0x44, // LOAD_ATTR 'TXOUTPUT' + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'request_type' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'details' + 0x18,0x3d, // STORE_ATTR 'request_index' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x67, // YIELD_VALUE + 0xc5, // STORE_FAST 5 + 0x12,0x4d, // LOAD_GLOBAL '_clear_tx_request' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x70, // LOAD_GLOBAL '_sanitize_tx_output' + 0xb5, // LOAD_FAST 5 + 0x13,0x32, // LOAD_ATTR 'tx' + 0x13,0x45, // LOAD_ATTR 'output' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_request_tx_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 87, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 65, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_output + 11, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_output + 22, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_output + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_request_tx_prev_output +static const byte fun_data_apps_bitcoin_sign_tx_helpers_request_tx_prev_output[68] = { + 0xb8,0x45,0x22, // prelude + 0x46,0x81,0x1d,0x81,0x20,0x81,0x03,0x31, // names: request_tx_prev_output, tx_req, i, coin, tx_hash + 0x90,0x76,0x4b,0x20,0x27,0x26,0x26,0x26,0x46, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x47, // LOAD_CONST_STRING 'TxAckPrevOutput' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2d, // IMPORT_NAME 'trezor.messages' + 0x1c,0x47, // IMPORT_FROM 'TxAckPrevOutput' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'RequestType' + 0x13,0x44, // LOAD_ATTR 'TXOUTPUT' + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'request_type' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'details' + 0x18,0x3d, // STORE_ATTR 'request_index' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'details' + 0x18,0x31, // STORE_ATTR 'tx_hash' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x67, // YIELD_VALUE + 0xc5, // STORE_FAST 5 + 0x12,0x4d, // LOAD_GLOBAL '_clear_tx_request' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x13,0x32, // LOAD_ATTR 'tx' + 0x13,0x45, // LOAD_ATTR 'output' + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_request_tx_prev_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_prev_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 68, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 70, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_prev_output + 11, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_prev_output + 20, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_prev_output + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_request_payment_req +static const byte fun_data_apps_bitcoin_sign_tx_helpers_request_payment_req[58] = { + 0xaa,0x40,0x1a, // prelude + 0x48,0x81,0x1d,0x81,0x20, // names: request_payment_req, tx_req, i + 0x90,0x83,0x4b,0x20,0x27,0x26,0x26,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x49, // LOAD_CONST_STRING 'TxAckPaymentRequest' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2d, // IMPORT_NAME 'trezor.messages' + 0x1c,0x49, // IMPORT_FROM 'TxAckPaymentRequest' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'RequestType' + 0x13,0x4a, // LOAD_ATTR 'TXPAYMENTREQ' + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'request_type' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'details' + 0x18,0x3d, // STORE_ATTR 'request_index' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x67, // YIELD_VALUE + 0xc3, // STORE_FAST 3 + 0x12,0x4d, // LOAD_GLOBAL '_clear_tx_request' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x7b, // LOAD_GLOBAL '_sanitize_payment_req' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_request_payment_req = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_request_payment_req, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 58, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 72, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_request_payment_req + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_request_payment_req + 16, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_request_payment_req + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_request_tx_finish +static const byte fun_data_apps_bitcoin_sign_tx_helpers_request_tx_finish[31] = { + 0x91,0x40,0x0e, // prelude + 0x4b,0x81,0x1d, // names: request_tx_finish, tx_req + 0x90,0x8e,0x27,0x26, // code info + 0x12,0x04, // LOAD_GLOBAL 'RequestType' + 0x13,0x4c, // LOAD_ATTR 'TXFINISHED' + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'request_type' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x12,0x4d, // LOAD_GLOBAL '_clear_tx_request' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_request_tx_finish = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_finish, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 75, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_finish + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_finish + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_request_tx_finish + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers__clear_tx_request +static const byte fun_data_apps_bitcoin_sign_tx_helpers__clear_tx_request[70] = { + 0x31,0x22, // prelude + 0x4d,0x81,0x1d, // names: _clear_tx_request, tx_req + 0x90,0x94,0x24,0x44,0x20,0x20,0x20,0x24,0x24,0x24,0x24,0x24,0x24,0x64, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'details' + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x4e, // LOAD_ATTR 'serialized' + 0xc2, // STORE_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'request_type' + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x18,0x3d, // STORE_ATTR 'request_index' + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x18,0x31, // STORE_ATTR 'tx_hash' + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x18,0x37, // STORE_ATTR 'extra_data_len' + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x18,0x36, // STORE_ATTR 'extra_data_offset' + 0x51, // LOAD_CONST_NONE + 0xb2, // LOAD_FAST 2 + 0x18,0x4f, // STORE_ATTR 'signature' + 0x51, // LOAD_CONST_NONE + 0xb2, // LOAD_FAST 2 + 0x18,0x50, // STORE_ATTR 'signature_index' + 0x12,0x81,0x21, // LOAD_GLOBAL 'bytes' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x51, // LOAD_ATTR 'serialized_tx' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers__clear_tx_request = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers__clear_tx_request, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 77, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers__clear_tx_request + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers__clear_tx_request + 19, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers__clear_tx_request + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers_sanitize_sign_tx +static const byte fun_data_apps_bitcoin_sign_tx_helpers_sanitize_sign_tx[181] = { + 0x1a,0x30, // prelude + 0x52,0x32,0x81,0x03, // names: sanitize_sign_tx, tx, coin + 0x90,0xab,0x2a,0x33,0x25,0x49,0x2a,0x29,0x2a,0x49,0x25,0x27,0x27,0x27,0x29,0x25,0x28,0x27,0x28,0x49, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x53, // LOAD_ATTR 'decred' + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x54, // LOAD_ATTR 'overwintered' + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xb0, // LOAD_FAST 0 + 0x13,0x55, // LOAD_ATTR 'expiry' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x55, // LOAD_ATTR 'expiry' + 0x42,0x41, // JUMP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x55, // STORE_ATTR 'expiry' + 0x42,0x4e, // JUMP 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x55, // LOAD_ATTR 'expiry' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x40, // JUMP 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x56, // LOAD_ATTR 'timestamp' + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x56, // LOAD_ATTR 'timestamp' + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x53, // JUMP 19 + 0xb1, // LOAD_FAST 1 + 0x13,0x56, // LOAD_ATTR 'timestamp' + 0x43,0x4e, // POP_JUMP_IF_TRUE 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x56, // LOAD_ATTR 'timestamp' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x40, // JUMP 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x54, // LOAD_ATTR 'overwintered' + 0x44,0x5e, // POP_JUMP_IF_FALSE 30 + 0xb0, // LOAD_FAST 0 + 0x13,0x57, // LOAD_ATTR 'version_group_id' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x58, // LOAD_ATTR 'branch_id' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x65, // JUMP 37 + 0xb1, // LOAD_FAST 1 + 0x13,0x54, // LOAD_ATTR 'overwintered' + 0x43,0x60, // POP_JUMP_IF_TRUE 32 + 0xb0, // LOAD_FAST 0 + 0x13,0x57, // LOAD_ATTR 'version_group_id' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x58, // LOAD_ATTR 'branch_id' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x40, // JUMP 0 + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers_sanitize_sign_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers_sanitize_sign_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 181, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 82, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers_sanitize_sign_tx + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers_sanitize_sign_tx + 26, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers_sanitize_sign_tx + 26, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers__sanitize_tx_meta +static const byte fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_meta[160] = { + 0x1a,0x2a, // prelude + 0x59,0x32,0x81,0x03, // names: _sanitize_tx_meta, tx, coin + 0x90,0xc4,0x2a,0x47,0x2a,0x33,0x25,0x49,0x2a,0x29,0x2a,0x29,0x25,0x28,0x27,0x28,0x49, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x5a, // LOAD_ATTR 'extra_data' + 0x43,0x4c, // POP_JUMP_IF_TRUE 12 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'extra_data_len' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x13,0x53, // LOAD_ATTR 'decred' + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x54, // LOAD_ATTR 'overwintered' + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xb0, // LOAD_FAST 0 + 0x13,0x55, // LOAD_ATTR 'expiry' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x55, // LOAD_ATTR 'expiry' + 0x42,0x41, // JUMP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x55, // STORE_ATTR 'expiry' + 0x42,0x4e, // JUMP 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x55, // LOAD_ATTR 'expiry' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x40, // JUMP 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x56, // LOAD_ATTR 'timestamp' + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x56, // LOAD_ATTR 'timestamp' + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x78, // JUMP 56 + 0xb1, // LOAD_FAST 1 + 0x13,0x56, // LOAD_ATTR 'timestamp' + 0x43,0x4e, // POP_JUMP_IF_TRUE 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x56, // LOAD_ATTR 'timestamp' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x65, // JUMP 37 + 0xb1, // LOAD_FAST 1 + 0x13,0x54, // LOAD_ATTR 'overwintered' + 0x43,0x60, // POP_JUMP_IF_TRUE 32 + 0xb0, // LOAD_FAST 0 + 0x13,0x57, // LOAD_ATTR 'version_group_id' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x58, // LOAD_ATTR 'branch_id' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x40, // JUMP 0 + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers__sanitize_tx_meta = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_meta, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 160, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 89, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_meta + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_meta + 23, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_meta + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers__sanitize_tx_input +static const byte fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_input[275] = { + 0x32,0x48, // prelude + 0x5b,0x81,0x22,0x81,0x03, // names: _sanitize_tx_input, txi, coin + 0x90,0xda,0x2b,0x4b,0x44,0x2d,0x46,0x2e,0x46,0x2c,0x46,0x28,0x25,0x46,0x25,0x48,0x25,0x46,0x25,0x46,0x2d,0x46,0x30,0x25,0x46,0x2c,0x46,0x2a,0x46,0x2c,0x46, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x5c, // LOAD_CONST_STRING 'InputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.enums' + 0x1c,0x5c, // IMPORT_FROM 'InputScriptType' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.wire' + 0x1c,0x06, // IMPORT_FROM 'DataError' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x5d, // LOAD_ATTR 'script_type' + 0xc4, // STORE_FAST 4 + 0x12,0x81,0x23, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x5e, // LOAD_ATTR 'prev_hash' + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x0a, // LOAD_GLOBAL 'TX_HASH_SIZE' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x5f, // LOAD_ATTR 'multisig' + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb4, // LOAD_FAST 4 + 0x12,0x08, // LOAD_GLOBAL 'common' + 0x13,0x60, // LOAD_ATTR 'MULTISIG_INPUT_SCRIPT_TYPES' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x5f, // LOAD_ATTR 'multisig' + 0x43,0x4d, // POP_JUMP_IF_TRUE 13 + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x61, // LOAD_ATTR 'SPENDMULTISIG' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x12,0x08, // LOAD_GLOBAL 'common' + 0x13,0x62, // LOAD_ATTR 'INTERNAL_INPUT_SCRIPT_TYPES' + 0xdd, // BINARY_OP 6 + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0xb0, // LOAD_FAST 0 + 0x13,0x63, // LOAD_ATTR 'address_n' + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x64, // LOAD_ATTR 'script_pubkey' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x56, // JUMP 22 + 0xb0, // LOAD_FAST 0 + 0x13,0x63, // LOAD_ATTR 'address_n' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x64, // LOAD_ATTR 'script_pubkey' + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x13,0x53, // LOAD_ATTR 'decred' + 0x43,0x4e, // POP_JUMP_IF_TRUE 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x65, // LOAD_ATTR 'decred_tree' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x12,0x08, // LOAD_GLOBAL 'common' + 0x13,0x66, // LOAD_ATTR 'SEGWIT_INPUT_SCRIPT_TYPES' + 0xdd, // BINARY_OP 6 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x67, // LOAD_ATTR 'witness' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb1, // LOAD_FAST 1 + 0x13,0x68, // LOAD_ATTR 'segwit' + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x69, // LOAD_ATTR 'SPENDTAPROOT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb1, // LOAD_FAST 1 + 0x13,0x6a, // LOAD_ATTR 'taproot' + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x6b, // LOAD_ATTR 'commitment_data' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x6c, // LOAD_ATTR 'ownership_proof' + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x6d, // LOAD_ATTR 'orig_hash' + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb0, // LOAD_FAST 0 + 0x13,0x6e, // LOAD_ATTR 'orig_index' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers__sanitize_tx_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 275, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 91, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_input + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_input + 38, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_input + 38, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers__sanitize_tx_prev_input +static const byte fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_prev_input[55] = { + 0x1a,0x16, // prelude + 0x6f,0x81,0x22,0x81,0x03, // names: _sanitize_tx_prev_input, txi, coin + 0xa0,0x09,0x2d,0x47,0x2d,0x47, // code info + 0x12,0x81,0x23, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x5e, // LOAD_ATTR 'prev_hash' + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x0a, // LOAD_GLOBAL 'TX_HASH_SIZE' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x13,0x53, // LOAD_ATTR 'decred' + 0x43,0x4f, // POP_JUMP_IF_TRUE 15 + 0xb0, // LOAD_FAST 0 + 0x13,0x65, // LOAD_ATTR 'decred_tree' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers__sanitize_tx_prev_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_prev_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 111, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_prev_input + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_prev_input + 13, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_prev_input + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers__sanitize_tx_output +static const byte fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_output[290] = { + 0x3a,0x4e, // prelude + 0x70,0x81,0x0a,0x81,0x03, // names: _sanitize_tx_output, txo, coin + 0xa0,0x13,0x2b,0x4b,0x24,0x44,0x2e,0x46,0x2c,0x46,0x2c,0x46,0x27,0x46,0x28,0x25,0x46,0x2c,0x46,0x47,0x27,0x26,0x27,0x26,0x2d,0x48,0x25,0x26,0x28,0x26,0x28,0x46,0x2c,0x46, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x71, // LOAD_CONST_STRING 'OutputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.enums' + 0x1c,0x71, // IMPORT_FROM 'OutputScriptType' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.wire' + 0x1c,0x06, // IMPORT_FROM 'DataError' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x5d, // LOAD_ATTR 'script_type' + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x63, // LOAD_ATTR 'address_n' + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x5f, // LOAD_ATTR 'multisig' + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb4, // LOAD_FAST 4 + 0x12,0x08, // LOAD_GLOBAL 'common' + 0x13,0x72, // LOAD_ATTR 'MULTISIG_OUTPUT_SCRIPT_TYPES' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x5f, // LOAD_ATTR 'multisig' + 0x43,0x4d, // POP_JUMP_IF_TRUE 13 + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x73, // LOAD_ATTR 'PAYTOMULTISIG' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb4, // LOAD_FAST 4 + 0x12,0x08, // LOAD_GLOBAL 'common' + 0x13,0x74, // LOAD_ATTR 'CHANGE_OUTPUT_SCRIPT_TYPES' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x75, // LOAD_ATTR 'amount' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x12,0x08, // LOAD_GLOBAL 'common' + 0x13,0x76, // LOAD_ATTR 'SEGWIT_OUTPUT_SCRIPT_TYPES' + 0xdd, // BINARY_OP 6 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb1, // LOAD_FAST 1 + 0x13,0x68, // LOAD_ATTR 'segwit' + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x77, // LOAD_ATTR 'PAYTOTAPROOT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb1, // LOAD_FAST 1 + 0x13,0x6a, // LOAD_ATTR 'taproot' + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x78, // LOAD_ATTR 'PAYTOOPRETURN' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6f, // POP_JUMP_IF_FALSE 47 + 0xb0, // LOAD_FAST 0 + 0x13,0x79, // LOAD_ATTR 'op_return_data' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x75, // LOAD_ATTR 'amount' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x17, // LOAD_CONST_OBJ 23 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x7a, // LOAD_ATTR 'address' + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xb5, // LOAD_FAST 5 + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x5f, // LOAD_ATTR 'multisig' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x18, // LOAD_CONST_OBJ 24 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x67, // JUMP 39 + 0xb0, // LOAD_FAST 0 + 0x13,0x79, // LOAD_ATTR 'op_return_data' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x19, // LOAD_CONST_OBJ 25 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x7a, // LOAD_ATTR 'address' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x1a, // LOAD_CONST_OBJ 26 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x7a, // LOAD_ATTR 'address' + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x1b, // LOAD_CONST_OBJ 27 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x6d, // LOAD_ATTR 'orig_hash' + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb0, // LOAD_FAST 0 + 0x13,0x6e, // LOAD_ATTR 'orig_index' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers__sanitize_tx_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 290, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 112, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_output + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_output + 41, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_tx_output + 41, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_helpers__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/helpers.py, scope apps_bitcoin_sign_tx_helpers__sanitize_payment_req +static const byte fun_data_apps_bitcoin_sign_tx_helpers__sanitize_payment_req[50] = { + 0x41,0x12, // prelude + 0x7b,0x81,0x07, // names: _sanitize_payment_req, payment_req + 0xa0,0x43,0x27,0x35,0x22,0x67, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x7c, // LOAD_ATTR 'memos' + 0x5f, // GET_ITER_STACK + 0x4b,0x1f, // FOR_ITER 31 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x7d, // LOAD_ATTR 'text_memo' + 0xb1, // LOAD_FAST 1 + 0x13,0x7e, // LOAD_ATTR 'refund_memo' + 0xb1, // LOAD_FAST 1 + 0x13,0x7f, // LOAD_ATTR 'coin_purchase_memo' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x14,0x81,0x00, // LOAD_METHOD 'count' + 0x51, // LOAD_CONST_NONE + 0x36,0x01, // CALL_METHOD 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x1c, // LOAD_CONST_OBJ 28 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x1f, // JUMP -33 + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers__sanitize_payment_req = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_payment_req, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 123, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_payment_req + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_payment_req + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers__sanitize_payment_req + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_helpers__lt_module_gt_[] = { + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirm, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmOutput, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmDecredSSTXSubmission, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmPaymentRequest, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmReplacement, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmModifyOutput, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmModifyFee, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmTotal, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmJointTotal, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmFeeOverThreshold, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmChangeCountOverThreshold, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmUnverifiedExternalInput, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmForeignAddress, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmNonDefaultLocktime, + &raw_code_apps_bitcoin_sign_tx_helpers_UiConfirmMultipleAccounts, + &raw_code_apps_bitcoin_sign_tx_helpers_confirm_output, + &raw_code_apps_bitcoin_sign_tx_helpers_confirm_decred_sstx_submission, + &raw_code_apps_bitcoin_sign_tx_helpers_confirm_payment_request, + &raw_code_apps_bitcoin_sign_tx_helpers_confirm_replacement, + &raw_code_apps_bitcoin_sign_tx_helpers_confirm_modify_output, + &raw_code_apps_bitcoin_sign_tx_helpers_confirm_modify_fee, + &raw_code_apps_bitcoin_sign_tx_helpers_confirm_total, + &raw_code_apps_bitcoin_sign_tx_helpers_confirm_joint_total, + &raw_code_apps_bitcoin_sign_tx_helpers_confirm_feeoverthreshold, + &raw_code_apps_bitcoin_sign_tx_helpers_confirm_change_count_over_threshold, + &raw_code_apps_bitcoin_sign_tx_helpers_confirm_unverified_external_input, + &raw_code_apps_bitcoin_sign_tx_helpers_confirm_foreign_address, + &raw_code_apps_bitcoin_sign_tx_helpers_confirm_nondefault_locktime, + &raw_code_apps_bitcoin_sign_tx_helpers_confirm_multiple_accounts, + &raw_code_apps_bitcoin_sign_tx_helpers_request_tx_meta, + &raw_code_apps_bitcoin_sign_tx_helpers_request_tx_extra_data, + &raw_code_apps_bitcoin_sign_tx_helpers_request_tx_input, + &raw_code_apps_bitcoin_sign_tx_helpers_request_tx_prev_input, + &raw_code_apps_bitcoin_sign_tx_helpers_request_tx_output, + &raw_code_apps_bitcoin_sign_tx_helpers_request_tx_prev_output, + &raw_code_apps_bitcoin_sign_tx_helpers_request_payment_req, + &raw_code_apps_bitcoin_sign_tx_helpers_request_tx_finish, + &raw_code_apps_bitcoin_sign_tx_helpers__clear_tx_request, + &raw_code_apps_bitcoin_sign_tx_helpers_sanitize_sign_tx, + &raw_code_apps_bitcoin_sign_tx_helpers__sanitize_tx_meta, + &raw_code_apps_bitcoin_sign_tx_helpers__sanitize_tx_input, + &raw_code_apps_bitcoin_sign_tx_helpers__sanitize_tx_prev_input, + &raw_code_apps_bitcoin_sign_tx_helpers__sanitize_tx_output, + &raw_code_apps_bitcoin_sign_tx_helpers__sanitize_payment_req, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_helpers__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_helpers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 476, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_helpers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 44, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_sign_tx_helpers__lt_module_gt_ + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_helpers__lt_module_gt_ + 99, + .opcodes = fun_data_apps_bitcoin_sign_tx_helpers__lt_module_gt_ + 99, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_sign_tx_helpers[166] = { + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_helpers_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_RequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_common, + MP_QSTR_, + MP_QSTR_TX_HASH_SIZE, + MP_QSTR_writers, + MP_QSTR_layout, + MP_QSTR_UiConfirm, + MP_QSTR_UiConfirmOutput, + MP_QSTR_UiConfirmDecredSSTXSubmission, + MP_QSTR_UiConfirmPaymentRequest, + MP_QSTR_UiConfirmReplacement, + MP_QSTR_UiConfirmModifyOutput, + MP_QSTR_UiConfirmModifyFee, + MP_QSTR_UiConfirmTotal, + MP_QSTR_UiConfirmJointTotal, + MP_QSTR_UiConfirmFeeOverThreshold, + MP_QSTR_UiConfirmChangeCountOverThreshold, + MP_QSTR_UiConfirmUnverifiedExternalInput, + MP_QSTR_UiConfirmForeignAddress, + MP_QSTR_UiConfirmNonDefaultLocktime, + MP_QSTR_UiConfirmMultipleAccounts, + MP_QSTR_obj_eq, + MP_QSTR_confirm_output, + MP_QSTR_confirm_decred_sstx_submission, + MP_QSTR_confirm_payment_request, + MP_QSTR_confirm_replacement, + MP_QSTR_confirm_modify_output, + MP_QSTR_confirm_modify_fee, + MP_QSTR_confirm_total, + MP_QSTR_confirm_joint_total, + MP_QSTR_confirm_feeoverthreshold, + MP_QSTR_confirm_change_count_over_threshold, + MP_QSTR_confirm_unverified_external_input, + MP_QSTR_confirm_foreign_address, + MP_QSTR_confirm_nondefault_locktime, + MP_QSTR_confirm_multiple_accounts, + MP_QSTR_request_tx_meta, + MP_QSTR_TxAckPrevMeta, + MP_QSTR_trezor_dot_messages, + MP_QSTR_TXMETA, + MP_QSTR_request_type, + MP_QSTR_details, + MP_QSTR_tx_hash, + MP_QSTR_tx, + MP_QSTR_request_tx_extra_data, + MP_QSTR_TxAckPrevExtraData, + MP_QSTR_TXEXTRADATA, + MP_QSTR_extra_data_offset, + MP_QSTR_extra_data_len, + MP_QSTR_extra_data_chunk, + MP_QSTR_request_tx_input, + MP_QSTR_TxAckInput, + MP_QSTR_TXORIGINPUT, + MP_QSTR_TXINPUT, + MP_QSTR_request_index, + MP_QSTR_input, + MP_QSTR_request_tx_prev_input, + MP_QSTR_TxAckPrevInput, + MP_QSTR_request_tx_output, + MP_QSTR_TxAckOutput, + MP_QSTR_TXORIGOUTPUT, + MP_QSTR_TXOUTPUT, + MP_QSTR_output, + MP_QSTR_request_tx_prev_output, + MP_QSTR_TxAckPrevOutput, + MP_QSTR_request_payment_req, + MP_QSTR_TxAckPaymentRequest, + MP_QSTR_TXPAYMENTREQ, + MP_QSTR_request_tx_finish, + MP_QSTR_TXFINISHED, + MP_QSTR__clear_tx_request, + MP_QSTR_serialized, + MP_QSTR_signature, + MP_QSTR_signature_index, + MP_QSTR_serialized_tx, + MP_QSTR_sanitize_sign_tx, + MP_QSTR_decred, + MP_QSTR_overwintered, + MP_QSTR_expiry, + MP_QSTR_timestamp, + MP_QSTR_version_group_id, + MP_QSTR_branch_id, + MP_QSTR__sanitize_tx_meta, + MP_QSTR_extra_data, + MP_QSTR__sanitize_tx_input, + MP_QSTR_InputScriptType, + MP_QSTR_script_type, + MP_QSTR_prev_hash, + MP_QSTR_multisig, + MP_QSTR_MULTISIG_INPUT_SCRIPT_TYPES, + MP_QSTR_SPENDMULTISIG, + MP_QSTR_INTERNAL_INPUT_SCRIPT_TYPES, + MP_QSTR_address_n, + MP_QSTR_script_pubkey, + MP_QSTR_decred_tree, + MP_QSTR_SEGWIT_INPUT_SCRIPT_TYPES, + MP_QSTR_witness, + MP_QSTR_segwit, + MP_QSTR_SPENDTAPROOT, + MP_QSTR_taproot, + MP_QSTR_commitment_data, + MP_QSTR_ownership_proof, + MP_QSTR_orig_hash, + MP_QSTR_orig_index, + MP_QSTR__sanitize_tx_prev_input, + MP_QSTR__sanitize_tx_output, + MP_QSTR_OutputScriptType, + MP_QSTR_MULTISIG_OUTPUT_SCRIPT_TYPES, + MP_QSTR_PAYTOMULTISIG, + MP_QSTR_CHANGE_OUTPUT_SCRIPT_TYPES, + MP_QSTR_amount, + MP_QSTR_SEGWIT_OUTPUT_SCRIPT_TYPES, + MP_QSTR_PAYTOTAPROOT, + MP_QSTR_PAYTOOPRETURN, + MP_QSTR_op_return_data, + MP_QSTR_address, + MP_QSTR__sanitize_payment_req, + MP_QSTR_memos, + MP_QSTR_text_memo, + MP_QSTR_refund_memo, + MP_QSTR_coin_purchase_memo, + MP_QSTR_count, + MP_QSTR_confirm_dialog, + MP_QSTR___init__, + MP_QSTR_coin, + MP_QSTR_amount_unit, + MP_QSTR_output_index, + MP_QSTR_chunkify, + MP_QSTR_payment_req, + MP_QSTR_title, + MP_QSTR_txid, + MP_QSTR_txo, + MP_QSTR_orig_txo, + MP_QSTR_user_fee_change, + MP_QSTR_total_fee_new, + MP_QSTR_fee_rate, + MP_QSTR_spending, + MP_QSTR_fee, + MP_QSTR_total, + MP_QSTR_change_count, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_show_path_warning, + MP_QSTR_lock_time, + MP_QSTR_lock_time_disabled, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR___eq__, + MP_QSTR_description, + MP_QSTR_tx_req, + MP_QSTR_offset, + MP_QSTR_size, + MP_QSTR_i, + MP_QSTR_bytes, + MP_QSTR_txi, + MP_QSTR_len, + MP_QSTR_self, + MP_QSTR_NotImplementedError, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_0 = {{&mp_type_str}, 21080, 32, (const byte*)"\x45\x78\x70\x69\x72\x79\x20\x6e\x6f\x74\x20\x65\x6e\x61\x62\x6c\x65\x64\x20\x6f\x6e\x20\x74\x68\x69\x73\x20\x63\x6f\x69\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_2 = {{&mp_type_str}, 42393, 35, (const byte*)"\x54\x69\x6d\x65\x73\x74\x61\x6d\x70\x20\x6e\x6f\x74\x20\x65\x6e\x61\x62\x6c\x65\x64\x20\x6f\x6e\x20\x74\x68\x69\x73\x20\x63\x6f\x69\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_3 = {{&mp_type_str}, 9657, 29, (const byte*)"\x56\x65\x72\x73\x69\x6f\x6e\x20\x67\x72\x6f\x75\x70\x20\x49\x44\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x73\x65\x74\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_5 = {{&mp_type_str}, 4223, 42, (const byte*)"\x56\x65\x72\x73\x69\x6f\x6e\x20\x67\x72\x6f\x75\x70\x20\x49\x44\x20\x6e\x6f\x74\x20\x65\x6e\x61\x62\x6c\x65\x64\x20\x6f\x6e\x20\x74\x68\x69\x73\x20\x63\x6f\x69\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_6 = {{&mp_type_str}, 62542, 35, (const byte*)"\x42\x72\x61\x6e\x63\x68\x20\x49\x44\x20\x6e\x6f\x74\x20\x65\x6e\x61\x62\x6c\x65\x64\x20\x6f\x6e\x20\x74\x68\x69\x73\x20\x63\x6f\x69\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_7 = {{&mp_type_str}, 21693, 36, (const byte*)"\x45\x78\x74\x72\x61\x20\x64\x61\x74\x61\x20\x6e\x6f\x74\x20\x65\x6e\x61\x62\x6c\x65\x64\x20\x6f\x6e\x20\x74\x68\x69\x73\x20\x63\x6f\x69\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_8 = {{&mp_type_str}, 33611, 30, (const byte*)"\x50\x72\x6f\x76\x69\x64\x65\x64\x20\x70\x72\x65\x76\x5f\x68\x61\x73\x68\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_9 = {{&mp_type_str}, 50786, 41, (const byte*)"\x4d\x75\x6c\x74\x69\x73\x69\x67\x20\x66\x69\x65\x6c\x64\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x62\x75\x74\x20\x6e\x6f\x74\x20\x65\x78\x70\x65\x63\x74\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_10 = {{&mp_type_str}, 58388, 26, (const byte*)"\x4d\x75\x6c\x74\x69\x73\x69\x67\x20\x64\x65\x74\x61\x69\x6c\x73\x20\x72\x65\x71\x75\x69\x72\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_12 = {{&mp_type_str}, 59062, 48, (const byte*)"\x49\x6e\x70\x75\x74\x27\x73\x20\x73\x63\x72\x69\x70\x74\x5f\x70\x75\x62\x6b\x65\x79\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x62\x75\x74\x20\x6e\x6f\x74\x20\x65\x78\x70\x65\x63\x74\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_13 = {{&mp_type_str}, 47921, 44, (const byte*)"\x49\x6e\x70\x75\x74\x27\x73\x20\x61\x64\x64\x72\x65\x73\x73\x5f\x6e\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x62\x75\x74\x20\x6e\x6f\x74\x20\x65\x78\x70\x65\x63\x74\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_14 = {{&mp_type_str}, 12813, 28, (const byte*)"\x4d\x69\x73\x73\x69\x6e\x67\x20\x73\x63\x72\x69\x70\x74\x5f\x70\x75\x62\x6b\x65\x79\x20\x66\x69\x65\x6c\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_15 = {{&mp_type_str}, 51937, 54, (const byte*)"\x44\x65\x63\x72\x65\x64\x20\x64\x65\x74\x61\x69\x6c\x73\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x62\x75\x74\x20\x44\x65\x63\x72\x65\x64\x20\x63\x6f\x69\x6e\x20\x6e\x6f\x74\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_16 = {{&mp_type_str}, 55244, 32, (const byte*)"\x53\x65\x67\x77\x69\x74\x20\x6e\x6f\x74\x20\x65\x6e\x61\x62\x6c\x65\x64\x20\x6f\x6e\x20\x74\x68\x69\x73\x20\x63\x6f\x69\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_17 = {{&mp_type_str}, 15578, 32, (const byte*)"\x54\x61\x70\x72\x6f\x6f\x74\x20\x6e\x6f\x74\x20\x65\x6e\x61\x62\x6c\x65\x64\x20\x6f\x6e\x20\x74\x68\x69\x73\x20\x63\x6f\x69\x6e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_18 = {{&mp_type_str}, 27002, 48, (const byte*)"\x63\x6f\x6d\x6d\x69\x74\x6d\x65\x6e\x74\x5f\x64\x61\x74\x61\x20\x66\x69\x65\x6c\x64\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x62\x75\x74\x20\x6e\x6f\x74\x20\x65\x78\x70\x65\x63\x74\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_19 = {{&mp_type_str}, 1791, 25, (const byte*)"\x4d\x69\x73\x73\x69\x6e\x67\x20\x6f\x72\x69\x67\x5f\x69\x6e\x64\x65\x78\x20\x66\x69\x65\x6c\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_20 = {{&mp_type_str}, 57592, 45, (const byte*)"\x4f\x75\x74\x70\x75\x74\x27\x73\x20\x61\x64\x64\x72\x65\x73\x73\x5f\x6e\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x62\x75\x74\x20\x6e\x6f\x74\x20\x65\x78\x70\x65\x63\x74\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_22 = {{&mp_type_str}, 34329, 39, (const byte*)"\x4f\x50\x5f\x52\x45\x54\x55\x52\x4e\x20\x6f\x75\x74\x70\x75\x74\x20\x77\x69\x74\x68\x6f\x75\x74\x20\x6f\x70\x5f\x72\x65\x74\x75\x72\x6e\x5f\x64\x61\x74\x61"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_23 = {{&mp_type_str}, 11390, 37, (const byte*)"\x4f\x50\x5f\x52\x45\x54\x55\x52\x4e\x20\x6f\x75\x74\x70\x75\x74\x20\x77\x69\x74\x68\x20\x6e\x6f\x6e\x2d\x7a\x65\x72\x6f\x20\x61\x6d\x6f\x75\x6e\x74"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_24 = {{&mp_type_str}, 51245, 41, (const byte*)"\x4f\x50\x5f\x52\x45\x54\x55\x52\x4e\x20\x6f\x75\x74\x70\x75\x74\x20\x77\x69\x74\x68\x20\x61\x64\x64\x72\x65\x73\x73\x20\x6f\x72\x20\x6d\x75\x6c\x74\x69\x73\x69\x67"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_25 = {{&mp_type_str}, 16685, 54, (const byte*)"\x4f\x50\x20\x52\x45\x54\x55\x52\x4e\x20\x64\x61\x74\x61\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x62\x75\x74\x20\x6e\x6f\x74\x20\x4f\x50\x20\x52\x45\x54\x55\x52\x4e\x20\x73\x63\x72\x69\x70\x74\x20\x74\x79\x70\x65\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_26 = {{&mp_type_str}, 52919, 36, (const byte*)"\x42\x6f\x74\x68\x20\x61\x64\x64\x72\x65\x73\x73\x20\x61\x6e\x64\x20\x61\x64\x64\x72\x65\x73\x73\x5f\x6e\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_helpers_28 = {{&mp_type_str}, 34320, 67, (const byte*)"\x45\x78\x61\x63\x74\x6c\x79\x20\x6f\x6e\x65\x20\x6d\x65\x6d\x6f\x20\x74\x79\x70\x65\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x69\x6e\x20\x65\x61\x63\x68\x20\x50\x61\x79\x6d\x65\x6e\x74\x52\x65\x71\x75\x65\x73\x74\x4d\x65\x6d\x6f\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_sign_tx_helpers[29] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_0), + MP_ROM_QSTR(MP_QSTR_Timestamp_space_must_space_be_space_set_dot_), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_2), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_3), + MP_ROM_QSTR(MP_QSTR_Branch_space_ID_space_must_space_be_space_set_dot_), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_5), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_6), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_7), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_8), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_9), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_10), + MP_ROM_QSTR(MP_QSTR_Missing_space_address_n_space_field_dot_), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_12), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_13), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_14), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_15), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_16), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_17), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_18), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_19), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_20), + MP_ROM_QSTR(MP_QSTR_Missing_space_amount_space_field_dot_), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_22), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_23), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_24), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_25), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_26), + MP_ROM_QSTR(MP_QSTR_Missing_space_address), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_helpers_28), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_sign_tx_helpers = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_sign_tx_helpers, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_sign_tx_helpers, + }, + .rc = &raw_code_apps_bitcoin_sign_tx_helpers__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_sign_tx_layout +// - original source file: build/firmware/src/apps/bitcoin/sign_tx/layout.mpy +// - frozen file name: apps/bitcoin/sign_tx/layout.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/sign_tx/layout.py, scope apps_bitcoin_sign_tx_layout__lt_module_gt_ +static const byte fun_data_apps_bitcoin_sign_tx_layout__lt_module_gt_[225] = { + 0x18,0x52, // prelude + 0x01, // names: + 0x6c,0x2c,0x2c,0x2c,0x4c,0x4c,0x2c,0x78,0x40,0x4c,0x80,0x0d,0x84,0x13,0x84,0x09,0x84,0x44,0x84,0x1a,0x84,0x1b,0x84,0x09,0x84,0x11,0x84,0x11,0x84,0x0c,0x84,0x11,0x84,0x0c,0x84,0x09,0x84,0x0a,0x84,0x0a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.enums' + 0x1c,0x04, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x04, // STORE_NAME 'ButtonRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'format_amount' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.strings' + 0x1c,0x06, // IMPORT_FROM 'format_amount' + 0x16,0x06, // STORE_NAME 'format_amount' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'layouts' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.ui' + 0x1c,0x08, // IMPORT_FROM 'layouts' + 0x16,0x08, // STORE_NAME 'layouts' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'confirm_metadata' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x0a, // IMPORT_FROM 'confirm_metadata' + 0x16,0x0a, // STORE_NAME 'confirm_metadata' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'address_n_to_str' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x0c, // IMPORT_FROM 'address_n_to_str' + 0x16,0x0c, // STORE_NAME 'address_n_to_str' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x0e, // LOAD_CONST_STRING 'addresses' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME '' + 0x1c,0x0e, // IMPORT_FROM 'addresses' + 0x16,0x0e, // STORE_NAME 'addresses' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x10, // LOAD_CONST_STRING 'BIP32_WALLET_DEPTH' + 0x10,0x11, // LOAD_CONST_STRING 'CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES' + 0x10,0x12, // LOAD_CONST_STRING 'format_fee_rate' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x13, // IMPORT_NAME 'common' + 0x1c,0x10, // IMPORT_FROM 'BIP32_WALLET_DEPTH' + 0x16,0x10, // STORE_NAME 'BIP32_WALLET_DEPTH' + 0x1c,0x11, // IMPORT_FROM 'CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES' + 0x16,0x11, // STORE_NAME 'CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES' + 0x1c,0x12, // IMPORT_FROM 'format_fee_rate' + 0x16,0x12, // STORE_NAME 'format_fee_rate' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x14, // LOAD_CONST_STRING 'address_n_to_name' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x15, // IMPORT_NAME 'keychain' + 0x1c,0x14, // IMPORT_FROM 'address_n_to_name' + 0x16,0x14, // STORE_NAME 'address_n_to_name' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x16, // STORE_NAME 'format_coin_amount' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x24, // STORE_NAME 'account_label' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x26, // STORE_NAME 'confirm_output' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x44, // STORE_NAME 'confirm_decred_sstx_submission' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x48, // STORE_NAME 'confirm_payment_request' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x53, // STORE_NAME 'confirm_replacement' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x57, // STORE_NAME 'confirm_modify_output' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x58, // STORE_NAME 'confirm_modify_fee' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x5a, // STORE_NAME 'confirm_joint_total' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x5d, // STORE_NAME 'confirm_total' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x5e, // STORE_NAME 'confirm_feeoverthreshold' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x61, // STORE_NAME 'confirm_change_count_over_threshold' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x64, // STORE_NAME 'confirm_unverified_external_input' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x67, // STORE_NAME 'confirm_multiple_accounts' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x16,0x68, // STORE_NAME 'confirm_nondefault_locktime' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_layout__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/layout.py, scope apps_bitcoin_sign_tx_layout_format_coin_amount +static const byte fun_data_apps_bitcoin_sign_tx_layout_format_coin_amount[132] = { + 0x53,0x26, // prelude + 0x16,0x3f,0x6a,0x6b, // names: format_coin_amount, amount, coin, amount_unit + 0x80,0x20,0x4b,0x29,0x27,0x22,0x23,0x28,0x2b,0x2c,0x24,0x27,0x2c,0x24,0x47, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING 'AmountUnit' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.enums' + 0x1c,0x17, // IMPORT_FROM 'AmountUnit' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'decimals' + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'coin_shortcut' + 0x5a, // ROT_TWO + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x13,0x1a, // LOAD_ATTR 'SATOSHI' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc4, // STORE_FAST 4 + 0x10,0x1b, // LOAD_CONST_STRING 'sat' + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'coin_shortcut' + 0x10,0x1c, // LOAD_CONST_STRING 'BTC' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb5, // LOAD_FAST 5 + 0x10,0x1d, // LOAD_CONST_STRING ' ' + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'coin_shortcut' + 0xf2, // BINARY_OP 27 __add__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc5, // STORE_FAST 5 + 0x42,0x6e, // JUMP 46 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x13,0x1e, // LOAD_ATTR 'MICROBITCOIN' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb4, // LOAD_FAST 4 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb4, // LOAD_FAST 4 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0xe6, // BINARY_OP 15 __isub__ + 0xc4, // STORE_FAST 4 + 0x10,0x1f, // LOAD_CONST_STRING 'u' + 0xb5, // LOAD_FAST 5 + 0xf2, // BINARY_OP 27 __add__ + 0xc5, // STORE_FAST 5 + 0x42,0x57, // JUMP 23 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x13,0x20, // LOAD_ATTR 'MILLIBITCOIN' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb4, // LOAD_FAST 4 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb4, // LOAD_FAST 4 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xe6, // BINARY_OP 15 __isub__ + 0xc4, // STORE_FAST 4 + 0x10,0x21, // LOAD_CONST_STRING 'm' + 0xb5, // LOAD_FAST 5 + 0xf2, // BINARY_OP 27 __add__ + 0xc5, // STORE_FAST 5 + 0x42,0x40, // JUMP 0 + 0x10,0x22, // LOAD_CONST_STRING '{} {}' + 0x14,0x23, // LOAD_METHOD 'format' + 0x12,0x06, // LOAD_GLOBAL 'format_amount' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_layout_format_coin_amount = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_layout_format_coin_amount, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 132, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_apps_bitcoin_sign_tx_layout_format_coin_amount + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_layout_format_coin_amount + 21, + .opcodes = fun_data_apps_bitcoin_sign_tx_layout_format_coin_amount + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_layout__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/layout.py, scope apps_bitcoin_sign_tx_layout_account_label +static const byte fun_data_apps_bitcoin_sign_tx_layout_account_label[50] = { + 0x32,0x12, // prelude + 0x24,0x6a,0x38, // names: account_label, coin, address_n + 0x80,0x33,0x40,0x28,0x33,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x63, // RETURN_VALUE + 0x12,0x14, // LOAD_GLOBAL 'address_n_to_name' + 0xb0, // LOAD_FAST 0 + 0x12,0x6c, // LOAD_GLOBAL 'list' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x01, // BUILD_LIST 1 + 0x12,0x10, // LOAD_GLOBAL 'BIP32_WALLET_DEPTH' + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x45,0x0b, // JUMP_IF_TRUE_OR_POP 11 + 0x10,0x25, // LOAD_CONST_STRING 'Path {}' + 0x14,0x23, // LOAD_METHOD 'format' + 0x12,0x0c, // LOAD_GLOBAL 'address_n_to_str' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_layout_account_label = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_layout_account_label, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_bitcoin_sign_tx_layout_account_label + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_layout_account_label + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_layout_account_label + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_layout__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/layout.py, scope apps_bitcoin_sign_tx_layout_confirm_output +static const byte fun_data_apps_bitcoin_sign_tx_layout_confirm_output[268] = { + 0xd1,0x54,0x56, // prelude + 0x26,0x6d,0x6a,0x6b,0x42,0x43, // names: confirm_output, output, coin, amount_unit, output_index, chunkify + 0x80,0x42,0x4b,0x4b,0x29,0x24,0x20,0x48,0x22,0x22,0x22,0x4c,0x6a,0x20,0x6b,0x20,0x6b,0x20,0x2b,0x28,0x45,0x42,0x22,0x2a,0x6b,0x27,0x27,0x20,0x43,0x6c,0x20,0x24,0x4a,0x45,0x79,0x60,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x27, // LOAD_CONST_STRING 'OutputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.enums' + 0x1c,0x27, // IMPORT_FROM 'OutputScriptType' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x28, // LOAD_CONST_STRING 'omni' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME '' + 0x1c,0x28, // IMPORT_FROM 'omni' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'script_type' + 0xb5, // LOAD_FAST 5 + 0x13,0x2a, // LOAD_ATTR 'PAYTOOPRETURN' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7e, // POP_JUMP_IF_FALSE 62 + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'op_return_data' + 0xc7, // STORE_FAST 7 + 0xb6, // LOAD_FAST 6 + 0x14,0x2c, // LOAD_METHOD 'is_valid' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0x12,0x0a, // LOAD_GLOBAL 'confirm_metadata' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xb6, // LOAD_FAST 6 + 0x14,0x2d, // LOAD_METHOD 'parse' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x2e, // LOAD_CONST_STRING 'verb' + 0x10,0x2f, // LOAD_CONST_STRING 'Confirm' + 0x10,0x30, // LOAD_CONST_STRING 'br_code' + 0x12,0x04, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x31, // LOAD_ATTR 'ConfirmOutput' + 0x34,0x84,0x03, // CALL_FUNCTION 515 + 0xc8, // STORE_FAST 8 + 0x42,0x53, // JUMP 19 + 0x12,0x08, // LOAD_GLOBAL 'layouts' + 0x14,0x32, // LOAD_METHOD 'confirm_blob' + 0x10,0x33, // LOAD_CONST_STRING 'op_return' + 0x10,0x34, // LOAD_CONST_STRING 'OP_RETURN' + 0xb7, // LOAD_FAST 7 + 0x10,0x30, // LOAD_CONST_STRING 'br_code' + 0x12,0x04, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x31, // LOAD_ATTR 'ConfirmOutput' + 0x36,0x82,0x03, // CALL_METHOD 259 + 0xc8, // STORE_FAST 8 + 0x42,0xfa,0x80, // JUMP 122 + 0x12,0x0e, // LOAD_GLOBAL 'addresses' + 0x14,0x35, // LOAD_METHOD 'address_short' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'address' + 0x36,0x02, // CALL_METHOD 2 + 0xc9, // STORE_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'payment_req_index' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xca, // STORE_FAST 10 + 0x42,0x42, // JUMP 2 + 0x51, // LOAD_CONST_NONE + 0xca, // STORE_FAST 10 + 0x51, // LOAD_CONST_NONE + 0xcb, // STORE_FAST 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'address_n' + 0x44,0x7b, // POP_JUMP_IF_FALSE 59 + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'multisig' + 0x43,0x76, // POP_JUMP_IF_TRUE 54 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3a, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x3b, // IMPORT_NAME 'trezor' + 0x1c,0x3a, // IMPORT_FROM 'utils' + 0xcc, // STORE_FAST 12 + 0x59, // POP_TOP + 0xbc, // LOAD_FAST 12 + 0x13,0x3c, // LOAD_ATTR 'INTERNAL_MODEL' + 0x10,0x3d, // LOAD_CONST_STRING 'T2B1' + 0xd9, // BINARY_OP 2 __eq__ + 0xcd, // STORE_FAST 13 + 0x12,0x11, // LOAD_GLOBAL 'CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'script_type' + 0x55, // LOAD_SUBSCR + 0xce, // STORE_FAST 14 + 0x12,0x14, // LOAD_GLOBAL 'address_n_to_name' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'address_n' + 0xbe, // LOAD_FAST 14 + 0x10,0x3e, // LOAD_CONST_STRING 'show_account_str' + 0xbd, // LOAD_FAST 13 + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x45,0x0d, // JUMP_IF_TRUE_OR_POP 13 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x14,0x23, // LOAD_METHOD 'format' + 0x12,0x0c, // LOAD_GLOBAL 'address_n_to_str' + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'address_n' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0xcb, // STORE_FAST 11 + 0x12,0x08, // LOAD_GLOBAL 'layouts' + 0x14,0x26, // LOAD_METHOD 'confirm_output' + 0xb9, // LOAD_FAST 9 + 0x12,0x16, // LOAD_GLOBAL 'format_coin_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'amount' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x10,0x40, // LOAD_CONST_STRING 'title' + 0xba, // LOAD_FAST 10 + 0x10,0x41, // LOAD_CONST_STRING 'address_label' + 0xbb, // LOAD_FAST 11 + 0x10,0x42, // LOAD_CONST_STRING 'output_index' + 0xb3, // LOAD_FAST 3 + 0x10,0x43, // LOAD_CONST_STRING 'chunkify' + 0xb4, // LOAD_FAST 4 + 0x36,0x88,0x02, // CALL_METHOD 1026 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_layout_confirm_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_apps_bitcoin_sign_tx_layout_confirm_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 268, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 27, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 38, + .line_info = fun_data_apps_bitcoin_sign_tx_layout_confirm_output + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_layout_confirm_output + 46, + .opcodes = fun_data_apps_bitcoin_sign_tx_layout_confirm_output + 46, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_layout__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/layout.py, scope apps_bitcoin_sign_tx_layout_confirm_decred_sstx_submission +static const byte fun_data_apps_bitcoin_sign_tx_layout_confirm_decred_sstx_submission[95] = { + 0xeb,0x40,0x22, // prelude + 0x44,0x6d,0x6a,0x6b, // names: confirm_decred_sstx_submission, output, coin, amount_unit + 0x80,0x82,0x20,0x2b,0x4a,0x24,0x43,0x44,0x6f,0x20,0x24,0x43,0x44, // code info + 0x12,0x0e, // LOAD_GLOBAL 'addresses' + 0x14,0x35, // LOAD_METHOD 'address_short' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'address' + 0x36,0x02, // CALL_METHOD 2 + 0xc3, // STORE_FAST 3 + 0x12,0x16, // LOAD_GLOBAL 'format_coin_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'amount' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc4, // STORE_FAST 4 + 0x12,0x08, // LOAD_GLOBAL 'layouts' + 0x14,0x45, // LOAD_METHOD 'confirm_value' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xb4, // LOAD_FAST 4 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x10,0x44, // LOAD_CONST_STRING 'confirm_decred_sstx_submission' + 0x12,0x04, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x31, // LOAD_ATTR 'ConfirmOutput' + 0x10,0x2e, // LOAD_CONST_STRING 'verb' + 0x10,0x46, // LOAD_CONST_STRING 'CONFIRM' + 0x36,0x82,0x05, // CALL_METHOD 261 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'layouts' + 0x14,0x45, // LOAD_METHOD 'confirm_value' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xb3, // LOAD_FAST 3 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x10,0x44, // LOAD_CONST_STRING 'confirm_decred_sstx_submission' + 0x12,0x04, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x31, // LOAD_ATTR 'ConfirmOutput' + 0x10,0x2e, // LOAD_CONST_STRING 'verb' + 0x10,0x47, // LOAD_CONST_STRING 'PURCHASE' + 0x36,0x82,0x05, // CALL_METHOD 261 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_layout_confirm_decred_sstx_submission = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_layout_confirm_decred_sstx_submission, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 95, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 68, + .line_info = fun_data_apps_bitcoin_sign_tx_layout_confirm_decred_sstx_submission + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_layout_confirm_decred_sstx_submission + 20, + .opcodes = fun_data_apps_bitcoin_sign_tx_layout_confirm_decred_sstx_submission + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_layout__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/layout.py, scope apps_bitcoin_sign_tx_layout_confirm_payment_request +static const byte fun_data_apps_bitcoin_sign_tx_layout_confirm_payment_request[135] = { + 0xf3,0x40,0x26, // prelude + 0x48,0x6e,0x6a,0x6b, // names: confirm_payment_request, msg, coin, amount_unit + 0x80,0x9e,0x4b,0x23,0x27,0x28,0x2d,0x28,0x22,0x28,0x53,0x4b,0x40,0x24,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x49, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x3b, // IMPORT_NAME 'trezor' + 0x1c,0x49, // IMPORT_FROM 'wire' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x2b,0x00, // BUILD_LIST 0 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x4a, // LOAD_ATTR 'memos' + 0x5f, // GET_ITER_STACK + 0x4b,0x46, // FOR_ITER 70 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x13,0x4b, // LOAD_ATTR 'text_memo' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb4, // LOAD_FAST 4 + 0x14,0x4c, // LOAD_METHOD 'append' + 0xb5, // LOAD_FAST 5 + 0x13,0x4b, // LOAD_ATTR 'text_memo' + 0x13,0x4d, // LOAD_ATTR 'text' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x6d, // JUMP 45 + 0xb5, // LOAD_FAST 5 + 0x13,0x4e, // LOAD_ATTR 'refund_memo' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x63, // JUMP 35 + 0xb5, // LOAD_FAST 5 + 0x13,0x4f, // LOAD_ATTR 'coin_purchase_memo' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xb4, // LOAD_FAST 4 + 0x14,0x4c, // LOAD_METHOD 'append' + 0x10,0x50, // LOAD_CONST_STRING 'Buying {}.' + 0x14,0x23, // LOAD_METHOD 'format' + 0xb5, // LOAD_FAST 5 + 0x13,0x4f, // LOAD_ATTR 'coin_purchase_memo' + 0x13,0x3f, // LOAD_ATTR 'amount' + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x48, // JUMP 8 + 0xb3, // LOAD_FAST 3 + 0x14,0x51, // LOAD_METHOD 'DataError' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x42,0xb8,0x7f, // JUMP -72 + 0x12,0x08, // LOAD_GLOBAL 'layouts' + 0x14,0x48, // LOAD_METHOD 'confirm_payment_request' + 0xb0, // LOAD_FAST 0 + 0x13,0x52, // LOAD_ATTR 'recipient_name' + 0x12,0x16, // LOAD_GLOBAL 'format_coin_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'amount' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_layout_confirm_payment_request = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_layout_confirm_payment_request, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 135, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 72, + .line_info = fun_data_apps_bitcoin_sign_tx_layout_confirm_payment_request + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_layout_confirm_payment_request + 22, + .opcodes = fun_data_apps_bitcoin_sign_tx_layout_confirm_payment_request + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_layout__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/layout.py, scope apps_bitcoin_sign_tx_layout_confirm_replacement +static const byte fun_data_apps_bitcoin_sign_tx_layout_confirm_replacement[42] = { + 0xba,0x40,0x0e, // prelude + 0x53,0x40,0x6f, // names: confirm_replacement, title, txid + 0x80,0xb5,0x4b,0x45, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x54, // LOAD_CONST_STRING 'hexlify' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x55, // IMPORT_NAME 'ubinascii' + 0x1c,0x54, // IMPORT_FROM 'hexlify' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'layouts' + 0x14,0x53, // LOAD_METHOD 'confirm_replacement' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x56, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_layout_confirm_replacement = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_layout_confirm_replacement, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 83, + .line_info = fun_data_apps_bitcoin_sign_tx_layout_confirm_replacement + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_layout_confirm_replacement + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_layout_confirm_replacement + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_layout__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/layout.py, scope apps_bitcoin_sign_tx_layout_confirm_modify_output +static const byte fun_data_apps_bitcoin_sign_tx_layout_confirm_modify_output[68] = { + 0xf0,0x44,0x18, // prelude + 0x57,0x70,0x71,0x6a,0x6b, // names: confirm_modify_output, txo, orig_txo, coin, amount_unit + 0x80,0xc3,0x20,0x2b,0x28,0x66,0x2b, // code info + 0x12,0x0e, // LOAD_GLOBAL 'addresses' + 0x14,0x35, // LOAD_METHOD 'address_short' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'address' + 0x36,0x02, // CALL_METHOD 2 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'amount' + 0xb1, // LOAD_FAST 1 + 0x13,0x3f, // LOAD_ATTR 'amount' + 0xf3, // BINARY_OP 28 __sub__ + 0xc5, // STORE_FAST 5 + 0x12,0x08, // LOAD_GLOBAL 'layouts' + 0x14,0x57, // LOAD_METHOD 'confirm_modify_output' + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x12,0x16, // LOAD_GLOBAL 'format_coin_amount' + 0x12,0x72, // LOAD_GLOBAL 'abs' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x12,0x16, // LOAD_GLOBAL 'format_coin_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'amount' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x36,0x04, // CALL_METHOD 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_layout_confirm_modify_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_layout_confirm_modify_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 68, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 87, + .line_info = fun_data_apps_bitcoin_sign_tx_layout_confirm_modify_output + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_layout_confirm_modify_output + 15, + .opcodes = fun_data_apps_bitcoin_sign_tx_layout_confirm_modify_output + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_layout__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/layout.py, scope apps_bitcoin_sign_tx_layout_confirm_modify_fee +static const byte fun_data_apps_bitcoin_sign_tx_layout_confirm_modify_fee[64] = { + 0xfa,0x44,0x18, // prelude + 0x58,0x40,0x73,0x74,0x75,0x6a,0x6b, // names: confirm_modify_fee, title, user_fee_change, total_fee_new, fee_rate, coin, amount_unit + 0x80,0xd6,0x66,0x2b,0x29, // code info + 0x12,0x08, // LOAD_GLOBAL 'layouts' + 0x14,0x58, // LOAD_METHOD 'confirm_modify_fee' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x12,0x16, // LOAD_GLOBAL 'format_coin_amount' + 0x12,0x72, // LOAD_GLOBAL 'abs' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x34,0x03, // CALL_FUNCTION 3 + 0x12,0x16, // LOAD_GLOBAL 'format_coin_amount' + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x34,0x03, // CALL_FUNCTION 3 + 0x10,0x59, // LOAD_CONST_STRING 'fee_rate_amount' + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x12, // LOAD_GLOBAL 'format_fee_rate' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0x36,0x82,0x04, // CALL_METHOD 260 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_layout_confirm_modify_fee = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 6, + .fun_data = fun_data_apps_bitcoin_sign_tx_layout_confirm_modify_fee, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 64, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 88, + .line_info = fun_data_apps_bitcoin_sign_tx_layout_confirm_modify_fee + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_layout_confirm_modify_fee + 15, + .opcodes = fun_data_apps_bitcoin_sign_tx_layout_confirm_modify_fee + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_layout__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/layout.py, scope apps_bitcoin_sign_tx_layout_confirm_joint_total +static const byte fun_data_apps_bitcoin_sign_tx_layout_confirm_joint_total[43] = { + 0xe0,0x44,0x12, // prelude + 0x5a,0x76,0x77,0x6a,0x6b, // names: confirm_joint_total, spending, total, coin, amount_unit + 0x80,0xe5,0x26,0x29, // code info + 0x12,0x08, // LOAD_GLOBAL 'layouts' + 0x14,0x5a, // LOAD_METHOD 'confirm_joint_total' + 0x10,0x5b, // LOAD_CONST_STRING 'spending_amount' + 0x12,0x16, // LOAD_GLOBAL 'format_coin_amount' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x10,0x5c, // LOAD_CONST_STRING 'total_amount' + 0x12,0x16, // LOAD_GLOBAL 'format_coin_amount' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x36,0x84,0x00, // CALL_METHOD 512 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_layout_confirm_joint_total = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_layout_confirm_joint_total, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 90, + .line_info = fun_data_apps_bitcoin_sign_tx_layout_confirm_joint_total + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_layout_confirm_joint_total + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_layout_confirm_joint_total + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_layout__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/layout.py, scope apps_bitcoin_sign_tx_layout_confirm_total +static const byte fun_data_apps_bitcoin_sign_tx_layout_confirm_total[67] = { + 0xfa,0x44,0x1a, // prelude + 0x5d,0x76,0x78,0x75,0x6a,0x6b,0x38, // names: confirm_total, spending, fee, fee_rate, coin, amount_unit, address_n + 0x80,0xf4,0x24,0x27,0x29,0x30, // code info + 0x12,0x08, // LOAD_GLOBAL 'layouts' + 0x14,0x5d, // LOAD_METHOD 'confirm_total' + 0x12,0x16, // LOAD_GLOBAL 'format_coin_amount' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x12,0x16, // LOAD_GLOBAL 'format_coin_amount' + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x10,0x59, // LOAD_CONST_STRING 'fee_rate_amount' + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x12, // LOAD_GLOBAL 'format_fee_rate' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0x10,0x24, // LOAD_CONST_STRING 'account_label' + 0x12,0x24, // LOAD_GLOBAL 'account_label' + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x36,0x84,0x02, // CALL_METHOD 514 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_layout_confirm_total = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 6, + .fun_data = fun_data_apps_bitcoin_sign_tx_layout_confirm_total, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 67, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 93, + .line_info = fun_data_apps_bitcoin_sign_tx_layout_confirm_total + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_layout_confirm_total + 16, + .opcodes = fun_data_apps_bitcoin_sign_tx_layout_confirm_total + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_layout__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/layout.py, scope apps_bitcoin_sign_tx_layout_confirm_feeoverthreshold +static const byte fun_data_apps_bitcoin_sign_tx_layout_confirm_feeoverthreshold[45] = { + 0xd3,0x40,0x14, // prelude + 0x5e,0x78,0x6a,0x6b, // names: confirm_feeoverthreshold, fee, coin, amount_unit + 0x80,0xff,0x28,0x24,0x22,0x45, // code info + 0x12,0x16, // LOAD_GLOBAL 'format_coin_amount' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc3, // STORE_FAST 3 + 0x12,0x08, // LOAD_GLOBAL 'layouts' + 0x14,0x5f, // LOAD_METHOD 'show_warning' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0xb3, // LOAD_FAST 3 + 0x10,0x30, // LOAD_CONST_STRING 'br_code' + 0x12,0x04, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x60, // LOAD_ATTR 'FeeOverThreshold' + 0x36,0x82,0x03, // CALL_METHOD 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_layout_confirm_feeoverthreshold = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_layout_confirm_feeoverthreshold, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 94, + .line_info = fun_data_apps_bitcoin_sign_tx_layout_confirm_feeoverthreshold + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_layout_confirm_feeoverthreshold + 13, + .opcodes = fun_data_apps_bitcoin_sign_tx_layout_confirm_feeoverthreshold + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_layout__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/layout.py, scope apps_bitcoin_sign_tx_layout_confirm_change_count_over_threshold +static const byte fun_data_apps_bitcoin_sign_tx_layout_confirm_change_count_over_threshold[45] = { + 0xc1,0x40,0x10, // prelude + 0x61,0x79, // names: confirm_change_count_over_threshold, change_count + 0x90,0x09,0x24,0x22,0x22,0x2d, // code info + 0x12,0x08, // LOAD_GLOBAL 'layouts' + 0x14,0x5f, // LOAD_METHOD 'show_warning' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x10,0x62, // LOAD_CONST_STRING '{} outputs' + 0x14,0x23, // LOAD_METHOD 'format' + 0x12,0x7a, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x30, // LOAD_CONST_STRING 'br_code' + 0x12,0x04, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x63, // LOAD_ATTR 'SignTx' + 0x36,0x82,0x03, // CALL_METHOD 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_layout_confirm_change_count_over_threshold = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_layout_confirm_change_count_over_threshold, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 97, + .line_info = fun_data_apps_bitcoin_sign_tx_layout_confirm_change_count_over_threshold + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_layout_confirm_change_count_over_threshold + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_layout_confirm_change_count_over_threshold + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_layout__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/layout.py, scope apps_bitcoin_sign_tx_layout_confirm_unverified_external_input +static const byte fun_data_apps_bitcoin_sign_tx_layout_confirm_unverified_external_input[39] = { + 0xc0,0x40,0x0e, // prelude + 0x64, // names: confirm_unverified_external_input + 0x90,0x12,0x24,0x22,0x22,0x48, // code info + 0x12,0x08, // LOAD_GLOBAL 'layouts' + 0x14,0x5f, // LOAD_METHOD 'show_warning' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x10,0x65, // LOAD_CONST_STRING 'button' + 0x10,0x66, // LOAD_CONST_STRING 'Continue' + 0x10,0x30, // LOAD_CONST_STRING 'br_code' + 0x12,0x04, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x63, // LOAD_ATTR 'SignTx' + 0x36,0x84,0x03, // CALL_METHOD 515 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_layout_confirm_unverified_external_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_layout_confirm_unverified_external_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 100, + .line_info = fun_data_apps_bitcoin_sign_tx_layout_confirm_unverified_external_input + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_layout_confirm_unverified_external_input + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_layout_confirm_unverified_external_input + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_layout__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/layout.py, scope apps_bitcoin_sign_tx_layout_confirm_multiple_accounts +static const byte fun_data_apps_bitcoin_sign_tx_layout_confirm_multiple_accounts[39] = { + 0xc0,0x40,0x0e, // prelude + 0x67, // names: confirm_multiple_accounts + 0x90,0x1c,0x24,0x22,0x22,0x48, // code info + 0x12,0x08, // LOAD_GLOBAL 'layouts' + 0x14,0x5f, // LOAD_METHOD 'show_warning' + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x10,0x65, // LOAD_CONST_STRING 'button' + 0x10,0x66, // LOAD_CONST_STRING 'Continue' + 0x10,0x30, // LOAD_CONST_STRING 'br_code' + 0x12,0x04, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x63, // LOAD_ATTR 'SignTx' + 0x36,0x84,0x03, // CALL_METHOD 515 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_layout_confirm_multiple_accounts = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_layout_confirm_multiple_accounts, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 103, + .line_info = fun_data_apps_bitcoin_sign_tx_layout_confirm_multiple_accounts + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_layout_confirm_multiple_accounts + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_layout_confirm_multiple_accounts + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_layout__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/layout.py, scope apps_bitcoin_sign_tx_layout_confirm_nondefault_locktime +static const byte fun_data_apps_bitcoin_sign_tx_layout_confirm_nondefault_locktime[124] = { + 0xf2,0x40,0x28, // prelude + 0x68,0x7b,0x7c, // names: confirm_nondefault_locktime, lock_time, lock_time_disabled + 0x90,0x26,0x4b,0x23,0x24,0x22,0x22,0x48,0x6d,0x2a,0x23,0x48,0x23,0x25,0x24,0x64,0x24, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x69, // LOAD_CONST_STRING 'format_timestamp' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.strings' + 0x1c,0x69, // IMPORT_FROM 'format_timestamp' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x44,0x5d, // POP_JUMP_IF_FALSE 29 + 0x12,0x08, // LOAD_GLOBAL 'layouts' + 0x14,0x5f, // LOAD_METHOD 'show_warning' + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x10,0x65, // LOAD_CONST_STRING 'button' + 0x10,0x66, // LOAD_CONST_STRING 'Continue' + 0x10,0x30, // LOAD_CONST_STRING 'br_code' + 0x12,0x04, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x63, // LOAD_ATTR 'SignTx' + 0x36,0x84,0x03, // CALL_METHOD 515 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x78, // JUMP 56 + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0xee,0xb5,0xca,0x00, // LOAD_CONST_SMALL_INT 500000000 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0xc3, // STORE_FAST 3 + 0x12,0x7a, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0x42,0x48, // JUMP 8 + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0x12,0x08, // LOAD_GLOBAL 'layouts' + 0x14,0x45, // LOAD_METHOD 'confirm_value' + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x10,0x30, // LOAD_CONST_STRING 'br_code' + 0x12,0x04, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x63, // LOAD_ATTR 'SignTx' + 0x10,0x2e, // LOAD_CONST_STRING 'verb' + 0x10,0x2f, // LOAD_CONST_STRING 'Confirm' + 0x36,0x84,0x04, // CALL_METHOD 516 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_layout_confirm_nondefault_locktime = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_layout_confirm_nondefault_locktime, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 124, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 104, + .line_info = fun_data_apps_bitcoin_sign_tx_layout_confirm_nondefault_locktime + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_layout_confirm_nondefault_locktime + 23, + .opcodes = fun_data_apps_bitcoin_sign_tx_layout_confirm_nondefault_locktime + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_layout__lt_module_gt_[] = { + &raw_code_apps_bitcoin_sign_tx_layout_format_coin_amount, + &raw_code_apps_bitcoin_sign_tx_layout_account_label, + &raw_code_apps_bitcoin_sign_tx_layout_confirm_output, + &raw_code_apps_bitcoin_sign_tx_layout_confirm_decred_sstx_submission, + &raw_code_apps_bitcoin_sign_tx_layout_confirm_payment_request, + &raw_code_apps_bitcoin_sign_tx_layout_confirm_replacement, + &raw_code_apps_bitcoin_sign_tx_layout_confirm_modify_output, + &raw_code_apps_bitcoin_sign_tx_layout_confirm_modify_fee, + &raw_code_apps_bitcoin_sign_tx_layout_confirm_joint_total, + &raw_code_apps_bitcoin_sign_tx_layout_confirm_total, + &raw_code_apps_bitcoin_sign_tx_layout_confirm_feeoverthreshold, + &raw_code_apps_bitcoin_sign_tx_layout_confirm_change_count_over_threshold, + &raw_code_apps_bitcoin_sign_tx_layout_confirm_unverified_external_input, + &raw_code_apps_bitcoin_sign_tx_layout_confirm_multiple_accounts, + &raw_code_apps_bitcoin_sign_tx_layout_confirm_nondefault_locktime, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_layout__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 225, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 15, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_sign_tx_layout__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_layout__lt_module_gt_ + 43, + .opcodes = fun_data_apps_bitcoin_sign_tx_layout__lt_module_gt_ + 43, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_sign_tx_layout[125] = { + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_layout_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_format_amount, + MP_QSTR_trezor_dot_strings, + MP_QSTR_layouts, + MP_QSTR_trezor_dot_ui, + MP_QSTR_confirm_metadata, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_address_n_to_str, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_addresses, + MP_QSTR_, + MP_QSTR_BIP32_WALLET_DEPTH, + MP_QSTR_CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES, + MP_QSTR_format_fee_rate, + MP_QSTR_common, + MP_QSTR_address_n_to_name, + MP_QSTR_keychain, + MP_QSTR_format_coin_amount, + MP_QSTR_AmountUnit, + MP_QSTR_decimals, + MP_QSTR_coin_shortcut, + MP_QSTR_SATOSHI, + MP_QSTR_sat, + MP_QSTR_BTC, + MP_QSTR__space_, + MP_QSTR_MICROBITCOIN, + MP_QSTR_u, + MP_QSTR_MILLIBITCOIN, + MP_QSTR_m, + MP_QSTR__brace_open__brace_close__space__brace_open__brace_close_, + MP_QSTR_format, + MP_QSTR_account_label, + MP_QSTR_Path_space__brace_open__brace_close_, + MP_QSTR_confirm_output, + MP_QSTR_OutputScriptType, + MP_QSTR_omni, + MP_QSTR_script_type, + MP_QSTR_PAYTOOPRETURN, + MP_QSTR_op_return_data, + MP_QSTR_is_valid, + MP_QSTR_parse, + MP_QSTR_verb, + MP_QSTR_Confirm, + MP_QSTR_br_code, + MP_QSTR_ConfirmOutput, + MP_QSTR_confirm_blob, + MP_QSTR_op_return, + MP_QSTR_OP_RETURN, + MP_QSTR_address_short, + MP_QSTR_address, + MP_QSTR_payment_req_index, + MP_QSTR_address_n, + MP_QSTR_multisig, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_INTERNAL_MODEL, + MP_QSTR_T2B1, + MP_QSTR_show_account_str, + MP_QSTR_amount, + MP_QSTR_title, + MP_QSTR_address_label, + MP_QSTR_output_index, + MP_QSTR_chunkify, + MP_QSTR_confirm_decred_sstx_submission, + MP_QSTR_confirm_value, + MP_QSTR_CONFIRM, + MP_QSTR_PURCHASE, + MP_QSTR_confirm_payment_request, + MP_QSTR_wire, + MP_QSTR_memos, + MP_QSTR_text_memo, + MP_QSTR_append, + MP_QSTR_text, + MP_QSTR_refund_memo, + MP_QSTR_coin_purchase_memo, + MP_QSTR_Buying_space__brace_open__brace_close__dot_, + MP_QSTR_DataError, + MP_QSTR_recipient_name, + MP_QSTR_confirm_replacement, + MP_QSTR_hexlify, + MP_QSTR_ubinascii, + MP_QSTR_decode, + MP_QSTR_confirm_modify_output, + MP_QSTR_confirm_modify_fee, + MP_QSTR_fee_rate_amount, + MP_QSTR_confirm_joint_total, + MP_QSTR_spending_amount, + MP_QSTR_total_amount, + MP_QSTR_confirm_total, + MP_QSTR_confirm_feeoverthreshold, + MP_QSTR_show_warning, + MP_QSTR_FeeOverThreshold, + MP_QSTR_confirm_change_count_over_threshold, + MP_QSTR__brace_open__brace_close__space_outputs, + MP_QSTR_SignTx, + MP_QSTR_confirm_unverified_external_input, + MP_QSTR_button, + MP_QSTR_Continue, + MP_QSTR_confirm_multiple_accounts, + MP_QSTR_confirm_nondefault_locktime, + MP_QSTR_format_timestamp, + MP_QSTR_coin, + MP_QSTR_amount_unit, + MP_QSTR_list, + MP_QSTR_output, + MP_QSTR_msg, + MP_QSTR_txid, + MP_QSTR_txo, + MP_QSTR_orig_txo, + MP_QSTR_abs, + MP_QSTR_user_fee_change, + MP_QSTR_total_fee_new, + MP_QSTR_fee_rate, + MP_QSTR_spending, + MP_QSTR_total, + MP_QSTR_fee, + MP_QSTR_change_count, + MP_QSTR_str, + MP_QSTR_lock_time, + MP_QSTR_lock_time_disabled, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_layout_8 = {{&mp_type_str}, 26404, 47, (const byte*)"\x55\x6e\x72\x65\x63\x6f\x67\x6e\x69\x7a\x65\x64\x20\x6d\x65\x6d\x6f\x20\x74\x79\x70\x65\x20\x69\x6e\x20\x70\x61\x79\x6d\x65\x6e\x74\x20\x72\x65\x71\x75\x65\x73\x74\x20\x6d\x65\x6d\x6f\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_layout_11 = {{&mp_type_str}, 37830, 27, (const byte*)"\x63\x68\x61\x6e\x67\x65\x5f\x63\x6f\x75\x6e\x74\x5f\x6f\x76\x65\x72\x5f\x74\x68\x72\x65\x73\x68\x6f\x6c\x64"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_layout_13 = {{&mp_type_str}, 32691, 25, (const byte*)"\x75\x6e\x76\x65\x72\x69\x66\x69\x65\x64\x5f\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x69\x6e\x70\x75\x74"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_layout_14 = {{&mp_type_str}, 19312, 52, (const byte*)"\x54\x68\x65\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x20\x75\x6e\x76\x65\x72\x69\x66\x69\x65\x64\x20\x65\x78\x74\x65\x72\x6e\x61\x6c\x20\x69\x6e\x70\x75\x74\x73\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_layout_16 = {{&mp_type_str}, 25266, 30, (const byte*)"\x73\x65\x6e\x64\x69\x6e\x67\x5f\x66\x72\x6f\x6d\x5f\x6d\x75\x6c\x74\x69\x70\x6c\x65\x5f\x61\x63\x63\x6f\x75\x6e\x74\x73"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_layout_17 = {{&mp_type_str}, 33539, 31, (const byte*)"\x53\x65\x6e\x64\x69\x6e\x67\x20\x66\x72\x6f\x6d\x20\x6d\x75\x6c\x74\x69\x70\x6c\x65\x20\x61\x63\x63\x6f\x75\x6e\x74\x73\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_layout_19 = {{&mp_type_str}, 1532, 40, (const byte*)"\x4c\x6f\x63\x6b\x74\x69\x6d\x65\x20\x69\x73\x20\x73\x65\x74\x20\x62\x75\x74\x20\x77\x69\x6c\x6c\x20\x68\x61\x76\x65\x20\x6e\x6f\x20\x65\x66\x66\x65\x63\x74\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_layout_20 = {{&mp_type_str}, 38510, 28, (const byte*)"\x4c\x6f\x63\x6b\x74\x69\x6d\x65\x20\x73\x65\x74\x20\x74\x6f\x20\x62\x6c\x6f\x63\x6b\x68\x65\x69\x67\x68\x74\x3a"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_sign_tx_layout[23] = { + MP_ROM_QSTR(MP_QSTR_Multiple_space_accounts), + MP_ROM_QSTR(MP_QSTR_omni_transaction), + MP_ROM_QSTR(MP_QSTR_OMNI_space_transaction), + MP_ROM_QSTR(MP_QSTR_Confirm_space_details), + MP_ROM_QSTR(MP_QSTR_address_space_path_space__brace_open__brace_close_), + MP_ROM_QSTR(MP_QSTR_Purchase_space_ticket), + MP_ROM_QSTR(MP_QSTR_Ticket_space_amount_colon_), + MP_ROM_QSTR(MP_QSTR_Voting_space_rights_space_to_colon_), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_layout_8), + MP_ROM_QSTR(MP_QSTR_fee_over_threshold), + MP_ROM_QSTR(MP_QSTR_Unusually_space_high_space_fee_dot_), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_layout_11), + MP_ROM_QSTR(MP_QSTR_A_space_lot_space_of_space_change_hyphen_outputs_dot_), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_layout_13), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_layout_14), + MP_ROM_QSTR(MP_QSTR_Continue_space_anyway_question_), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_layout_16), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_layout_17), + MP_ROM_QSTR(MP_QSTR_nondefault_locktime), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_layout_19), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_layout_20), + MP_ROM_QSTR(MP_QSTR_Locktime_space_set_space_to_colon_), + MP_ROM_QSTR(MP_QSTR_Confirm_space_locktime), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_sign_tx_layout = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_sign_tx_layout, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_sign_tx_layout, + }, + .rc = &raw_code_apps_bitcoin_sign_tx_layout__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_sign_tx_matchcheck +// - original source file: build/firmware/src/apps/bitcoin/sign_tx/matchcheck.mpy +// - frozen file name: apps/bitcoin/sign_tx/matchcheck.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/sign_tx/matchcheck.py, scope apps_bitcoin_sign_tx_matchcheck__lt_module_gt_ +static const byte fun_data_apps_bitcoin_sign_tx_matchcheck__lt_module_gt_[72] = { + 0x20,0x18, // prelude + 0x01, // names: + 0x40,0x80,0x0a,0x26,0x63,0x8e,0x46,0x8b,0x0e,0x8b,0x09, // code info + 0x11,0x24, // LOAD_NAME 'object' + 0x2b,0x01, // BUILD_LIST 1 + 0x16,0x25, // STORE_NAME 'Generic' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x26, // STORE_NAME 'T' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x02, // LOAD_CONST_STRING 'MatchChecker' + 0x11,0x25, // LOAD_NAME 'Generic' + 0x11,0x26, // LOAD_NAME 'T' + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x02, // STORE_NAME 'MatchChecker' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x03, // LOAD_CONST_STRING 'WalletPathChecker' + 0x11,0x02, // LOAD_NAME 'MatchChecker' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x03, // STORE_NAME 'WalletPathChecker' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x02, // MAKE_FUNCTION 2 + 0x10,0x04, // LOAD_CONST_STRING 'MultisigFingerprintChecker' + 0x11,0x02, // LOAD_NAME 'MatchChecker' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x04, // STORE_NAME 'MultisigFingerprintChecker' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x03, // MAKE_FUNCTION 3 + 0x10,0x05, // LOAD_CONST_STRING 'ScriptTypeChecker' + 0x11,0x02, // LOAD_NAME 'MatchChecker' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x05, // STORE_NAME 'ScriptTypeChecker' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_matchcheck__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/matchcheck.py, scope apps_bitcoin_sign_tx_matchcheck_MatchChecker +static const byte fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker[59] = { + 0x00,0x1e, // prelude + 0x02, // names: MatchChecker + 0x88,0x11,0x80,0x15,0x26,0x46,0x64,0x20,0x64,0x40,0x84,0x10,0x84,0x0b, // code info + 0x11,0x27, // LOAD_NAME '__name__' + 0x16,0x28, // STORE_NAME '__module__' + 0x10,0x02, // LOAD_CONST_STRING 'MatchChecker' + 0x16,0x29, // STORE_NAME '__qualname__' + 0x11,0x24, // LOAD_NAME 'object' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x0e, // STORE_NAME 'MISMATCH' + 0x11,0x24, // LOAD_NAME 'object' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x07, // STORE_NAME 'UNDEFINED' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x06, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0a, // STORE_NAME 'attribute_from_tx' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0b, // STORE_NAME 'add_input' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x0f, // STORE_NAME 'check_input' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x13, // STORE_NAME 'output_matches' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_matchcheck_MatchChecker +// frozen bytecode for file apps/bitcoin/sign_tx/matchcheck.py, scope apps_bitcoin_sign_tx_matchcheck_MatchChecker___init__ +static const byte fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker___init__[19] = { + 0x11,0x0a, // prelude + 0x06,0x2a, // names: __init__, self + 0x80,0x2a,0x26, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x07, // LOAD_ATTR 'UNDEFINED' + 0xb0, // LOAD_FAST 0 + 0x18,0x08, // STORE_ATTR 'attribute' + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x09, // STORE_ATTR 'read_only' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_matchcheck_MatchChecker___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker___init__ + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker___init__ + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker___init__ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_matchcheck_MatchChecker +// frozen bytecode for file apps/bitcoin/sign_tx/matchcheck.py, scope apps_bitcoin_sign_tx_matchcheck_MatchChecker_attribute_from_tx +static const byte fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_attribute_from_tx[12] = { + 0x12,0x0a, // prelude + 0x0a,0x2a,0x2b, // names: attribute_from_tx, self, txio + 0x80,0x30, // code info + 0x12,0x2c, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_matchcheck_MatchChecker_attribute_from_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_attribute_from_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_attribute_from_tx + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_attribute_from_tx + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_attribute_from_tx + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_matchcheck_MatchChecker +// frozen bytecode for file apps/bitcoin/sign_tx/matchcheck.py, scope apps_bitcoin_sign_tx_matchcheck_MatchChecker_add_input +static const byte fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_add_input[99] = { + 0x32,0x1e, // prelude + 0x0b,0x2a,0x2d, // names: add_input, self, txi + 0x80,0x33,0x4b,0x48,0x29,0x42,0x27,0x25,0x28,0x29,0x26,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'ensure' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'trezor.utils' + 0x1c,0x0c, // IMPORT_FROM 'ensure' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'read_only' + 0xd3, // UNARY_OP 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'attribute' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'MISMATCH' + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD 'attribute_from_tx' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'MISMATCH' + 0xb0, // LOAD_FAST 0 + 0x18,0x08, // STORE_ATTR 'attribute' + 0x42,0x5e, // JUMP 30 + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'attribute' + 0xb0, // LOAD_FAST 0 + 0x13,0x07, // LOAD_ATTR 'UNDEFINED' + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x08, // STORE_ATTR 'attribute' + 0x42,0x4f, // JUMP 15 + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'attribute' + 0xb3, // LOAD_FAST 3 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'MISMATCH' + 0xb0, // LOAD_FAST 0 + 0x18,0x08, // STORE_ATTR 'attribute' + 0x42,0x40, // JUMP 0 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_matchcheck_MatchChecker_add_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_add_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 99, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_add_input + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_add_input + 17, + .opcodes = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_add_input + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_matchcheck_MatchChecker +// frozen bytecode for file apps/bitcoin/sign_tx/matchcheck.py, scope apps_bitcoin_sign_tx_matchcheck_MatchChecker_check_input +static const byte fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_check_input[56] = { + 0x32,0x14, // prelude + 0x0f,0x2a,0x2d, // names: check_input, self, txi + 0x80,0x43,0x4b,0x29,0x62,0x20,0x2c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'trezor' + 0x1c,0x10, // IMPORT_FROM 'wire' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'attribute' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'MISMATCH' + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'attribute' + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD 'attribute_from_tx' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x12, // LOAD_METHOD 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_matchcheck_MatchChecker_check_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_check_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_check_input + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_check_input + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_check_input + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_matchcheck_MatchChecker +// frozen bytecode for file apps/bitcoin/sign_tx/matchcheck.py, scope apps_bitcoin_sign_tx_matchcheck_MatchChecker_output_matches +static const byte fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_output_matches[36] = { + 0x22,0x10, // prelude + 0x13,0x2a,0x2e, // names: output_matches, self, txo + 0x80,0x4e,0x44,0x29,0x42, // code info + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x09, // STORE_ATTR 'read_only' + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'attribute' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'MISMATCH' + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD 'attribute_from_tx' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'attribute' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_matchcheck_MatchChecker_output_matches = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_output_matches, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_output_matches + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_output_matches + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker_output_matches + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_matchcheck_MatchChecker[] = { + &raw_code_apps_bitcoin_sign_tx_matchcheck_MatchChecker___init__, + &raw_code_apps_bitcoin_sign_tx_matchcheck_MatchChecker_attribute_from_tx, + &raw_code_apps_bitcoin_sign_tx_matchcheck_MatchChecker_add_input, + &raw_code_apps_bitcoin_sign_tx_matchcheck_MatchChecker_check_input, + &raw_code_apps_bitcoin_sign_tx_matchcheck_MatchChecker_output_matches, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_matchcheck_MatchChecker = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_matchcheck_MatchChecker, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker + 17, + .opcodes = fun_data_apps_bitcoin_sign_tx_matchcheck_MatchChecker + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_matchcheck__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/matchcheck.py, scope apps_bitcoin_sign_tx_matchcheck_WalletPathChecker +static const byte fun_data_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker[25] = { + 0x00,0x0a, // prelude + 0x03, // names: WalletPathChecker + 0x88,0x57,0x84,0x07, // code info + 0x11,0x27, // LOAD_NAME '__name__' + 0x16,0x28, // STORE_NAME '__module__' + 0x10,0x03, // LOAD_CONST_STRING 'WalletPathChecker' + 0x16,0x29, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0a, // STORE_NAME 'attribute_from_tx' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x17, // STORE_NAME 'get_path' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_matchcheck_WalletPathChecker +// frozen bytecode for file apps/bitcoin/sign_tx/matchcheck.py, scope apps_bitcoin_sign_tx_matchcheck_WalletPathChecker_attribute_from_tx +static const byte fun_data_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker_attribute_from_tx[44] = { + 0x2a,0x10, // prelude + 0x0a,0x2a,0x2b, // names: attribute_from_tx, self, txio + 0x80,0x58,0x4b,0x2b,0x22, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x14, // LOAD_CONST_STRING 'BIP32_WALLET_DEPTH' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x15, // IMPORT_NAME 'common' + 0x1c,0x14, // IMPORT_FROM 'BIP32_WALLET_DEPTH' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x2f, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'address_n' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'address_n' + 0x51, // LOAD_CONST_NONE + 0xb2, // LOAD_FAST 2 + 0xd1, // UNARY_OP 1 __neg__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker_attribute_from_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker_attribute_from_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker_attribute_from_tx + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker_attribute_from_tx + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker_attribute_from_tx + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_matchcheck_WalletPathChecker +// frozen bytecode for file apps/bitcoin/sign_tx/matchcheck.py, scope apps_bitcoin_sign_tx_matchcheck_WalletPathChecker_get_path +static const byte fun_data_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker_get_path[25] = { + 0x19,0x0c, // prelude + 0x17,0x2a, // names: get_path, self + 0x80,0x5f,0x2b,0x24, // code info + 0x12,0x30, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'attribute' + 0x12,0x31, // LOAD_GLOBAL 'list' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'attribute' + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker_get_path = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker_get_path, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker_get_path + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker_get_path + 8, + .opcodes = fun_data_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker_get_path + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker[] = { + &raw_code_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker_attribute_from_tx, + &raw_code_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker_get_path, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 3, + .line_info = fun_data_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_matchcheck__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/matchcheck.py, scope apps_bitcoin_sign_tx_matchcheck_MultisigFingerprintChecker +static const byte fun_data_apps_bitcoin_sign_tx_matchcheck_MultisigFingerprintChecker[19] = { + 0x00,0x06, // prelude + 0x04, // names: MultisigFingerprintChecker + 0x88,0x65, // code info + 0x11,0x27, // LOAD_NAME '__name__' + 0x16,0x28, // STORE_NAME '__module__' + 0x10,0x04, // LOAD_CONST_STRING 'MultisigFingerprintChecker' + 0x16,0x29, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0a, // STORE_NAME 'attribute_from_tx' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_matchcheck_MultisigFingerprintChecker +// frozen bytecode for file apps/bitcoin/sign_tx/matchcheck.py, scope apps_bitcoin_sign_tx_matchcheck_MultisigFingerprintChecker_attribute_from_tx +static const byte fun_data_apps_bitcoin_sign_tx_matchcheck_MultisigFingerprintChecker_attribute_from_tx[37] = { + 0x2a,0x10, // prelude + 0x0a,0x2a,0x2b, // names: attribute_from_tx, self, txio + 0x80,0x66,0x4b,0x25,0x22, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x18, // LOAD_CONST_STRING 'multisig' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x19, // IMPORT_NAME '' + 0x1c,0x18, // IMPORT_FROM 'multisig' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'multisig' + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x14,0x1a, // LOAD_METHOD 'multisig_fingerprint' + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'multisig' + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_matchcheck_MultisigFingerprintChecker_attribute_from_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_matchcheck_MultisigFingerprintChecker_attribute_from_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_bitcoin_sign_tx_matchcheck_MultisigFingerprintChecker_attribute_from_tx + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_matchcheck_MultisigFingerprintChecker_attribute_from_tx + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_matchcheck_MultisigFingerprintChecker_attribute_from_tx + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_matchcheck_MultisigFingerprintChecker[] = { + &raw_code_apps_bitcoin_sign_tx_matchcheck_MultisigFingerprintChecker_attribute_from_tx, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_matchcheck_MultisigFingerprintChecker = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_matchcheck_MultisigFingerprintChecker, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_matchcheck_MultisigFingerprintChecker, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_bitcoin_sign_tx_matchcheck_MultisigFingerprintChecker + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_matchcheck_MultisigFingerprintChecker + 5, + .opcodes = fun_data_apps_bitcoin_sign_tx_matchcheck_MultisigFingerprintChecker + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_matchcheck__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/matchcheck.py, scope apps_bitcoin_sign_tx_matchcheck_ScriptTypeChecker +static const byte fun_data_apps_bitcoin_sign_tx_matchcheck_ScriptTypeChecker[19] = { + 0x00,0x06, // prelude + 0x05, // names: ScriptTypeChecker + 0x88,0x6e, // code info + 0x11,0x27, // LOAD_NAME '__name__' + 0x16,0x28, // STORE_NAME '__module__' + 0x10,0x05, // LOAD_CONST_STRING 'ScriptTypeChecker' + 0x16,0x29, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0a, // STORE_NAME 'attribute_from_tx' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_matchcheck_ScriptTypeChecker +// frozen bytecode for file apps/bitcoin/sign_tx/matchcheck.py, scope apps_bitcoin_sign_tx_matchcheck_ScriptTypeChecker_attribute_from_tx +static const byte fun_data_apps_bitcoin_sign_tx_matchcheck_ScriptTypeChecker_attribute_from_tx[82] = { + 0x42,0x1c, // prelude + 0x0a,0x2a,0x2b, // names: attribute_from_tx, self, txio + 0x80,0x6f,0x2b,0x4b,0x4b,0x28,0x48,0x64,0x60,0x27,0x44, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1b, // LOAD_CONST_STRING 'InputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1c, // IMPORT_NAME 'trezor.enums' + 0x1c,0x1b, // IMPORT_FROM 'InputScriptType' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1d, // LOAD_CONST_STRING 'TxOutput' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME 'trezor.messages' + 0x1c,0x1d, // IMPORT_FROM 'TxOutput' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x1f, // LOAD_CONST_STRING 'CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x15, // IMPORT_NAME 'common' + 0x1c,0x1f, // IMPORT_FROM 'CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x20, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'script_type' + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0x42,0x44, // JUMP 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'script_type' + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x13,0x22, // LOAD_ATTR 'SPENDMULTISIG' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x23, // LOAD_ATTR 'SPENDADDRESS' + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_matchcheck_ScriptTypeChecker_attribute_from_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_matchcheck_ScriptTypeChecker_attribute_from_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 82, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_bitcoin_sign_tx_matchcheck_ScriptTypeChecker_attribute_from_tx + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_matchcheck_ScriptTypeChecker_attribute_from_tx + 16, + .opcodes = fun_data_apps_bitcoin_sign_tx_matchcheck_ScriptTypeChecker_attribute_from_tx + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_matchcheck_ScriptTypeChecker[] = { + &raw_code_apps_bitcoin_sign_tx_matchcheck_ScriptTypeChecker_attribute_from_tx, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_matchcheck_ScriptTypeChecker = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_matchcheck_ScriptTypeChecker, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_matchcheck_ScriptTypeChecker, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_bitcoin_sign_tx_matchcheck_ScriptTypeChecker + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_matchcheck_ScriptTypeChecker + 5, + .opcodes = fun_data_apps_bitcoin_sign_tx_matchcheck_ScriptTypeChecker + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_matchcheck__lt_module_gt_[] = { + &raw_code_apps_bitcoin_sign_tx_matchcheck_MatchChecker, + &raw_code_apps_bitcoin_sign_tx_matchcheck_WalletPathChecker, + &raw_code_apps_bitcoin_sign_tx_matchcheck_MultisigFingerprintChecker, + &raw_code_apps_bitcoin_sign_tx_matchcheck_ScriptTypeChecker, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_matchcheck__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_matchcheck__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_matchcheck__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_sign_tx_matchcheck__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_matchcheck__lt_module_gt_ + 14, + .opcodes = fun_data_apps_bitcoin_sign_tx_matchcheck__lt_module_gt_ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_sign_tx_matchcheck[50] = { + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_matchcheck_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_MatchChecker, + MP_QSTR_WalletPathChecker, + MP_QSTR_MultisigFingerprintChecker, + MP_QSTR_ScriptTypeChecker, + MP_QSTR___init__, + MP_QSTR_UNDEFINED, + MP_QSTR_attribute, + MP_QSTR_read_only, + MP_QSTR_attribute_from_tx, + MP_QSTR_add_input, + MP_QSTR_ensure, + MP_QSTR_trezor_dot_utils, + MP_QSTR_MISMATCH, + MP_QSTR_check_input, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_ProcessError, + MP_QSTR_output_matches, + MP_QSTR_BIP32_WALLET_DEPTH, + MP_QSTR_common, + MP_QSTR_address_n, + MP_QSTR_get_path, + MP_QSTR_multisig, + MP_QSTR_, + MP_QSTR_multisig_fingerprint, + MP_QSTR_InputScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_TxOutput, + MP_QSTR_trezor_dot_messages, + MP_QSTR_CHANGE_OUTPUT_TO_INPUT_SCRIPT_TYPES, + MP_QSTR_is_type_of, + MP_QSTR_script_type, + MP_QSTR_SPENDMULTISIG, + MP_QSTR_SPENDADDRESS, + MP_QSTR_object, + MP_QSTR_Generic, + MP_QSTR_T, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_self, + MP_QSTR_txio, + MP_QSTR_NotImplementedError, + MP_QSTR_txi, + MP_QSTR_txo, + MP_QSTR_len, + MP_QSTR_isinstance, + MP_QSTR_list, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_matchcheck_0 = {{&mp_type_str}, 4745, 38, (const byte*)"\x54\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x68\x61\x73\x20\x63\x68\x61\x6e\x67\x65\x64\x20\x64\x75\x72\x69\x6e\x67\x20\x73\x69\x67\x6e\x69\x6e\x67"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_sign_tx_matchcheck[1] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_matchcheck_0), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_sign_tx_matchcheck = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_sign_tx_matchcheck, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_sign_tx_matchcheck, + }, + .rc = &raw_code_apps_bitcoin_sign_tx_matchcheck__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_sign_tx_omni +// - original source file: build/firmware/src/apps/bitcoin/sign_tx/omni.mpy +// - frozen file name: apps/bitcoin/sign_tx/omni.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/sign_tx/omni.py, scope apps_bitcoin_sign_tx_omni__lt_module_gt_ +static const byte fun_data_apps_bitcoin_sign_tx_omni__lt_module_gt_[55] = { + 0x10,0x16, // prelude + 0x01, // names: + 0x6c,0x20,0x22,0x24,0x24,0x24,0x66,0x20,0x64,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x2c,0x04, // BUILD_MAP 4 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x62, // STORE_MAP + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x62, // STORE_MAP + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x62, // STORE_MAP + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0x62, // STORE_MAP + 0x16,0x0e, // STORE_NAME 'currencies' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x04, // STORE_NAME 'is_valid' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x05, // STORE_NAME 'parse' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_omni__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/omni.py, scope apps_bitcoin_sign_tx_omni_is_valid +static const byte fun_data_apps_bitcoin_sign_tx_omni_is_valid[25] = { + 0x19,0x08, // prelude + 0x04,0x0f, // names: is_valid, data + 0x80,0x0d, // code info + 0x12,0x10, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xdb, // BINARY_OP 4 __ge__ + 0x46,0x09, // JUMP_IF_FALSE_OR_POP 9 + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_omni_is_valid = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_omni_is_valid, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_bitcoin_sign_tx_omni_is_valid + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_omni_is_valid + 6, + .opcodes = fun_data_apps_bitcoin_sign_tx_omni_is_valid + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_omni__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/omni.py, scope apps_bitcoin_sign_tx_omni_parse +static const byte fun_data_apps_bitcoin_sign_tx_omni_parse[127] = { + 0x69,0x1a, // prelude + 0x05,0x0f, // names: parse, data + 0x80,0x11,0x4b,0x4b,0x27,0x23,0x2f,0x33,0x2f,0x2d,0x6d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'unpack' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'ustruct' + 0x1c,0x06, // IMPORT_FROM 'unpack' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'format_amount' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.strings' + 0x1c,0x08, // IMPORT_FROM 'format_amount' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'is_valid' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x12,0x11, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x10,0x0a, // LOAD_CONST_STRING '>HH' + 0xb0, // LOAD_FAST 0 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x02, // CALL_FUNCTION 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x77, // POP_JUMP_IF_FALSE 55 + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x72, // POP_JUMP_IF_FALSE 50 + 0x12,0x10, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x69, // POP_JUMP_IF_FALSE 41 + 0xb1, // LOAD_FAST 1 + 0x10,0x0b, // LOAD_CONST_STRING '>IQ' + 0xb0, // LOAD_FAST 0 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x02, // CALL_FUNCTION 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc5, // STORE_FAST 5 + 0xc6, // STORE_FAST 6 + 0x12,0x0e, // LOAD_GLOBAL 'currencies' + 0x14,0x0c, // LOAD_METHOD 'get' + 0xb5, // LOAD_FAST 5 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x36,0x02, // CALL_METHOD 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc7, // STORE_FAST 7 + 0xc8, // STORE_FAST 8 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x14,0x0d, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_omni_parse = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_omni_parse, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 127, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_bitcoin_sign_tx_omni_parse + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_omni_parse + 15, + .opcodes = fun_data_apps_bitcoin_sign_tx_omni_parse + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_omni__lt_module_gt_[] = { + &raw_code_apps_bitcoin_sign_tx_omni_is_valid, + &raw_code_apps_bitcoin_sign_tx_omni_parse, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_omni__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_omni__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_omni__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_sign_tx_omni__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_omni__lt_module_gt_ + 13, + .opcodes = fun_data_apps_bitcoin_sign_tx_omni__lt_module_gt_ + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_sign_tx_omni[18] = { + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_omni_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_is_valid, + MP_QSTR_parse, + MP_QSTR_unpack, + MP_QSTR_ustruct, + MP_QSTR_format_amount, + MP_QSTR_trezor_dot_strings, + MP_QSTR__gt_HH, + MP_QSTR__gt_IQ, + MP_QSTR_get, + MP_QSTR_format, + MP_QSTR_currencies, + MP_QSTR_data, + MP_QSTR_len, + MP_QSTR_ValueError, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_bitcoin_sign_tx_omni_0 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_OMNI), + MP_ROM_INT(8), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_bitcoin_sign_tx_omni_1 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_tOMNI), + MP_ROM_INT(8), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_bitcoin_sign_tx_omni_2 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_MAID), + MP_ROM_INT(0), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_bitcoin_sign_tx_omni_3 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_USDT), + MP_ROM_INT(8), +}}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_omni_4 = {{&mp_type_bytes}, 57632, 4, (const byte*)"\x6f\x6d\x6e\x69"}; +static const mp_rom_obj_tuple_t const_obj_apps_bitcoin_sign_tx_omni_5 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_UNKN), + MP_ROM_INT(0), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_sign_tx_omni[8] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_omni_0), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_omni_1), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_omni_2), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_omni_3), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_omni_4), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_omni_5), + MP_ROM_QSTR(MP_QSTR_Simple_space_send_space_of_space__brace_open__brace_close__space__brace_open__brace_close_), + MP_ROM_QSTR(MP_QSTR_Unknown_space_transaction), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_sign_tx_omni = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_sign_tx_omni, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_sign_tx_omni, + }, + .rc = &raw_code_apps_bitcoin_sign_tx_omni__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_sign_tx_payment_request +// - original source file: build/firmware/src/apps/bitcoin/sign_tx/payment_request.mpy +// - frozen file name: apps/bitcoin/sign_tx/payment_request.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/sign_tx/payment_request.py, scope apps_bitcoin_sign_tx_payment_request__lt_module_gt_ +static const byte fun_data_apps_bitcoin_sign_tx_payment_request__lt_module_gt_[55] = { + 0x10,0x0c, // prelude + 0x01, // names: + 0x6c,0x4c,0x4c,0x80,0x0b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.wire' + 0x1c,0x04, // IMPORT_FROM 'DataError' + 0x16,0x04, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x06, // LOAD_CONST_STRING 'writers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME '' + 0x1c,0x06, // IMPORT_FROM 'writers' + 0x16,0x06, // STORE_NAME 'writers' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x08, // LOAD_CONST_STRING 'PaymentRequestVerifier' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x08, // STORE_NAME 'PaymentRequestVerifier' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_payment_request__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/payment_request.py, scope apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier +static const byte fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier[50] = { + 0x00,0x1c, // prelude + 0x08, // names: PaymentRequestVerifier + 0x88,0x13,0x60,0x20,0x44,0x84,0x34,0x84,0x0e,0x64,0x60,0x64,0x20, // code info + 0x11,0x34, // LOAD_NAME '__name__' + 0x16,0x35, // STORE_NAME '__module__' + 0x10,0x08, // LOAD_CONST_STRING 'PaymentRequestVerifier' + 0x16,0x36, // STORE_NAME '__qualname__' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x2e, // STORE_NAME 'PUBLIC_KEY' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x09, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x2a, // STORE_NAME 'verify' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x30, // STORE_NAME '_add_output' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x32, // STORE_NAME 'add_external_output' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x33, // STORE_NAME 'add_change_output' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier +// frozen bytecode for file apps/bitcoin/sign_tx/payment_request.py, scope apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier___init__ +static const byte fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier___init__[454] = { + 0xa0,0x14,0x5c, // prelude + 0x09,0x37,0x38,0x39,0x3a, // names: __init__, self, msg, coin, keychain + 0x80,0x1c,0x2b,0x2b,0x4b,0x4b,0x4b,0x29,0x24,0x26,0x26,0x49,0x25,0x28,0x2c,0x27,0x4b,0x23,0x25,0x47,0x2c,0x2a,0x30,0x30,0x28,0x28,0x24,0x2a,0x33,0x28,0x44,0x2e,0x2a,0x33,0x29,0x24,0x2e,0x2a,0x2c,0x30,0x55, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'cache' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'storage' + 0x1c,0x0a, // IMPORT_FROM 'cache' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x0c, // IMPORT_FROM 'sha256' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'HashWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'trezor.utils' + 0x1c,0x0e, // IMPORT_FROM 'HashWriter' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'check_address_mac' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'apps.common.address_mac' + 0x1c,0x10, // IMPORT_FROM 'check_address_mac' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x06, // LOAD_CONST_STRING 'writers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME '' + 0x1c,0x06, // IMPORT_FROM 'writers' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x12, // STORE_ATTR 'h_outputs' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x13, // STORE_ATTR 'amount' + 0xb1, // LOAD_FAST 1 + 0x13,0x13, // LOAD_ATTR 'amount' + 0xb0, // LOAD_FAST 0 + 0x18,0x14, // STORE_ATTR 'expected_amount' + 0xb1, // LOAD_FAST 1 + 0x13,0x15, // LOAD_ATTR 'signature' + 0xb0, // LOAD_FAST 0 + 0x18,0x15, // STORE_ATTR 'signature' + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x16, // STORE_ATTR 'h_pr' + 0xb1, // LOAD_FAST 1 + 0x13,0x17, // LOAD_ATTR 'nonce' + 0x44,0x66, // POP_JUMP_IF_FALSE 38 + 0x12,0x3b, // LOAD_GLOBAL 'bytes' + 0xb1, // LOAD_FAST 1 + 0x13,0x17, // LOAD_ATTR 'nonce' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0xb4, // LOAD_FAST 4 + 0x14,0x18, // LOAD_METHOD 'get' + 0xb4, // LOAD_FAST 4 + 0x13,0x19, // LOAD_ATTR 'APP_COMMON_NONCE' + 0x36,0x01, // CALL_METHOD 1 + 0xb9, // LOAD_FAST 9 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x14,0x1a, // LOAD_METHOD 'delete' + 0xb4, // LOAD_FAST 4 + 0x13,0x19, // LOAD_ATTR 'APP_COMMON_NONCE' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x4f, // JUMP 15 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xc9, // STORE_FAST 9 + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'memos' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x1c, // LOAD_METHOD 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_pr' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x1d, // LOAD_METHOD 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_pr' + 0xb9, // LOAD_FAST 9 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x1d, // LOAD_METHOD 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_pr' + 0xb1, // LOAD_FAST 1 + 0x13,0x1e, // LOAD_ATTR 'recipient_name' + 0x14,0x1f, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x20, // LOAD_METHOD 'write_compact_size' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_pr' + 0x12,0x3c, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'memos' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'memos' + 0x5f, // GET_ITER_STACK + 0x4b,0xb7,0x01, // FOR_ITER 183 + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0x13,0x21, // LOAD_ATTR 'text_memo' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x61, // POP_JUMP_IF_FALSE 33 + 0xba, // LOAD_FAST 10 + 0x13,0x21, // LOAD_ATTR 'text_memo' + 0xcb, // STORE_FAST 11 + 0xb8, // LOAD_FAST 8 + 0x14,0x22, // LOAD_METHOD 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_pr' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x1d, // LOAD_METHOD 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_pr' + 0xbb, // LOAD_FAST 11 + 0x13,0x23, // LOAD_ATTR 'text' + 0x14,0x1f, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x8a,0x81, // JUMP 138 + 0xba, // LOAD_FAST 10 + 0x13,0x24, // LOAD_ATTR 'refund_memo' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x6f, // POP_JUMP_IF_FALSE 47 + 0xba, // LOAD_FAST 10 + 0x13,0x24, // LOAD_ATTR 'refund_memo' + 0xcb, // STORE_FAST 11 + 0xb7, // LOAD_FAST 7 + 0xbb, // LOAD_FAST 11 + 0x13,0x25, // LOAD_ATTR 'address' + 0xbb, // LOAD_FAST 11 + 0x13,0x26, // LOAD_ATTR 'mac' + 0xb2, // LOAD_FAST 2 + 0x13,0x27, // LOAD_ATTR 'slip44' + 0xb3, // LOAD_FAST 3 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x22, // LOAD_METHOD 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_pr' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x1d, // LOAD_METHOD 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_pr' + 0xbb, // LOAD_FAST 11 + 0x13,0x25, // LOAD_ATTR 'address' + 0x14,0x1f, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xd3,0x80, // JUMP 83 + 0xba, // LOAD_FAST 10 + 0x13,0x28, // LOAD_ATTR 'coin_purchase_memo' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0xca,0x80, // POP_JUMP_IF_FALSE 74 + 0xba, // LOAD_FAST 10 + 0x13,0x28, // LOAD_ATTR 'coin_purchase_memo' + 0xcb, // STORE_FAST 11 + 0xb7, // LOAD_FAST 7 + 0xbb, // LOAD_FAST 11 + 0x13,0x25, // LOAD_ATTR 'address' + 0xbb, // LOAD_FAST 11 + 0x13,0x26, // LOAD_ATTR 'mac' + 0xbb, // LOAD_FAST 11 + 0x13,0x29, // LOAD_ATTR 'coin_type' + 0xb3, // LOAD_FAST 3 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x22, // LOAD_METHOD 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_pr' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x22, // LOAD_METHOD 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_pr' + 0xbb, // LOAD_FAST 11 + 0x13,0x29, // LOAD_ATTR 'coin_type' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x1d, // LOAD_METHOD 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_pr' + 0xbb, // LOAD_FAST 11 + 0x13,0x13, // LOAD_ATTR 'amount' + 0x14,0x1f, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x1d, // LOAD_METHOD 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_pr' + 0xbb, // LOAD_FAST 11 + 0x13,0x25, // LOAD_ATTR 'address' + 0x14,0x1f, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x40, // JUMP 0 + 0x42,0xc6,0x7e, // JUMP -186 + 0xb8, // LOAD_FAST 8 + 0x14,0x22, // LOAD_METHOD 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_pr' + 0xb2, // LOAD_FAST 2 + 0x13,0x27, // LOAD_ATTR 'slip44' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 454, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 21, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier___init__ + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier___init__ + 49, + .opcodes = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier___init__ + 49, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier +// frozen bytecode for file apps/bitcoin/sign_tx/payment_request.py, scope apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_verify +static const byte fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_verify[99] = { + 0x41,0x16, // prelude + 0x2a,0x37, // names: verify, self + 0x80,0x4e,0x4b,0x31,0x47,0x2a,0x4c,0x23,0x51, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2b, // LOAD_CONST_STRING 'secp256k1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2c, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x2b, // IMPORT_FROM 'secp256k1' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'expected_amount' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'expected_amount' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x06, // LOAD_GLOBAL 'writers' + 0x14,0x2d, // LOAD_METHOD 'get_tx_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'h_outputs' + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0x12,0x06, // LOAD_GLOBAL 'writers' + 0x14,0x1c, // LOAD_METHOD 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_pr' + 0xb2, // LOAD_FAST 2 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x2a, // LOAD_METHOD 'verify' + 0xb0, // LOAD_FAST 0 + 0x13,0x2e, // LOAD_ATTR 'PUBLIC_KEY' + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'signature' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_pr' + 0x14,0x2f, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x03, // CALL_METHOD 3 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_verify = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_verify, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 99, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_verify + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_verify + 13, + .opcodes = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_verify + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier +// frozen bytecode for file apps/bitcoin/sign_tx/payment_request.py, scope apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier__add_output +static const byte fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier__add_output[41] = { + 0x32,0x0e, // prelude + 0x30,0x37,0x3d, // names: _add_output, self, txo + 0x80,0x5d,0x20,0x2d, // code info + 0x12,0x06, // LOAD_GLOBAL 'writers' + 0x14,0x31, // LOAD_METHOD 'write_uint64' + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'h_outputs' + 0xb1, // LOAD_FAST 1 + 0x13,0x13, // LOAD_ATTR 'amount' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'writers' + 0x14,0x1d, // LOAD_METHOD 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'h_outputs' + 0xb1, // LOAD_FAST 1 + 0x13,0x25, // LOAD_ATTR 'address' + 0x14,0x1f, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier__add_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier__add_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 48, + .line_info = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier__add_output + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier__add_output + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier__add_output + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier +// frozen bytecode for file apps/bitcoin/sign_tx/payment_request.py, scope apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_add_external_output +static const byte fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_add_external_output[28] = { + 0x22,0x0c, // prelude + 0x32,0x37,0x3d, // names: add_external_output, self, txo + 0x80,0x62,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x30, // LOAD_METHOD '_add_output' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x13, // LOAD_ATTR 'amount' + 0xb1, // LOAD_FAST 1 + 0x13,0x13, // LOAD_ATTR 'amount' + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x13, // STORE_ATTR 'amount' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_add_external_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_add_external_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 50, + .line_info = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_add_external_output + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_add_external_output + 8, + .opcodes = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_add_external_output + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier +// frozen bytecode for file apps/bitcoin/sign_tx/payment_request.py, scope apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_add_change_output +static const byte fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_add_change_output[16] = { + 0x22,0x0a, // prelude + 0x33,0x37,0x3d, // names: add_change_output, self, txo + 0x80,0x66, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x30, // LOAD_METHOD '_add_output' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_add_change_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_add_change_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 51, + .line_info = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_add_change_output + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_add_change_output + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_add_change_output + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier[] = { + &raw_code_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier___init__, + &raw_code_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_verify, + &raw_code_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier__add_output, + &raw_code_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_add_external_output, + &raw_code_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier_add_change_output, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier + 16, + .opcodes = fun_data_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_payment_request__lt_module_gt_[] = { + &raw_code_apps_bitcoin_sign_tx_payment_request_PaymentRequestVerifier, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_payment_request__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_payment_request__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_payment_request__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_sign_tx_payment_request__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_payment_request__lt_module_gt_ + 8, + .opcodes = fun_data_apps_bitcoin_sign_tx_payment_request__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_sign_tx_payment_request[62] = { + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_payment_request_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_writers, + MP_QSTR_, + MP_QSTR_PaymentRequestVerifier, + MP_QSTR___init__, + MP_QSTR_cache, + MP_QSTR_storage, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_HashWriter, + MP_QSTR_trezor_dot_utils, + MP_QSTR_check_address_mac, + MP_QSTR_apps_dot_common_dot_address_mac, + MP_QSTR_h_outputs, + MP_QSTR_amount, + MP_QSTR_expected_amount, + MP_QSTR_signature, + MP_QSTR_h_pr, + MP_QSTR_nonce, + MP_QSTR_get, + MP_QSTR_APP_COMMON_NONCE, + MP_QSTR_delete, + MP_QSTR_memos, + MP_QSTR_write_bytes_fixed, + MP_QSTR_write_bytes_prefixed, + MP_QSTR_recipient_name, + MP_QSTR_encode, + MP_QSTR_write_compact_size, + MP_QSTR_text_memo, + MP_QSTR_write_uint32, + MP_QSTR_text, + MP_QSTR_refund_memo, + MP_QSTR_address, + MP_QSTR_mac, + MP_QSTR_slip44, + MP_QSTR_coin_purchase_memo, + MP_QSTR_coin_type, + MP_QSTR_verify, + MP_QSTR_secp256k1, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_get_tx_hash, + MP_QSTR_PUBLIC_KEY, + MP_QSTR_get_digest, + MP_QSTR__add_output, + MP_QSTR_write_uint64, + MP_QSTR_add_external_output, + MP_QSTR_add_change_output, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_self, + MP_QSTR_msg, + MP_QSTR_coin, + MP_QSTR_keychain, + MP_QSTR_bytes, + MP_QSTR_len, + MP_QSTR_txo, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_payment_request_1 = {{&mp_type_str}, 59135, 33, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x6e\x6f\x6e\x63\x65\x20\x69\x6e\x20\x70\x61\x79\x6d\x65\x6e\x74\x20\x72\x65\x71\x75\x65\x73\x74\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_payment_request_2 = {{&mp_type_str}, 30954, 33, (const byte*)"\x4d\x69\x73\x73\x69\x6e\x67\x20\x6e\x6f\x6e\x63\x65\x20\x69\x6e\x20\x70\x61\x79\x6d\x65\x6e\x74\x20\x72\x65\x71\x75\x65\x73\x74\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_payment_request_3 = {{&mp_type_bytes}, 39774, 4, (const byte*)"\x53\x4c\x00\x24"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_payment_request_4 = {{&mp_type_str}, 30042, 34, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x61\x6d\x6f\x75\x6e\x74\x20\x69\x6e\x20\x70\x61\x79\x6d\x65\x6e\x74\x20\x72\x65\x71\x75\x65\x73\x74\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_payment_request_5 = {{&mp_type_str}, 51858, 37, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x73\x69\x67\x6e\x61\x74\x75\x72\x65\x20\x69\x6e\x20\x70\x61\x79\x6d\x65\x6e\x74\x20\x72\x65\x71\x75\x65\x73\x74\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_sign_tx_payment_request[6] = { + MP_ROM_PTR(&mp_const_empty_bytes_obj), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_payment_request_1), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_payment_request_2), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_payment_request_3), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_payment_request_4), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_payment_request_5), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_sign_tx_payment_request = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_sign_tx_payment_request, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_sign_tx_payment_request, + }, + .rc = &raw_code_apps_bitcoin_sign_tx_payment_request__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_sign_tx_progress +// - original source file: build/firmware/src/apps/bitcoin/sign_tx/progress.mpy +// - frozen file name: apps/bitcoin/sign_tx/progress.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/sign_tx/progress.py, scope apps_bitcoin_sign_tx_progress__lt_module_gt_ +static const byte fun_data_apps_bitcoin_sign_tx_progress__lt_module_gt_[29] = { + 0x10,0x0e, // prelude + 0x01, // names: + 0x40,0x80,0x0a,0x63,0x89,0x7f, // code info + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x16,0x20, // STORE_NAME '_PREV_TX_MULTIPLIER' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x02, // LOAD_CONST_STRING 'Progress' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x02, // STORE_NAME 'Progress' + 0x11,0x02, // LOAD_NAME 'Progress' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x04, // STORE_NAME 'progress' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_progress__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/progress.py, scope apps_bitcoin_sign_tx_progress_Progress +static const byte fun_data_apps_bitcoin_sign_tx_progress_Progress[66] = { + 0x08,0x24, // prelude + 0x02, // names: Progress + 0x88,0x10,0x84,0x0d,0x88,0x0b,0x84,0x3e,0x64,0x64,0x20,0x64,0x20,0x84,0x09,0x84,0x08, // code info + 0x11,0x21, // LOAD_NAME '__name__' + 0x16,0x22, // STORE_NAME '__module__' + 0x10,0x02, // LOAD_CONST_STRING 'Progress' + 0x16,0x23, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x03, // STORE_NAME '__init__' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x09, // STORE_NAME 'init' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0e, // STORE_NAME 'init_signing' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x14, // STORE_NAME 'init_prev_tx' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x15, // STORE_NAME 'advance' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x16, // STORE_NAME 'advance_prev_tx' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x0c, // STORE_NAME 'report_init' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x0d, // STORE_NAME 'report' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_progress_Progress +// frozen bytecode for file apps/bitcoin/sign_tx/progress.py, scope apps_bitcoin_sign_tx_progress_Progress___init__ +static const byte fun_data_apps_bitcoin_sign_tx_progress_Progress___init__[33] = { + 0x11,0x12, // prelude + 0x03,0x24, // names: __init__, self + 0x80,0x11,0x24,0x24,0x24,0x84,0x07, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x04, // STORE_ATTR 'progress' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x05, // STORE_ATTR 'steps' + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x06, // STORE_ATTR 'signing' + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x07, // STORE_ATTR 'is_coinjoin' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x08, // STORE_ATTR 'prev_tx_step' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_progress_Progress___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_progress_Progress___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 3, + .line_info = fun_data_apps_bitcoin_sign_tx_progress_Progress___init__ + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_progress_Progress___init__ + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_progress_Progress___init__ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_progress_Progress +// frozen bytecode for file apps/bitcoin/sign_tx/progress.py, scope apps_bitcoin_sign_tx_progress_Progress_init +static const byte fun_data_apps_bitcoin_sign_tx_progress_Progress_init[50] = { + 0xa3,0x01,0x16, // prelude + 0x09,0x24,0x11,0x07, // names: init, self, tx, is_coinjoin + 0x80,0x1e,0x24,0x24,0x64,0x4a,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x04, // STORE_ATTR 'progress' + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x06, // STORE_ATTR 'signing' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x07, // STORE_ATTR 'is_coinjoin' + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'inputs_count' + 0xb1, // LOAD_FAST 1 + 0x13,0x0b, // LOAD_ATTR 'outputs_count' + 0xf2, // BINARY_OP 27 __add__ + 0xb0, // LOAD_FAST 0 + 0x18,0x05, // STORE_ATTR 'steps' + 0xb0, // LOAD_FAST 0 + 0x14,0x0c, // LOAD_METHOD 'report_init' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x0d, // LOAD_METHOD 'report' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_progress_Progress_init = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_progress_Progress_init, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_bitcoin_sign_tx_progress_Progress_init + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_progress_Progress_init + 14, + .opcodes = fun_data_apps_bitcoin_sign_tx_progress_Progress_init + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_progress_Progress +// frozen bytecode for file apps/bitcoin/sign_tx/progress.py, scope apps_bitcoin_sign_tx_progress_Progress_init_signing +static const byte fun_data_apps_bitcoin_sign_tx_progress_Progress_init_signing[261] = { + 0x91,0x90,0x04,0x4c, // prelude + 0x0e,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x11,0x2b, // names: init_signing, self, external, segwit, presigned, taproot_only, serialize, coin, tx, orig_txs + 0x80,0x33,0x60,0x24,0x24,0x64,0x2f,0x4b,0x49,0x25,0x6f,0x31,0x29,0x6c,0x67,0x40,0x25,0x29,0x72,0x20,0x43,0x6b,0x20,0x6f,0x6d,0x28,0x4b,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x04, // STORE_ATTR 'progress' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x05, // STORE_ATTR 'steps' + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x06, // STORE_ATTR 'signing' + 0xb4, // LOAD_FAST 4 + 0x43,0x4c, // POP_JUMP_IF_TRUE 12 + 0xb6, // LOAD_FAST 6 + 0x13,0x0f, // LOAD_ATTR 'overwintered' + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb7, // LOAD_FAST 7 + 0x13,0x10, // LOAD_ATTR 'version' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x05, // LOAD_ATTR 'steps' + 0xb3, // LOAD_FAST 3 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x05, // STORE_ATTR 'steps' + 0x42,0x49, // JUMP 9 + 0xb7, // LOAD_FAST 7 + 0x13,0x0a, // LOAD_ATTR 'inputs_count' + 0x12,0x20, // LOAD_GLOBAL '_PREV_TX_MULTIPLIER' + 0xf4, // BINARY_OP 29 __mul__ + 0xb0, // LOAD_FAST 0 + 0x18,0x05, // STORE_ATTR 'steps' + 0xb8, // LOAD_FAST 8 + 0x5f, // GET_ITER_STACK + 0x4b,0x10, // FOR_ITER 16 + 0xc9, // STORE_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x05, // LOAD_ATTR 'steps' + 0xb9, // LOAD_FAST 9 + 0x13,0x11, // LOAD_ATTR 'tx' + 0x13,0x0a, // LOAD_ATTR 'inputs_count' + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x05, // STORE_ATTR 'steps' + 0x42,0x2e, // JUMP -18 + 0xb6, // LOAD_FAST 6 + 0x13,0x12, // LOAD_ATTR 'force_bip143' + 0x43,0xc7,0x80, // POP_JUMP_IF_TRUE 71 + 0xb6, // LOAD_FAST 6 + 0x13,0x0f, // LOAD_ATTR 'overwintered' + 0x43,0xc1,0x80, // POP_JUMP_IF_TRUE 65 + 0xb6, // LOAD_FAST 6 + 0x13,0x13, // LOAD_ATTR 'decred' + 0x43,0x7c, // POP_JUMP_IF_TRUE 60 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x05, // LOAD_ATTR 'steps' + 0xb7, // LOAD_FAST 7 + 0x13,0x0a, // LOAD_ATTR 'inputs_count' + 0xb2, // LOAD_FAST 2 + 0xf3, // BINARY_OP 28 __sub__ + 0xb7, // LOAD_FAST 7 + 0x13,0x0a, // LOAD_ATTR 'inputs_count' + 0xb7, // LOAD_FAST 7 + 0x13,0x0b, // LOAD_ATTR 'outputs_count' + 0xf2, // BINARY_OP 27 __add__ + 0xf4, // BINARY_OP 29 __mul__ + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x05, // STORE_ATTR 'steps' + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x13,0x0a, // LOAD_ATTR 'inputs_count' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0xb8, // LOAD_FAST 8 + 0x5f, // GET_ITER_STACK + 0x4b,0x1c, // FOR_ITER 28 + 0xc9, // STORE_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x05, // LOAD_ATTR 'steps' + 0xb9, // LOAD_FAST 9 + 0x13,0x11, // LOAD_ATTR 'tx' + 0x13,0x0a, // LOAD_ATTR 'inputs_count' + 0xb9, // LOAD_FAST 9 + 0x13,0x11, // LOAD_ATTR 'tx' + 0x13,0x0a, // LOAD_ATTR 'inputs_count' + 0xb9, // LOAD_FAST 9 + 0x13,0x11, // LOAD_ATTR 'tx' + 0x13,0x0b, // LOAD_ATTR 'outputs_count' + 0xf2, // BINARY_OP 27 __add__ + 0xf4, // BINARY_OP 29 __mul__ + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x05, // STORE_ATTR 'steps' + 0x42,0x22, // JUMP -30 + 0xb5, // LOAD_FAST 5 + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x05, // LOAD_ATTR 'steps' + 0xb7, // LOAD_FAST 7 + 0x13,0x0a, // LOAD_ATTR 'inputs_count' + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x05, // STORE_ATTR 'steps' + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x05, // LOAD_ATTR 'steps' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0xf3, // BINARY_OP 28 __sub__ + 0xf3, // BINARY_OP 28 __sub__ + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x05, // STORE_ATTR 'steps' + 0x42,0x4d, // JUMP 13 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x05, // LOAD_ATTR 'steps' + 0xb7, // LOAD_FAST 7 + 0x13,0x0a, // LOAD_ATTR 'inputs_count' + 0xb1, // LOAD_FAST 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x05, // STORE_ATTR 'steps' + 0xb5, // LOAD_FAST 5 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb6, // LOAD_FAST 6 + 0x13,0x13, // LOAD_ATTR 'decred' + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x05, // LOAD_ATTR 'steps' + 0xb7, // LOAD_FAST 7 + 0x13,0x0b, // LOAD_ATTR 'outputs_count' + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x05, // STORE_ATTR 'steps' + 0xb0, // LOAD_FAST 0 + 0x14,0x0c, // LOAD_METHOD 'report_init' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x0d, // LOAD_METHOD 'report' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_progress_Progress_init_signing = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 9, + .fun_data = fun_data_apps_bitcoin_sign_tx_progress_Progress_init_signing, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 261, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 9, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_bitcoin_sign_tx_progress_Progress_init_signing + 14, + .line_info_top = fun_data_apps_bitcoin_sign_tx_progress_Progress_init_signing + 42, + .opcodes = fun_data_apps_bitcoin_sign_tx_progress_Progress_init_signing + 42, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_progress_Progress +// frozen bytecode for file apps/bitcoin/sign_tx/progress.py, scope apps_bitcoin_sign_tx_progress_Progress_init_prev_tx +static const byte fun_data_apps_bitcoin_sign_tx_progress_Progress_init_prev_tx[19] = { + 0x2b,0x0c, // prelude + 0x14,0x24,0x2c,0x2d, // names: init_prev_tx, self, inputs, outputs + 0x80,0x67, // code info + 0x12,0x20, // LOAD_GLOBAL '_PREV_TX_MULTIPLIER' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xf2, // BINARY_OP 27 __add__ + 0xf7, // BINARY_OP 32 __truediv__ + 0xb0, // LOAD_FAST 0 + 0x18,0x08, // STORE_ATTR 'prev_tx_step' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_progress_Progress_init_prev_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_progress_Progress_init_prev_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_apps_bitcoin_sign_tx_progress_Progress_init_prev_tx + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_progress_Progress_init_prev_tx + 8, + .opcodes = fun_data_apps_bitcoin_sign_tx_progress_Progress_init_prev_tx + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_progress_Progress +// frozen bytecode for file apps/bitcoin/sign_tx/progress.py, scope apps_bitcoin_sign_tx_progress_Progress_advance +static const byte fun_data_apps_bitcoin_sign_tx_progress_Progress_advance[24] = { + 0x19,0x0a, // prelude + 0x15,0x24, // names: advance, self + 0x80,0x6a,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x04, // LOAD_ATTR 'progress' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x04, // STORE_ATTR 'progress' + 0xb0, // LOAD_FAST 0 + 0x14,0x0d, // LOAD_METHOD 'report' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_progress_Progress_advance = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_progress_Progress_advance, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_bitcoin_sign_tx_progress_Progress_advance + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_progress_Progress_advance + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_progress_Progress_advance + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_progress_Progress +// frozen bytecode for file apps/bitcoin/sign_tx/progress.py, scope apps_bitcoin_sign_tx_progress_Progress_advance_prev_tx +static const byte fun_data_apps_bitcoin_sign_tx_progress_Progress_advance_prev_tx[26] = { + 0x19,0x0a, // prelude + 0x16,0x24, // names: advance_prev_tx, self + 0x80,0x6e,0x2b, // code info + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x04, // LOAD_ATTR 'progress' + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'prev_tx_step' + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x04, // STORE_ATTR 'progress' + 0xb0, // LOAD_FAST 0 + 0x14,0x0d, // LOAD_METHOD 'report' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_progress_Progress_advance_prev_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_progress_Progress_advance_prev_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_apps_bitcoin_sign_tx_progress_Progress_advance_prev_tx + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_progress_Progress_advance_prev_tx + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_progress_Progress_advance_prev_tx + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_progress_Progress +// frozen bytecode for file apps/bitcoin/sign_tx/progress.py, scope apps_bitcoin_sign_tx_progress_Progress_report_init +static const byte fun_data_apps_bitcoin_sign_tx_progress_Progress_report_init[75] = { + 0x41,0x12, // prelude + 0x0c,0x24, // names: report_init, self + 0x80,0x72,0x2b,0x50,0x2a,0x26,0x2c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING 'workflow' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME 'trezor' + 0x1c,0x17, // IMPORT_FROM 'workflow' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x19, // LOAD_CONST_STRING 'bitcoin_progress' + 0x10,0x1a, // LOAD_CONST_STRING 'coinjoin_progress' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x1b, // IMPORT_NAME 'trezor.ui.layouts.progress' + 0x1c,0x19, // IMPORT_FROM 'bitcoin_progress' + 0xc2, // STORE_FAST 2 + 0x1c,0x1a, // IMPORT_FROM 'coinjoin_progress' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x07, // LOAD_ATTR 'is_coinjoin' + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0xb3, // LOAD_FAST 3 + 0x42,0x41, // JUMP 1 + 0xb2, // LOAD_FAST 2 + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x14,0x1c, // LOAD_METHOD 'close_others' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x06, // LOAD_ATTR 'signing' + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x42,0x42, // JUMP 2 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x1d, // STORE_ATTR 'progress_layout' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_progress_Progress_report_init = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_progress_Progress_report_init, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 75, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_bitcoin_sign_tx_progress_Progress_report_init + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_progress_Progress_report_init + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_progress_Progress_report_init + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_progress_Progress +// frozen bytecode for file apps/bitcoin/sign_tx/progress.py, scope apps_bitcoin_sign_tx_progress_Progress_report +static const byte fun_data_apps_bitcoin_sign_tx_progress_Progress_report[55] = { + 0x29,0x10, // prelude + 0x0d,0x24, // names: report, self + 0x80,0x7b,0x4b,0x25,0x22,0x30, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1e, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME 'trezor' + 0x1c,0x1e, // IMPORT_FROM 'utils' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x1f, // LOAD_ATTR 'DISABLE_ANIMATION' + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x2e, // LOAD_GLOBAL 'int' + 0x22,0x87,0x68, // LOAD_CONST_SMALL_INT 1000 + 0xb0, // LOAD_FAST 0 + 0x13,0x04, // LOAD_ATTR 'progress' + 0xf4, // BINARY_OP 29 __mul__ + 0xb0, // LOAD_FAST 0 + 0x13,0x05, // LOAD_ATTR 'steps' + 0xf7, // BINARY_OP 32 __truediv__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'progress_layout' + 0x14,0x0d, // LOAD_METHOD 'report' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_progress_Progress_report = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_progress_Progress_report, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_bitcoin_sign_tx_progress_Progress_report + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_progress_Progress_report + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_progress_Progress_report + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_progress_Progress[] = { + &raw_code_apps_bitcoin_sign_tx_progress_Progress___init__, + &raw_code_apps_bitcoin_sign_tx_progress_Progress_init, + &raw_code_apps_bitcoin_sign_tx_progress_Progress_init_signing, + &raw_code_apps_bitcoin_sign_tx_progress_Progress_init_prev_tx, + &raw_code_apps_bitcoin_sign_tx_progress_Progress_advance, + &raw_code_apps_bitcoin_sign_tx_progress_Progress_advance_prev_tx, + &raw_code_apps_bitcoin_sign_tx_progress_Progress_report_init, + &raw_code_apps_bitcoin_sign_tx_progress_Progress_report, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_progress_Progress = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_progress_Progress, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 66, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_progress_Progress, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 8, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_bitcoin_sign_tx_progress_Progress + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_progress_Progress + 20, + .opcodes = fun_data_apps_bitcoin_sign_tx_progress_Progress + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_progress__lt_module_gt_[] = { + &raw_code_apps_bitcoin_sign_tx_progress_Progress, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_progress__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_progress__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_progress__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_sign_tx_progress__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_progress__lt_module_gt_ + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_progress__lt_module_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_sign_tx_progress[47] = { + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_progress_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_Progress, + MP_QSTR___init__, + MP_QSTR_progress, + MP_QSTR_steps, + MP_QSTR_signing, + MP_QSTR_is_coinjoin, + MP_QSTR_prev_tx_step, + MP_QSTR_init, + MP_QSTR_inputs_count, + MP_QSTR_outputs_count, + MP_QSTR_report_init, + MP_QSTR_report, + MP_QSTR_init_signing, + MP_QSTR_overwintered, + MP_QSTR_version, + MP_QSTR_tx, + MP_QSTR_force_bip143, + MP_QSTR_decred, + MP_QSTR_init_prev_tx, + MP_QSTR_advance, + MP_QSTR_advance_prev_tx, + MP_QSTR_workflow, + MP_QSTR_trezor, + MP_QSTR_bitcoin_progress, + MP_QSTR_coinjoin_progress, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_progress, + MP_QSTR_close_others, + MP_QSTR_progress_layout, + MP_QSTR_utils, + MP_QSTR_DISABLE_ANIMATION, + MP_QSTR__PREV_TX_MULTIPLIER, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_self, + MP_QSTR_external, + MP_QSTR_segwit, + MP_QSTR_presigned, + MP_QSTR_taproot_only, + MP_QSTR_serialize, + MP_QSTR_coin, + MP_QSTR_orig_txs, + MP_QSTR_inputs, + MP_QSTR_outputs, + MP_QSTR_int, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_sign_tx_progress[2] = { + MP_ROM_QSTR(MP_QSTR_Signing_space_transaction_dot__dot__dot_), + MP_ROM_QSTR(MP_QSTR_Loading_space_transaction_dot__dot__dot_), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_sign_tx_progress = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_sign_tx_progress, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_sign_tx_progress, + }, + .rc = &raw_code_apps_bitcoin_sign_tx_progress__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_sign_tx_sig_hasher +// - original source file: build/firmware/src/apps/bitcoin/sign_tx/sig_hasher.mpy +// - frozen file name: apps/bitcoin/sign_tx/sig_hasher.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/sign_tx/sig_hasher.py, scope apps_bitcoin_sign_tx_sig_hasher__lt_module_gt_ +static const byte fun_data_apps_bitcoin_sign_tx_sig_hasher__lt_module_gt_[56] = { + 0x28,0x0e, // prelude + 0x01, // names: + 0x40,0x1f,0x85,0x08,0x80,0x2c, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x02, // LOAD_CONST_STRING 'TX_HASH_SIZE' + 0x10,0x03, // LOAD_CONST_STRING 'write_bytes_fixed' + 0x10,0x04, // LOAD_CONST_STRING 'write_bytes_reversed' + 0x10,0x05, // LOAD_CONST_STRING 'write_uint32' + 0x10,0x06, // LOAD_CONST_STRING 'write_uint64' + 0x2a,0x05, // BUILD_TUPLE 5 + 0x1b,0x07, // IMPORT_NAME 'writers' + 0x1c,0x02, // IMPORT_FROM 'TX_HASH_SIZE' + 0x16,0x02, // STORE_NAME 'TX_HASH_SIZE' + 0x1c,0x03, // IMPORT_FROM 'write_bytes_fixed' + 0x16,0x03, // STORE_NAME 'write_bytes_fixed' + 0x1c,0x04, // IMPORT_FROM 'write_bytes_reversed' + 0x16,0x04, // STORE_NAME 'write_bytes_reversed' + 0x1c,0x05, // IMPORT_FROM 'write_uint32' + 0x16,0x05, // STORE_NAME 'write_uint32' + 0x1c,0x06, // IMPORT_FROM 'write_uint64' + 0x16,0x06, // STORE_NAME 'write_uint64' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x08, // LOAD_CONST_STRING 'BitcoinSigHasher' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x08, // STORE_NAME 'BitcoinSigHasher' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_sig_hasher__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/sig_hasher.py, scope apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher +static const byte fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher[49] = { + 0x00,0x1a, // prelude + 0x08, // names: BitcoinSigHasher + 0x88,0x37,0x84,0x0a,0x84,0x09,0x64,0x40,0x84,0x37,0x84,0x2e, // code info + 0x11,0x2a, // LOAD_NAME '__name__' + 0x16,0x2b, // STORE_NAME '__module__' + 0x10,0x08, // LOAD_CONST_STRING 'BitcoinSigHasher' + 0x16,0x2c, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x09, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x13, // STORE_NAME 'add_input' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x19, // STORE_NAME 'add_output' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x1b, // STORE_NAME 'hash143' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x24, // STORE_NAME 'hash341' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x29, // STORE_NAME 'hash_zip244' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher +// frozen bytecode for file apps/bitcoin/sign_tx/sig_hasher.py, scope apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher___init__ +static const byte fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher___init__[81] = { + 0x21,0x14, // prelude + 0x09,0x2d, // names: __init__, self + 0x80,0x38,0x2b,0x4b,0x29,0x29,0x29,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x0a, // IMPORT_FROM 'sha256' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'HashWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'trezor.utils' + 0x1c,0x0c, // IMPORT_FROM 'HashWriter' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x0e, // STORE_ATTR 'h_prevouts' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x0f, // STORE_ATTR 'h_amounts' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x10, // STORE_ATTR 'h_scriptpubkeys' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x11, // STORE_ATTR 'h_sequences' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x12, // STORE_ATTR 'h_outputs' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 81, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher___init__ + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher___init__ + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher___init__ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher +// frozen bytecode for file apps/bitcoin/sign_tx/sig_hasher.py, scope apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_add_input +static const byte fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_add_input[80] = { + 0x3b,0x16, // prelude + 0x13,0x2d,0x2e,0x2f, // names: add_input, self, txi, script_pubkey + 0x80,0x42,0x4b,0x2d,0x2b,0x2b,0x28, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x14, // LOAD_CONST_STRING 'write_bytes_prefixed' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'writers' + 0x1c,0x14, // IMPORT_FROM 'write_bytes_prefixed' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'write_bytes_reversed' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'h_prevouts' + 0xb1, // LOAD_FAST 1 + 0x13,0x15, // LOAD_ATTR 'prev_hash' + 0x12,0x02, // LOAD_GLOBAL 'TX_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'h_prevouts' + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'prev_index' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'write_uint64' + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'h_amounts' + 0xb1, // LOAD_FAST 1 + 0x13,0x17, // LOAD_ATTR 'amount' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'h_scriptpubkeys' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'h_sequences' + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'sequence' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_add_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_add_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 80, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_add_input + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_add_input + 13, + .opcodes = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_add_input + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher +// frozen bytecode for file apps/bitcoin/sign_tx/sig_hasher.py, scope apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_add_output +static const byte fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_add_output[31] = { + 0x3b,0x0e, // prelude + 0x19,0x2d,0x30,0x2f, // names: add_output, self, txo, script_pubkey + 0x80,0x4b,0x4b, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x1a, // LOAD_CONST_STRING 'write_tx_output' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'writers' + 0x1c,0x1a, // IMPORT_FROM 'write_tx_output' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'h_outputs' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_add_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_add_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_add_output + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_add_output + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_add_output + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher +// frozen bytecode for file apps/bitcoin/sign_tx/sig_hasher.py, scope apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash143 +static const byte fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash143[235] = { + 0xab,0x14,0x3c, // prelude + 0x1b,0x2d,0x2e,0x31,0x32,0x33,0x34,0x35, // names: hash143, self, txi, public_keys, threshold, tx, coin, hash_type + 0x80,0x58,0x2b,0x4b,0x2b,0x4b,0x67,0x69,0x2d,0x69,0x2d,0x69,0x2b,0x69,0x6b,0x40,0x69,0x69,0x2d,0x69,0x69,0x47, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x0a, // IMPORT_FROM 'sha256' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'HashWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'trezor.utils' + 0x1c,0x0c, // IMPORT_FROM 'HashWriter' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x1c, // LOAD_CONST_STRING 'scripts' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1d, // IMPORT_NAME '' + 0x1c,0x1c, // IMPORT_FROM 'scripts' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x1e, // LOAD_CONST_STRING 'get_tx_hash' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'writers' + 0x1c,0x1e, // IMPORT_FROM 'get_tx_hash' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0xb7, // LOAD_FAST 7 + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcb, // STORE_FAST 11 + 0x12,0x05, // LOAD_GLOBAL 'write_uint32' + 0xbb, // LOAD_FAST 11 + 0xb4, // LOAD_FAST 4 + 0x13,0x1f, // LOAD_ATTR 'version' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xba, // LOAD_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'h_prevouts' + 0x10,0x20, // LOAD_CONST_STRING 'double' + 0xb5, // LOAD_FAST 5 + 0x13,0x21, // LOAD_ATTR 'sign_hash_double' + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0xcc, // STORE_FAST 12 + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_fixed' + 0xbb, // LOAD_FAST 11 + 0xbc, // LOAD_FAST 12 + 0x12,0x02, // LOAD_GLOBAL 'TX_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xba, // LOAD_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'h_sequences' + 0x10,0x20, // LOAD_CONST_STRING 'double' + 0xb5, // LOAD_FAST 5 + 0x13,0x21, // LOAD_ATTR 'sign_hash_double' + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0xcd, // STORE_FAST 13 + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_fixed' + 0xbb, // LOAD_FAST 11 + 0xbd, // LOAD_FAST 13 + 0x12,0x02, // LOAD_GLOBAL 'TX_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'write_bytes_reversed' + 0xbb, // LOAD_FAST 11 + 0xb1, // LOAD_FAST 1 + 0x13,0x15, // LOAD_ATTR 'prev_hash' + 0x12,0x02, // LOAD_GLOBAL 'TX_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'write_uint32' + 0xbb, // LOAD_FAST 11 + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'prev_index' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x14,0x22, // LOAD_METHOD 'write_bip143_script_code_prefixed' + 0xbb, // LOAD_FAST 11 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0x36,0x05, // CALL_METHOD 5 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'write_uint64' + 0xbb, // LOAD_FAST 11 + 0xb1, // LOAD_FAST 1 + 0x13,0x17, // LOAD_ATTR 'amount' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'write_uint32' + 0xbb, // LOAD_FAST 11 + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'sequence' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xba, // LOAD_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'h_outputs' + 0x10,0x20, // LOAD_CONST_STRING 'double' + 0xb5, // LOAD_FAST 5 + 0x13,0x21, // LOAD_ATTR 'sign_hash_double' + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0xce, // STORE_FAST 14 + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_fixed' + 0xbb, // LOAD_FAST 11 + 0xbe, // LOAD_FAST 14 + 0x12,0x02, // LOAD_GLOBAL 'TX_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'write_uint32' + 0xbb, // LOAD_FAST 11 + 0xb4, // LOAD_FAST 4 + 0x13,0x23, // LOAD_ATTR 'lock_time' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'write_uint32' + 0xbb, // LOAD_FAST 11 + 0xb6, // LOAD_FAST 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xba, // LOAD_FAST 10 + 0xbb, // LOAD_FAST 11 + 0x10,0x20, // LOAD_CONST_STRING 'double' + 0xb5, // LOAD_FAST 5 + 0x13,0x21, // LOAD_ATTR 'sign_hash_double' + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash143 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 7, + .fun_data = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash143, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 235, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 22, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 27, + .line_info = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash143 + 11, + .line_info_top = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash143 + 33, + .opcodes = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash143 + 33, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher +// frozen bytecode for file apps/bitcoin/sign_tx/sig_hasher.py, scope apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash341 +static const byte fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash341[180] = { + 0xd0,0x04,0x2a, // prelude + 0x24,0x2d,0x36,0x33,0x37, // names: hash341, self, i, tx, sighash_type + 0x80,0x8c,0x2b,0x4b,0x66,0x66,0x6a,0x69,0x69,0x6f,0x6f,0x6f,0x6f,0x6f,0x66,0x47, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x25, // LOAD_CONST_STRING 'tagged_hashwriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x26, // IMPORT_NAME 'common' + 0x1c,0x25, // IMPORT_FROM 'tagged_hashwriter' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x27, // LOAD_CONST_STRING 'write_uint8' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'writers' + 0x1c,0x27, // IMPORT_FROM 'write_uint8' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xef, // BINARY_OP 24 __and__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'write_uint32' + 0xb6, // LOAD_FAST 6 + 0xb2, // LOAD_FAST 2 + 0x13,0x1f, // LOAD_ATTR 'version' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'write_uint32' + 0xb6, // LOAD_FAST 6 + 0xb2, // LOAD_FAST 2 + 0x13,0x23, // LOAD_ATTR 'lock_time' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'h_prevouts' + 0x14,0x28, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x12,0x02, // LOAD_GLOBAL 'TX_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'h_amounts' + 0x14,0x28, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x12,0x02, // LOAD_GLOBAL 'TX_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'h_scriptpubkeys' + 0x14,0x28, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x12,0x02, // LOAD_GLOBAL 'TX_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'h_sequences' + 0x14,0x28, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x12,0x02, // LOAD_GLOBAL 'TX_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'h_outputs' + 0x14,0x28, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x12,0x02, // LOAD_GLOBAL 'TX_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'write_uint32' + 0xb6, // LOAD_FAST 6 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x28, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash341 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash341, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 180, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash341 + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash341 + 24, + .opcodes = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash341 + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher +// frozen bytecode for file apps/bitcoin/sign_tx/sig_hasher.py, scope apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash_zip244 +static const byte fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash_zip244[13] = { + 0x1b,0x0c, // prelude + 0x29,0x2d,0x2e,0x2f, // names: hash_zip244, self, txi, script_pubkey + 0x80,0xb9, // code info + 0x12,0x38, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash_zip244 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash_zip244, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash_zip244 + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash_zip244 + 8, + .opcodes = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash_zip244 + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher[] = { + &raw_code_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher___init__, + &raw_code_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_add_input, + &raw_code_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_add_output, + &raw_code_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash143, + &raw_code_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash341, + &raw_code_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher_hash_zip244, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher + 15, + .opcodes = fun_data_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_sig_hasher__lt_module_gt_[] = { + &raw_code_apps_bitcoin_sign_tx_sig_hasher_BitcoinSigHasher, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_sig_hasher__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_sig_hasher__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_sig_hasher__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_sign_tx_sig_hasher__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_sig_hasher__lt_module_gt_ + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_sig_hasher__lt_module_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_sign_tx_sig_hasher[57] = { + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_sig_hasher_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_TX_HASH_SIZE, + MP_QSTR_write_bytes_fixed, + MP_QSTR_write_bytes_reversed, + MP_QSTR_write_uint32, + MP_QSTR_write_uint64, + MP_QSTR_writers, + MP_QSTR_BitcoinSigHasher, + MP_QSTR___init__, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_HashWriter, + MP_QSTR_trezor_dot_utils, + MP_QSTR_h_prevouts, + MP_QSTR_h_amounts, + MP_QSTR_h_scriptpubkeys, + MP_QSTR_h_sequences, + MP_QSTR_h_outputs, + MP_QSTR_add_input, + MP_QSTR_write_bytes_prefixed, + MP_QSTR_prev_hash, + MP_QSTR_prev_index, + MP_QSTR_amount, + MP_QSTR_sequence, + MP_QSTR_add_output, + MP_QSTR_write_tx_output, + MP_QSTR_hash143, + MP_QSTR_scripts, + MP_QSTR_, + MP_QSTR_get_tx_hash, + MP_QSTR_version, + MP_QSTR_double, + MP_QSTR_sign_hash_double, + MP_QSTR_write_bip143_script_code_prefixed, + MP_QSTR_lock_time, + MP_QSTR_hash341, + MP_QSTR_tagged_hashwriter, + MP_QSTR_common, + MP_QSTR_write_uint8, + MP_QSTR_get_digest, + MP_QSTR_hash_zip244, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_self, + MP_QSTR_txi, + MP_QSTR_script_pubkey, + MP_QSTR_txo, + MP_QSTR_public_keys, + MP_QSTR_threshold, + MP_QSTR_tx, + MP_QSTR_coin, + MP_QSTR_hash_type, + MP_QSTR_i, + MP_QSTR_sighash_type, + MP_QSTR_NotImplementedError, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_sig_hasher_0 = {{&mp_type_bytes}, 58895, 10, (const byte*)"\x54\x61\x70\x53\x69\x67\x68\x61\x73\x68"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_sign_tx_sig_hasher[1] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_sig_hasher_0), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_sign_tx_sig_hasher = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_sign_tx_sig_hasher, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_sign_tx_sig_hasher, + }, + .rc = &raw_code_apps_bitcoin_sign_tx_sig_hasher__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_sign_tx_tx_info +// - original source file: build/firmware/src/apps/bitcoin/sign_tx/tx_info.mpy +// - frozen file name: apps/bitcoin/sign_tx/tx_info.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/sign_tx/tx_info.py, scope apps_bitcoin_sign_tx_tx_info__lt_module_gt_ +static const byte fun_data_apps_bitcoin_sign_tx_tx_info__lt_module_gt_[74] = { + 0x18,0x12, // prelude + 0x01, // names: + 0x6c,0x52,0x80,0x30,0x89,0x59,0x8b,0x07, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x04, // LOAD_CONST_STRING 'common' + 0x10,0x05, // LOAD_CONST_STRING 'writers' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x06, // IMPORT_NAME '' + 0x1c,0x04, // IMPORT_FROM 'common' + 0x16,0x04, // STORE_NAME 'common' + 0x1c,0x05, // IMPORT_FROM 'writers' + 0x16,0x05, // STORE_NAME 'writers' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x07, // LOAD_CONST_STRING 'TxInfoBase' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x07, // STORE_NAME 'TxInfoBase' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x08, // LOAD_CONST_STRING 'TxInfo' + 0x11,0x07, // LOAD_NAME 'TxInfoBase' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x08, // STORE_NAME 'TxInfo' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x02, // MAKE_FUNCTION 2 + 0x10,0x09, // LOAD_CONST_STRING 'OriginalTxInfo' + 0x11,0x07, // LOAD_NAME 'TxInfoBase' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x09, // STORE_NAME 'OriginalTxInfo' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_tx_info__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/tx_info.py, scope apps_bitcoin_sign_tx_tx_info_TxInfoBase +static const byte fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase[59] = { + 0x00,0x1e, // prelude + 0x07, // names: TxInfoBase + 0x88,0x36,0x84,0x23,0x84,0x0b,0x64,0x20,0x64,0x40,0x84,0x16,0x64,0x64, // code info + 0x11,0x44, // LOAD_NAME '__name__' + 0x16,0x45, // STORE_NAME '__module__' + 0x10,0x07, // LOAD_CONST_STRING 'TxInfoBase' + 0x16,0x46, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0a, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x1b, // STORE_NAME 'add_input' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x1f, // STORE_NAME 'add_output' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x21, // STORE_NAME 'check_input' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x22, // STORE_NAME 'output_is_change' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x29, // STORE_NAME 'lock_time_disabled' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x2a, // STORE_NAME 'rbf_disabled' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x2b, // STORE_NAME 'get_tx_check_digest' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_tx_info_TxInfoBase +// frozen bytecode for file apps/bitcoin/sign_tx/tx_info.py, scope apps_bitcoin_sign_tx_tx_info_TxInfoBase___init__ +static const byte fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase___init__[111] = { + 0x5b,0x26, // prelude + 0x0a,0x47,0x2e,0x2d, // names: __init__, self, signer, tx + 0x80,0x37,0x2b,0x4b,0x75,0x60,0x20,0x66,0x66,0x66,0x40,0x69,0x40,0x64,0x69, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x0b, // IMPORT_FROM 'sha256' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'HashWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'trezor.utils' + 0x1c,0x0d, // IMPORT_FROM 'HashWriter' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0f, // LOAD_CONST_STRING 'MultisigFingerprintChecker' + 0x10,0x10, // LOAD_CONST_STRING 'ScriptTypeChecker' + 0x10,0x11, // LOAD_CONST_STRING 'WalletPathChecker' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x12, // IMPORT_NAME 'matchcheck' + 0x1c,0x0f, // IMPORT_FROM 'MultisigFingerprintChecker' + 0xc5, // STORE_FAST 5 + 0x1c,0x10, // IMPORT_FROM 'ScriptTypeChecker' + 0xc6, // STORE_FAST 6 + 0x1c,0x11, // IMPORT_FROM 'WalletPathChecker' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x13, // STORE_ATTR 'multisig_fingerprint' + 0xb7, // LOAD_FAST 7 + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x14, // STORE_ATTR 'wallet_path' + 0xb6, // LOAD_FAST 6 + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x15, // STORE_ATTR 'script_type' + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x16, // STORE_ATTR 'h_tx_check' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x17, // STORE_ATTR 'h_inputs_check' + 0xb1, // LOAD_FAST 1 + 0x14,0x18, // LOAD_METHOD 'create_sig_hasher' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x19, // STORE_ATTR 'sig_hasher' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x1a, // STORE_ATTR 'min_sequence' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_info_TxInfoBase___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 111, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase___init__ + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase___init__ + 21, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase___init__ + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_info_TxInfoBase +// frozen bytecode for file apps/bitcoin/sign_tx/tx_info.py, scope apps_bitcoin_sign_tx_tx_info_TxInfoBase_add_input +static const byte fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_add_input[86] = { + 0x33,0x18, // prelude + 0x1b,0x47,0x48,0x49, // names: add_input, self, txi, script_pubkey + 0x80,0x5b,0x2a,0x2b,0x4d,0x29,0x29,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'sig_hasher' + 0x14,0x1b, // LOAD_METHOD 'add_input' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'writers' + 0x14,0x1c, // LOAD_METHOD 'write_tx_input_check' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_tx_check' + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x4a, // LOAD_GLOBAL 'min' + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'min_sequence' + 0xb1, // LOAD_FAST 1 + 0x13,0x1d, // LOAD_ATTR 'sequence' + 0x34,0x02, // CALL_FUNCTION 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x1a, // STORE_ATTR 'min_sequence' + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x14,0x1e, // LOAD_METHOD 'input_is_external' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x5b, // POP_JUMP_IF_TRUE 27 + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'wallet_path' + 0x14,0x1b, // LOAD_METHOD 'add_input' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'script_type' + 0x14,0x1b, // LOAD_METHOD 'add_input' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'multisig_fingerprint' + 0x14,0x1b, // LOAD_METHOD 'add_input' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_info_TxInfoBase_add_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_add_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 86, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 27, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_add_input + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_add_input + 14, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_add_input + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_info_TxInfoBase +// frozen bytecode for file apps/bitcoin/sign_tx/tx_info.py, scope apps_bitcoin_sign_tx_tx_info_TxInfoBase_add_output +static const byte fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_add_output[33] = { + 0x3b,0x0e, // prelude + 0x1f,0x47,0x4b,0x49, // names: add_output, self, txo, script_pubkey + 0x80,0x65,0x2a, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'sig_hasher' + 0x14,0x1f, // LOAD_METHOD 'add_output' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'writers' + 0x14,0x20, // LOAD_METHOD 'write_tx_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_tx_check' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_info_TxInfoBase_add_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_add_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_add_output + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_add_output + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_add_output + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_info_TxInfoBase +// frozen bytecode for file apps/bitcoin/sign_tx/tx_info.py, scope apps_bitcoin_sign_tx_tx_info_TxInfoBase_check_input +static const byte fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_check_input[38] = { + 0x22,0x0e, // prelude + 0x21,0x47,0x48, // names: check_input, self, txi + 0x80,0x69,0x29,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'wallet_path' + 0x14,0x21, // LOAD_METHOD 'check_input' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'script_type' + 0x14,0x21, // LOAD_METHOD 'check_input' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'multisig_fingerprint' + 0x14,0x21, // LOAD_METHOD 'check_input' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_info_TxInfoBase_check_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_check_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_check_input + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_check_input + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_check_input + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_info_TxInfoBase +// frozen bytecode for file apps/bitcoin/sign_tx/tx_info.py, scope apps_bitcoin_sign_tx_tx_info_TxInfoBase_output_is_change +static const byte fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_output_is_change[109] = { + 0x22,0x20, // prelude + 0x22,0x47,0x4b, // names: output_is_change, self, txo + 0x80,0x6e,0x2b,0x82,0x08,0x2f,0x42,0x20,0x2a,0x2a,0x2e,0x29,0x2c, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x15, // LOAD_ATTR 'script_type' + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x13,0x23, // LOAD_ATTR 'CHANGE_OUTPUT_SCRIPT_TYPES' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x24, // LOAD_ATTR 'multisig' + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'multisig_fingerprint' + 0x14,0x25, // LOAD_METHOD 'output_matches' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'wallet_path' + 0x14,0x25, // LOAD_METHOD 'output_matches' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x46,0x32, // JUMP_IF_FALSE_OR_POP 50 + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'script_type' + 0x14,0x25, // LOAD_METHOD 'output_matches' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x46,0x28, // JUMP_IF_FALSE_OR_POP 40 + 0x12,0x4c, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x26, // LOAD_ATTR 'address_n' + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x04, // LOAD_GLOBAL 'common' + 0x13,0x27, // LOAD_ATTR 'BIP32_WALLET_DEPTH' + 0xdb, // BINARY_OP 4 __ge__ + 0x46,0x1a, // JUMP_IF_FALSE_OR_POP 26 + 0xb1, // LOAD_FAST 1 + 0x13,0x26, // LOAD_ATTR 'address_n' + 0x7e, // LOAD_CONST_SMALL_INT -2 + 0x55, // LOAD_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xda, // BINARY_OP 3 __le__ + 0x46,0x11, // JUMP_IF_FALSE_OR_POP 17 + 0xb1, // LOAD_FAST 1 + 0x13,0x26, // LOAD_ATTR 'address_n' + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x55, // LOAD_SUBSCR + 0x22,0xbd,0x84,0x40, // LOAD_CONST_SMALL_INT 1000000 + 0xda, // BINARY_OP 3 __le__ + 0x46,0x05, // JUMP_IF_FALSE_OR_POP 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x28, // LOAD_ATTR 'amount' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_info_TxInfoBase_output_is_change = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_output_is_change, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 109, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_output_is_change + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_output_is_change + 18, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_output_is_change + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_info_TxInfoBase +// frozen bytecode for file apps/bitcoin/sign_tx/tx_info.py, scope apps_bitcoin_sign_tx_tx_info_TxInfoBase_lock_time_disabled +static const byte fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_lock_time_disabled[13] = { + 0x11,0x08, // prelude + 0x29,0x47, // names: lock_time_disabled, self + 0x80,0x84, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'min_sequence' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_info_TxInfoBase_lock_time_disabled = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_lock_time_disabled, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_lock_time_disabled + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_lock_time_disabled + 6, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_lock_time_disabled + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_info_TxInfoBase +// frozen bytecode for file apps/bitcoin/sign_tx/tx_info.py, scope apps_bitcoin_sign_tx_tx_info_TxInfoBase_rbf_disabled +static const byte fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_rbf_disabled[13] = { + 0x11,0x08, // prelude + 0x2a,0x47, // names: rbf_disabled, self + 0x80,0x87, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'min_sequence' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_info_TxInfoBase_rbf_disabled = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_rbf_disabled, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_rbf_disabled + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_rbf_disabled + 6, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_rbf_disabled + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_info_TxInfoBase +// frozen bytecode for file apps/bitcoin/sign_tx/tx_info.py, scope apps_bitcoin_sign_tx_tx_info_TxInfoBase_get_tx_check_digest +static const byte fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_get_tx_check_digest[14] = { + 0x11,0x08, // prelude + 0x2b,0x47, // names: get_tx_check_digest, self + 0x80,0x8a, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_tx_check' + 0x14,0x2c, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_info_TxInfoBase_get_tx_check_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_get_tx_check_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_get_tx_check_digest + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_get_tx_check_digest + 6, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase_get_tx_check_digest + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_tx_info_TxInfoBase[] = { + &raw_code_apps_bitcoin_sign_tx_tx_info_TxInfoBase___init__, + &raw_code_apps_bitcoin_sign_tx_tx_info_TxInfoBase_add_input, + &raw_code_apps_bitcoin_sign_tx_tx_info_TxInfoBase_add_output, + &raw_code_apps_bitcoin_sign_tx_tx_info_TxInfoBase_check_input, + &raw_code_apps_bitcoin_sign_tx_tx_info_TxInfoBase_output_is_change, + &raw_code_apps_bitcoin_sign_tx_tx_info_TxInfoBase_lock_time_disabled, + &raw_code_apps_bitcoin_sign_tx_tx_info_TxInfoBase_rbf_disabled, + &raw_code_apps_bitcoin_sign_tx_tx_info_TxInfoBase_get_tx_check_digest, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_info_TxInfoBase = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_tx_info_TxInfoBase, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 8, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase + 17, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfoBase + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_info__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/tx_info.py, scope apps_bitcoin_sign_tx_tx_info_TxInfo +static const byte fun_data_apps_bitcoin_sign_tx_tx_info_TxInfo[22] = { + 0x08,0x07, // prelude + 0x08, // names: TxInfo + 0x88,0x8f,0x00, // code info + 0x11,0x44, // LOAD_NAME '__name__' + 0x16,0x45, // STORE_NAME '__module__' + 0x10,0x08, // LOAD_CONST_STRING 'TxInfo' + 0x16,0x46, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x0a, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_tx_info_TxInfo +// frozen bytecode for file apps/bitcoin/sign_tx/tx_info.py, scope apps_bitcoin_sign_tx_tx_info_TxInfo___init__ +static const byte fun_data_apps_bitcoin_sign_tx_tx_info_TxInfo___init__[29] = { + 0xb8,0x04,0x10, // prelude + 0x0a,0x4d,0x47,0x2e,0x2d, // names: __init__, *, self, signer, tx + 0x80,0x90,0x2c, // code info + 0x12,0x4e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x0a, // LOAD_SUPER_METHOD '__init__' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x18,0x2d, // STORE_ATTR 'tx' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_info_TxInfo___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfo___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfo___init__ + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfo___init__ + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfo___init__ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_tx_info_TxInfo[] = { + &raw_code_apps_bitcoin_sign_tx_tx_info_TxInfo___init__, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_info_TxInfo = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfo, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_tx_info_TxInfo, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfo + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfo + 5, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_info_TxInfo + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_info__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/tx_info.py, scope apps_bitcoin_sign_tx_tx_info_OriginalTxInfo +static const byte fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo[44] = { + 0x08,0x13, // prelude + 0x09, // names: OriginalTxInfo + 0x88,0x96,0x86,0x11,0x66,0x20,0x86,0x08,0x00, // code info + 0x11,0x44, // LOAD_NAME '__name__' + 0x16,0x45, // STORE_NAME '__module__' + 0x10,0x09, // LOAD_CONST_STRING 'OriginalTxInfo' + 0x16,0x46, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x0a, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x20,0x01,0x01, // MAKE_CLOSURE 1 + 0x16,0x1b, // STORE_NAME 'add_input' + 0xb0, // LOAD_FAST 0 + 0x20,0x02,0x01, // MAKE_CLOSURE 2 + 0x16,0x1f, // STORE_NAME 'add_output' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x3a, // STORE_NAME 'finalize_tx_hash' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_tx_info_OriginalTxInfo +// frozen bytecode for file apps/bitcoin/sign_tx/tx_info.py, scope apps_bitcoin_sign_tx_tx_info_OriginalTxInfo___init__ +static const byte fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo___init__[84] = { + 0xd1,0x04,0x20, // prelude + 0x0a,0x4d,0x47,0x2e,0x2d,0x2f, // names: __init__, *, self, signer, tx, orig_hash + 0x80,0x97,0x2c,0x24,0x24,0x64,0x60,0x64,0x28,0x2e, // code info + 0x12,0x4e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x0a, // LOAD_SUPER_METHOD '__init__' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x18,0x2d, // STORE_ATTR 'tx' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x18,0x2e, // STORE_ATTR 'signer' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x18,0x2f, // STORE_ATTR 'orig_hash' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x30, // STORE_ATTR 'index' + 0xb2, // LOAD_FAST 2 + 0x14,0x31, // LOAD_METHOD 'create_hash_writer' + 0x36,0x00, // CALL_METHOD 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x32, // STORE_ATTR 'h_tx' + 0xb2, // LOAD_FAST 2 + 0x14,0x33, // LOAD_METHOD 'write_tx_header' + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'h_tx' + 0xb3, // LOAD_FAST 3 + 0x10,0x34, // LOAD_CONST_STRING 'witness_marker' + 0x50, // LOAD_CONST_FALSE + 0x36,0x82,0x02, // CALL_METHOD 258 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'writers' + 0x14,0x35, // LOAD_METHOD 'write_compact_size' + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'h_tx' + 0xb3, // LOAD_FAST 3 + 0x13,0x36, // LOAD_ATTR 'inputs_count' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 84, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo___init__ + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo___init__ + 19, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo___init__ + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_info_OriginalTxInfo +// frozen bytecode for file apps/bitcoin/sign_tx/tx_info.py, scope apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_add_input +static const byte fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_add_input[45] = { + 0xc0,0x04,0x10, // prelude + 0x1b,0x4d,0x47,0x48,0x49, // names: add_input, *, self, txi, script_pubkey + 0x80,0xa8,0x2c, // code info + 0x12,0x4e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x1b, // LOAD_SUPER_METHOD 'add_input' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'writers' + 0x14,0x37, // LOAD_METHOD 'write_tx_input' + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'h_tx' + 0xb2, // LOAD_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x13,0x38, // LOAD_ATTR 'script_sig' + 0x45,0x04, // JUMP_IF_TRUE_OR_POP 4 + 0x12,0x4f, // LOAD_GLOBAL 'bytes' + 0x34,0x00, // CALL_FUNCTION 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_add_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_add_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 27, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_add_input + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_add_input + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_add_input + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_info_OriginalTxInfo +// frozen bytecode for file apps/bitcoin/sign_tx/tx_info.py, scope apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_add_output +static const byte fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_add_output[61] = { + 0xc0,0x04,0x14, // prelude + 0x1f,0x4d,0x47,0x4b,0x49, // names: add_output, *, self, txo, script_pubkey + 0x80,0xac,0x4c,0x27,0x4f, // code info + 0x12,0x4e, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x1f, // LOAD_SUPER_METHOD 'add_output' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x30, // LOAD_ATTR 'index' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x12,0x05, // LOAD_GLOBAL 'writers' + 0x14,0x35, // LOAD_METHOD 'write_compact_size' + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'h_tx' + 0xb1, // LOAD_FAST 1 + 0x13,0x2d, // LOAD_ATTR 'tx' + 0x13,0x39, // LOAD_ATTR 'outputs_count' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'writers' + 0x14,0x20, // LOAD_METHOD 'write_tx_output' + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'h_tx' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_add_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_add_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 61, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_add_output + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_add_output + 13, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_add_output + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_info_OriginalTxInfo +// frozen bytecode for file apps/bitcoin/sign_tx/tx_info.py, scope apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_finalize_tx_hash +static const byte fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_finalize_tx_hash[81] = { + 0xc9,0x40,0x12, // prelude + 0x3a,0x47, // names: finalize_tx_hash, self + 0x80,0xb4,0x4b,0x34,0x27,0x75,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3b, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x3c, // IMPORT_NAME 'trezor' + 0x1c,0x3b, // IMPORT_FROM 'wire' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x2e, // LOAD_ATTR 'signer' + 0x14,0x3d, // LOAD_METHOD 'write_prev_tx_footer' + 0xb0, // LOAD_FAST 0 + 0x13,0x32, // LOAD_ATTR 'h_tx' + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR 'tx' + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'orig_hash' + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'orig_hash' + 0x12,0x05, // LOAD_GLOBAL 'writers' + 0x14,0x3e, // LOAD_METHOD 'get_tx_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x32, // LOAD_ATTR 'h_tx' + 0x10,0x3f, // LOAD_CONST_STRING 'double' + 0xb0, // LOAD_FAST 0 + 0x13,0x2e, // LOAD_ATTR 'signer' + 0x13,0x40, // LOAD_ATTR 'coin' + 0x13,0x41, // LOAD_ATTR 'sign_hash_double' + 0x10,0x42, // LOAD_CONST_STRING 'reverse' + 0x52, // LOAD_CONST_TRUE + 0x36,0x84,0x01, // CALL_METHOD 513 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb1, // LOAD_FAST 1 + 0x14,0x43, // LOAD_METHOD 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_finalize_tx_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_finalize_tx_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 81, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 58, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_finalize_tx_hash + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_finalize_tx_hash + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_finalize_tx_hash + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo[] = { + &raw_code_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo___init__, + &raw_code_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_add_input, + &raw_code_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_add_output, + &raw_code_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo_finalize_tx_hash, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_tx_info__lt_module_gt_[] = { + &raw_code_apps_bitcoin_sign_tx_tx_info_TxInfoBase, + &raw_code_apps_bitcoin_sign_tx_tx_info_TxInfo, + &raw_code_apps_bitcoin_sign_tx_tx_info_OriginalTxInfo, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_info__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_info__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 74, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_tx_info__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_info__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_info__lt_module_gt_ + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_info__lt_module_gt_ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_sign_tx_tx_info[80] = { + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_tx_info_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_common, + MP_QSTR_writers, + MP_QSTR_, + MP_QSTR_TxInfoBase, + MP_QSTR_TxInfo, + MP_QSTR_OriginalTxInfo, + MP_QSTR___init__, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_HashWriter, + MP_QSTR_trezor_dot_utils, + MP_QSTR_MultisigFingerprintChecker, + MP_QSTR_ScriptTypeChecker, + MP_QSTR_WalletPathChecker, + MP_QSTR_matchcheck, + MP_QSTR_multisig_fingerprint, + MP_QSTR_wallet_path, + MP_QSTR_script_type, + MP_QSTR_h_tx_check, + MP_QSTR_h_inputs_check, + MP_QSTR_create_sig_hasher, + MP_QSTR_sig_hasher, + MP_QSTR_min_sequence, + MP_QSTR_add_input, + MP_QSTR_write_tx_input_check, + MP_QSTR_sequence, + MP_QSTR_input_is_external, + MP_QSTR_add_output, + MP_QSTR_write_tx_output, + MP_QSTR_check_input, + MP_QSTR_output_is_change, + MP_QSTR_CHANGE_OUTPUT_SCRIPT_TYPES, + MP_QSTR_multisig, + MP_QSTR_output_matches, + MP_QSTR_address_n, + MP_QSTR_BIP32_WALLET_DEPTH, + MP_QSTR_amount, + MP_QSTR_lock_time_disabled, + MP_QSTR_rbf_disabled, + MP_QSTR_get_tx_check_digest, + MP_QSTR_get_digest, + MP_QSTR_tx, + MP_QSTR_signer, + MP_QSTR_orig_hash, + MP_QSTR_index, + MP_QSTR_create_hash_writer, + MP_QSTR_h_tx, + MP_QSTR_write_tx_header, + MP_QSTR_witness_marker, + MP_QSTR_write_compact_size, + MP_QSTR_inputs_count, + MP_QSTR_write_tx_input, + MP_QSTR_script_sig, + MP_QSTR_outputs_count, + MP_QSTR_finalize_tx_hash, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_write_prev_tx_footer, + MP_QSTR_get_tx_hash, + MP_QSTR_double, + MP_QSTR_coin, + MP_QSTR_sign_hash_double, + MP_QSTR_reverse, + MP_QSTR_ProcessError, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_self, + MP_QSTR_txi, + MP_QSTR_script_pubkey, + MP_QSTR_min, + MP_QSTR_txo, + MP_QSTR_len, + MP_QSTR__star_, + MP_QSTR_super, + MP_QSTR_bytes, +}; + +// constants +static const mp_obj_int_t const_obj_apps_bitcoin_sign_tx_tx_info_0 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xffff,0xffff}}}; +static const mp_obj_int_t const_obj_apps_bitcoin_sign_tx_tx_info_1 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xfffd,0xffff}}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_sign_tx_tx_info[3] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_tx_info_0), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_tx_info_1), + MP_ROM_QSTR(MP_QSTR_Invalid_space_original_space_TXID_dot_), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_sign_tx_tx_info = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_sign_tx_tx_info, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_sign_tx_tx_info, + }, + .rc = &raw_code_apps_bitcoin_sign_tx_tx_info__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_sign_tx_tx_weight +// - original source file: build/firmware/src/apps/bitcoin/sign_tx/tx_weight.mpy +// - frozen file name: apps/bitcoin/sign_tx/tx_weight.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/sign_tx/tx_weight.py, scope apps_bitcoin_sign_tx_tx_weight__lt_module_gt_ +static const byte fun_data_apps_bitcoin_sign_tx_tx_weight__lt_module_gt_[70] = { + 0x10,0x12, // prelude + 0x01, // names: + 0x80,0x07,0x6c,0x2c,0x4c,0x4c,0x80,0x1c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor' + 0x1c,0x04, // IMPORT_FROM 'wire' + 0x16,0x04, // STORE_NAME 'wire' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'InputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.enums' + 0x1c,0x06, // IMPORT_FROM 'InputScriptType' + 0x16,0x06, // STORE_NAME 'InputScriptType' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x08, // LOAD_CONST_STRING 'common' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME '' + 0x1c,0x08, // IMPORT_FROM 'common' + 0x16,0x08, // STORE_NAME 'common' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x0a, // LOAD_CONST_STRING 'TxWeightCalculator' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x0a, // STORE_NAME 'TxWeightCalculator' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_tx_weight__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/tx_weight.py, scope apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator +static const byte fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator[79] = { + 0x08,0x26, // prelude + 0x0a, // names: TxWeightCalculator + 0x88,0x2c,0x64,0x60,0x88,0x2c,0x84,0x2c,0x64,0x40,0x84,0x09,0x84,0x09,0x64,0x60,0x88,0x08, // code info + 0x11,0x2d, // LOAD_NAME '__name__' + 0x16,0x2e, // STORE_NAME '__module__' + 0x10,0x0a, // LOAD_CONST_STRING 'TxWeightCalculator' + 0x16,0x2f, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0b, // STORE_NAME '__init__' + 0x11,0x30, // LOAD_NAME 'classmethod' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x10, // STORE_NAME 'input_script_size' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x20, // STORE_NAME 'add_input' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x29, // STORE_NAME 'add_output' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x2a, // STORE_NAME 'get_base_weight' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x2b, // STORE_NAME 'get_weight' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x2c, // STORE_NAME 'get_virtual_size' + 0x11,0x31, // LOAD_NAME 'staticmethod' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x1d, // STORE_NAME 'compact_size_len' + 0x11,0x31, // LOAD_NAME 'staticmethod' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x1e, // STORE_NAME 'op_push_len' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator +// frozen bytecode for file apps/bitcoin/sign_tx/tx_weight.py, scope apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator___init__ +static const byte fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator___init__[27] = { + 0x11,0x0e, // prelude + 0x0b,0x32, // names: __init__, self + 0x80,0x2d,0x24,0x24,0x24, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x0c, // STORE_ATTR 'inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x0d, // STORE_ATTR 'outputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x0e, // STORE_ATTR 'counter' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x0f, // STORE_ATTR 'segwit_inputs_count' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator___init__ + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator___init__ + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator___init__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator +// frozen bytecode for file apps/bitcoin/sign_tx/tx_weight.py, scope apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_input_script_size +static const byte fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_input_script_size[222] = { + 0x5a,0x42, // prelude + 0x10,0x33,0x34, // names: input_script_size, cls, i + 0x80,0x34,0x24,0x24,0x24,0x43,0x29,0x60,0x29,0x26,0x49,0x26,0x27,0x26,0x29,0x46,0x40,0x24,0x27,0x49,0x36,0x26,0x28,0x4b,0x49,0x20,0x21,0x6b,0x27,0x44, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x11, // LOAD_ATTR 'script_type' + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x12, // LOAD_ATTR 'script_pubkey' + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x13, // LOAD_ATTR 'multisig' + 0xc4, // STORE_FAST 4 + 0x12,0x06, // LOAD_GLOBAL 'InputScriptType' + 0xc5, // STORE_FAST 5 + 0x12,0x08, // LOAD_GLOBAL 'common' + 0x14,0x14, // LOAD_METHOD 'input_is_external_unverified' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x7a, // POP_JUMP_IF_FALSE 58 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x22,0x80,0x76, // LOAD_CONST_SMALL_INT 118 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb5, // LOAD_FAST 5 + 0x13,0x15, // LOAD_ATTR 'SPENDADDRESS' + 0xc2, // STORE_FAST 2 + 0x42,0x6b, // JUMP 43 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x22,0x81,0x29, // LOAD_CONST_SMALL_INT 169 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb5, // LOAD_FAST 5 + 0x13,0x16, // LOAD_ATTR 'SPENDP2SHWITNESS' + 0xc2, // STORE_FAST 2 + 0x42,0x5c, // JUMP 28 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb5, // LOAD_FAST 5 + 0x13,0x17, // LOAD_ATTR 'SPENDWITNESS' + 0xc2, // STORE_FAST 2 + 0x42,0x4f, // JUMP 15 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x22,0x80,0x51, // LOAD_CONST_SMALL_INT 81 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb5, // LOAD_FAST 5 + 0x13,0x18, // LOAD_ATTR 'SPENDTAPROOT' + 0xc2, // STORE_FAST 2 + 0x42,0x40, // JUMP 0 + 0xb4, // LOAD_FAST 4 + 0x44,0xd4,0x80, // POP_JUMP_IF_FALSE 84 + 0xb2, // LOAD_FAST 2 + 0xb5, // LOAD_FAST 5 + 0x13,0x18, // LOAD_ATTR 'SPENDTAPROOT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x04, // LOAD_GLOBAL 'wire' + 0x14,0x19, // LOAD_METHOD 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x13,0x1a, // LOAD_ATTR 'nodes' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x35, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x13,0x1a, // LOAD_ATTR 'nodes' + 0x34,0x01, // CALL_FUNCTION 1 + 0x42,0x47, // JUMP 7 + 0x12,0x35, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x13,0x1b, // LOAD_ATTR 'pubkeys' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc6, // STORE_FAST 6 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xb6, // LOAD_FAST 6 + 0xa2, // LOAD_CONST_SMALL_INT 34 + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0xc7, // STORE_FAST 7 + 0xb2, // LOAD_FAST 2 + 0x12,0x08, // LOAD_GLOBAL 'common' + 0x13,0x1c, // LOAD_ATTR 'SEGWIT_INPUT_SCRIPT_TYPES' + 0xdd, // BINARY_OP 6 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb7, // LOAD_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x14,0x1d, // LOAD_METHOD 'compact_size_len' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc7, // STORE_FAST 7 + 0x42,0x49, // JUMP 9 + 0xb7, // LOAD_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x14,0x1e, // LOAD_METHOD 'op_push_len' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc7, // STORE_FAST 7 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb4, // LOAD_FAST 4 + 0x13,0x1f, // LOAD_ATTR 'm' + 0x22,0x80,0x49, // LOAD_CONST_SMALL_INT 73 + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0xb7, // LOAD_FAST 7 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0xb5, // LOAD_FAST 5 + 0x13,0x18, // LOAD_ATTR 'SPENDTAPROOT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x22,0x80,0x41, // LOAD_CONST_SMALL_INT 65 + 0x63, // RETURN_VALUE + 0x22,0x80,0x6b, // LOAD_CONST_SMALL_INT 107 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_input_script_size = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_input_script_size, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 222, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_input_script_size + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_input_script_size + 35, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_input_script_size + 35, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator +// frozen bytecode for file apps/bitcoin/sign_tx/tx_weight.py, scope apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_add_input +static const byte fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_add_input[307] = { + 0x72,0x44, // prelude + 0x20,0x32,0x34, // names: add_input, self, i + 0x80,0x5f,0x4b,0x44,0x29,0x2b,0x47,0x28,0x29,0x2e,0x29,0x29,0x48,0x25,0x4d,0x4d,0x29,0x2e,0x29,0x25,0x23,0x49,0x26,0x48,0x2c,0x4c,0x25,0x49,0x25,0x4d,0x4b, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x21, // LOAD_CONST_STRING 'ownership' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME '' + 0x1c,0x21, // IMPORT_FROM 'ownership' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x11, // LOAD_ATTR 'script_type' + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0c, // LOAD_ATTR 'inputs_count' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x0c, // STORE_ATTR 'inputs_count' + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0e, // LOAD_ATTR 'counter' + 0x22,0x81,0x20, // LOAD_CONST_SMALL_INT 160 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x0e, // STORE_ATTR 'counter' + 0xb0, // LOAD_FAST 0 + 0x14,0x10, // LOAD_METHOD 'input_script_size' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x12,0x08, // LOAD_GLOBAL 'common' + 0x13,0x22, // LOAD_ATTR 'NONSEGWIT_INPUT_SCRIPT_TYPES' + 0xdd, // BINARY_OP 6 + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x1d, // LOAD_METHOD 'compact_size_len' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0e, // LOAD_ATTR 'counter' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xb4, // LOAD_FAST 4 + 0xf4, // BINARY_OP 29 __mul__ + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x0e, // STORE_ATTR 'counter' + 0x42,0xc4,0x81, // JUMP 196 + 0xb3, // LOAD_FAST 3 + 0x12,0x08, // LOAD_GLOBAL 'common' + 0x13,0x1c, // LOAD_ATTR 'SEGWIT_INPUT_SCRIPT_TYPES' + 0xdd, // BINARY_OP 6 + 0x44,0xc7,0x80, // POP_JUMP_IF_FALSE 71 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0f, // LOAD_ATTR 'segwit_inputs_count' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x0f, // STORE_ATTR 'segwit_inputs_count' + 0xb3, // LOAD_FAST 3 + 0x12,0x06, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x16, // LOAD_ATTR 'SPENDP2SHWITNESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5f, // POP_JUMP_IF_FALSE 31 + 0xb1, // LOAD_FAST 1 + 0x13,0x13, // LOAD_ATTR 'multisig' + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0e, // LOAD_ATTR 'counter' + 0x22,0x81,0x10, // LOAD_CONST_SMALL_INT 144 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x0e, // STORE_ATTR 'counter' + 0x42,0x4b, // JUMP 11 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0e, // LOAD_ATTR 'counter' + 0x22,0x80,0x60, // LOAD_CONST_SMALL_INT 96 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x0e, // STORE_ATTR 'counter' + 0x42,0x49, // JUMP 9 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0e, // LOAD_ATTR 'counter' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x0e, // STORE_ATTR 'counter' + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0e, // LOAD_ATTR 'counter' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb4, // LOAD_FAST 4 + 0xf2, // BINARY_OP 27 __add__ + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x0e, // STORE_ATTR 'counter' + 0x42,0xf4,0x80, // JUMP 116 + 0xb3, // LOAD_FAST 3 + 0x12,0x06, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x23, // LOAD_ATTR 'EXTERNAL' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xe2,0x80, // POP_JUMP_IF_FALSE 98 + 0xb1, // LOAD_FAST 1 + 0x13,0x24, // LOAD_ATTR 'ownership_proof' + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0xb2, // LOAD_FAST 2 + 0x14,0x25, // LOAD_METHOD 'read_scriptsig_witness' + 0xb1, // LOAD_FAST 1 + 0x13,0x24, // LOAD_ATTR 'ownership_proof' + 0x36,0x01, // CALL_METHOD 1 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc5, // STORE_FAST 5 + 0xc6, // STORE_FAST 6 + 0x12,0x35, // LOAD_GLOBAL 'len' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0x12,0x35, // LOAD_GLOBAL 'len' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0x42,0x58, // JUMP 24 + 0x12,0x35, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x26, // LOAD_ATTR 'script_sig' + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0x12,0x35, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x27, // LOAD_ATTR 'witness' + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0f, // LOAD_ATTR 'segwit_inputs_count' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x0f, // STORE_ATTR 'segwit_inputs_count' + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0e, // LOAD_ATTR 'counter' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x1d, // LOAD_METHOD 'compact_size_len' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0xb7, // LOAD_FAST 7 + 0xf2, // BINARY_OP 27 __add__ + 0xf4, // BINARY_OP 29 __mul__ + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x0e, // STORE_ATTR 'counter' + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0e, // LOAD_ATTR 'counter' + 0xb8, // LOAD_FAST 8 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x0e, // STORE_ATTR 'counter' + 0x42,0x49, // JUMP 9 + 0x12,0x04, // LOAD_GLOBAL 'wire' + 0x14,0x28, // LOAD_METHOD 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_add_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_add_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 307, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_add_input + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_add_input + 36, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_add_input + 36, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator +// frozen bytecode for file apps/bitcoin/sign_tx/tx_weight.py, scope apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_add_output +static const byte fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_add_output[50] = { + 0x3a,0x0e, // prelude + 0x29,0x32,0x36, // names: add_output, self, script + 0x80,0x8b,0x29,0x31, // code info + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0d, // LOAD_ATTR 'outputs_count' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x0d, // STORE_ATTR 'outputs_count' + 0xb0, // LOAD_FAST 0 + 0x14,0x1d, // LOAD_METHOD 'compact_size_len' + 0x12,0x35, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x12,0x35, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0e, // LOAD_ATTR 'counter' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xb2, // LOAD_FAST 2 + 0xf2, // BINARY_OP 27 __add__ + 0xf4, // BINARY_OP 29 __mul__ + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x0e, // STORE_ATTR 'counter' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_add_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_add_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_add_output + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_add_output + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_add_output + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator +// frozen bytecode for file apps/bitcoin/sign_tx/tx_weight.py, scope apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_base_weight +static const byte fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_base_weight[50] = { + 0x31,0x12, // prelude + 0x2a,0x32, // names: get_base_weight, self + 0x80,0x90,0x22,0x2d,0x2d,0x25,0x44, // code info + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x1d, // LOAD_METHOD 'compact_size_len' + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'inputs_count' + 0x36,0x01, // CALL_METHOD 1 + 0xf4, // BINARY_OP 29 __mul__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x1d, // LOAD_METHOD 'compact_size_len' + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'outputs_count' + 0x36,0x01, // CALL_METHOD 1 + 0xf4, // BINARY_OP 29 __mul__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'segwit_inputs_count' + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb1, // LOAD_FAST 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_base_weight = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_base_weight, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_base_weight + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_base_weight + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_base_weight + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator +// frozen bytecode for file apps/bitcoin/sign_tx/tx_weight.py, scope apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_weight +static const byte fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_weight[39] = { + 0x21,0x10, // prelude + 0x2b,0x32, // names: get_weight, self + 0x80,0x99,0x24,0x28,0x45,0x4a, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'counter' + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x14,0x2a, // LOAD_METHOD 'get_base_weight' + 0x36,0x00, // CALL_METHOD 0 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'segwit_inputs_count' + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'inputs_count' + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'segwit_inputs_count' + 0xf3, // BINARY_OP 28 __sub__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_weight = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_weight, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_weight + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_weight + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_weight + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator +// frozen bytecode for file apps/bitcoin/sign_tx/tx_weight.py, scope apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_virtual_size +static const byte fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_virtual_size[16] = { + 0x11,0x08, // prelude + 0x2c,0x32, // names: get_virtual_size, self + 0x80,0xa5, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x2b, // LOAD_METHOD 'get_weight' + 0x36,0x00, // CALL_METHOD 0 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xf2, // BINARY_OP 27 __add__ + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_virtual_size = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_virtual_size, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 44, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_virtual_size + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_virtual_size + 6, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_virtual_size + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator +// frozen bytecode for file apps/bitcoin/sign_tx/tx_weight.py, scope apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_compact_size_len +static const byte fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_compact_size_len[31] = { + 0x11,0x10, // prelude + 0x1d,0x37, // names: compact_size_len, length + 0x80,0xa9,0x27,0x22,0x28,0x22, // code info + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x7d, // LOAD_CONST_SMALL_INT 253 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x22,0x84,0x80,0x00, // LOAD_CONST_SMALL_INT 65536 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x63, // RETURN_VALUE + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_compact_size_len = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_compact_size_len, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_compact_size_len + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_compact_size_len + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_compact_size_len + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator +// frozen bytecode for file apps/bitcoin/sign_tx/tx_weight.py, scope apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_op_push_len +static const byte fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_op_push_len[42] = { + 0x11,0x14, // prelude + 0x1e,0x37, // names: op_push_len, length + 0x80,0xb1,0x27,0x22,0x27,0x22,0x28,0x22, // code info + 0xb0, // LOAD_FAST 0 + 0x22,0x80,0x4c, // LOAD_CONST_SMALL_INT 76 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x22,0x82,0x00, // LOAD_CONST_SMALL_INT 256 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x22,0x84,0x80,0x00, // LOAD_CONST_SMALL_INT 65536 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x63, // RETURN_VALUE + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_op_push_len = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_op_push_len, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_op_push_len + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_op_push_len + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_op_push_len + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator[] = { + &raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator___init__, + &raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_input_script_size, + &raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_add_input, + &raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_add_output, + &raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_base_weight, + &raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_weight, + &raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_get_virtual_size, + &raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_compact_size_len, + &raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator_op_push_len, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 79, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 9, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator + 21, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_tx_weight__lt_module_gt_[] = { + &raw_code_apps_bitcoin_sign_tx_tx_weight_TxWeightCalculator, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_tx_weight__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_tx_weight__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_tx_weight__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_sign_tx_tx_weight__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_tx_weight__lt_module_gt_ + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_tx_weight__lt_module_gt_ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_sign_tx_tx_weight[56] = { + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_tx_weight_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_InputScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_common, + MP_QSTR_, + MP_QSTR_TxWeightCalculator, + MP_QSTR___init__, + MP_QSTR_inputs_count, + MP_QSTR_outputs_count, + MP_QSTR_counter, + MP_QSTR_segwit_inputs_count, + MP_QSTR_input_script_size, + MP_QSTR_script_type, + MP_QSTR_script_pubkey, + MP_QSTR_multisig, + MP_QSTR_input_is_external_unverified, + MP_QSTR_SPENDADDRESS, + MP_QSTR_SPENDP2SHWITNESS, + MP_QSTR_SPENDWITNESS, + MP_QSTR_SPENDTAPROOT, + MP_QSTR_ProcessError, + MP_QSTR_nodes, + MP_QSTR_pubkeys, + MP_QSTR_SEGWIT_INPUT_SCRIPT_TYPES, + MP_QSTR_compact_size_len, + MP_QSTR_op_push_len, + MP_QSTR_m, + MP_QSTR_add_input, + MP_QSTR_ownership, + MP_QSTR_NONSEGWIT_INPUT_SCRIPT_TYPES, + MP_QSTR_EXTERNAL, + MP_QSTR_ownership_proof, + MP_QSTR_read_scriptsig_witness, + MP_QSTR_script_sig, + MP_QSTR_witness, + MP_QSTR_DataError, + MP_QSTR_add_output, + MP_QSTR_get_base_weight, + MP_QSTR_get_weight, + MP_QSTR_get_virtual_size, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_classmethod, + MP_QSTR_staticmethod, + MP_QSTR_self, + MP_QSTR_cls, + MP_QSTR_i, + MP_QSTR_len, + MP_QSTR_script, + MP_QSTR_length, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_tx_weight_0 = {{&mp_type_str}, 56082, 34, (const byte*)"\x4d\x75\x6c\x74\x69\x73\x69\x67\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x66\x6f\x72\x20\x74\x61\x70\x72\x6f\x6f\x74"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_sign_tx_tx_weight[3] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_tx_weight_0), + MP_ROM_PTR(&mp_const_empty_bytes_obj), + MP_ROM_QSTR(MP_QSTR_Invalid_space_script_space_type), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_sign_tx_tx_weight = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_sign_tx_tx_weight, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_sign_tx_tx_weight, + }, + .rc = &raw_code_apps_bitcoin_sign_tx_tx_weight__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_binance___init__ +// - original source file: build/firmware/src/apps/binance/__init__.mpy +// - frozen file name: apps/binance/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/binance/__init__.py, scope apps_binance___init____lt_module_gt_ +static const byte fun_data_apps_binance___init____lt_module_gt_[33] = { + 0x08,0x08, // prelude + 0x01, // names: + 0x4c,0x24,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'PATTERN_BIP44' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x02, // IMPORT_FROM 'PATTERN_BIP44' + 0x16,0x02, // STORE_NAME 'PATTERN_BIP44' + 0x59, // POP_TOP + 0x10,0x04, // LOAD_CONST_STRING 'secp256k1' + 0x16,0x05, // STORE_NAME 'CURVE' + 0x22,0x85,0x4a, // LOAD_CONST_SMALL_INT 714 + 0x16,0x06, // STORE_NAME 'SLIP44_ID' + 0x11,0x02, // LOAD_NAME 'PATTERN_BIP44' + 0x16,0x07, // STORE_NAME 'PATTERN' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_binance___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_binance___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_binance___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_binance___init____lt_module_gt_ + 6, + .opcodes = fun_data_apps_binance___init____lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_binance___init__[8] = { + MP_QSTR_apps_slash_binance_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_PATTERN_BIP44, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_secp256k1, + MP_QSTR_CURVE, + MP_QSTR_SLIP44_ID, + MP_QSTR_PATTERN, +}; + +static const mp_frozen_module_t frozen_module_apps_binance___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_binance___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps_binance___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_binance_get_address +// - original source file: build/firmware/src/apps/binance/get_address.mpy +// - frozen file name: apps/binance/get_address.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/binance/get_address.py, scope apps_binance_get_address__lt_module_gt_ +static const byte fun_data_apps_binance_get_address__lt_module_gt_[33] = { + 0x08,0x0a, // prelude + 0x01, // names: + 0x40,0x4c,0x60,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'auto_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x02, // IMPORT_FROM 'auto_keychain' + 0x16,0x02, // STORE_NAME 'auto_keychain' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'auto_keychain' + 0x11,0x1d, // LOAD_NAME '__name__' + 0x34,0x01, // CALL_FUNCTION 1 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x04, // STORE_NAME 'get_address' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_binance_get_address__lt_module_gt_ +// frozen bytecode for file apps/binance/get_address.py, scope apps_binance_get_address_get_address +static const byte fun_data_apps_binance_get_address_get_address[172] = { + 0xba,0x50,0x2a, // prelude + 0x04,0x1e,0x1f, // names: get_address, msg, keychain + 0x80,0x0c,0x2b,0x4b,0x4b,0x4b,0x23,0x44,0x4b,0x27,0x26,0x26,0x25,0x50,0x44,0x28,0x2c,0x6e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'BinanceAddress' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.messages' + 0x1c,0x05, // IMPORT_FROM 'BinanceAddress' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'show_address' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x07, // IMPORT_FROM 'show_address' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'apps.common' + 0x1c,0x09, // IMPORT_FROM 'paths' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0b, // LOAD_CONST_STRING 'address_from_public_key' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'helpers' + 0x1c,0x0b, // IMPORT_FROM 'address_from_public_key' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x10,0x0d, // LOAD_CONST_STRING 'bnb' + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'address_n' + 0xc7, // STORE_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x14,0x0f, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x10, // LOAD_METHOD 'derive' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x14,0x11, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0xc9, // STORE_FAST 9 + 0xb5, // LOAD_FAST 5 + 0xb9, // LOAD_FAST 9 + 0xb6, // LOAD_FAST 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0xca, // STORE_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'show_display' + 0x44,0x76, // POP_JUMP_IF_FALSE 54 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x13, // LOAD_CONST_STRING 'PATTERN' + 0x10,0x14, // LOAD_CONST_STRING 'SLIP44_ID' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x15, // IMPORT_NAME '' + 0x1c,0x13, // IMPORT_FROM 'PATTERN' + 0xcb, // STORE_FAST 11 + 0x1c,0x14, // IMPORT_FROM 'SLIP44_ID' + 0xcc, // STORE_FAST 12 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xba, // LOAD_FAST 10 + 0x10,0x16, // LOAD_CONST_STRING 'path' + 0xb4, // LOAD_FAST 4 + 0x14,0x17, // LOAD_METHOD 'address_n_to_str' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x18, // LOAD_CONST_STRING 'account' + 0xb4, // LOAD_FAST 4 + 0x14,0x19, // LOAD_METHOD 'get_account_name' + 0x10,0x1a, // LOAD_CONST_STRING 'BNB' + 0xb7, // LOAD_FAST 7 + 0xbb, // LOAD_FAST 11 + 0xbc, // LOAD_FAST 12 + 0x36,0x04, // CALL_METHOD 4 + 0x10,0x1b, // LOAD_CONST_STRING 'chunkify' + 0x12,0x20, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'chunkify' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x86,0x01, // CALL_FUNCTION 769 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x10,0x1c, // LOAD_CONST_STRING 'address' + 0xba, // LOAD_FAST 10 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_binance_get_address_get_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_binance_get_address_get_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 172, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 24, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_binance_get_address_get_address + 6, + .line_info_top = fun_data_apps_binance_get_address_get_address + 24, + .opcodes = fun_data_apps_binance_get_address_get_address + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_binance_get_address__lt_module_gt_[] = { + &raw_code_apps_binance_get_address_get_address, +}; + +static const mp_raw_code_t raw_code_apps_binance_get_address__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_binance_get_address__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = (void *)&children_apps_binance_get_address__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_binance_get_address__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_binance_get_address__lt_module_gt_ + 7, + .opcodes = fun_data_apps_binance_get_address__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_binance_get_address[33] = { + MP_QSTR_apps_slash_binance_slash_get_address_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_auto_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_get_address, + MP_QSTR_BinanceAddress, + MP_QSTR_trezor_dot_messages, + MP_QSTR_show_address, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_address_from_public_key, + MP_QSTR_helpers, + MP_QSTR_bnb, + MP_QSTR_address_n, + MP_QSTR_validate_path, + MP_QSTR_derive, + MP_QSTR_public_key, + MP_QSTR_show_display, + MP_QSTR_PATTERN, + MP_QSTR_SLIP44_ID, + MP_QSTR_, + MP_QSTR_path, + MP_QSTR_address_n_to_str, + MP_QSTR_account, + MP_QSTR_get_account_name, + MP_QSTR_BNB, + MP_QSTR_chunkify, + MP_QSTR_address, + MP_QSTR___name__, + MP_QSTR_msg, + MP_QSTR_keychain, + MP_QSTR_bool, +}; + +static const mp_frozen_module_t frozen_module_apps_binance_get_address = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_binance_get_address, + .obj_table = NULL, + }, + .rc = &raw_code_apps_binance_get_address__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_binance_get_public_key +// - original source file: build/firmware/src/apps/binance/get_public_key.mpy +// - frozen file name: apps/binance/get_public_key.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/binance/get_public_key.py, scope apps_binance_get_public_key__lt_module_gt_ +static const byte fun_data_apps_binance_get_public_key__lt_module_gt_[33] = { + 0x08,0x0a, // prelude + 0x01, // names: + 0x40,0x4c,0x60,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'auto_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x02, // IMPORT_FROM 'auto_keychain' + 0x16,0x02, // STORE_NAME 'auto_keychain' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'auto_keychain' + 0x11,0x1b, // LOAD_NAME '__name__' + 0x34,0x01, // CALL_FUNCTION 1 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x04, // STORE_NAME 'get_public_key' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_binance_get_public_key__lt_module_gt_ +// frozen bytecode for file apps/binance/get_public_key.py, scope apps_binance_get_public_key_get_public_key +static const byte fun_data_apps_binance_get_public_key_get_public_key[165] = { + 0x9a,0x50,0x26, // prelude + 0x04,0x1c,0x1d, // names: get_public_key, msg, keychain + 0x80,0x0e,0x4b,0x2b,0x4b,0x4b,0x2d,0x29,0x46,0x25,0x50,0x29,0x21,0x2a,0x76,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'hexlify' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'ubinascii' + 0x1c,0x05, // IMPORT_FROM 'hexlify' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'BinancePublicKey' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.messages' + 0x1c,0x07, // IMPORT_FROM 'BinancePublicKey' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'show_pubkey' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x09, // IMPORT_FROM 'show_pubkey' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'apps.common' + 0x1c,0x0b, // IMPORT_FROM 'paths' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x0d, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'address_n' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x0f, // LOAD_METHOD 'derive' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x14,0x10, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0xc7, // STORE_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'show_display' + 0x44,0x7a, // POP_JUMP_IF_FALSE 58 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x12, // LOAD_CONST_STRING 'PATTERN' + 0x10,0x13, // LOAD_CONST_STRING 'SLIP44_ID' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x14, // IMPORT_NAME '' + 0x1c,0x12, // IMPORT_FROM 'PATTERN' + 0xc8, // STORE_FAST 8 + 0x1c,0x13, // IMPORT_FROM 'SLIP44_ID' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x15, // LOAD_METHOD 'address_n_to_str' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xca, // STORE_FAST 10 + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x16, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x17, // LOAD_CONST_STRING 'account' + 0xb5, // LOAD_FAST 5 + 0x14,0x18, // LOAD_METHOD 'get_account_name' + 0x10,0x19, // LOAD_CONST_STRING 'BNB' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'address_n' + 0xb8, // LOAD_FAST 8 + 0xb9, // LOAD_FAST 9 + 0x36,0x04, // CALL_METHOD 4 + 0x10,0x1a, // LOAD_CONST_STRING 'path' + 0xba, // LOAD_FAST 10 + 0x34,0x84,0x01, // CALL_FUNCTION 513 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x10, // LOAD_CONST_STRING 'public_key' + 0xb7, // LOAD_FAST 7 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_binance_get_public_key_get_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_binance_get_public_key_get_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 165, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 20, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_binance_get_public_key_get_public_key + 6, + .line_info_top = fun_data_apps_binance_get_public_key_get_public_key + 22, + .opcodes = fun_data_apps_binance_get_public_key_get_public_key + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_binance_get_public_key__lt_module_gt_[] = { + &raw_code_apps_binance_get_public_key_get_public_key, +}; + +static const mp_raw_code_t raw_code_apps_binance_get_public_key__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_binance_get_public_key__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = (void *)&children_apps_binance_get_public_key__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_binance_get_public_key__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_binance_get_public_key__lt_module_gt_ + 7, + .opcodes = fun_data_apps_binance_get_public_key__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_binance_get_public_key[30] = { + MP_QSTR_apps_slash_binance_slash_get_public_key_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_auto_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_get_public_key, + MP_QSTR_hexlify, + MP_QSTR_ubinascii, + MP_QSTR_BinancePublicKey, + MP_QSTR_trezor_dot_messages, + MP_QSTR_show_pubkey, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_validate_path, + MP_QSTR_address_n, + MP_QSTR_derive, + MP_QSTR_public_key, + MP_QSTR_show_display, + MP_QSTR_PATTERN, + MP_QSTR_SLIP44_ID, + MP_QSTR_, + MP_QSTR_address_n_to_str, + MP_QSTR_decode, + MP_QSTR_account, + MP_QSTR_get_account_name, + MP_QSTR_BNB, + MP_QSTR_path, + MP_QSTR___name__, + MP_QSTR_msg, + MP_QSTR_keychain, +}; + +static const mp_frozen_module_t frozen_module_apps_binance_get_public_key = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_binance_get_public_key, + .obj_table = NULL, + }, + .rc = &raw_code_apps_binance_get_public_key__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_binance_helpers +// - original source file: build/firmware/src/apps/binance/helpers.mpy +// - frozen file name: apps/binance/helpers.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/binance/helpers.py, scope apps_binance_helpers__lt_module_gt_ +static const byte fun_data_apps_binance_helpers__lt_module_gt_[41] = { + 0x08,0x14, // prelude + 0x01, // names: + 0x6c,0x60,0x40,0x63,0x20,0x84,0x0a,0x84,0x2b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x16,0x31, // STORE_NAME 'DECIMALS' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x04, // STORE_NAME '_make_input_output' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0a, // STORE_NAME 'produce_json_for_signing' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x24, // STORE_NAME 'address_from_public_key' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_binance_helpers__lt_module_gt_ +// frozen bytecode for file apps/binance/helpers.py, scope apps_binance_helpers__make_input_output +static const byte fun_data_apps_binance_helpers__make_input_output[45] = { + 0x39,0x11, // prelude + 0x04,0x32, // names: _make_input_output, input_output + 0x80,0x0d,0x24,0x43,0x28,0x49,0x03, // code info + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x27,0x03, // STORE_DEREF 3 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xc1, // STORE_FAST 1 + 0x10,0x05, // LOAD_CONST_STRING ',' + 0x14,0x06, // LOAD_METHOD 'join' + 0xb3, // LOAD_FAST 3 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x07, // LOAD_ATTR 'coins' + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x14,0x08, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'address' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +// child of apps_binance_helpers__make_input_output +// frozen bytecode for file apps/binance/helpers.py, scope apps_binance_helpers__make_input_output__lt_genexpr_gt_ +static const byte fun_data_apps_binance_helpers__make_input_output__lt_genexpr_gt_[33] = { + 0xd2,0x40,0x0a, // prelude + 0x2e,0x37,0x37, // names: , *, * + 0x80,0x11, // code info + 0x53, // LOAD_NULL + 0xb1, // LOAD_FAST 1 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x11, // FOR_ITER 17 + 0xc2, // STORE_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0x14,0x08, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x13,0x2f, // LOAD_ATTR 'amount' + 0xb2, // LOAD_FAST 2 + 0x13,0x30, // LOAD_ATTR 'denom' + 0x36,0x02, // CALL_METHOD 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x2d, // JUMP -19 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_binance_helpers__make_input_output__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_binance_helpers__make_input_output__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_binance_helpers__make_input_output__lt_genexpr_gt_ + 6, + .line_info_top = fun_data_apps_binance_helpers__make_input_output__lt_genexpr_gt_ + 8, + .opcodes = fun_data_apps_binance_helpers__make_input_output__lt_genexpr_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_binance_helpers__make_input_output[] = { + &raw_code_apps_binance_helpers__make_input_output__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_binance_helpers__make_input_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_binance_helpers__make_input_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = (void *)&children_apps_binance_helpers__make_input_output, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_binance_helpers__make_input_output + 4, + .line_info_top = fun_data_apps_binance_helpers__make_input_output + 10, + .opcodes = fun_data_apps_binance_helpers__make_input_output + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_binance_helpers__lt_module_gt_ +// frozen bytecode for file apps/binance/helpers.py, scope apps_binance_helpers_produce_json_for_signing +static const byte fun_data_apps_binance_helpers_produce_json_for_signing[241] = { + 0xb2,0x10,0x46, // prelude + 0x0a,0x33,0x34, // names: produce_json_for_signing, envelope, msg + 0x80,0x17,0x2b,0x75,0x23,0x23,0x23,0x43,0x28,0x2f,0x2f,0x2b,0x28,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x48,0x28,0x51,0x48,0x27,0x48,0x23,0x23,0x23,0x44,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor' + 0x1c,0x0b, // IMPORT_FROM 'wire' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'BinanceCancelMsg' + 0x10,0x0e, // LOAD_CONST_STRING 'BinanceOrderMsg' + 0x10,0x0f, // LOAD_CONST_STRING 'BinanceTransferMsg' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x10, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0d, // IMPORT_FROM 'BinanceCancelMsg' + 0xc3, // STORE_FAST 3 + 0x1c,0x0e, // IMPORT_FROM 'BinanceOrderMsg' + 0xc4, // STORE_FAST 4 + 0x1c,0x0f, // IMPORT_FROM 'BinanceTransferMsg' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xc6, // STORE_FAST 6 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xc7, // STORE_FAST 7 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xc8, // STORE_FAST 8 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xc9, // STORE_FAST 9 + 0xb5, // LOAD_FAST 5 + 0x14,0x11, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x69, // POP_JUMP_IF_FALSE 41 + 0x10,0x05, // LOAD_CONST_STRING ',' + 0x14,0x06, // LOAD_METHOD 'join' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x12, // LOAD_ATTR 'inputs' + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0xca, // STORE_FAST 10 + 0x10,0x05, // LOAD_CONST_STRING ',' + 0x14,0x06, // LOAD_METHOD 'join' + 0x32,0x01, // MAKE_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x13, // LOAD_ATTR 'outputs' + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0xcb, // STORE_FAST 11 + 0xb7, // LOAD_FAST 7 + 0x14,0x08, // LOAD_METHOD 'format' + 0xba, // LOAD_FAST 10 + 0xbb, // LOAD_FAST 11 + 0x36,0x02, // CALL_METHOD 2 + 0xcc, // STORE_FAST 12 + 0x42,0xc9,0x80, // JUMP 73 + 0xb4, // LOAD_FAST 4 + 0x14,0x11, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0xb8, // LOAD_FAST 8 + 0x14,0x08, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x13,0x14, // LOAD_ATTR 'id' + 0xb1, // LOAD_FAST 1 + 0x13,0x15, // LOAD_ATTR 'ordertype' + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'price' + 0xb1, // LOAD_FAST 1 + 0x13,0x17, // LOAD_ATTR 'quantity' + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'sender' + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'side' + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'symbol' + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'timeinforce' + 0x36,0x08, // CALL_METHOD 8 + 0xcc, // STORE_FAST 12 + 0x42,0x61, // JUMP 33 + 0xb3, // LOAD_FAST 3 + 0x14,0x11, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb9, // LOAD_FAST 9 + 0x14,0x08, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x13,0x1c, // LOAD_ATTR 'refid' + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'sender' + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'symbol' + 0x36,0x03, // CALL_METHOD 3 + 0xcc, // STORE_FAST 12 + 0x42,0x48, // JUMP 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x1d, // LOAD_METHOD 'ProcessError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x1e, // LOAD_ATTR 'source' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x1f, // LOAD_METHOD 'DataError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb6, // LOAD_FAST 6 + 0x14,0x08, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'account_number' + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'chain_id' + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'memo' + 0xbc, // LOAD_FAST 12 + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'sequence' + 0xb0, // LOAD_FAST 0 + 0x13,0x1e, // LOAD_ATTR 'source' + 0x36,0x06, // CALL_METHOD 6 + 0x63, // RETURN_VALUE +}; +// child of apps_binance_helpers_produce_json_for_signing +// frozen bytecode for file apps/binance/helpers.py, scope apps_binance_helpers_produce_json_for_signing__lt_genexpr_gt_ +static const byte fun_data_apps_binance_helpers_produce_json_for_signing__lt_genexpr_gt_[25] = { + 0xb9,0x40,0x08, // prelude + 0x2e,0x37, // names: , * + 0x80,0x21, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0a, // FOR_ITER 10 + 0xc1, // STORE_FAST 1 + 0x12,0x04, // LOAD_GLOBAL '_make_input_output' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_binance_helpers_produce_json_for_signing__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_binance_helpers_produce_json_for_signing__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_binance_helpers_produce_json_for_signing__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_apps_binance_helpers_produce_json_for_signing__lt_genexpr_gt_ + 7, + .opcodes = fun_data_apps_binance_helpers_produce_json_for_signing__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_binance_helpers_produce_json_for_signing +// frozen bytecode for file apps/binance/helpers.py, scope apps_binance_helpers_produce_json_for_signing__lt_genexpr_gt_2 +static const byte fun_data_apps_binance_helpers_produce_json_for_signing__lt_genexpr_gt_2[25] = { + 0xb9,0x40,0x08, // prelude + 0x2e,0x37, // names: , * + 0x80,0x22, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0a, // FOR_ITER 10 + 0xc1, // STORE_FAST 1 + 0x12,0x04, // LOAD_GLOBAL '_make_input_output' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_binance_helpers_produce_json_for_signing__lt_genexpr_gt_2 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_binance_helpers_produce_json_for_signing__lt_genexpr_gt_2, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_binance_helpers_produce_json_for_signing__lt_genexpr_gt_2 + 5, + .line_info_top = fun_data_apps_binance_helpers_produce_json_for_signing__lt_genexpr_gt_2 + 7, + .opcodes = fun_data_apps_binance_helpers_produce_json_for_signing__lt_genexpr_gt_2 + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_binance_helpers_produce_json_for_signing[] = { + &raw_code_apps_binance_helpers_produce_json_for_signing__lt_genexpr_gt_, + &raw_code_apps_binance_helpers_produce_json_for_signing__lt_genexpr_gt_2, +}; + +static const mp_raw_code_t raw_code_apps_binance_helpers_produce_json_for_signing = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_binance_helpers_produce_json_for_signing, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 241, + #endif + .children = (void *)&children_apps_binance_helpers_produce_json_for_signing, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 23, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_binance_helpers_produce_json_for_signing + 6, + .line_info_top = fun_data_apps_binance_helpers_produce_json_for_signing + 38, + .opcodes = fun_data_apps_binance_helpers_produce_json_for_signing + 38, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_binance_helpers__lt_module_gt_ +// frozen bytecode for file apps/binance/helpers.py, scope apps_binance_helpers_address_from_public_key +static const byte fun_data_apps_binance_helpers_address_from_public_key[67] = { + 0x52,0x18, // prelude + 0x24,0x35,0x36, // names: address_from_public_key, pubkey, hrp + 0x80,0x42,0x60,0x40,0x2b,0x4b,0x49,0x20,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x25, // LOAD_CONST_STRING 'bech32' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x26, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x25, // IMPORT_FROM 'bech32' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x27, // LOAD_CONST_STRING 'sha256_ripemd160' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x28, // IMPORT_NAME 'trezor.crypto.scripts' + 0x1c,0x27, // IMPORT_FROM 'sha256_ripemd160' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x29, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x14,0x2a, // LOAD_METHOD 'convertbits' + 0xb4, // LOAD_FAST 4 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x36,0x03, // CALL_METHOD 3 + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x14,0x2b, // LOAD_METHOD 'bech32_encode' + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x13,0x2c, // LOAD_ATTR 'Encoding' + 0x13,0x2d, // LOAD_ATTR 'BECH32' + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_binance_helpers_address_from_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_binance_helpers_address_from_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 67, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_binance_helpers_address_from_public_key + 5, + .line_info_top = fun_data_apps_binance_helpers_address_from_public_key + 14, + .opcodes = fun_data_apps_binance_helpers_address_from_public_key + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_binance_helpers__lt_module_gt_[] = { + &raw_code_apps_binance_helpers__make_input_output, + &raw_code_apps_binance_helpers_produce_json_for_signing, + &raw_code_apps_binance_helpers_address_from_public_key, +}; + +static const mp_raw_code_t raw_code_apps_binance_helpers__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_binance_helpers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = (void *)&children_apps_binance_helpers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_binance_helpers__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_binance_helpers__lt_module_gt_ + 12, + .opcodes = fun_data_apps_binance_helpers__lt_module_gt_ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_binance_helpers[56] = { + MP_QSTR_apps_slash_binance_slash_helpers_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR__make_input_output, + MP_QSTR__comma_, + MP_QSTR_join, + MP_QSTR_coins, + MP_QSTR_format, + MP_QSTR_address, + MP_QSTR_produce_json_for_signing, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_BinanceCancelMsg, + MP_QSTR_BinanceOrderMsg, + MP_QSTR_BinanceTransferMsg, + MP_QSTR_trezor_dot_messages, + MP_QSTR_is_type_of, + MP_QSTR_inputs, + MP_QSTR_outputs, + MP_QSTR_id, + MP_QSTR_ordertype, + MP_QSTR_price, + MP_QSTR_quantity, + MP_QSTR_sender, + MP_QSTR_side, + MP_QSTR_symbol, + MP_QSTR_timeinforce, + MP_QSTR_refid, + MP_QSTR_ProcessError, + MP_QSTR_source, + MP_QSTR_DataError, + MP_QSTR_account_number, + MP_QSTR_chain_id, + MP_QSTR_memo, + MP_QSTR_sequence, + MP_QSTR_address_from_public_key, + MP_QSTR_bech32, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_sha256_ripemd160, + MP_QSTR_trezor_dot_crypto_dot_scripts, + MP_QSTR_digest, + MP_QSTR_convertbits, + MP_QSTR_bech32_encode, + MP_QSTR_Encoding, + MP_QSTR_BECH32, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_amount, + MP_QSTR_denom, + MP_QSTR_DECIMALS, + MP_QSTR_input_output, + MP_QSTR_envelope, + MP_QSTR_msg, + MP_QSTR_pubkey, + MP_QSTR_hrp, + MP_QSTR__star_, +}; + +// constants +static const mp_obj_str_t const_obj_apps_binance_helpers_0 = {{&mp_type_str}, 5064, 28, (const byte*)"\x7b\x7b\x22\x61\x6d\x6f\x75\x6e\x74\x22\x3a\x7b\x7d\x2c\x22\x64\x65\x6e\x6f\x6d\x22\x3a\x22\x7b\x7d\x22\x7d\x7d"}; +static const mp_obj_str_t const_obj_apps_binance_helpers_1 = {{&mp_type_str}, 18657, 31, (const byte*)"\x7b\x7b\x22\x61\x64\x64\x72\x65\x73\x73\x22\x3a\x22\x7b\x7d\x22\x2c\x22\x63\x6f\x69\x6e\x73\x22\x3a\x5b\x7b\x7d\x5d\x7d\x7d"}; +static const mp_obj_str_t const_obj_apps_binance_helpers_2 = {{&mp_type_str}, 4882, 107, (const byte*)"\x7b\x7b\x22\x61\x63\x63\x6f\x75\x6e\x74\x5f\x6e\x75\x6d\x62\x65\x72\x22\x3a\x22\x7b\x7d\x22\x2c\x22\x63\x68\x61\x69\x6e\x5f\x69\x64\x22\x3a\x22\x7b\x7d\x22\x2c\x22\x64\x61\x74\x61\x22\x3a\x6e\x75\x6c\x6c\x2c\x22\x6d\x65\x6d\x6f\x22\x3a\x22\x7b\x7d\x22\x2c\x22\x6d\x73\x67\x73\x22\x3a\x5b\x7b\x7d\x5d\x2c\x22\x73\x65\x71\x75\x65\x6e\x63\x65\x22\x3a\x22\x7b\x7d\x22\x2c\x22\x73\x6f\x75\x72\x63\x65\x22\x3a\x22\x7b\x7d\x22\x7d\x7d"}; +static const mp_obj_str_t const_obj_apps_binance_helpers_3 = {{&mp_type_str}, 15520, 32, (const byte*)"\x7b\x7b\x22\x69\x6e\x70\x75\x74\x73\x22\x3a\x5b\x7b\x7d\x5d\x2c\x22\x6f\x75\x74\x70\x75\x74\x73\x22\x3a\x5b\x7b\x7d\x5d\x7d\x7d"}; +static const mp_obj_str_t const_obj_apps_binance_helpers_4 = {{&mp_type_str}, 15133, 108, (const byte*)"\x7b\x7b\x22\x69\x64\x22\x3a\x22\x7b\x7d\x22\x2c\x22\x6f\x72\x64\x65\x72\x74\x79\x70\x65\x22\x3a\x7b\x7d\x2c\x22\x70\x72\x69\x63\x65\x22\x3a\x7b\x7d\x2c\x22\x71\x75\x61\x6e\x74\x69\x74\x79\x22\x3a\x7b\x7d\x2c\x22\x73\x65\x6e\x64\x65\x72\x22\x3a\x22\x7b\x7d\x22\x2c\x22\x73\x69\x64\x65\x22\x3a\x7b\x7d\x2c\x22\x73\x79\x6d\x62\x6f\x6c\x22\x3a\x22\x7b\x7d\x22\x2c\x22\x74\x69\x6d\x65\x69\x6e\x66\x6f\x72\x63\x65\x22\x3a\x7b\x7d\x7d\x7d"}; +static const mp_obj_str_t const_obj_apps_binance_helpers_5 = {{&mp_type_str}, 31240, 44, (const byte*)"\x7b\x7b\x22\x72\x65\x66\x69\x64\x22\x3a\x22\x7b\x7d\x22\x2c\x22\x73\x65\x6e\x64\x65\x72\x22\x3a\x22\x7b\x7d\x22\x2c\x22\x73\x79\x6d\x62\x6f\x6c\x22\x3a\x22\x7b\x7d\x22\x7d\x7d"}; +static const mp_obj_str_t const_obj_apps_binance_helpers_6 = {{&mp_type_str}, 45507, 26, (const byte*)"\x69\x6e\x70\x75\x74\x20\x6d\x65\x73\x73\x61\x67\x65\x20\x75\x6e\x72\x65\x63\x6f\x67\x6e\x69\x7a\x65\x64"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_binance_helpers[8] = { + MP_ROM_PTR(&const_obj_apps_binance_helpers_0), + MP_ROM_PTR(&const_obj_apps_binance_helpers_1), + MP_ROM_PTR(&const_obj_apps_binance_helpers_2), + MP_ROM_PTR(&const_obj_apps_binance_helpers_3), + MP_ROM_PTR(&const_obj_apps_binance_helpers_4), + MP_ROM_PTR(&const_obj_apps_binance_helpers_5), + MP_ROM_PTR(&const_obj_apps_binance_helpers_6), + MP_ROM_QSTR(MP_QSTR_Source_space_is_space_invalid), +}; + +static const mp_frozen_module_t frozen_module_apps_binance_helpers = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_binance_helpers, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_binance_helpers, + }, + .rc = &raw_code_apps_binance_helpers__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_binance_layout +// - original source file: build/firmware/src/apps/binance/layout.mpy +// - frozen file name: apps/binance/layout.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/binance/layout.py, scope apps_binance_layout__lt_module_gt_ +static const byte fun_data_apps_binance_layout__lt_module_gt_[82] = { + 0x08,0x1c, // prelude + 0x01, // names: + 0x40,0x2c,0x2c,0x4c,0x4c,0x80,0x09,0x84,0x16,0x84,0x0b,0x84,0x0e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x02, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x02, // STORE_NAME 'ButtonRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'format_amount' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.strings' + 0x1c,0x04, // IMPORT_FROM 'format_amount' + 0x16,0x04, // STORE_NAME 'format_amount' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'confirm_properties' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x06, // IMPORT_FROM 'confirm_properties' + 0x16,0x06, // STORE_NAME 'confirm_properties' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x08, // LOAD_CONST_STRING 'DECIMALS' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'helpers' + 0x1c,0x08, // IMPORT_FROM 'DECIMALS' + 0x16,0x08, // STORE_NAME 'DECIMALS' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0a, // STORE_NAME 'require_confirm_transfer' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0e, // STORE_NAME '_confirm_transfer' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x11, // STORE_NAME 'require_confirm_cancel' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x19, // STORE_NAME 'require_confirm_order' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_binance_layout__lt_module_gt_ +// frozen bytecode for file apps/binance/layout.py, scope apps_binance_layout_require_confirm_transfer +static const byte fun_data_apps_binance_layout_require_confirm_transfer[78] = { + 0xd9,0x40,0x17, // prelude + 0x0a,0x2d, // names: require_confirm_transfer, msg + 0x80,0x12,0x44,0x85,0x0a,0x27,0x49,0x27,0x49,0x04, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0x27,0x04, // STORE_DEREF 4 + 0xb4, // LOAD_FAST 4 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'inputs' + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'outputs' + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x12,0x0e, // LOAD_GLOBAL '_confirm_transfer' + 0x25,0x04, // LOAD_DEREF 4 + 0x10,0x0d, // LOAD_CONST_STRING 'chunkify' + 0x12,0x2e, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'chunkify' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_binance_layout_require_confirm_transfer +// frozen bytecode for file apps/binance/layout.py, scope apps_binance_layout_require_confirm_transfer_make_input_output_pages +static const byte fun_data_apps_binance_layout_require_confirm_transfer_make_input_output_pages[52] = { + 0x6b,0x14, // prelude + 0x26,0x33,0x2d,0x34, // names: make_input_output_pages, *, msg, direction + 0x80,0x15,0x27,0x24,0x41,0x30, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x27, // LOAD_ATTR 'coins' + 0x5f, // GET_ITER_STACK + 0x4b,0x20, // FOR_ITER 32 + 0xc3, // STORE_FAST 3 + 0x25,0x00, // LOAD_DEREF 0 + 0x14,0x28, // LOAD_METHOD 'append' + 0xb2, // LOAD_FAST 2 + 0x12,0x04, // LOAD_GLOBAL 'format_amount' + 0xb3, // LOAD_FAST 3 + 0x13,0x29, // LOAD_ATTR 'amount' + 0x12,0x08, // LOAD_GLOBAL 'DECIMALS' + 0x34,0x02, // CALL_FUNCTION 2 + 0x10,0x2a, // LOAD_CONST_STRING ' ' + 0xf2, // BINARY_OP 27 __add__ + 0xb3, // LOAD_FAST 3 + 0x13,0x2b, // LOAD_ATTR 'denom' + 0xf2, // BINARY_OP 27 __add__ + 0xb1, // LOAD_FAST 1 + 0x13,0x2c, // LOAD_ATTR 'address' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x1e, // JUMP -34 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_binance_layout_require_confirm_transfer_make_input_output_pages = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_binance_layout_require_confirm_transfer_make_input_output_pages, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 52, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 38, + .line_info = fun_data_apps_binance_layout_require_confirm_transfer_make_input_output_pages + 6, + .line_info_top = fun_data_apps_binance_layout_require_confirm_transfer_make_input_output_pages + 12, + .opcodes = fun_data_apps_binance_layout_require_confirm_transfer_make_input_output_pages + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_binance_layout_require_confirm_transfer[] = { + &raw_code_apps_binance_layout_require_confirm_transfer_make_input_output_pages, +}; + +static const mp_raw_code_t raw_code_apps_binance_layout_require_confirm_transfer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_binance_layout_require_confirm_transfer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 78, + #endif + .children = (void *)&children_apps_binance_layout_require_confirm_transfer, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_binance_layout_require_confirm_transfer + 5, + .line_info_top = fun_data_apps_binance_layout_require_confirm_transfer + 14, + .opcodes = fun_data_apps_binance_layout_require_confirm_transfer + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_binance_layout__lt_module_gt_ +// frozen bytecode for file apps/binance/layout.py, scope apps_binance_layout__confirm_transfer +static const byte fun_data_apps_binance_layout__confirm_transfer[69] = { + 0x9a,0x50,0x10, // prelude + 0x0e,0x2f,0x0d, // names: _confirm_transfer, inputs_outputs, chunkify + 0x80,0x2a,0x4b,0x50,0x2a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0f, // LOAD_CONST_STRING 'confirm_output' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x0f, // IMPORT_FROM 'confirm_output' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x30, // LOAD_GLOBAL 'enumerate' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x25, // FOR_ITER 37 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc3, // STORE_FAST 3 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0xc6, // STORE_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x12,0x31, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xd9, // BINARY_OP 2 __eq__ + 0xc7, // STORE_FAST 7 + 0xb2, // LOAD_FAST 2 + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x10,0x10, // LOAD_CONST_STRING 'hold' + 0xb7, // LOAD_FAST 7 + 0x10,0x0d, // LOAD_CONST_STRING 'chunkify' + 0xb1, // LOAD_FAST 1 + 0x34,0x84,0x03, // CALL_FUNCTION 515 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x19, // JUMP -39 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_binance_layout__confirm_transfer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_binance_layout__confirm_transfer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 69, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 20, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_binance_layout__confirm_transfer + 6, + .line_info_top = fun_data_apps_binance_layout__confirm_transfer + 11, + .opcodes = fun_data_apps_binance_layout__confirm_transfer + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_binance_layout__lt_module_gt_ +// frozen bytecode for file apps/binance/layout.py, scope apps_binance_layout_require_confirm_cancel +static const byte fun_data_apps_binance_layout_require_confirm_cancel[73] = { + 0xc1,0x40,0x16, // prelude + 0x11,0x2d, // names: require_confirm_cancel, msg + 0x80,0x33,0x22,0x22,0x22,0x20,0x2b,0x2b,0x72, // code info + 0x12,0x06, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x12,0x32, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'sender' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x13, // LOAD_CONST_STRING 'Pair:' + 0x12,0x32, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'symbol' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x15, // LOAD_CONST_STRING 'Order ID:' + 0x12,0x32, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'refid' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x10,0x10, // LOAD_CONST_STRING 'hold' + 0x52, // LOAD_CONST_TRUE + 0x10,0x17, // LOAD_CONST_STRING 'br_code' + 0x12,0x02, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x18, // LOAD_ATTR 'SignTx' + 0x34,0x84,0x03, // CALL_FUNCTION 515 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_binance_layout_require_confirm_cancel = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_binance_layout_require_confirm_cancel, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 73, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_apps_binance_layout_require_confirm_cancel + 5, + .line_info_top = fun_data_apps_binance_layout_require_confirm_cancel + 14, + .opcodes = fun_data_apps_binance_layout_require_confirm_cancel + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_binance_layout__lt_module_gt_ +// frozen bytecode for file apps/binance/layout.py, scope apps_binance_layout_require_confirm_order +static const byte fun_data_apps_binance_layout_require_confirm_order[143] = { + 0xe9,0x40,0x26, // prelude + 0x19,0x2d, // names: require_confirm_order, msg + 0x80,0x41,0x4b,0x29,0x25,0x29,0x45,0x43,0x22,0x22,0x22,0x20,0x2b,0x2b,0x25,0x2d,0x74, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1a, // LOAD_CONST_STRING 'BinanceOrderSide' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x1a, // IMPORT_FROM 'BinanceOrderSide' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'side' + 0xb1, // LOAD_FAST 1 + 0x13,0x1c, // LOAD_ATTR 'BUY' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x1d, // LOAD_CONST_STRING 'Buy' + 0xc2, // STORE_FAST 2 + 0x42,0x51, // JUMP 17 + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'side' + 0xb1, // LOAD_FAST 1 + 0x13,0x1e, // LOAD_ATTR 'SELL' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x1f, // LOAD_CONST_STRING 'Sell' + 0xc2, // STORE_FAST 2 + 0x42,0x43, // JUMP 3 + 0x10,0x20, // LOAD_CONST_STRING 'Unknown' + 0xc2, // STORE_FAST 2 + 0x12,0x06, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x12,0x32, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'sender' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x13, // LOAD_CONST_STRING 'Pair:' + 0x12,0x32, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'symbol' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x21, // LOAD_CONST_STRING 'Side:' + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x22, // LOAD_CONST_STRING 'Quantity:' + 0x12,0x04, // LOAD_GLOBAL 'format_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'quantity' + 0x12,0x08, // LOAD_GLOBAL 'DECIMALS' + 0x34,0x02, // CALL_FUNCTION 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x24, // LOAD_CONST_STRING 'Price:' + 0x12,0x04, // LOAD_GLOBAL 'format_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'price' + 0x12,0x08, // LOAD_GLOBAL 'DECIMALS' + 0x34,0x02, // CALL_FUNCTION 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x05, // BUILD_TUPLE 5 + 0x10,0x10, // LOAD_CONST_STRING 'hold' + 0x52, // LOAD_CONST_TRUE + 0x10,0x17, // LOAD_CONST_STRING 'br_code' + 0x12,0x02, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x18, // LOAD_ATTR 'SignTx' + 0x34,0x84,0x03, // CALL_FUNCTION 515 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_binance_layout_require_confirm_order = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_binance_layout_require_confirm_order, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 143, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_apps_binance_layout_require_confirm_order + 5, + .line_info_top = fun_data_apps_binance_layout_require_confirm_order + 22, + .opcodes = fun_data_apps_binance_layout_require_confirm_order + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_binance_layout__lt_module_gt_[] = { + &raw_code_apps_binance_layout_require_confirm_transfer, + &raw_code_apps_binance_layout__confirm_transfer, + &raw_code_apps_binance_layout_require_confirm_cancel, + &raw_code_apps_binance_layout_require_confirm_order, +}; + +static const mp_raw_code_t raw_code_apps_binance_layout__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_binance_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 82, + #endif + .children = (void *)&children_apps_binance_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_binance_layout__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_binance_layout__lt_module_gt_ + 16, + .opcodes = fun_data_apps_binance_layout__lt_module_gt_ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_binance_layout[53] = { + MP_QSTR_apps_slash_binance_slash_layout_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_format_amount, + MP_QSTR_trezor_dot_strings, + MP_QSTR_confirm_properties, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_DECIMALS, + MP_QSTR_helpers, + MP_QSTR_require_confirm_transfer, + MP_QSTR_inputs, + MP_QSTR_outputs, + MP_QSTR_chunkify, + MP_QSTR__confirm_transfer, + MP_QSTR_confirm_output, + MP_QSTR_hold, + MP_QSTR_require_confirm_cancel, + MP_QSTR_sender, + MP_QSTR_Pair_colon_, + MP_QSTR_symbol, + MP_QSTR_Order_space_ID_colon_, + MP_QSTR_refid, + MP_QSTR_br_code, + MP_QSTR_SignTx, + MP_QSTR_require_confirm_order, + MP_QSTR_BinanceOrderSide, + MP_QSTR_side, + MP_QSTR_BUY, + MP_QSTR_Buy, + MP_QSTR_SELL, + MP_QSTR_Sell, + MP_QSTR_Unknown, + MP_QSTR_Side_colon_, + MP_QSTR_Quantity_colon_, + MP_QSTR_quantity, + MP_QSTR_Price_colon_, + MP_QSTR_price, + MP_QSTR_make_input_output_pages, + MP_QSTR_coins, + MP_QSTR_append, + MP_QSTR_amount, + MP_QSTR__space_, + MP_QSTR_denom, + MP_QSTR_address, + MP_QSTR_msg, + MP_QSTR_bool, + MP_QSTR_inputs_outputs, + MP_QSTR_enumerate, + MP_QSTR_len, + MP_QSTR_str, + MP_QSTR__star_, + MP_QSTR_direction, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_binance_layout[7] = { + MP_ROM_QSTR(MP_QSTR_Confirm_space_input), + MP_ROM_QSTR(MP_QSTR_Confirm_space_output), + MP_ROM_QSTR(MP_QSTR_confirm_cancel), + MP_ROM_QSTR(MP_QSTR_Confirm_space_cancel), + MP_ROM_QSTR(MP_QSTR_Sender_space_address_colon_), + MP_ROM_QSTR(MP_QSTR_confirm_order), + MP_ROM_QSTR(MP_QSTR_Confirm_space_order), +}; + +static const mp_frozen_module_t frozen_module_apps_binance_layout = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_binance_layout, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_binance_layout, + }, + .rc = &raw_code_apps_binance_layout__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_binance_sign_tx +// - original source file: build/firmware/src/apps/binance/sign_tx.mpy +// - frozen file name: apps/binance/sign_tx.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/binance/sign_tx.py, scope apps_binance_sign_tx__lt_module_gt_ +static const byte fun_data_apps_binance_sign_tx__lt_module_gt_[33] = { + 0x08,0x0a, // prelude + 0x01, // names: + 0x40,0x4c,0x60,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'auto_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x02, // IMPORT_FROM 'auto_keychain' + 0x16,0x02, // STORE_NAME 'auto_keychain' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'auto_keychain' + 0x11,0x2c, // LOAD_NAME '__name__' + 0x34,0x01, // CALL_FUNCTION 1 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x04, // STORE_NAME 'sign_tx' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_binance_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/binance/sign_tx.py, scope apps_binance_sign_tx_sign_tx +static const byte fun_data_apps_binance_sign_tx_sign_tx[364] = { + 0xd2,0x50,0x48, // prelude + 0x04,0x2d,0x2e, // names: sign_tx, envelope, keychain + 0x80,0x0c,0x2b,0x2b,0x2b,0x2b,0x7f,0x60,0x20,0x4b,0x4b,0x70,0x27,0x48,0x2d,0x49,0x45,0x43,0x23,0x23,0x6a,0x27,0x48,0x4a,0x29,0x2d,0x29,0x2d,0x29,0x4d,0x68,0x2f,0x55, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x05, // IMPORT_FROM 'wire' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'secp256k1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x07, // IMPORT_FROM 'secp256k1' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x09, // IMPORT_FROM 'sha256' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'MessageType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.enums' + 0x1c,0x0b, // IMPORT_FROM 'MessageType' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'BinanceCancelMsg' + 0x10,0x0e, // LOAD_CONST_STRING 'BinanceOrderMsg' + 0x10,0x0f, // LOAD_CONST_STRING 'BinanceSignedTx' + 0x10,0x10, // LOAD_CONST_STRING 'BinanceTransferMsg' + 0x10,0x11, // LOAD_CONST_STRING 'BinanceTxRequest' + 0x2a,0x05, // BUILD_TUPLE 5 + 0x1b,0x12, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0d, // IMPORT_FROM 'BinanceCancelMsg' + 0xc6, // STORE_FAST 6 + 0x1c,0x0e, // IMPORT_FROM 'BinanceOrderMsg' + 0xc7, // STORE_FAST 7 + 0x1c,0x0f, // IMPORT_FROM 'BinanceSignedTx' + 0xc8, // STORE_FAST 8 + 0x1c,0x10, // IMPORT_FROM 'BinanceTransferMsg' + 0xc9, // STORE_FAST 9 + 0x1c,0x11, // IMPORT_FROM 'BinanceTxRequest' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'call_any' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x13, // IMPORT_FROM 'call_any' + 0xcb, // STORE_FAST 11 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x15, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x16, // IMPORT_NAME 'apps.common' + 0x1c,0x15, // IMPORT_FROM 'paths' + 0xcc, // STORE_FAST 12 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x17, // LOAD_CONST_STRING 'helpers' + 0x10,0x18, // LOAD_CONST_STRING 'layout' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x19, // IMPORT_NAME '' + 0x1c,0x17, // IMPORT_FROM 'helpers' + 0xcd, // STORE_FAST 13 + 0x1c,0x18, // IMPORT_FROM 'layout' + 0xce, // STORE_FAST 14 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'msg_count' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x1b, // LOAD_METHOD 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xbc, // LOAD_FAST 12 + 0x14,0x1c, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'address_n' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x1e, // LOAD_METHOD 'derive' + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xcf, // STORE_FAST 15 + 0xba, // LOAD_FAST 10 + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x10, // STORE_FAST_N 16 + 0xbb, // LOAD_FAST 11 + 0x24,0x10, // LOAD_FAST_N 16 + 0xb5, // LOAD_FAST 5 + 0x13,0x0d, // LOAD_ATTR 'BinanceCancelMsg' + 0xb5, // LOAD_FAST 5 + 0x13,0x0e, // LOAD_ATTR 'BinanceOrderMsg' + 0xb5, // LOAD_FAST 5 + 0x13,0x10, // LOAD_ATTR 'BinanceTransferMsg' + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x11, // STORE_FAST_N 17 + 0xb0, // LOAD_FAST 0 + 0x13,0x1f, // LOAD_ATTR 'source' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x1b, // LOAD_METHOD 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xbd, // LOAD_FAST 13 + 0x14,0x20, // LOAD_METHOD 'produce_json_for_signing' + 0xb0, // LOAD_FAST 0 + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x12, // STORE_FAST_N 18 + 0xb9, // LOAD_FAST 9 + 0x14,0x21, // LOAD_METHOD 'is_type_of' + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xbe, // LOAD_FAST 14 + 0x14,0x22, // LOAD_METHOD 'require_confirm_transfer' + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x74, // JUMP 52 + 0xb7, // LOAD_FAST 7 + 0x14,0x21, // LOAD_METHOD 'is_type_of' + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xbe, // LOAD_FAST 14 + 0x14,0x23, // LOAD_METHOD 'require_confirm_order' + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x5e, // JUMP 30 + 0xb6, // LOAD_FAST 6 + 0x14,0x21, // LOAD_METHOD 'is_type_of' + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xbe, // LOAD_FAST 14 + 0x14,0x24, // LOAD_METHOD 'require_confirm_cancel' + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x48, // JUMP 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x25, // LOAD_METHOD 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x24,0x12, // LOAD_FAST_N 18 + 0x14,0x26, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x27, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x13, // STORE_FAST_N 19 + 0xb3, // LOAD_FAST 3 + 0x14,0x28, // LOAD_METHOD 'sign' + 0xbf, // LOAD_FAST 15 + 0x14,0x29, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0x24,0x13, // LOAD_FAST_N 19 + 0x36,0x02, // CALL_METHOD 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x22,0x80,0x41, // LOAD_CONST_SMALL_INT 65 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x26,0x14, // STORE_FAST_N 20 + 0xb8, // LOAD_FAST 8 + 0x10,0x2a, // LOAD_CONST_STRING 'signature' + 0x24,0x14, // LOAD_FAST_N 20 + 0x10,0x2b, // LOAD_CONST_STRING 'public_key' + 0xbf, // LOAD_FAST 15 + 0x14,0x2b, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_binance_sign_tx_sign_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_binance_sign_tx_sign_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 364, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 27, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_binance_sign_tx_sign_tx + 6, + .line_info_top = fun_data_apps_binance_sign_tx_sign_tx + 39, + .opcodes = fun_data_apps_binance_sign_tx_sign_tx + 39, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_binance_sign_tx__lt_module_gt_[] = { + &raw_code_apps_binance_sign_tx_sign_tx, +}; + +static const mp_raw_code_t raw_code_apps_binance_sign_tx__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_binance_sign_tx__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = (void *)&children_apps_binance_sign_tx__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_binance_sign_tx__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_binance_sign_tx__lt_module_gt_ + 7, + .opcodes = fun_data_apps_binance_sign_tx__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_binance_sign_tx[47] = { + MP_QSTR_apps_slash_binance_slash_sign_tx_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_auto_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_sign_tx, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_secp256k1, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_MessageType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_BinanceCancelMsg, + MP_QSTR_BinanceOrderMsg, + MP_QSTR_BinanceSignedTx, + MP_QSTR_BinanceTransferMsg, + MP_QSTR_BinanceTxRequest, + MP_QSTR_trezor_dot_messages, + MP_QSTR_call_any, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_helpers, + MP_QSTR_layout, + MP_QSTR_, + MP_QSTR_msg_count, + MP_QSTR_DataError, + MP_QSTR_validate_path, + MP_QSTR_address_n, + MP_QSTR_derive, + MP_QSTR_source, + MP_QSTR_produce_json_for_signing, + MP_QSTR_is_type_of, + MP_QSTR_require_confirm_transfer, + MP_QSTR_require_confirm_order, + MP_QSTR_require_confirm_cancel, + MP_QSTR_ProcessError, + MP_QSTR_encode, + MP_QSTR_digest, + MP_QSTR_sign, + MP_QSTR_private_key, + MP_QSTR_signature, + MP_QSTR_public_key, + MP_QSTR___name__, + MP_QSTR_envelope, + MP_QSTR_keychain, +}; + +// constants +static const mp_obj_str_t const_obj_apps_binance_sign_tx_0 = {{&mp_type_str}, 41720, 32, (const byte*)"\x4d\x75\x6c\x74\x69\x70\x6c\x65\x20\x6d\x65\x73\x73\x61\x67\x65\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_binance_sign_tx_2 = {{&mp_type_str}, 45507, 26, (const byte*)"\x69\x6e\x70\x75\x74\x20\x6d\x65\x73\x73\x61\x67\x65\x20\x75\x6e\x72\x65\x63\x6f\x67\x6e\x69\x7a\x65\x64"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_binance_sign_tx[3] = { + MP_ROM_PTR(&const_obj_apps_binance_sign_tx_0), + MP_ROM_QSTR(MP_QSTR_Source_space_is_space_invalid_dot_), + MP_ROM_PTR(&const_obj_apps_binance_sign_tx_2), +}; + +static const mp_frozen_module_t frozen_module_apps_binance_sign_tx = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_binance_sign_tx, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_binance_sign_tx, + }, + .rc = &raw_code_apps_binance_sign_tx__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_BinanceOrderSide +// - original source file: build/firmware/src/trezor/enums/BinanceOrderSide.mpy +// - frozen file name: trezor/enums/BinanceOrderSide.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/BinanceOrderSide.py, scope trezor_enums_BinanceOrderSide__lt_module_gt_ +static const byte fun_data_trezor_enums_BinanceOrderSide__lt_module_gt_[18] = { + 0x00,0x0a, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'SIDE_UNKNOWN' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'BUY' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'SELL' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_BinanceOrderSide__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_BinanceOrderSide__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_BinanceOrderSide__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_BinanceOrderSide__lt_module_gt_ + 7, + .opcodes = fun_data_trezor_enums_BinanceOrderSide__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_BinanceOrderSide[5] = { + MP_QSTR_trezor_slash_enums_slash_BinanceOrderSide_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_SIDE_UNKNOWN, + MP_QSTR_BUY, + MP_QSTR_SELL, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_BinanceOrderSide = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_BinanceOrderSide, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_BinanceOrderSide__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_BinanceOrderType +// - original source file: build/firmware/src/trezor/enums/BinanceOrderType.mpy +// - frozen file name: trezor/enums/BinanceOrderType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/BinanceOrderType.py, scope trezor_enums_BinanceOrderType__lt_module_gt_ +static const byte fun_data_trezor_enums_BinanceOrderType__lt_module_gt_[22] = { + 0x00,0x0c, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'OT_UNKNOWN' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'MARKET' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'LIMIT' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x05, // STORE_NAME 'OT_RESERVED' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_BinanceOrderType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_BinanceOrderType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_BinanceOrderType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_BinanceOrderType__lt_module_gt_ + 8, + .opcodes = fun_data_trezor_enums_BinanceOrderType__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_BinanceOrderType[6] = { + MP_QSTR_trezor_slash_enums_slash_BinanceOrderType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_OT_UNKNOWN, + MP_QSTR_MARKET, + MP_QSTR_LIMIT, + MP_QSTR_OT_RESERVED, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_BinanceOrderType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_BinanceOrderType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_BinanceOrderType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_BinanceTimeInForce +// - original source file: build/firmware/src/trezor/enums/BinanceTimeInForce.mpy +// - frozen file name: trezor/enums/BinanceTimeInForce.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/BinanceTimeInForce.py, scope trezor_enums_BinanceTimeInForce__lt_module_gt_ +static const byte fun_data_trezor_enums_BinanceTimeInForce__lt_module_gt_[22] = { + 0x00,0x0c, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'TIF_UNKNOWN' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'GTE' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'TIF_RESERVED' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x05, // STORE_NAME 'IOC' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_BinanceTimeInForce__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_BinanceTimeInForce__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_BinanceTimeInForce__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_BinanceTimeInForce__lt_module_gt_ + 8, + .opcodes = fun_data_trezor_enums_BinanceTimeInForce__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_BinanceTimeInForce[6] = { + MP_QSTR_trezor_slash_enums_slash_BinanceTimeInForce_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_TIF_UNKNOWN, + MP_QSTR_GTE, + MP_QSTR_TIF_RESERVED, + MP_QSTR_IOC, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_BinanceTimeInForce = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_BinanceTimeInForce, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_BinanceTimeInForce__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano___init__ +// - original source file: build/firmware/src/apps/cardano/__init__.mpy +// - frozen file name: apps/cardano/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/__init__.py, scope apps_cardano___init____lt_module_gt_ +static const byte fun_data_apps_cardano___init____lt_module_gt_[5] = { + 0x00,0x02, // prelude + 0x01, // names: + // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 5, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano___init____lt_module_gt_ + 3, + .opcodes = fun_data_apps_cardano___init____lt_module_gt_ + 3, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano___init__[2] = { + MP_QSTR_apps_slash_cardano_slash___init___dot_py, + MP_QSTR__lt_module_gt_, +}; + +static const mp_frozen_module_t frozen_module_apps_cardano___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps_cardano___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_addresses +// - original source file: build/firmware/src/apps/cardano/addresses.mpy +// - frozen file name: apps/cardano/addresses.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses__lt_module_gt_ +static const byte fun_data_apps_cardano_addresses__lt_module_gt_[361] = { + 0x48,0x9a,0x02, // prelude + 0x01, // names: + 0x6c,0x2c,0x2c,0x4c,0x2c,0x2c,0x2c,0x4c,0x80,0x08,0x20,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x68,0x20,0x24,0x24,0x24,0x24,0x68,0x20,0x24,0x24,0x24,0x68,0x67,0x60,0x64,0x40,0x84,0x3d,0x84,0x55,0x84,0x10,0x64,0x60,0x84,0x0a,0x84,0x07,0x64,0x40,0x84,0x24,0x84,0x08,0x84,0x07,0x84,0x07,0x84,0x0c,0x64,0x20,0x84,0x13,0x64,0x20,0x84,0x0a,0x84,0x0b,0x84,0x10,0x84,0x0f,0x84,0x0b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'base58' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x04, // IMPORT_FROM 'base58' + 0x16,0x04, // STORE_NAME 'base58' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'CardanoAddressType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.enums' + 0x1c,0x06, // IMPORT_FROM 'CardanoAddressType' + 0x16,0x06, // STORE_NAME 'CardanoAddressType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.wire' + 0x1c,0x08, // IMPORT_FROM 'ProcessError' + 0x16,0x08, // STORE_NAME 'ProcessError' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0a, // LOAD_CONST_STRING 'byron_addresses' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME '' + 0x1c,0x0a, // IMPORT_FROM 'byron_addresses' + 0x16,0x0a, // STORE_NAME 'byron_addresses' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0c, // LOAD_CONST_STRING 'bech32' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'helpers' + 0x1c,0x0c, // IMPORT_FROM 'bech32' + 0x16,0x0c, // STORE_NAME 'bech32' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0e, // LOAD_CONST_STRING 'SCHEMA_STAKING_ANY_ACCOUNT' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'helpers.paths' + 0x1c,0x0e, // IMPORT_FROM 'SCHEMA_STAKING_ANY_ACCOUNT' + 0x16,0x0e, // STORE_NAME 'SCHEMA_STAKING_ANY_ACCOUNT' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x10, // LOAD_CONST_STRING 'get_public_key_hash' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'helpers.utils' + 0x1c,0x10, // IMPORT_FROM 'get_public_key_hash' + 0x16,0x10, // STORE_NAME 'get_public_key_hash' + 0x59, // POP_TOP + 0x11,0x06, // LOAD_NAME 'CardanoAddressType' + 0x13,0x12, // LOAD_ATTR 'BASE' + 0x11,0x06, // LOAD_NAME 'CardanoAddressType' + 0x13,0x13, // LOAD_ATTR 'BASE_SCRIPT_KEY' + 0x11,0x06, // LOAD_NAME 'CardanoAddressType' + 0x13,0x14, // LOAD_ATTR 'BASE_KEY_SCRIPT' + 0x11,0x06, // LOAD_NAME 'CardanoAddressType' + 0x13,0x15, // LOAD_ATTR 'BASE_SCRIPT_SCRIPT' + 0x11,0x06, // LOAD_NAME 'CardanoAddressType' + 0x13,0x16, // LOAD_ATTR 'POINTER' + 0x11,0x06, // LOAD_NAME 'CardanoAddressType' + 0x13,0x17, // LOAD_ATTR 'POINTER_SCRIPT' + 0x11,0x06, // LOAD_NAME 'CardanoAddressType' + 0x13,0x18, // LOAD_ATTR 'ENTERPRISE' + 0x11,0x06, // LOAD_NAME 'CardanoAddressType' + 0x13,0x19, // LOAD_ATTR 'ENTERPRISE_SCRIPT' + 0x11,0x06, // LOAD_NAME 'CardanoAddressType' + 0x13,0x1a, // LOAD_ATTR 'REWARD' + 0x11,0x06, // LOAD_NAME 'CardanoAddressType' + 0x13,0x1b, // LOAD_ATTR 'REWARD_SCRIPT' + 0x2a,0x0a, // BUILD_TUPLE 10 + 0x16,0x53, // STORE_NAME 'ADDRESS_TYPES_SHELLEY' + 0x11,0x06, // LOAD_NAME 'CardanoAddressType' + 0x13,0x12, // LOAD_ATTR 'BASE' + 0x11,0x06, // LOAD_NAME 'CardanoAddressType' + 0x13,0x14, // LOAD_ATTR 'BASE_KEY_SCRIPT' + 0x11,0x06, // LOAD_NAME 'CardanoAddressType' + 0x13,0x16, // LOAD_ATTR 'POINTER' + 0x11,0x06, // LOAD_NAME 'CardanoAddressType' + 0x13,0x18, // LOAD_ATTR 'ENTERPRISE' + 0x11,0x06, // LOAD_NAME 'CardanoAddressType' + 0x13,0x1c, // LOAD_ATTR 'BYRON' + 0x2a,0x05, // BUILD_TUPLE 5 + 0x16,0x54, // STORE_NAME 'ADDRESS_TYPES_PAYMENT_KEY' + 0x11,0x06, // LOAD_NAME 'CardanoAddressType' + 0x13,0x13, // LOAD_ATTR 'BASE_SCRIPT_KEY' + 0x11,0x06, // LOAD_NAME 'CardanoAddressType' + 0x13,0x15, // LOAD_ATTR 'BASE_SCRIPT_SCRIPT' + 0x11,0x06, // LOAD_NAME 'CardanoAddressType' + 0x13,0x17, // LOAD_ATTR 'POINTER_SCRIPT' + 0x11,0x06, // LOAD_NAME 'CardanoAddressType' + 0x13,0x19, // LOAD_ATTR 'ENTERPRISE_SCRIPT' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x16,0x55, // STORE_NAME 'ADDRESS_TYPES_PAYMENT_SCRIPT' + 0x11,0x54, // LOAD_NAME 'ADDRESS_TYPES_PAYMENT_KEY' + 0x11,0x55, // LOAD_NAME 'ADDRESS_TYPES_PAYMENT_SCRIPT' + 0xf2, // BINARY_OP 27 __add__ + 0x16,0x56, // STORE_NAME 'ADDRESS_TYPES_PAYMENT' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x1d, // STORE_NAME 'assert_params_cond' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x1e, // STORE_NAME 'validate_address_parameters' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x2a, // STORE_NAME '_validate_address_parameters_structure' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x2b, // STORE_NAME '_validate_base_address_staking_info' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x2d, // STORE_NAME '_validate_script_hash' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x2f, // STORE_NAME 'validate_output_address_parameters' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x30, // STORE_NAME 'validate_cvote_payment_address_parameters' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x31, // STORE_NAME 'assert_cond' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x32, // STORE_NAME '_validate_and_get_type' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x36, // STORE_NAME 'validate_output_address' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x37, // STORE_NAME 'validate_reward_address' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x38, // STORE_NAME 'validate_cvote_payment_address' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x39, // STORE_NAME 'get_bytes_unsafe' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x3c, // STORE_NAME 'get_type' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x16,0x3d, // STORE_NAME '_get_bech32_hrp' + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x16,0x44, // STORE_NAME '_get_network_id' + 0x32,0x10, // MAKE_FUNCTION 16 + 0x16,0x45, // STORE_NAME 'derive_human_readable' + 0x32,0x11, // MAKE_FUNCTION 17 + 0x16,0x46, // STORE_NAME 'encode_human_readable' + 0x32,0x12, // MAKE_FUNCTION 18 + 0x16,0x48, // STORE_NAME 'derive_bytes' + 0x32,0x13, // MAKE_FUNCTION 19 + 0x16,0x4a, // STORE_NAME '_derive_shelley_address' + 0x32,0x14, // MAKE_FUNCTION 20 + 0x16,0x4d, // STORE_NAME '_get_payment_part' + 0x32,0x15, // MAKE_FUNCTION 21 + 0x16,0x4e, // STORE_NAME '_get_staking_part' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses_assert_params_cond +static const byte fun_data_apps_cardano_addresses_assert_params_cond[19] = { + 0x11,0x0a, // prelude + 0x1d,0x57, // names: assert_params_cond, condition + 0x80,0x37,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x08, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses_assert_params_cond = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_addresses_assert_params_cond, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_apps_cardano_addresses_assert_params_cond + 4, + .line_info_top = fun_data_apps_cardano_addresses_assert_params_cond + 7, + .opcodes = fun_data_apps_cardano_addresses_assert_params_cond + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses_validate_address_parameters +static const byte fun_data_apps_cardano_addresses_validate_address_parameters[353] = { + 0x59,0x56, // prelude + 0x1e,0x58, // names: validate_address_parameters, parameters + 0x80,0x3e,0x4b,0x26,0x24,0x24,0x24,0x24,0x24,0x43,0x27,0x4e,0x27,0x29,0x23,0x69,0x27,0x26,0x23,0x69,0x27,0x29,0x4b,0x27,0x26,0x4b,0x27,0x29,0x4e,0x27,0x26,0x4e,0x27,0x4c,0x27,0x48,0x27,0x29,0x4e,0x27,0x6a, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1f, // LOAD_CONST_STRING 'seed' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME '' + 0x1c,0x1f, // IMPORT_FROM 'seed' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x2a, // LOAD_GLOBAL '_validate_address_parameters_structure' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'address_type' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'address_n' + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'address_n_staking' + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'script_payment_hash' + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x24, // LOAD_ATTR 'is_shelley_path' + 0xc6, // STORE_FAST 6 + 0x12,0x06, // LOAD_GLOBAL 'CardanoAddressType' + 0xc7, // STORE_FAST 7 + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x13,0x1c, // LOAD_ATTR 'BYRON' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x1d, // LOAD_GLOBAL 'assert_params_cond' + 0xb1, // LOAD_FAST 1 + 0x14,0x25, // LOAD_METHOD 'is_byron_path' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0xf5,0x81, // JUMP 245 + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x13,0x12, // LOAD_ATTR 'BASE' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x12,0x1d, // LOAD_GLOBAL 'assert_params_cond' + 0xb6, // LOAD_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x2b, // LOAD_GLOBAL '_validate_base_address_staking_info' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'staking_key_hash' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0xd9,0x81, // JUMP 217 + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x13,0x13, // LOAD_ATTR 'BASE_SCRIPT_KEY' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x2d, // LOAD_GLOBAL '_validate_script_hash' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x2b, // LOAD_GLOBAL '_validate_base_address_staking_info' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'staking_key_hash' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0xc0,0x81, // JUMP 192 + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x13,0x14, // LOAD_ATTR 'BASE_KEY_SCRIPT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x1d, // LOAD_GLOBAL 'assert_params_cond' + 0xb6, // LOAD_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x2d, // LOAD_GLOBAL '_validate_script_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'script_staking_hash' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0xa5,0x81, // JUMP 165 + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x13,0x15, // LOAD_ATTR 'BASE_SCRIPT_SCRIPT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x12,0x2d, // LOAD_GLOBAL '_validate_script_hash' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x2d, // LOAD_GLOBAL '_validate_script_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'script_staking_hash' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x8d,0x81, // JUMP 141 + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x13,0x16, // LOAD_ATTR 'POINTER' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0x12,0x1d, // LOAD_GLOBAL 'assert_params_cond' + 0xb6, // LOAD_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x1d, // LOAD_GLOBAL 'assert_params_cond' + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'certificate_pointer' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0xef,0x80, // JUMP 111 + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x13,0x17, // LOAD_ATTR 'POINTER_SCRIPT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x2d, // LOAD_GLOBAL '_validate_script_hash' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x1d, // LOAD_GLOBAL 'assert_params_cond' + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'certificate_pointer' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0xd4,0x80, // JUMP 84 + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x13,0x18, // LOAD_ATTR 'ENTERPRISE' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x1d, // LOAD_GLOBAL 'assert_params_cond' + 0xb6, // LOAD_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0xc1,0x80, // JUMP 65 + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x13,0x19, // LOAD_ATTR 'ENTERPRISE_SCRIPT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x2d, // LOAD_GLOBAL '_validate_script_hash' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x72, // JUMP 50 + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x13,0x1a, // LOAD_ATTR 'REWARD' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0x12,0x1d, // LOAD_GLOBAL 'assert_params_cond' + 0xb6, // LOAD_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x1d, // LOAD_GLOBAL 'assert_params_cond' + 0x12,0x0e, // LOAD_GLOBAL 'SCHEMA_STAKING_ANY_ACCOUNT' + 0x14,0x29, // LOAD_METHOD 'match' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x54, // JUMP 20 + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x13,0x1b, // LOAD_ATTR 'REWARD_SCRIPT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x2d, // LOAD_GLOBAL '_validate_script_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'script_staking_hash' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x43, // JUMP 3 + 0x12,0x59, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses_validate_address_parameters = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_addresses_validate_address_parameters, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 353, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_apps_cardano_addresses_validate_address_parameters + 4, + .line_info_top = fun_data_apps_cardano_addresses_validate_address_parameters + 45, + .opcodes = fun_data_apps_cardano_addresses_validate_address_parameters + 45, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses__validate_address_parameters_structure +static const byte fun_data_apps_cardano_addresses__validate_address_parameters_structure[205] = { + 0x71,0x46, // prelude + 0x2a,0x58, // names: _validate_address_parameters_structure, parameters + 0x80,0x7b,0x24,0x24,0x24,0x24,0x24,0x24,0x43,0x22,0x69,0x40,0x69,0x40,0x69,0x40,0x69,0x40,0x6a,0x60,0x6a,0x60,0x8b,0x07,0x8b,0x07,0x8b,0x07,0x8b,0x07,0x8c,0x09,0x2a, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'address_n' + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'address_n_staking' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'staking_key_hash' + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'certificate_pointer' + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'script_payment_hash' + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'script_staking_hash' + 0xc6, // STORE_FAST 6 + 0x12,0x06, // LOAD_GLOBAL 'CardanoAddressType' + 0xc7, // STORE_FAST 7 + 0x2c,0x0b, // BUILD_MAP 11 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x2a,0x03, // BUILD_TUPLE 3 + 0xb7, // LOAD_FAST 7 + 0x13,0x12, // LOAD_ATTR 'BASE' + 0x62, // STORE_MAP + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x2a,0x03, // BUILD_TUPLE 3 + 0xb7, // LOAD_FAST 7 + 0x13,0x14, // LOAD_ATTR 'BASE_KEY_SCRIPT' + 0x62, // STORE_MAP + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0x2a,0x03, // BUILD_TUPLE 3 + 0xb7, // LOAD_FAST 7 + 0x13,0x13, // LOAD_ATTR 'BASE_SCRIPT_KEY' + 0x62, // STORE_MAP + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x2a,0x03, // BUILD_TUPLE 3 + 0xb7, // LOAD_FAST 7 + 0x13,0x15, // LOAD_ATTR 'BASE_SCRIPT_SCRIPT' + 0x62, // STORE_MAP + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x2a,0x04, // BUILD_TUPLE 4 + 0xb7, // LOAD_FAST 7 + 0x13,0x16, // LOAD_ATTR 'POINTER' + 0x62, // STORE_MAP + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb6, // LOAD_FAST 6 + 0x2a,0x04, // BUILD_TUPLE 4 + 0xb7, // LOAD_FAST 7 + 0x13,0x17, // LOAD_ATTR 'POINTER_SCRIPT' + 0x62, // STORE_MAP + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x2a,0x05, // BUILD_TUPLE 5 + 0xb7, // LOAD_FAST 7 + 0x13,0x18, // LOAD_ATTR 'ENTERPRISE' + 0x62, // STORE_MAP + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0x2a,0x05, // BUILD_TUPLE 5 + 0xb7, // LOAD_FAST 7 + 0x13,0x19, // LOAD_ATTR 'ENTERPRISE_SCRIPT' + 0x62, // STORE_MAP + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x2a,0x05, // BUILD_TUPLE 5 + 0xb7, // LOAD_FAST 7 + 0x13,0x1c, // LOAD_ATTR 'BYRON' + 0x62, // STORE_MAP + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x2a,0x05, // BUILD_TUPLE 5 + 0xb7, // LOAD_FAST 7 + 0x13,0x1a, // LOAD_ATTR 'REWARD' + 0x62, // STORE_MAP + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x2a,0x05, // BUILD_TUPLE 5 + 0xb7, // LOAD_FAST 7 + 0x13,0x1b, // LOAD_ATTR 'REWARD_SCRIPT' + 0x62, // STORE_MAP + 0xc8, // STORE_FAST 8 + 0x12,0x1d, // LOAD_GLOBAL 'assert_params_cond' + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'address_type' + 0xb8, // LOAD_FAST 8 + 0xdd, // BINARY_OP 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x1d, // LOAD_GLOBAL 'assert_params_cond' + 0x12,0x5a, // LOAD_GLOBAL 'any' + 0xb8, // LOAD_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'address_type' + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xd3, // UNARY_OP 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses__validate_address_parameters_structure = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_addresses__validate_address_parameters_structure, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 205, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_cardano_addresses__validate_address_parameters_structure + 4, + .line_info_top = fun_data_apps_cardano_addresses__validate_address_parameters_structure + 37, + .opcodes = fun_data_apps_cardano_addresses__validate_address_parameters_structure + 37, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses__validate_base_address_staking_info +static const byte fun_data_apps_cardano_addresses__validate_base_address_staking_info[76] = { + 0x32,0x14, // prelude + 0x2b,0x5b,0x26, // names: _validate_base_address_staking_info, staking_path, staking_key_hash + 0x80,0xd1,0x4b,0x4a,0x23,0x51,0x4e, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x2c, // LOAD_CONST_STRING 'ADDRESS_KEY_HASH_SIZE' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'helpers' + 0x1c,0x2c, // IMPORT_FROM 'ADDRESS_KEY_HASH_SIZE' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x1d, // LOAD_GLOBAL 'assert_params_cond' + 0xb1, // LOAD_FAST 1 + 0x46,0x01, // JUMP_IF_FALSE_OR_POP 1 + 0xb0, // LOAD_FAST 0 + 0xd3, // UNARY_OP 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x1d, // LOAD_GLOBAL 'assert_params_cond' + 0x12,0x5c, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x58, // JUMP 24 + 0xb0, // LOAD_FAST 0 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x1d, // LOAD_GLOBAL 'assert_params_cond' + 0x12,0x0e, // LOAD_GLOBAL 'SCHEMA_STAKING_ANY_ACCOUNT' + 0x14,0x29, // LOAD_METHOD 'match' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0x12,0x08, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses__validate_base_address_staking_info = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_addresses__validate_base_address_staking_info, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 76, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_apps_cardano_addresses__validate_base_address_staking_info + 5, + .line_info_top = fun_data_apps_cardano_addresses__validate_base_address_staking_info + 12, + .opcodes = fun_data_apps_cardano_addresses__validate_base_address_staking_info + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses__validate_script_hash +static const byte fun_data_apps_cardano_addresses__validate_script_hash[38] = { + 0x21,0x0a, // prelude + 0x2d,0x5d, // names: _validate_script_hash, script_hash + 0x80,0xde,0x4b, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x2e, // LOAD_CONST_STRING 'SCRIPT_HASH_SIZE' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'helpers' + 0x1c,0x2e, // IMPORT_FROM 'SCRIPT_HASH_SIZE' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x1d, // LOAD_GLOBAL 'assert_params_cond' + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x46,0x07, // JUMP_IF_FALSE_OR_POP 7 + 0x12,0x5c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses__validate_script_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_addresses__validate_script_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_cardano_addresses__validate_script_hash + 4, + .line_info_top = fun_data_apps_cardano_addresses__validate_script_hash + 7, + .opcodes = fun_data_apps_cardano_addresses__validate_script_hash + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses_validate_output_address_parameters +static const byte fun_data_apps_cardano_addresses_validate_output_address_parameters[27] = { + 0x19,0x0c, // prelude + 0x2f,0x58, // names: validate_output_address_parameters, parameters + 0x80,0xe6,0x66,0x20, // code info + 0x12,0x1e, // LOAD_GLOBAL 'validate_address_parameters' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x1d, // LOAD_GLOBAL 'assert_params_cond' + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'address_type' + 0x12,0x54, // LOAD_GLOBAL 'ADDRESS_TYPES_PAYMENT_KEY' + 0xdd, // BINARY_OP 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses_validate_output_address_parameters = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_addresses_validate_output_address_parameters, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_apps_cardano_addresses_validate_output_address_parameters + 4, + .line_info_top = fun_data_apps_cardano_addresses_validate_output_address_parameters + 8, + .opcodes = fun_data_apps_cardano_addresses_validate_output_address_parameters + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses_validate_cvote_payment_address_parameters +static const byte fun_data_apps_cardano_addresses_validate_cvote_payment_address_parameters[26] = { + 0x19,0x0a, // prelude + 0x30,0x58, // names: validate_cvote_payment_address_parameters, parameters + 0x80,0xf0,0x26, // code info + 0x12,0x1e, // LOAD_GLOBAL 'validate_address_parameters' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x1d, // LOAD_GLOBAL 'assert_params_cond' + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'address_type' + 0x12,0x53, // LOAD_GLOBAL 'ADDRESS_TYPES_SHELLEY' + 0xdd, // BINARY_OP 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses_validate_cvote_payment_address_parameters = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_addresses_validate_cvote_payment_address_parameters, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 48, + .line_info = fun_data_apps_cardano_addresses_validate_cvote_payment_address_parameters + 4, + .line_info_top = fun_data_apps_cardano_addresses_validate_cvote_payment_address_parameters + 7, + .opcodes = fun_data_apps_cardano_addresses_validate_cvote_payment_address_parameters + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses_assert_cond +static const byte fun_data_apps_cardano_addresses_assert_cond[19] = { + 0x11,0x0a, // prelude + 0x31,0x57, // names: assert_cond, condition + 0x80,0xf5,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x08, // LOAD_GLOBAL 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses_assert_cond = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_addresses_assert_cond, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 49, + .line_info = fun_data_apps_cardano_addresses_assert_cond + 4, + .line_info_top = fun_data_apps_cardano_addresses_assert_cond + 7, + .opcodes = fun_data_apps_cardano_addresses_assert_cond + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses__validate_and_get_type +static const byte fun_data_apps_cardano_addresses__validate_and_get_type[166] = { + 0x53,0x32, // prelude + 0x32,0x5e,0x5f,0x60, // names: _validate_and_get_type, address, protocol_magic, network_id + 0x80,0xfa,0x60,0x20,0x29,0x4c,0x26,0x46,0x28,0x2c,0x67,0x20,0x22,0x76,0x20,0x47,0x2d,0x68,0x29,0x49,0x47, // code info + 0x12,0x31, // LOAD_GLOBAL 'assert_cond' + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x31, // LOAD_GLOBAL 'assert_cond' + 0x12,0x5c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x39, // LOAD_GLOBAL 'get_bytes_unsafe' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x12,0x3c, // LOAD_GLOBAL 'get_type' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x12,0x06, // LOAD_GLOBAL 'CardanoAddressType' + 0x13,0x1c, // LOAD_ATTR 'BYRON' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x0a, // LOAD_GLOBAL 'byron_addresses' + 0x14,0x33, // LOAD_METHOD 'validate' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xd4,0x80, // JUMP 84 + 0xb4, // LOAD_FAST 4 + 0x12,0x53, // LOAD_GLOBAL 'ADDRESS_TYPES_SHELLEY' + 0xdd, // BINARY_OP 6 + 0x44,0xc6,0x80, // POP_JUMP_IF_FALSE 70 + 0x12,0x31, // LOAD_GLOBAL 'assert_cond' + 0x9d, // LOAD_CONST_SMALL_INT 29 + 0x12,0x5c, // LOAD_GLOBAL 'len' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0x22,0x80,0x41, // LOAD_CONST_SMALL_INT 65 + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_get_bech32_hrp' + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x14,0x34, // LOAD_METHOD 'rsplit' + 0x12,0x0c, // LOAD_GLOBAL 'bech32' + 0x13,0x35, // LOAD_ATTR 'HRP_SEPARATOR' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x36,0x02, // CALL_METHOD 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xc6, // STORE_FAST 6 + 0x12,0x31, // LOAD_GLOBAL 'assert_cond' + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x44, // LOAD_GLOBAL '_get_network_id' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x08, // LOAD_GLOBAL 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x47, // JUMP 7 + 0x12,0x08, // LOAD_GLOBAL 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses__validate_and_get_type = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_addresses__validate_and_get_type, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 166, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 50, + .line_info = fun_data_apps_cardano_addresses__validate_and_get_type + 6, + .line_info_top = fun_data_apps_cardano_addresses__validate_and_get_type + 27, + .opcodes = fun_data_apps_cardano_addresses__validate_and_get_type + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses_validate_output_address +static const byte fun_data_apps_cardano_addresses_validate_output_address[39] = { + 0x3b,0x12, // prelude + 0x36,0x5e,0x5f,0x60, // names: validate_output_address, address, protocol_magic, network_id + 0x90,0x1e,0x28,0x22,0x21, // code info + 0x12,0x32, // LOAD_GLOBAL '_validate_and_get_type' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc3, // STORE_FAST 3 + 0x12,0x31, // LOAD_GLOBAL 'assert_cond' + 0xb3, // LOAD_FAST 3 + 0x12,0x06, // LOAD_GLOBAL 'CardanoAddressType' + 0x13,0x1a, // LOAD_ATTR 'REWARD' + 0x12,0x06, // LOAD_GLOBAL 'CardanoAddressType' + 0x13,0x1b, // LOAD_ATTR 'REWARD_SCRIPT' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses_validate_output_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_addresses_validate_output_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 54, + .line_info = fun_data_apps_cardano_addresses_validate_output_address + 6, + .line_info_top = fun_data_apps_cardano_addresses_validate_output_address + 11, + .opcodes = fun_data_apps_cardano_addresses_validate_output_address + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses_validate_reward_address +static const byte fun_data_apps_cardano_addresses_validate_reward_address[37] = { + 0x3b,0x10, // prelude + 0x37,0x5e,0x5f,0x60, // names: validate_reward_address, address, protocol_magic, network_id + 0x90,0x26,0x28,0x22, // code info + 0x12,0x32, // LOAD_GLOBAL '_validate_and_get_type' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc3, // STORE_FAST 3 + 0x12,0x31, // LOAD_GLOBAL 'assert_cond' + 0xb3, // LOAD_FAST 3 + 0x12,0x06, // LOAD_GLOBAL 'CardanoAddressType' + 0x13,0x1a, // LOAD_ATTR 'REWARD' + 0x12,0x06, // LOAD_GLOBAL 'CardanoAddressType' + 0x13,0x1b, // LOAD_ATTR 'REWARD_SCRIPT' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses_validate_reward_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_addresses_validate_reward_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 55, + .line_info = fun_data_apps_cardano_addresses_validate_reward_address + 6, + .line_info_top = fun_data_apps_cardano_addresses_validate_reward_address + 10, + .opcodes = fun_data_apps_cardano_addresses_validate_reward_address + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses_validate_cvote_payment_address +static const byte fun_data_apps_cardano_addresses_validate_cvote_payment_address[28] = { + 0x3b,0x0e, // prelude + 0x38,0x5e,0x5f,0x60, // names: validate_cvote_payment_address, address, protocol_magic, network_id + 0x90,0x2f,0x28, // code info + 0x12,0x32, // LOAD_GLOBAL '_validate_and_get_type' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc3, // STORE_FAST 3 + 0x12,0x31, // LOAD_GLOBAL 'assert_cond' + 0xb3, // LOAD_FAST 3 + 0x12,0x53, // LOAD_GLOBAL 'ADDRESS_TYPES_SHELLEY' + 0xdd, // BINARY_OP 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses_validate_cvote_payment_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_addresses_validate_cvote_payment_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 56, + .line_info = fun_data_apps_cardano_addresses_validate_cvote_payment_address + 6, + .line_info_top = fun_data_apps_cardano_addresses_validate_cvote_payment_address + 9, + .opcodes = fun_data_apps_cardano_addresses_validate_cvote_payment_address + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses_get_bytes_unsafe +static const byte fun_data_apps_cardano_addresses_get_bytes_unsafe[65] = { + 0xd1,0x02,0x12, // prelude + 0x39,0x5e, // names: get_bytes_unsafe, address + 0x90,0x34,0x22,0x51,0x22,0x51,0x4d, // code info + 0x48,0x0a, // SETUP_EXCEPT 10 + 0x12,0x0c, // LOAD_GLOBAL 'bech32' + 0x14,0x3a, // LOAD_METHOD 'decode_unsafe' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0x4a,0x27, // POP_EXCEPT_JUMP 39 + 0x57, // DUP_TOP + 0x12,0x61, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0x59, // POP_TOP + 0x48,0x0a, // SETUP_EXCEPT 10 + 0x12,0x04, // LOAD_GLOBAL 'base58' + 0x14,0x3b, // LOAD_METHOD 'decode' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0x4a,0x11, // POP_EXCEPT_JUMP 17 + 0x57, // DUP_TOP + 0x12,0x61, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses_get_bytes_unsafe = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_addresses_get_bytes_unsafe, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 65, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 2, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 57, + .line_info = fun_data_apps_cardano_addresses_get_bytes_unsafe + 5, + .line_info_top = fun_data_apps_cardano_addresses_get_bytes_unsafe + 12, + .opcodes = fun_data_apps_cardano_addresses_get_bytes_unsafe + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses_get_type +static const byte fun_data_apps_cardano_addresses_get_type[12] = { + 0x11,0x08, // prelude + 0x3c,0x5e, // names: get_type, address + 0x90,0x40, // code info + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xf1, // BINARY_OP 26 __rshift__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses_get_type = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_addresses_get_type, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 60, + .line_info = fun_data_apps_cardano_addresses_get_type + 4, + .line_info_top = fun_data_apps_cardano_addresses_get_type + 6, + .opcodes = fun_data_apps_cardano_addresses_get_type + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses__get_bech32_hrp +static const byte fun_data_apps_cardano_addresses__get_bech32_hrp[93] = { + 0x32,0x1c, // prelude + 0x3d,0x20,0x60, // names: _get_bech32_hrp, address_type, network_id + 0x90,0x44,0x50,0x48,0x43,0x2e,0x28,0x44,0x46,0x28,0x44, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0c, // LOAD_CONST_STRING 'bech32' + 0x10,0x3e, // LOAD_CONST_STRING 'network_ids' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0d, // IMPORT_NAME 'helpers' + 0x1c,0x0c, // IMPORT_FROM 'bech32' + 0xc2, // STORE_FAST 2 + 0x1c,0x3e, // IMPORT_FROM 'network_ids' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x12,0x06, // LOAD_GLOBAL 'CardanoAddressType' + 0x13,0x1c, // LOAD_ATTR 'BYRON' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x61, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x12,0x06, // LOAD_GLOBAL 'CardanoAddressType' + 0x13,0x1a, // LOAD_ATTR 'REWARD' + 0x12,0x06, // LOAD_GLOBAL 'CardanoAddressType' + 0x13,0x1b, // LOAD_ATTR 'REWARD_SCRIPT' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb3, // LOAD_FAST 3 + 0x14,0x3f, // LOAD_METHOD 'is_mainnet' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x40, // LOAD_ATTR 'HRP_REWARD_ADDRESS' + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x13,0x41, // LOAD_ATTR 'HRP_TESTNET_REWARD_ADDRESS' + 0x63, // RETURN_VALUE + 0x42,0x50, // JUMP 16 + 0xb3, // LOAD_FAST 3 + 0x14,0x3f, // LOAD_METHOD 'is_mainnet' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x42, // LOAD_ATTR 'HRP_ADDRESS' + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x13,0x43, // LOAD_ATTR 'HRP_TESTNET_ADDRESS' + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses__get_bech32_hrp = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_addresses__get_bech32_hrp, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 93, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 61, + .line_info = fun_data_apps_cardano_addresses__get_bech32_hrp + 5, + .line_info_top = fun_data_apps_cardano_addresses__get_bech32_hrp + 16, + .opcodes = fun_data_apps_cardano_addresses__get_bech32_hrp + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses__get_network_id +static const byte fun_data_apps_cardano_addresses__get_network_id[12] = { + 0x11,0x08, // prelude + 0x44,0x5e, // names: _get_network_id, address + 0x90,0x57, // code info + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0xef, // BINARY_OP 24 __and__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses__get_network_id = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_addresses__get_network_id, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 68, + .line_info = fun_data_apps_cardano_addresses__get_network_id + 4, + .line_info_top = fun_data_apps_cardano_addresses__get_network_id + 6, + .opcodes = fun_data_apps_cardano_addresses__get_network_id + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses_derive_human_readable +static const byte fun_data_apps_cardano_addresses_derive_human_readable[26] = { + 0xc8,0x04,0x10, // prelude + 0x45,0x62,0x58,0x5f,0x60, // names: derive_human_readable, keychain, parameters, protocol_magic, network_id + 0x90,0x60,0x29, // code info + 0x12,0x48, // LOAD_GLOBAL 'derive_bytes' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x04, // CALL_FUNCTION 4 + 0xc4, // STORE_FAST 4 + 0x12,0x46, // LOAD_GLOBAL 'encode_human_readable' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses_derive_human_readable = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_addresses_derive_human_readable, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 69, + .line_info = fun_data_apps_cardano_addresses_derive_human_readable + 8, + .line_info_top = fun_data_apps_cardano_addresses_derive_human_readable + 11, + .opcodes = fun_data_apps_cardano_addresses_derive_human_readable + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses_encode_human_readable +static const byte fun_data_apps_cardano_addresses_encode_human_readable[65] = { + 0x31,0x14, // prelude + 0x46,0x63, // names: encode_human_readable, address_bytes + 0x90,0x65,0x26,0x28,0x28,0x26,0x2b,0x49, // code info + 0x12,0x3c, // LOAD_GLOBAL 'get_type' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x12,0x06, // LOAD_GLOBAL 'CardanoAddressType' + 0x13,0x1c, // LOAD_ATTR 'BYRON' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x04, // LOAD_GLOBAL 'base58' + 0x14,0x47, // LOAD_METHOD 'encode' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x12,0x53, // LOAD_GLOBAL 'ADDRESS_TYPES_SHELLEY' + 0xdd, // BINARY_OP 6 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x3d, // LOAD_GLOBAL '_get_bech32_hrp' + 0xb1, // LOAD_FAST 1 + 0x12,0x44, // LOAD_GLOBAL '_get_network_id' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc2, // STORE_FAST 2 + 0x12,0x0c, // LOAD_GLOBAL 'bech32' + 0x14,0x47, // LOAD_METHOD 'encode' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE + 0x12,0x61, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses_encode_human_readable = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_addresses_encode_human_readable, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 65, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 70, + .line_info = fun_data_apps_cardano_addresses_encode_human_readable + 4, + .line_info_top = fun_data_apps_cardano_addresses_encode_human_readable + 12, + .opcodes = fun_data_apps_cardano_addresses_encode_human_readable + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses_derive_bytes +static const byte fun_data_apps_cardano_addresses_derive_bytes[50] = { + 0xd0,0x04,0x16, // prelude + 0x48,0x62,0x58,0x5f,0x60, // names: derive_bytes, keychain, parameters, protocol_magic, network_id + 0x90,0x75,0x49,0x23,0x4e,0x48, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x20, // LOAD_ATTR 'address_type' + 0x12,0x06, // LOAD_GLOBAL 'CardanoAddressType' + 0x13,0x1c, // LOAD_ATTR 'BYRON' + 0xd9, // BINARY_OP 2 __eq__ + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x0a, // LOAD_GLOBAL 'byron_addresses' + 0x14,0x49, // LOAD_METHOD 'derive' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'address_n' + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0xc5, // STORE_FAST 5 + 0x42,0x48, // JUMP 8 + 0x12,0x4a, // LOAD_GLOBAL '_derive_shelley_address' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses_derive_bytes = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_addresses_derive_bytes, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 72, + .line_info = fun_data_apps_cardano_addresses_derive_bytes + 8, + .line_info_top = fun_data_apps_cardano_addresses_derive_bytes + 14, + .opcodes = fun_data_apps_cardano_addresses_derive_bytes + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses__derive_shelley_address +static const byte fun_data_apps_cardano_addresses__derive_shelley_address[49] = { + 0x53,0x14, // prelude + 0x4a,0x62,0x58,0x60, // names: _derive_shelley_address, keychain, parameters, network_id + 0x90,0x85,0x28,0x49,0x27,0x47, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x20, // LOAD_ATTR 'address_type' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xf0, // BINARY_OP 25 __lshift__ + 0xb2, // LOAD_FAST 2 + 0xed, // BINARY_OP 22 __or__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x14,0x4b, // LOAD_METHOD 'to_bytes' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x4c, // LOAD_CONST_STRING 'little' + 0x36,0x02, // CALL_METHOD 2 + 0xc4, // STORE_FAST 4 + 0x12,0x4d, // LOAD_GLOBAL '_get_payment_part' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0x12,0x4e, // LOAD_GLOBAL '_get_staking_part' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xf2, // BINARY_OP 27 __add__ + 0xb6, // LOAD_FAST 6 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses__derive_shelley_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_addresses__derive_shelley_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 74, + .line_info = fun_data_apps_cardano_addresses__derive_shelley_address + 6, + .line_info_top = fun_data_apps_cardano_addresses__derive_shelley_address + 12, + .opcodes = fun_data_apps_cardano_addresses__derive_shelley_address + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses__get_payment_part +static const byte fun_data_apps_cardano_addresses__get_payment_part[41] = { + 0x22,0x12, // prelude + 0x4d,0x62,0x58, // names: _get_payment_part, keychain, parameters + 0x90,0x91,0x25,0x29,0x25,0x44, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'address_n' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x10, // LOAD_GLOBAL 'get_public_key_hash' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'address_n' + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x23, // LOAD_ATTR 'script_payment_hash' + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x23, // LOAD_ATTR 'script_payment_hash' + 0x63, // RETURN_VALUE + 0x12,0x64, // LOAD_GLOBAL 'bytes' + 0x34,0x00, // CALL_FUNCTION 0 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses__get_payment_part = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_addresses__get_payment_part, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 77, + .line_info = fun_data_apps_cardano_addresses__get_payment_part + 5, + .line_info_top = fun_data_apps_cardano_addresses__get_payment_part + 11, + .opcodes = fun_data_apps_cardano_addresses__get_payment_part + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/addresses.py, scope apps_cardano_addresses__get_staking_part +static const byte fun_data_apps_cardano_addresses__get_staking_part[110] = { + 0x4a,0x24, // prelude + 0x4e,0x62,0x58, // names: _get_staking_part, keychain, parameters + 0x90,0x9c,0x4b,0x25,0x24,0x25,0x29,0x25,0x24,0x45,0x24,0x27,0x27,0x27,0x4a, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x4f, // LOAD_CONST_STRING 'variable_length_encode' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'helpers.utils' + 0x1c,0x4f, // IMPORT_FROM 'variable_length_encode' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x26, // LOAD_ATTR 'staking_key_hash' + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x26, // LOAD_ATTR 'staking_key_hash' + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x22, // LOAD_ATTR 'address_n_staking' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x10, // LOAD_GLOBAL 'get_public_key_hash' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x22, // LOAD_ATTR 'address_n_staking' + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x27, // LOAD_ATTR 'script_staking_hash' + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x27, // LOAD_ATTR 'script_staking_hash' + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x28, // LOAD_ATTR 'certificate_pointer' + 0x44,0x63, // POP_JUMP_IF_FALSE 35 + 0xb1, // LOAD_FAST 1 + 0x13,0x28, // LOAD_ATTR 'certificate_pointer' + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x13,0x50, // LOAD_ATTR 'block_index' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x13,0x51, // LOAD_ATTR 'tx_index' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x13,0x52, // LOAD_ATTR 'certificate_index' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc6, // STORE_FAST 6 + 0x12,0x64, // LOAD_GLOBAL 'bytes' + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xf2, // BINARY_OP 27 __add__ + 0xb6, // LOAD_FAST 6 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0x12,0x64, // LOAD_GLOBAL 'bytes' + 0x34,0x00, // CALL_FUNCTION 0 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_addresses__get_staking_part = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_addresses__get_staking_part, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 110, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 78, + .line_info = fun_data_apps_cardano_addresses__get_staking_part + 5, + .line_info_top = fun_data_apps_cardano_addresses__get_staking_part + 20, + .opcodes = fun_data_apps_cardano_addresses__get_staking_part + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_addresses__lt_module_gt_[] = { + &raw_code_apps_cardano_addresses_assert_params_cond, + &raw_code_apps_cardano_addresses_validate_address_parameters, + &raw_code_apps_cardano_addresses__validate_address_parameters_structure, + &raw_code_apps_cardano_addresses__validate_base_address_staking_info, + &raw_code_apps_cardano_addresses__validate_script_hash, + &raw_code_apps_cardano_addresses_validate_output_address_parameters, + &raw_code_apps_cardano_addresses_validate_cvote_payment_address_parameters, + &raw_code_apps_cardano_addresses_assert_cond, + &raw_code_apps_cardano_addresses__validate_and_get_type, + &raw_code_apps_cardano_addresses_validate_output_address, + &raw_code_apps_cardano_addresses_validate_reward_address, + &raw_code_apps_cardano_addresses_validate_cvote_payment_address, + &raw_code_apps_cardano_addresses_get_bytes_unsafe, + &raw_code_apps_cardano_addresses_get_type, + &raw_code_apps_cardano_addresses__get_bech32_hrp, + &raw_code_apps_cardano_addresses__get_network_id, + &raw_code_apps_cardano_addresses_derive_human_readable, + &raw_code_apps_cardano_addresses_encode_human_readable, + &raw_code_apps_cardano_addresses_derive_bytes, + &raw_code_apps_cardano_addresses__derive_shelley_address, + &raw_code_apps_cardano_addresses__get_payment_part, + &raw_code_apps_cardano_addresses__get_staking_part, +}; + +static const mp_raw_code_t raw_code_apps_cardano_addresses__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_addresses__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 361, + #endif + .children = (void *)&children_apps_cardano_addresses__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 22, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_addresses__lt_module_gt_ + 4, + .line_info_top = fun_data_apps_cardano_addresses__lt_module_gt_ + 80, + .opcodes = fun_data_apps_cardano_addresses__lt_module_gt_ + 80, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_addresses[101] = { + MP_QSTR_apps_slash_cardano_slash_addresses_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_base58, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_CardanoAddressType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_byron_addresses, + MP_QSTR_, + MP_QSTR_bech32, + MP_QSTR_helpers, + MP_QSTR_SCHEMA_STAKING_ANY_ACCOUNT, + MP_QSTR_helpers_dot_paths, + MP_QSTR_get_public_key_hash, + MP_QSTR_helpers_dot_utils, + MP_QSTR_BASE, + MP_QSTR_BASE_SCRIPT_KEY, + MP_QSTR_BASE_KEY_SCRIPT, + MP_QSTR_BASE_SCRIPT_SCRIPT, + MP_QSTR_POINTER, + MP_QSTR_POINTER_SCRIPT, + MP_QSTR_ENTERPRISE, + MP_QSTR_ENTERPRISE_SCRIPT, + MP_QSTR_REWARD, + MP_QSTR_REWARD_SCRIPT, + MP_QSTR_BYRON, + MP_QSTR_assert_params_cond, + MP_QSTR_validate_address_parameters, + MP_QSTR_seed, + MP_QSTR_address_type, + MP_QSTR_address_n, + MP_QSTR_address_n_staking, + MP_QSTR_script_payment_hash, + MP_QSTR_is_shelley_path, + MP_QSTR_is_byron_path, + MP_QSTR_staking_key_hash, + MP_QSTR_script_staking_hash, + MP_QSTR_certificate_pointer, + MP_QSTR_match, + MP_QSTR__validate_address_parameters_structure, + MP_QSTR__validate_base_address_staking_info, + MP_QSTR_ADDRESS_KEY_HASH_SIZE, + MP_QSTR__validate_script_hash, + MP_QSTR_SCRIPT_HASH_SIZE, + MP_QSTR_validate_output_address_parameters, + MP_QSTR_validate_cvote_payment_address_parameters, + MP_QSTR_assert_cond, + MP_QSTR__validate_and_get_type, + MP_QSTR_validate, + MP_QSTR_rsplit, + MP_QSTR_HRP_SEPARATOR, + MP_QSTR_validate_output_address, + MP_QSTR_validate_reward_address, + MP_QSTR_validate_cvote_payment_address, + MP_QSTR_get_bytes_unsafe, + MP_QSTR_decode_unsafe, + MP_QSTR_decode, + MP_QSTR_get_type, + MP_QSTR__get_bech32_hrp, + MP_QSTR_network_ids, + MP_QSTR_is_mainnet, + MP_QSTR_HRP_REWARD_ADDRESS, + MP_QSTR_HRP_TESTNET_REWARD_ADDRESS, + MP_QSTR_HRP_ADDRESS, + MP_QSTR_HRP_TESTNET_ADDRESS, + MP_QSTR__get_network_id, + MP_QSTR_derive_human_readable, + MP_QSTR_encode_human_readable, + MP_QSTR_encode, + MP_QSTR_derive_bytes, + MP_QSTR_derive, + MP_QSTR__derive_shelley_address, + MP_QSTR_to_bytes, + MP_QSTR_little, + MP_QSTR__get_payment_part, + MP_QSTR__get_staking_part, + MP_QSTR_variable_length_encode, + MP_QSTR_block_index, + MP_QSTR_tx_index, + MP_QSTR_certificate_index, + MP_QSTR_ADDRESS_TYPES_SHELLEY, + MP_QSTR_ADDRESS_TYPES_PAYMENT_KEY, + MP_QSTR_ADDRESS_TYPES_PAYMENT_SCRIPT, + MP_QSTR_ADDRESS_TYPES_PAYMENT, + MP_QSTR_condition, + MP_QSTR_parameters, + MP_QSTR_RuntimeError, + MP_QSTR_any, + MP_QSTR_staking_path, + MP_QSTR_len, + MP_QSTR_script_hash, + MP_QSTR_address, + MP_QSTR_protocol_magic, + MP_QSTR_network_id, + MP_QSTR_ValueError, + MP_QSTR_keychain, + MP_QSTR_address_bytes, + MP_QSTR_bytes, +}; + +// constants +static const mp_obj_str_t const_obj_apps_cardano_addresses_0 = {{&mp_type_str}, 9496, 26, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x61\x64\x64\x72\x65\x73\x73\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73"}; +static const mp_obj_str_t const_obj_apps_cardano_addresses_2 = {{&mp_type_str}, 60022, 31, (const byte*)"\x4f\x75\x74\x70\x75\x74\x20\x61\x64\x64\x72\x65\x73\x73\x20\x6e\x65\x74\x77\x6f\x72\x6b\x20\x6d\x69\x73\x6d\x61\x74\x63\x68"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_addresses[3] = { + MP_ROM_PTR(&const_obj_apps_cardano_addresses_0), + MP_ROM_QSTR(MP_QSTR_Invalid_space_address), + MP_ROM_PTR(&const_obj_apps_cardano_addresses_2), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_addresses = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_addresses, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_addresses, + }, + .rc = &raw_code_apps_cardano_addresses__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_auxiliary_data +// - original source file: build/firmware/src/apps/cardano/auxiliary_data.mpy +// - frozen file name: apps/cardano/auxiliary_data.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/auxiliary_data.py, scope apps_cardano_auxiliary_data__lt_module_gt_ +static const byte fun_data_apps_cardano_auxiliary_data__lt_module_gt_[186] = { + 0x10,0x44, // prelude + 0x01, // names: + 0x6c,0x2c,0x52,0x4c,0x32,0x2c,0x4c,0x80,0x14,0x84,0x07,0x84,0x14,0x84,0x22,0x64,0x20,0x84,0x08,0x84,0x0a,0x84,0x15,0x84,0x08,0x84,0x39,0x84,0x20,0x84,0x19,0x84,0x33, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'hashlib' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x04, // IMPORT_FROM 'hashlib' + 0x16,0x04, // STORE_NAME 'hashlib' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'CardanoAddressType' + 0x10,0x07, // LOAD_CONST_STRING 'CardanoCVoteRegistrationFormat' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x08, // IMPORT_NAME 'trezor.enums' + 0x1c,0x06, // IMPORT_FROM 'CardanoAddressType' + 0x16,0x06, // STORE_NAME 'CardanoAddressType' + 0x1c,0x07, // IMPORT_FROM 'CardanoCVoteRegistrationFormat' + 0x16,0x07, // STORE_NAME 'CardanoCVoteRegistrationFormat' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'cbor' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'apps.common' + 0x1c,0x09, // IMPORT_FROM 'cbor' + 0x16,0x09, // STORE_NAME 'cbor' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0b, // LOAD_CONST_STRING 'addresses' + 0x10,0x0c, // LOAD_CONST_STRING 'layout' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0d, // IMPORT_NAME '' + 0x1c,0x0b, // IMPORT_FROM 'addresses' + 0x16,0x0b, // STORE_NAME 'addresses' + 0x1c,0x0c, // IMPORT_FROM 'layout' + 0x16,0x0c, // STORE_NAME 'layout' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0e, // LOAD_CONST_STRING 'SCHEMA_STAKING_ANY_ACCOUNT' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'helpers.paths' + 0x1c,0x0e, // IMPORT_FROM 'SCHEMA_STAKING_ANY_ACCOUNT' + 0x16,0x0e, // STORE_NAME 'SCHEMA_STAKING_ANY_ACCOUNT' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x10, // LOAD_CONST_STRING 'derive_public_key' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'helpers.utils' + 0x1c,0x10, // IMPORT_FROM 'derive_public_key' + 0x16,0x10, // STORE_NAME 'derive_public_key' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x12, // STORE_NAME 'assert_cond' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x16, // STORE_NAME 'validate' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x19, // STORE_NAME '_validate_cvote_registration_parameters' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x25, // STORE_NAME '_validate_vote_public_key' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x26, // STORE_NAME '_validate_delegations' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x27, // STORE_NAME '_get_voting_purpose_to_serialize' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x29, // STORE_NAME 'show' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x2b, // STORE_NAME '_should_show_payment_warning' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x2d, // STORE_NAME '_show_cvote_registration' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x40, // STORE_NAME 'get_hash_and_supplement' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x49, // STORE_NAME '_get_cvote_registration_hash' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x4e, // STORE_NAME '_get_signed_cvote_registration_payload' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x50, // STORE_NAME '_create_cvote_registration_payload_signature' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_auxiliary_data__lt_module_gt_ +// frozen bytecode for file apps/cardano/auxiliary_data.py, scope apps_cardano_auxiliary_data_assert_cond +static const byte fun_data_apps_cardano_auxiliary_data_assert_cond[32] = { + 0x21,0x0c, // prelude + 0x12,0x58, // names: assert_cond, condition + 0x80,0x21,0x4b,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'trezor' + 0x1c,0x13, // IMPORT_FROM 'wire' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xb1, // LOAD_FAST 1 + 0x14,0x15, // LOAD_METHOD 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_auxiliary_data_assert_cond = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_auxiliary_data_assert_cond, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_cardano_auxiliary_data_assert_cond + 4, + .line_info_top = fun_data_apps_cardano_auxiliary_data_assert_cond + 8, + .opcodes = fun_data_apps_cardano_auxiliary_data_assert_cond + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_auxiliary_data__lt_module_gt_ +// frozen bytecode for file apps/cardano/auxiliary_data.py, scope apps_cardano_auxiliary_data_validate +static const byte fun_data_apps_cardano_auxiliary_data_validate[71] = { + 0x3b,0x1e, // prelude + 0x16,0x59,0x5a,0x5b, // names: validate, auxiliary_data, protocol_magic, network_id + 0x80,0x2c,0x22,0x25,0x44,0x2e,0x25,0x24,0x22,0x68,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'hash' + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0x12,0x12, // LOAD_GLOBAL 'assert_cond' + 0x12,0x5c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'hash' + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'cvote_registration_parameters' + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0x12,0x19, // LOAD_GLOBAL '_validate_cvote_registration_parameters' + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'cvote_registration_parameters' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'assert_cond' + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_auxiliary_data_validate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_auxiliary_data_validate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 71, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_apps_cardano_auxiliary_data_validate + 6, + .line_info_top = fun_data_apps_cardano_auxiliary_data_validate + 17, + .opcodes = fun_data_apps_cardano_auxiliary_data_validate + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_auxiliary_data__lt_module_gt_ +// frozen bytecode for file apps/cardano/auxiliary_data.py, scope apps_cardano_auxiliary_data__validate_cvote_registration_parameters +static const byte fun_data_apps_cardano_auxiliary_data__validate_cvote_registration_parameters[179] = { + 0x4b,0x36, // prelude + 0x19,0x5d,0x5a,0x5b, // names: _validate_cvote_registration_parameters, parameters, protocol_magic, network_id + 0x80,0x40,0x22,0x28,0x24,0x28,0x25,0x24,0x2d,0x28,0x48,0x4e,0x22,0x28,0x24,0x24,0x48,0x25,0x24,0x24,0x46,0x48,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'vote_public_key' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0x12,0x25, // LOAD_GLOBAL '_validate_vote_public_key' + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'vote_public_key' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'delegations' + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0x12,0x12, // LOAD_GLOBAL 'assert_cond' + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'format' + 0x12,0x07, // LOAD_GLOBAL 'CardanoCVoteRegistrationFormat' + 0x13,0x1d, // LOAD_ATTR 'CIP36' + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x26, // LOAD_GLOBAL '_validate_delegations' + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'delegations' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'assert_cond' + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'assert_cond' + 0x12,0x0e, // LOAD_GLOBAL 'SCHEMA_STAKING_ANY_ACCOUNT' + 0x14,0x1e, // LOAD_METHOD 'match' + 0xb0, // LOAD_FAST 0 + 0x13,0x1f, // LOAD_ATTR 'staking_path' + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'payment_address' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc4, // STORE_FAST 4 + 0x12,0x0b, // LOAD_GLOBAL 'addresses' + 0x14,0x21, // LOAD_METHOD 'validate_cvote_payment_address' + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'payment_address' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'payment_address_parameters' + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc4, // STORE_FAST 4 + 0x12,0x0b, // LOAD_GLOBAL 'addresses' + 0x14,0x23, // LOAD_METHOD 'validate_cvote_payment_address_parameters' + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'payment_address_parameters' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'assert_cond' + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'voting_purpose' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x12, // LOAD_GLOBAL 'assert_cond' + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'format' + 0x12,0x07, // LOAD_GLOBAL 'CardanoCVoteRegistrationFormat' + 0x13,0x1d, // LOAD_ATTR 'CIP36' + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_auxiliary_data__validate_cvote_registration_parameters = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_auxiliary_data__validate_cvote_registration_parameters, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 179, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_apps_cardano_auxiliary_data__validate_cvote_registration_parameters + 6, + .line_info_top = fun_data_apps_cardano_auxiliary_data__validate_cvote_registration_parameters + 29, + .opcodes = fun_data_apps_cardano_auxiliary_data__validate_cvote_registration_parameters + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_auxiliary_data__lt_module_gt_ +// frozen bytecode for file apps/cardano/auxiliary_data.py, scope apps_cardano_auxiliary_data__validate_vote_public_key +static const byte fun_data_apps_cardano_auxiliary_data__validate_vote_public_key[20] = { + 0x19,0x08, // prelude + 0x25,0x5e, // names: _validate_vote_public_key, key + 0x80,0x5e, // code info + 0x12,0x12, // LOAD_GLOBAL 'assert_cond' + 0x12,0x5c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_auxiliary_data__validate_vote_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_auxiliary_data__validate_vote_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_cardano_auxiliary_data__validate_vote_public_key + 4, + .line_info_top = fun_data_apps_cardano_auxiliary_data__validate_vote_public_key + 6, + .opcodes = fun_data_apps_cardano_auxiliary_data__validate_vote_public_key + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_auxiliary_data__lt_module_gt_ +// frozen bytecode for file apps/cardano/auxiliary_data.py, scope apps_cardano_auxiliary_data__validate_delegations +static const byte fun_data_apps_cardano_auxiliary_data__validate_delegations[37] = { + 0x39,0x0c, // prelude + 0x26,0x1b, // names: _validate_delegations, delegations + 0x80,0x64,0x2c,0x25, // code info + 0x12,0x12, // LOAD_GLOBAL 'assert_cond' + 0x12,0x5c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xda, // BINARY_OP 3 __le__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0b, // FOR_ITER 11 + 0xc1, // STORE_FAST 1 + 0x12,0x25, // LOAD_GLOBAL '_validate_vote_public_key' + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'vote_public_key' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x33, // JUMP -13 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_auxiliary_data__validate_delegations = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_auxiliary_data__validate_delegations, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 38, + .line_info = fun_data_apps_cardano_auxiliary_data__validate_delegations + 4, + .line_info_top = fun_data_apps_cardano_auxiliary_data__validate_delegations + 8, + .opcodes = fun_data_apps_cardano_auxiliary_data__validate_delegations + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_auxiliary_data__lt_module_gt_ +// frozen bytecode for file apps/cardano/auxiliary_data.py, scope apps_cardano_auxiliary_data__get_voting_purpose_to_serialize +static const byte fun_data_apps_cardano_auxiliary_data__get_voting_purpose_to_serialize[35] = { + 0x11,0x10, // prelude + 0x27,0x5d, // names: _get_voting_purpose_to_serialize, parameters + 0x80,0x6c,0x2a,0x22,0x27,0x22, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'format' + 0x12,0x07, // LOAD_GLOBAL 'CardanoCVoteRegistrationFormat' + 0x13,0x28, // LOAD_ATTR 'CIP15' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'voting_purpose' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'voting_purpose' + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_auxiliary_data__get_voting_purpose_to_serialize = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_auxiliary_data__get_voting_purpose_to_serialize, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_cardano_auxiliary_data__get_voting_purpose_to_serialize + 4, + .line_info_top = fun_data_apps_cardano_auxiliary_data__get_voting_purpose_to_serialize + 10, + .opcodes = fun_data_apps_cardano_auxiliary_data__get_voting_purpose_to_serialize + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_auxiliary_data__lt_module_gt_ +// frozen bytecode for file apps/cardano/auxiliary_data.py, scope apps_cardano_auxiliary_data_show +static const byte fun_data_apps_cardano_auxiliary_data_show[48] = { + 0xda,0x44,0x1a, // prelude + 0x29,0x5f,0x46,0x5d,0x5a,0x5b,0x60, // names: show, keychain, auxiliary_data_hash, parameters, protocol_magic, network_id, should_show_details + 0x80,0x7b,0x23,0x8d,0x08,0x23, // code info + 0xb2, // LOAD_FAST 2 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x2d, // LOAD_GLOBAL '_show_cvote_registration' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x34,0x05, // CALL_FUNCTION 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x0c, // LOAD_GLOBAL 'layout' + 0x14,0x2a, // LOAD_METHOD 'show_auxiliary_data_hash' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_auxiliary_data_show = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 6, + .fun_data = fun_data_apps_cardano_auxiliary_data_show, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_cardano_auxiliary_data_show + 10, + .line_info_top = fun_data_apps_cardano_auxiliary_data_show + 16, + .opcodes = fun_data_apps_cardano_auxiliary_data_show + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_auxiliary_data__lt_module_gt_ +// frozen bytecode for file apps/cardano/auxiliary_data.py, scope apps_cardano_auxiliary_data__should_show_payment_warning +static const byte fun_data_apps_cardano_auxiliary_data__should_show_payment_warning[14] = { + 0x11,0x08, // prelude + 0x2b,0x3a, // names: _should_show_payment_warning, address_type + 0x80,0x8d, // code info + 0xb0, // LOAD_FAST 0 + 0x12,0x0b, // LOAD_GLOBAL 'addresses' + 0x13,0x2c, // LOAD_ATTR 'ADDRESS_TYPES_PAYMENT' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_auxiliary_data__should_show_payment_warning = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_auxiliary_data__should_show_payment_warning, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_apps_cardano_auxiliary_data__should_show_payment_warning + 4, + .line_info_top = fun_data_apps_cardano_auxiliary_data__should_show_payment_warning + 6, + .opcodes = fun_data_apps_cardano_auxiliary_data__should_show_payment_warning + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_auxiliary_data__lt_module_gt_ +// frozen bytecode for file apps/cardano/auxiliary_data.py, scope apps_cardano_auxiliary_data__show_cvote_registration +static const byte fun_data_apps_cardano_auxiliary_data__show_cvote_registration[235] = { + 0xa9,0x54,0x4a, // prelude + 0x2d,0x5f,0x5d,0x5a,0x5b,0x60, // names: _show_cvote_registration, keychain, parameters, protocol_magic, network_id, should_show_details + 0x80,0x97,0x2b,0x50,0x27,0x23,0x49,0x25,0x6b,0x25,0x22,0x52,0x24,0x6c,0x24,0x20,0x25,0x22,0x46,0x24,0x26,0x6e,0x40,0x22,0x25,0x23,0x69,0x20,0x6c,0x45,0x23, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x2e, // LOAD_CONST_STRING 'bech32' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2f, // IMPORT_NAME 'helpers' + 0x1c,0x2e, // IMPORT_FROM 'bech32' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x30, // LOAD_CONST_STRING 'Credential' + 0x10,0x31, // LOAD_CONST_STRING 'should_show_credentials' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x32, // IMPORT_NAME 'helpers.credential' + 0x1c,0x30, // IMPORT_FROM 'Credential' + 0xc6, // STORE_FAST 6 + 0x1c,0x31, // IMPORT_FROM 'should_show_credentials' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'delegations' + 0x5f, // GET_ITER_STACK + 0x4b,0x1d, // FOR_ITER 29 + 0xc8, // STORE_FAST 8 + 0xb5, // LOAD_FAST 5 + 0x14,0x33, // LOAD_METHOD 'encode' + 0xb5, // LOAD_FAST 5 + 0x13,0x34, // LOAD_ATTR 'HRP_CVOTE_PUBLIC_KEY' + 0xb8, // LOAD_FAST 8 + 0x13,0x1a, // LOAD_ATTR 'vote_public_key' + 0x36,0x02, // CALL_METHOD 2 + 0xc9, // STORE_FAST 9 + 0x12,0x0c, // LOAD_GLOBAL 'layout' + 0x14,0x35, // LOAD_METHOD 'confirm_cvote_registration_delegation' + 0xb9, // LOAD_FAST 9 + 0xb8, // LOAD_FAST 8 + 0x13,0x36, // LOAD_ATTR 'weight' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x21, // JUMP -31 + 0xb1, // LOAD_FAST 1 + 0x13,0x20, // LOAD_ATTR 'payment_address' + 0x44,0x64, // POP_JUMP_IF_FALSE 36 + 0x12,0x2b, // LOAD_GLOBAL '_should_show_payment_warning' + 0x12,0x0b, // LOAD_GLOBAL 'addresses' + 0x14,0x37, // LOAD_METHOD 'get_type' + 0x12,0x0b, // LOAD_GLOBAL 'addresses' + 0x14,0x38, // LOAD_METHOD 'get_bytes_unsafe' + 0xb1, // LOAD_FAST 1 + 0x13,0x20, // LOAD_ATTR 'payment_address' + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xca, // STORE_FAST 10 + 0x12,0x0c, // LOAD_GLOBAL 'layout' + 0x14,0x39, // LOAD_METHOD 'confirm_cvote_registration_payment_address' + 0xb1, // LOAD_FAST 1 + 0x13,0x20, // LOAD_ATTR 'payment_address' + 0xba, // LOAD_FAST 10 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x69, // JUMP 41 + 0xb1, // LOAD_FAST 1 + 0x13,0x22, // LOAD_ATTR 'payment_address_parameters' + 0xcb, // STORE_FAST 11 + 0xb7, // LOAD_FAST 7 + 0xbb, // LOAD_FAST 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcc, // STORE_FAST 12 + 0x12,0x2b, // LOAD_GLOBAL '_should_show_payment_warning' + 0xbb, // LOAD_FAST 11 + 0x13,0x3a, // LOAD_ATTR 'address_type' + 0x34,0x01, // CALL_FUNCTION 1 + 0xca, // STORE_FAST 10 + 0x12,0x0c, // LOAD_GLOBAL 'layout' + 0x14,0x3b, // LOAD_METHOD 'show_cvote_registration_payment_credentials' + 0xb6, // LOAD_FAST 6 + 0x14,0x3c, // LOAD_METHOD 'payment_credential' + 0xbb, // LOAD_FAST 11 + 0x36,0x01, // CALL_METHOD 1 + 0xb6, // LOAD_FAST 6 + 0x14,0x3d, // LOAD_METHOD 'stake_credential' + 0xbb, // LOAD_FAST 11 + 0x36,0x01, // CALL_METHOD 1 + 0xbc, // LOAD_FAST 12 + 0xba, // LOAD_FAST 10 + 0x36,0x04, // CALL_METHOD 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xc9, // STORE_FAST 9 + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'vote_public_key' + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb5, // LOAD_FAST 5 + 0x14,0x33, // LOAD_METHOD 'encode' + 0xb5, // LOAD_FAST 5 + 0x13,0x34, // LOAD_ATTR 'HRP_CVOTE_PUBLIC_KEY' + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'vote_public_key' + 0x36,0x02, // CALL_METHOD 2 + 0xc9, // STORE_FAST 9 + 0xb4, // LOAD_FAST 4 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x27, // LOAD_GLOBAL '_get_voting_purpose_to_serialize' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0xcd, // STORE_FAST 13 + 0x12,0x0c, // LOAD_GLOBAL 'layout' + 0x14,0x3e, // LOAD_METHOD 'confirm_cvote_registration' + 0xb9, // LOAD_FAST 9 + 0xb1, // LOAD_FAST 1 + 0x13,0x1f, // LOAD_ATTR 'staking_path' + 0xb1, // LOAD_FAST 1 + 0x13,0x3f, // LOAD_ATTR 'nonce' + 0xbd, // LOAD_FAST 13 + 0x36,0x04, // CALL_METHOD 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_auxiliary_data__show_cvote_registration = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_apps_cardano_auxiliary_data__show_cvote_registration, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 235, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 22, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_cardano_auxiliary_data__show_cvote_registration + 9, + .line_info_top = fun_data_apps_cardano_auxiliary_data__show_cvote_registration + 40, + .opcodes = fun_data_apps_cardano_auxiliary_data__show_cvote_registration + 40, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_auxiliary_data__lt_module_gt_ +// frozen bytecode for file apps/cardano/auxiliary_data.py, scope apps_cardano_auxiliary_data_get_hash_and_supplement +static const byte fun_data_apps_cardano_auxiliary_data_get_hash_and_supplement[112] = { + 0x90,0x14,0x26, // prelude + 0x40,0x5f,0x59,0x5a,0x5b, // names: get_hash_and_supplement, keychain, auxiliary_data, protocol_magic, network_id + 0x80,0xcf,0x2b,0x4b,0x27,0x60,0x6c,0x67,0x25,0x6d,0x20,0x45,0x20,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x41, // LOAD_CONST_STRING 'messages' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'trezor' + 0x1c,0x41, // IMPORT_FROM 'messages' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x42, // LOAD_CONST_STRING 'CardanoTxAuxiliaryDataSupplementType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.enums' + 0x1c,0x42, // IMPORT_FROM 'CardanoTxAuxiliaryDataSupplementType' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'cvote_registration_parameters' + 0x57, // DUP_TOP + 0xc6, // STORE_FAST 6 + 0x44,0x6a, // POP_JUMP_IF_FALSE 42 + 0x12,0x4e, // LOAD_GLOBAL '_get_signed_cvote_registration_payload' + 0xb0, // LOAD_FAST 0 + 0xb6, // LOAD_FAST 6 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x04, // CALL_FUNCTION 4 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc7, // STORE_FAST 7 + 0xc8, // STORE_FAST 8 + 0x12,0x49, // LOAD_GLOBAL '_get_cvote_registration_hash' + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc9, // STORE_FAST 9 + 0xb4, // LOAD_FAST 4 + 0x14,0x43, // LOAD_METHOD 'CardanoTxAuxiliaryDataSupplement' + 0x10,0x44, // LOAD_CONST_STRING 'type' + 0xb5, // LOAD_FAST 5 + 0x13,0x45, // LOAD_ATTR 'CVOTE_REGISTRATION_SIGNATURE' + 0x10,0x46, // LOAD_CONST_STRING 'auxiliary_data_hash' + 0xb9, // LOAD_FAST 9 + 0x10,0x47, // LOAD_CONST_STRING 'cvote_registration_signature' + 0xb8, // LOAD_FAST 8 + 0x36,0x86,0x00, // CALL_METHOD 768 + 0xca, // STORE_FAST 10 + 0xb9, // LOAD_FAST 9 + 0xba, // LOAD_FAST 10 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x17, // LOAD_ATTR 'hash' + 0xb4, // LOAD_FAST 4 + 0x14,0x43, // LOAD_METHOD 'CardanoTxAuxiliaryDataSupplement' + 0x10,0x44, // LOAD_CONST_STRING 'type' + 0xb5, // LOAD_FAST 5 + 0x13,0x48, // LOAD_ATTR 'NONE' + 0x36,0x82,0x00, // CALL_METHOD 256 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_auxiliary_data_get_hash_and_supplement = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_auxiliary_data_get_hash_and_supplement, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 112, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_apps_cardano_auxiliary_data_get_hash_and_supplement + 8, + .line_info_top = fun_data_apps_cardano_auxiliary_data_get_hash_and_supplement + 22, + .opcodes = fun_data_apps_cardano_auxiliary_data_get_hash_and_supplement + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_auxiliary_data__lt_module_gt_ +// frozen bytecode for file apps/cardano/auxiliary_data.py, scope apps_cardano_auxiliary_data__get_cvote_registration_hash +static const byte fun_data_apps_cardano_auxiliary_data__get_cvote_registration_hash[67] = { + 0x5a,0x18, // prelude + 0x49,0x61,0x62, // names: _get_cvote_registration_hash, cvote_registration_payload, cvote_registration_payload_signature + 0x80,0xee,0x26,0x22,0x26,0x87,0x0a,0x26,0x28, // code info + 0x2c,0x01, // BUILD_MAP 1 + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x62, // STORE_MAP + 0xc2, // STORE_FAST 2 + 0x2c,0x02, // BUILD_MAP 2 + 0xb0, // LOAD_FAST 0 + 0x22,0x83,0xde,0x64, // LOAD_CONST_SMALL_INT 61284 + 0x62, // STORE_MAP + 0xb2, // LOAD_FAST 2 + 0x22,0x83,0xde,0x65, // LOAD_CONST_SMALL_INT 61285 + 0x62, // STORE_MAP + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x2a,0x00, // BUILD_TUPLE 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xc4, // STORE_FAST 4 + 0x12,0x09, // LOAD_GLOBAL 'cbor' + 0x14,0x33, // LOAD_METHOD 'encode' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0x12,0x04, // LOAD_GLOBAL 'hashlib' + 0x14,0x4a, // LOAD_METHOD 'blake2b' + 0x10,0x4b, // LOAD_CONST_STRING 'data' + 0xb5, // LOAD_FAST 5 + 0x10,0x4c, // LOAD_CONST_STRING 'outlen' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x84,0x00, // CALL_METHOD 512 + 0x14,0x4d, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_auxiliary_data__get_cvote_registration_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_auxiliary_data__get_cvote_registration_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 67, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 73, + .line_info = fun_data_apps_cardano_auxiliary_data__get_cvote_registration_hash + 5, + .line_info_top = fun_data_apps_cardano_auxiliary_data__get_cvote_registration_hash + 14, + .opcodes = fun_data_apps_cardano_auxiliary_data__get_cvote_registration_hash + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_auxiliary_data__lt_module_gt_ +// frozen bytecode for file apps/cardano/auxiliary_data.py, scope apps_cardano_auxiliary_data__get_signed_cvote_registration_payload +static const byte fun_data_apps_cardano_auxiliary_data__get_signed_cvote_registration_payload[158] = { + 0x80,0x14,0x3e, // prelude + 0x4e,0x5f,0x5d,0x5a,0x5b, // names: _get_signed_cvote_registration_payload, keychain, parameters, protocol_magic, network_id + 0x90,0x08,0x20,0x2b,0x42,0x48,0x25,0x46,0x43,0x49,0x25,0x4c,0x24,0x20,0x8b,0x07,0x46,0x22,0x23,0x23,0x23,0x46,0x26,0x44,0x64,0x66, // code info + 0x12,0x5c, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'delegations' + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'delegations' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0x42,0x4e, // JUMP 14 + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'vote_public_key' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'vote_public_key' + 0xc4, // STORE_FAST 4 + 0x42,0x43, // JUMP 3 + 0x12,0x63, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x12,0x10, // LOAD_GLOBAL 'derive_public_key' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1f, // LOAD_ATTR 'staking_path' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x20, // LOAD_ATTR 'payment_address' + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x0b, // LOAD_GLOBAL 'addresses' + 0x14,0x38, // LOAD_METHOD 'get_bytes_unsafe' + 0xb1, // LOAD_FAST 1 + 0x13,0x20, // LOAD_ATTR 'payment_address' + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0x42,0x4f, // JUMP 15 + 0xb1, // LOAD_FAST 1 + 0x13,0x22, // LOAD_ATTR 'payment_address_parameters' + 0xc7, // STORE_FAST 7 + 0x12,0x0b, // LOAD_GLOBAL 'addresses' + 0x14,0x4f, // LOAD_METHOD 'derive_bytes' + 0xb0, // LOAD_FAST 0 + 0xb7, // LOAD_FAST 7 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x04, // CALL_METHOD 4 + 0xc6, // STORE_FAST 6 + 0x12,0x27, // LOAD_GLOBAL '_get_voting_purpose_to_serialize' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0x2c,0x04, // BUILD_MAP 4 + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x62, // STORE_MAP + 0xb5, // LOAD_FAST 5 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x62, // STORE_MAP + 0xb6, // LOAD_FAST 6 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x62, // STORE_MAP + 0xb1, // LOAD_FAST 1 + 0x13,0x3f, // LOAD_ATTR 'nonce' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x62, // STORE_MAP + 0xc9, // STORE_FAST 9 + 0xb8, // LOAD_FAST 8 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb8, // LOAD_FAST 8 + 0xb9, // LOAD_FAST 9 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x56, // STORE_SUBSCR + 0x12,0x50, // LOAD_GLOBAL '_create_cvote_registration_payload_signature' + 0xb0, // LOAD_FAST 0 + 0xb9, // LOAD_FAST 9 + 0xb1, // LOAD_FAST 1 + 0x13,0x1f, // LOAD_ATTR 'staking_path' + 0x34,0x03, // CALL_FUNCTION 3 + 0xca, // STORE_FAST 10 + 0xb9, // LOAD_FAST 9 + 0xba, // LOAD_FAST 10 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_auxiliary_data__get_signed_cvote_registration_payload +// frozen bytecode for file apps/cardano/auxiliary_data.py, scope apps_cardano_auxiliary_data__get_signed_cvote_registration_payload__lt_listcomp_gt_ +static const byte fun_data_apps_cardano_auxiliary_data__get_signed_cvote_registration_payload__lt_listcomp_gt_[26] = { + 0x41,0x08, // prelude + 0x57,0x65, // names: , * + 0x90,0x0b, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0d, // FOR_ITER 13 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'vote_public_key' + 0xb1, // LOAD_FAST 1 + 0x13,0x36, // LOAD_ATTR 'weight' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x31, // JUMP -15 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_auxiliary_data__get_signed_cvote_registration_payload__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_auxiliary_data__get_signed_cvote_registration_payload__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 87, + .line_info = fun_data_apps_cardano_auxiliary_data__get_signed_cvote_registration_payload__lt_listcomp_gt_ + 4, + .line_info_top = fun_data_apps_cardano_auxiliary_data__get_signed_cvote_registration_payload__lt_listcomp_gt_ + 6, + .opcodes = fun_data_apps_cardano_auxiliary_data__get_signed_cvote_registration_payload__lt_listcomp_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_auxiliary_data__get_signed_cvote_registration_payload[] = { + &raw_code_apps_cardano_auxiliary_data__get_signed_cvote_registration_payload__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_apps_cardano_auxiliary_data__get_signed_cvote_registration_payload = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_auxiliary_data__get_signed_cvote_registration_payload, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 158, + #endif + .children = (void *)&children_apps_cardano_auxiliary_data__get_signed_cvote_registration_payload, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 78, + .line_info = fun_data_apps_cardano_auxiliary_data__get_signed_cvote_registration_payload + 8, + .line_info_top = fun_data_apps_cardano_auxiliary_data__get_signed_cvote_registration_payload + 34, + .opcodes = fun_data_apps_cardano_auxiliary_data__get_signed_cvote_registration_payload + 34, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_auxiliary_data__lt_module_gt_ +// frozen bytecode for file apps/cardano/auxiliary_data.py, scope apps_cardano_auxiliary_data__create_cvote_registration_payload_signature +static const byte fun_data_apps_cardano_auxiliary_data__create_cvote_registration_payload_signature[83] = { + 0x63,0x1a, // prelude + 0x50,0x5f,0x61,0x64, // names: _create_cvote_registration_payload_signature, keychain, cvote_registration_payload, path + 0x90,0x3a,0x4b,0x47,0x24,0x6b,0x72,0x40,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x51, // LOAD_CONST_STRING 'ed25519' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x52, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x51, // IMPORT_FROM 'ed25519' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x53, // LOAD_METHOD 'derive' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0x12,0x09, // LOAD_GLOBAL 'cbor' + 0x14,0x33, // LOAD_METHOD 'encode' + 0x2c,0x01, // BUILD_MAP 1 + 0xb1, // LOAD_FAST 1 + 0x22,0x83,0xde,0x64, // LOAD_CONST_SMALL_INT 61284 + 0x62, // STORE_MAP + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0x12,0x04, // LOAD_GLOBAL 'hashlib' + 0x14,0x4a, // LOAD_METHOD 'blake2b' + 0x10,0x4b, // LOAD_CONST_STRING 'data' + 0xb5, // LOAD_FAST 5 + 0x10,0x4c, // LOAD_CONST_STRING 'outlen' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x84,0x00, // CALL_METHOD 512 + 0x14,0x4d, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc6, // STORE_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x14,0x54, // LOAD_METHOD 'sign_ext' + 0xb4, // LOAD_FAST 4 + 0x14,0x55, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0xb4, // LOAD_FAST 4 + 0x14,0x56, // LOAD_METHOD 'private_key_ext' + 0x36,0x00, // CALL_METHOD 0 + 0xb6, // LOAD_FAST 6 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_auxiliary_data__create_cvote_registration_payload_signature = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_auxiliary_data__create_cvote_registration_payload_signature, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 83, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 80, + .line_info = fun_data_apps_cardano_auxiliary_data__create_cvote_registration_payload_signature + 6, + .line_info_top = fun_data_apps_cardano_auxiliary_data__create_cvote_registration_payload_signature + 15, + .opcodes = fun_data_apps_cardano_auxiliary_data__create_cvote_registration_payload_signature + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_auxiliary_data__lt_module_gt_[] = { + &raw_code_apps_cardano_auxiliary_data_assert_cond, + &raw_code_apps_cardano_auxiliary_data_validate, + &raw_code_apps_cardano_auxiliary_data__validate_cvote_registration_parameters, + &raw_code_apps_cardano_auxiliary_data__validate_vote_public_key, + &raw_code_apps_cardano_auxiliary_data__validate_delegations, + &raw_code_apps_cardano_auxiliary_data__get_voting_purpose_to_serialize, + &raw_code_apps_cardano_auxiliary_data_show, + &raw_code_apps_cardano_auxiliary_data__should_show_payment_warning, + &raw_code_apps_cardano_auxiliary_data__show_cvote_registration, + &raw_code_apps_cardano_auxiliary_data_get_hash_and_supplement, + &raw_code_apps_cardano_auxiliary_data__get_cvote_registration_hash, + &raw_code_apps_cardano_auxiliary_data__get_signed_cvote_registration_payload, + &raw_code_apps_cardano_auxiliary_data__create_cvote_registration_payload_signature, +}; + +static const mp_raw_code_t raw_code_apps_cardano_auxiliary_data__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_auxiliary_data__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 186, + #endif + .children = (void *)&children_apps_cardano_auxiliary_data__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 13, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_auxiliary_data__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_auxiliary_data__lt_module_gt_ + 36, + .opcodes = fun_data_apps_cardano_auxiliary_data__lt_module_gt_ + 36, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_auxiliary_data[102] = { + MP_QSTR_apps_slash_cardano_slash_auxiliary_data_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_hashlib, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_CardanoAddressType, + MP_QSTR_CardanoCVoteRegistrationFormat, + MP_QSTR_trezor_dot_enums, + MP_QSTR_cbor, + MP_QSTR_apps_dot_common, + MP_QSTR_addresses, + MP_QSTR_layout, + MP_QSTR_, + MP_QSTR_SCHEMA_STAKING_ANY_ACCOUNT, + MP_QSTR_helpers_dot_paths, + MP_QSTR_derive_public_key, + MP_QSTR_helpers_dot_utils, + MP_QSTR_assert_cond, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_ProcessError, + MP_QSTR_validate, + MP_QSTR_hash, + MP_QSTR_cvote_registration_parameters, + MP_QSTR__validate_cvote_registration_parameters, + MP_QSTR_vote_public_key, + MP_QSTR_delegations, + MP_QSTR_format, + MP_QSTR_CIP36, + MP_QSTR_match, + MP_QSTR_staking_path, + MP_QSTR_payment_address, + MP_QSTR_validate_cvote_payment_address, + MP_QSTR_payment_address_parameters, + MP_QSTR_validate_cvote_payment_address_parameters, + MP_QSTR_voting_purpose, + MP_QSTR__validate_vote_public_key, + MP_QSTR__validate_delegations, + MP_QSTR__get_voting_purpose_to_serialize, + MP_QSTR_CIP15, + MP_QSTR_show, + MP_QSTR_show_auxiliary_data_hash, + MP_QSTR__should_show_payment_warning, + MP_QSTR_ADDRESS_TYPES_PAYMENT, + MP_QSTR__show_cvote_registration, + MP_QSTR_bech32, + MP_QSTR_helpers, + MP_QSTR_Credential, + MP_QSTR_should_show_credentials, + MP_QSTR_helpers_dot_credential, + MP_QSTR_encode, + MP_QSTR_HRP_CVOTE_PUBLIC_KEY, + MP_QSTR_confirm_cvote_registration_delegation, + MP_QSTR_weight, + MP_QSTR_get_type, + MP_QSTR_get_bytes_unsafe, + MP_QSTR_confirm_cvote_registration_payment_address, + MP_QSTR_address_type, + MP_QSTR_show_cvote_registration_payment_credentials, + MP_QSTR_payment_credential, + MP_QSTR_stake_credential, + MP_QSTR_confirm_cvote_registration, + MP_QSTR_nonce, + MP_QSTR_get_hash_and_supplement, + MP_QSTR_messages, + MP_QSTR_CardanoTxAuxiliaryDataSupplementType, + MP_QSTR_CardanoTxAuxiliaryDataSupplement, + MP_QSTR_type, + MP_QSTR_CVOTE_REGISTRATION_SIGNATURE, + MP_QSTR_auxiliary_data_hash, + MP_QSTR_cvote_registration_signature, + MP_QSTR_NONE, + MP_QSTR__get_cvote_registration_hash, + MP_QSTR_blake2b, + MP_QSTR_data, + MP_QSTR_outlen, + MP_QSTR_digest, + MP_QSTR__get_signed_cvote_registration_payload, + MP_QSTR_derive_bytes, + MP_QSTR__create_cvote_registration_payload_signature, + MP_QSTR_ed25519, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_derive, + MP_QSTR_sign_ext, + MP_QSTR_private_key, + MP_QSTR_private_key_ext, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_condition, + MP_QSTR_auxiliary_data, + MP_QSTR_protocol_magic, + MP_QSTR_network_id, + MP_QSTR_len, + MP_QSTR_parameters, + MP_QSTR_key, + MP_QSTR_keychain, + MP_QSTR_should_show_details, + MP_QSTR_cvote_registration_payload, + MP_QSTR_cvote_registration_payload_signature, + MP_QSTR_RuntimeError, + MP_QSTR_path, + MP_QSTR__star_, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_auxiliary_data[1] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_auxiliary_space_data), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_auxiliary_data = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_auxiliary_data, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_auxiliary_data, + }, + .rc = &raw_code_apps_cardano_auxiliary_data__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_byron_addresses +// - original source file: build/firmware/src/apps/cardano/byron_addresses.mpy +// - frozen file name: apps/cardano/byron_addresses.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/byron_addresses.py, scope apps_cardano_byron_addresses__lt_module_gt_ +static const byte fun_data_apps_cardano_byron_addresses__lt_module_gt_[102] = { + 0x08,0x24, // prelude + 0x01, // names: + 0x6c,0x2c,0x4c,0x4c,0x4c,0x60,0x60,0x80,0x08,0x84,0x18,0x64,0x40,0x84,0x09,0x84,0x1b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'crc' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x04, // IMPORT_FROM 'crc' + 0x16,0x04, // STORE_NAME 'crc' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.wire' + 0x1c,0x06, // IMPORT_FROM 'ProcessError' + 0x16,0x06, // STORE_NAME 'ProcessError' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'cbor' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'apps.common' + 0x1c,0x08, // IMPORT_FROM 'cbor' + 0x16,0x08, // STORE_NAME 'cbor' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0a, // LOAD_CONST_STRING 'protocol_magics' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'helpers' + 0x1c,0x0a, // IMPORT_FROM 'protocol_magics' + 0x16,0x0a, // STORE_NAME 'protocol_magics' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0c, // STORE_NAME 'derive' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x14, // STORE_NAME 'validate' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x15, // STORE_NAME '_address_hash' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x1c, // STORE_NAME '_decode_raw' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x20, // STORE_NAME '_validate_protocol_magic' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_byron_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/byron_addresses.py, scope apps_cardano_byron_addresses_derive +static const byte fun_data_apps_cardano_byron_addresses_derive[119] = { + 0x7b,0x22, // prelude + 0x0c,0x21,0x22,0x23, // names: derive, keychain, path, protocol_magic + 0x80,0x19,0x6b,0x20,0x29,0x45,0x6c,0x2a,0x4d,0x22,0x26,0x68,0x24, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0d, // LOAD_CONST_STRING 'derive_public_key' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'helpers.utils' + 0x1c,0x0d, // IMPORT_FROM 'derive_public_key' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'protocol_magics' + 0x14,0x0f, // LOAD_METHOD 'is_mainnet' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x2c,0x00, // BUILD_MAP 0 + 0xc4, // STORE_FAST 4 + 0x42,0x4c, // JUMP 12 + 0x2c,0x01, // BUILD_MAP 1 + 0x12,0x08, // LOAD_GLOBAL 'cbor' + 0x14,0x10, // LOAD_METHOD 'encode' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x62, // STORE_MAP + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x10,0x11, // LOAD_CONST_STRING 'extended' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0xc5, // STORE_FAST 5 + 0x12,0x15, // LOAD_GLOBAL '_address_hash' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb5, // LOAD_FAST 5 + 0x2b,0x02, // BUILD_LIST 2 + 0xb4, // LOAD_FAST 4 + 0x2b,0x03, // BUILD_LIST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc6, // STORE_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc7, // STORE_FAST 7 + 0xb6, // LOAD_FAST 6 + 0xb4, // LOAD_FAST 4 + 0xb7, // LOAD_FAST 7 + 0x2b,0x03, // BUILD_LIST 3 + 0xc8, // STORE_FAST 8 + 0x12,0x08, // LOAD_GLOBAL 'cbor' + 0x14,0x10, // LOAD_METHOD 'encode' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0xc9, // STORE_FAST 9 + 0x12,0x08, // LOAD_GLOBAL 'cbor' + 0x14,0x10, // LOAD_METHOD 'encode' + 0x12,0x08, // LOAD_GLOBAL 'cbor' + 0x14,0x12, // LOAD_METHOD 'Tagged' + 0x98, // LOAD_CONST_SMALL_INT 24 + 0xb9, // LOAD_FAST 9 + 0x36,0x02, // CALL_METHOD 2 + 0x12,0x04, // LOAD_GLOBAL 'crc' + 0x14,0x13, // LOAD_METHOD 'crc32' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0x2b,0x02, // BUILD_LIST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_byron_addresses_derive = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_byron_addresses_derive, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 119, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_cardano_byron_addresses_derive + 6, + .line_info_top = fun_data_apps_cardano_byron_addresses_derive + 19, + .opcodes = fun_data_apps_cardano_byron_addresses_derive + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_byron_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/byron_addresses.py, scope apps_cardano_byron_addresses_validate +static const byte fun_data_apps_cardano_byron_addresses_validate[23] = { + 0x2a,0x0c, // prelude + 0x14,0x24,0x23, // names: validate, address, protocol_magic + 0x80,0x31,0x26, // code info + 0x12,0x1c, // LOAD_GLOBAL '_decode_raw' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x12,0x20, // LOAD_GLOBAL '_validate_protocol_magic' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_byron_addresses_validate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_byron_addresses_validate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_apps_cardano_byron_addresses_validate + 5, + .line_info_top = fun_data_apps_cardano_byron_addresses_validate + 8, + .opcodes = fun_data_apps_cardano_byron_addresses_validate + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_byron_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/byron_addresses.py, scope apps_cardano_byron_addresses__address_hash +static const byte fun_data_apps_cardano_byron_addresses__address_hash[59] = { + 0x51,0x10, // prelude + 0x15,0x1a, // names: _address_hash, data + 0x80,0x36,0x4b,0x28,0x2b,0x31, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x16, // LOAD_CONST_STRING 'hashlib' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x16, // IMPORT_FROM 'hashlib' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'cbor' + 0x14,0x10, // LOAD_METHOD 'encode' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x14,0x17, // LOAD_METHOD 'sha3_256' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x18, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x14,0x19, // LOAD_METHOD 'blake2b' + 0x10,0x1a, // LOAD_CONST_STRING 'data' + 0xb3, // LOAD_FAST 3 + 0x10,0x1b, // LOAD_CONST_STRING 'outlen' + 0x9c, // LOAD_CONST_SMALL_INT 28 + 0x36,0x84,0x00, // CALL_METHOD 512 + 0x14,0x18, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_byron_addresses__address_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_byron_addresses__address_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_cardano_byron_addresses__address_hash + 4, + .line_info_top = fun_data_apps_cardano_byron_addresses__address_hash + 10, + .opcodes = fun_data_apps_cardano_byron_addresses__address_hash + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_byron_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/byron_addresses.py, scope apps_cardano_byron_addresses__decode_raw +static const byte fun_data_apps_cardano_byron_addresses__decode_raw[155] = { + 0xd9,0x02,0x26, // prelude + 0x1c,0x24, // names: _decode_raw, address + 0x80,0x3f,0x4b,0x22,0x53,0x40,0x50,0x32,0x47,0x24,0x29,0x47,0x24,0x29,0x47,0x2b,0x47, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1d, // LOAD_CONST_STRING 'log' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME 'trezor' + 0x1c,0x1d, // IMPORT_FROM 'log' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x48,0x0a, // SETUP_EXCEPT 10 + 0x12,0x08, // LOAD_GLOBAL 'cbor' + 0x14,0x1f, // LOAD_METHOD 'decode' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0x4a,0x19, // POP_EXCEPT_JUMP 25 + 0x57, // DUP_TOP + 0x12,0x25, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xc3, // STORE_FAST 3 + 0x49,0x08, // SETUP_FINALLY 8 + 0x12,0x06, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xc3, // STORE_FAST 3 + 0x28,0x03, // DELETE_FAST 3 + 0x5d, // END_FINALLY + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x12,0x26, // LOAD_GLOBAL 'isinstance' + 0xb2, // LOAD_FAST 2 + 0x12,0x27, // LOAD_GLOBAL 'list' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x28, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xc4, // STORE_FAST 4 + 0x12,0x26, // LOAD_GLOBAL 'isinstance' + 0xb4, // LOAD_FAST 4 + 0x12,0x29, // LOAD_GLOBAL 'bytes' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x06, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0x12,0x26, // LOAD_GLOBAL 'isinstance' + 0xb5, // LOAD_FAST 5 + 0x12,0x2a, // LOAD_GLOBAL 'int' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x06, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0x12,0x04, // LOAD_GLOBAL 'crc' + 0x14,0x13, // LOAD_METHOD 'crc32' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_byron_addresses__decode_raw = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_byron_addresses__decode_raw, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 155, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 2, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_apps_cardano_byron_addresses__decode_raw + 5, + .line_info_top = fun_data_apps_cardano_byron_addresses__decode_raw + 22, + .opcodes = fun_data_apps_cardano_byron_addresses__decode_raw + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_byron_addresses__lt_module_gt_ +// frozen bytecode for file apps/cardano/byron_addresses.py, scope apps_cardano_byron_addresses__validate_protocol_magic +static const byte fun_data_apps_cardano_byron_addresses__validate_protocol_magic[147] = { + 0x42,0x2a, // prelude + 0x20,0x2b,0x23, // names: _validate_protocol_magic, address_data_encoded, protocol_magic + 0x80,0x5a,0x60,0x40,0x28,0x32,0x47,0x24,0x29,0x25,0x49,0x2f,0x47,0x24,0x48,0x29,0x47,0x25, // code info + 0x12,0x08, // LOAD_GLOBAL 'cbor' + 0x14,0x1f, // LOAD_METHOD 'decode' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0x12,0x26, // LOAD_GLOBAL 'isinstance' + 0xb2, // LOAD_FAST 2 + 0x12,0x27, // LOAD_GLOBAL 'list' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x28, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0xc3, // STORE_FAST 3 + 0x12,0x0a, // LOAD_GLOBAL 'protocol_magics' + 0x14,0x0f, // LOAD_METHOD 'is_mainnet' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xb3, // LOAD_FAST 3 + 0xdd, // BINARY_OP 6 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x7e, // JUMP 62 + 0x12,0x28, // LOAD_GLOBAL 'len' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xb3, // LOAD_FAST 3 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x55, // LOAD_SUBSCR + 0xc4, // STORE_FAST 4 + 0x12,0x08, // LOAD_GLOBAL 'cbor' + 0x14,0x1f, // LOAD_METHOD 'decode' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0x12,0x26, // LOAD_GLOBAL 'isinstance' + 0xb5, // LOAD_FAST 5 + 0x12,0x2a, // LOAD_GLOBAL 'int' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x06, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_byron_addresses__validate_protocol_magic = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_byron_addresses__validate_protocol_magic, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 147, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_cardano_byron_addresses__validate_protocol_magic + 5, + .line_info_top = fun_data_apps_cardano_byron_addresses__validate_protocol_magic + 23, + .opcodes = fun_data_apps_cardano_byron_addresses__validate_protocol_magic + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_byron_addresses__lt_module_gt_[] = { + &raw_code_apps_cardano_byron_addresses_derive, + &raw_code_apps_cardano_byron_addresses_validate, + &raw_code_apps_cardano_byron_addresses__address_hash, + &raw_code_apps_cardano_byron_addresses__decode_raw, + &raw_code_apps_cardano_byron_addresses__validate_protocol_magic, +}; + +static const mp_raw_code_t raw_code_apps_cardano_byron_addresses__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_byron_addresses__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 102, + #endif + .children = (void *)&children_apps_cardano_byron_addresses__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_byron_addresses__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_byron_addresses__lt_module_gt_ + 20, + .opcodes = fun_data_apps_cardano_byron_addresses__lt_module_gt_ + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_byron_addresses[44] = { + MP_QSTR_apps_slash_cardano_slash_byron_addresses_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_crc, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_cbor, + MP_QSTR_apps_dot_common, + MP_QSTR_protocol_magics, + MP_QSTR_helpers, + MP_QSTR_derive, + MP_QSTR_derive_public_key, + MP_QSTR_helpers_dot_utils, + MP_QSTR_is_mainnet, + MP_QSTR_encode, + MP_QSTR_extended, + MP_QSTR_Tagged, + MP_QSTR_crc32, + MP_QSTR_validate, + MP_QSTR__address_hash, + MP_QSTR_hashlib, + MP_QSTR_sha3_256, + MP_QSTR_digest, + MP_QSTR_blake2b, + MP_QSTR_data, + MP_QSTR_outlen, + MP_QSTR__decode_raw, + MP_QSTR_log, + MP_QSTR_trezor, + MP_QSTR_decode, + MP_QSTR__validate_protocol_magic, + MP_QSTR_keychain, + MP_QSTR_path, + MP_QSTR_protocol_magic, + MP_QSTR_address, + MP_QSTR_ValueError, + MP_QSTR_isinstance, + MP_QSTR_list, + MP_QSTR_len, + MP_QSTR_bytes, + MP_QSTR_int, + MP_QSTR_address_data_encoded, +}; + +// constants +static const mp_obj_str_t const_obj_apps_cardano_byron_addresses_1 = {{&mp_type_str}, 60022, 31, (const byte*)"\x4f\x75\x74\x70\x75\x74\x20\x61\x64\x64\x72\x65\x73\x73\x20\x6e\x65\x74\x77\x6f\x72\x6b\x20\x6d\x69\x73\x6d\x61\x74\x63\x68"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_byron_addresses[2] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_address), + MP_ROM_PTR(&const_obj_apps_cardano_byron_addresses_1), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_byron_addresses = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_byron_addresses, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_byron_addresses, + }, + .rc = &raw_code_apps_cardano_byron_addresses__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_certificates +// - original source file: build/firmware/src/apps/cardano/certificates.mpy +// - frozen file name: apps/cardano/certificates.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/certificates.py, scope apps_cardano_certificates__lt_module_gt_ +static const byte fun_data_apps_cardano_certificates__lt_module_gt_[154] = { + 0x10,0x40, // prelude + 0x01, // names: + 0x6c,0x32,0x4c,0x2c,0x4c,0x80,0x14,0x84,0x26,0x84,0x17,0x84,0x21,0x84,0x10,0x84,0x1d,0x64,0x40,0x84,0x1b,0x84,0x11,0x84,0x16,0x84,0x0b,0x84,0x0e,0x84,0x1b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'CardanoCertificateType' + 0x10,0x05, // LOAD_CONST_STRING 'CardanoPoolRelayType' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x06, // IMPORT_NAME 'trezor.enums' + 0x1c,0x04, // IMPORT_FROM 'CardanoCertificateType' + 0x16,0x04, // STORE_NAME 'CardanoCertificateType' + 0x1c,0x05, // IMPORT_FROM 'CardanoPoolRelayType' + 0x16,0x05, // STORE_NAME 'CardanoPoolRelayType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.wire' + 0x1c,0x07, // IMPORT_FROM 'ProcessError' + 0x16,0x07, // STORE_NAME 'ProcessError' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x09, // LOAD_CONST_STRING 'addresses' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME '' + 0x1c,0x09, // IMPORT_FROM 'addresses' + 0x16,0x09, // STORE_NAME 'addresses' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0b, // LOAD_CONST_STRING 'get_public_key_hash' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'helpers.utils' + 0x1c,0x0b, // IMPORT_FROM 'get_public_key_hash' + 0x16,0x0b, // STORE_NAME 'get_public_key_hash' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0d, // STORE_NAME 'validate' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x1a, // STORE_NAME '_validate_structure' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x1b, // STORE_NAME 'cborize' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x1c, // STORE_NAME 'cborize_stake_credential' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x1d, // STORE_NAME 'cborize_pool_registration_init' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x29, // STORE_NAME 'assert_cond' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x2a, // STORE_NAME '_validate_pool_parameters' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x32, // STORE_NAME 'validate_pool_owner' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x3a, // STORE_NAME 'validate_pool_relay' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x42, // STORE_NAME 'cborize_pool_owner' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x43, // STORE_NAME '_cborize_ipv6_address' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x44, // STORE_NAME 'cborize_pool_relay' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x45, // STORE_NAME 'cborize_pool_metadata' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_certificates__lt_module_gt_ +// frozen bytecode for file apps/cardano/certificates.py, scope apps_cardano_certificates_validate +static const byte fun_data_apps_cardano_certificates_validate[160] = { + 0xd8,0x04,0x36, // prelude + 0x0d,0x47,0x48,0x49,0x4a, // names: validate, certificate, protocol_magic, network_id, account_path_checker + 0x80,0x23,0x4b,0x46,0x43,0x23,0x23,0x23,0x48,0x21,0x23,0x23,0x23,0x69,0x29,0x30,0x47,0x29,0x27,0x27,0x22,0x68, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0e, // LOAD_CONST_STRING 'validate_stake_credential' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'helpers.utils' + 0x1c,0x0e, // IMPORT_FROM 'validate_stake_credential' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x12,0x1a, // LOAD_GLOBAL '_validate_structure' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'CardanoCertificateType' + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'type' + 0xb5, // LOAD_FAST 5 + 0x13,0x10, // LOAD_ATTR 'STAKE_DELEGATION' + 0xb5, // LOAD_FAST 5 + 0x13,0x11, // LOAD_ATTR 'STAKE_REGISTRATION' + 0xb5, // LOAD_FAST 5 + 0x13,0x12, // LOAD_ATTR 'STAKE_DEREGISTRATION' + 0x2a,0x03, // BUILD_TUPLE 3 + 0xdd, // BINARY_OP 6 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'path' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'script_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'key_hash' + 0x12,0x07, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'type' + 0xb5, // LOAD_FAST 5 + 0x13,0x10, // LOAD_ATTR 'STAKE_DELEGATION' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'pool' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x4b, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'pool' + 0x34,0x01, // CALL_FUNCTION 1 + 0x9c, // LOAD_CONST_SMALL_INT 28 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x07, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'type' + 0xb5, // LOAD_FAST 5 + 0x13,0x17, // LOAD_ATTR 'STAKE_POOL_REGISTRATION' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'pool_parameters' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x07, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x2a, // LOAD_GLOBAL '_validate_pool_parameters' + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'pool_parameters' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x19, // LOAD_METHOD 'add_certificate' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_certificates_validate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_certificates_validate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 160, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_cardano_certificates_validate + 8, + .line_info_top = fun_data_apps_cardano_certificates_validate + 30, + .opcodes = fun_data_apps_cardano_certificates_validate + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_certificates__lt_module_gt_ +// frozen bytecode for file apps/cardano/certificates.py, scope apps_cardano_certificates__validate_structure +static const byte fun_data_apps_cardano_certificates__validate_structure[101] = { + 0x49,0x24, // prelude + 0x1a,0x47, // names: _validate_structure, certificate + 0x80,0x44,0x24,0x24,0x43,0x22,0x28,0x27,0x28,0x20,0x23,0x23,0x6b,0x40,0x2a,0x49, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'pool' + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'pool_parameters' + 0xc2, // STORE_FAST 2 + 0x12,0x04, // LOAD_GLOBAL 'CardanoCertificateType' + 0xc3, // STORE_FAST 3 + 0x2c,0x04, // BUILD_MAP 4 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xb3, // LOAD_FAST 3 + 0x13,0x11, // LOAD_ATTR 'STAKE_REGISTRATION' + 0x62, // STORE_MAP + 0xb2, // LOAD_FAST 2 + 0x2a,0x01, // BUILD_TUPLE 1 + 0xb3, // LOAD_FAST 3 + 0x13,0x10, // LOAD_ATTR 'STAKE_DELEGATION' + 0x62, // STORE_MAP + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xb3, // LOAD_FAST 3 + 0x13,0x12, // LOAD_ATTR 'STAKE_DEREGISTRATION' + 0x62, // STORE_MAP + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'path' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'script_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'key_hash' + 0xb1, // LOAD_FAST 1 + 0x2a,0x04, // BUILD_TUPLE 4 + 0xb3, // LOAD_FAST 3 + 0x13,0x17, // LOAD_ATTR 'STAKE_POOL_REGISTRATION' + 0x62, // STORE_MAP + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'type' + 0xb4, // LOAD_FAST 4 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0x12,0x4c, // LOAD_GLOBAL 'any' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'type' + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x07, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_certificates__validate_structure = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_certificates__validate_structure, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 101, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 26, + .line_info = fun_data_apps_cardano_certificates__validate_structure + 4, + .line_info_top = fun_data_apps_cardano_certificates__validate_structure + 20, + .opcodes = fun_data_apps_cardano_certificates__validate_structure + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_certificates__lt_module_gt_ +// frozen bytecode for file apps/cardano/certificates.py, scope apps_cardano_certificates_cborize +static const byte fun_data_apps_cardano_certificates_cborize[93] = { + 0x42,0x2a, // prelude + 0x1b,0x4d,0x47, // names: cborize, keychain, certificate + 0x80,0x5d,0x44,0x21,0x24,0x49,0x41,0x43,0x23,0x23,0x68,0x28,0x41,0x43,0x23,0x23,0x45,0x66, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'type' + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x12,0x04, // LOAD_GLOBAL 'CardanoCertificateType' + 0x13,0x11, // LOAD_ATTR 'STAKE_REGISTRATION' + 0x12,0x04, // LOAD_GLOBAL 'CardanoCertificateType' + 0x13,0x12, // LOAD_ATTR 'STAKE_DEREGISTRATION' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb2, // LOAD_FAST 2 + 0x12,0x1c, // LOAD_GLOBAL 'cborize_stake_credential' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x13, // LOAD_ATTR 'path' + 0xb1, // LOAD_FAST 1 + 0x13,0x14, // LOAD_ATTR 'script_hash' + 0xb1, // LOAD_FAST 1 + 0x13,0x15, // LOAD_ATTR 'key_hash' + 0x34,0x04, // CALL_FUNCTION 4 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x12,0x04, // LOAD_GLOBAL 'CardanoCertificateType' + 0x13,0x10, // LOAD_ATTR 'STAKE_DELEGATION' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb2, // LOAD_FAST 2 + 0x12,0x1c, // LOAD_GLOBAL 'cborize_stake_credential' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x13, // LOAD_ATTR 'path' + 0xb1, // LOAD_FAST 1 + 0x13,0x14, // LOAD_ATTR 'script_hash' + 0xb1, // LOAD_FAST 1 + 0x13,0x15, // LOAD_ATTR 'key_hash' + 0x34,0x04, // CALL_FUNCTION 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'pool' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x63, // RETURN_VALUE + 0x12,0x4e, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_certificates_cborize = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_certificates_cborize, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 93, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 27, + .line_info = fun_data_apps_cardano_certificates_cborize + 5, + .line_info_top = fun_data_apps_cardano_certificates_cborize + 23, + .opcodes = fun_data_apps_cardano_certificates_cborize + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_certificates__lt_module_gt_ +// frozen bytecode for file apps/cardano/certificates.py, scope apps_cardano_certificates_cborize_stake_credential +static const byte fun_data_apps_cardano_certificates_cborize_stake_credential[46] = { + 0xb8,0x04,0x16, // prelude + 0x1c,0x4d,0x13,0x14,0x15, // names: cborize_stake_credential, keychain, path, script_hash, key_hash + 0x80,0x81,0x26,0x4d,0x23,0x65, // code info + 0xb3, // LOAD_FAST 3 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0xb1, // LOAD_FAST 1 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb3, // LOAD_FAST 3 + 0x45,0x06, // JUMP_IF_TRUE_OR_POP 6 + 0x12,0x0b, // LOAD_GLOBAL 'get_public_key_hash' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0x12,0x4e, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_certificates_cborize_stake_credential = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_certificates_cborize_stake_credential, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_apps_cardano_certificates_cborize_stake_credential + 8, + .line_info_top = fun_data_apps_cardano_certificates_cborize_stake_credential + 14, + .opcodes = fun_data_apps_cardano_certificates_cborize_stake_credential + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_certificates__lt_module_gt_ +// frozen bytecode for file apps/cardano/certificates.py, scope apps_cardano_certificates_cborize_pool_registration_init +static const byte fun_data_apps_cardano_certificates_cborize_pool_registration_init[77] = { + 0x61,0x26, // prelude + 0x1d,0x47, // names: cborize_pool_registration_init, certificate + 0x80,0x8e,0x4b,0x40,0x24,0x40,0x20,0x23,0x23,0x23,0x23,0x23,0x44,0x20,0x23,0x67,0x40, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1e, // LOAD_CONST_STRING 'cbor' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1f, // IMPORT_NAME 'apps.common' + 0x1c,0x1e, // IMPORT_FROM 'cbor' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'pool_parameters' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'type' + 0xb2, // LOAD_FAST 2 + 0x13,0x20, // LOAD_ATTR 'pool_id' + 0xb2, // LOAD_FAST 2 + 0x13,0x21, // LOAD_ATTR 'vrf_key_hash' + 0xb2, // LOAD_FAST 2 + 0x13,0x22, // LOAD_ATTR 'pledge' + 0xb2, // LOAD_FAST 2 + 0x13,0x23, // LOAD_ATTR 'cost' + 0xb1, // LOAD_FAST 1 + 0x14,0x24, // LOAD_METHOD 'Tagged' + 0x9e, // LOAD_CONST_SMALL_INT 30 + 0xb2, // LOAD_FAST 2 + 0x13,0x25, // LOAD_ATTR 'margin_numerator' + 0xb2, // LOAD_FAST 2 + 0x13,0x26, // LOAD_ATTR 'margin_denominator' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x02, // CALL_METHOD 2 + 0x12,0x09, // LOAD_GLOBAL 'addresses' + 0x14,0x27, // LOAD_METHOD 'get_bytes_unsafe' + 0xb2, // LOAD_FAST 2 + 0x13,0x28, // LOAD_ATTR 'reward_account' + 0x36,0x01, // CALL_METHOD 1 + 0x2a,0x07, // BUILD_TUPLE 7 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_certificates_cborize_pool_registration_init = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_certificates_cborize_pool_registration_init, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 77, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_apps_cardano_certificates_cborize_pool_registration_init + 4, + .line_info_top = fun_data_apps_cardano_certificates_cborize_pool_registration_init + 21, + .opcodes = fun_data_apps_cardano_certificates_cborize_pool_registration_init + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_certificates__lt_module_gt_ +// frozen bytecode for file apps/cardano/certificates.py, scope apps_cardano_certificates_assert_cond +static const byte fun_data_apps_cardano_certificates_assert_cond[19] = { + 0x11,0x0a, // prelude + 0x29,0x4f, // names: assert_cond, condition + 0x80,0xa9,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x07, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_certificates_assert_cond = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_certificates_assert_cond, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_cardano_certificates_assert_cond + 4, + .line_info_top = fun_data_apps_cardano_certificates_assert_cond + 7, + .opcodes = fun_data_apps_cardano_certificates_assert_cond + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_certificates__lt_module_gt_ +// frozen bytecode for file apps/cardano/certificates.py, scope apps_cardano_certificates__validate_pool_parameters +static const byte fun_data_apps_cardano_certificates__validate_pool_parameters[212] = { + 0x4b,0x2a, // prelude + 0x2a,0x18,0x48,0x49, // names: _validate_pool_parameters, pool_parameters, protocol_magic, network_id + 0x80,0xb2,0x4b,0x2e,0x2e,0x34,0x34,0x2a,0x2a,0x2c,0x4a,0x24,0x48,0x24,0x43,0x30,0x2e, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x2b, // LOAD_CONST_STRING 'LOVELACE_MAX_SUPPLY' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2c, // IMPORT_NAME 'helpers' + 0x1c,0x2b, // IMPORT_FROM 'LOVELACE_MAX_SUPPLY' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0x12,0x4b, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'pool_id' + 0x34,0x01, // CALL_FUNCTION 1 + 0x9c, // LOAD_CONST_SMALL_INT 28 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0x12,0x4b, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'vrf_key_hash' + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'pledge' + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x04, // JUMP_IF_FALSE_OR_POP 4 + 0xb3, // LOAD_FAST 3 + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'cost' + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x04, // JUMP_IF_FALSE_OR_POP 4 + 0xb3, // LOAD_FAST 3 + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'margin_numerator' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdb, // BINARY_OP 4 __ge__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'margin_denominator' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'margin_numerator' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'margin_denominator' + 0xda, // BINARY_OP 3 __le__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR 'owners_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'addresses' + 0x14,0x2e, // LOAD_METHOD 'validate_reward_address' + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'reward_account' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'metadata' + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x44,0x6f, // POP_JUMP_IF_FALSE 47 + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0x12,0x4b, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x13,0x30, // LOAD_ATTR 'url' + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xda, // BINARY_OP 3 __le__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0x12,0x4b, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x13,0x31, // LOAD_ATTR 'hash' + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0x12,0x50, // LOAD_GLOBAL 'all' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb4, // LOAD_FAST 4 + 0x13,0x30, // LOAD_ATTR 'url' + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_certificates__validate_pool_parameters +// frozen bytecode for file apps/cardano/certificates.py, scope apps_cardano_certificates__validate_pool_parameters__lt_genexpr_gt_ +static const byte fun_data_apps_cardano_certificates__validate_pool_parameters__lt_genexpr_gt_[39] = { + 0xc1,0x40,0x08, // prelude + 0x46,0x58, // names: , * + 0x80,0xc5, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x18, // FOR_ITER 24 + 0xc1, // STORE_FAST 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x12,0x59, // LOAD_GLOBAL 'ord' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0xd7, // BINARY_OP 0 __lt__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x26, // JUMP -26 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_certificates__validate_pool_parameters__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_certificates__validate_pool_parameters__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 70, + .line_info = fun_data_apps_cardano_certificates__validate_pool_parameters__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_apps_cardano_certificates__validate_pool_parameters__lt_genexpr_gt_ + 7, + .opcodes = fun_data_apps_cardano_certificates__validate_pool_parameters__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_certificates__validate_pool_parameters[] = { + &raw_code_apps_cardano_certificates__validate_pool_parameters__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_cardano_certificates__validate_pool_parameters = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_certificates__validate_pool_parameters, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 212, + #endif + .children = (void *)&children_apps_cardano_certificates__validate_pool_parameters, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_cardano_certificates__validate_pool_parameters + 6, + .line_info_top = fun_data_apps_cardano_certificates__validate_pool_parameters + 23, + .opcodes = fun_data_apps_cardano_certificates__validate_pool_parameters + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_certificates__lt_module_gt_ +// frozen bytecode for file apps/cardano/certificates.py, scope apps_cardano_certificates_validate_pool_owner +static const byte fun_data_apps_cardano_certificates_validate_pool_owner[105] = { + 0x3a,0x1a, // prelude + 0x32,0x51,0x4a, // names: validate_pool_owner, owner, account_path_checker + 0x80,0xcb,0x2b,0x4b,0x22,0x51,0x28,0x2e,0x25,0x4d, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x33, // LOAD_CONST_STRING 'ADDRESS_KEY_HASH_SIZE' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2c, // IMPORT_NAME 'helpers' + 0x1c,0x33, // IMPORT_FROM 'ADDRESS_KEY_HASH_SIZE' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x34, // LOAD_CONST_STRING 'SCHEMA_STAKING_ANY_ACCOUNT' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x35, // IMPORT_NAME 'helpers.paths' + 0x1c,0x34, // IMPORT_FROM 'SCHEMA_STAKING_ANY_ACCOUNT' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'staking_key_hash' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x45,0x06, // JUMP_IF_TRUE_OR_POP 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'staking_key_path' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'staking_key_hash' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0x12,0x4b, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'staking_key_hash' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'staking_key_path' + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0xb3, // LOAD_FAST 3 + 0x14,0x38, // LOAD_METHOD 'match' + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'staking_key_path' + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x39, // LOAD_METHOD 'add_pool_owner' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_certificates_validate_pool_owner = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_certificates_validate_pool_owner, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 105, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 50, + .line_info = fun_data_apps_cardano_certificates_validate_pool_owner + 5, + .line_info_top = fun_data_apps_cardano_certificates_validate_pool_owner + 15, + .opcodes = fun_data_apps_cardano_certificates_validate_pool_owner + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_certificates__lt_module_gt_ +// frozen bytecode for file apps/cardano/certificates.py, scope apps_cardano_certificates_validate_pool_relay +static const byte fun_data_apps_cardano_certificates_validate_pool_relay[229] = { + 0x31,0x26, // prelude + 0x3a,0x52, // names: validate_pool_relay, pool_relay + 0x80,0xda,0x24,0x44,0x2b,0x22,0x51,0x28,0x2e,0x28,0x2e,0x3e,0x2a,0x34,0x3d,0x2a,0x56, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'port' + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x3c, // LOAD_ATTR 'host_name' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'type' + 0x12,0x05, // LOAD_GLOBAL 'CardanoPoolRelayType' + 0x13,0x3d, // LOAD_ATTR 'SINGLE_HOST_IP' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xdd,0x80, // POP_JUMP_IF_FALSE 93 + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0xb0, // LOAD_FAST 0 + 0x13,0x3e, // LOAD_ATTR 'ipv4_address' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x45,0x06, // JUMP_IF_TRUE_OR_POP 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'ipv6_address' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x3e, // LOAD_ATTR 'ipv4_address' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0x12,0x4b, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x3e, // LOAD_ATTR 'ipv4_address' + 0x34,0x01, // CALL_FUNCTION 1 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'ipv6_address' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0x12,0x4b, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'ipv6_address' + 0x34,0x01, // CALL_FUNCTION 1 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x46,0x10, // JUMP_IF_FALSE_OR_POP 16 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x07, // JUMP_IF_FALSE_OR_POP 7 + 0x22,0x83,0xff,0x7f, // LOAD_CONST_SMALL_INT 65535 + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0xde,0x80, // JUMP 94 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'type' + 0x12,0x05, // LOAD_GLOBAL 'CardanoPoolRelayType' + 0x13,0x40, // LOAD_ATTR 'SINGLE_HOST_NAME' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x71, // POP_JUMP_IF_FALSE 49 + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x46,0x09, // JUMP_IF_FALSE_OR_POP 9 + 0x12,0x4b, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xda, // BINARY_OP 3 __le__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x46,0x10, // JUMP_IF_FALSE_OR_POP 16 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x07, // JUMP_IF_FALSE_OR_POP 7 + 0x22,0x83,0xff,0x7f, // LOAD_CONST_SMALL_INT 65535 + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x63, // JUMP 35 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'type' + 0x12,0x05, // LOAD_GLOBAL 'CardanoPoolRelayType' + 0x13,0x41, // LOAD_ATTR 'MULTIPLE_HOST_NAME' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0x12,0x29, // LOAD_GLOBAL 'assert_cond' + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x46,0x09, // JUMP_IF_FALSE_OR_POP 9 + 0x12,0x4b, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xda, // BINARY_OP 3 __le__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x43, // JUMP 3 + 0x12,0x4e, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_certificates_validate_pool_relay = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_certificates_validate_pool_relay, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 229, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 58, + .line_info = fun_data_apps_cardano_certificates_validate_pool_relay + 4, + .line_info_top = fun_data_apps_cardano_certificates_validate_pool_relay + 21, + .opcodes = fun_data_apps_cardano_certificates_validate_pool_relay + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_certificates__lt_module_gt_ +// frozen bytecode for file apps/cardano/certificates.py, scope apps_cardano_certificates_cborize_pool_owner +static const byte fun_data_apps_cardano_certificates_cborize_pool_owner[39] = { + 0x22,0x12, // prelude + 0x42,0x4d,0x53, // names: cborize_pool_owner, keychain, pool_owner + 0x80,0xf2,0x25,0x29,0x25,0x44, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x37, // LOAD_ATTR 'staking_key_path' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x0b, // LOAD_GLOBAL 'get_public_key_hash' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x37, // LOAD_ATTR 'staking_key_path' + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x36, // LOAD_ATTR 'staking_key_hash' + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x36, // LOAD_ATTR 'staking_key_hash' + 0x63, // RETURN_VALUE + 0x12,0x54, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_certificates_cborize_pool_owner = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_certificates_cborize_pool_owner, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 66, + .line_info = fun_data_apps_cardano_certificates_cborize_pool_owner + 5, + .line_info_top = fun_data_apps_cardano_certificates_cborize_pool_owner + 11, + .opcodes = fun_data_apps_cardano_certificates_cborize_pool_owner + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_certificates__lt_module_gt_ +// frozen bytecode for file apps/cardano/certificates.py, scope apps_cardano_certificates__cborize_ipv6_address +static const byte fun_data_apps_cardano_certificates__cborize_ipv6_address[60] = { + 0x51,0x14, // prelude + 0x43,0x3f, // names: _cborize_ipv6_address, ipv6_address + 0x80,0xfb,0x25,0x62,0x40,0x23,0x25,0x5f, // code info + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xc1, // STORE_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x5b, // JUMP 27 + 0x57, // DUP_TOP + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x12,0x55, // LOAD_GLOBAL 'bytes' + 0x12,0x56, // LOAD_GLOBAL 'reversed' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xf4, // BINARY_OP 29 __mul__ + 0xb2, // LOAD_FAST 2 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xf4, // BINARY_OP 29 __mul__ + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xf2, // BINARY_OP 27 __add__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc1, // STORE_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x57, // DUP_TOP + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x20, // POP_JUMP_IF_TRUE -32 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_certificates__cborize_ipv6_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_certificates__cborize_ipv6_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 60, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 67, + .line_info = fun_data_apps_cardano_certificates__cborize_ipv6_address + 4, + .line_info_top = fun_data_apps_cardano_certificates__cborize_ipv6_address + 12, + .opcodes = fun_data_apps_cardano_certificates__cborize_ipv6_address + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_certificates__lt_module_gt_ +// frozen bytecode for file apps/cardano/certificates.py, scope apps_cardano_certificates_cborize_pool_relay +static const byte fun_data_apps_cardano_certificates_cborize_pool_relay[86] = { + 0x31,0x22, // prelude + 0x44,0x52, // names: cborize_pool_relay, pool_relay + 0x90,0x0b,0x44,0x28,0x41,0x23,0x23,0x4a,0x28,0x41,0x23,0x46,0x28,0x41,0x66, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'type' + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x12,0x05, // LOAD_GLOBAL 'CardanoPoolRelayType' + 0x13,0x3d, // LOAD_ATTR 'SINGLE_HOST_IP' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'port' + 0xb0, // LOAD_FAST 0 + 0x13,0x3e, // LOAD_ATTR 'ipv4_address' + 0x12,0x43, // LOAD_GLOBAL '_cborize_ipv6_address' + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'ipv6_address' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x04, // BUILD_TUPLE 4 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x12,0x05, // LOAD_GLOBAL 'CardanoPoolRelayType' + 0x13,0x40, // LOAD_ATTR 'SINGLE_HOST_NAME' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'port' + 0xb0, // LOAD_FAST 0 + 0x13,0x3c, // LOAD_ATTR 'host_name' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x12,0x05, // LOAD_GLOBAL 'CardanoPoolRelayType' + 0x13,0x41, // LOAD_ATTR 'MULTIPLE_HOST_NAME' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x3c, // LOAD_ATTR 'host_name' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0x12,0x4e, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_certificates_cborize_pool_relay = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_certificates_cborize_pool_relay, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 86, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 68, + .line_info = fun_data_apps_cardano_certificates_cborize_pool_relay + 4, + .line_info_top = fun_data_apps_cardano_certificates_cborize_pool_relay + 19, + .opcodes = fun_data_apps_cardano_certificates_cborize_pool_relay + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_certificates__lt_module_gt_ +// frozen bytecode for file apps/cardano/certificates.py, scope apps_cardano_certificates_cborize_pool_metadata +static const byte fun_data_apps_cardano_certificates_cborize_pool_metadata[22] = { + 0x11,0x0c, // prelude + 0x45,0x57, // names: cborize_pool_metadata, pool_metadata + 0x90,0x26,0x23,0x42, // code info + 0xb0, // LOAD_FAST 0 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'url' + 0xb0, // LOAD_FAST 0 + 0x13,0x31, // LOAD_ATTR 'hash' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_certificates_cborize_pool_metadata = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_certificates_cborize_pool_metadata, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 69, + .line_info = fun_data_apps_cardano_certificates_cborize_pool_metadata + 4, + .line_info_top = fun_data_apps_cardano_certificates_cborize_pool_metadata + 8, + .opcodes = fun_data_apps_cardano_certificates_cborize_pool_metadata + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_certificates__lt_module_gt_[] = { + &raw_code_apps_cardano_certificates_validate, + &raw_code_apps_cardano_certificates__validate_structure, + &raw_code_apps_cardano_certificates_cborize, + &raw_code_apps_cardano_certificates_cborize_stake_credential, + &raw_code_apps_cardano_certificates_cborize_pool_registration_init, + &raw_code_apps_cardano_certificates_assert_cond, + &raw_code_apps_cardano_certificates__validate_pool_parameters, + &raw_code_apps_cardano_certificates_validate_pool_owner, + &raw_code_apps_cardano_certificates_validate_pool_relay, + &raw_code_apps_cardano_certificates_cborize_pool_owner, + &raw_code_apps_cardano_certificates__cborize_ipv6_address, + &raw_code_apps_cardano_certificates_cborize_pool_relay, + &raw_code_apps_cardano_certificates_cborize_pool_metadata, +}; + +static const mp_raw_code_t raw_code_apps_cardano_certificates__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_certificates__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 154, + #endif + .children = (void *)&children_apps_cardano_certificates__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 13, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_certificates__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_certificates__lt_module_gt_ + 34, + .opcodes = fun_data_apps_cardano_certificates__lt_module_gt_ + 34, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_certificates[90] = { + MP_QSTR_apps_slash_cardano_slash_certificates_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_CardanoCertificateType, + MP_QSTR_CardanoPoolRelayType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_addresses, + MP_QSTR_, + MP_QSTR_get_public_key_hash, + MP_QSTR_helpers_dot_utils, + MP_QSTR_validate, + MP_QSTR_validate_stake_credential, + MP_QSTR_type, + MP_QSTR_STAKE_DELEGATION, + MP_QSTR_STAKE_REGISTRATION, + MP_QSTR_STAKE_DEREGISTRATION, + MP_QSTR_path, + MP_QSTR_script_hash, + MP_QSTR_key_hash, + MP_QSTR_pool, + MP_QSTR_STAKE_POOL_REGISTRATION, + MP_QSTR_pool_parameters, + MP_QSTR_add_certificate, + MP_QSTR__validate_structure, + MP_QSTR_cborize, + MP_QSTR_cborize_stake_credential, + MP_QSTR_cborize_pool_registration_init, + MP_QSTR_cbor, + MP_QSTR_apps_dot_common, + MP_QSTR_pool_id, + MP_QSTR_vrf_key_hash, + MP_QSTR_pledge, + MP_QSTR_cost, + MP_QSTR_Tagged, + MP_QSTR_margin_numerator, + MP_QSTR_margin_denominator, + MP_QSTR_get_bytes_unsafe, + MP_QSTR_reward_account, + MP_QSTR_assert_cond, + MP_QSTR__validate_pool_parameters, + MP_QSTR_LOVELACE_MAX_SUPPLY, + MP_QSTR_helpers, + MP_QSTR_owners_count, + MP_QSTR_validate_reward_address, + MP_QSTR_metadata, + MP_QSTR_url, + MP_QSTR_hash, + MP_QSTR_validate_pool_owner, + MP_QSTR_ADDRESS_KEY_HASH_SIZE, + MP_QSTR_SCHEMA_STAKING_ANY_ACCOUNT, + MP_QSTR_helpers_dot_paths, + MP_QSTR_staking_key_hash, + MP_QSTR_staking_key_path, + MP_QSTR_match, + MP_QSTR_add_pool_owner, + MP_QSTR_validate_pool_relay, + MP_QSTR_port, + MP_QSTR_host_name, + MP_QSTR_SINGLE_HOST_IP, + MP_QSTR_ipv4_address, + MP_QSTR_ipv6_address, + MP_QSTR_SINGLE_HOST_NAME, + MP_QSTR_MULTIPLE_HOST_NAME, + MP_QSTR_cborize_pool_owner, + MP_QSTR__cborize_ipv6_address, + MP_QSTR_cborize_pool_relay, + MP_QSTR_cborize_pool_metadata, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_certificate, + MP_QSTR_protocol_magic, + MP_QSTR_network_id, + MP_QSTR_account_path_checker, + MP_QSTR_len, + MP_QSTR_any, + MP_QSTR_keychain, + MP_QSTR_RuntimeError, + MP_QSTR_condition, + MP_QSTR_all, + MP_QSTR_owner, + MP_QSTR_pool_relay, + MP_QSTR_pool_owner, + MP_QSTR_ValueError, + MP_QSTR_bytes, + MP_QSTR_reversed, + MP_QSTR_pool_metadata, + MP_QSTR__star_, + MP_QSTR_ord, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_certificates[2] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_certificate), + MP_ROM_PTR(&mp_const_empty_bytes_obj), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_certificates = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_certificates, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_certificates, + }, + .rc = &raw_code_apps_cardano_certificates__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_get_address +// - original source file: build/firmware/src/apps/cardano/get_address.mpy +// - frozen file name: apps/cardano/get_address.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/get_address.py, scope apps_cardano_get_address__lt_module_gt_ +static const byte fun_data_apps_cardano_get_address__lt_module_gt_[31] = { + 0x08,0x0a, // prelude + 0x01, // names: + 0x40,0x4c,0x60,0x20, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x02, // LOAD_CONST_STRING 'seed' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME '' + 0x1c,0x02, // IMPORT_FROM 'seed' + 0x16,0x02, // STORE_NAME 'seed' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'seed' + 0x13,0x04, // LOAD_ATTR 'with_keychain' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x05, // STORE_NAME 'get_address' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_get_address__lt_module_gt_ +// frozen bytecode for file apps/cardano/get_address.py, scope apps_cardano_get_address_get_address +static const byte fun_data_apps_cardano_get_address_get_address[235] = { + 0xa2,0x52,0x34, // prelude + 0x05,0x1f,0x20, // names: get_address, msg, keychain + 0x80,0x0c,0x30,0x4b,0x2b,0x30,0x2b,0x50,0x44,0x2a,0x47,0x22,0x25,0x74,0x40,0x51,0x45,0x26,0x21,0x26,0x4c,0x23,0x73, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'log' + 0x10,0x07, // LOAD_CONST_STRING 'wire' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x08, // IMPORT_NAME 'trezor' + 0x1c,0x06, // IMPORT_FROM 'log' + 0xc2, // STORE_FAST 2 + 0x1c,0x07, // IMPORT_FROM 'wire' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'CardanoAddress' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.messages' + 0x1c,0x09, // IMPORT_FROM 'CardanoAddress' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0b, // LOAD_CONST_STRING 'addresses' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME '' + 0x1c,0x0b, // IMPORT_FROM 'addresses' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0c, // LOAD_CONST_STRING 'Credential' + 0x10,0x0d, // LOAD_CONST_STRING 'should_show_credentials' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0e, // IMPORT_NAME 'helpers.credential' + 0x1c,0x0c, // IMPORT_FROM 'Credential' + 0xc6, // STORE_FAST 6 + 0x1c,0x0d, // IMPORT_FROM 'should_show_credentials' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0f, // LOAD_CONST_STRING 'validate_network_info' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'helpers.utils' + 0x1c,0x0f, // IMPORT_FROM 'validate_network_info' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x11, // LOAD_CONST_STRING 'show_cardano_address' + 0x10,0x12, // LOAD_CONST_STRING 'show_credentials' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x13, // IMPORT_NAME 'layout' + 0x1c,0x11, // IMPORT_FROM 'show_cardano_address' + 0xc9, // STORE_FAST 9 + 0x1c,0x12, // IMPORT_FROM 'show_credentials' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'address_parameters' + 0xcb, // STORE_FAST 11 + 0xb8, // LOAD_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'network_id' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'protocol_magic' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x17, // LOAD_METHOD 'validate_address_parameters' + 0xbb, // LOAD_FAST 11 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x48,0x10, // SETUP_EXCEPT 16 + 0xb5, // LOAD_FAST 5 + 0x14,0x18, // LOAD_METHOD 'derive_human_readable' + 0xb1, // LOAD_FAST 1 + 0xbb, // LOAD_FAST 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'protocol_magic' + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'network_id' + 0x36,0x04, // CALL_METHOD 4 + 0xcc, // STORE_FAST 12 + 0x4a,0x1a, // POP_EXCEPT_JUMP 26 + 0x57, // DUP_TOP + 0x12,0x21, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xcd, // STORE_FAST 13 + 0x49,0x09, // SETUP_FINALLY 9 + 0xb3, // LOAD_FAST 3 + 0x14,0x19, // LOAD_METHOD 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xcd, // STORE_FAST 13 + 0x28,0x0d, // DELETE_FAST 13 + 0x5d, // END_FINALLY + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'show_display' + 0x44,0x6f, // POP_JUMP_IF_FALSE 47 + 0xb7, // LOAD_FAST 7 + 0xbb, // LOAD_FAST 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xba, // LOAD_FAST 10 + 0xb6, // LOAD_FAST 6 + 0x14,0x1b, // LOAD_METHOD 'payment_credential' + 0xbb, // LOAD_FAST 11 + 0x36,0x01, // CALL_METHOD 1 + 0xb6, // LOAD_FAST 6 + 0x14,0x1c, // LOAD_METHOD 'stake_credential' + 0xbb, // LOAD_FAST 11 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0xbb, // LOAD_FAST 11 + 0xbc, // LOAD_FAST 12 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'protocol_magic' + 0x10,0x1d, // LOAD_CONST_STRING 'chunkify' + 0x12,0x22, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'chunkify' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x10,0x1e, // LOAD_CONST_STRING 'address' + 0xbc, // LOAD_FAST 12 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_get_address_get_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_get_address_get_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 235, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 21, + .n_exc_stack = 2, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_cardano_get_address_get_address + 6, + .line_info_top = fun_data_apps_cardano_get_address_get_address + 29, + .opcodes = fun_data_apps_cardano_get_address_get_address + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_get_address__lt_module_gt_[] = { + &raw_code_apps_cardano_get_address_get_address, +}; + +static const mp_raw_code_t raw_code_apps_cardano_get_address__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_get_address__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = (void *)&children_apps_cardano_get_address__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_get_address__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_get_address__lt_module_gt_ + 7, + .opcodes = fun_data_apps_cardano_get_address__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_get_address[35] = { + MP_QSTR_apps_slash_cardano_slash_get_address_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_seed, + MP_QSTR_, + MP_QSTR_with_keychain, + MP_QSTR_get_address, + MP_QSTR_log, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_CardanoAddress, + MP_QSTR_trezor_dot_messages, + MP_QSTR_addresses, + MP_QSTR_Credential, + MP_QSTR_should_show_credentials, + MP_QSTR_helpers_dot_credential, + MP_QSTR_validate_network_info, + MP_QSTR_helpers_dot_utils, + MP_QSTR_show_cardano_address, + MP_QSTR_show_credentials, + MP_QSTR_layout, + MP_QSTR_address_parameters, + MP_QSTR_network_id, + MP_QSTR_protocol_magic, + MP_QSTR_validate_address_parameters, + MP_QSTR_derive_human_readable, + MP_QSTR_ProcessError, + MP_QSTR_show_display, + MP_QSTR_payment_credential, + MP_QSTR_stake_credential, + MP_QSTR_chunkify, + MP_QSTR_address, + MP_QSTR_msg, + MP_QSTR_keychain, + MP_QSTR_ValueError, + MP_QSTR_bool, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_get_address[1] = { + MP_ROM_QSTR(MP_QSTR_Deriving_space_address_space_failed), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_get_address = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_get_address, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_get_address, + }, + .rc = &raw_code_apps_cardano_get_address__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_get_native_script_hash +// - original source file: build/firmware/src/apps/cardano/get_native_script_hash.mpy +// - frozen file name: apps/cardano/get_native_script_hash.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/get_native_script_hash.py, scope apps_cardano_get_native_script_hash__lt_module_gt_ +static const byte fun_data_apps_cardano_get_native_script_hash__lt_module_gt_[31] = { + 0x08,0x0a, // prelude + 0x01, // names: + 0x40,0x4c,0x60,0x20, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x02, // LOAD_CONST_STRING 'seed' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME '' + 0x1c,0x02, // IMPORT_FROM 'seed' + 0x16,0x02, // STORE_NAME 'seed' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'seed' + 0x13,0x04, // LOAD_ATTR 'with_keychain' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x05, // STORE_NAME 'get_native_script_hash' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_get_native_script_hash__lt_module_gt_ +// frozen bytecode for file apps/cardano/get_native_script_hash.py, scope apps_cardano_get_native_script_hash_get_native_script_hash +static const byte fun_data_apps_cardano_get_native_script_hash_get_native_script_hash[115] = { + 0xd2,0x40,0x1a, // prelude + 0x05,0x13,0x14, // names: get_native_script_hash, msg, keychain + 0x80,0x0c,0x2b,0x4b,0x50,0x49,0x4a,0x29,0x2c,0x4d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'CardanoNativeScriptHashDisplayFormat' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.enums' + 0x1c,0x06, // IMPORT_FROM 'CardanoNativeScriptHashDisplayFormat' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'CardanoNativeScriptHash' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.messages' + 0x1c,0x08, // IMPORT_FROM 'CardanoNativeScriptHash' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0a, // LOAD_CONST_STRING 'layout' + 0x10,0x0b, // LOAD_CONST_STRING 'native_script' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x03, // IMPORT_NAME '' + 0x1c,0x0a, // IMPORT_FROM 'layout' + 0xc4, // STORE_FAST 4 + 0x1c,0x0b, // IMPORT_FROM 'native_script' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x0c, // LOAD_METHOD 'validate_native_script' + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'script' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x05, // LOAD_METHOD 'get_native_script_hash' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'script' + 0x36,0x02, // CALL_METHOD 2 + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'display_format' + 0xb2, // LOAD_FAST 2 + 0x13,0x0f, // LOAD_ATTR 'HIDE' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb4, // LOAD_FAST 4 + 0x14,0x10, // LOAD_METHOD 'show_native_script' + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'script' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x11, // LOAD_METHOD 'show_script_hash' + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'display_format' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x12, // LOAD_CONST_STRING 'script_hash' + 0xb6, // LOAD_FAST 6 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_get_native_script_hash_get_native_script_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_get_native_script_hash_get_native_script_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 115, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_cardano_get_native_script_hash_get_native_script_hash + 6, + .line_info_top = fun_data_apps_cardano_get_native_script_hash_get_native_script_hash + 16, + .opcodes = fun_data_apps_cardano_get_native_script_hash_get_native_script_hash + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_get_native_script_hash__lt_module_gt_[] = { + &raw_code_apps_cardano_get_native_script_hash_get_native_script_hash, +}; + +static const mp_raw_code_t raw_code_apps_cardano_get_native_script_hash__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_get_native_script_hash__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = (void *)&children_apps_cardano_get_native_script_hash__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_get_native_script_hash__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_get_native_script_hash__lt_module_gt_ + 7, + .opcodes = fun_data_apps_cardano_get_native_script_hash__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_get_native_script_hash[21] = { + MP_QSTR_apps_slash_cardano_slash_get_native_script_hash_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_seed, + MP_QSTR_, + MP_QSTR_with_keychain, + MP_QSTR_get_native_script_hash, + MP_QSTR_CardanoNativeScriptHashDisplayFormat, + MP_QSTR_trezor_dot_enums, + MP_QSTR_CardanoNativeScriptHash, + MP_QSTR_trezor_dot_messages, + MP_QSTR_layout, + MP_QSTR_native_script, + MP_QSTR_validate_native_script, + MP_QSTR_script, + MP_QSTR_display_format, + MP_QSTR_HIDE, + MP_QSTR_show_native_script, + MP_QSTR_show_script_hash, + MP_QSTR_script_hash, + MP_QSTR_msg, + MP_QSTR_keychain, +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_get_native_script_hash = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_get_native_script_hash, + .obj_table = NULL, + }, + .rc = &raw_code_apps_cardano_get_native_script_hash__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_get_public_key +// - original source file: build/firmware/src/apps/cardano/get_public_key.mpy +// - frozen file name: apps/cardano/get_public_key.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/get_public_key.py, scope apps_cardano_get_public_key__lt_module_gt_ +static const byte fun_data_apps_cardano_get_public_key__lt_module_gt_[50] = { + 0x08,0x10, // prelude + 0x01, // names: + 0x20,0x4c,0x4c,0x60,0x20,0x8a,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'hexlify' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'ubinascii' + 0x1c,0x02, // IMPORT_FROM 'hexlify' + 0x16,0x02, // STORE_NAME 'hexlify' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING 'seed' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME '' + 0x1c,0x04, // IMPORT_FROM 'seed' + 0x16,0x04, // STORE_NAME 'seed' + 0x59, // POP_TOP + 0x11,0x04, // LOAD_NAME 'seed' + 0x13,0x06, // LOAD_ATTR 'with_keychain' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x07, // STORE_NAME 'get_public_key' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x1c, // STORE_NAME '_get_public_key' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_get_public_key__lt_module_gt_ +// frozen bytecode for file apps/cardano/get_public_key.py, scope apps_cardano_get_public_key_get_public_key +static const byte fun_data_apps_cardano_get_public_key_get_public_key[183] = { + 0x9a,0x52,0x2a, // prelude + 0x07,0x2a,0x2b, // names: get_public_key, msg, keychain + 0x80,0x0d,0x30,0x4b,0x4b,0x50,0x44,0x65,0x20,0x74,0x22,0x52,0x40,0x51,0x25,0x4b,0x25,0x30, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'log' + 0x10,0x09, // LOAD_CONST_STRING 'wire' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0a, // IMPORT_NAME 'trezor' + 0x1c,0x08, // IMPORT_FROM 'log' + 0xc2, // STORE_FAST 2 + 0x1c,0x09, // IMPORT_FROM 'wire' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'show_pubkey' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x0b, // IMPORT_FROM 'show_pubkey' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'apps.common' + 0x1c,0x0d, // IMPORT_FROM 'paths' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0f, // LOAD_CONST_STRING 'SCHEMA_MINT' + 0x10,0x10, // LOAD_CONST_STRING 'SCHEMA_PUBKEY' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x11, // IMPORT_NAME 'helpers.paths' + 0x1c,0x0f, // IMPORT_FROM 'SCHEMA_MINT' + 0xc6, // STORE_FAST 6 + 0x1c,0x10, // IMPORT_FROM 'SCHEMA_PUBKEY' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'address_n' + 0xc8, // STORE_FAST 8 + 0xb5, // LOAD_FAST 5 + 0x14,0x13, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb8, // LOAD_FAST 8 + 0xb7, // LOAD_FAST 7 + 0x14,0x14, // LOAD_METHOD 'match' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0x45,0x06, // JUMP_IF_TRUE_OR_POP 6 + 0xb6, // LOAD_FAST 6 + 0x14,0x14, // LOAD_METHOD 'match' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x48,0x09, // SETUP_EXCEPT 9 + 0x12,0x1c, // LOAD_GLOBAL '_get_public_key' + 0xb1, // LOAD_FAST 1 + 0xb8, // LOAD_FAST 8 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc9, // STORE_FAST 9 + 0x4a,0x1a, // POP_EXCEPT_JUMP 26 + 0x57, // DUP_TOP + 0x12,0x2c, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xca, // STORE_FAST 10 + 0x49,0x09, // SETUP_FINALLY 9 + 0xb3, // LOAD_FAST 3 + 0x14,0x15, // LOAD_METHOD 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xca, // STORE_FAST 10 + 0x28,0x0a, // DELETE_FAST 10 + 0x5d, // END_FINALLY + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'show_display' + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING 'address_n_to_str' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x17, // IMPORT_FROM 'address_n_to_str' + 0xcb, // STORE_FAST 11 + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcc, // STORE_FAST 12 + 0xb4, // LOAD_FAST 4 + 0xb9, // LOAD_FAST 9 + 0x13,0x19, // LOAD_ATTR 'xpub' + 0x10,0x1a, // LOAD_CONST_STRING 'Public key' + 0x10,0x1b, // LOAD_CONST_STRING 'path' + 0xbc, // LOAD_FAST 12 + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_get_public_key_get_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_get_public_key_get_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 183, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 20, + .n_exc_stack = 2, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_cardano_get_public_key_get_public_key + 6, + .line_info_top = fun_data_apps_cardano_get_public_key_get_public_key + 24, + .opcodes = fun_data_apps_cardano_get_public_key_get_public_key + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_get_public_key__lt_module_gt_ +// frozen bytecode for file apps/cardano/get_public_key.py, scope apps_cardano_get_public_key__get_public_key +static const byte fun_data_apps_cardano_get_public_key__get_public_key[137] = { + 0xb2,0x10,0x22, // prelude + 0x1c,0x2b,0x2d, // names: _get_public_key, keychain, derivation_path + 0x80,0x2f,0x50,0x4b,0x47,0x2e,0x2e,0x44,0x23,0x27,0x27,0x27,0x27,0x69, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1d, // LOAD_CONST_STRING 'CardanoPublicKey' + 0x10,0x1e, // LOAD_CONST_STRING 'HDNodeType' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x1f, // IMPORT_NAME 'trezor.messages' + 0x1c,0x1d, // IMPORT_FROM 'CardanoPublicKey' + 0xc2, // STORE_FAST 2 + 0x1c,0x1e, // IMPORT_FROM 'HDNodeType' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x20, // LOAD_CONST_STRING 'derive_public_key' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x21, // IMPORT_NAME 'helpers.utils' + 0x1c,0x20, // IMPORT_FROM 'derive_public_key' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x22, // LOAD_METHOD 'derive' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0x12,0x02, // LOAD_GLOBAL 'hexlify' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x23, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0xc6, // STORE_FAST 6 + 0x12,0x02, // LOAD_GLOBAL 'hexlify' + 0xb5, // LOAD_FAST 5 + 0x14,0x24, // LOAD_METHOD 'chain_code' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x23, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0xc7, // STORE_FAST 7 + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0xf2, // BINARY_OP 27 __add__ + 0xc8, // STORE_FAST 8 + 0xb3, // LOAD_FAST 3 + 0x10,0x25, // LOAD_CONST_STRING 'depth' + 0xb5, // LOAD_FAST 5 + 0x14,0x25, // LOAD_METHOD 'depth' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x26, // LOAD_CONST_STRING 'child_num' + 0xb5, // LOAD_FAST 5 + 0x14,0x26, // LOAD_METHOD 'child_num' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x27, // LOAD_CONST_STRING 'fingerprint' + 0xb5, // LOAD_FAST 5 + 0x14,0x27, // LOAD_METHOD 'fingerprint' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x24, // LOAD_CONST_STRING 'chain_code' + 0xb5, // LOAD_FAST 5 + 0x14,0x24, // LOAD_METHOD 'chain_code' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x28, // LOAD_CONST_STRING 'public_key' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x8a,0x00, // CALL_FUNCTION 1280 + 0xc9, // STORE_FAST 9 + 0xb2, // LOAD_FAST 2 + 0x10,0x29, // LOAD_CONST_STRING 'node' + 0xb9, // LOAD_FAST 9 + 0x10,0x19, // LOAD_CONST_STRING 'xpub' + 0xb8, // LOAD_FAST 8 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_get_public_key__get_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_get_public_key__get_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 137, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 23, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_apps_cardano_get_public_key__get_public_key + 6, + .line_info_top = fun_data_apps_cardano_get_public_key__get_public_key + 20, + .opcodes = fun_data_apps_cardano_get_public_key__get_public_key + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_get_public_key__lt_module_gt_[] = { + &raw_code_apps_cardano_get_public_key_get_public_key, + &raw_code_apps_cardano_get_public_key__get_public_key, +}; + +static const mp_raw_code_t raw_code_apps_cardano_get_public_key__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_get_public_key__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = (void *)&children_apps_cardano_get_public_key__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_get_public_key__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_get_public_key__lt_module_gt_ + 10, + .opcodes = fun_data_apps_cardano_get_public_key__lt_module_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_get_public_key[46] = { + MP_QSTR_apps_slash_cardano_slash_get_public_key_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_hexlify, + MP_QSTR_ubinascii, + MP_QSTR_seed, + MP_QSTR_, + MP_QSTR_with_keychain, + MP_QSTR_get_public_key, + MP_QSTR_log, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_show_pubkey, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_SCHEMA_MINT, + MP_QSTR_SCHEMA_PUBKEY, + MP_QSTR_helpers_dot_paths, + MP_QSTR_address_n, + MP_QSTR_validate_path, + MP_QSTR_match, + MP_QSTR_ProcessError, + MP_QSTR_show_display, + MP_QSTR_address_n_to_str, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_xpub, + MP_QSTR_Public_space_key, + MP_QSTR_path, + MP_QSTR__get_public_key, + MP_QSTR_CardanoPublicKey, + MP_QSTR_HDNodeType, + MP_QSTR_trezor_dot_messages, + MP_QSTR_derive_public_key, + MP_QSTR_helpers_dot_utils, + MP_QSTR_derive, + MP_QSTR_decode, + MP_QSTR_chain_code, + MP_QSTR_depth, + MP_QSTR_child_num, + MP_QSTR_fingerprint, + MP_QSTR_public_key, + MP_QSTR_node, + MP_QSTR_msg, + MP_QSTR_keychain, + MP_QSTR_ValueError, + MP_QSTR_derivation_path, +}; + +// constants +static const mp_obj_str_t const_obj_apps_cardano_get_public_key_0 = {{&mp_type_str}, 6204, 26, (const byte*)"\x44\x65\x72\x69\x76\x69\x6e\x67\x20\x70\x75\x62\x6c\x69\x63\x20\x6b\x65\x79\x20\x66\x61\x69\x6c\x65\x64"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_get_public_key[1] = { + MP_ROM_PTR(&const_obj_apps_cardano_get_public_key_0), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_get_public_key = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_get_public_key, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_get_public_key, + }, + .rc = &raw_code_apps_cardano_get_public_key__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_layout +// - original source file: build/firmware/src/apps/cardano/layout.mpy +// - frozen file name: apps/cardano/layout.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout__lt_module_gt_ +static const byte fun_data_apps_cardano_layout__lt_module_gt_[675] = { + 0x20,0x80,0x04, // prelude + 0x01, // names: + 0x40,0x2c,0x7e,0x60,0x2c,0x2c,0x52,0x4c,0x2c,0x32,0x7e,0x60,0x20,0x80,0x0b,0x22,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x6a,0x22,0x27,0x27,0x27,0x27,0x27,0x6a,0x22,0x27,0x27,0x27,0x6a,0x47,0x20,0x65,0x20,0x84,0x07,0x88,0x47,0x84,0x1c,0x84,0x11,0x84,0x0c,0x84,0x19,0x84,0x14,0x84,0x0e,0x84,0x09,0x84,0x0b,0x84,0x16,0x84,0x09,0x84,0x09,0x84,0x0b,0x84,0x16,0x89,0x37,0x65,0x20,0x89,0x0e,0x85,0x09,0x85,0x09,0x85,0x09,0x85,0x09,0x85,0x09,0x85,0x15,0x85,0x24,0x85,0x18,0x85,0x1c,0x85,0x32,0x85,0x17,0x85,0x13,0x85,0x1c,0x85,0x13,0x85,0x13,0x85,0x12,0x85,0x22,0x85,0x09,0x85,0x16,0x85,0x09,0x85,0x0e,0x85,0x0e,0x85,0x0e,0x85,0x14, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'ui' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'ui' + 0x16,0x02, // STORE_NAME 'ui' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'ButtonRequestType' + 0x10,0x05, // LOAD_CONST_STRING 'CardanoAddressType' + 0x10,0x06, // LOAD_CONST_STRING 'CardanoCertificateType' + 0x10,0x07, // LOAD_CONST_STRING 'CardanoNativeScriptType' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x08, // IMPORT_NAME 'trezor.enums' + 0x1c,0x04, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x04, // STORE_NAME 'ButtonRequestType' + 0x1c,0x05, // IMPORT_FROM 'CardanoAddressType' + 0x16,0x05, // STORE_NAME 'CardanoAddressType' + 0x1c,0x06, // IMPORT_FROM 'CardanoCertificateType' + 0x16,0x06, // STORE_NAME 'CardanoCertificateType' + 0x1c,0x07, // IMPORT_FROM 'CardanoNativeScriptType' + 0x16,0x07, // STORE_NAME 'CardanoNativeScriptType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'format_amount' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.strings' + 0x1c,0x09, // IMPORT_FROM 'format_amount' + 0x16,0x09, // STORE_NAME 'format_amount' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'layouts' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.ui' + 0x1c,0x0b, // IMPORT_FROM 'layouts' + 0x16,0x0b, // STORE_NAME 'layouts' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'confirm_metadata' + 0x10,0x0e, // LOAD_CONST_STRING 'confirm_properties' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0f, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x0d, // IMPORT_FROM 'confirm_metadata' + 0x16,0x0d, // STORE_NAME 'confirm_metadata' + 0x1c,0x0e, // IMPORT_FROM 'confirm_properties' + 0x16,0x0e, // STORE_NAME 'confirm_properties' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'address_n_to_str' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x10, // IMPORT_FROM 'address_n_to_str' + 0x16,0x10, // STORE_NAME 'address_n_to_str' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x12, // LOAD_CONST_STRING 'addresses' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME '' + 0x1c,0x12, // IMPORT_FROM 'addresses' + 0x16,0x12, // STORE_NAME 'addresses' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x14, // LOAD_CONST_STRING 'bech32' + 0x10,0x15, // LOAD_CONST_STRING 'protocol_magics' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x16, // IMPORT_NAME 'helpers' + 0x1c,0x14, // IMPORT_FROM 'bech32' + 0x16,0x14, // STORE_NAME 'bech32' + 0x1c,0x15, // IMPORT_FROM 'protocol_magics' + 0x16,0x15, // STORE_NAME 'protocol_magics' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x17, // LOAD_CONST_STRING 'format_account_number' + 0x10,0x18, // LOAD_CONST_STRING 'format_asset_fingerprint' + 0x10,0x19, // LOAD_CONST_STRING 'format_optional_int' + 0x10,0x1a, // LOAD_CONST_STRING 'format_stake_pool_id' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x1b, // IMPORT_NAME 'helpers.utils' + 0x1c,0x17, // IMPORT_FROM 'format_account_number' + 0x16,0x17, // STORE_NAME 'format_account_number' + 0x1c,0x18, // IMPORT_FROM 'format_asset_fingerprint' + 0x16,0x18, // STORE_NAME 'format_asset_fingerprint' + 0x1c,0x19, // IMPORT_FROM 'format_optional_int' + 0x16,0x19, // STORE_NAME 'format_optional_int' + 0x1c,0x1a, // IMPORT_FROM 'format_stake_pool_id' + 0x16,0x1a, // STORE_NAME 'format_stake_pool_id' + 0x59, // POP_TOP + 0x2c,0x0b, // BUILD_MAP 11 + 0x10,0x1c, // LOAD_CONST_STRING 'Legacy' + 0x11,0x05, // LOAD_NAME 'CardanoAddressType' + 0x13,0x1d, // LOAD_ATTR 'BYRON' + 0x62, // STORE_MAP + 0x10,0x1e, // LOAD_CONST_STRING 'Base' + 0x11,0x05, // LOAD_NAME 'CardanoAddressType' + 0x13,0x1f, // LOAD_ATTR 'BASE' + 0x62, // STORE_MAP + 0x10,0x1e, // LOAD_CONST_STRING 'Base' + 0x11,0x05, // LOAD_NAME 'CardanoAddressType' + 0x13,0x20, // LOAD_ATTR 'BASE_SCRIPT_KEY' + 0x62, // STORE_MAP + 0x10,0x1e, // LOAD_CONST_STRING 'Base' + 0x11,0x05, // LOAD_NAME 'CardanoAddressType' + 0x13,0x21, // LOAD_ATTR 'BASE_KEY_SCRIPT' + 0x62, // STORE_MAP + 0x10,0x1e, // LOAD_CONST_STRING 'Base' + 0x11,0x05, // LOAD_NAME 'CardanoAddressType' + 0x13,0x22, // LOAD_ATTR 'BASE_SCRIPT_SCRIPT' + 0x62, // STORE_MAP + 0x10,0x23, // LOAD_CONST_STRING 'Pointer' + 0x11,0x05, // LOAD_NAME 'CardanoAddressType' + 0x13,0x24, // LOAD_ATTR 'POINTER' + 0x62, // STORE_MAP + 0x10,0x23, // LOAD_CONST_STRING 'Pointer' + 0x11,0x05, // LOAD_NAME 'CardanoAddressType' + 0x13,0x25, // LOAD_ATTR 'POINTER_SCRIPT' + 0x62, // STORE_MAP + 0x10,0x26, // LOAD_CONST_STRING 'Enterprise' + 0x11,0x05, // LOAD_NAME 'CardanoAddressType' + 0x13,0x27, // LOAD_ATTR 'ENTERPRISE' + 0x62, // STORE_MAP + 0x10,0x26, // LOAD_CONST_STRING 'Enterprise' + 0x11,0x05, // LOAD_NAME 'CardanoAddressType' + 0x13,0x28, // LOAD_ATTR 'ENTERPRISE_SCRIPT' + 0x62, // STORE_MAP + 0x10,0x29, // LOAD_CONST_STRING 'Reward' + 0x11,0x05, // LOAD_NAME 'CardanoAddressType' + 0x13,0x2a, // LOAD_ATTR 'REWARD' + 0x62, // STORE_MAP + 0x10,0x29, // LOAD_CONST_STRING 'Reward' + 0x11,0x05, // LOAD_NAME 'CardanoAddressType' + 0x13,0x2b, // LOAD_ATTR 'REWARD_SCRIPT' + 0x62, // STORE_MAP + 0x16,0x81,0x58, // STORE_NAME 'ADDRESS_TYPE_NAMES' + 0x2c,0x06, // BUILD_MAP 6 + 0x10,0x2c, // LOAD_CONST_STRING 'Key' + 0x11,0x07, // LOAD_NAME 'CardanoNativeScriptType' + 0x13,0x2d, // LOAD_ATTR 'PUB_KEY' + 0x62, // STORE_MAP + 0x10,0x2e, // LOAD_CONST_STRING 'All' + 0x11,0x07, // LOAD_NAME 'CardanoNativeScriptType' + 0x13,0x2f, // LOAD_ATTR 'ALL' + 0x62, // STORE_MAP + 0x10,0x30, // LOAD_CONST_STRING 'Any' + 0x11,0x07, // LOAD_NAME 'CardanoNativeScriptType' + 0x13,0x31, // LOAD_ATTR 'ANY' + 0x62, // STORE_MAP + 0x10,0x32, // LOAD_CONST_STRING 'N of K' + 0x11,0x07, // LOAD_NAME 'CardanoNativeScriptType' + 0x13,0x33, // LOAD_ATTR 'N_OF_K' + 0x62, // STORE_MAP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x11,0x07, // LOAD_NAME 'CardanoNativeScriptType' + 0x13,0x34, // LOAD_ATTR 'INVALID_BEFORE' + 0x62, // STORE_MAP + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x11,0x07, // LOAD_NAME 'CardanoNativeScriptType' + 0x13,0x35, // LOAD_ATTR 'INVALID_HEREAFTER' + 0x62, // STORE_MAP + 0x16,0x81,0x59, // STORE_NAME 'SCRIPT_TYPE_NAMES' + 0x2c,0x04, // BUILD_MAP 4 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x11,0x06, // LOAD_NAME 'CardanoCertificateType' + 0x13,0x36, // LOAD_ATTR 'STAKE_REGISTRATION' + 0x62, // STORE_MAP + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x11,0x06, // LOAD_NAME 'CardanoCertificateType' + 0x13,0x37, // LOAD_ATTR 'STAKE_DEREGISTRATION' + 0x62, // STORE_MAP + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x11,0x06, // LOAD_NAME 'CardanoCertificateType' + 0x13,0x38, // LOAD_ATTR 'STAKE_DELEGATION' + 0x62, // STORE_MAP + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x11,0x06, // LOAD_NAME 'CardanoCertificateType' + 0x13,0x39, // LOAD_ATTR 'STAKE_POOL_REGISTRATION' + 0x62, // STORE_MAP + 0x16,0x81,0x5a, // STORE_NAME 'CERTIFICATE_TYPE_NAMES' + 0x11,0x04, // LOAD_NAME 'ButtonRequestType' + 0x13,0x3a, // LOAD_ATTR 'Other' + 0x16,0x81,0x5b, // STORE_NAME 'BRT_Other' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x16,0x81,0x5c, // STORE_NAME 'CVOTE_REWARD_ELIGIBILITY_WARNING' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x3b, // STORE_NAME 'format_coin_amount' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x42, // STORE_NAME 'show_native_script' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x54, // STORE_NAME 'show_script_hash' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x5b, // STORE_NAME 'show_tx_init' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x61, // STORE_NAME 'confirm_input' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x65, // STORE_NAME 'confirm_sending' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x6b, // STORE_NAME 'confirm_sending_token' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x6f, // STORE_NAME 'confirm_datum_hash' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x71, // STORE_NAME 'confirm_inline_datum' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x72, // STORE_NAME 'confirm_reference_script' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x73, // STORE_NAME '_confirm_data_chunk' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x78, // STORE_NAME 'show_credentials' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x7b, // STORE_NAME 'show_change_output_credentials' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x7d, // STORE_NAME 'show_device_owned_output_credentials' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x16,0x7e, // STORE_NAME 'show_cvote_registration_payment_credentials' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x0f, // MAKE_FUNCTION_DEFARGS 15 + 0x16,0x81,0x00, // STORE_NAME '_show_credential' + 0x32,0x10, // MAKE_FUNCTION 16 + 0x16,0x81,0x0b, // STORE_NAME 'warn_path' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x11, // MAKE_FUNCTION_DEFARGS 17 + 0x16,0x81,0x0e, // STORE_NAME 'warn_tx_output_contains_tokens' + 0x32,0x12, // MAKE_FUNCTION 18 + 0x16,0x81,0x0f, // STORE_NAME 'warn_tx_contains_mint' + 0x32,0x13, // MAKE_FUNCTION 19 + 0x16,0x81,0x10, // STORE_NAME 'warn_tx_output_no_datum' + 0x32,0x14, // MAKE_FUNCTION 20 + 0x16,0x81,0x11, // STORE_NAME 'warn_no_script_data_hash' + 0x32,0x15, // MAKE_FUNCTION 21 + 0x16,0x81,0x12, // STORE_NAME 'warn_no_collateral_inputs' + 0x32,0x16, // MAKE_FUNCTION 22 + 0x16,0x81,0x13, // STORE_NAME 'warn_unknown_total_collateral' + 0x32,0x17, // MAKE_FUNCTION 23 + 0x16,0x81,0x15, // STORE_NAME 'confirm_witness_request' + 0x32,0x18, // MAKE_FUNCTION 24 + 0x16,0x81,0x1a, // STORE_NAME 'confirm_tx' + 0x32,0x19, // MAKE_FUNCTION 25 + 0x16,0x81,0x1e, // STORE_NAME 'confirm_certificate' + 0x32,0x1a, // MAKE_FUNCTION 26 + 0x16,0x81,0x23, // STORE_NAME 'confirm_stake_pool_parameters' + 0x32,0x1b, // MAKE_FUNCTION 27 + 0x16,0x81,0x2d, // STORE_NAME 'confirm_stake_pool_owner' + 0x32,0x1c, // MAKE_FUNCTION 28 + 0x16,0x81,0x34, // STORE_NAME 'confirm_stake_pool_metadata' + 0x32,0x1d, // MAKE_FUNCTION 29 + 0x16,0x81,0x36, // STORE_NAME 'confirm_stake_pool_registration_final' + 0x32,0x1e, // MAKE_FUNCTION 30 + 0x16,0x81,0x39, // STORE_NAME 'confirm_withdrawal' + 0x32,0x1f, // MAKE_FUNCTION 31 + 0x16,0x81,0x3d, // STORE_NAME '_format_stake_credential' + 0x32,0x20, // MAKE_FUNCTION 32 + 0x16,0x81,0x40, // STORE_NAME 'confirm_cvote_registration_delegation' + 0x32,0x21, // MAKE_FUNCTION 33 + 0x16,0x81,0x42, // STORE_NAME 'confirm_cvote_registration_payment_address' + 0x32,0x22, // MAKE_FUNCTION 34 + 0x16,0x81,0x43, // STORE_NAME 'confirm_cvote_registration' + 0x32,0x23, // MAKE_FUNCTION 35 + 0x16,0x81,0x47, // STORE_NAME 'show_auxiliary_data_hash' + 0x32,0x24, // MAKE_FUNCTION 36 + 0x16,0x81,0x48, // STORE_NAME 'confirm_token_minting' + 0x32,0x25, // MAKE_FUNCTION 37 + 0x16,0x81,0x4a, // STORE_NAME 'warn_tx_network_unverifiable' + 0x32,0x26, // MAKE_FUNCTION 38 + 0x16,0x81,0x4c, // STORE_NAME 'confirm_script_data_hash' + 0x32,0x27, // MAKE_FUNCTION 39 + 0x16,0x81,0x4e, // STORE_NAME 'confirm_collateral_input' + 0x32,0x28, // MAKE_FUNCTION 40 + 0x16,0x81,0x4f, // STORE_NAME 'confirm_reference_input' + 0x32,0x29, // MAKE_FUNCTION 41 + 0x16,0x81,0x50, // STORE_NAME 'confirm_required_signer' + 0x32,0x2a, // MAKE_FUNCTION 42 + 0x16,0x81,0x52, // STORE_NAME 'show_cardano_address' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_format_coin_amount +static const byte fun_data_apps_cardano_layout_format_coin_amount[50] = { + 0x42,0x10, // prelude + 0x3b,0x6e,0x81,0x5d, // names: format_coin_amount, amount, network_id + 0x80,0x49,0x4b,0x2f, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x3c, // LOAD_CONST_STRING 'network_ids' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x16, // IMPORT_NAME 'helpers' + 0x1c,0x3c, // IMPORT_FROM 'network_ids' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x3d, // LOAD_METHOD 'is_mainnet' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x10,0x3e, // LOAD_CONST_STRING 'ADA' + 0x42,0x42, // JUMP 2 + 0x10,0x3f, // LOAD_CONST_STRING 'tADA' + 0xc3, // STORE_FAST 3 + 0x10,0x40, // LOAD_CONST_STRING '{} {}' + 0x14,0x41, // LOAD_METHOD 'format' + 0x12,0x09, // LOAD_GLOBAL 'format_amount' + 0xb0, // LOAD_FAST 0 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_format_coin_amount = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_layout_format_coin_amount, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 59, + .line_info = fun_data_apps_cardano_layout_format_coin_amount + 6, + .line_info_top = fun_data_apps_cardano_layout_format_coin_amount + 10, + .opcodes = fun_data_apps_cardano_layout_format_coin_amount + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_show_native_script +static const byte fun_data_apps_cardano_layout_show_native_script[373] = { + 0xaa,0x51,0x6e, // prelude + 0x42,0x81,0x5e,0x81,0x5f, // names: show_native_script, script, indices + 0x80,0x53,0x23,0x24,0x24,0x24,0x44,0x23,0x25,0x23,0x23,0x52,0x23,0x27,0x23,0x48,0x45,0x20,0x20,0x73,0x20,0x44,0x27,0x20,0x23,0x57,0x31,0x27,0x20,0x21,0x20,0x77,0x20,0x27,0x20,0x31,0x27,0x20,0x51,0x21,0x23,0x23,0x48,0x20,0x53,0x22,0x22,0x6f,0x40,0x2d, // code info + 0x12,0x07, // LOAD_GLOBAL 'CardanoNativeScriptType' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x43, // LOAD_ATTR 'type' + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x44, // LOAD_ATTR 'key_path' + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x45, // LOAD_ATTR 'key_hash' + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x46, // LOAD_ATTR 'scripts' + 0xc6, // STORE_FAST 6 + 0x10,0x47, // LOAD_CONST_STRING 'Script' + 0xc7, // STORE_FAST 7 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x2b,0x00, // BUILD_LIST 0 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb7, // LOAD_FAST 7 + 0x10,0x48, // LOAD_CONST_STRING ' ' + 0x10,0x49, // LOAD_CONST_STRING '.' + 0x14,0x4a, // LOAD_METHOD 'join' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0xf2, // BINARY_OP 27 __add__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc7, // STORE_FAST 7 + 0x10,0x13, // LOAD_CONST_STRING '' + 0xc8, // STORE_FAST 8 + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x2d, // LOAD_ATTR 'PUB_KEY' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb4, // LOAD_FAST 4 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x4b, // LOAD_CONST_STRING 'path' + 0xc8, // STORE_FAST 8 + 0x42,0x48, // JUMP 8 + 0xb5, // LOAD_FAST 5 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x4c, // LOAD_CONST_STRING 'hash' + 0xc8, // STORE_FAST 8 + 0x42,0x40, // JUMP 0 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x14,0x41, // LOAD_METHOD 'format' + 0xb7, // LOAD_FAST 7 + 0x12,0x81,0x59, // LOAD_GLOBAL 'SCRIPT_TYPE_NAMES' + 0xb3, // LOAD_FAST 3 + 0x55, // LOAD_SUBSCR + 0xb8, // LOAD_FAST 8 + 0x36,0x03, // CALL_METHOD 3 + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x01, // BUILD_LIST 1 + 0xc9, // STORE_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x13,0x4d, // LOAD_ATTR 'append' + 0xca, // STORE_FAST 10 + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x2d, // LOAD_ATTR 'PUB_KEY' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6b, // POP_JUMP_IF_FALSE 43 + 0xb5, // LOAD_FAST 5 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0xba, // LOAD_FAST 10 + 0x51, // LOAD_CONST_NONE + 0x12,0x14, // LOAD_GLOBAL 'bech32' + 0x14,0x4e, // LOAD_METHOD 'encode' + 0x12,0x14, // LOAD_GLOBAL 'bech32' + 0x13,0x4f, // LOAD_ATTR 'HRP_SHARED_KEY_HASH' + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x51, // JUMP 17 + 0xb4, // LOAD_FAST 4 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xba, // LOAD_FAST 10 + 0x12,0x10, // LOAD_GLOBAL 'address_n_to_str' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x40, // JUMP 0 + 0x42,0xcf,0x80, // JUMP 79 + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x33, // LOAD_ATTR 'N_OF_K' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0xba, // LOAD_FAST 10 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x14,0x41, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x13,0x50, // LOAD_ATTR 'required_signatures_count' + 0x12,0x81,0x60, // LOAD_GLOBAL 'len' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x02, // CALL_METHOD 2 + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x70, // JUMP 48 + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x34, // LOAD_ATTR 'INVALID_BEFORE' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xba, // LOAD_FAST 10 + 0x12,0x81,0x61, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x51, // LOAD_ATTR 'invalid_before' + 0x34,0x01, // CALL_FUNCTION 1 + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x58, // JUMP 24 + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x35, // LOAD_ATTR 'INVALID_HEREAFTER' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xba, // LOAD_FAST 10 + 0x12,0x81,0x61, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x52, // LOAD_ATTR 'invalid_hereafter' + 0x34,0x01, // CALL_FUNCTION 1 + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x40, // JUMP 0 + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x2f, // LOAD_ATTR 'ALL' + 0xb2, // LOAD_FAST 2 + 0x13,0x31, // LOAD_ATTR 'ANY' + 0xb2, // LOAD_FAST 2 + 0x13,0x33, // LOAD_ATTR 'N_OF_K' + 0x2a,0x03, // BUILD_TUPLE 3 + 0xdd, // BINARY_OP 6 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xba, // LOAD_FAST 10 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x14,0x41, // LOAD_METHOD 'format' + 0x12,0x81,0x60, // LOAD_GLOBAL 'len' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0xb9, // LOAD_FAST 9 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x81,0x62, // LOAD_GLOBAL 'enumerate' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x16, // FOR_ITER 22 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xcb, // STORE_FAST 11 + 0xcc, // STORE_FAST 12 + 0x12,0x42, // LOAD_GLOBAL 'show_native_script' + 0xbc, // LOAD_FAST 12 + 0xb1, // LOAD_FAST 1 + 0xbb, // LOAD_FAST 11 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x2b,0x01, // BUILD_LIST 1 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x28, // JUMP -24 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_layout_show_native_script +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_show_native_script__lt_genexpr_gt_ +static const byte fun_data_apps_cardano_layout_show_native_script__lt_genexpr_gt_[28] = { + 0xb9,0x40,0x0c, // prelude + 0x81,0x57,0x82,0x16, // names: , * + 0x80,0x5d, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0b, // FOR_ITER 11 + 0xc1, // STORE_FAST 1 + 0x12,0x81,0x61, // LOAD_GLOBAL 'str' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x33, // JUMP -13 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_show_native_script__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_layout_show_native_script__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 215, + .line_info = fun_data_apps_cardano_layout_show_native_script__lt_genexpr_gt_ + 7, + .line_info_top = fun_data_apps_cardano_layout_show_native_script__lt_genexpr_gt_ + 9, + .opcodes = fun_data_apps_cardano_layout_show_native_script__lt_genexpr_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_layout_show_native_script[] = { + &raw_code_apps_cardano_layout_show_native_script__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_cardano_layout_show_native_script = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_layout_show_native_script, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 373, + #endif + .children = (void *)&children_apps_cardano_layout_show_native_script, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 22, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 66, + .line_info = fun_data_apps_cardano_layout_show_native_script + 8, + .line_info_top = fun_data_apps_cardano_layout_show_native_script + 58, + .opcodes = fun_data_apps_cardano_layout_show_native_script + 58, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_show_script_hash +static const byte fun_data_apps_cardano_layout_show_script_hash[110] = { + 0xd2,0x40,0x24, // prelude + 0x54,0x81,0x20,0x81,0x63, // names: show_script_hash, script_hash, display_format + 0x80,0x9a,0x4b,0x60,0x40,0x27,0x22,0x22,0x22,0x7f,0x27,0x24,0x22, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x55, // LOAD_CONST_STRING 'CardanoNativeScriptHashDisplayFormat' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.enums' + 0x1c,0x55, // IMPORT_FROM 'CardanoNativeScriptHashDisplayFormat' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x56, // LOAD_ATTR 'BECH32' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x65, // POP_JUMP_IF_FALSE 37 + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x12,0x14, // LOAD_GLOBAL 'bech32' + 0x14,0x4e, // LOAD_METHOD 'encode' + 0x12,0x14, // LOAD_GLOBAL 'bech32' + 0x13,0x57, // LOAD_ATTR 'HRP_SCRIPT_HASH' + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x60, // JUMP 32 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x58, // LOAD_ATTR 'POLICY_ID' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0x12,0x0b, // LOAD_GLOBAL 'layouts' + 0x14,0x59, // LOAD_METHOD 'confirm_blob' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0xb0, // LOAD_FAST 0 + 0x10,0x5a, // LOAD_CONST_STRING 'Policy ID:' + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x36,0x82,0x04, // CALL_METHOD 260 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x40, // JUMP 0 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_show_script_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_layout_show_script_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 110, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 84, + .line_info = fun_data_apps_cardano_layout_show_script_hash + 8, + .line_info_top = fun_data_apps_cardano_layout_show_script_hash + 21, + .opcodes = fun_data_apps_cardano_layout_show_script_hash + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_show_tx_init +static const byte fun_data_apps_cardano_layout_show_tx_init[52] = { + 0xc1,0x40,0x16, // prelude + 0x5b,0x76, // names: show_tx_init, title + 0x80,0xb3,0x24,0x22,0x20,0x20,0x67,0x6e,0x69, // code info + 0x12,0x0b, // LOAD_GLOBAL 'layouts' + 0x14,0x5c, // LOAD_METHOD 'should_show_more' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x12,0x02, // LOAD_GLOBAL 'ui' + 0x13,0x5d, // LOAD_ATTR 'DEMIBOLD' + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x12,0x02, // LOAD_GLOBAL 'ui' + 0x13,0x5e, // LOAD_ATTR 'NORMAL' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x5f, // LOAD_CONST_STRING 'Show All' + 0x10,0x60, // LOAD_CONST_STRING 'confirm' + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x36,0x82,0x03, // CALL_METHOD 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_show_tx_init = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_layout_show_tx_init, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 52, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 91, + .line_info = fun_data_apps_cardano_layout_show_tx_init + 5, + .line_info_top = fun_data_apps_cardano_layout_show_tx_init + 14, + .opcodes = fun_data_apps_cardano_layout_show_tx_init + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_input +static const byte fun_data_apps_cardano_layout_confirm_input[53] = { + 0xb9,0x40,0x12, // prelude + 0x61,0x81,0x64, // names: confirm_input, input + 0x80,0xc4,0x44,0x22,0x20,0x27, // code info + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x10,0x61, // LOAD_CONST_STRING 'confirm_input' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x10,0x62, // LOAD_CONST_STRING 'Input ID:' + 0xb0, // LOAD_FAST 0 + 0x13,0x63, // LOAD_ATTR 'prev_hash' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x12,0x81,0x61, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x64, // LOAD_ATTR 'prev_index' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_layout_confirm_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 53, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 97, + .line_info = fun_data_apps_cardano_layout_confirm_input + 6, + .line_info_top = fun_data_apps_cardano_layout_confirm_input + 12, + .opcodes = fun_data_apps_cardano_layout_confirm_input + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_sending +static const byte fun_data_apps_cardano_layout_confirm_sending[91] = { + 0xf1,0x44,0x2a, // prelude + 0x65,0x81,0x65,0x81,0x66,0x81,0x67,0x81,0x5d,0x6a, // names: confirm_sending, ada_amount, to, output_type, network_id, chunkify + 0x80,0xd6,0x26,0x25,0x26,0x25,0x26,0x45,0x44,0x45,0x49, // code info + 0xb2, // LOAD_FAST 2 + 0x10,0x66, // LOAD_CONST_STRING 'address' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x67, // LOAD_CONST_STRING 'Sending' + 0xc5, // STORE_FAST 5 + 0x42,0x5a, // JUMP 26 + 0xb2, // LOAD_FAST 2 + 0x10,0x68, // LOAD_CONST_STRING 'change' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0xc5, // STORE_FAST 5 + 0x42,0x4f, // JUMP 15 + 0xb2, // LOAD_FAST 2 + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0xc5, // STORE_FAST 5 + 0x42,0x44, // JUMP 4 + 0x12,0x81,0x68, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x12,0x0b, // LOAD_GLOBAL 'layouts' + 0x14,0x69, // LOAD_METHOD 'confirm_output' + 0xb1, // LOAD_FAST 1 + 0x12,0x3b, // LOAD_GLOBAL 'format_coin_amount' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb5, // LOAD_FAST 5 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x04, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x3a, // LOAD_ATTR 'Other' + 0x10,0x6a, // LOAD_CONST_STRING 'chunkify' + 0xb4, // LOAD_FAST 4 + 0x36,0x84,0x03, // CALL_METHOD 515 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_sending = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_apps_cardano_layout_confirm_sending, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 91, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 101, + .line_info = fun_data_apps_cardano_layout_confirm_sending + 13, + .line_info_top = fun_data_apps_cardano_layout_confirm_sending + 24, + .opcodes = fun_data_apps_cardano_layout_confirm_sending + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_sending_token +static const byte fun_data_apps_cardano_layout_confirm_sending_token[69] = { + 0xd2,0x40,0x1e, // prelude + 0x6b,0x6c,0x81,0x69, // names: confirm_sending_token, policy_id, token + 0x80,0xe9,0x40,0x22,0x22,0x22,0x20,0x20,0x22,0x47,0x68, // code info + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0x12,0x18, // LOAD_GLOBAL 'format_asset_fingerprint' + 0x10,0x6c, // LOAD_CONST_STRING 'policy_id' + 0xb0, // LOAD_FAST 0 + 0x10,0x6d, // LOAD_CONST_STRING 'asset_name_bytes' + 0xb1, // LOAD_FAST 1 + 0x13,0x6d, // LOAD_ATTR 'asset_name_bytes' + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0x12,0x09, // LOAD_GLOBAL 'format_amount' + 0xb1, // LOAD_FAST 1 + 0x13,0x6e, // LOAD_ATTR 'amount' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_sending_token = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_layout_confirm_sending_token, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 69, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 107, + .line_info = fun_data_apps_cardano_layout_confirm_sending_token + 7, + .line_info_top = fun_data_apps_cardano_layout_confirm_sending_token + 18, + .opcodes = fun_data_apps_cardano_layout_confirm_sending_token + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_datum_hash +static const byte fun_data_apps_cardano_layout_confirm_datum_hash[50] = { + 0xc1,0x40,0x14, // prelude + 0x6f,0x81,0x6a, // names: confirm_datum_hash, datum_hash + 0x80,0xfd,0x44,0x22,0x20,0x20,0x22, // code info + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x10,0x6f, // LOAD_CONST_STRING 'confirm_datum_hash' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x17, // LOAD_CONST_OBJ 23 + 0x12,0x14, // LOAD_GLOBAL 'bech32' + 0x14,0x4e, // LOAD_METHOD 'encode' + 0x12,0x14, // LOAD_GLOBAL 'bech32' + 0x13,0x70, // LOAD_ATTR 'HRP_OUTPUT_DATUM_HASH' + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_datum_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_layout_confirm_datum_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 111, + .line_info = fun_data_apps_cardano_layout_confirm_datum_hash + 6, + .line_info_top = fun_data_apps_cardano_layout_confirm_datum_hash + 13, + .opcodes = fun_data_apps_cardano_layout_confirm_datum_hash + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_inline_datum +static const byte fun_data_apps_cardano_layout_confirm_inline_datum[27] = { + 0xb2,0x40,0x10, // prelude + 0x71,0x81,0x6b,0x81,0x6c, // names: confirm_inline_datum, first_chunk, inline_datum_size + 0x90,0x0b,0x44, // code info + 0x12,0x73, // LOAD_GLOBAL '_confirm_data_chunk' + 0x10,0x71, // LOAD_CONST_STRING 'confirm_inline_datum' + 0x23,0x18, // LOAD_CONST_OBJ 24 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_inline_datum = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_layout_confirm_inline_datum, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 113, + .line_info = fun_data_apps_cardano_layout_confirm_inline_datum + 8, + .line_info_top = fun_data_apps_cardano_layout_confirm_inline_datum + 11, + .opcodes = fun_data_apps_cardano_layout_confirm_inline_datum + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_reference_script +static const byte fun_data_apps_cardano_layout_confirm_reference_script[27] = { + 0xb2,0x40,0x10, // prelude + 0x72,0x81,0x6b,0x81,0x6d, // names: confirm_reference_script, first_chunk, reference_script_size + 0x90,0x16,0x44, // code info + 0x12,0x73, // LOAD_GLOBAL '_confirm_data_chunk' + 0x10,0x72, // LOAD_CONST_STRING 'confirm_reference_script' + 0x23,0x19, // LOAD_CONST_OBJ 25 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_reference_script = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_layout_confirm_reference_script, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 114, + .line_info = fun_data_apps_cardano_layout_confirm_reference_script + 8, + .line_info_top = fun_data_apps_cardano_layout_confirm_reference_script + 11, + .opcodes = fun_data_apps_cardano_layout_confirm_reference_script + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout__confirm_data_chunk +static const byte fun_data_apps_cardano_layout__confirm_data_chunk[97] = { + 0xf8,0x44,0x28, // prelude + 0x73,0x81,0x6e,0x76,0x81,0x6b,0x81,0x6f, // names: _confirm_data_chunk, br_type, title, first_chunk, data_size + 0x90,0x21,0x23,0x27,0x2c,0x20,0x20,0x6f,0x20,0x25,0x28,0x45, // code info + 0x22,0x38, // LOAD_CONST_SMALL_INT 56 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xb4, // LOAD_FAST 4 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x10,0x74, // LOAD_CONST_STRING 'byte' + 0x42,0x42, // JUMP 2 + 0x10,0x75, // LOAD_CONST_STRING 'bytes' + 0xc6, // STORE_FAST 6 + 0x23,0x1a, // LOAD_CONST_OBJ 26 + 0x14,0x41, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0xb6, // LOAD_FAST 6 + 0x36,0x03, // CALL_METHOD 3 + 0xb5, // LOAD_FAST 5 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x01, // BUILD_LIST 1 + 0xc7, // STORE_FAST 7 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb7, // LOAD_FAST 7 + 0x14,0x4d, // LOAD_METHOD 'append' + 0x23,0x1b, // LOAD_CONST_OBJ 27 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0xb0, // LOAD_FAST 0 + 0x10,0x76, // LOAD_CONST_STRING 'title' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x10,0x77, // LOAD_CONST_STRING 'props' + 0xb7, // LOAD_FAST 7 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x86,0x01, // CALL_FUNCTION 769 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout__confirm_data_chunk = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_layout__confirm_data_chunk, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 97, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 115, + .line_info = fun_data_apps_cardano_layout__confirm_data_chunk + 11, + .line_info_top = fun_data_apps_cardano_layout__confirm_data_chunk + 23, + .opcodes = fun_data_apps_cardano_layout__confirm_data_chunk + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_show_credentials +static const byte fun_data_apps_cardano_layout_show_credentials[49] = { + 0xba,0x40,0x12, // prelude + 0x78,0x81,0x70,0x81,0x71, // names: show_credentials, payment_credential, stake_credential + 0x90,0x38,0x23,0x30, // code info + 0x10,0x79, // LOAD_CONST_STRING 'Address' + 0xc2, // STORE_FAST 2 + 0x12,0x81,0x00, // LOAD_GLOBAL '_show_credential' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x10,0x7a, // LOAD_CONST_STRING 'purpose' + 0x10,0x66, // LOAD_CONST_STRING 'address' + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x81,0x00, // LOAD_GLOBAL '_show_credential' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x10,0x7a, // LOAD_CONST_STRING 'purpose' + 0x10,0x66, // LOAD_CONST_STRING 'address' + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_show_credentials = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_layout_show_credentials, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 120, + .line_info = fun_data_apps_cardano_layout_show_credentials + 8, + .line_info_top = fun_data_apps_cardano_layout_show_credentials + 12, + .opcodes = fun_data_apps_cardano_layout_show_credentials + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_show_change_output_credentials +static const byte fun_data_apps_cardano_layout_show_change_output_credentials[49] = { + 0xba,0x40,0x12, // prelude + 0x7b,0x81,0x70,0x81,0x71, // names: show_change_output_credentials, payment_credential, stake_credential + 0x90,0x41,0x23,0x30, // code info + 0x23,0x1c, // LOAD_CONST_OBJ 28 + 0xc2, // STORE_FAST 2 + 0x12,0x81,0x00, // LOAD_GLOBAL '_show_credential' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x10,0x7a, // LOAD_CONST_STRING 'purpose' + 0x10,0x7c, // LOAD_CONST_STRING 'output' + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x81,0x00, // LOAD_GLOBAL '_show_credential' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x10,0x7a, // LOAD_CONST_STRING 'purpose' + 0x10,0x7c, // LOAD_CONST_STRING 'output' + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_show_change_output_credentials = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_layout_show_change_output_credentials, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 123, + .line_info = fun_data_apps_cardano_layout_show_change_output_credentials + 8, + .line_info_top = fun_data_apps_cardano_layout_show_change_output_credentials + 12, + .opcodes = fun_data_apps_cardano_layout_show_change_output_credentials + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_show_device_owned_output_credentials +static const byte fun_data_apps_cardano_layout_show_device_owned_output_credentials[55] = { + 0xc3,0x40,0x18, // prelude + 0x7d,0x81,0x70,0x81,0x71,0x81,0x72, // names: show_device_owned_output_credentials, payment_credential, stake_credential, show_both_credentials + 0x90,0x4b,0x23,0x30,0x23, // code info + 0x23,0x1d, // LOAD_CONST_OBJ 29 + 0xc3, // STORE_FAST 3 + 0x12,0x81,0x00, // LOAD_GLOBAL '_show_credential' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x10,0x7a, // LOAD_CONST_STRING 'purpose' + 0x10,0x7c, // LOAD_CONST_STRING 'output' + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x12,0x81,0x00, // LOAD_GLOBAL '_show_credential' + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x10,0x7a, // LOAD_CONST_STRING 'purpose' + 0x10,0x7c, // LOAD_CONST_STRING 'output' + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_show_device_owned_output_credentials = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_layout_show_device_owned_output_credentials, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 125, + .line_info = fun_data_apps_cardano_layout_show_device_owned_output_credentials + 10, + .line_info_top = fun_data_apps_cardano_layout_show_device_owned_output_credentials + 15, + .opcodes = fun_data_apps_cardano_layout_show_device_owned_output_credentials + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_show_cvote_registration_payment_credentials +static const byte fun_data_apps_cardano_layout_show_cvote_registration_payment_credentials[77] = { + 0xe0,0x44,0x24, // prelude + 0x7e,0x81,0x70,0x81,0x71,0x81,0x72,0x81,0x73, // names: show_cvote_registration_payment_credentials, payment_credential, stake_credential, show_both_credentials, show_payment_warning + 0x90,0x57,0x20,0x43,0x27,0x49,0x26,0x2a,0x67, // code info + 0x23,0x1e, // LOAD_CONST_OBJ 30 + 0xc4, // STORE_FAST 4 + 0x12,0x81,0x00, // LOAD_GLOBAL '_show_credential' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x10,0x7a, // LOAD_CONST_STRING 'purpose' + 0x23,0x1f, // LOAD_CONST_OBJ 31 + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0xb3, // LOAD_FAST 3 + 0x44,0x5d, // POP_JUMP_IF_FALSE 29 + 0xb3, // LOAD_FAST 3 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x81,0x5c, // LOAD_GLOBAL 'CVOTE_REWARD_ELIGIBILITY_WARNING' + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0xc5, // STORE_FAST 5 + 0x12,0x81,0x00, // LOAD_GLOBAL '_show_credential' + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x10,0x7a, // LOAD_CONST_STRING 'purpose' + 0x23,0x1f, // LOAD_CONST_OBJ 31 + 0x10,0x7f, // LOAD_CONST_STRING 'extra_text' + 0xb5, // LOAD_FAST 5 + 0x34,0x84,0x02, // CALL_FUNCTION 514 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_show_cvote_registration_payment_credentials = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_layout_show_cvote_registration_payment_credentials, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 77, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 126, + .line_info = fun_data_apps_cardano_layout_show_cvote_registration_payment_credentials + 12, + .line_info_top = fun_data_apps_cardano_layout_show_cvote_registration_payment_credentials + 21, + .opcodes = fun_data_apps_cardano_layout_show_cvote_registration_payment_credentials + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout__show_credential +static const byte fun_data_apps_cardano_layout__show_credential[239] = { + 0xe8,0x45,0x50, // prelude + 0x81,0x00,0x81,0x74,0x81,0x75,0x7a,0x7f, // names: _show_credential, credential, intro_text, purpose, extra_text + 0x90,0x6d,0x22,0x32,0x25,0x25,0x43,0x23,0x64,0x40,0x28,0x27,0x21,0x20,0x72,0x20,0x4c,0x26,0x26,0x26,0x26,0x4c,0x26,0x26,0x21,0x20,0x74,0x40,0x23,0x48,0x2a,0x22, // code info + 0x2c,0x03, // BUILD_MAP 3 + 0x10,0x81,0x01, // LOAD_CONST_STRING '{} address' + 0x14,0x41, // LOAD_METHOD 'format' + 0x12,0x81,0x58, // LOAD_GLOBAL 'ADDRESS_TYPE_NAMES' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x02, // LOAD_ATTR 'address_type' + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x66, // LOAD_CONST_STRING 'address' + 0x62, // STORE_MAP + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x10,0x7c, // LOAD_CONST_STRING 'output' + 0x62, // STORE_MAP + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x1f, // LOAD_CONST_OBJ 31 + 0x62, // STORE_MAP + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0xc4, // STORE_FAST 4 + 0x2b,0x00, // BUILD_LIST 0 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x13,0x4d, // LOAD_ATTR 'append' + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x03, // LOAD_METHOD 'is_set' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x66, // POP_JUMP_IF_FALSE 38 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x04, // LOAD_METHOD 'get_title' + 0x36,0x00, // CALL_METHOD 0 + 0xc7, // STORE_FAST 7 + 0xb6, // LOAD_FAST 6 + 0x23,0x20, // LOAD_CONST_OBJ 32 + 0x14,0x41, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x05, // LOAD_ATTR 'type_name' + 0xb7, // LOAD_FAST 7 + 0x36,0x03, // CALL_METHOD 3 + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x81,0x06, // LOAD_METHOD 'extend' + 0xb0, // LOAD_FAST 0 + 0x14,0x41, // LOAD_METHOD 'format' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x07, // LOAD_ATTR 'is_unusual_path' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb6, // LOAD_FAST 6 + 0x23,0x21, // LOAD_CONST_OBJ 33 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x08, // LOAD_ATTR 'is_mismatch' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb6, // LOAD_FAST 6 + 0x23,0x22, // LOAD_CONST_OBJ 34 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x09, // LOAD_ATTR 'is_reward' + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb2, // LOAD_FAST 2 + 0x23,0x1f, // LOAD_CONST_OBJ 31 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb6, // LOAD_FAST 6 + 0x23,0x23, // LOAD_CONST_OBJ 35 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0a, // LOAD_ATTR 'is_no_staking' + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb6, // LOAD_FAST 6 + 0x23,0x24, // LOAD_CONST_OBJ 36 + 0x14,0x41, // LOAD_METHOD 'format' + 0x12,0x81,0x58, // LOAD_GLOBAL 'ADDRESS_TYPE_NAMES' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x02, // LOAD_ATTR 'address_type' + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb6, // LOAD_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x81,0x60, // LOAD_GLOBAL 'len' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x25, // LOAD_CONST_OBJ 37 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout__show_credential = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_layout__show_credential, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 239, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 128, + .line_info = fun_data_apps_cardano_layout__show_credential + 11, + .line_info_top = fun_data_apps_cardano_layout__show_credential + 43, + .opcodes = fun_data_apps_cardano_layout__show_credential + 43, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_warn_path +static const byte fun_data_apps_cardano_layout_warn_path[32] = { + 0xb2,0x40,0x0c, // prelude + 0x81,0x0b,0x4b,0x76, // names: warn_path, path, title + 0x90,0x9f, // code info + 0x12,0x0b, // LOAD_GLOBAL 'layouts' + 0x14,0x81,0x0c, // LOAD_METHOD 'confirm_path_warning' + 0x12,0x10, // LOAD_GLOBAL 'address_n_to_str' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x81,0x0d, // LOAD_CONST_STRING 'path_type' + 0xb1, // LOAD_FAST 1 + 0x36,0x82,0x01, // CALL_METHOD 257 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_warn_path = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_layout_warn_path, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 139, + .line_info = fun_data_apps_cardano_layout_warn_path + 7, + .line_info_top = fun_data_apps_cardano_layout_warn_path + 9, + .opcodes = fun_data_apps_cardano_layout_warn_path + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_warn_tx_output_contains_tokens +static const byte fun_data_apps_cardano_layout_warn_tx_output_contains_tokens[45] = { + 0xb9,0x41,0x16, // prelude + 0x81,0x0e,0x81,0x76, // names: warn_tx_output_contains_tokens, is_collateral_return + 0x90,0xa3,0x20,0x47,0x43,0x22,0x22, // code info + 0xb0, // LOAD_FAST 0 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x26, // LOAD_CONST_OBJ 38 + 0x42,0x42, // JUMP 2 + 0x23,0x27, // LOAD_CONST_OBJ 39 + 0xc1, // STORE_FAST 1 + 0x12,0x0d, // LOAD_GLOBAL 'confirm_metadata' + 0x23,0x28, // LOAD_CONST_OBJ 40 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0xb1, // LOAD_FAST 1 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_warn_tx_output_contains_tokens = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_layout_warn_tx_output_contains_tokens, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 142, + .line_info = fun_data_apps_cardano_layout_warn_tx_output_contains_tokens + 7, + .line_info_top = fun_data_apps_cardano_layout_warn_tx_output_contains_tokens + 14, + .opcodes = fun_data_apps_cardano_layout_warn_tx_output_contains_tokens + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_warn_tx_contains_mint +static const byte fun_data_apps_cardano_layout_warn_tx_contains_mint[32] = { + 0xa8,0x40,0x0e, // prelude + 0x81,0x0f, // names: warn_tx_contains_mint + 0x90,0xb1,0x22,0x22,0x22, // code info + 0x12,0x0d, // LOAD_GLOBAL 'confirm_metadata' + 0x23,0x28, // LOAD_CONST_OBJ 40 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x29, // LOAD_CONST_OBJ 41 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_warn_tx_contains_mint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_layout_warn_tx_contains_mint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 143, + .line_info = fun_data_apps_cardano_layout_warn_tx_contains_mint + 5, + .line_info_top = fun_data_apps_cardano_layout_warn_tx_contains_mint + 10, + .opcodes = fun_data_apps_cardano_layout_warn_tx_contains_mint + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_warn_tx_output_no_datum +static const byte fun_data_apps_cardano_layout_warn_tx_output_no_datum[32] = { + 0xa8,0x40,0x0e, // prelude + 0x81,0x10, // names: warn_tx_output_no_datum + 0x90,0xba,0x22,0x22,0x22, // code info + 0x12,0x0d, // LOAD_GLOBAL 'confirm_metadata' + 0x23,0x2a, // LOAD_CONST_OBJ 42 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x2b, // LOAD_CONST_OBJ 43 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_warn_tx_output_no_datum = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_layout_warn_tx_output_no_datum, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 144, + .line_info = fun_data_apps_cardano_layout_warn_tx_output_no_datum + 5, + .line_info_top = fun_data_apps_cardano_layout_warn_tx_output_no_datum + 10, + .opcodes = fun_data_apps_cardano_layout_warn_tx_output_no_datum + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_warn_no_script_data_hash +static const byte fun_data_apps_cardano_layout_warn_no_script_data_hash[32] = { + 0xa8,0x40,0x0e, // prelude + 0x81,0x11, // names: warn_no_script_data_hash + 0x90,0xc3,0x22,0x22,0x22, // code info + 0x12,0x0d, // LOAD_GLOBAL 'confirm_metadata' + 0x23,0x2c, // LOAD_CONST_OBJ 44 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x2d, // LOAD_CONST_OBJ 45 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_warn_no_script_data_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_layout_warn_no_script_data_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 145, + .line_info = fun_data_apps_cardano_layout_warn_no_script_data_hash + 5, + .line_info_top = fun_data_apps_cardano_layout_warn_no_script_data_hash + 10, + .opcodes = fun_data_apps_cardano_layout_warn_no_script_data_hash + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_warn_no_collateral_inputs +static const byte fun_data_apps_cardano_layout_warn_no_collateral_inputs[32] = { + 0xa8,0x40,0x0e, // prelude + 0x81,0x12, // names: warn_no_collateral_inputs + 0x90,0xcc,0x22,0x22,0x22, // code info + 0x12,0x0d, // LOAD_GLOBAL 'confirm_metadata' + 0x23,0x2e, // LOAD_CONST_OBJ 46 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x2f, // LOAD_CONST_OBJ 47 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_warn_no_collateral_inputs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_layout_warn_no_collateral_inputs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 146, + .line_info = fun_data_apps_cardano_layout_warn_no_collateral_inputs + 5, + .line_info_top = fun_data_apps_cardano_layout_warn_no_collateral_inputs + 10, + .opcodes = fun_data_apps_cardano_layout_warn_no_collateral_inputs + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_warn_unknown_total_collateral +static const byte fun_data_apps_cardano_layout_warn_unknown_total_collateral[35] = { + 0xb0,0x40,0x0e, // prelude + 0x81,0x13, // names: warn_unknown_total_collateral + 0x90,0xd5,0x25,0x22,0x22, // code info + 0x12,0x0b, // LOAD_GLOBAL 'layouts' + 0x14,0x81,0x14, // LOAD_METHOD 'show_warning' + 0x23,0x30, // LOAD_CONST_OBJ 48 + 0x23,0x31, // LOAD_CONST_OBJ 49 + 0x23,0x32, // LOAD_CONST_OBJ 50 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x36,0x82,0x03, // CALL_METHOD 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_warn_unknown_total_collateral = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_layout_warn_unknown_total_collateral, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 147, + .line_info = fun_data_apps_cardano_layout_warn_unknown_total_collateral + 5, + .line_info_top = fun_data_apps_cardano_layout_warn_unknown_total_collateral + 10, + .opcodes = fun_data_apps_cardano_layout_warn_unknown_total_collateral + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_witness_request +static const byte fun_data_apps_cardano_layout_confirm_witness_request[95] = { + 0xd1,0x40,0x20, // prelude + 0x81,0x15,0x81,0x77, // names: confirm_witness_request, witness_path + 0x90,0xe0,0x4d,0x29,0x25,0x29,0x45,0x43,0x25,0x22,0x22,0x25, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x81,0x16, // LOAD_CONST_STRING 'seed' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME '' + 0x1c,0x81,0x16, // IMPORT_FROM 'seed' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x17, // LOAD_METHOD 'is_multisig_path' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x33, // LOAD_CONST_OBJ 51 + 0xc2, // STORE_FAST 2 + 0x42,0x51, // JUMP 17 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x18, // LOAD_METHOD 'is_minting_path' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x34, // LOAD_CONST_OBJ 52 + 0xc2, // STORE_FAST 2 + 0x42,0x43, // JUMP 3 + 0x10,0x4b, // LOAD_CONST_STRING 'path' + 0xc2, // STORE_FAST 2 + 0x12,0x0b, // LOAD_GLOBAL 'layouts' + 0x14,0x81,0x19, // LOAD_METHOD 'confirm_text' + 0x23,0x35, // LOAD_CONST_OBJ 53 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x12,0x10, // LOAD_GLOBAL 'address_n_to_str' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x36, // LOAD_CONST_OBJ 54 + 0x14,0x41, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x36,0x05, // CALL_METHOD 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_witness_request = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_layout_confirm_witness_request, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 95, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 149, + .line_info = fun_data_apps_cardano_layout_confirm_witness_request + 7, + .line_info_top = fun_data_apps_cardano_layout_confirm_witness_request + 19, + .opcodes = fun_data_apps_cardano_layout_confirm_witness_request + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_tx +static const byte fun_data_apps_cardano_layout_confirm_tx[172] = { + 0x88,0xd0,0x04,0x42, // prelude + 0x81,0x1a,0x81,0x78,0x81,0x5d,0x81,0x79,0x81,0x7a,0x81,0x7b,0x81,0x7c,0x81,0x7d,0x81,0x7e, // names: confirm_tx, fee, network_id, protocol_magic, ttl, validity_interval_start, total_collateral, is_network_id_verifiable, tx_hash + 0x90,0xfc,0x20,0x4d,0x44,0x26,0x4e,0x23,0x55,0x32,0x53,0x23,0x49,0x22,0x22, // code info + 0x23,0x37, // LOAD_CONST_OBJ 55 + 0x12,0x3b, // LOAD_GLOBAL 'format_coin_amount' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x01, // BUILD_LIST 1 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x13,0x4d, // LOAD_ATTR 'append' + 0xc9, // STORE_FAST 9 + 0xb5, // LOAD_FAST 5 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb9, // LOAD_FAST 9 + 0x23,0x38, // LOAD_CONST_OBJ 56 + 0x12,0x3b, // LOAD_GLOBAL 'format_coin_amount' + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb9, // LOAD_FAST 9 + 0x23,0x39, // LOAD_CONST_OBJ 57 + 0x14,0x41, // LOAD_METHOD 'format' + 0x12,0x15, // LOAD_GLOBAL 'protocol_magics' + 0x14,0x81,0x1b, // LOAD_METHOD 'to_ui_string' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x23,0x3a, // LOAD_CONST_OBJ 58 + 0x14,0x41, // LOAD_METHOD 'format' + 0x12,0x19, // LOAD_GLOBAL 'format_optional_int' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x10,0x81,0x1c, // LOAD_CONST_STRING 'TTL: {}' + 0x14,0x41, // LOAD_METHOD 'format' + 0x12,0x19, // LOAD_GLOBAL 'format_optional_int' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb9, // LOAD_FAST 9 + 0x23,0x3b, // LOAD_CONST_OBJ 59 + 0xb7, // LOAD_FAST 7 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x35, // LOAD_CONST_OBJ 53 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0xb8, // LOAD_FAST 8 + 0x10,0x81,0x1d, // LOAD_CONST_STRING 'hold' + 0x52, // LOAD_CONST_TRUE + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x84,0x03, // CALL_FUNCTION 515 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 8, + .fun_data = fun_data_apps_cardano_layout_confirm_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 172, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 8, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 154, + .line_info = fun_data_apps_cardano_layout_confirm_tx + 22, + .line_info_top = fun_data_apps_cardano_layout_confirm_tx + 37, + .opcodes = fun_data_apps_cardano_layout_confirm_tx + 37, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_certificate +static const byte fun_data_apps_cardano_layout_confirm_certificate[100] = { + 0xb9,0x40,0x20, // prelude + 0x81,0x1e,0x81,0x7f, // names: confirm_certificate, certificate + 0xa0,0x19,0x40,0x20,0x2c,0x23,0x6f,0x20,0x2a,0x20,0x53,0x45, // code info + 0x10,0x81,0x1f, // LOAD_CONST_STRING 'Confirm:' + 0x12,0x81,0x5a, // LOAD_GLOBAL 'CERTIFICATE_TYPE_NAMES' + 0xb0, // LOAD_FAST 0 + 0x13,0x43, // LOAD_ATTR 'type' + 0x55, // LOAD_SUBSCR + 0x2a,0x02, // BUILD_TUPLE 2 + 0x12,0x81,0x3d, // LOAD_GLOBAL '_format_stake_credential' + 0xb0, // LOAD_FAST 0 + 0x13,0x4b, // LOAD_ATTR 'path' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x20, // LOAD_ATTR 'script_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x45, // LOAD_ATTR 'key_hash' + 0x34,0x03, // CALL_FUNCTION 3 + 0x2b,0x02, // BUILD_LIST 2 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x43, // LOAD_ATTR 'type' + 0x12,0x06, // LOAD_GLOBAL 'CardanoCertificateType' + 0x13,0x38, // LOAD_ATTR 'STAKE_DELEGATION' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xb1, // LOAD_FAST 1 + 0x14,0x4d, // LOAD_METHOD 'append' + 0x10,0x81,0x21, // LOAD_CONST_STRING 'to pool:' + 0x12,0x1a, // LOAD_GLOBAL 'format_stake_pool_id' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x22, // LOAD_ATTR 'pool' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x10,0x81,0x1e, // LOAD_CONST_STRING 'confirm_certificate' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0xb1, // LOAD_FAST 1 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_certificate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_layout_confirm_certificate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 100, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 158, + .line_info = fun_data_apps_cardano_layout_confirm_certificate + 7, + .line_info_top = fun_data_apps_cardano_layout_confirm_certificate + 19, + .opcodes = fun_data_apps_cardano_layout_confirm_certificate + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_stake_pool_parameters +static const byte fun_data_apps_cardano_layout_confirm_stake_pool_parameters[150] = { + 0xf2,0x40,0x2c, // prelude + 0x81,0x23,0x82,0x00,0x81,0x5d, // names: confirm_stake_pool_parameters, pool_parameters, network_id + 0xa0,0x32,0x20,0x4d,0x3b,0x22,0x22,0x22,0x20,0x20,0x22,0x4a,0x28,0x20,0x24,0x30, // code info + 0x23,0x3c, // LOAD_CONST_OBJ 60 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x24, // LOAD_ATTR 'margin_numerator' + 0xf4, // BINARY_OP 29 __mul__ + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x25, // LOAD_ATTR 'margin_denominator' + 0xf7, // BINARY_OP 32 __truediv__ + 0xc2, // STORE_FAST 2 + 0x12,0x81,0x61, // LOAD_GLOBAL 'str' + 0x12,0x82,0x01, // LOAD_GLOBAL 'float' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x81,0x26, // LOAD_METHOD 'rstrip' + 0x10,0x81,0x27, // LOAD_CONST_STRING '0' + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x81,0x26, // LOAD_METHOD 'rstrip' + 0x10,0x49, // LOAD_CONST_STRING '.' + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x3d, // LOAD_CONST_OBJ 61 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x3e, // LOAD_CONST_OBJ 62 + 0x12,0x1a, // LOAD_GLOBAL 'format_stake_pool_id' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x28, // LOAD_ATTR 'pool_id' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x3f, // LOAD_CONST_OBJ 63 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x29, // LOAD_ATTR 'reward_account' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x40, // LOAD_CONST_OBJ 64 + 0x14,0x41, // LOAD_METHOD 'format' + 0x12,0x3b, // LOAD_GLOBAL 'format_coin_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x2a, // LOAD_ATTR 'pledge' + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x81,0x2b, // LOAD_CONST_STRING 'Cost: {}\n' + 0x14,0x41, // LOAD_METHOD 'format' + 0x12,0x3b, // LOAD_GLOBAL 'format_coin_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x2c, // LOAD_ATTR 'cost' + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x36,0x01, // CALL_METHOD 1 + 0xf2, // BINARY_OP 27 __add__ + 0x23,0x41, // LOAD_CONST_OBJ 65 + 0x14,0x41, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0xf2, // BINARY_OP 27 __add__ + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_stake_pool_parameters = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_layout_confirm_stake_pool_parameters, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 150, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 163, + .line_info = fun_data_apps_cardano_layout_confirm_stake_pool_parameters + 9, + .line_info_top = fun_data_apps_cardano_layout_confirm_stake_pool_parameters + 25, + .opcodes = fun_data_apps_cardano_layout_confirm_stake_pool_parameters + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_stake_pool_owner +static const byte fun_data_apps_cardano_layout_confirm_stake_pool_owner[183] = { + 0x88,0x54,0x48, // prelude + 0x81,0x2d,0x82,0x02,0x82,0x03,0x81,0x79,0x81,0x5d, // names: confirm_stake_pool_owner, keychain, owner, protocol_magic, network_id + 0xa0,0x50,0x4d,0x23,0x26,0x32,0x23,0x20,0x46,0x27,0x27,0x73,0x60,0x60,0x20,0x23,0x20,0x22,0x46,0x27,0x27,0x70,0x60,0x40,0x22,0x22, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x2e, // LOAD_CONST_STRING 'messages' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x81,0x2e, // IMPORT_FROM 'messages' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x2b,0x00, // BUILD_LIST 0 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x2f, // LOAD_ATTR 'staking_key_path' + 0x44,0x7c, // POP_JUMP_IF_FALSE 60 + 0xb5, // LOAD_FAST 5 + 0x14,0x4d, // LOAD_METHOD 'append' + 0x23,0x42, // LOAD_CONST_OBJ 66 + 0x12,0x10, // LOAD_GLOBAL 'address_n_to_str' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x2f, // LOAD_ATTR 'staking_key_path' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x4d, // LOAD_METHOD 'append' + 0x12,0x12, // LOAD_GLOBAL 'addresses' + 0x14,0x81,0x30, // LOAD_METHOD 'derive_human_readable' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x14,0x81,0x31, // LOAD_METHOD 'CardanoAddressParametersType' + 0x10,0x81,0x02, // LOAD_CONST_STRING 'address_type' + 0x12,0x05, // LOAD_GLOBAL 'CardanoAddressType' + 0x13,0x2a, // LOAD_ATTR 'REWARD' + 0x10,0x81,0x32, // LOAD_CONST_STRING 'address_n' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x2f, // LOAD_ATTR 'staking_key_path' + 0x36,0x84,0x00, // CALL_METHOD 512 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x04, // CALL_METHOD 4 + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x69, // JUMP 41 + 0xb5, // LOAD_FAST 5 + 0x14,0x4d, // LOAD_METHOD 'append' + 0x23,0x42, // LOAD_CONST_OBJ 66 + 0x12,0x12, // LOAD_GLOBAL 'addresses' + 0x14,0x81,0x30, // LOAD_METHOD 'derive_human_readable' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x14,0x81,0x31, // LOAD_METHOD 'CardanoAddressParametersType' + 0x10,0x81,0x02, // LOAD_CONST_STRING 'address_type' + 0x12,0x05, // LOAD_GLOBAL 'CardanoAddressType' + 0x13,0x2a, // LOAD_ATTR 'REWARD' + 0x10,0x81,0x33, // LOAD_CONST_STRING 'staking_key_hash' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x33, // LOAD_ATTR 'staking_key_hash' + 0x36,0x84,0x00, // CALL_METHOD 512 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x04, // CALL_METHOD 4 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x43, // LOAD_CONST_OBJ 67 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0xb5, // LOAD_FAST 5 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_stake_pool_owner = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_layout_confirm_stake_pool_owner, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 183, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 173, + .line_info = fun_data_apps_cardano_layout_confirm_stake_pool_owner + 13, + .line_info_top = fun_data_apps_cardano_layout_confirm_stake_pool_owner + 39, + .opcodes = fun_data_apps_cardano_layout_confirm_stake_pool_owner + 39, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_stake_pool_metadata +static const byte fun_data_apps_cardano_layout_confirm_stake_pool_metadata[84] = { + 0xb1,0x40,0x22, // prelude + 0x81,0x34,0x82,0x04, // names: confirm_stake_pool_metadata, metadata + 0xa0,0x7f,0x25,0x22,0x22,0x22,0x6e,0x42,0x22,0x22,0x22,0x20,0x28, // code info + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x44, // LOAD_CONST_OBJ 68 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x45, // LOAD_CONST_OBJ 69 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x44, // LOAD_CONST_OBJ 68 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x46, // LOAD_CONST_OBJ 70 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x35, // LOAD_ATTR 'url' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x47, // LOAD_CONST_OBJ 71 + 0xb0, // LOAD_FAST 0 + 0x13,0x4c, // LOAD_ATTR 'hash' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_stake_pool_metadata = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_layout_confirm_stake_pool_metadata, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 84, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 180, + .line_info = fun_data_apps_cardano_layout_confirm_stake_pool_metadata + 7, + .line_info_top = fun_data_apps_cardano_layout_confirm_stake_pool_metadata + 20, + .opcodes = fun_data_apps_cardano_layout_confirm_stake_pool_metadata + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_stake_pool_registration_final +static const byte fun_data_apps_cardano_layout_confirm_stake_pool_registration_final[80] = { + 0xdb,0x40,0x22, // prelude + 0x81,0x36,0x81,0x79,0x81,0x7a,0x81,0x7b, // names: confirm_stake_pool_registration_final, protocol_magic, ttl, validity_interval_start + 0xa0,0x98,0x22,0x22,0x22,0x20,0x22,0x2d,0x29, // code info + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x48, // LOAD_CONST_OBJ 72 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x49, // LOAD_CONST_OBJ 73 + 0x10,0x81,0x37, // LOAD_CONST_STRING 'Network:' + 0x12,0x15, // LOAD_GLOBAL 'protocol_magics' + 0x14,0x81,0x1b, // LOAD_METHOD 'to_ui_string' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x4a, // LOAD_CONST_OBJ 74 + 0x12,0x19, // LOAD_GLOBAL 'format_optional_int' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x81,0x38, // LOAD_CONST_STRING 'TTL:' + 0x12,0x19, // LOAD_GLOBAL 'format_optional_int' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x04, // BUILD_TUPLE 4 + 0x10,0x81,0x1d, // LOAD_CONST_STRING 'hold' + 0x52, // LOAD_CONST_TRUE + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x84,0x03, // CALL_FUNCTION 515 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_stake_pool_registration_final = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_layout_confirm_stake_pool_registration_final, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 80, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 182, + .line_info = fun_data_apps_cardano_layout_confirm_stake_pool_registration_final + 11, + .line_info_top = fun_data_apps_cardano_layout_confirm_stake_pool_registration_final + 20, + .opcodes = fun_data_apps_cardano_layout_confirm_stake_pool_registration_final + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_withdrawal +static const byte fun_data_apps_cardano_layout_confirm_withdrawal[127] = { + 0xdb,0x40,0x2a, // prelude + 0x81,0x39,0x82,0x05,0x82,0x06,0x81,0x5d, // names: confirm_withdrawal, withdrawal, address_bytes, network_id + 0xa0,0xab,0x2e,0x29,0x20,0x6d,0x25,0x23,0x23,0x6f,0x20,0x53,0x45, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x20, // LOAD_ATTR 'script_hash' + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x4b, // LOAD_CONST_OBJ 75 + 0x42,0x43, // JUMP 3 + 0x10,0x81,0x3a, // LOAD_CONST_STRING 'reward' + 0xc3, // STORE_FAST 3 + 0x12,0x12, // LOAD_GLOBAL 'addresses' + 0x14,0x81,0x3b, // LOAD_METHOD 'encode_human_readable' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0x23,0x4c, // LOAD_CONST_OBJ 76 + 0x14,0x41, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0xb4, // LOAD_FAST 4 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x01, // BUILD_LIST 1 + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x4b, // LOAD_ATTR 'path' + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb5, // LOAD_FAST 5 + 0x14,0x4d, // LOAD_METHOD 'append' + 0x12,0x81,0x3d, // LOAD_GLOBAL '_format_stake_credential' + 0xb0, // LOAD_FAST 0 + 0x13,0x4b, // LOAD_ATTR 'path' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x20, // LOAD_ATTR 'script_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x45, // LOAD_ATTR 'key_hash' + 0x34,0x03, // CALL_FUNCTION 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x4d, // LOAD_METHOD 'append' + 0x10,0x81,0x3c, // LOAD_CONST_STRING 'Amount:' + 0x12,0x3b, // LOAD_GLOBAL 'format_coin_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x6e, // LOAD_ATTR 'amount' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x10,0x81,0x39, // LOAD_CONST_STRING 'confirm_withdrawal' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0xb5, // LOAD_FAST 5 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_withdrawal = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_layout_confirm_withdrawal, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 127, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 185, + .line_info = fun_data_apps_cardano_layout_confirm_withdrawal + 11, + .line_info_top = fun_data_apps_cardano_layout_confirm_withdrawal + 24, + .opcodes = fun_data_apps_cardano_layout_confirm_withdrawal + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout__format_stake_credential +static const byte fun_data_apps_cardano_layout__format_stake_credential[100] = { + 0x43,0x1e, // prelude + 0x81,0x3d,0x4b,0x81,0x20,0x45, // names: _format_stake_credential, path, script_hash, key_hash + 0xa0,0xc5,0x4d,0x23,0x20,0x2b,0x6e,0x54,0x70, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x81,0x3e, // LOAD_CONST_STRING 'to_account_path' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1b, // IMPORT_NAME 'helpers.utils' + 0x1c,0x81,0x3e, // IMPORT_FROM 'to_account_path' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0x23,0x4d, // LOAD_CONST_OBJ 77 + 0x14,0x41, // LOAD_METHOD 'format' + 0x12,0x17, // LOAD_GLOBAL 'format_account_number' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x12,0x10, // LOAD_GLOBAL 'address_n_to_str' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x23,0x4e, // LOAD_CONST_OBJ 78 + 0x12,0x14, // LOAD_GLOBAL 'bech32' + 0x14,0x4e, // LOAD_METHOD 'encode' + 0x12,0x14, // LOAD_GLOBAL 'bech32' + 0x13,0x81,0x3f, // LOAD_ATTR 'HRP_STAKE_KEY_HASH' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x23,0x4f, // LOAD_CONST_OBJ 79 + 0x12,0x14, // LOAD_GLOBAL 'bech32' + 0x14,0x4e, // LOAD_METHOD 'encode' + 0x12,0x14, // LOAD_GLOBAL 'bech32' + 0x13,0x57, // LOAD_ATTR 'HRP_SCRIPT_HASH' + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0x12,0x82,0x07, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout__format_stake_credential = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_layout__format_stake_credential, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 100, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 189, + .line_info = fun_data_apps_cardano_layout__format_stake_credential + 8, + .line_info_top = fun_data_apps_cardano_layout__format_stake_credential + 17, + .opcodes = fun_data_apps_cardano_layout__format_stake_credential + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_cvote_registration_delegation +static const byte fun_data_apps_cardano_layout_confirm_cvote_registration_delegation[78] = { + 0xd2,0x40,0x1e, // prelude + 0x81,0x40,0x82,0x08,0x82,0x09, // names: confirm_cvote_registration_delegation, public_key, weight + 0xa0,0xd9,0x20,0x22,0x48,0x26,0x51,0x47,0x47, // code info + 0x23,0x50, // LOAD_CONST_OBJ 80 + 0x23,0x51, // LOAD_CONST_OBJ 81 + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x02, // BUILD_LIST 2 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb2, // LOAD_FAST 2 + 0x14,0x4d, // LOAD_METHOD 'append' + 0x10,0x81,0x41, // LOAD_CONST_STRING 'Weight:' + 0x12,0x81,0x61, // LOAD_GLOBAL 'str' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x10,0x81,0x40, // LOAD_CONST_STRING 'confirm_cvote_registration_delegation' + 0x10,0x76, // LOAD_CONST_STRING 'title' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x10,0x77, // LOAD_CONST_STRING 'props' + 0xb2, // LOAD_FAST 2 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x04, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x3a, // LOAD_ATTR 'Other' + 0x34,0x86,0x01, // CALL_FUNCTION 769 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_cvote_registration_delegation = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_layout_confirm_cvote_registration_delegation, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 78, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 192, + .line_info = fun_data_apps_cardano_layout_confirm_cvote_registration_delegation + 9, + .line_info_top = fun_data_apps_cardano_layout_confirm_cvote_registration_delegation + 18, + .opcodes = fun_data_apps_cardano_layout_confirm_cvote_registration_delegation + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_cvote_registration_payment_address +static const byte fun_data_apps_cardano_layout_confirm_cvote_registration_payment_address[70] = { + 0xd2,0x40,0x1e, // prelude + 0x81,0x42,0x82,0x0a,0x82,0x0b, // names: confirm_cvote_registration_payment_address, payment_address, should_show_payment_warning + 0xa0,0xec,0x20,0x22,0x48,0x23,0x2c,0x47,0x47, // code info + 0x23,0x50, // LOAD_CONST_OBJ 80 + 0x23,0x52, // LOAD_CONST_OBJ 82 + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x02, // BUILD_LIST 2 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb2, // LOAD_FAST 2 + 0x14,0x4d, // LOAD_METHOD 'append' + 0x12,0x81,0x5c, // LOAD_GLOBAL 'CVOTE_REWARD_ELIGIBILITY_WARNING' + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x10,0x81,0x42, // LOAD_CONST_STRING 'confirm_cvote_registration_payment_address' + 0x10,0x76, // LOAD_CONST_STRING 'title' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x10,0x77, // LOAD_CONST_STRING 'props' + 0xb2, // LOAD_FAST 2 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x04, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x3a, // LOAD_ATTR 'Other' + 0x34,0x86,0x01, // CALL_FUNCTION 769 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_cvote_registration_payment_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_layout_confirm_cvote_registration_payment_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 194, + .line_info = fun_data_apps_cardano_layout_confirm_cvote_registration_payment_address + 9, + .line_info_top = fun_data_apps_cardano_layout_confirm_cvote_registration_payment_address + 18, + .opcodes = fun_data_apps_cardano_layout_confirm_cvote_registration_payment_address + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_cvote_registration +static const byte fun_data_apps_cardano_layout_confirm_cvote_registration[153] = { + 0xe0,0x44,0x3a, // prelude + 0x81,0x43,0x82,0x0c,0x82,0x0d,0x82,0x0e,0x82,0x0f, // names: confirm_cvote_registration, vote_public_key, staking_path, nonce, voting_purpose + 0xb0,0x00,0x25,0x26,0x2b,0x24,0x20,0x20,0x2b,0x47,0x70,0x26,0x23,0x20,0x22,0x77,0x20,0x47,0x47, // code info + 0x23,0x50, // LOAD_CONST_OBJ 80 + 0x2b,0x01, // BUILD_LIST 1 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb4, // LOAD_FAST 4 + 0x14,0x4d, // LOAD_METHOD 'append' + 0x23,0x53, // LOAD_CONST_OBJ 83 + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x81,0x06, // LOAD_METHOD 'extend' + 0x23,0x54, // LOAD_CONST_OBJ 84 + 0x14,0x41, // LOAD_METHOD 'format' + 0x12,0x17, // LOAD_GLOBAL 'format_account_number' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x12,0x10, // LOAD_GLOBAL 'address_n_to_str' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x81,0x44, // LOAD_CONST_STRING 'Nonce:' + 0x12,0x81,0x61, // LOAD_GLOBAL 'str' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x02, // BUILD_LIST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0xb4, // LOAD_FAST 4 + 0x14,0x4d, // LOAD_METHOD 'append' + 0x23,0x55, // LOAD_CONST_OBJ 85 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x81,0x45, // LOAD_CONST_STRING 'Catalyst' + 0x42,0x48, // JUMP 8 + 0x10,0x81,0x46, // LOAD_CONST_STRING '{} (other)' + 0x14,0x41, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x10,0x81,0x43, // LOAD_CONST_STRING 'confirm_cvote_registration' + 0x10,0x76, // LOAD_CONST_STRING 'title' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x10,0x77, // LOAD_CONST_STRING 'props' + 0xb4, // LOAD_FAST 4 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x04, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x3a, // LOAD_ATTR 'Other' + 0x34,0x86,0x01, // CALL_FUNCTION 769 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_cvote_registration = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_layout_confirm_cvote_registration, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 153, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 195, + .line_info = fun_data_apps_cardano_layout_confirm_cvote_registration + 13, + .line_info_top = fun_data_apps_cardano_layout_confirm_cvote_registration + 32, + .opcodes = fun_data_apps_cardano_layout_confirm_cvote_registration + 32, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_show_auxiliary_data_hash +static const byte fun_data_apps_cardano_layout_show_auxiliary_data_hash[39] = { + 0xb1,0x40,0x12, // prelude + 0x81,0x47,0x82,0x10, // names: show_auxiliary_data_hash, auxiliary_data_hash + 0xb0,0x1d,0x22,0x22,0x22, // code info + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x56, // LOAD_CONST_OBJ 86 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x57, // LOAD_CONST_OBJ 87 + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_show_auxiliary_data_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_layout_show_auxiliary_data_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 199, + .line_info = fun_data_apps_cardano_layout_show_auxiliary_data_hash + 7, + .line_info_top = fun_data_apps_cardano_layout_show_auxiliary_data_hash + 12, + .opcodes = fun_data_apps_cardano_layout_show_auxiliary_data_hash + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_token_minting +static const byte fun_data_apps_cardano_layout_confirm_token_minting[80] = { + 0xca,0x40,0x24, // prelude + 0x81,0x48,0x6c,0x81,0x69, // names: confirm_token_minting, policy_id, token + 0xb0,0x26,0x20,0x22,0x22,0x22,0x20,0x20,0x22,0x43,0x67,0x20,0x2e, // code info + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x58, // LOAD_CONST_OBJ 88 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0x12,0x18, // LOAD_GLOBAL 'format_asset_fingerprint' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x6d, // LOAD_ATTR 'asset_name_bytes' + 0x34,0x02, // CALL_FUNCTION 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x49, // LOAD_ATTR 'mint_amount' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x59, // LOAD_CONST_OBJ 89 + 0x42,0x42, // JUMP 2 + 0x23,0x5a, // LOAD_CONST_OBJ 90 + 0x12,0x09, // LOAD_GLOBAL 'format_amount' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x49, // LOAD_ATTR 'mint_amount' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_token_minting = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_layout_confirm_token_minting, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 80, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 200, + .line_info = fun_data_apps_cardano_layout_confirm_token_minting + 8, + .line_info_top = fun_data_apps_cardano_layout_confirm_token_minting + 21, + .opcodes = fun_data_apps_cardano_layout_confirm_token_minting + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_warn_tx_network_unverifiable +static const byte fun_data_apps_cardano_layout_warn_tx_network_unverifiable[32] = { + 0xa8,0x40,0x0c, // prelude + 0x81,0x4a, // names: warn_tx_network_unverifiable + 0xb0,0x3c,0x22,0x45, // code info + 0x12,0x0d, // LOAD_GLOBAL 'confirm_metadata' + 0x23,0x5b, // LOAD_CONST_OBJ 91 + 0x10,0x81,0x4b, // LOAD_CONST_STRING 'Warning' + 0x23,0x5c, // LOAD_CONST_OBJ 92 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_warn_tx_network_unverifiable = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_layout_warn_tx_network_unverifiable, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 202, + .line_info = fun_data_apps_cardano_layout_warn_tx_network_unverifiable + 5, + .line_info_top = fun_data_apps_cardano_layout_warn_tx_network_unverifiable + 9, + .opcodes = fun_data_apps_cardano_layout_warn_tx_network_unverifiable + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_script_data_hash +static const byte fun_data_apps_cardano_layout_confirm_script_data_hash[53] = { + 0xc1,0x40,0x16, // prelude + 0x81,0x4c,0x82,0x11, // names: confirm_script_data_hash, script_data_hash + 0xb0,0x45,0x45,0x22,0x20,0x20,0x22, // code info + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x10,0x81,0x4c, // LOAD_CONST_STRING 'confirm_script_data_hash' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x5d, // LOAD_CONST_OBJ 93 + 0x12,0x14, // LOAD_GLOBAL 'bech32' + 0x14,0x4e, // LOAD_METHOD 'encode' + 0x12,0x14, // LOAD_GLOBAL 'bech32' + 0x13,0x81,0x4d, // LOAD_ATTR 'HRP_SCRIPT_DATA_HASH' + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_script_data_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_layout_confirm_script_data_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 53, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 204, + .line_info = fun_data_apps_cardano_layout_confirm_script_data_hash + 7, + .line_info_top = fun_data_apps_cardano_layout_confirm_script_data_hash + 14, + .opcodes = fun_data_apps_cardano_layout_confirm_script_data_hash + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_collateral_input +static const byte fun_data_apps_cardano_layout_confirm_collateral_input[55] = { + 0xb9,0x40,0x14, // prelude + 0x81,0x4e,0x82,0x12, // names: confirm_collateral_input, collateral_input + 0xb0,0x55,0x45,0x22,0x20,0x27, // code info + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x10,0x81,0x4e, // LOAD_CONST_STRING 'confirm_collateral_input' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x5e, // LOAD_CONST_OBJ 94 + 0xb0, // LOAD_FAST 0 + 0x13,0x63, // LOAD_ATTR 'prev_hash' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x5f, // LOAD_CONST_OBJ 95 + 0x12,0x81,0x61, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x64, // LOAD_ATTR 'prev_index' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_collateral_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_layout_confirm_collateral_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 206, + .line_info = fun_data_apps_cardano_layout_confirm_collateral_input + 7, + .line_info_top = fun_data_apps_cardano_layout_confirm_collateral_input + 13, + .opcodes = fun_data_apps_cardano_layout_confirm_collateral_input + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_reference_input +static const byte fun_data_apps_cardano_layout_confirm_reference_input[55] = { + 0xb9,0x40,0x14, // prelude + 0x81,0x4f,0x82,0x13, // names: confirm_reference_input, reference_input + 0xb0,0x63,0x45,0x22,0x20,0x27, // code info + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x10,0x81,0x4f, // LOAD_CONST_STRING 'confirm_reference_input' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x60, // LOAD_CONST_OBJ 96 + 0xb0, // LOAD_FAST 0 + 0x13,0x63, // LOAD_ATTR 'prev_hash' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x61, // LOAD_CONST_OBJ 97 + 0x12,0x81,0x61, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x64, // LOAD_ATTR 'prev_index' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_reference_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_layout_confirm_reference_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 207, + .line_info = fun_data_apps_cardano_layout_confirm_reference_input + 7, + .line_info_top = fun_data_apps_cardano_layout_confirm_reference_input + 13, + .opcodes = fun_data_apps_cardano_layout_confirm_reference_input + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_confirm_required_signer +static const byte fun_data_apps_cardano_layout_confirm_required_signer[76] = { + 0xb9,0x40,0x1a, // prelude + 0x81,0x50,0x82,0x14, // names: confirm_required_signer, required_signer + 0xb0,0x71,0x60,0x20,0x20,0x38,0x68,0x45,0x22, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x45, // LOAD_ATTR 'key_hash' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x12,0x14, // LOAD_GLOBAL 'bech32' + 0x14,0x4e, // LOAD_METHOD 'encode' + 0x12,0x14, // LOAD_GLOBAL 'bech32' + 0x13,0x81,0x51, // LOAD_ATTR 'HRP_REQUIRED_SIGNER_KEY_HASH' + 0xb0, // LOAD_FAST 0 + 0x13,0x45, // LOAD_ATTR 'key_hash' + 0x36,0x02, // CALL_METHOD 2 + 0x42,0x47, // JUMP 7 + 0x12,0x10, // LOAD_GLOBAL 'address_n_to_str' + 0xb0, // LOAD_FAST 0 + 0x13,0x44, // LOAD_ATTR 'key_path' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0x12,0x0e, // LOAD_GLOBAL 'confirm_properties' + 0x10,0x81,0x50, // LOAD_CONST_STRING 'confirm_required_signer' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x62, // LOAD_CONST_OBJ 98 + 0xb1, // LOAD_FAST 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x10,0x53, // LOAD_CONST_STRING 'br_code' + 0x12,0x81,0x5b, // LOAD_GLOBAL 'BRT_Other' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_confirm_required_signer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_layout_confirm_required_signer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 76, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 208, + .line_info = fun_data_apps_cardano_layout_confirm_required_signer + 7, + .line_info_top = fun_data_apps_cardano_layout_confirm_required_signer + 16, + .opcodes = fun_data_apps_cardano_layout_confirm_required_signer + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_layout__lt_module_gt_ +// frozen bytecode for file apps/cardano/layout.py, scope apps_cardano_layout_show_cardano_address +static const byte fun_data_apps_cardano_layout_show_cardano_address[154] = { + 0x90,0x54,0x36, // prelude + 0x81,0x52,0x82,0x15,0x66,0x81,0x79,0x6a, // names: show_cardano_address, address_parameters, address, protocol_magic, chunkify + 0xb0,0x88,0x43,0x22,0x29,0x49,0x22,0x29,0x24,0x23,0x23,0x23,0x23,0x23,0x48,0x26,0x2b,0x26,0x4b, // code info + 0x12,0x05, // LOAD_GLOBAL 'CardanoAddressType' + 0xc4, // STORE_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xc5, // STORE_FAST 5 + 0x12,0x15, // LOAD_GLOBAL 'protocol_magics' + 0x14,0x3d, // LOAD_METHOD 'is_mainnet' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x12,0x15, // LOAD_GLOBAL 'protocol_magics' + 0x14,0x81,0x1b, // LOAD_METHOD 'to_ui_string' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0x51, // LOAD_CONST_NONE + 0xc6, // STORE_FAST 6 + 0x12,0x81,0x58, // LOAD_GLOBAL 'ADDRESS_TYPE_NAMES' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x02, // LOAD_ATTR 'address_type' + 0x55, // LOAD_SUBSCR + 0xc7, // STORE_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x02, // LOAD_ATTR 'address_type' + 0xb4, // LOAD_FAST 4 + 0x13,0x1d, // LOAD_ATTR 'BYRON' + 0xb4, // LOAD_FAST 4 + 0x13,0x1f, // LOAD_ATTR 'BASE' + 0xb4, // LOAD_FAST 4 + 0x13,0x21, // LOAD_ATTR 'BASE_KEY_SCRIPT' + 0xb4, // LOAD_FAST 4 + 0x13,0x24, // LOAD_ATTR 'POINTER' + 0xb4, // LOAD_FAST 4 + 0x13,0x27, // LOAD_ATTR 'ENTERPRISE' + 0xb4, // LOAD_FAST 4 + 0x13,0x2a, // LOAD_ATTR 'REWARD' + 0x2a,0x06, // BUILD_TUPLE 6 + 0xdd, // BINARY_OP 6 + 0x44,0x62, // POP_JUMP_IF_FALSE 34 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x32, // LOAD_ATTR 'address_n' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x10, // LOAD_GLOBAL 'address_n_to_str' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x32, // LOAD_ATTR 'address_n' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc6, // STORE_FAST 6 + 0x42,0x51, // JUMP 17 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x53, // LOAD_ATTR 'address_n_staking' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x10, // LOAD_GLOBAL 'address_n_to_str' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x53, // LOAD_ATTR 'address_n_staking' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc6, // STORE_FAST 6 + 0x42,0x40, // JUMP 0 + 0x12,0x0b, // LOAD_GLOBAL 'layouts' + 0x14,0x81,0x54, // LOAD_METHOD 'show_address' + 0xb1, // LOAD_FAST 1 + 0x10,0x4b, // LOAD_CONST_STRING 'path' + 0xb6, // LOAD_FAST 6 + 0x10,0x81,0x55, // LOAD_CONST_STRING 'account' + 0xb7, // LOAD_FAST 7 + 0x10,0x81,0x56, // LOAD_CONST_STRING 'network' + 0xb5, // LOAD_FAST 5 + 0x10,0x6a, // LOAD_CONST_STRING 'chunkify' + 0xb3, // LOAD_FAST 3 + 0x36,0x88,0x01, // CALL_METHOD 1025 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_layout_show_cardano_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_layout_show_cardano_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 154, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 210, + .line_info = fun_data_apps_cardano_layout_show_cardano_address + 11, + .line_info_top = fun_data_apps_cardano_layout_show_cardano_address + 30, + .opcodes = fun_data_apps_cardano_layout_show_cardano_address + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_layout__lt_module_gt_[] = { + &raw_code_apps_cardano_layout_format_coin_amount, + &raw_code_apps_cardano_layout_show_native_script, + &raw_code_apps_cardano_layout_show_script_hash, + &raw_code_apps_cardano_layout_show_tx_init, + &raw_code_apps_cardano_layout_confirm_input, + &raw_code_apps_cardano_layout_confirm_sending, + &raw_code_apps_cardano_layout_confirm_sending_token, + &raw_code_apps_cardano_layout_confirm_datum_hash, + &raw_code_apps_cardano_layout_confirm_inline_datum, + &raw_code_apps_cardano_layout_confirm_reference_script, + &raw_code_apps_cardano_layout__confirm_data_chunk, + &raw_code_apps_cardano_layout_show_credentials, + &raw_code_apps_cardano_layout_show_change_output_credentials, + &raw_code_apps_cardano_layout_show_device_owned_output_credentials, + &raw_code_apps_cardano_layout_show_cvote_registration_payment_credentials, + &raw_code_apps_cardano_layout__show_credential, + &raw_code_apps_cardano_layout_warn_path, + &raw_code_apps_cardano_layout_warn_tx_output_contains_tokens, + &raw_code_apps_cardano_layout_warn_tx_contains_mint, + &raw_code_apps_cardano_layout_warn_tx_output_no_datum, + &raw_code_apps_cardano_layout_warn_no_script_data_hash, + &raw_code_apps_cardano_layout_warn_no_collateral_inputs, + &raw_code_apps_cardano_layout_warn_unknown_total_collateral, + &raw_code_apps_cardano_layout_confirm_witness_request, + &raw_code_apps_cardano_layout_confirm_tx, + &raw_code_apps_cardano_layout_confirm_certificate, + &raw_code_apps_cardano_layout_confirm_stake_pool_parameters, + &raw_code_apps_cardano_layout_confirm_stake_pool_owner, + &raw_code_apps_cardano_layout_confirm_stake_pool_metadata, + &raw_code_apps_cardano_layout_confirm_stake_pool_registration_final, + &raw_code_apps_cardano_layout_confirm_withdrawal, + &raw_code_apps_cardano_layout__format_stake_credential, + &raw_code_apps_cardano_layout_confirm_cvote_registration_delegation, + &raw_code_apps_cardano_layout_confirm_cvote_registration_payment_address, + &raw_code_apps_cardano_layout_confirm_cvote_registration, + &raw_code_apps_cardano_layout_show_auxiliary_data_hash, + &raw_code_apps_cardano_layout_confirm_token_minting, + &raw_code_apps_cardano_layout_warn_tx_network_unverifiable, + &raw_code_apps_cardano_layout_confirm_script_data_hash, + &raw_code_apps_cardano_layout_confirm_collateral_input, + &raw_code_apps_cardano_layout_confirm_reference_input, + &raw_code_apps_cardano_layout_confirm_required_signer, + &raw_code_apps_cardano_layout_show_cardano_address, +}; + +static const mp_raw_code_t raw_code_apps_cardano_layout__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 675, + #endif + .children = (void *)&children_apps_cardano_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 43, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_layout__lt_module_gt_ + 4, + .line_info_top = fun_data_apps_cardano_layout__lt_module_gt_ + 131, + .opcodes = fun_data_apps_cardano_layout__lt_module_gt_ + 131, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_layout[279] = { + MP_QSTR_apps_slash_cardano_slash_layout_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ui, + MP_QSTR_trezor, + MP_QSTR_ButtonRequestType, + MP_QSTR_CardanoAddressType, + MP_QSTR_CardanoCertificateType, + MP_QSTR_CardanoNativeScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_format_amount, + MP_QSTR_trezor_dot_strings, + MP_QSTR_layouts, + MP_QSTR_trezor_dot_ui, + MP_QSTR_confirm_metadata, + MP_QSTR_confirm_properties, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_address_n_to_str, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_addresses, + MP_QSTR_, + MP_QSTR_bech32, + MP_QSTR_protocol_magics, + MP_QSTR_helpers, + MP_QSTR_format_account_number, + MP_QSTR_format_asset_fingerprint, + MP_QSTR_format_optional_int, + MP_QSTR_format_stake_pool_id, + MP_QSTR_helpers_dot_utils, + MP_QSTR_Legacy, + MP_QSTR_BYRON, + MP_QSTR_Base, + MP_QSTR_BASE, + MP_QSTR_BASE_SCRIPT_KEY, + MP_QSTR_BASE_KEY_SCRIPT, + MP_QSTR_BASE_SCRIPT_SCRIPT, + MP_QSTR_Pointer, + MP_QSTR_POINTER, + MP_QSTR_POINTER_SCRIPT, + MP_QSTR_Enterprise, + MP_QSTR_ENTERPRISE, + MP_QSTR_ENTERPRISE_SCRIPT, + MP_QSTR_Reward, + MP_QSTR_REWARD, + MP_QSTR_REWARD_SCRIPT, + MP_QSTR_Key, + MP_QSTR_PUB_KEY, + MP_QSTR_All, + MP_QSTR_ALL, + MP_QSTR_Any, + MP_QSTR_ANY, + MP_QSTR_N_space_of_space_K, + MP_QSTR_N_OF_K, + MP_QSTR_INVALID_BEFORE, + MP_QSTR_INVALID_HEREAFTER, + MP_QSTR_STAKE_REGISTRATION, + MP_QSTR_STAKE_DEREGISTRATION, + MP_QSTR_STAKE_DELEGATION, + MP_QSTR_STAKE_POOL_REGISTRATION, + MP_QSTR_Other, + MP_QSTR_format_coin_amount, + MP_QSTR_network_ids, + MP_QSTR_is_mainnet, + MP_QSTR_ADA, + MP_QSTR_tADA, + MP_QSTR__brace_open__brace_close__space__brace_open__brace_close_, + MP_QSTR_format, + MP_QSTR_show_native_script, + MP_QSTR_type, + MP_QSTR_key_path, + MP_QSTR_key_hash, + MP_QSTR_scripts, + MP_QSTR_Script, + MP_QSTR__space_, + MP_QSTR__dot_, + MP_QSTR_join, + MP_QSTR_path, + MP_QSTR_hash, + MP_QSTR_append, + MP_QSTR_encode, + MP_QSTR_HRP_SHARED_KEY_HASH, + MP_QSTR_required_signatures_count, + MP_QSTR_invalid_before, + MP_QSTR_invalid_hereafter, + MP_QSTR_br_code, + MP_QSTR_show_script_hash, + MP_QSTR_CardanoNativeScriptHashDisplayFormat, + MP_QSTR_BECH32, + MP_QSTR_HRP_SCRIPT_HASH, + MP_QSTR_POLICY_ID, + MP_QSTR_confirm_blob, + MP_QSTR_Policy_space_ID_colon_, + MP_QSTR_show_tx_init, + MP_QSTR_should_show_more, + MP_QSTR_DEMIBOLD, + MP_QSTR_NORMAL, + MP_QSTR_Show_space_All, + MP_QSTR_confirm, + MP_QSTR_confirm_input, + MP_QSTR_Input_space_ID_colon_, + MP_QSTR_prev_hash, + MP_QSTR_prev_index, + MP_QSTR_confirm_sending, + MP_QSTR_address, + MP_QSTR_Sending, + MP_QSTR_change, + MP_QSTR_confirm_output, + MP_QSTR_chunkify, + MP_QSTR_confirm_sending_token, + MP_QSTR_policy_id, + MP_QSTR_asset_name_bytes, + MP_QSTR_amount, + MP_QSTR_confirm_datum_hash, + MP_QSTR_HRP_OUTPUT_DATUM_HASH, + MP_QSTR_confirm_inline_datum, + MP_QSTR_confirm_reference_script, + MP_QSTR__confirm_data_chunk, + MP_QSTR_byte, + MP_QSTR_bytes, + MP_QSTR_title, + MP_QSTR_props, + MP_QSTR_show_credentials, + MP_QSTR_Address, + MP_QSTR_purpose, + MP_QSTR_show_change_output_credentials, + MP_QSTR_output, + MP_QSTR_show_device_owned_output_credentials, + MP_QSTR_show_cvote_registration_payment_credentials, + MP_QSTR_extra_text, + MP_QSTR__show_credential, + MP_QSTR__brace_open__brace_close__space_address, + MP_QSTR_address_type, + MP_QSTR_is_set, + MP_QSTR_get_title, + MP_QSTR_type_name, + MP_QSTR_extend, + MP_QSTR_is_unusual_path, + MP_QSTR_is_mismatch, + MP_QSTR_is_reward, + MP_QSTR_is_no_staking, + MP_QSTR_warn_path, + MP_QSTR_confirm_path_warning, + MP_QSTR_path_type, + MP_QSTR_warn_tx_output_contains_tokens, + MP_QSTR_warn_tx_contains_mint, + MP_QSTR_warn_tx_output_no_datum, + MP_QSTR_warn_no_script_data_hash, + MP_QSTR_warn_no_collateral_inputs, + MP_QSTR_warn_unknown_total_collateral, + MP_QSTR_show_warning, + MP_QSTR_confirm_witness_request, + MP_QSTR_seed, + MP_QSTR_is_multisig_path, + MP_QSTR_is_minting_path, + MP_QSTR_confirm_text, + MP_QSTR_confirm_tx, + MP_QSTR_to_ui_string, + MP_QSTR_TTL_colon__space__brace_open__brace_close_, + MP_QSTR_hold, + MP_QSTR_confirm_certificate, + MP_QSTR_Confirm_colon_, + MP_QSTR_script_hash, + MP_QSTR_to_space_pool_colon_, + MP_QSTR_pool, + MP_QSTR_confirm_stake_pool_parameters, + MP_QSTR_margin_numerator, + MP_QSTR_margin_denominator, + MP_QSTR_rstrip, + MP_QSTR_0, + MP_QSTR_pool_id, + MP_QSTR_reward_account, + MP_QSTR_pledge, + MP_QSTR_Cost_colon__space__brace_open__brace_close__0x0a_, + MP_QSTR_cost, + MP_QSTR_confirm_stake_pool_owner, + MP_QSTR_messages, + MP_QSTR_staking_key_path, + MP_QSTR_derive_human_readable, + MP_QSTR_CardanoAddressParametersType, + MP_QSTR_address_n, + MP_QSTR_staking_key_hash, + MP_QSTR_confirm_stake_pool_metadata, + MP_QSTR_url, + MP_QSTR_confirm_stake_pool_registration_final, + MP_QSTR_Network_colon_, + MP_QSTR_TTL_colon_, + MP_QSTR_confirm_withdrawal, + MP_QSTR_reward, + MP_QSTR_encode_human_readable, + MP_QSTR_Amount_colon_, + MP_QSTR__format_stake_credential, + MP_QSTR_to_account_path, + MP_QSTR_HRP_STAKE_KEY_HASH, + MP_QSTR_confirm_cvote_registration_delegation, + MP_QSTR_Weight_colon_, + MP_QSTR_confirm_cvote_registration_payment_address, + MP_QSTR_confirm_cvote_registration, + MP_QSTR_Nonce_colon_, + MP_QSTR_Catalyst, + MP_QSTR__brace_open__brace_close__space__paren_open_other_paren_close_, + MP_QSTR_show_auxiliary_data_hash, + MP_QSTR_confirm_token_minting, + MP_QSTR_mint_amount, + MP_QSTR_warn_tx_network_unverifiable, + MP_QSTR_Warning, + MP_QSTR_confirm_script_data_hash, + MP_QSTR_HRP_SCRIPT_DATA_HASH, + MP_QSTR_confirm_collateral_input, + MP_QSTR_confirm_reference_input, + MP_QSTR_confirm_required_signer, + MP_QSTR_HRP_REQUIRED_SIGNER_KEY_HASH, + MP_QSTR_show_cardano_address, + MP_QSTR_address_n_staking, + MP_QSTR_show_address, + MP_QSTR_account, + MP_QSTR_network, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_ADDRESS_TYPE_NAMES, + MP_QSTR_SCRIPT_TYPE_NAMES, + MP_QSTR_CERTIFICATE_TYPE_NAMES, + MP_QSTR_BRT_Other, + MP_QSTR_CVOTE_REWARD_ELIGIBILITY_WARNING, + MP_QSTR_network_id, + MP_QSTR_script, + MP_QSTR_indices, + MP_QSTR_len, + MP_QSTR_str, + MP_QSTR_enumerate, + MP_QSTR_display_format, + MP_QSTR_input, + MP_QSTR_ada_amount, + MP_QSTR_to, + MP_QSTR_output_type, + MP_QSTR_RuntimeError, + MP_QSTR_token, + MP_QSTR_datum_hash, + MP_QSTR_first_chunk, + MP_QSTR_inline_datum_size, + MP_QSTR_reference_script_size, + MP_QSTR_br_type, + MP_QSTR_data_size, + MP_QSTR_payment_credential, + MP_QSTR_stake_credential, + MP_QSTR_show_both_credentials, + MP_QSTR_show_payment_warning, + MP_QSTR_credential, + MP_QSTR_intro_text, + MP_QSTR_is_collateral_return, + MP_QSTR_witness_path, + MP_QSTR_fee, + MP_QSTR_protocol_magic, + MP_QSTR_ttl, + MP_QSTR_validity_interval_start, + MP_QSTR_total_collateral, + MP_QSTR_is_network_id_verifiable, + MP_QSTR_tx_hash, + MP_QSTR_certificate, + MP_QSTR_pool_parameters, + MP_QSTR_float, + MP_QSTR_keychain, + MP_QSTR_owner, + MP_QSTR_metadata, + MP_QSTR_withdrawal, + MP_QSTR_address_bytes, + MP_QSTR_ValueError, + MP_QSTR_public_key, + MP_QSTR_weight, + MP_QSTR_payment_address, + MP_QSTR_should_show_payment_warning, + MP_QSTR_vote_public_key, + MP_QSTR_staking_path, + MP_QSTR_nonce, + MP_QSTR_voting_purpose, + MP_QSTR_auxiliary_data_hash, + MP_QSTR_script_data_hash, + MP_QSTR_collateral_input, + MP_QSTR_reference_input, + MP_QSTR_required_signer, + MP_QSTR_address_parameters, + MP_QSTR__star_, +}; + +// constants +static const mp_obj_str_t const_obj_apps_cardano_layout_6 = {{&mp_type_str}, 31026, 78, (const byte*)"\x57\x61\x72\x6e\x69\x6e\x67\x3a\x20\x54\x68\x65\x20\x61\x64\x64\x72\x65\x73\x73\x20\x69\x73\x20\x6e\x6f\x74\x20\x61\x20\x70\x61\x79\x6d\x65\x6e\x74\x20\x61\x64\x64\x72\x65\x73\x73\x2c\x20\x69\x74\x20\x69\x73\x20\x6e\x6f\x74\x20\x65\x6c\x69\x67\x69\x62\x6c\x65\x20\x66\x6f\x72\x20\x72\x65\x77\x61\x72\x64\x73\x2e"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_8 = {{&mp_type_str}, 869, 33, (const byte*)"\x52\x65\x71\x75\x69\x72\x65\x73\x20\x7b\x7d\x20\x6f\x75\x74\x20\x6f\x66\x20\x7b\x7d\x20\x73\x69\x67\x6e\x61\x74\x75\x72\x65\x73\x2e"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_9 = {{&mp_type_str}, 2719, 27, (const byte*)"\x43\x6f\x6e\x74\x61\x69\x6e\x73\x20\x7b\x7d\x20\x6e\x65\x73\x74\x65\x64\x20\x73\x63\x72\x69\x70\x74\x73\x2e"}; +static const mp_rom_obj_tuple_t const_obj_apps_cardano_layout_27 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR__dot__dot__dot_), + MP_ROM_NONE, +}}; +static const mp_obj_str_t const_obj_apps_cardano_layout_28 = {{&mp_type_str}, 63568, 46, (const byte*)"\x54\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x61\x64\x64\x72\x65\x73\x73\x20\x69\x73\x20\x61\x20\x63\x68\x61\x6e\x67\x65\x20\x61\x64\x64\x72\x65\x73\x73\x2e\x20\x49\x74\x73"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_29 = {{&mp_type_str}, 50483, 50, (const byte*)"\x54\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x61\x64\x64\x72\x65\x73\x73\x20\x69\x73\x20\x6f\x77\x6e\x65\x64\x20\x62\x79\x20\x74\x68\x69\x73\x20\x64\x65\x76\x69\x63\x65\x2e\x20\x49\x74\x73"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_30 = {{&mp_type_str}, 64118, 70, (const byte*)"\x54\x68\x65\x20\x76\x6f\x74\x65\x20\x6b\x65\x79\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x20\x70\x61\x79\x6d\x65\x6e\x74\x20\x61\x64\x64\x72\x65\x73\x73\x20\x69\x73\x20\x6f\x77\x6e\x65\x64\x20\x62\x79\x20\x74\x68\x69\x73\x20\x64\x65\x76\x69\x63\x65\x2e\x20\x49\x74\x73"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_31 = {{&mp_type_str}, 24461, 25, (const byte*)"\x63\x76\x6f\x74\x65\x5f\x72\x65\x67\x5f\x70\x61\x79\x6d\x65\x6e\x74\x5f\x61\x64\x64\x72\x65\x73\x73"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_32 = {{&mp_type_str}, 57257, 25, (const byte*)"\x7b\x7d\x20\x7b\x7d\x20\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x20\x69\x73\x20\x61\x20\x7b\x7d\x3a"}; +static const mp_rom_obj_tuple_t const_obj_apps_cardano_layout_33 = {{&mp_type_tuple}, 2, { + MP_ROM_NONE, + MP_ROM_QSTR(MP_QSTR_Path_space_is_space_unusual_dot_), +}}; +static const mp_obj_str_t const_obj_apps_cardano_layout_34_1 = {{&mp_type_str}, 40994, 44, (const byte*)"\x43\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x20\x64\x6f\x65\x73\x6e\x27\x74\x20\x6d\x61\x74\x63\x68\x20\x70\x61\x79\x6d\x65\x6e\x74\x20\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x2e"}; +static const mp_rom_obj_tuple_t const_obj_apps_cardano_layout_34 = {{&mp_type_tuple}, 2, { + MP_ROM_NONE, + MP_ROM_PTR(&const_obj_apps_cardano_layout_34_1), +}}; +static const mp_obj_str_t const_obj_apps_cardano_layout_35_0 = {{&mp_type_str}, 57031, 28, (const byte*)"\x41\x64\x64\x72\x65\x73\x73\x20\x69\x73\x20\x61\x20\x72\x65\x77\x61\x72\x64\x20\x61\x64\x64\x72\x65\x73\x73\x2e"}; +static const mp_rom_obj_tuple_t const_obj_apps_cardano_layout_35 = {{&mp_type_tuple}, 2, { + MP_ROM_PTR(&const_obj_apps_cardano_layout_35_0), + MP_ROM_NONE, +}}; +static const mp_obj_str_t const_obj_apps_cardano_layout_36 = {{&mp_type_str}, 26814, 32, (const byte*)"\x7b\x7d\x20\x61\x64\x64\x72\x65\x73\x73\x20\x2d\x20\x6e\x6f\x20\x73\x74\x61\x6b\x69\x6e\x67\x20\x72\x65\x77\x61\x72\x64\x73\x2e"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_38 = {{&mp_type_str}, 26767, 45, (const byte*)"\x54\x68\x65\x20\x63\x6f\x6c\x6c\x61\x74\x65\x72\x61\x6c\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x75\x74\x70\x75\x74\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x20\x74\x6f\x6b\x65\x6e\x73\x2e"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_39 = {{&mp_type_str}, 4915, 49, (const byte*)"\x54\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x6f\x75\x74\x70\x75\x74\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x20\x74\x6f\x6b\x65\x6e\x73\x2e"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_41 = {{&mp_type_str}, 20412, 54, (const byte*)"\x54\x68\x65\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x20\x6d\x69\x6e\x74\x69\x6e\x67\x20\x6f\x72\x20\x62\x75\x72\x6e\x69\x6e\x67\x20\x6f\x66\x20\x74\x6f\x6b\x65\x6e\x73\x2e"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_43 = {{&mp_type_str}, 12892, 89, (const byte*)"\x54\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x6f\x75\x74\x70\x75\x74\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x20\x61\x20\x73\x63\x72\x69\x70\x74\x20\x61\x64\x64\x72\x65\x73\x73\x2c\x20\x62\x75\x74\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x63\x6f\x6e\x74\x61\x69\x6e\x20\x61\x20\x64\x61\x74\x75\x6d\x2e"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_44 = {{&mp_type_str}, 49691, 27, (const byte*)"\x63\x6f\x6e\x66\x69\x72\x6d\x5f\x6e\x6f\x5f\x73\x63\x72\x69\x70\x74\x5f\x64\x61\x74\x61\x5f\x68\x61\x73\x68"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_45 = {{&mp_type_str}, 33911, 84, (const byte*)"\x54\x68\x65\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x20\x6e\x6f\x20\x73\x63\x72\x69\x70\x74\x20\x64\x61\x74\x61\x20\x68\x61\x73\x68\x2e\x20\x50\x6c\x75\x74\x75\x73\x20\x73\x63\x72\x69\x70\x74\x20\x77\x69\x6c\x6c\x20\x6e\x6f\x74\x20\x62\x65\x20\x61\x62\x6c\x65\x20\x74\x6f\x20\x72\x75\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_46 = {{&mp_type_str}, 37487, 28, (const byte*)"\x63\x6f\x6e\x66\x69\x72\x6d\x5f\x6e\x6f\x5f\x63\x6f\x6c\x6c\x61\x74\x65\x72\x61\x6c\x5f\x69\x6e\x70\x75\x74\x73"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_47 = {{&mp_type_str}, 21916, 85, (const byte*)"\x54\x68\x65\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x20\x6e\x6f\x20\x63\x6f\x6c\x6c\x61\x74\x65\x72\x61\x6c\x20\x69\x6e\x70\x75\x74\x73\x2e\x20\x50\x6c\x75\x74\x75\x73\x20\x73\x63\x72\x69\x70\x74\x20\x77\x69\x6c\x6c\x20\x6e\x6f\x74\x20\x62\x65\x20\x61\x62\x6c\x65\x20\x74\x6f\x20\x72\x75\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_48 = {{&mp_type_str}, 19745, 32, (const byte*)"\x63\x6f\x6e\x66\x69\x72\x6d\x5f\x75\x6e\x6b\x6e\x6f\x77\x6e\x5f\x74\x6f\x74\x61\x6c\x5f\x63\x6f\x6c\x6c\x61\x74\x65\x72\x61\x6c"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_49 = {{&mp_type_str}, 43724, 26, (const byte*)"\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x63\x6f\x6c\x6c\x61\x74\x65\x72\x61\x6c\x20\x61\x6d\x6f\x75\x6e\x74\x2e"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_50 = {{&mp_type_str}, 60629, 26, (const byte*)"\x43\x68\x65\x63\x6b\x20\x61\x6c\x6c\x20\x69\x74\x65\x6d\x73\x20\x63\x61\x72\x65\x66\x75\x6c\x6c\x79\x2e"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_54 = {{&mp_type_str}, 43660, 25, (const byte*)"\x53\x69\x67\x6e\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x77\x69\x74\x68\x20\x7b\x7d\x3a"}; +#if MICROPY_OBJ_REPR == MICROPY_OBJ_REPR_A || MICROPY_OBJ_REPR == MICROPY_OBJ_REPR_B +static const mp_obj_float_t const_obj_apps_cardano_layout_60 = {{&mp_type_float}, (mp_float_t)100}; +#define const_obj_apps_cardano_layout_60_macro MP_ROM_PTR(&const_obj_apps_cardano_layout_60) +#elif MICROPY_OBJ_REPR == MICROPY_OBJ_REPR_C +#define const_obj_apps_cardano_layout_60_macro ((mp_rom_obj_t)(0xc3480002)) +#elif MICROPY_OBJ_REPR == MICROPY_OBJ_REPR_D +#define const_obj_apps_cardano_layout_60_macro ((mp_rom_obj_t)(0xc05d000000000000)) +#endif +static const mp_obj_str_t const_obj_apps_cardano_layout_61 = {{&mp_type_str}, 1882, 25, (const byte*)"\x63\x6f\x6e\x66\x69\x72\x6d\x5f\x70\x6f\x6f\x6c\x5f\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_62 = {{&mp_type_str}, 36737, 32, (const byte*)"\x53\x74\x61\x6b\x65\x20\x70\x6f\x6f\x6c\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x0a\x50\x6f\x6f\x6c\x20\x49\x44\x3a"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_69_0_0 = {{&mp_type_str}, 26817, 37, (const byte*)"\x50\x6f\x6f\x6c\x20\x68\x61\x73\x20\x6e\x6f\x20\x6d\x65\x74\x61\x64\x61\x74\x61\x20\x28\x61\x6e\x6f\x6e\x79\x6d\x6f\x75\x73\x20\x70\x6f\x6f\x6c\x29"}; +static const mp_rom_obj_tuple_t const_obj_apps_cardano_layout_69_0 = {{&mp_type_tuple}, 2, { + MP_ROM_PTR(&const_obj_apps_cardano_layout_69_0_0), + MP_ROM_NONE, +}}; +static const mp_rom_obj_tuple_t const_obj_apps_cardano_layout_69 = {{&mp_type_tuple}, 1, { + MP_ROM_PTR(&const_obj_apps_cardano_layout_69_0), +}}; +static const mp_obj_str_t const_obj_apps_cardano_layout_73_0 = {{&mp_type_str}, 25962, 56, (const byte*)"\x43\x6f\x6e\x66\x69\x72\x6d\x20\x73\x69\x67\x6e\x69\x6e\x67\x20\x74\x68\x65\x20\x73\x74\x61\x6b\x65\x20\x70\x6f\x6f\x6c\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x20\x61\x73\x20\x61\x6e\x20\x6f\x77\x6e\x65\x72\x2e"}; +static const mp_rom_obj_tuple_t const_obj_apps_cardano_layout_73 = {{&mp_type_tuple}, 2, { + MP_ROM_PTR(&const_obj_apps_cardano_layout_73_0), + MP_ROM_NONE, +}}; +static const mp_obj_str_t const_obj_apps_cardano_layout_76 = {{&mp_type_str}, 21001, 34, (const byte*)"\x43\x6f\x6e\x66\x69\x72\x6d\x20\x77\x69\x74\x68\x64\x72\x61\x77\x61\x6c\x20\x66\x6f\x72\x20\x7b\x7d\x20\x61\x64\x64\x72\x65\x73\x73\x3a"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_80_0 = {{&mp_type_str}, 50488, 30, (const byte*)"\x56\x6f\x74\x65\x20\x6b\x65\x79\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x20\x28\x43\x49\x50\x2d\x33\x36\x29"}; +static const mp_rom_obj_tuple_t const_obj_apps_cardano_layout_80 = {{&mp_type_tuple}, 2, { + MP_ROM_PTR(&const_obj_apps_cardano_layout_80_0), + MP_ROM_NONE, +}}; +static const mp_obj_str_t const_obj_apps_cardano_layout_84 = {{&mp_type_str}, 58169, 27, (const byte*)"\x53\x74\x61\x6b\x69\x6e\x67\x20\x6b\x65\x79\x20\x66\x6f\x72\x20\x61\x63\x63\x6f\x75\x6e\x74\x20\x7b\x7d\x3a"}; +static const mp_obj_str_t const_obj_apps_cardano_layout_92 = {{&mp_type_str}, 22866, 55, (const byte*)"\x54\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x68\x61\x73\x20\x6e\x6f\x20\x6f\x75\x74\x70\x75\x74\x73\x2c\x20\x6e\x65\x74\x77\x6f\x72\x6b\x20\x63\x61\x6e\x6e\x6f\x74\x20\x62\x65\x20\x76\x65\x72\x69\x66\x69\x65\x64\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_layout[99] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_before), + MP_ROM_QSTR(MP_QSTR_Invalid_space_hereafter), + MP_ROM_QSTR(MP_QSTR_Stake_space_key_space_registration), + MP_ROM_QSTR(MP_QSTR_Stake_space_key_space_deregistration), + MP_ROM_QSTR(MP_QSTR_Stake_space_delegation), + MP_ROM_QSTR(MP_QSTR_Stakepool_space_registration), + MP_ROM_PTR(&const_obj_apps_cardano_layout_6), + MP_ROM_QSTR(MP_QSTR__brace_open__brace_close__space__hyphen__space__brace_open__brace_close__space__brace_open__brace_close__colon_), + MP_ROM_PTR(&const_obj_apps_cardano_layout_8), + MP_ROM_PTR(&const_obj_apps_cardano_layout_9), + MP_ROM_QSTR(MP_QSTR_verify_script), + MP_ROM_QSTR(MP_QSTR_Verify_space_script), + MP_ROM_QSTR(MP_QSTR_Script_space_hash_colon_), + MP_ROM_QSTR(MP_QSTR_Confirm_space_transaction), + MP_ROM_QSTR(MP_QSTR_Choose_space_level_space_of_space_details_colon_), + MP_ROM_QSTR(MP_QSTR_Show_space_Simple), + MP_ROM_QSTR(MP_QSTR_Input_space_index_colon_), + MP_ROM_QSTR(MP_QSTR_Change_space_output), + MP_ROM_QSTR(MP_QSTR_collateral_hyphen_return), + MP_ROM_QSTR(MP_QSTR_Collateral_space_return), + MP_ROM_QSTR(MP_QSTR_confirm_token), + MP_ROM_QSTR(MP_QSTR_Asset_space_fingerprint_colon_), + MP_ROM_QSTR(MP_QSTR_Amount_space_sent_colon_), + MP_ROM_QSTR(MP_QSTR_Datum_space_hash_colon_), + MP_ROM_QSTR(MP_QSTR_Inline_space_datum), + MP_ROM_QSTR(MP_QSTR_Reference_space_script), + MP_ROM_QSTR(MP_QSTR__brace_open__brace_close__space__paren_open__brace_open__brace_close__space__brace_open__brace_close__paren_close__colon_), + MP_ROM_PTR(&const_obj_apps_cardano_layout_27), + MP_ROM_PTR(&const_obj_apps_cardano_layout_28), + MP_ROM_PTR(&const_obj_apps_cardano_layout_29), + MP_ROM_PTR(&const_obj_apps_cardano_layout_30), + MP_ROM_PTR(&const_obj_apps_cardano_layout_31), + MP_ROM_PTR(&const_obj_apps_cardano_layout_32), + MP_ROM_PTR(&const_obj_apps_cardano_layout_33), + MP_ROM_PTR(&const_obj_apps_cardano_layout_34), + MP_ROM_PTR(&const_obj_apps_cardano_layout_35), + MP_ROM_PTR(&const_obj_apps_cardano_layout_36), + MP_ROM_QSTR(MP_QSTR_confirm_credential), + MP_ROM_PTR(&const_obj_apps_cardano_layout_38), + MP_ROM_PTR(&const_obj_apps_cardano_layout_39), + MP_ROM_QSTR(MP_QSTR_confirm_tokens), + MP_ROM_PTR(&const_obj_apps_cardano_layout_41), + MP_ROM_QSTR(MP_QSTR_confirm_no_datum_hash), + MP_ROM_PTR(&const_obj_apps_cardano_layout_43), + MP_ROM_PTR(&const_obj_apps_cardano_layout_44), + MP_ROM_PTR(&const_obj_apps_cardano_layout_45), + MP_ROM_PTR(&const_obj_apps_cardano_layout_46), + MP_ROM_PTR(&const_obj_apps_cardano_layout_47), + MP_ROM_PTR(&const_obj_apps_cardano_layout_48), + MP_ROM_PTR(&const_obj_apps_cardano_layout_49), + MP_ROM_PTR(&const_obj_apps_cardano_layout_50), + MP_ROM_QSTR(MP_QSTR_multi_hyphen_sig_space_path), + MP_ROM_QSTR(MP_QSTR_token_space_minting_space_path), + MP_ROM_QSTR(MP_QSTR_confirm_total), + MP_ROM_PTR(&const_obj_apps_cardano_layout_54), + MP_ROM_QSTR(MP_QSTR_Transaction_space_fee_colon_), + MP_ROM_QSTR(MP_QSTR_Total_space_collateral_colon_), + MP_ROM_QSTR(MP_QSTR_Network_colon__space__brace_open__brace_close_), + MP_ROM_QSTR(MP_QSTR_Valid_space_since_colon__space__brace_open__brace_close_), + MP_ROM_QSTR(MP_QSTR_Transaction_space_ID_colon_), + const_obj_apps_cardano_layout_60_macro, + MP_ROM_PTR(&const_obj_apps_cardano_layout_61), + MP_ROM_PTR(&const_obj_apps_cardano_layout_62), + MP_ROM_QSTR(MP_QSTR_Pool_space_reward_space_account_colon_), + MP_ROM_QSTR(MP_QSTR_Pledge_colon__space__brace_open__brace_close__0x0a_), + MP_ROM_QSTR(MP_QSTR_Margin_colon__space__brace_open__brace_close__percent_), + MP_ROM_QSTR(MP_QSTR_Pool_space_owner_colon_), + MP_ROM_QSTR(MP_QSTR_confirm_pool_owners), + MP_ROM_QSTR(MP_QSTR_confirm_pool_metadata), + MP_ROM_PTR(&const_obj_apps_cardano_layout_69), + MP_ROM_QSTR(MP_QSTR_Pool_space_metadata_space_url_colon_), + MP_ROM_QSTR(MP_QSTR_Pool_space_metadata_space_hash_colon_), + MP_ROM_QSTR(MP_QSTR_confirm_pool_final), + MP_ROM_PTR(&const_obj_apps_cardano_layout_73), + MP_ROM_QSTR(MP_QSTR_Valid_space_since_colon_), + MP_ROM_QSTR(MP_QSTR_script_space_reward), + MP_ROM_PTR(&const_obj_apps_cardano_layout_76), + MP_ROM_QSTR(MP_QSTR_for_space_account_space__brace_open__brace_close__colon_), + MP_ROM_QSTR(MP_QSTR_for_space_key_space_hash_colon_), + MP_ROM_QSTR(MP_QSTR_for_space_script_colon_), + MP_ROM_PTR(&const_obj_apps_cardano_layout_80), + MP_ROM_QSTR(MP_QSTR_Delegating_space_to_colon_), + MP_ROM_QSTR(MP_QSTR_Rewards_space_go_space_to_colon_), + MP_ROM_QSTR(MP_QSTR_Vote_space_public_space_key_colon_), + MP_ROM_PTR(&const_obj_apps_cardano_layout_84), + MP_ROM_QSTR(MP_QSTR_Voting_space_purpose_colon_), + MP_ROM_QSTR(MP_QSTR_confirm_auxiliary_data), + MP_ROM_QSTR(MP_QSTR_Auxiliary_space_data_space_hash_colon_), + MP_ROM_QSTR(MP_QSTR_confirm_mint), + MP_ROM_QSTR(MP_QSTR_Amount_space_minted_colon_), + MP_ROM_QSTR(MP_QSTR_Amount_space_burned_colon_), + MP_ROM_QSTR(MP_QSTR_warning_no_outputs), + MP_ROM_PTR(&const_obj_apps_cardano_layout_92), + MP_ROM_QSTR(MP_QSTR_Script_space_data_space_hash_colon_), + MP_ROM_QSTR(MP_QSTR_Collateral_space_input_space_ID_colon_), + MP_ROM_QSTR(MP_QSTR_Collateral_space_input_space_index_colon_), + MP_ROM_QSTR(MP_QSTR_Reference_space_input_space_ID_colon_), + MP_ROM_QSTR(MP_QSTR_Reference_space_input_space_index_colon_), + MP_ROM_QSTR(MP_QSTR_Required_space_signer), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_layout = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_layout, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_layout, + }, + .rc = &raw_code_apps_cardano_layout__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_native_script +// - original source file: build/firmware/src/apps/cardano/native_script.mpy +// - frozen file name: apps/cardano/native_script.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/native_script.py, scope apps_cardano_native_script__lt_module_gt_ +static const byte fun_data_apps_cardano_native_script__lt_module_gt_[56] = { + 0x08,0x18, // prelude + 0x01, // names: + 0x40,0x2c,0x4c,0x80,0x0a,0x84,0x31,0x84,0x38,0x84,0x0e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'CardanoNativeScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x02, // IMPORT_FROM 'CardanoNativeScriptType' + 0x16,0x02, // STORE_NAME 'CardanoNativeScriptType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.wire' + 0x1c,0x04, // IMPORT_FROM 'ProcessError' + 0x16,0x04, // STORE_NAME 'ProcessError' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x06, // STORE_NAME 'validate_native_script' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x1c, // STORE_NAME '_validate_native_script_structure' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x1d, // STORE_NAME 'get_native_script_hash' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x28, // STORE_NAME 'cborize_native_script' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_native_script__lt_module_gt_ +// frozen bytecode for file apps/cardano/native_script.py, scope apps_cardano_native_script_validate_native_script +static const byte fun_data_apps_cardano_native_script_validate_native_script[307] = { + 0x81,0x10,0x56, // prelude + 0x06,0x2c, // names: validate_native_script, script + 0x80,0x10,0x2b,0x2b,0x4b,0x47,0x23,0x42,0x26,0x24,0x24,0x24,0x43,0x27,0x28,0x22,0x25,0x2b,0x47,0x27,0x2b,0x44,0x25,0x27,0x25,0x2b,0x27,0x25,0x2b,0x27,0x27,0x22,0x2b,0x22,0x25,0x2a,0x27,0x27,0x24,0x27,0x27, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x07, // LOAD_CONST_STRING 'seed' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME '' + 0x1c,0x07, // IMPORT_FROM 'seed' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x09, // LOAD_CONST_STRING 'ADDRESS_KEY_HASH_SIZE' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'helpers' + 0x1c,0x09, // IMPORT_FROM 'ADDRESS_KEY_HASH_SIZE' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0b, // LOAD_CONST_STRING 'SCHEMA_MINT' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'helpers.paths' + 0x1c,0x0b, // IMPORT_FROM 'SCHEMA_MINT' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0xb4, // LOAD_FAST 4 + 0x65, // RAISE_OBJ + 0x12,0x1c, // LOAD_GLOBAL '_validate_native_script_structure' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'type' + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'key_path' + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'scripts' + 0xc7, // STORE_FAST 7 + 0x12,0x02, // LOAD_GLOBAL 'CardanoNativeScriptType' + 0xc8, // STORE_FAST 8 + 0xb5, // LOAD_FAST 5 + 0xb8, // LOAD_FAST 8 + 0x13,0x10, // LOAD_ATTR 'PUB_KEY' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7c, // POP_JUMP_IF_FALSE 60 + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'key_hash' + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb6, // LOAD_FAST 6 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb4, // LOAD_FAST 4 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'key_hash' + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x12,0x2d, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'key_hash' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb4, // LOAD_FAST 4 + 0x65, // RAISE_OBJ + 0x42,0x5b, // JUMP 27 + 0xb6, // LOAD_FAST 6 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0xb3, // LOAD_FAST 3 + 0x14,0x12, // LOAD_METHOD 'match' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0xc9, // STORE_FAST 9 + 0xb1, // LOAD_FAST 1 + 0x14,0x13, // LOAD_METHOD 'is_multisig_path' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb9, // LOAD_FAST 9 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0xb4, // LOAD_FAST 4 + 0x65, // RAISE_OBJ + 0x42,0x42, // JUMP 2 + 0xb4, // LOAD_FAST 4 + 0x65, // RAISE_OBJ + 0x42,0xfe,0x80, // JUMP 126 + 0xb5, // LOAD_FAST 5 + 0xb8, // LOAD_FAST 8 + 0x13,0x14, // LOAD_ATTR 'ALL' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb7, // LOAD_FAST 7 + 0x5f, // GET_ITER_STACK + 0x4b,0x09, // FOR_ITER 9 + 0xca, // STORE_FAST 10 + 0x12,0x06, // LOAD_GLOBAL 'validate_native_script' + 0xba, // LOAD_FAST 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x35, // JUMP -11 + 0x42,0xe7,0x80, // JUMP 103 + 0xb5, // LOAD_FAST 5 + 0xb8, // LOAD_FAST 8 + 0x13,0x15, // LOAD_ATTR 'ANY' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb7, // LOAD_FAST 7 + 0x5f, // GET_ITER_STACK + 0x4b,0x09, // FOR_ITER 9 + 0xca, // STORE_FAST 10 + 0x12,0x06, // LOAD_GLOBAL 'validate_native_script' + 0xba, // LOAD_FAST 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x35, // JUMP -11 + 0x42,0xd0,0x80, // JUMP 80 + 0xb5, // LOAD_FAST 5 + 0xb8, // LOAD_FAST 8 + 0x13,0x16, // LOAD_ATTR 'N_OF_K' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x65, // POP_JUMP_IF_FALSE 37 + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'required_signatures_count' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb4, // LOAD_FAST 4 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'required_signatures_count' + 0x12,0x2d, // LOAD_GLOBAL 'len' + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb4, // LOAD_FAST 4 + 0x65, // RAISE_OBJ + 0xb7, // LOAD_FAST 7 + 0x5f, // GET_ITER_STACK + 0x4b,0x09, // FOR_ITER 9 + 0xca, // STORE_FAST 10 + 0x12,0x06, // LOAD_GLOBAL 'validate_native_script' + 0xba, // LOAD_FAST 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x35, // JUMP -11 + 0x42,0x64, // JUMP 36 + 0xb5, // LOAD_FAST 5 + 0xb8, // LOAD_FAST 8 + 0x13,0x18, // LOAD_ATTR 'INVALID_BEFORE' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'invalid_before' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb4, // LOAD_FAST 4 + 0x65, // RAISE_OBJ + 0x42,0x52, // JUMP 18 + 0xb5, // LOAD_FAST 5 + 0xb8, // LOAD_FAST 8 + 0x13,0x1a, // LOAD_ATTR 'INVALID_HEREAFTER' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'invalid_hereafter' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb4, // LOAD_FAST 4 + 0x65, // RAISE_OBJ + 0x42,0x40, // JUMP 0 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_native_script_validate_native_script = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_native_script_validate_native_script, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 307, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_cardano_native_script_validate_native_script + 5, + .line_info_top = fun_data_apps_cardano_native_script_validate_native_script + 46, + .opcodes = fun_data_apps_cardano_native_script_validate_native_script + 46, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_native_script__lt_module_gt_ +// frozen bytecode for file apps/cardano/native_script.py, scope apps_cardano_native_script__validate_native_script_structure +static const byte fun_data_apps_cardano_native_script__validate_native_script_structure[148] = { + 0x71,0x34, // prelude + 0x1c,0x2c, // names: _validate_native_script_structure, script + 0x80,0x41,0x24,0x24,0x24,0x20,0x44,0x24,0x24,0x43,0x22,0x6a,0x60,0x8b,0x07,0x8b,0x07,0x6a,0x60,0x6a,0x60,0x8b,0x08,0x33, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'key_hash' + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'key_path' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'scripts' + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'required_signatures_count' + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'invalid_before' + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'invalid_hereafter' + 0xc6, // STORE_FAST 6 + 0x12,0x02, // LOAD_GLOBAL 'CardanoNativeScriptType' + 0xc7, // STORE_FAST 7 + 0x2c,0x06, // BUILD_MAP 6 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x2a,0x04, // BUILD_TUPLE 4 + 0xb7, // LOAD_FAST 7 + 0x13,0x10, // LOAD_ATTR 'PUB_KEY' + 0x62, // STORE_MAP + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x2a,0x05, // BUILD_TUPLE 5 + 0xb7, // LOAD_FAST 7 + 0x13,0x14, // LOAD_ATTR 'ALL' + 0x62, // STORE_MAP + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x2a,0x05, // BUILD_TUPLE 5 + 0xb7, // LOAD_FAST 7 + 0x13,0x15, // LOAD_ATTR 'ANY' + 0x62, // STORE_MAP + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x2a,0x04, // BUILD_TUPLE 4 + 0xb7, // LOAD_FAST 7 + 0x13,0x16, // LOAD_ATTR 'N_OF_K' + 0x62, // STORE_MAP + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0x2a,0x04, // BUILD_TUPLE 4 + 0xb7, // LOAD_FAST 7 + 0x13,0x18, // LOAD_ATTR 'INVALID_BEFORE' + 0x62, // STORE_MAP + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x2a,0x04, // BUILD_TUPLE 4 + 0xb7, // LOAD_FAST 7 + 0x13,0x1a, // LOAD_ATTR 'INVALID_HEREAFTER' + 0x62, // STORE_MAP + 0xc8, // STORE_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'type' + 0xb8, // LOAD_FAST 8 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0x12,0x2e, // LOAD_GLOBAL 'any' + 0xb8, // LOAD_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'type' + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x04, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_native_script__validate_native_script_structure = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_native_script__validate_native_script_structure, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 148, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_apps_cardano_native_script__validate_native_script_structure + 4, + .line_info_top = fun_data_apps_cardano_native_script__validate_native_script_structure + 28, + .opcodes = fun_data_apps_cardano_native_script__validate_native_script_structure + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_native_script__lt_module_gt_ +// frozen bytecode for file apps/cardano/native_script.py, scope apps_cardano_native_script_get_native_script_hash +static const byte fun_data_apps_cardano_native_script_get_native_script_hash[79] = { + 0x62,0x14, // prelude + 0x1d,0x2f,0x2c, // names: get_native_script_hash, keychain, script + 0x80,0x7b,0x4b,0x4b,0x4b,0x2c,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1e, // LOAD_CONST_STRING 'hashlib' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1f, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x1e, // IMPORT_FROM 'hashlib' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x20, // LOAD_CONST_STRING 'cbor' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x21, // IMPORT_NAME 'apps.common' + 0x1c,0x20, // IMPORT_FROM 'cbor' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x22, // LOAD_CONST_STRING 'SCRIPT_HASH_SIZE' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'helpers' + 0x1c,0x22, // IMPORT_FROM 'SCRIPT_HASH_SIZE' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x23, // LOAD_METHOD 'encode' + 0x12,0x28, // LOAD_GLOBAL 'cborize_native_script' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xb5, // LOAD_FAST 5 + 0xf2, // BINARY_OP 27 __add__ + 0xc6, // STORE_FAST 6 + 0xb2, // LOAD_FAST 2 + 0x14,0x24, // LOAD_METHOD 'blake2b' + 0x10,0x25, // LOAD_CONST_STRING 'data' + 0xb6, // LOAD_FAST 6 + 0x10,0x26, // LOAD_CONST_STRING 'outlen' + 0xb4, // LOAD_FAST 4 + 0x36,0x84,0x00, // CALL_METHOD 512 + 0x14,0x27, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_native_script_get_native_script_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_native_script_get_native_script_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 79, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_apps_cardano_native_script_get_native_script_hash + 5, + .line_info_top = fun_data_apps_cardano_native_script_get_native_script_hash + 12, + .opcodes = fun_data_apps_cardano_native_script_get_native_script_hash + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_native_script__lt_module_gt_ +// frozen bytecode for file apps/cardano/native_script.py, scope apps_cardano_native_script_cborize_native_script +static const byte fun_data_apps_cardano_native_script_cborize_native_script[223] = { + 0x4a,0x43, // prelude + 0x28,0x2f,0x2c, // names: cborize_native_script, keychain, script + 0x80,0x89,0x4b,0x24,0x43,0x20,0x27,0x25,0x28,0x25,0x4d,0x2a,0x27,0x20,0x46,0x6e,0x27,0x20,0x46,0x6d,0x27,0x20,0x23,0x46,0x6d,0x27,0x28,0x27,0x48,0x43,0x00, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x29, // LOAD_CONST_STRING 'get_public_key_hash' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2a, // IMPORT_NAME 'helpers.utils' + 0x1c,0x29, // IMPORT_FROM 'get_public_key_hash' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x0d, // LOAD_ATTR 'type' + 0xc3, // STORE_FAST 3 + 0x12,0x02, // LOAD_GLOBAL 'CardanoNativeScriptType' + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x13,0x10, // LOAD_ATTR 'PUB_KEY' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x69, // POP_JUMP_IF_FALSE 41 + 0xb1, // LOAD_FAST 1 + 0x13,0x11, // LOAD_ATTR 'key_hash' + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x11, // LOAD_ATTR 'key_hash' + 0x2a,0x01, // BUILD_TUPLE 1 + 0xc5, // STORE_FAST 5 + 0x42,0x59, // JUMP 25 + 0xb1, // LOAD_FAST 1 + 0x13,0x0e, // LOAD_ATTR 'key_path' + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb2, // LOAD_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x0e, // LOAD_ATTR 'key_path' + 0x34,0x02, // CALL_FUNCTION 2 + 0x2a,0x01, // BUILD_TUPLE 1 + 0xc5, // STORE_FAST 5 + 0x42,0x47, // JUMP 7 + 0x12,0x04, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0xf3,0x80, // JUMP 115 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x13,0x14, // LOAD_ATTR 'ALL' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x30, // LOAD_GLOBAL 'tuple' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'scripts' + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x01, // BUILD_TUPLE 1 + 0xc5, // STORE_FAST 5 + 0x42,0xd8,0x80, // JUMP 88 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x13,0x15, // LOAD_ATTR 'ANY' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x30, // LOAD_GLOBAL 'tuple' + 0xb0, // LOAD_FAST 0 + 0x20,0x01,0x01, // MAKE_CLOSURE 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'scripts' + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x01, // BUILD_TUPLE 1 + 0xc5, // STORE_FAST 5 + 0x42,0x7e, // JUMP 62 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x13,0x16, // LOAD_ATTR 'N_OF_K' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0xb1, // LOAD_FAST 1 + 0x13,0x17, // LOAD_ATTR 'required_signatures_count' + 0x12,0x30, // LOAD_GLOBAL 'tuple' + 0xb0, // LOAD_FAST 0 + 0x20,0x02,0x01, // MAKE_CLOSURE 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'scripts' + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xc5, // STORE_FAST 5 + 0x42,0x61, // JUMP 33 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x13,0x18, // LOAD_ATTR 'INVALID_BEFORE' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'invalid_before' + 0x2a,0x01, // BUILD_TUPLE 1 + 0xc5, // STORE_FAST 5 + 0x42,0x52, // JUMP 18 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x13,0x1a, // LOAD_ATTR 'INVALID_HEREAFTER' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'invalid_hereafter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0xc5, // STORE_FAST 5 + 0x42,0x43, // JUMP 3 + 0x12,0x31, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x2a,0x01, // BUILD_TUPLE 1 + 0xb5, // LOAD_FAST 5 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_native_script_cborize_native_script +// frozen bytecode for file apps/cardano/native_script.py, scope apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_ +static const byte fun_data_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_[28] = { + 0xca,0x40,0x0a, // prelude + 0x2b,0x32,0x32, // names: , *, * + 0x80,0x99, // code info + 0x53, // LOAD_NULL + 0xb1, // LOAD_FAST 1 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0c, // FOR_ITER 12 + 0xc2, // STORE_FAST 2 + 0x12,0x28, // LOAD_GLOBAL 'cborize_native_script' + 0x25,0x00, // LOAD_DEREF 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x32, // JUMP -14 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_ + 6, + .line_info_top = fun_data_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_ + 8, + .opcodes = fun_data_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_native_script_cborize_native_script +// frozen bytecode for file apps/cardano/native_script.py, scope apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_2 +static const byte fun_data_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_2[28] = { + 0xca,0x40,0x0a, // prelude + 0x2b,0x32,0x32, // names: , *, * + 0x80,0xa0, // code info + 0x53, // LOAD_NULL + 0xb1, // LOAD_FAST 1 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0c, // FOR_ITER 12 + 0xc2, // STORE_FAST 2 + 0x12,0x28, // LOAD_GLOBAL 'cborize_native_script' + 0x25,0x00, // LOAD_DEREF 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x32, // JUMP -14 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_2 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_2, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_2 + 6, + .line_info_top = fun_data_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_2 + 8, + .opcodes = fun_data_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_2 + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_native_script_cborize_native_script +// frozen bytecode for file apps/cardano/native_script.py, scope apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_3 +static const byte fun_data_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_3[28] = { + 0xca,0x40,0x0a, // prelude + 0x2b,0x32,0x32, // names: , *, * + 0x80,0xa8, // code info + 0x53, // LOAD_NULL + 0xb1, // LOAD_FAST 1 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0c, // FOR_ITER 12 + 0xc2, // STORE_FAST 2 + 0x12,0x28, // LOAD_GLOBAL 'cborize_native_script' + 0x25,0x00, // LOAD_DEREF 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x32, // JUMP -14 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_3 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_3, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_3 + 6, + .line_info_top = fun_data_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_3 + 8, + .opcodes = fun_data_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_3 + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_native_script_cborize_native_script[] = { + &raw_code_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_, + &raw_code_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_2, + &raw_code_apps_cardano_native_script_cborize_native_script__lt_genexpr_gt_3, +}; + +static const mp_raw_code_t raw_code_apps_cardano_native_script_cborize_native_script = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_native_script_cborize_native_script, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 223, + #endif + .children = (void *)&children_apps_cardano_native_script_cborize_native_script, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_cardano_native_script_cborize_native_script + 5, + .line_info_top = fun_data_apps_cardano_native_script_cborize_native_script + 35, + .opcodes = fun_data_apps_cardano_native_script_cborize_native_script + 36, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_native_script__lt_module_gt_[] = { + &raw_code_apps_cardano_native_script_validate_native_script, + &raw_code_apps_cardano_native_script__validate_native_script_structure, + &raw_code_apps_cardano_native_script_get_native_script_hash, + &raw_code_apps_cardano_native_script_cborize_native_script, +}; + +static const mp_raw_code_t raw_code_apps_cardano_native_script__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_native_script__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = (void *)&children_apps_cardano_native_script__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_native_script__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_native_script__lt_module_gt_ + 14, + .opcodes = fun_data_apps_cardano_native_script__lt_module_gt_ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_native_script[51] = { + MP_QSTR_apps_slash_cardano_slash_native_script_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_CardanoNativeScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_validate_native_script, + MP_QSTR_seed, + MP_QSTR_, + MP_QSTR_ADDRESS_KEY_HASH_SIZE, + MP_QSTR_helpers, + MP_QSTR_SCHEMA_MINT, + MP_QSTR_helpers_dot_paths, + MP_QSTR_type, + MP_QSTR_key_path, + MP_QSTR_scripts, + MP_QSTR_PUB_KEY, + MP_QSTR_key_hash, + MP_QSTR_match, + MP_QSTR_is_multisig_path, + MP_QSTR_ALL, + MP_QSTR_ANY, + MP_QSTR_N_OF_K, + MP_QSTR_required_signatures_count, + MP_QSTR_INVALID_BEFORE, + MP_QSTR_invalid_before, + MP_QSTR_INVALID_HEREAFTER, + MP_QSTR_invalid_hereafter, + MP_QSTR__validate_native_script_structure, + MP_QSTR_get_native_script_hash, + MP_QSTR_hashlib, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_cbor, + MP_QSTR_apps_dot_common, + MP_QSTR_SCRIPT_HASH_SIZE, + MP_QSTR_encode, + MP_QSTR_blake2b, + MP_QSTR_data, + MP_QSTR_outlen, + MP_QSTR_digest, + MP_QSTR_cborize_native_script, + MP_QSTR_get_public_key_hash, + MP_QSTR_helpers_dot_utils, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_script, + MP_QSTR_len, + MP_QSTR_any, + MP_QSTR_keychain, + MP_QSTR_tuple, + MP_QSTR_RuntimeError, + MP_QSTR__star_, +}; + +// constants +static const mp_obj_str_t const_obj_apps_cardano_native_script_1 = {{&mp_type_bytes}, 46501, 1, (const byte*)"\x00"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_native_script[2] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_native_space_script), + MP_ROM_PTR(&const_obj_apps_cardano_native_script_1), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_native_script = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_native_script, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_native_script, + }, + .rc = &raw_code_apps_cardano_native_script__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_seed +// - original source file: build/firmware/src/apps/cardano/seed.mpy +// - frozen file name: apps/cardano/seed.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/seed.py, scope apps_cardano_seed__lt_module_gt_ +static const byte fun_data_apps_cardano_seed__lt_module_gt_[167] = { + 0x20,0x34, // prelude + 0x01, // names: + 0x40,0x32,0x2c,0x4c,0x2c,0x4c,0x5e,0x80,0x15,0x89,0x40,0x64,0x20,0x64,0x20,0x64,0x20,0x64,0x20,0x84,0x1a,0x84,0x1f,0x84,0x09, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'cache' + 0x10,0x03, // LOAD_CONST_STRING 'device' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x04, // IMPORT_NAME 'storage' + 0x1c,0x02, // IMPORT_FROM 'cache' + 0x16,0x02, // STORE_NAME 'cache' + 0x1c,0x03, // IMPORT_FROM 'device' + 0x16,0x03, // STORE_NAME 'device' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x05, // IMPORT_FROM 'wire' + 0x16,0x05, // STORE_NAME 'wire' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'cardano' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x07, // IMPORT_FROM 'cardano' + 0x16,0x07, // STORE_NAME 'cardano' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'mnemonic' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'apps.common' + 0x1c,0x09, // IMPORT_FROM 'mnemonic' + 0x16,0x09, // STORE_NAME 'mnemonic' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'get_seed' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'apps.common.seed' + 0x1c,0x0b, // IMPORT_FROM 'get_seed' + 0x16,0x0b, // STORE_NAME 'get_seed' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0d, // LOAD_CONST_STRING 'BYRON_ROOT' + 0x10,0x0e, // LOAD_CONST_STRING 'MINTING_ROOT' + 0x10,0x0f, // LOAD_CONST_STRING 'MULTISIG_ROOT' + 0x10,0x10, // LOAD_CONST_STRING 'SHELLEY_ROOT' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x11, // IMPORT_NAME 'helpers.paths' + 0x1c,0x0d, // IMPORT_FROM 'BYRON_ROOT' + 0x16,0x0d, // STORE_NAME 'BYRON_ROOT' + 0x1c,0x0e, // IMPORT_FROM 'MINTING_ROOT' + 0x16,0x0e, // STORE_NAME 'MINTING_ROOT' + 0x1c,0x0f, // IMPORT_FROM 'MULTISIG_ROOT' + 0x16,0x0f, // STORE_NAME 'MULTISIG_ROOT' + 0x1c,0x10, // IMPORT_FROM 'SHELLEY_ROOT' + 0x16,0x10, // STORE_NAME 'SHELLEY_ROOT' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x12, // LOAD_CONST_STRING 'Keychain' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x12, // STORE_NAME 'Keychain' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x13, // STORE_NAME 'is_byron_path' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x14, // STORE_NAME 'is_shelley_path' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x15, // STORE_NAME 'is_multisig_path' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x16, // STORE_NAME 'is_minting_path' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x17, // STORE_NAME 'derive_and_store_secrets' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x1f, // STORE_NAME '_get_keychain_bip39' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x2c, // STORE_NAME '_get_keychain' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x2e, // STORE_NAME 'with_keychain' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_seed__lt_module_gt_ +// frozen bytecode for file apps/cardano/seed.py, scope apps_cardano_seed_Keychain +static const byte fun_data_apps_cardano_seed_Keychain[55] = { + 0x08,0x1e, // prelude + 0x12, // names: Keychain + 0x88,0x21,0x60,0x40,0x84,0x07,0x88,0x07,0x64,0x20,0x84,0x0c,0x84,0x08, // code info + 0x11,0x40, // LOAD_NAME '__name__' + 0x16,0x41, // STORE_NAME '__module__' + 0x10,0x12, // LOAD_CONST_STRING 'Keychain' + 0x16,0x42, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x2f, // STORE_NAME '__init__' + 0x11,0x43, // LOAD_NAME 'staticmethod' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x30, // STORE_NAME '_derive_path' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x38, // STORE_NAME 'verify_path' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x3b, // STORE_NAME '_get_path_root' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x39, // STORE_NAME 'is_in_keychain' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x3c, // STORE_NAME 'derive' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_seed_Keychain +// frozen bytecode for file apps/cardano/seed.py, scope apps_cardano_seed_Keychain___init__ +static const byte fun_data_apps_cardano_seed_Keychain___init__[63] = { + 0x2a,0x12, // prelude + 0x2f,0x49,0x4a, // names: __init__, self, root + 0x80,0x27,0x2b,0x2b,0x2b,0x2b, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x30, // LOAD_METHOD '_derive_path' + 0xb1, // LOAD_FAST 1 + 0x12,0x0d, // LOAD_GLOBAL 'BYRON_ROOT' + 0x36,0x02, // CALL_METHOD 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x31, // STORE_ATTR 'byron_root' + 0xb0, // LOAD_FAST 0 + 0x14,0x30, // LOAD_METHOD '_derive_path' + 0xb1, // LOAD_FAST 1 + 0x12,0x10, // LOAD_GLOBAL 'SHELLEY_ROOT' + 0x36,0x02, // CALL_METHOD 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x32, // STORE_ATTR 'shelley_root' + 0xb0, // LOAD_FAST 0 + 0x14,0x30, // LOAD_METHOD '_derive_path' + 0xb1, // LOAD_FAST 1 + 0x12,0x0f, // LOAD_GLOBAL 'MULTISIG_ROOT' + 0x36,0x02, // CALL_METHOD 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x33, // STORE_ATTR 'multisig_root' + 0xb0, // LOAD_FAST 0 + 0x14,0x30, // LOAD_METHOD '_derive_path' + 0xb1, // LOAD_FAST 1 + 0x12,0x0e, // LOAD_GLOBAL 'MINTING_ROOT' + 0x36,0x02, // CALL_METHOD 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x34, // STORE_ATTR 'minting_root' + 0xb1, // LOAD_FAST 1 + 0x14,0x35, // LOAD_METHOD '__del__' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_seed_Keychain___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_seed_Keychain___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 63, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_apps_cardano_seed_Keychain___init__ + 5, + .line_info_top = fun_data_apps_cardano_seed_Keychain___init__ + 11, + .opcodes = fun_data_apps_cardano_seed_Keychain___init__ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_seed_Keychain +// frozen bytecode for file apps/cardano/seed.py, scope apps_cardano_seed_Keychain__derive_path +static const byte fun_data_apps_cardano_seed_Keychain__derive_path[25] = { + 0x2a,0x10, // prelude + 0x30,0x4a,0x44, // names: _derive_path, root, path + 0x80,0x2f,0x20,0x26,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x36, // LOAD_METHOD 'clone' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x14,0x37, // LOAD_METHOD 'derive_path' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_seed_Keychain__derive_path = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_seed_Keychain__derive_path, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 48, + .line_info = fun_data_apps_cardano_seed_Keychain__derive_path + 5, + .line_info_top = fun_data_apps_cardano_seed_Keychain__derive_path + 10, + .opcodes = fun_data_apps_cardano_seed_Keychain__derive_path + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_seed_Keychain +// frozen bytecode for file apps/cardano/seed.py, scope apps_cardano_seed_Keychain_verify_path +static const byte fun_data_apps_cardano_seed_Keychain_verify_path[27] = { + 0x22,0x0c, // prelude + 0x38,0x49,0x44, // names: verify_path, self, path + 0x80,0x35,0x28, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x39, // LOAD_METHOD 'is_in_keychain' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x12,0x05, // LOAD_GLOBAL 'wire' + 0x14,0x3a, // LOAD_METHOD 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_seed_Keychain_verify_path = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_seed_Keychain_verify_path, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 56, + .line_info = fun_data_apps_cardano_seed_Keychain_verify_path + 5, + .line_info_top = fun_data_apps_cardano_seed_Keychain_verify_path + 8, + .opcodes = fun_data_apps_cardano_seed_Keychain_verify_path + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_seed_Keychain +// frozen bytecode for file apps/cardano/seed.py, scope apps_cardano_seed_Keychain__get_path_root +static const byte fun_data_apps_cardano_seed_Keychain__get_path_root[70] = { + 0x22,0x1a, // prelude + 0x3b,0x49,0x44, // names: _get_path_root, self, path + 0x80,0x39,0x27,0x24,0x27,0x24,0x27,0x24,0x27,0x44, // code info + 0x12,0x13, // LOAD_GLOBAL 'is_byron_path' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x31, // LOAD_ATTR 'byron_root' + 0x63, // RETURN_VALUE + 0x12,0x14, // LOAD_GLOBAL 'is_shelley_path' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x32, // LOAD_ATTR 'shelley_root' + 0x63, // RETURN_VALUE + 0x12,0x15, // LOAD_GLOBAL 'is_multisig_path' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x33, // LOAD_ATTR 'multisig_root' + 0x63, // RETURN_VALUE + 0x12,0x16, // LOAD_GLOBAL 'is_minting_path' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'minting_root' + 0x63, // RETURN_VALUE + 0x12,0x05, // LOAD_GLOBAL 'wire' + 0x14,0x3a, // LOAD_METHOD 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_seed_Keychain__get_path_root = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_seed_Keychain__get_path_root, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 59, + .line_info = fun_data_apps_cardano_seed_Keychain__get_path_root + 5, + .line_info_top = fun_data_apps_cardano_seed_Keychain__get_path_root + 15, + .opcodes = fun_data_apps_cardano_seed_Keychain__get_path_root + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_seed_Keychain +// frozen bytecode for file apps/cardano/seed.py, scope apps_cardano_seed_Keychain_is_in_keychain +static const byte fun_data_apps_cardano_seed_Keychain_is_in_keychain[38] = { + 0x1a,0x12, // prelude + 0x39,0x49,0x44, // names: is_in_keychain, self, path + 0x80,0x45,0x20,0x27,0x27,0x27, // code info + 0x12,0x13, // LOAD_GLOBAL 'is_byron_path' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x45,0x13, // JUMP_IF_TRUE_OR_POP 19 + 0x12,0x14, // LOAD_GLOBAL 'is_shelley_path' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x45,0x0c, // JUMP_IF_TRUE_OR_POP 12 + 0x12,0x15, // LOAD_GLOBAL 'is_multisig_path' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x45,0x05, // JUMP_IF_TRUE_OR_POP 5 + 0x12,0x16, // LOAD_GLOBAL 'is_minting_path' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_seed_Keychain_is_in_keychain = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_seed_Keychain_is_in_keychain, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 57, + .line_info = fun_data_apps_cardano_seed_Keychain_is_in_keychain + 5, + .line_info_top = fun_data_apps_cardano_seed_Keychain_is_in_keychain + 11, + .opcodes = fun_data_apps_cardano_seed_Keychain_is_in_keychain + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_seed_Keychain +// frozen bytecode for file apps/cardano/seed.py, scope apps_cardano_seed_Keychain_derive +static const byte fun_data_apps_cardano_seed_Keychain_derive[46] = { + 0x3a,0x14, // prelude + 0x3c,0x49,0x4b, // names: derive, self, node_path + 0x80,0x4d,0x27,0x67,0x60,0x40,0x6c, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x38, // LOAD_METHOD 'verify_path' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x3b, // LOAD_METHOD '_get_path_root' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x12,0x45, // LOAD_GLOBAL 'len' + 0x12,0x10, // LOAD_GLOBAL 'SHELLEY_ROOT' + 0x34,0x01, // CALL_FUNCTION 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x14,0x30, // LOAD_METHOD '_derive_path' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_seed_Keychain_derive = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_seed_Keychain_derive, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 60, + .line_info = fun_data_apps_cardano_seed_Keychain_derive + 5, + .line_info_top = fun_data_apps_cardano_seed_Keychain_derive + 12, + .opcodes = fun_data_apps_cardano_seed_Keychain_derive + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_seed_Keychain[] = { + &raw_code_apps_cardano_seed_Keychain___init__, + &raw_code_apps_cardano_seed_Keychain__derive_path, + &raw_code_apps_cardano_seed_Keychain_verify_path, + &raw_code_apps_cardano_seed_Keychain__get_path_root, + &raw_code_apps_cardano_seed_Keychain_is_in_keychain, + &raw_code_apps_cardano_seed_Keychain_derive, +}; + +static const mp_raw_code_t raw_code_apps_cardano_seed_Keychain = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_seed_Keychain, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = (void *)&children_apps_cardano_seed_Keychain, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_cardano_seed_Keychain + 3, + .line_info_top = fun_data_apps_cardano_seed_Keychain + 17, + .opcodes = fun_data_apps_cardano_seed_Keychain + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_seed__lt_module_gt_ +// frozen bytecode for file apps/cardano/seed.py, scope apps_cardano_seed_is_byron_path +static const byte fun_data_apps_cardano_seed_is_byron_path[21] = { + 0x21,0x08, // prelude + 0x13,0x44, // names: is_byron_path, path + 0x80,0x61, // code info + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0x12,0x45, // LOAD_GLOBAL 'len' + 0x12,0x0d, // LOAD_GLOBAL 'BYRON_ROOT' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x12,0x0d, // LOAD_GLOBAL 'BYRON_ROOT' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_seed_is_byron_path = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_seed_is_byron_path, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_cardano_seed_is_byron_path + 4, + .line_info_top = fun_data_apps_cardano_seed_is_byron_path + 6, + .opcodes = fun_data_apps_cardano_seed_is_byron_path + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_seed__lt_module_gt_ +// frozen bytecode for file apps/cardano/seed.py, scope apps_cardano_seed_is_shelley_path +static const byte fun_data_apps_cardano_seed_is_shelley_path[21] = { + 0x21,0x08, // prelude + 0x14,0x44, // names: is_shelley_path, path + 0x80,0x65, // code info + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0x12,0x45, // LOAD_GLOBAL 'len' + 0x12,0x10, // LOAD_GLOBAL 'SHELLEY_ROOT' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x12,0x10, // LOAD_GLOBAL 'SHELLEY_ROOT' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_seed_is_shelley_path = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_seed_is_shelley_path, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_apps_cardano_seed_is_shelley_path + 4, + .line_info_top = fun_data_apps_cardano_seed_is_shelley_path + 6, + .opcodes = fun_data_apps_cardano_seed_is_shelley_path + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_seed__lt_module_gt_ +// frozen bytecode for file apps/cardano/seed.py, scope apps_cardano_seed_is_multisig_path +static const byte fun_data_apps_cardano_seed_is_multisig_path[21] = { + 0x21,0x08, // prelude + 0x15,0x44, // names: is_multisig_path, path + 0x80,0x69, // code info + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0x12,0x45, // LOAD_GLOBAL 'len' + 0x12,0x0f, // LOAD_GLOBAL 'MULTISIG_ROOT' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x12,0x0f, // LOAD_GLOBAL 'MULTISIG_ROOT' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_seed_is_multisig_path = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_seed_is_multisig_path, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_cardano_seed_is_multisig_path + 4, + .line_info_top = fun_data_apps_cardano_seed_is_multisig_path + 6, + .opcodes = fun_data_apps_cardano_seed_is_multisig_path + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_seed__lt_module_gt_ +// frozen bytecode for file apps/cardano/seed.py, scope apps_cardano_seed_is_minting_path +static const byte fun_data_apps_cardano_seed_is_minting_path[21] = { + 0x21,0x08, // prelude + 0x16,0x44, // names: is_minting_path, path + 0x80,0x6d, // code info + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0x12,0x45, // LOAD_GLOBAL 'len' + 0x12,0x0e, // LOAD_GLOBAL 'MINTING_ROOT' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x12,0x0e, // LOAD_GLOBAL 'MINTING_ROOT' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_seed_is_minting_path = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_seed_is_minting_path, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_apps_cardano_seed_is_minting_path + 4, + .line_info_top = fun_data_apps_cardano_seed_is_minting_path + 6, + .opcodes = fun_data_apps_cardano_seed_is_minting_path + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_seed__lt_module_gt_ +// frozen bytecode for file apps/cardano/seed.py, scope apps_cardano_seed_derive_and_store_secrets +static const byte fun_data_apps_cardano_seed_derive_and_store_secrets[108] = { + 0x49,0x22, // prelude + 0x17,0x46, // names: derive_and_store_secrets, passphrase + 0x80,0x71,0x20,0x40,0x48,0x42,0x4c,0x27,0x40,0x4d,0x25,0x6e,0x20,0x42,0x2c, // code info + 0x12,0x09, // LOAD_GLOBAL 'mnemonic' + 0x14,0x18, // LOAD_METHOD 'is_bip39' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x09, // LOAD_GLOBAL 'mnemonic' + 0x14,0x19, // LOAD_METHOD 'derive_cardano_icarus' + 0xb0, // LOAD_FAST 0 + 0x10,0x1a, // LOAD_CONST_STRING 'trezor_derivation' + 0x50, // LOAD_CONST_FALSE + 0x36,0x82,0x01, // CALL_METHOD 257 + 0xc1, // STORE_FAST 1 + 0x12,0x09, // LOAD_GLOBAL 'mnemonic' + 0x14,0x1b, // LOAD_METHOD 'get_secret' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0x12,0x47, // LOAD_GLOBAL 'sum' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb2, // LOAD_FAST 2 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x98, // LOAD_CONST_SMALL_INT 24 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x09, // LOAD_GLOBAL 'mnemonic' + 0x14,0x19, // LOAD_METHOD 'derive_cardano_icarus' + 0xb0, // LOAD_FAST 0 + 0x10,0x1a, // LOAD_CONST_STRING 'trezor_derivation' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x01, // CALL_METHOD 257 + 0xc4, // STORE_FAST 4 + 0x42,0x42, // JUMP 2 + 0xb1, // LOAD_FAST 1 + 0xc4, // STORE_FAST 4 + 0x12,0x02, // LOAD_GLOBAL 'cache' + 0x14,0x1c, // LOAD_METHOD 'set' + 0x12,0x02, // LOAD_GLOBAL 'cache' + 0x13,0x1d, // LOAD_ATTR 'APP_CARDANO_ICARUS_SECRET' + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'cache' + 0x14,0x1c, // LOAD_METHOD 'set' + 0x12,0x02, // LOAD_GLOBAL 'cache' + 0x13,0x1e, // LOAD_ATTR 'APP_CARDANO_ICARUS_TREZOR_SECRET' + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_seed_derive_and_store_secrets +// frozen bytecode for file apps/cardano/seed.py, scope apps_cardano_seed_derive_and_store_secrets__lt_genexpr_gt_ +static const byte fun_data_apps_cardano_seed_derive_and_store_secrets__lt_genexpr_gt_[23] = { + 0xb9,0x40,0x08, // prelude + 0x3d,0x4c, // names: , * + 0x80,0x7d, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x08, // FOR_ITER 8 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xd9, // BINARY_OP 2 __eq__ + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x36, // JUMP -10 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_seed_derive_and_store_secrets__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_seed_derive_and_store_secrets__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 61, + .line_info = fun_data_apps_cardano_seed_derive_and_store_secrets__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_apps_cardano_seed_derive_and_store_secrets__lt_genexpr_gt_ + 7, + .opcodes = fun_data_apps_cardano_seed_derive_and_store_secrets__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_seed_derive_and_store_secrets[] = { + &raw_code_apps_cardano_seed_derive_and_store_secrets__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_cardano_seed_derive_and_store_secrets = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_seed_derive_and_store_secrets, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 108, + #endif + .children = (void *)&children_apps_cardano_seed_derive_and_store_secrets, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_cardano_seed_derive_and_store_secrets + 4, + .line_info_top = fun_data_apps_cardano_seed_derive_and_store_secrets + 19, + .opcodes = fun_data_apps_cardano_seed_derive_and_store_secrets + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_seed__lt_module_gt_ +// frozen bytecode for file apps/cardano/seed.py, scope apps_cardano_seed__get_keychain_bip39 +static const byte fun_data_apps_cardano_seed__get_keychain_bip39[173] = { + 0xd1,0x40,0x2c, // prelude + 0x1f,0x3f, // names: _get_keychain_bip39, derivation_type + 0x80,0x8b,0x4b,0x4b,0x28,0x49,0x27,0x28,0x4c,0x2c,0x49,0x27,0x47,0x65,0x28,0x25,0x27,0x28,0x40,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x20, // LOAD_CONST_STRING 'CardanoDerivationType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x21, // IMPORT_NAME 'trezor.enums' + 0x1c,0x20, // IMPORT_FROM 'CardanoDerivationType' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x22, // LOAD_CONST_STRING 'derive_and_store_roots' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'apps.common.seed' + 0x1c,0x22, // IMPORT_FROM 'derive_and_store_roots' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'device' + 0x14,0x23, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x12,0x05, // LOAD_GLOBAL 'wire' + 0x14,0x24, // LOAD_METHOD 'NotInitialized' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x25, // LOAD_ATTR 'LEDGER' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x0b, // LOAD_GLOBAL 'get_seed' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0x12,0x12, // LOAD_GLOBAL 'Keychain' + 0x12,0x07, // LOAD_GLOBAL 'cardano' + 0x14,0x26, // LOAD_METHOD 'from_seed_ledger' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0x12,0x02, // LOAD_GLOBAL 'cache' + 0x14,0x27, // LOAD_METHOD 'get' + 0x12,0x02, // LOAD_GLOBAL 'cache' + 0x13,0x28, // LOAD_ATTR 'APP_COMMON_DERIVE_CARDANO' + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x12,0x05, // LOAD_GLOBAL 'wire' + 0x14,0x29, // LOAD_METHOD 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x2a, // LOAD_ATTR 'ICARUS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'cache' + 0x13,0x1d, // LOAD_ATTR 'APP_CARDANO_ICARUS_SECRET' + 0xc4, // STORE_FAST 4 + 0x42,0x45, // JUMP 5 + 0x12,0x02, // LOAD_GLOBAL 'cache' + 0x13,0x1e, // LOAD_ATTR 'APP_CARDANO_ICARUS_TREZOR_SECRET' + 0xc4, // STORE_FAST 4 + 0x12,0x02, // LOAD_GLOBAL 'cache' + 0x14,0x27, // LOAD_METHOD 'get' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb2, // LOAD_FAST 2 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'cache' + 0x14,0x27, // LOAD_METHOD 'get' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0x12,0x07, // LOAD_GLOBAL 'cardano' + 0x14,0x2b, // LOAD_METHOD 'from_secret' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0x12,0x12, // LOAD_GLOBAL 'Keychain' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_seed__get_keychain_bip39 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_seed__get_keychain_bip39, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 173, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_cardano_seed__get_keychain_bip39 + 5, + .line_info_top = fun_data_apps_cardano_seed__get_keychain_bip39 + 25, + .opcodes = fun_data_apps_cardano_seed__get_keychain_bip39 + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_seed__lt_module_gt_ +// frozen bytecode for file apps/cardano/seed.py, scope apps_cardano_seed__get_keychain +static const byte fun_data_apps_cardano_seed__get_keychain[49] = { + 0xa9,0x40,0x0e, // prelude + 0x2c,0x3f, // names: _get_keychain, derivation_type + 0x80,0xaa,0x28,0x69,0x28, // code info + 0x12,0x09, // LOAD_GLOBAL 'mnemonic' + 0x14,0x18, // LOAD_METHOD 'is_bip39' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x1f, // LOAD_GLOBAL '_get_keychain_bip39' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE + 0x12,0x0b, // LOAD_GLOBAL 'get_seed' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc1, // STORE_FAST 1 + 0x12,0x12, // LOAD_GLOBAL 'Keychain' + 0x12,0x07, // LOAD_GLOBAL 'cardano' + 0x14,0x2d, // LOAD_METHOD 'from_seed_slip23' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_seed__get_keychain = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_seed__get_keychain, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 44, + .line_info = fun_data_apps_cardano_seed__get_keychain + 5, + .line_info_top = fun_data_apps_cardano_seed__get_keychain + 10, + .opcodes = fun_data_apps_cardano_seed__get_keychain + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_seed__lt_module_gt_ +// frozen bytecode for file apps/cardano/seed.py, scope apps_cardano_seed_with_keychain +static const byte fun_data_apps_cardano_seed_with_keychain[16] = { + 0x11,0x0d, // prelude + 0x2e,0x48, // names: with_keychain, func + 0x80,0xb3,0x65,0x20,0x00, // code info + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_seed_with_keychain +// frozen bytecode for file apps/cardano/seed.py, scope apps_cardano_seed_with_keychain_wrapper +static const byte fun_data_apps_cardano_seed_with_keychain_wrapper[30] = { + 0xaa,0x40,0x0c, // prelude + 0x3e,0x4c,0x4d, // names: wrapper, *, msg + 0x80,0xb4,0x2b, // code info + 0x12,0x2c, // LOAD_GLOBAL '_get_keychain' + 0xb1, // LOAD_FAST 1 + 0x13,0x3f, // LOAD_ATTR 'derivation_type' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_seed_with_keychain_wrapper = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_seed_with_keychain_wrapper, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 62, + .line_info = fun_data_apps_cardano_seed_with_keychain_wrapper + 6, + .line_info_top = fun_data_apps_cardano_seed_with_keychain_wrapper + 9, + .opcodes = fun_data_apps_cardano_seed_with_keychain_wrapper + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_seed_with_keychain[] = { + &raw_code_apps_cardano_seed_with_keychain_wrapper, +}; + +static const mp_raw_code_t raw_code_apps_cardano_seed_with_keychain = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_seed_with_keychain, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = (void *)&children_apps_cardano_seed_with_keychain, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_cardano_seed_with_keychain + 4, + .line_info_top = fun_data_apps_cardano_seed_with_keychain + 8, + .opcodes = fun_data_apps_cardano_seed_with_keychain + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_seed__lt_module_gt_[] = { + &raw_code_apps_cardano_seed_Keychain, + &raw_code_apps_cardano_seed_is_byron_path, + &raw_code_apps_cardano_seed_is_shelley_path, + &raw_code_apps_cardano_seed_is_multisig_path, + &raw_code_apps_cardano_seed_is_minting_path, + &raw_code_apps_cardano_seed_derive_and_store_secrets, + &raw_code_apps_cardano_seed__get_keychain_bip39, + &raw_code_apps_cardano_seed__get_keychain, + &raw_code_apps_cardano_seed_with_keychain, +}; + +static const mp_raw_code_t raw_code_apps_cardano_seed__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_seed__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 167, + #endif + .children = (void *)&children_apps_cardano_seed__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 9, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_seed__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_seed__lt_module_gt_ + 28, + .opcodes = fun_data_apps_cardano_seed__lt_module_gt_ + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_seed[78] = { + MP_QSTR_apps_slash_cardano_slash_seed_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_cache, + MP_QSTR_device, + MP_QSTR_storage, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_cardano, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_mnemonic, + MP_QSTR_apps_dot_common, + MP_QSTR_get_seed, + MP_QSTR_apps_dot_common_dot_seed, + MP_QSTR_BYRON_ROOT, + MP_QSTR_MINTING_ROOT, + MP_QSTR_MULTISIG_ROOT, + MP_QSTR_SHELLEY_ROOT, + MP_QSTR_helpers_dot_paths, + MP_QSTR_Keychain, + MP_QSTR_is_byron_path, + MP_QSTR_is_shelley_path, + MP_QSTR_is_multisig_path, + MP_QSTR_is_minting_path, + MP_QSTR_derive_and_store_secrets, + MP_QSTR_is_bip39, + MP_QSTR_derive_cardano_icarus, + MP_QSTR_trezor_derivation, + MP_QSTR_get_secret, + MP_QSTR_set, + MP_QSTR_APP_CARDANO_ICARUS_SECRET, + MP_QSTR_APP_CARDANO_ICARUS_TREZOR_SECRET, + MP_QSTR__get_keychain_bip39, + MP_QSTR_CardanoDerivationType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_derive_and_store_roots, + MP_QSTR_is_initialized, + MP_QSTR_NotInitialized, + MP_QSTR_LEDGER, + MP_QSTR_from_seed_ledger, + MP_QSTR_get, + MP_QSTR_APP_COMMON_DERIVE_CARDANO, + MP_QSTR_ProcessError, + MP_QSTR_ICARUS, + MP_QSTR_from_secret, + MP_QSTR__get_keychain, + MP_QSTR_from_seed_slip23, + MP_QSTR_with_keychain, + MP_QSTR___init__, + MP_QSTR__derive_path, + MP_QSTR_byron_root, + MP_QSTR_shelley_root, + MP_QSTR_multisig_root, + MP_QSTR_minting_root, + MP_QSTR___del__, + MP_QSTR_clone, + MP_QSTR_derive_path, + MP_QSTR_verify_path, + MP_QSTR_is_in_keychain, + MP_QSTR_DataError, + MP_QSTR__get_path_root, + MP_QSTR_derive, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_wrapper, + MP_QSTR_derivation_type, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_staticmethod, + MP_QSTR_path, + MP_QSTR_len, + MP_QSTR_passphrase, + MP_QSTR_sum, + MP_QSTR_func, + MP_QSTR_self, + MP_QSTR_root, + MP_QSTR_node_path, + MP_QSTR__star_, + MP_QSTR_msg, +}; + +// constants +static const mp_obj_str_t const_obj_apps_cardano_seed_0 = {{&mp_type_str}, 4478, 25, (const byte*)"\x44\x65\x76\x69\x63\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64"}; +static const mp_obj_str_t const_obj_apps_cardano_seed_1 = {{&mp_type_str}, 39753, 50, (const byte*)"\x43\x61\x72\x64\x61\x6e\x6f\x20\x64\x65\x72\x69\x76\x61\x74\x69\x6f\x6e\x20\x69\x73\x20\x6e\x6f\x74\x20\x65\x6e\x61\x62\x6c\x65\x64\x20\x66\x6f\x72\x20\x74\x68\x69\x73\x20\x73\x65\x73\x73\x69\x6f\x6e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_seed[3] = { + MP_ROM_PTR(&const_obj_apps_cardano_seed_0), + MP_ROM_PTR(&const_obj_apps_cardano_seed_1), + MP_ROM_QSTR(MP_QSTR_Forbidden_space_key_space_path), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_seed = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_seed, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_seed, + }, + .rc = &raw_code_apps_cardano_seed__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_helpers___init__ +// - original source file: build/firmware/src/apps/cardano/helpers/__init__.mpy +// - frozen file name: apps/cardano/helpers/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/helpers/__init__.py, scope apps_cardano_helpers___init____lt_module_gt_ +static const byte fun_data_apps_cardano_helpers___init____lt_module_gt_[29] = { + 0x00,0x0c, // prelude + 0x01, // names: + 0x24,0x23,0x23,0x23,0x23, // code info + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x02, // STORE_NAME 'LOVELACE_MAX_SUPPLY' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x16,0x03, // STORE_NAME 'INPUT_PREV_HASH_SIZE' + 0x9c, // LOAD_CONST_SMALL_INT 28 + 0x16,0x04, // STORE_NAME 'ADDRESS_KEY_HASH_SIZE' + 0x9c, // LOAD_CONST_SMALL_INT 28 + 0x16,0x05, // STORE_NAME 'SCRIPT_HASH_SIZE' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x16,0x06, // STORE_NAME 'OUTPUT_DATUM_HASH_SIZE' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x16,0x07, // STORE_NAME 'SCRIPT_DATA_HASH_SIZE' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_helpers___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_helpers___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_helpers___init____lt_module_gt_ + 8, + .opcodes = fun_data_apps_cardano_helpers___init____lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_helpers___init__[8] = { + MP_QSTR_apps_slash_cardano_slash_helpers_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_LOVELACE_MAX_SUPPLY, + MP_QSTR_INPUT_PREV_HASH_SIZE, + MP_QSTR_ADDRESS_KEY_HASH_SIZE, + MP_QSTR_SCRIPT_HASH_SIZE, + MP_QSTR_OUTPUT_DATUM_HASH_SIZE, + MP_QSTR_SCRIPT_DATA_HASH_SIZE, +}; + +// constants +static const mp_obj_int_t const_obj_apps_cardano_helpers___init___0 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=4, .len=4, .dig=(uint16_t*)(const uint16_t[]){0x8000,0xf6e4,0xdf42,0x9f}}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_helpers___init__[1] = { + MP_ROM_PTR(&const_obj_apps_cardano_helpers___init___0), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_helpers___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_helpers___init__, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_helpers___init__, + }, + .rc = &raw_code_apps_cardano_helpers___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_helpers_account_path_check +// - original source file: build/firmware/src/apps/cardano/helpers/account_path_check.mpy +// - frozen file name: apps/cardano/helpers/account_path_check.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/helpers/account_path_check.py, scope apps_cardano_helpers_account_path_check__lt_module_gt_ +static const byte fun_data_apps_cardano_helpers_account_path_check__lt_module_gt_[43] = { + 0x10,0x0c, // prelude + 0x01, // names: + 0x40,0x4c,0x4c,0x80,0x0a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.wire' + 0x1c,0x02, // IMPORT_FROM 'ProcessError' + 0x16,0x02, // STORE_NAME 'ProcessError' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x04, // LOAD_CONST_STRING 'seed' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME '' + 0x1c,0x04, // IMPORT_FROM 'seed' + 0x16,0x04, // STORE_NAME 'seed' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x06, // LOAD_CONST_STRING 'AccountPathChecker' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x06, // STORE_NAME 'AccountPathChecker' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_helpers_account_path_check__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/account_path_check.py, scope apps_cardano_helpers_account_path_check_AccountPathChecker +static const byte fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker[69] = { + 0x00,0x26, // prelude + 0x06, // names: AccountPathChecker + 0x88,0x11,0x60,0x60,0x46,0x64,0x84,0x10,0x84,0x1f,0x84,0x09,0x64,0x60,0x64,0x60,0x64,0x60, // code info + 0x11,0x20, // LOAD_NAME '__name__' + 0x16,0x21, // STORE_NAME '__module__' + 0x10,0x06, // LOAD_CONST_STRING 'AccountPathChecker' + 0x16,0x22, // STORE_NAME '__qualname__' + 0x11,0x23, // LOAD_NAME 'object' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x08, // STORE_NAME 'UNDEFINED' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x07, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0a, // STORE_NAME '_add' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0f, // STORE_NAME '_is_byron_and_shelley_equivalent' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x17, // STORE_NAME 'add_output' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x1a, // STORE_NAME 'add_certificate' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x1c, // STORE_NAME 'add_pool_owner' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x1e, // STORE_NAME 'add_withdrawal' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x1f, // STORE_NAME 'add_witness_request' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_helpers_account_path_check_AccountPathChecker +// frozen bytecode for file apps/cardano/helpers/account_path_check.py, scope apps_cardano_helpers_account_path_check_AccountPathChecker___init__ +static const byte fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker___init__[14] = { + 0x11,0x08, // prelude + 0x07,0x24, // names: __init__, self + 0x80,0x1a, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'UNDEFINED' + 0xb0, // LOAD_FAST 0 + 0x18,0x09, // STORE_ATTR 'account_path' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_account_path_check_AccountPathChecker___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker___init__ + 4, + .line_info_top = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker___init__ + 6, + .opcodes = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker___init__ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_account_path_check_AccountPathChecker +// frozen bytecode for file apps/cardano/helpers/account_path_check.py, scope apps_cardano_helpers_account_path_check_AccountPathChecker__add +static const byte fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker__add[88] = { + 0x3b,0x1c, // prelude + 0x0a,0x24,0x1b,0x25, // names: _add, self, path, error + 0x80,0x1d,0x6b,0x32,0x42,0x25,0x29,0x46,0x27,0x48, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0b, // LOAD_CONST_STRING 'to_account_path' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'utils' + 0x1c,0x0b, // IMPORT_FROM 'to_account_path' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'seed' + 0x14,0x0d, // LOAD_METHOD 'is_multisig_path' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x12,0x04, // LOAD_GLOBAL 'seed' + 0x14,0x0e, // LOAD_METHOD 'is_minting_path' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'account_path' + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'UNDEFINED' + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x09, // STORE_ATTR 'account_path' + 0x42,0x53, // JUMP 19 + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'account_path' + 0xb4, // LOAD_FAST 4 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb0, // LOAD_FAST 0 + 0x14,0x0f, // LOAD_METHOD '_is_byron_and_shelley_equivalent' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0xb2, // LOAD_FAST 2 + 0x65, // RAISE_OBJ + 0x42,0x40, // JUMP 0 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_account_path_check_AccountPathChecker__add = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker__add, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 88, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker__add + 6, + .line_info_top = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker__add + 16, + .opcodes = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker__add + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_account_path_check_AccountPathChecker +// frozen bytecode for file apps/cardano/helpers/account_path_check.py, scope apps_cardano_helpers_account_path_check_AccountPathChecker__is_byron_and_shelley_equivalent +static const byte fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker__is_byron_and_shelley_equivalent[128] = { + 0x52,0x28, // prelude + 0x0f,0x24,0x09, // names: _is_byron_and_shelley_equivalent, self, account_path + 0x80,0x2d,0x80,0x07,0x2b,0x50,0x44,0x20,0x49,0x48,0x49,0x48,0x20,0x46,0x29,0x29,0x29, // code info + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x10,0x10, // LOAD_CONST_STRING 'HARDENED' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'common.paths' + 0x1c,0x10, // IMPORT_FROM 'HARDENED' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x12, // LOAD_CONST_STRING 'ACCOUNT_PATH_INDEX' + 0x10,0x13, // LOAD_CONST_STRING 'ACCOUNT_PATH_LENGTH' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x14, // IMPORT_NAME 'paths' + 0x1c,0x12, // IMPORT_FROM 'ACCOUNT_PATH_INDEX' + 0xc3, // STORE_FAST 3 + 0x1c,0x13, // IMPORT_FROM 'ACCOUNT_PATH_LENGTH' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'account_path' + 0xc5, // STORE_FAST 5 + 0x12,0x04, // LOAD_GLOBAL 'seed' + 0x14,0x15, // LOAD_METHOD 'is_byron_path' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x45,0x07, // JUMP_IF_TRUE_OR_POP 7 + 0x12,0x04, // LOAD_GLOBAL 'seed' + 0x14,0x16, // LOAD_METHOD 'is_shelley_path' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0x12,0x04, // LOAD_GLOBAL 'seed' + 0x14,0x15, // LOAD_METHOD 'is_byron_path' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x45,0x07, // JUMP_IF_TRUE_OR_POP 7 + 0x12,0x04, // LOAD_GLOBAL 'seed' + 0x14,0x16, // LOAD_METHOD 'is_shelley_path' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc7, // STORE_FAST 7 + 0xb6, // LOAD_FAST 6 + 0x46,0x25, // JUMP_IF_FALSE_OR_POP 37 + 0xb7, // LOAD_FAST 7 + 0x46,0x22, // JUMP_IF_FALSE_OR_POP 34 + 0x12,0x26, // LOAD_GLOBAL 'len' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb4, // LOAD_FAST 4 + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x19, // JUMP_IF_FALSE_OR_POP 25 + 0x12,0x26, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb4, // LOAD_FAST 4 + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x10, // JUMP_IF_FALSE_OR_POP 16 + 0xb5, // LOAD_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb2, // LOAD_FAST 2 + 0xed, // BINARY_OP 22 __or__ + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x07, // JUMP_IF_FALSE_OR_POP 7 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb2, // LOAD_FAST 2 + 0xed, // BINARY_OP 22 __or__ + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_account_path_check_AccountPathChecker__is_byron_and_shelley_equivalent = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker__is_byron_and_shelley_equivalent, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 128, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker__is_byron_and_shelley_equivalent + 5, + .line_info_top = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker__is_byron_and_shelley_equivalent + 22, + .opcodes = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker__is_byron_and_shelley_equivalent + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_account_path_check_AccountPathChecker +// frozen bytecode for file apps/cardano/helpers/account_path_check.py, scope apps_cardano_helpers_account_path_check_AccountPathChecker_add_output +static const byte fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_output[46] = { + 0x32,0x12, // prelude + 0x17,0x24,0x27, // names: add_output, self, output + 0x80,0x4c,0x25,0x42,0x27,0x42, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'address_parameters' + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'address_parameters' + 0x13,0x19, // LOAD_ATTR 'address_n' + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD '_add' + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'address_parameters' + 0x13,0x19, // LOAD_ATTR 'address_n' + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_account_path_check_AccountPathChecker_add_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_output + 5, + .line_info_top = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_output + 11, + .opcodes = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_output + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_account_path_check_AccountPathChecker +// frozen bytecode for file apps/cardano/helpers/account_path_check.py, scope apps_cardano_helpers_account_path_check_AccountPathChecker_add_certificate +static const byte fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_certificate[33] = { + 0x32,0x0e, // prelude + 0x1a,0x24,0x28, // names: add_certificate, self, certificate + 0x80,0x55,0x25,0x42, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'path' + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD '_add' + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'path' + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_account_path_check_AccountPathChecker_add_certificate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_certificate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 26, + .line_info = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_certificate + 5, + .line_info_top = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_certificate + 9, + .opcodes = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_certificate + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_account_path_check_AccountPathChecker +// frozen bytecode for file apps/cardano/helpers/account_path_check.py, scope apps_cardano_helpers_account_path_check_AccountPathChecker_add_pool_owner +static const byte fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_pool_owner[33] = { + 0x32,0x0e, // prelude + 0x1c,0x24,0x29, // names: add_pool_owner, self, pool_owner + 0x80,0x5b,0x25,0x42, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x1d, // LOAD_ATTR 'staking_key_path' + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD '_add' + 0xb1, // LOAD_FAST 1 + 0x13,0x1d, // LOAD_ATTR 'staking_key_path' + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_account_path_check_AccountPathChecker_add_pool_owner = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_pool_owner, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_pool_owner + 5, + .line_info_top = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_pool_owner + 9, + .opcodes = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_pool_owner + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_account_path_check_AccountPathChecker +// frozen bytecode for file apps/cardano/helpers/account_path_check.py, scope apps_cardano_helpers_account_path_check_AccountPathChecker_add_withdrawal +static const byte fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_withdrawal[33] = { + 0x32,0x0e, // prelude + 0x1e,0x24,0x2a, // names: add_withdrawal, self, withdrawal + 0x80,0x61,0x25,0x42, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'path' + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD '_add' + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'path' + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_account_path_check_AccountPathChecker_add_withdrawal = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_withdrawal, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_withdrawal + 5, + .line_info_top = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_withdrawal + 9, + .opcodes = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_withdrawal + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_account_path_check_AccountPathChecker +// frozen bytecode for file apps/cardano/helpers/account_path_check.py, scope apps_cardano_helpers_account_path_check_AccountPathChecker_add_witness_request +static const byte fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_witness_request[24] = { + 0x32,0x0a, // prelude + 0x1f,0x24,0x2b, // names: add_witness_request, self, witness_request + 0x80,0x67, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD '_add' + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'path' + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_account_path_check_AccountPathChecker_add_witness_request = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_witness_request, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_witness_request + 5, + .line_info_top = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_witness_request + 7, + .opcodes = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker_add_witness_request + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_helpers_account_path_check_AccountPathChecker[] = { + &raw_code_apps_cardano_helpers_account_path_check_AccountPathChecker___init__, + &raw_code_apps_cardano_helpers_account_path_check_AccountPathChecker__add, + &raw_code_apps_cardano_helpers_account_path_check_AccountPathChecker__is_byron_and_shelley_equivalent, + &raw_code_apps_cardano_helpers_account_path_check_AccountPathChecker_add_output, + &raw_code_apps_cardano_helpers_account_path_check_AccountPathChecker_add_certificate, + &raw_code_apps_cardano_helpers_account_path_check_AccountPathChecker_add_pool_owner, + &raw_code_apps_cardano_helpers_account_path_check_AccountPathChecker_add_withdrawal, + &raw_code_apps_cardano_helpers_account_path_check_AccountPathChecker_add_witness_request, +}; + +static const mp_raw_code_t raw_code_apps_cardano_helpers_account_path_check_AccountPathChecker = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 69, + #endif + .children = (void *)&children_apps_cardano_helpers_account_path_check_AccountPathChecker, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 8, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker + 3, + .line_info_top = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker + 21, + .opcodes = fun_data_apps_cardano_helpers_account_path_check_AccountPathChecker + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_helpers_account_path_check__lt_module_gt_[] = { + &raw_code_apps_cardano_helpers_account_path_check_AccountPathChecker, +}; + +static const mp_raw_code_t raw_code_apps_cardano_helpers_account_path_check__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_helpers_account_path_check__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = (void *)&children_apps_cardano_helpers_account_path_check__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_helpers_account_path_check__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_helpers_account_path_check__lt_module_gt_ + 8, + .opcodes = fun_data_apps_cardano_helpers_account_path_check__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_helpers_account_path_check[44] = { + MP_QSTR_apps_slash_cardano_slash_helpers_slash_account_path_check_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_seed, + MP_QSTR_, + MP_QSTR_AccountPathChecker, + MP_QSTR___init__, + MP_QSTR_UNDEFINED, + MP_QSTR_account_path, + MP_QSTR__add, + MP_QSTR_to_account_path, + MP_QSTR_utils, + MP_QSTR_is_multisig_path, + MP_QSTR_is_minting_path, + MP_QSTR__is_byron_and_shelley_equivalent, + MP_QSTR_HARDENED, + MP_QSTR_common_dot_paths, + MP_QSTR_ACCOUNT_PATH_INDEX, + MP_QSTR_ACCOUNT_PATH_LENGTH, + MP_QSTR_paths, + MP_QSTR_is_byron_path, + MP_QSTR_is_shelley_path, + MP_QSTR_add_output, + MP_QSTR_address_parameters, + MP_QSTR_address_n, + MP_QSTR_add_certificate, + MP_QSTR_path, + MP_QSTR_add_pool_owner, + MP_QSTR_staking_key_path, + MP_QSTR_add_withdrawal, + MP_QSTR_add_witness_request, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_object, + MP_QSTR_self, + MP_QSTR_error, + MP_QSTR_len, + MP_QSTR_output, + MP_QSTR_certificate, + MP_QSTR_pool_owner, + MP_QSTR_withdrawal, + MP_QSTR_witness_request, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_helpers_account_path_check[4] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_output), + MP_ROM_QSTR(MP_QSTR_Invalid_space_certificate), + MP_ROM_QSTR(MP_QSTR_Invalid_space_withdrawal), + MP_ROM_QSTR(MP_QSTR_Invalid_space_witness_space_request), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_helpers_account_path_check = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_helpers_account_path_check, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_helpers_account_path_check, + }, + .rc = &raw_code_apps_cardano_helpers_account_path_check__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_helpers_bech32 +// - original source file: build/firmware/src/apps/cardano/helpers/bech32.mpy +// - frozen file name: apps/cardano/helpers/bech32.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/helpers/bech32.py, scope apps_cardano_helpers_bech32__lt_module_gt_ +static const byte fun_data_apps_cardano_helpers_bech32__lt_module_gt_[99] = { + 0x08,0x26, // prelude + 0x01, // names: + 0x4c,0x64,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x64,0x64,0x40,0x64,0x40, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'bech32' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x02, // IMPORT_FROM 'bech32' + 0x16,0x02, // STORE_NAME 'bech32' + 0x59, // POP_TOP + 0x10,0x04, // LOAD_CONST_STRING '1' + 0x16,0x17, // STORE_NAME 'HRP_SEPARATOR' + 0x10,0x05, // LOAD_CONST_STRING 'addr' + 0x16,0x18, // STORE_NAME 'HRP_ADDRESS' + 0x10,0x06, // LOAD_CONST_STRING 'addr_test' + 0x16,0x19, // STORE_NAME 'HRP_TESTNET_ADDRESS' + 0x10,0x07, // LOAD_CONST_STRING 'stake' + 0x16,0x1a, // STORE_NAME 'HRP_REWARD_ADDRESS' + 0x10,0x08, // LOAD_CONST_STRING 'stake_test' + 0x16,0x1b, // STORE_NAME 'HRP_TESTNET_REWARD_ADDRESS' + 0x10,0x09, // LOAD_CONST_STRING 'cvote_vk' + 0x16,0x1c, // STORE_NAME 'HRP_CVOTE_PUBLIC_KEY' + 0x10,0x0a, // LOAD_CONST_STRING 'script' + 0x16,0x1d, // STORE_NAME 'HRP_SCRIPT_HASH' + 0x10,0x0b, // LOAD_CONST_STRING 'addr_vkh' + 0x16,0x1e, // STORE_NAME 'HRP_KEY_HASH' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x1f, // STORE_NAME 'HRP_SHARED_KEY_HASH' + 0x10,0x0c, // LOAD_CONST_STRING 'stake_vkh' + 0x16,0x20, // STORE_NAME 'HRP_STAKE_KEY_HASH' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x16,0x21, // STORE_NAME 'HRP_REQUIRED_SIGNER_KEY_HASH' + 0x10,0x0d, // LOAD_CONST_STRING 'datum' + 0x16,0x22, // STORE_NAME 'HRP_OUTPUT_DATUM_HASH' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x16,0x23, // STORE_NAME 'HRP_SCRIPT_DATA_HASH' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0e, // STORE_NAME 'encode' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x13, // STORE_NAME 'decode_unsafe' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x15, // STORE_NAME '_decode' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_helpers_bech32__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/bech32.py, scope apps_cardano_helpers_bech32_encode +static const byte fun_data_apps_cardano_helpers_bech32_encode[33] = { + 0x3a,0x0c, // prelude + 0x0e,0x24,0x25, // names: encode, hrp, data + 0x80,0x14,0x2a, // code info + 0x12,0x02, // LOAD_GLOBAL 'bech32' + 0x14,0x0f, // LOAD_METHOD 'convertbits' + 0xb1, // LOAD_FAST 1 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x36,0x03, // CALL_METHOD 3 + 0xc2, // STORE_FAST 2 + 0x12,0x02, // LOAD_GLOBAL 'bech32' + 0x14,0x10, // LOAD_METHOD 'bech32_encode' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x12,0x02, // LOAD_GLOBAL 'bech32' + 0x13,0x11, // LOAD_ATTR 'Encoding' + 0x13,0x12, // LOAD_ATTR 'BECH32' + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_bech32_encode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_bech32_encode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_cardano_helpers_bech32_encode + 5, + .line_info_top = fun_data_apps_cardano_helpers_bech32_encode + 8, + .opcodes = fun_data_apps_cardano_helpers_bech32_encode + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_bech32__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/bech32.py, scope apps_cardano_helpers_bech32_decode_unsafe +static const byte fun_data_apps_cardano_helpers_bech32_decode_unsafe[25] = { + 0x29,0x0a, // prelude + 0x13,0x26, // names: decode_unsafe, bech + 0x80,0x19,0x2b, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x14, // LOAD_METHOD 'rsplit' + 0x12,0x17, // LOAD_GLOBAL 'HRP_SEPARATOR' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x36,0x02, // CALL_METHOD 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xc1, // STORE_FAST 1 + 0x12,0x15, // LOAD_GLOBAL '_decode' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_bech32_decode_unsafe = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_bech32_decode_unsafe, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_cardano_helpers_bech32_decode_unsafe + 4, + .line_info_top = fun_data_apps_cardano_helpers_bech32_decode_unsafe + 7, + .opcodes = fun_data_apps_cardano_helpers_bech32_decode_unsafe + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_bech32__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/bech32.py, scope apps_cardano_helpers_bech32__decode +static const byte fun_data_apps_cardano_helpers_bech32__decode[66] = { + 0x5a,0x16, // prelude + 0x15,0x24,0x26, // names: _decode, hrp, bech + 0x80,0x1e,0x2f,0x25,0x23,0x2a,0x43,0x2b, // code info + 0x12,0x02, // LOAD_GLOBAL 'bech32' + 0x14,0x16, // LOAD_METHOD 'bech32_decode' + 0xb1, // LOAD_FAST 1 + 0x22,0x81,0x02, // LOAD_CONST_SMALL_INT 130 + 0x36,0x02, // CALL_METHOD 2 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc2, // STORE_FAST 2 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x27, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x12,0x02, // LOAD_GLOBAL 'bech32' + 0x13,0x11, // LOAD_ATTR 'Encoding' + 0x13,0x12, // LOAD_ATTR 'BECH32' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x27, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x02, // LOAD_GLOBAL 'bech32' + 0x14,0x0f, // LOAD_METHOD 'convertbits' + 0xb3, // LOAD_FAST 3 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x50, // LOAD_CONST_FALSE + 0x36,0x04, // CALL_METHOD 4 + 0xc5, // STORE_FAST 5 + 0x12,0x28, // LOAD_GLOBAL 'bytes' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_bech32__decode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_bech32__decode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 66, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_cardano_helpers_bech32__decode + 5, + .line_info_top = fun_data_apps_cardano_helpers_bech32__decode + 13, + .opcodes = fun_data_apps_cardano_helpers_bech32__decode + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_helpers_bech32__lt_module_gt_[] = { + &raw_code_apps_cardano_helpers_bech32_encode, + &raw_code_apps_cardano_helpers_bech32_decode_unsafe, + &raw_code_apps_cardano_helpers_bech32__decode, +}; + +static const mp_raw_code_t raw_code_apps_cardano_helpers_bech32__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_helpers_bech32__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 99, + #endif + .children = (void *)&children_apps_cardano_helpers_bech32__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_helpers_bech32__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_helpers_bech32__lt_module_gt_ + 21, + .opcodes = fun_data_apps_cardano_helpers_bech32__lt_module_gt_ + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_helpers_bech32[41] = { + MP_QSTR_apps_slash_cardano_slash_helpers_slash_bech32_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_bech32, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_1, + MP_QSTR_addr, + MP_QSTR_addr_test, + MP_QSTR_stake, + MP_QSTR_stake_test, + MP_QSTR_cvote_vk, + MP_QSTR_script, + MP_QSTR_addr_vkh, + MP_QSTR_stake_vkh, + MP_QSTR_datum, + MP_QSTR_encode, + MP_QSTR_convertbits, + MP_QSTR_bech32_encode, + MP_QSTR_Encoding, + MP_QSTR_BECH32, + MP_QSTR_decode_unsafe, + MP_QSTR_rsplit, + MP_QSTR__decode, + MP_QSTR_bech32_decode, + MP_QSTR_HRP_SEPARATOR, + MP_QSTR_HRP_ADDRESS, + MP_QSTR_HRP_TESTNET_ADDRESS, + MP_QSTR_HRP_REWARD_ADDRESS, + MP_QSTR_HRP_TESTNET_REWARD_ADDRESS, + MP_QSTR_HRP_CVOTE_PUBLIC_KEY, + MP_QSTR_HRP_SCRIPT_HASH, + MP_QSTR_HRP_KEY_HASH, + MP_QSTR_HRP_SHARED_KEY_HASH, + MP_QSTR_HRP_STAKE_KEY_HASH, + MP_QSTR_HRP_REQUIRED_SIGNER_KEY_HASH, + MP_QSTR_HRP_OUTPUT_DATUM_HASH, + MP_QSTR_HRP_SCRIPT_DATA_HASH, + MP_QSTR_hrp, + MP_QSTR_data, + MP_QSTR_bech, + MP_QSTR_ValueError, + MP_QSTR_bytes, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_helpers_bech32[3] = { + MP_ROM_QSTR(MP_QSTR_addr_shared_vkh), + MP_ROM_QSTR(MP_QSTR_req_signer_vkh), + MP_ROM_QSTR(MP_QSTR_script_data), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_helpers_bech32 = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_helpers_bech32, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_helpers_bech32, + }, + .rc = &raw_code_apps_cardano_helpers_bech32__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_helpers_credential +// - original source file: build/firmware/src/apps/cardano/helpers/credential.mpy +// - frozen file name: apps/cardano/helpers/credential.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/helpers/credential.py, scope apps_cardano_helpers_credential__lt_module_gt_ +static const byte fun_data_apps_cardano_helpers_credential__lt_module_gt_[65] = { + 0x10,0x18, // prelude + 0x01, // names: + 0x40,0x4c,0x4c,0x60,0x20,0x24,0x64,0x89,0xbc,0x84,0x0d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'CardanoAddressType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x02, // IMPORT_FROM 'CardanoAddressType' + 0x16,0x02, // STORE_NAME 'CardanoAddressType' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING 'SCHEMA_PAYMENT' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'paths' + 0x1c,0x04, // IMPORT_FROM 'SCHEMA_PAYMENT' + 0x16,0x04, // STORE_NAME 'SCHEMA_PAYMENT' + 0x59, // POP_TOP + 0x10,0x06, // LOAD_CONST_STRING 'payment' + 0x16,0x40, // STORE_NAME 'CREDENTIAL_TYPE_PAYMENT' + 0x10,0x07, // LOAD_CONST_STRING 'stake' + 0x16,0x41, // STORE_NAME 'CREDENTIAL_TYPE_STAKE' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x08, // LOAD_CONST_STRING 'Credential' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x08, // STORE_NAME 'Credential' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x09, // STORE_NAME 'should_show_credentials' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0f, // STORE_NAME '_do_base_address_credentials_match' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_helpers_credential__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/credential.py, scope apps_cardano_helpers_credential_Credential +static const byte fun_data_apps_cardano_helpers_credential_Credential[84] = { + 0x08,0x32, // prelude + 0x08, // names: Credential + 0x88,0x0f,0x80,0x07,0x20,0x20,0x20,0x20,0x20,0x40,0x23,0x23,0x23,0x23,0x43,0x84,0x10,0x88,0x2d,0x88,0x40,0x64,0x84,0x0c, // code info + 0x11,0x42, // LOAD_NAME '__name__' + 0x16,0x43, // STORE_NAME '__module__' + 0x10,0x08, // LOAD_CONST_STRING 'Credential' + 0x16,0x44, // STORE_NAME '__qualname__' + 0x50, // LOAD_CONST_FALSE + 0x16,0x27, // STORE_NAME 'is_reward' + 0x50, // LOAD_CONST_FALSE + 0x16,0x2e, // STORE_NAME 'is_no_staking' + 0x50, // LOAD_CONST_FALSE + 0x16,0x2d, // STORE_NAME 'is_mismatch' + 0x50, // LOAD_CONST_FALSE + 0x16,0x1f, // STORE_NAME 'is_unusual_path' + 0x50, // LOAD_CONST_FALSE + 0x16,0x24, // STORE_NAME 'is_other_warning' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x13, // STORE_NAME '__init__' + 0x11,0x45, // LOAD_NAME 'classmethod' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x19, // STORE_NAME 'payment_credential' + 0x11,0x45, // LOAD_NAME 'classmethod' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x28, // STORE_NAME 'stake_credential' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x2f, // STORE_NAME 'is_set' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x30, // STORE_NAME 'get_title' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x34, // STORE_NAME 'format' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_helpers_credential_Credential +// frozen bytecode for file apps/cardano/helpers/credential.py, scope apps_cardano_helpers_credential_Credential___init__ +static const byte fun_data_apps_cardano_helpers_credential_Credential___init__[44] = { + 0xc3,0x04,0x1e, // prelude + 0x13,0x47,0x14,0x0a,0x15,0x16,0x17,0x18, // names: __init__, self, type_name, address_type, path, key_hash, script_hash, pointer + 0x80,0x2c,0x24,0x24,0x24,0x24,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x14, // STORE_ATTR 'type_name' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x0a, // STORE_ATTR 'address_type' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x15, // STORE_ATTR 'path' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x16, // STORE_ATTR 'key_hash' + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x18,0x17, // STORE_ATTR 'script_hash' + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x18,0x18, // STORE_ATTR 'pointer' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_credential_Credential___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 7, + .fun_data = fun_data_apps_cardano_helpers_credential_Credential___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_cardano_helpers_credential_Credential___init__ + 11, + .line_info_top = fun_data_apps_cardano_helpers_credential_Credential___init__ + 18, + .opcodes = fun_data_apps_cardano_helpers_credential_Credential___init__ + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_credential_Credential +// frozen bytecode for file apps/cardano/helpers/credential.py, scope apps_cardano_helpers_credential_Credential_payment_credential +static const byte fun_data_apps_cardano_helpers_credential_Credential_payment_credential[153] = { + 0x8a,0x10,0x3c, // prelude + 0x19,0x48,0x49, // names: payment_credential, cls, address_params + 0x80,0x37,0x24,0x43,0x6a,0x48,0x6a,0x20,0x21,0x23,0x23,0x23,0x23,0x48,0x2b,0x46,0x21,0x23,0x23,0x23,0x48,0x46,0x21,0x23,0x48,0x66,0x43, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'address_type' + 0xc2, // STORE_FAST 2 + 0x12,0x02, // LOAD_GLOBAL 'CardanoAddressType' + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x10,0x14, // LOAD_CONST_STRING 'type_name' + 0x12,0x40, // LOAD_GLOBAL 'CREDENTIAL_TYPE_PAYMENT' + 0x10,0x0a, // LOAD_CONST_STRING 'address_type' + 0xb2, // LOAD_FAST 2 + 0x10,0x15, // LOAD_CONST_STRING 'path' + 0xb1, // LOAD_FAST 1 + 0x13,0x0d, // LOAD_ATTR 'address_n' + 0x10,0x16, // LOAD_CONST_STRING 'key_hash' + 0x51, // LOAD_CONST_NONE + 0x10,0x17, // LOAD_CONST_STRING 'script_hash' + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'script_payment_hash' + 0x10,0x18, // LOAD_CONST_STRING 'pointer' + 0x51, // LOAD_CONST_NONE + 0x34,0x8c,0x00, // CALL_FUNCTION 1536 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x13,0x0b, // LOAD_ATTR 'BASE' + 0xb3, // LOAD_FAST 3 + 0x13,0x1b, // LOAD_ATTR 'BASE_KEY_SCRIPT' + 0xb3, // LOAD_FAST 3 + 0x13,0x1c, // LOAD_ATTR 'POINTER' + 0xb3, // LOAD_FAST 3 + 0x13,0x1d, // LOAD_ATTR 'ENTERPRISE' + 0xb3, // LOAD_FAST 3 + 0x13,0x1e, // LOAD_ATTR 'BYRON' + 0x2a,0x05, // BUILD_TUPLE 5 + 0xdd, // BINARY_OP 6 + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x12,0x04, // LOAD_GLOBAL 'SCHEMA_PAYMENT' + 0x14,0x0c, // LOAD_METHOD 'match' + 0xb1, // LOAD_FAST 1 + 0x13,0x0d, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0x52, // LOAD_CONST_TRUE + 0xb4, // LOAD_FAST 4 + 0x18,0x1f, // STORE_ATTR 'is_unusual_path' + 0x42,0x6d, // JUMP 45 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x13,0x20, // LOAD_ATTR 'BASE_SCRIPT_KEY' + 0xb3, // LOAD_FAST 3 + 0x13,0x21, // LOAD_ATTR 'BASE_SCRIPT_SCRIPT' + 0xb3, // LOAD_FAST 3 + 0x13,0x22, // LOAD_ATTR 'POINTER_SCRIPT' + 0xb3, // LOAD_FAST 3 + 0x13,0x23, // LOAD_ATTR 'ENTERPRISE_SCRIPT' + 0x2a,0x04, // BUILD_TUPLE 4 + 0xdd, // BINARY_OP 6 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x52, // LOAD_CONST_TRUE + 0xb4, // LOAD_FAST 4 + 0x18,0x24, // STORE_ATTR 'is_other_warning' + 0x42,0x55, // JUMP 21 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x13,0x25, // LOAD_ATTR 'REWARD' + 0xb3, // LOAD_FAST 3 + 0x13,0x26, // LOAD_ATTR 'REWARD_SCRIPT' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x52, // LOAD_CONST_TRUE + 0xb4, // LOAD_FAST 4 + 0x18,0x27, // STORE_ATTR 'is_reward' + 0x42,0x43, // JUMP 3 + 0x12,0x4a, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_credential_Credential_payment_credential = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_credential_Credential_payment_credential, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 153, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_apps_cardano_helpers_credential_Credential_payment_credential + 6, + .line_info_top = fun_data_apps_cardano_helpers_credential_Credential_payment_credential + 33, + .opcodes = fun_data_apps_cardano_helpers_credential_Credential_payment_credential + 33, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_credential_Credential +// frozen bytecode for file apps/cardano/helpers/credential.py, scope apps_cardano_helpers_credential_Credential_stake_credential +static const byte fun_data_apps_cardano_helpers_credential_Credential_stake_credential[257] = { + 0x9a,0x10,0x56, // prelude + 0x28,0x48,0x49, // names: stake_credential, cls, address_params + 0x80,0x64,0x4b,0x24,0x24,0x43,0x6d,0x20,0x25,0x25,0x67,0x27,0x25,0x46,0x28,0x24,0x22,0x68,0x47,0x27,0x2b,0x47,0x21,0x23,0x48,0x47,0x27,0x28,0x46,0x21,0x23,0x23,0x48,0x46,0x21,0x23,0x23,0x48,0x66,0x43, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x29, // LOAD_CONST_STRING 'SCHEMA_STAKING' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'paths' + 0x1c,0x29, // IMPORT_FROM 'SCHEMA_STAKING' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x0e, // LOAD_ATTR 'address_n_staking' + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'address_type' + 0xc4, // STORE_FAST 4 + 0x12,0x02, // LOAD_GLOBAL 'CardanoAddressType' + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x10,0x14, // LOAD_CONST_STRING 'type_name' + 0x12,0x41, // LOAD_GLOBAL 'CREDENTIAL_TYPE_STAKE' + 0x10,0x0a, // LOAD_CONST_STRING 'address_type' + 0xb4, // LOAD_FAST 4 + 0x10,0x15, // LOAD_CONST_STRING 'path' + 0xb3, // LOAD_FAST 3 + 0x10,0x16, // LOAD_CONST_STRING 'key_hash' + 0xb1, // LOAD_FAST 1 + 0x13,0x2a, // LOAD_ATTR 'staking_key_hash' + 0x10,0x17, // LOAD_CONST_STRING 'script_hash' + 0xb1, // LOAD_FAST 1 + 0x13,0x2b, // LOAD_ATTR 'script_staking_hash' + 0x10,0x18, // LOAD_CONST_STRING 'pointer' + 0xb1, // LOAD_FAST 1 + 0x13,0x2c, // LOAD_ATTR 'certificate_pointer' + 0x34,0x8c,0x00, // CALL_FUNCTION 1536 + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x13,0x0b, // LOAD_ATTR 'BASE' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x68, // POP_JUMP_IF_FALSE 40 + 0xb1, // LOAD_FAST 1 + 0x13,0x2a, // LOAD_ATTR 'staking_key_hash' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x52, // LOAD_CONST_TRUE + 0xb6, // LOAD_FAST 6 + 0x18,0x24, // STORE_ATTR 'is_other_warning' + 0x42,0x5a, // JUMP 26 + 0xb2, // LOAD_FAST 2 + 0x14,0x0c, // LOAD_METHOD 'match' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0x52, // LOAD_CONST_TRUE + 0xb6, // LOAD_FAST 6 + 0x18,0x1f, // STORE_ATTR 'is_unusual_path' + 0x12,0x0f, // LOAD_GLOBAL '_do_base_address_credentials_match' + 0xb1, // LOAD_FAST 1 + 0x13,0x0d, // LOAD_ATTR 'address_n' + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0x52, // LOAD_CONST_TRUE + 0xb6, // LOAD_FAST 6 + 0x18,0x2d, // STORE_ATTR 'is_mismatch' + 0x42,0xee,0x80, // JUMP 110 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x13,0x20, // LOAD_ATTR 'BASE_SCRIPT_KEY' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb3, // LOAD_FAST 3 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb2, // LOAD_FAST 2 + 0x14,0x0c, // LOAD_METHOD 'match' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0x52, // LOAD_CONST_TRUE + 0xb6, // LOAD_FAST 6 + 0x18,0x1f, // STORE_ATTR 'is_unusual_path' + 0x42,0xd5,0x80, // JUMP 85 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x13,0x1c, // LOAD_ATTR 'POINTER' + 0xb5, // LOAD_FAST 5 + 0x13,0x22, // LOAD_ATTR 'POINTER_SCRIPT' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x52, // LOAD_CONST_TRUE + 0xb6, // LOAD_FAST 6 + 0x18,0x24, // STORE_ATTR 'is_other_warning' + 0x42,0xc2,0x80, // JUMP 66 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x13,0x25, // LOAD_ATTR 'REWARD' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb2, // LOAD_FAST 2 + 0x14,0x0c, // LOAD_METHOD 'match' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0x52, // LOAD_CONST_TRUE + 0xb6, // LOAD_FAST 6 + 0x18,0x1f, // STORE_ATTR 'is_unusual_path' + 0x42,0x6d, // JUMP 45 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x13,0x1b, // LOAD_ATTR 'BASE_KEY_SCRIPT' + 0xb5, // LOAD_FAST 5 + 0x13,0x21, // LOAD_ATTR 'BASE_SCRIPT_SCRIPT' + 0xb5, // LOAD_FAST 5 + 0x13,0x26, // LOAD_ATTR 'REWARD_SCRIPT' + 0x2a,0x03, // BUILD_TUPLE 3 + 0xdd, // BINARY_OP 6 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x52, // LOAD_CONST_TRUE + 0xb6, // LOAD_FAST 6 + 0x18,0x24, // STORE_ATTR 'is_other_warning' + 0x42,0x58, // JUMP 24 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x13,0x1d, // LOAD_ATTR 'ENTERPRISE' + 0xb5, // LOAD_FAST 5 + 0x13,0x23, // LOAD_ATTR 'ENTERPRISE_SCRIPT' + 0xb5, // LOAD_FAST 5 + 0x13,0x1e, // LOAD_ATTR 'BYRON' + 0x2a,0x03, // BUILD_TUPLE 3 + 0xdd, // BINARY_OP 6 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x52, // LOAD_CONST_TRUE + 0xb6, // LOAD_FAST 6 + 0x18,0x2e, // STORE_ATTR 'is_no_staking' + 0x42,0x43, // JUMP 3 + 0x12,0x4a, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb6, // LOAD_FAST 6 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_credential_Credential_stake_credential = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_credential_Credential_stake_credential, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 257, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 20, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_cardano_helpers_credential_Credential_stake_credential + 6, + .line_info_top = fun_data_apps_cardano_helpers_credential_Credential_stake_credential + 46, + .opcodes = fun_data_apps_cardano_helpers_credential_Credential_stake_credential + 46, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_credential_Credential +// frozen bytecode for file apps/cardano/helpers/credential.py, scope apps_cardano_helpers_credential_Credential_is_set +static const byte fun_data_apps_cardano_helpers_credential_Credential_is_set[25] = { + 0x29,0x08, // prelude + 0x2f,0x47, // names: is_set, self + 0x80,0xa1, // code info + 0x12,0x4b, // LOAD_GLOBAL 'any' + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'path' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'key_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'script_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'pointer' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_credential_Credential_is_set = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_credential_Credential_is_set, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_apps_cardano_helpers_credential_Credential_is_set + 4, + .line_info_top = fun_data_apps_cardano_helpers_credential_Credential_is_set + 6, + .opcodes = fun_data_apps_cardano_helpers_credential_Credential_is_set + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_credential_Credential +// frozen bytecode for file apps/cardano/helpers/credential.py, scope apps_cardano_helpers_credential_Credential_get_title +static const byte fun_data_apps_cardano_helpers_credential_Credential_get_title[51] = { + 0x09,0x18, // prelude + 0x30,0x47, // names: get_title, self + 0x80,0xa4,0x25,0x23,0x25,0x23,0x25,0x23,0x25,0x43, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'path' + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x10,0x15, // LOAD_CONST_STRING 'path' + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'key_hash' + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x10,0x31, // LOAD_CONST_STRING 'key hash' + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'script_hash' + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x10,0x32, // LOAD_CONST_STRING 'script' + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'pointer' + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x10,0x18, // LOAD_CONST_STRING 'pointer' + 0x63, // RETURN_VALUE + 0x10,0x33, // LOAD_CONST_STRING '' + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_credential_Credential_get_title = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_credential_Credential_get_title, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 48, + .line_info = fun_data_apps_cardano_helpers_credential_Credential_get_title + 4, + .line_info_top = fun_data_apps_cardano_helpers_credential_Credential_get_title + 14, + .opcodes = fun_data_apps_cardano_helpers_credential_Credential_get_title + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_credential_Credential +// frozen bytecode for file apps/cardano/helpers/credential.py, scope apps_cardano_helpers_credential_Credential_format +static const byte fun_data_apps_cardano_helpers_credential_Credential_format[172] = { + 0x49,0x2a, // prelude + 0x34,0x47, // names: format, self + 0x80,0xb0,0x2b,0x4b,0x44,0x25,0x2c,0x25,0x20,0x20,0x2d,0x44,0x2f,0x25,0x54,0x20,0x2c,0x2c,0x6f, // code info + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x10,0x35, // LOAD_CONST_STRING 'address_n_to_str' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x36, // IMPORT_NAME 'common.paths' + 0x1c,0x35, // IMPORT_FROM 'address_n_to_str' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x37, // LOAD_CONST_STRING 'bech32' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x33, // IMPORT_NAME '' + 0x1c,0x37, // IMPORT_FROM 'bech32' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'pointer' + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'path' + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'path' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x01, // BUILD_LIST 1 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'key_hash' + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'type_name' + 0x12,0x40, // LOAD_GLOBAL 'CREDENTIAL_TYPE_PAYMENT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb2, // LOAD_FAST 2 + 0x13,0x38, // LOAD_ATTR 'HRP_KEY_HASH' + 0x42,0x43, // JUMP 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x39, // LOAD_ATTR 'HRP_STAKE_KEY_HASH' + 0xc4, // STORE_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xb2, // LOAD_FAST 2 + 0x14,0x3a, // LOAD_METHOD 'encode' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'key_hash' + 0x36,0x02, // CALL_METHOD 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x01, // BUILD_LIST 1 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'script_hash' + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x51, // LOAD_CONST_NONE + 0xb2, // LOAD_FAST 2 + 0x14,0x3a, // LOAD_METHOD 'encode' + 0xb2, // LOAD_FAST 2 + 0x13,0x3b, // LOAD_ATTR 'HRP_SCRIPT_HASH' + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'script_hash' + 0x36,0x02, // CALL_METHOD 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x01, // BUILD_LIST 1 + 0x63, // RETURN_VALUE + 0xb3, // LOAD_FAST 3 + 0x44,0x67, // POP_JUMP_IF_FALSE 39 + 0x10,0x3c, // LOAD_CONST_STRING 'Block: {}' + 0x14,0x34, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0x13,0x3d, // LOAD_ATTR 'block_index' + 0x36,0x01, // CALL_METHOD 1 + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x14,0x34, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0x13,0x3e, // LOAD_ATTR 'tx_index' + 0x36,0x01, // CALL_METHOD 1 + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x14,0x34, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0x13,0x3f, // LOAD_ATTR 'certificate_index' + 0x36,0x01, // CALL_METHOD 1 + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x03, // BUILD_LIST 3 + 0x63, // RETURN_VALUE + 0x2b,0x00, // BUILD_LIST 0 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_credential_Credential_format = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_credential_Credential_format, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 172, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 52, + .line_info = fun_data_apps_cardano_helpers_credential_Credential_format + 4, + .line_info_top = fun_data_apps_cardano_helpers_credential_Credential_format + 23, + .opcodes = fun_data_apps_cardano_helpers_credential_Credential_format + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_helpers_credential_Credential[] = { + &raw_code_apps_cardano_helpers_credential_Credential___init__, + &raw_code_apps_cardano_helpers_credential_Credential_payment_credential, + &raw_code_apps_cardano_helpers_credential_Credential_stake_credential, + &raw_code_apps_cardano_helpers_credential_Credential_is_set, + &raw_code_apps_cardano_helpers_credential_Credential_get_title, + &raw_code_apps_cardano_helpers_credential_Credential_format, +}; + +static const mp_raw_code_t raw_code_apps_cardano_helpers_credential_Credential = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_helpers_credential_Credential, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 84, + #endif + .children = (void *)&children_apps_cardano_helpers_credential_Credential, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_cardano_helpers_credential_Credential + 3, + .line_info_top = fun_data_apps_cardano_helpers_credential_Credential + 27, + .opcodes = fun_data_apps_cardano_helpers_credential_Credential + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_credential__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/credential.py, scope apps_cardano_helpers_credential_should_show_credentials +static const byte fun_data_apps_cardano_helpers_credential_should_show_credentials[44] = { + 0x19,0x12, // prelude + 0x09,0x46, // names: should_show_credentials, address_parameters + 0x80,0xcd,0x20,0x2a,0x2b,0x22,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x0a, // LOAD_ATTR 'address_type' + 0x12,0x02, // LOAD_GLOBAL 'CardanoAddressType' + 0x13,0x0b, // LOAD_ATTR 'BASE' + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x15, // JUMP_IF_FALSE_OR_POP 21 + 0x12,0x04, // LOAD_GLOBAL 'SCHEMA_PAYMENT' + 0x14,0x0c, // LOAD_METHOD 'match' + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0x46,0x0a, // JUMP_IF_FALSE_OR_POP 10 + 0x12,0x0f, // LOAD_GLOBAL '_do_base_address_credentials_match' + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'address_n' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'address_n_staking' + 0x34,0x02, // CALL_FUNCTION 2 + 0xd3, // UNARY_OP 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_credential_should_show_credentials = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_credential_should_show_credentials, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_cardano_helpers_credential_should_show_credentials + 4, + .line_info_top = fun_data_apps_cardano_helpers_credential_should_show_credentials + 11, + .opcodes = fun_data_apps_cardano_helpers_credential_should_show_credentials + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_credential__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/credential.py, scope apps_cardano_helpers_credential__do_base_address_credentials_match +static const byte fun_data_apps_cardano_helpers_credential__do_base_address_credentials_match[46] = { + 0x3a,0x10, // prelude + 0x0f,0x0d,0x0e, // names: _do_base_address_credentials_match, address_n, address_n_staking + 0x80,0xdb,0x2b,0x4b,0x2a, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x10, // LOAD_CONST_STRING 'CHAIN_STAKING_KEY' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'paths' + 0x1c,0x10, // IMPORT_FROM 'CHAIN_STAKING_KEY' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x11, // LOAD_CONST_STRING 'to_account_path' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x12, // IMPORT_NAME 'utils' + 0x1c,0x11, // IMPORT_FROM 'to_account_path' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x02, // BUILD_LIST 2 + 0xf2, // BINARY_OP 27 __add__ + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_credential__do_base_address_credentials_match = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_credential__do_base_address_credentials_match, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_cardano_helpers_credential__do_base_address_credentials_match + 5, + .line_info_top = fun_data_apps_cardano_helpers_credential__do_base_address_credentials_match + 10, + .opcodes = fun_data_apps_cardano_helpers_credential__do_base_address_credentials_match + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_helpers_credential__lt_module_gt_[] = { + &raw_code_apps_cardano_helpers_credential_Credential, + &raw_code_apps_cardano_helpers_credential_should_show_credentials, + &raw_code_apps_cardano_helpers_credential__do_base_address_credentials_match, +}; + +static const mp_raw_code_t raw_code_apps_cardano_helpers_credential__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_helpers_credential__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 65, + #endif + .children = (void *)&children_apps_cardano_helpers_credential__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_helpers_credential__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_helpers_credential__lt_module_gt_ + 14, + .opcodes = fun_data_apps_cardano_helpers_credential__lt_module_gt_ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_helpers_credential[76] = { + MP_QSTR_apps_slash_cardano_slash_helpers_slash_credential_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_CardanoAddressType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_SCHEMA_PAYMENT, + MP_QSTR_paths, + MP_QSTR_payment, + MP_QSTR_stake, + MP_QSTR_Credential, + MP_QSTR_should_show_credentials, + MP_QSTR_address_type, + MP_QSTR_BASE, + MP_QSTR_match, + MP_QSTR_address_n, + MP_QSTR_address_n_staking, + MP_QSTR__do_base_address_credentials_match, + MP_QSTR_CHAIN_STAKING_KEY, + MP_QSTR_to_account_path, + MP_QSTR_utils, + MP_QSTR___init__, + MP_QSTR_type_name, + MP_QSTR_path, + MP_QSTR_key_hash, + MP_QSTR_script_hash, + MP_QSTR_pointer, + MP_QSTR_payment_credential, + MP_QSTR_script_payment_hash, + MP_QSTR_BASE_KEY_SCRIPT, + MP_QSTR_POINTER, + MP_QSTR_ENTERPRISE, + MP_QSTR_BYRON, + MP_QSTR_is_unusual_path, + MP_QSTR_BASE_SCRIPT_KEY, + MP_QSTR_BASE_SCRIPT_SCRIPT, + MP_QSTR_POINTER_SCRIPT, + MP_QSTR_ENTERPRISE_SCRIPT, + MP_QSTR_is_other_warning, + MP_QSTR_REWARD, + MP_QSTR_REWARD_SCRIPT, + MP_QSTR_is_reward, + MP_QSTR_stake_credential, + MP_QSTR_SCHEMA_STAKING, + MP_QSTR_staking_key_hash, + MP_QSTR_script_staking_hash, + MP_QSTR_certificate_pointer, + MP_QSTR_is_mismatch, + MP_QSTR_is_no_staking, + MP_QSTR_is_set, + MP_QSTR_get_title, + MP_QSTR_key_space_hash, + MP_QSTR_script, + MP_QSTR_, + MP_QSTR_format, + MP_QSTR_address_n_to_str, + MP_QSTR_common_dot_paths, + MP_QSTR_bech32, + MP_QSTR_HRP_KEY_HASH, + MP_QSTR_HRP_STAKE_KEY_HASH, + MP_QSTR_encode, + MP_QSTR_HRP_SCRIPT_HASH, + MP_QSTR_Block_colon__space__brace_open__brace_close_, + MP_QSTR_block_index, + MP_QSTR_tx_index, + MP_QSTR_certificate_index, + MP_QSTR_CREDENTIAL_TYPE_PAYMENT, + MP_QSTR_CREDENTIAL_TYPE_STAKE, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_classmethod, + MP_QSTR_address_parameters, + MP_QSTR_self, + MP_QSTR_cls, + MP_QSTR_address_params, + MP_QSTR_RuntimeError, + MP_QSTR_any, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_helpers_credential[2] = { + MP_ROM_QSTR(MP_QSTR_Transaction_colon__space__brace_open__brace_close_), + MP_ROM_QSTR(MP_QSTR_Certificate_colon__space__brace_open__brace_close_), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_helpers_credential = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_helpers_credential, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_helpers_credential, + }, + .rc = &raw_code_apps_cardano_helpers_credential__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_helpers_hash_builder_collection +// - original source file: build/firmware/src/apps/cardano/helpers/hash_builder_collection.mpy +// - frozen file name: apps/cardano/helpers/hash_builder_collection.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection__lt_module_gt_ +static const byte fun_data_apps_cardano_helpers_hash_builder_collection__lt_module_gt_[116] = { + 0x30,0x22, // prelude + 0x01, // names: + 0x40,0x4c,0x80,0x0a,0x23,0x23,0x23,0x72,0x89,0x3a,0x70,0x80,0x0b,0x74,0x80,0x1e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'cbor' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common' + 0x1c,0x02, // IMPORT_FROM 'cbor' + 0x16,0x02, // STORE_NAME 'cbor' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x22, // STORE_NAME 'T' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x23, // STORE_NAME 'K' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x24, // STORE_NAME 'V' + 0x2c,0x02, // BUILD_MAP 2 + 0x11,0x25, // LOAD_NAME 'object' + 0x11,0x22, // LOAD_NAME 'T' + 0x62, // STORE_MAP + 0x11,0x25, // LOAD_NAME 'object' + 0x11,0x23, // LOAD_NAME 'K' + 0x11,0x24, // LOAD_NAME 'V' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x62, // STORE_MAP + 0x16,0x26, // STORE_NAME 'Generic' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x04, // LOAD_CONST_STRING 'HashBuilderCollection' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x04, // STORE_NAME 'HashBuilderCollection' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x05, // LOAD_CONST_STRING 'HashBuilderList' + 0x11,0x04, // LOAD_NAME 'HashBuilderCollection' + 0x11,0x26, // LOAD_NAME 'Generic' + 0x11,0x22, // LOAD_NAME 'T' + 0x55, // LOAD_SUBSCR + 0x34,0x04, // CALL_FUNCTION 4 + 0x16,0x05, // STORE_NAME 'HashBuilderList' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x02, // MAKE_FUNCTION 2 + 0x10,0x06, // LOAD_CONST_STRING 'HashBuilderDict' + 0x11,0x04, // LOAD_NAME 'HashBuilderCollection' + 0x11,0x26, // LOAD_NAME 'Generic' + 0x11,0x23, // LOAD_NAME 'K' + 0x11,0x24, // LOAD_NAME 'V' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x04, // CALL_FUNCTION 4 + 0x16,0x06, // STORE_NAME 'HashBuilderDict' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x03, // MAKE_FUNCTION 3 + 0x10,0x07, // LOAD_CONST_STRING 'HashBuilderEmbeddedCBOR' + 0x11,0x04, // LOAD_NAME 'HashBuilderCollection' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x07, // STORE_NAME 'HashBuilderEmbeddedCBOR' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_helpers_hash_builder_collection__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderCollection +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection[72] = { + 0x00,0x28, // prelude + 0x04, // names: HashBuilderCollection + 0x88,0x15,0x84,0x07,0x64,0x40,0x64,0x60,0x84,0x08,0x64,0x60,0x64,0x40,0x64,0x84,0x08,0x64,0x20, // code info + 0x11,0x27, // LOAD_NAME '__name__' + 0x16,0x28, // STORE_NAME '__module__' + 0x10,0x04, // LOAD_CONST_STRING 'HashBuilderCollection' + 0x16,0x29, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x08, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0e, // STORE_NAME 'start' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x11, // STORE_NAME '_insert_child' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x12, // STORE_NAME '_do_enter_item' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x13, // STORE_NAME '_hash_item' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x15, // STORE_NAME '_hash_item_streamed' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x10, // STORE_NAME '_header_bytes' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x17, // STORE_NAME 'finish' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x18, // STORE_NAME '__enter__' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x19, // STORE_NAME '__exit__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_helpers_hash_builder_collection_HashBuilderCollection +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___init__ +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___init__[33] = { + 0x1a,0x12, // prelude + 0x08,0x2a,0x09, // names: __init__, self, size + 0x80,0x16,0x24,0x24,0x24,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x09, // STORE_ATTR 'size' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x0a, // STORE_ATTR 'remaining' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x0b, // STORE_ATTR 'hash_fn' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x0c, // STORE_ATTR 'parent' + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x0d, // STORE_ATTR 'has_unfinished_child' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___init__ + 5, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___init__ + 11, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___init__ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_hash_builder_collection_HashBuilderCollection +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderCollection_start +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection_start[28] = { + 0x2a,0x0e, // prelude + 0x0e,0x2a,0x0b, // names: start, self, hash_fn + 0x80,0x1d,0x24,0x2d, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x0b, // STORE_ATTR 'hash_fn' + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'hash_fn' + 0x14,0x0f, // LOAD_METHOD 'update' + 0xb0, // LOAD_FAST 0 + 0x14,0x10, // LOAD_METHOD '_header_bytes' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection_start = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection_start, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection_start + 5, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection_start + 9, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection_start + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_hash_builder_collection_HashBuilderCollection +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__insert_child +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__insert_child[29] = { + 0x22,0x10, // prelude + 0x11,0x2a,0x2b, // names: _insert_child, self, child + 0x80,0x22,0x24,0x20,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x0c, // STORE_ATTR 'parent' + 0xb1, // LOAD_FAST 1 + 0x14,0x0e, // LOAD_METHOD 'start' + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'hash_fn' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x0d, // STORE_ATTR 'has_unfinished_child' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__insert_child = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__insert_child, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__insert_child + 5, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__insert_child + 10, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__insert_child + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_hash_builder_collection_HashBuilderCollection +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__do_enter_item +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__do_enter_item[29] = { + 0x19,0x10, // prelude + 0x12,0x2a, // names: _do_enter_item, self + 0x80,0x28,0x20,0x20,0x25,0x43, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'has_unfinished_child' + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x2c, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0a, // LOAD_ATTR 'remaining' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe6, // BINARY_OP 15 __isub__ + 0x5a, // ROT_TWO + 0x18,0x0a, // STORE_ATTR 'remaining' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__do_enter_item = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__do_enter_item, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__do_enter_item + 4, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__do_enter_item + 10, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__do_enter_item + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_hash_builder_collection_HashBuilderCollection +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__hash_item +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__hash_item[29] = { + 0x2a,0x10, // prelude + 0x13,0x2a,0x2d, // names: _hash_item, self, item + 0x80,0x30,0x20,0x28,0x29, // code info + 0x12,0x02, // LOAD_GLOBAL 'cbor' + 0x14,0x14, // LOAD_METHOD 'encode' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'hash_fn' + 0x14,0x0f, // LOAD_METHOD 'update' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__hash_item = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__hash_item, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__hash_item + 5, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__hash_item + 10, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__hash_item + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_hash_builder_collection_HashBuilderCollection +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__hash_item_streamed +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__hash_item_streamed[33] = { + 0x4a,0x0e, // prelude + 0x15,0x2a,0x2d, // names: _hash_item_streamed, self, item + 0x80,0x36,0x20,0x2b, // code info + 0x12,0x02, // LOAD_GLOBAL 'cbor' + 0x14,0x16, // LOAD_METHOD 'encode_streamed' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x0c, // FOR_ITER 12 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'hash_fn' + 0x14,0x0f, // LOAD_METHOD 'update' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x32, // JUMP -14 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__hash_item_streamed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__hash_item_streamed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__hash_item_streamed + 5, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__hash_item_streamed + 9, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__hash_item_streamed + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_hash_builder_collection_HashBuilderCollection +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__header_bytes +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__header_bytes[11] = { + 0x09,0x08, // prelude + 0x10,0x2a, // names: _header_bytes, self + 0x80,0x3b, // code info + 0x12,0x2e, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__header_bytes = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__header_bytes, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 11, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__header_bytes + 4, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__header_bytes + 6, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__header_bytes + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_hash_builder_collection_HashBuilderCollection +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderCollection_finish +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection_finish[45] = { + 0x11,0x12, // prelude + 0x17,0x2a, // names: finish, self + 0x80,0x3e,0x27,0x23,0x28,0x26,0x24, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x0a, // LOAD_ATTR 'remaining' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x2c, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'parent' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'parent' + 0x18,0x0d, // STORE_ATTR 'has_unfinished_child' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x0b, // STORE_ATTR 'hash_fn' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x0c, // STORE_ATTR 'parent' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection_finish = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection_finish, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection_finish + 4, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection_finish + 11, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection_finish + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_hash_builder_collection_HashBuilderCollection +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___enter__ +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___enter__[9] = { + 0x09,0x0a, // prelude + 0x18,0x2a, // names: __enter__, self + 0x80,0x46,0x20, // code info + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___enter__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___enter__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 9, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 24, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___enter__ + 4, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___enter__ + 7, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___enter__ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_hash_builder_collection_HashBuilderCollection +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___exit__ +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___exit__[24] = { + 0xa8,0x04,0x10, // prelude + 0x19,0x2a,0x2f,0x30,0x31, // names: __exit__, self, exc_type, exc_val, exc_tb + 0x80,0x4a,0x25, // code info + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb0, // LOAD_FAST 0 + 0x14,0x17, // LOAD_METHOD 'finish' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___exit__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___exit__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___exit__ + 8, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___exit__ + 11, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___exit__ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection[] = { + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___init__, + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection_start, + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__insert_child, + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__do_enter_item, + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__hash_item, + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__hash_item_streamed, + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection__header_bytes, + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection_finish, + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___enter__, + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection___exit__, +}; + +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = (void *)&children_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 10, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection + 3, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection + 22, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_hash_builder_collection__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderList +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderList[25] = { + 0x00,0x0a, // prelude + 0x05, // names: HashBuilderList + 0x88,0x4f,0x84,0x09, // code info + 0x11,0x27, // LOAD_NAME '__name__' + 0x16,0x28, // STORE_NAME '__module__' + 0x10,0x05, // LOAD_CONST_STRING 'HashBuilderList' + 0x16,0x29, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x1a, // STORE_NAME 'append' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x10, // STORE_NAME '_header_bytes' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_helpers_hash_builder_collection_HashBuilderList +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderList_append +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderList_append[44] = { + 0x22,0x12, // prelude + 0x1a,0x2a,0x2d, // names: append, self, item + 0x80,0x50,0x26,0x29,0x49,0x47, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x12, // LOAD_METHOD '_do_enter_item' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x32, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x04, // LOAD_GLOBAL 'HashBuilderCollection' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x11, // LOAD_METHOD '_insert_child' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0xb0, // LOAD_FAST 0 + 0x14,0x15, // LOAD_METHOD '_hash_item_streamed' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderList_append = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderList_append, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 26, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderList_append + 5, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderList_append + 11, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderList_append + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_hash_builder_collection_HashBuilderList +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderList__header_bytes +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderList__header_bytes[16] = { + 0x19,0x08, // prelude + 0x10,0x2a, // names: _header_bytes, self + 0x80,0x59, // code info + 0x12,0x02, // LOAD_GLOBAL 'cbor' + 0x14,0x1b, // LOAD_METHOD 'create_array_header' + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'size' + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderList__header_bytes = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderList__header_bytes, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderList__header_bytes + 4, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderList__header_bytes + 6, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderList__header_bytes + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_helpers_hash_builder_collection_HashBuilderList[] = { + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderList_append, + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderList__header_bytes, +}; + +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderList = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderList, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = (void *)&children_apps_cardano_helpers_hash_builder_collection_HashBuilderList, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderList + 3, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderList + 7, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderList + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_hash_builder_collection__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderDict +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict[36] = { + 0x08,0x13, // prelude + 0x06, // names: HashBuilderDict + 0x88,0x5d,0x20,0x40,0x66,0x40,0x84,0x14,0x00, // code info + 0x11,0x27, // LOAD_NAME '__name__' + 0x16,0x28, // STORE_NAME '__module__' + 0x10,0x06, // LOAD_CONST_STRING 'HashBuilderDict' + 0x16,0x29, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x08, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x1e, // STORE_NAME 'add' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x10, // STORE_NAME '_header_bytes' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_helpers_hash_builder_collection_HashBuilderDict +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderDict___init__ +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict___init__[34] = { + 0xb0,0x04,0x12, // prelude + 0x08,0x33,0x2a,0x09,0x1c, // names: __init__, *, self, size, key_order_error + 0x80,0x61,0x2b,0x24, // code info + 0x12,0x34, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x08, // LOAD_SUPER_METHOD '__init__' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x18,0x1c, // STORE_ATTR 'key_order_error' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x1d, // STORE_ATTR 'previous_encoded_key' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderDict___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict___init__ + 8, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict___init__ + 12, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict___init__ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_hash_builder_collection_HashBuilderDict +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderDict_add +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict_add[77] = { + 0x3b,0x1e, // prelude + 0x1e,0x2a,0x35,0x36, // names: add, self, key, value + 0x80,0x66,0x66,0x20,0x67,0x2c,0x24,0x64,0x29,0x49,0x47, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x12, // LOAD_METHOD '_do_enter_item' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x13, // LOAD_METHOD '_hash_item' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x12,0x02, // LOAD_GLOBAL 'cbor' + 0x14,0x1f, // LOAD_METHOD 'precedes' + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'previous_encoded_key' + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'key_order_error' + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x1d, // STORE_ATTR 'previous_encoded_key' + 0x12,0x32, // LOAD_GLOBAL 'isinstance' + 0xb2, // LOAD_FAST 2 + 0x12,0x04, // LOAD_GLOBAL 'HashBuilderCollection' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x11, // LOAD_METHOD '_insert_child' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0xb0, // LOAD_FAST 0 + 0x14,0x15, // LOAD_METHOD '_hash_item_streamed' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderDict_add = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict_add, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 77, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict_add + 6, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict_add + 17, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict_add + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_hash_builder_collection_HashBuilderDict +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderDict__header_bytes +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict__header_bytes[16] = { + 0x19,0x08, // prelude + 0x10,0x2a, // names: _header_bytes, self + 0x80,0x7a, // code info + 0x12,0x02, // LOAD_GLOBAL 'cbor' + 0x14,0x20, // LOAD_METHOD 'create_map_header' + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'size' + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderDict__header_bytes = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict__header_bytes, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict__header_bytes + 4, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict__header_bytes + 6, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict__header_bytes + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_helpers_hash_builder_collection_HashBuilderDict[] = { + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderDict___init__, + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderDict_add, + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderDict__header_bytes, +}; + +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderDict = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = (void *)&children_apps_cardano_helpers_hash_builder_collection_HashBuilderDict, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict + 3, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict + 11, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderDict + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_hash_builder_collection__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR[27] = { + 0x00,0x0e, // prelude + 0x07, // names: HashBuilderEmbeddedCBOR + 0x88,0x7e,0x60,0x60,0x64,0x60, // code info + 0x11,0x27, // LOAD_NAME '__name__' + 0x16,0x28, // STORE_NAME '__module__' + 0x10,0x07, // LOAD_CONST_STRING 'HashBuilderEmbeddedCBOR' + 0x16,0x29, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x1e, // STORE_NAME 'add' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x10, // STORE_NAME '_header_bytes' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR_add +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR_add[34] = { + 0x2a,0x10, // prelude + 0x1e,0x2a,0x37, // names: add, self, chunk + 0x80,0x85,0x20,0x20,0x2d, // code info + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0a, // LOAD_ATTR 'remaining' + 0x12,0x38, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xe6, // BINARY_OP 15 __isub__ + 0x5a, // ROT_TWO + 0x18,0x0a, // STORE_ATTR 'remaining' + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'hash_fn' + 0x14,0x0f, // LOAD_METHOD 'update' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR_add = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR_add, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR_add + 5, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR_add + 10, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR_add + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR +// frozen bytecode for file apps/cardano/helpers/hash_builder_collection.py, scope apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR__header_bytes +static const byte fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR__header_bytes[16] = { + 0x19,0x08, // prelude + 0x10,0x2a, // names: _header_bytes, self + 0x80,0x8b, // code info + 0x12,0x02, // LOAD_GLOBAL 'cbor' + 0x14,0x21, // LOAD_METHOD 'create_embedded_cbor_bytes_header' + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'size' + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR__header_bytes = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR__header_bytes, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR__header_bytes + 4, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR__header_bytes + 6, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR__header_bytes + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR[] = { + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR_add, + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR__header_bytes, +}; + +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = (void *)&children_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR + 3, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR + 9, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_helpers_hash_builder_collection__lt_module_gt_[] = { + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderCollection, + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderList, + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderDict, + &raw_code_apps_cardano_helpers_hash_builder_collection_HashBuilderEmbeddedCBOR, +}; + +static const mp_raw_code_t raw_code_apps_cardano_helpers_hash_builder_collection__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_helpers_hash_builder_collection__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 116, + #endif + .children = (void *)&children_apps_cardano_helpers_hash_builder_collection__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_helpers_hash_builder_collection__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_helpers_hash_builder_collection__lt_module_gt_ + 19, + .opcodes = fun_data_apps_cardano_helpers_hash_builder_collection__lt_module_gt_ + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_helpers_hash_builder_collection[57] = { + MP_QSTR_apps_slash_cardano_slash_helpers_slash_hash_builder_collection_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_cbor, + MP_QSTR_apps_dot_common, + MP_QSTR_HashBuilderCollection, + MP_QSTR_HashBuilderList, + MP_QSTR_HashBuilderDict, + MP_QSTR_HashBuilderEmbeddedCBOR, + MP_QSTR___init__, + MP_QSTR_size, + MP_QSTR_remaining, + MP_QSTR_hash_fn, + MP_QSTR_parent, + MP_QSTR_has_unfinished_child, + MP_QSTR_start, + MP_QSTR_update, + MP_QSTR__header_bytes, + MP_QSTR__insert_child, + MP_QSTR__do_enter_item, + MP_QSTR__hash_item, + MP_QSTR_encode, + MP_QSTR__hash_item_streamed, + MP_QSTR_encode_streamed, + MP_QSTR_finish, + MP_QSTR___enter__, + MP_QSTR___exit__, + MP_QSTR_append, + MP_QSTR_create_array_header, + MP_QSTR_key_order_error, + MP_QSTR_previous_encoded_key, + MP_QSTR_add, + MP_QSTR_precedes, + MP_QSTR_create_map_header, + MP_QSTR_create_embedded_cbor_bytes_header, + MP_QSTR_T, + MP_QSTR_K, + MP_QSTR_V, + MP_QSTR_object, + MP_QSTR_Generic, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_self, + MP_QSTR_child, + MP_QSTR_RuntimeError, + MP_QSTR_item, + MP_QSTR_NotImplementedError, + MP_QSTR_exc_type, + MP_QSTR_exc_val, + MP_QSTR_exc_tb, + MP_QSTR_isinstance, + MP_QSTR__star_, + MP_QSTR_super, + MP_QSTR_key, + MP_QSTR_value, + MP_QSTR_chunk, + MP_QSTR_len, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_helpers_hash_builder_collection[1] = { + MP_ROM_PTR(&mp_const_empty_bytes_obj), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_helpers_hash_builder_collection = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_helpers_hash_builder_collection, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_helpers_hash_builder_collection, + }, + .rc = &raw_code_apps_cardano_helpers_hash_builder_collection__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_helpers_network_ids +// - original source file: build/firmware/src/apps/cardano/helpers/network_ids.mpy +// - frozen file name: apps/cardano/helpers/network_ids.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/helpers/network_ids.py, scope apps_cardano_helpers_network_ids__lt_module_gt_ +static const byte fun_data_apps_cardano_helpers_network_ids__lt_module_gt_[30] = { + 0x08,0x08, // prelude + 0x01, // names: + 0x4c,0x23,0x63, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x05, // STORE_NAME 'MAINNET' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x06, // STORE_NAME 'TESTNET' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x04, // STORE_NAME 'is_mainnet' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_helpers_network_ids__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/network_ids.py, scope apps_cardano_helpers_network_ids_is_mainnet +static const byte fun_data_apps_cardano_helpers_network_ids_is_mainnet[12] = { + 0x11,0x0c, // prelude + 0x04,0x07, // names: is_mainnet, network_id + 0x80,0x07,0x60,0x60, // code info + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_network_ids_is_mainnet = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_network_ids_is_mainnet, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_cardano_helpers_network_ids_is_mainnet + 4, + .line_info_top = fun_data_apps_cardano_helpers_network_ids_is_mainnet + 8, + .opcodes = fun_data_apps_cardano_helpers_network_ids_is_mainnet + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_helpers_network_ids__lt_module_gt_[] = { + &raw_code_apps_cardano_helpers_network_ids_is_mainnet, +}; + +static const mp_raw_code_t raw_code_apps_cardano_helpers_network_ids__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_helpers_network_ids__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = (void *)&children_apps_cardano_helpers_network_ids__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_helpers_network_ids__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_helpers_network_ids__lt_module_gt_ + 6, + .opcodes = fun_data_apps_cardano_helpers_network_ids__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_helpers_network_ids[8] = { + MP_QSTR_apps_slash_cardano_slash_helpers_slash_network_ids_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_is_mainnet, + MP_QSTR_MAINNET, + MP_QSTR_TESTNET, + MP_QSTR_network_id, +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_helpers_network_ids = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_helpers_network_ids, + .obj_table = NULL, + }, + .rc = &raw_code_apps_cardano_helpers_network_ids__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_helpers_paths +// - original source file: build/firmware/src/apps/cardano/helpers/paths.mpy +// - frozen file name: apps/cardano/helpers/paths.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/helpers/paths.py, scope apps_cardano_helpers_paths__lt_module_gt_ +static const byte fun_data_apps_cardano_helpers_paths__lt_module_gt_[232] = { + 0x28,0x28, // prelude + 0x01, // names: + 0x4c,0x78,0x20,0x2e,0x30,0x30,0x70,0x4d,0x35,0x4d,0x2d,0x75,0x23,0x23,0x43,0x24,0x24,0x24,0x24, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'HARDENED' + 0x10,0x05, // LOAD_CONST_STRING 'PathSchema' + 0x10,0x06, // LOAD_CONST_STRING 'unharden' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x07, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x04, // IMPORT_FROM 'HARDENED' + 0x16,0x04, // STORE_NAME 'HARDENED' + 0x1c,0x05, // IMPORT_FROM 'PathSchema' + 0x16,0x05, // STORE_NAME 'PathSchema' + 0x1c,0x06, // IMPORT_FROM 'unharden' + 0x16,0x06, // STORE_NAME 'unharden' + 0x59, // POP_TOP + 0xac, // LOAD_CONST_SMALL_INT 44 + 0x11,0x04, // LOAD_NAME 'HARDENED' + 0xed, // BINARY_OP 22 __or__ + 0x22,0x8e,0x17, // LOAD_CONST_SMALL_INT 1815 + 0x11,0x04, // LOAD_NAME 'HARDENED' + 0xed, // BINARY_OP 22 __or__ + 0x2b,0x02, // BUILD_LIST 2 + 0x16,0x0a, // STORE_NAME 'BYRON_ROOT' + 0x22,0x8e,0x3c, // LOAD_CONST_SMALL_INT 1852 + 0x11,0x04, // LOAD_NAME 'HARDENED' + 0xed, // BINARY_OP 22 __or__ + 0x22,0x8e,0x17, // LOAD_CONST_SMALL_INT 1815 + 0x11,0x04, // LOAD_NAME 'HARDENED' + 0xed, // BINARY_OP 22 __or__ + 0x2b,0x02, // BUILD_LIST 2 + 0x16,0x0b, // STORE_NAME 'SHELLEY_ROOT' + 0x22,0x8e,0x3e, // LOAD_CONST_SMALL_INT 1854 + 0x11,0x04, // LOAD_NAME 'HARDENED' + 0xed, // BINARY_OP 22 __or__ + 0x22,0x8e,0x17, // LOAD_CONST_SMALL_INT 1815 + 0x11,0x04, // LOAD_NAME 'HARDENED' + 0xed, // BINARY_OP 22 __or__ + 0x2b,0x02, // BUILD_LIST 2 + 0x16,0x0c, // STORE_NAME 'MULTISIG_ROOT' + 0x22,0x8e,0x3f, // LOAD_CONST_SMALL_INT 1855 + 0x11,0x04, // LOAD_NAME 'HARDENED' + 0xed, // BINARY_OP 22 __or__ + 0x22,0x8e,0x17, // LOAD_CONST_SMALL_INT 1815 + 0x11,0x04, // LOAD_NAME 'HARDENED' + 0xed, // BINARY_OP 22 __or__ + 0x2b,0x02, // BUILD_LIST 2 + 0x16,0x0d, // STORE_NAME 'MINTING_ROOT' + 0x11,0x05, // LOAD_NAME 'PathSchema' + 0x14,0x08, // LOAD_METHOD 'parse' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x22,0x8e,0x17, // LOAD_CONST_SMALL_INT 1815 + 0x36,0x02, // CALL_METHOD 2 + 0x16,0x0e, // STORE_NAME 'SCHEMA_PUBKEY' + 0x11,0x05, // LOAD_NAME 'PathSchema' + 0x14,0x08, // LOAD_METHOD 'parse' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x14,0x09, // LOAD_METHOD 'format' + 0x11,0x04, // LOAD_NAME 'HARDENED' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x36,0x01, // CALL_METHOD 1 + 0x22,0x8e,0x17, // LOAD_CONST_SMALL_INT 1815 + 0x36,0x02, // CALL_METHOD 2 + 0x16,0x0f, // STORE_NAME 'SCHEMA_MINT' + 0x11,0x05, // LOAD_NAME 'PathSchema' + 0x14,0x08, // LOAD_METHOD 'parse' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x22,0x8e,0x17, // LOAD_CONST_SMALL_INT 1815 + 0x36,0x02, // CALL_METHOD 2 + 0x16,0x10, // STORE_NAME 'SCHEMA_PAYMENT' + 0x11,0x05, // LOAD_NAME 'PathSchema' + 0x14,0x08, // LOAD_METHOD 'parse' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x22,0x8e,0x17, // LOAD_CONST_SMALL_INT 1815 + 0x36,0x02, // CALL_METHOD 2 + 0x16,0x11, // STORE_NAME 'SCHEMA_STAKING' + 0x11,0x05, // LOAD_NAME 'PathSchema' + 0x14,0x08, // LOAD_METHOD 'parse' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x14,0x09, // LOAD_METHOD 'format' + 0x11,0x04, // LOAD_NAME 'HARDENED' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x36,0x01, // CALL_METHOD 1 + 0x22,0x8e,0x17, // LOAD_CONST_SMALL_INT 1815 + 0x36,0x02, // CALL_METHOD 2 + 0x16,0x12, // STORE_NAME 'SCHEMA_STAKING_ANY_ACCOUNT' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x13, // STORE_NAME 'ACCOUNT_PATH_INDEX' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x14, // STORE_NAME 'ACCOUNT_PATH_LENGTH' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x15, // STORE_NAME 'CHAIN_STAKING_KEY' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x16,0x16, // STORE_NAME 'CHANGE_OUTPUT_PATH_NAME' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x16,0x17, // STORE_NAME 'CHANGE_OUTPUT_STAKING_PATH_NAME' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x16,0x18, // STORE_NAME 'CERTIFICATE_PATH_NAME' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x16,0x19, // STORE_NAME 'POOL_OWNER_STAKING_PATH_NAME' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x16,0x1a, // STORE_NAME 'WITNESS_PATH_NAME' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_paths__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_helpers_paths__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 232, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_helpers_paths__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_helpers_paths__lt_module_gt_ + 22, + .opcodes = fun_data_apps_cardano_helpers_paths__lt_module_gt_ + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_helpers_paths[27] = { + MP_QSTR_apps_slash_cardano_slash_helpers_slash_paths_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_HARDENED, + MP_QSTR_PathSchema, + MP_QSTR_unharden, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_parse, + MP_QSTR_format, + MP_QSTR_BYRON_ROOT, + MP_QSTR_SHELLEY_ROOT, + MP_QSTR_MULTISIG_ROOT, + MP_QSTR_MINTING_ROOT, + MP_QSTR_SCHEMA_PUBKEY, + MP_QSTR_SCHEMA_MINT, + MP_QSTR_SCHEMA_PAYMENT, + MP_QSTR_SCHEMA_STAKING, + MP_QSTR_SCHEMA_STAKING_ANY_ACCOUNT, + MP_QSTR_ACCOUNT_PATH_INDEX, + MP_QSTR_ACCOUNT_PATH_LENGTH, + MP_QSTR_CHAIN_STAKING_KEY, + MP_QSTR_CHANGE_OUTPUT_PATH_NAME, + MP_QSTR_CHANGE_OUTPUT_STAKING_PATH_NAME, + MP_QSTR_CERTIFICATE_PATH_NAME, + MP_QSTR_POOL_OWNER_STAKING_PATH_NAME, + MP_QSTR_WITNESS_PATH_NAME, +}; + +// constants +static const mp_obj_str_t const_obj_apps_cardano_helpers_paths_0 = {{&mp_type_str}, 52616, 39, (const byte*)"\x6d\x2f\x5b\x34\x34\x2c\x31\x38\x35\x32\x2c\x31\x38\x35\x34\x5d\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x61\x63\x63\x6f\x75\x6e\x74\x27\x2f\x2a"}; +static const mp_obj_str_t const_obj_apps_cardano_helpers_paths_1 = {{&mp_type_str}, 824, 26, (const byte*)"\x6d\x2f\x31\x38\x35\x35\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x5b\x30\x2d\x7b\x7d\x5d\x27"}; +static const mp_obj_str_t const_obj_apps_cardano_helpers_paths_2 = {{&mp_type_str}, 15669, 52, (const byte*)"\x6d\x2f\x5b\x34\x34\x2c\x31\x38\x35\x32\x5d\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x61\x63\x63\x6f\x75\x6e\x74\x27\x2f\x5b\x30\x2c\x31\x5d\x2f\x61\x64\x64\x72\x65\x73\x73\x5f\x69\x6e\x64\x65\x78"}; +static const mp_obj_str_t const_obj_apps_cardano_helpers_paths_3 = {{&mp_type_str}, 61825, 31, (const byte*)"\x6d\x2f\x31\x38\x35\x32\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x61\x63\x63\x6f\x75\x6e\x74\x27\x2f\x32\x2f\x30"}; +static const mp_obj_str_t const_obj_apps_cardano_helpers_paths_4 = {{&mp_type_str}, 58621, 30, (const byte*)"\x6d\x2f\x31\x38\x35\x32\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x5b\x30\x2d\x7b\x7d\x5d\x27\x2f\x32\x2f\x30"}; +static const mp_obj_str_t const_obj_apps_cardano_helpers_paths_6 = {{&mp_type_str}, 44988, 26, (const byte*)"\x43\x68\x61\x6e\x67\x65\x20\x6f\x75\x74\x70\x75\x74\x20\x73\x74\x61\x6b\x69\x6e\x67\x20\x70\x61\x74\x68"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_helpers_paths[10] = { + MP_ROM_PTR(&const_obj_apps_cardano_helpers_paths_0), + MP_ROM_PTR(&const_obj_apps_cardano_helpers_paths_1), + MP_ROM_PTR(&const_obj_apps_cardano_helpers_paths_2), + MP_ROM_PTR(&const_obj_apps_cardano_helpers_paths_3), + MP_ROM_PTR(&const_obj_apps_cardano_helpers_paths_4), + MP_ROM_QSTR(MP_QSTR_Change_space_output_space_path), + MP_ROM_PTR(&const_obj_apps_cardano_helpers_paths_6), + MP_ROM_QSTR(MP_QSTR_Certificate_space_path), + MP_ROM_QSTR(MP_QSTR_Pool_space_owner_space_staking_space_path), + MP_ROM_QSTR(MP_QSTR_Witness_space_path), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_helpers_paths = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_helpers_paths, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_helpers_paths, + }, + .rc = &raw_code_apps_cardano_helpers_paths__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_helpers_protocol_magics +// - original source file: build/firmware/src/apps/cardano/helpers/protocol_magics.mpy +// - frozen file name: apps/cardano/helpers/protocol_magics.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/helpers/protocol_magics.py, scope apps_cardano_helpers_protocol_magics__lt_module_gt_ +static const byte fun_data_apps_cardano_helpers_protocol_magics__lt_module_gt_[82] = { + 0x10,0x1c, // prelude + 0x01, // names: + 0x6c,0x28,0x23,0x23,0x44,0x22,0x29,0x24,0x24,0x67,0x20,0x64,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x22,0x82,0xec,0xd9,0x94,0x09, // LOAD_CONST_SMALL_INT 764824073 + 0x16,0x09, // STORE_NAME 'MAINNET' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x0a, // STORE_NAME 'TESTNET_PREPROD' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x0b, // STORE_NAME 'TESTNET_PREVIEW' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x0c, // STORE_NAME 'TESTNET_LEGACY' + 0x2c,0x04, // BUILD_MAP 4 + 0x10,0x04, // LOAD_CONST_STRING 'Mainnet' + 0x22,0x82,0xec,0xd9,0x94,0x09, // LOAD_CONST_SMALL_INT 764824073 + 0x62, // STORE_MAP + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x62, // STORE_MAP + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x62, // STORE_MAP + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x62, // STORE_MAP + 0x16,0x0d, // STORE_NAME 'NAMES' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x05, // STORE_NAME 'is_mainnet' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x06, // STORE_NAME 'to_ui_string' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_helpers_protocol_magics__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/protocol_magics.py, scope apps_cardano_helpers_protocol_magics_is_mainnet +static const byte fun_data_apps_cardano_helpers_protocol_magics_is_mainnet[15] = { + 0x11,0x08, // prelude + 0x05,0x0e, // names: is_mainnet, protocol_magic + 0x80,0x11, // code info + 0xb0, // LOAD_FAST 0 + 0x22,0x82,0xec,0xd9,0x94,0x09, // LOAD_CONST_SMALL_INT 764824073 + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_protocol_magics_is_mainnet = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_protocol_magics_is_mainnet, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_cardano_helpers_protocol_magics_is_mainnet + 4, + .line_info_top = fun_data_apps_cardano_helpers_protocol_magics_is_mainnet + 6, + .opcodes = fun_data_apps_cardano_helpers_protocol_magics_is_mainnet + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_protocol_magics__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/protocol_magics.py, scope apps_cardano_helpers_protocol_magics_to_ui_string +static const byte fun_data_apps_cardano_helpers_protocol_magics_to_ui_string[16] = { + 0x21,0x08, // prelude + 0x06,0x0f, // names: to_ui_string, value + 0x80,0x15, // code info + 0x12,0x0d, // LOAD_GLOBAL 'NAMES' + 0x14,0x07, // LOAD_METHOD 'get' + 0xb0, // LOAD_FAST 0 + 0x10,0x08, // LOAD_CONST_STRING 'Unknown' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_protocol_magics_to_ui_string = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_protocol_magics_to_ui_string, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_cardano_helpers_protocol_magics_to_ui_string + 4, + .line_info_top = fun_data_apps_cardano_helpers_protocol_magics_to_ui_string + 6, + .opcodes = fun_data_apps_cardano_helpers_protocol_magics_to_ui_string + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_helpers_protocol_magics__lt_module_gt_[] = { + &raw_code_apps_cardano_helpers_protocol_magics_is_mainnet, + &raw_code_apps_cardano_helpers_protocol_magics_to_ui_string, +}; + +static const mp_raw_code_t raw_code_apps_cardano_helpers_protocol_magics__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_helpers_protocol_magics__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 82, + #endif + .children = (void *)&children_apps_cardano_helpers_protocol_magics__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_helpers_protocol_magics__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_helpers_protocol_magics__lt_module_gt_ + 16, + .opcodes = fun_data_apps_cardano_helpers_protocol_magics__lt_module_gt_ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_helpers_protocol_magics[16] = { + MP_QSTR_apps_slash_cardano_slash_helpers_slash_protocol_magics_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_Mainnet, + MP_QSTR_is_mainnet, + MP_QSTR_to_ui_string, + MP_QSTR_get, + MP_QSTR_Unknown, + MP_QSTR_MAINNET, + MP_QSTR_TESTNET_PREPROD, + MP_QSTR_TESTNET_PREVIEW, + MP_QSTR_TESTNET_LEGACY, + MP_QSTR_NAMES, + MP_QSTR_protocol_magic, + MP_QSTR_value, +}; + +// constants +static const mp_obj_int_t const_obj_apps_cardano_helpers_protocol_magics_0 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xcb17,0x4170}}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_helpers_protocol_magics[4] = { + MP_ROM_PTR(&const_obj_apps_cardano_helpers_protocol_magics_0), + MP_ROM_QSTR(MP_QSTR_Preprod_space_Testnet), + MP_ROM_QSTR(MP_QSTR_Preview_space_Testnet), + MP_ROM_QSTR(MP_QSTR_Legacy_space_Testnet), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_helpers_protocol_magics = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_helpers_protocol_magics, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_helpers_protocol_magics, + }, + .rc = &raw_code_apps_cardano_helpers_protocol_magics__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_helpers_utils +// - original source file: build/firmware/src/apps/cardano/helpers/utils.mpy +// - frozen file name: apps/cardano/helpers/utils.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/helpers/utils.py, scope apps_cardano_helpers_utils__lt_module_gt_ +static const byte fun_data_apps_cardano_helpers_utils__lt_module_gt_[115] = { + 0x10,0x32, // prelude + 0x01, // names: + 0x40,0x4c,0x32,0x4c,0x60,0x60,0x84,0x11,0x64,0x20,0x84,0x09,0x84,0x07,0x64,0x20,0x84,0x0b,0x64,0x40,0x88,0x0a,0x84,0x14, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'hashlib' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x02, // IMPORT_FROM 'hashlib' + 0x16,0x02, // STORE_NAME 'hashlib' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING 'ADDRESS_KEY_HASH_SIZE' + 0x10,0x05, // LOAD_CONST_STRING 'bech32' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x06, // IMPORT_NAME '' + 0x1c,0x04, // IMPORT_FROM 'ADDRESS_KEY_HASH_SIZE' + 0x16,0x04, // STORE_NAME 'ADDRESS_KEY_HASH_SIZE' + 0x1c,0x05, // IMPORT_FROM 'bech32' + 0x16,0x05, // STORE_NAME 'bech32' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x07, // LOAD_CONST_STRING 'ACCOUNT_PATH_INDEX' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'paths' + 0x1c,0x07, // IMPORT_FROM 'ACCOUNT_PATH_INDEX' + 0x16,0x07, // STORE_NAME 'ACCOUNT_PATH_INDEX' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x09, // STORE_NAME 'variable_length_encode' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0c, // STORE_NAME 'to_account_path' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0d, // STORE_NAME 'format_account_number' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x10, // STORE_NAME 'format_optional_int' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x12, // STORE_NAME 'format_stake_pool_id' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x15, // STORE_NAME 'format_asset_fingerprint' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x1b, // STORE_NAME 'get_public_key_hash' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x07, // MAKE_FUNCTION_DEFARGS 7 + 0x16,0x1c, // STORE_NAME 'derive_public_key' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x22, // STORE_NAME 'validate_stake_credential' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x26, // STORE_NAME 'validate_network_info' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_helpers_utils__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/utils.py, scope apps_cardano_helpers_utils_variable_length_encode +static const byte fun_data_apps_cardano_helpers_utils_variable_length_encode[77] = { + 0x29,0x18, // prelude + 0x09,0x2e, // names: variable_length_encode, number + 0x80,0x0e,0x60,0x40,0x25,0x4c,0x28,0x22,0x24,0x56, // code info + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x2f, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x14,0x0a, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0xef, // BINARY_OP 24 __and__ + 0x2b,0x01, // BUILD_LIST 1 + 0xc1, // STORE_FAST 1 + 0x42,0x53, // JUMP 19 + 0xb0, // LOAD_FAST 0 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xe4, // BINARY_OP 13 __irshift__ + 0xc0, // STORE_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x14,0x0b, // LOAD_METHOD 'append' + 0xb0, // LOAD_FAST 0 + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0xef, // BINARY_OP 24 __and__ + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x26, // POP_JUMP_IF_TRUE -26 + 0x12,0x30, // LOAD_GLOBAL 'bytes' + 0x12,0x31, // LOAD_GLOBAL 'reversed' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_utils_variable_length_encode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_utils_variable_length_encode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 77, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_cardano_helpers_utils_variable_length_encode + 4, + .line_info_top = fun_data_apps_cardano_helpers_utils_variable_length_encode + 14, + .opcodes = fun_data_apps_cardano_helpers_utils_variable_length_encode + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_utils__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/utils.py, scope apps_cardano_helpers_utils_to_account_path +static const byte fun_data_apps_cardano_helpers_utils_to_account_path[16] = { + 0x21,0x08, // prelude + 0x0c,0x32, // names: to_account_path, path + 0x80,0x1f, // code info + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0x12,0x07, // LOAD_GLOBAL 'ACCOUNT_PATH_INDEX' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_utils_to_account_path = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_utils_to_account_path, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_cardano_helpers_utils_to_account_path + 4, + .line_info_top = fun_data_apps_cardano_helpers_utils_to_account_path + 6, + .opcodes = fun_data_apps_cardano_helpers_utils_to_account_path + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_utils__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/utils.py, scope apps_cardano_helpers_utils_format_account_number +static const byte fun_data_apps_cardano_helpers_utils_format_account_number[53] = { + 0x31,0x0e, // prelude + 0x0d,0x32, // names: format_account_number, path + 0x80,0x23,0x4b,0x2a,0x47, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0e, // LOAD_CONST_STRING 'unharden' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'paths' + 0x1c,0x0e, // IMPORT_FROM 'unharden' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x33, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x07, // LOAD_GLOBAL 'ACCOUNT_PATH_INDEX' + 0xda, // BINARY_OP 3 __le__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x2f, // LOAD_GLOBAL 'ValueError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x10,0x0f, // LOAD_CONST_STRING '#{}' + 0x14,0x0a, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x12,0x07, // LOAD_GLOBAL 'ACCOUNT_PATH_INDEX' + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_utils_format_account_number = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_utils_format_account_number, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 53, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_cardano_helpers_utils_format_account_number + 4, + .line_info_top = fun_data_apps_cardano_helpers_utils_format_account_number + 9, + .opcodes = fun_data_apps_cardano_helpers_utils_format_account_number + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_utils__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/utils.py, scope apps_cardano_helpers_utils_format_optional_int +static const byte fun_data_apps_cardano_helpers_utils_format_optional_int[22] = { + 0x11,0x0c, // prelude + 0x10,0x2e, // names: format_optional_int, number + 0x80,0x2c,0x25,0x43, // code info + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x10,0x11, // LOAD_CONST_STRING 'n/a' + 0x63, // RETURN_VALUE + 0x12,0x34, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_utils_format_optional_int = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_utils_format_optional_int, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_cardano_helpers_utils_format_optional_int + 4, + .line_info_top = fun_data_apps_cardano_helpers_utils_format_optional_int + 8, + .opcodes = fun_data_apps_cardano_helpers_utils_format_optional_int + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_utils__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/utils.py, scope apps_cardano_helpers_utils_format_stake_pool_id +static const byte fun_data_apps_cardano_helpers_utils_format_stake_pool_id[16] = { + 0x21,0x08, // prelude + 0x12,0x35, // names: format_stake_pool_id, pool_id_bytes + 0x80,0x33, // code info + 0x12,0x05, // LOAD_GLOBAL 'bech32' + 0x14,0x13, // LOAD_METHOD 'encode' + 0x10,0x14, // LOAD_CONST_STRING 'pool' + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_utils_format_stake_pool_id = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_utils_format_stake_pool_id, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_cardano_helpers_utils_format_stake_pool_id + 4, + .line_info_top = fun_data_apps_cardano_helpers_utils_format_stake_pool_id + 6, + .opcodes = fun_data_apps_cardano_helpers_utils_format_stake_pool_id + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_utils__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/utils.py, scope apps_cardano_helpers_utils_format_asset_fingerprint +static const byte fun_data_apps_cardano_helpers_utils_format_asset_fingerprint[48] = { + 0x42,0x10, // prelude + 0x15,0x36,0x37, // names: format_asset_fingerprint, policy_id, asset_name_bytes + 0x80,0x37,0x66,0x76,0x20, // code info + 0x12,0x02, // LOAD_GLOBAL 'hashlib' + 0x14,0x16, // LOAD_METHOD 'blake2b' + 0x10,0x17, // LOAD_CONST_STRING 'data' + 0x12,0x30, // LOAD_GLOBAL 'bytes' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x30, // LOAD_GLOBAL 'bytes' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x18, // LOAD_CONST_STRING 'outlen' + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x36,0x84,0x00, // CALL_METHOD 512 + 0x14,0x19, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0x12,0x05, // LOAD_GLOBAL 'bech32' + 0x14,0x13, // LOAD_METHOD 'encode' + 0x10,0x1a, // LOAD_CONST_STRING 'asset' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_utils_format_asset_fingerprint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_utils_format_asset_fingerprint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_cardano_helpers_utils_format_asset_fingerprint + 5, + .line_info_top = fun_data_apps_cardano_helpers_utils_format_asset_fingerprint + 10, + .opcodes = fun_data_apps_cardano_helpers_utils_format_asset_fingerprint + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_utils__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/utils.py, scope apps_cardano_helpers_utils_get_public_key_hash +static const byte fun_data_apps_cardano_helpers_utils_get_public_key_hash[34] = { + 0x42,0x0c, // prelude + 0x1b,0x38,0x32, // names: get_public_key_hash, keychain, path + 0x80,0x42,0x27, // code info + 0x12,0x1c, // LOAD_GLOBAL 'derive_public_key' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc2, // STORE_FAST 2 + 0x12,0x02, // LOAD_GLOBAL 'hashlib' + 0x14,0x16, // LOAD_METHOD 'blake2b' + 0x10,0x17, // LOAD_CONST_STRING 'data' + 0xb2, // LOAD_FAST 2 + 0x10,0x18, // LOAD_CONST_STRING 'outlen' + 0x12,0x04, // LOAD_GLOBAL 'ADDRESS_KEY_HASH_SIZE' + 0x36,0x84,0x00, // CALL_METHOD 512 + 0x14,0x19, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_utils_get_public_key_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_utils_get_public_key_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 27, + .line_info = fun_data_apps_cardano_helpers_utils_get_public_key_hash + 5, + .line_info_top = fun_data_apps_cardano_helpers_utils_get_public_key_hash + 8, + .opcodes = fun_data_apps_cardano_helpers_utils_get_public_key_hash + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_utils__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/utils.py, scope apps_cardano_helpers_utils_derive_public_key +static const byte fun_data_apps_cardano_helpers_utils_derive_public_key[52] = { + 0xc3,0x01,0x12, // prelude + 0x1c,0x38,0x32,0x39, // names: derive_public_key, keychain, path, extended + 0x80,0x49,0x4b,0x27,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1d, // LOAD_CONST_STRING 'remove_ed25519_prefix' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME 'apps.common.seed' + 0x1c,0x1d, // IMPORT_FROM 'remove_ed25519_prefix' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x1f, // LOAD_METHOD 'derive' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x14,0x20, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0xb5, // LOAD_FAST 5 + 0x63, // RETURN_VALUE + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x14,0x21, // LOAD_METHOD 'chain_code' + 0x36,0x00, // CALL_METHOD 0 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_utils_derive_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_helpers_utils_derive_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 52, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 28, + .line_info = fun_data_apps_cardano_helpers_utils_derive_public_key + 7, + .line_info_top = fun_data_apps_cardano_helpers_utils_derive_public_key + 12, + .opcodes = fun_data_apps_cardano_helpers_utils_derive_public_key + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_utils__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/utils.py, scope apps_cardano_helpers_utils_validate_stake_credential +static const byte fun_data_apps_cardano_helpers_utils_validate_stake_credential[105] = { + 0xd0,0x04,0x20, // prelude + 0x22,0x32,0x3a,0x3b,0x3c, // names: validate_stake_credential, path, script_hash, key_hash, error + 0x80,0x56,0x2b,0x4b,0x32,0x42,0x2b,0x22,0x2c,0x22,0x2d, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x23, // LOAD_CONST_STRING 'SCRIPT_HASH_SIZE' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME '' + 0x1c,0x23, // IMPORT_FROM 'SCRIPT_HASH_SIZE' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x24, // LOAD_CONST_STRING 'SCHEMA_STAKING_ANY_ACCOUNT' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'paths' + 0x1c,0x24, // IMPORT_FROM 'SCHEMA_STAKING_ANY_ACCOUNT' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL 'sum' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb3, // LOAD_FAST 3 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb5, // LOAD_FAST 5 + 0x14,0x25, // LOAD_METHOD 'match' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0xb3, // LOAD_FAST 3 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x33, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb4, // LOAD_FAST 4 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb3, // LOAD_FAST 3 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x33, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x04, // LOAD_GLOBAL 'ADDRESS_KEY_HASH_SIZE' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb3, // LOAD_FAST 3 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_helpers_utils_validate_stake_credential +// frozen bytecode for file apps/cardano/helpers/utils.py, scope apps_cardano_helpers_utils_validate_stake_credential__lt_genexpr_gt_ +static const byte fun_data_apps_cardano_helpers_utils_validate_stake_credential__lt_genexpr_gt_[25] = { + 0xb9,0x40,0x08, // prelude + 0x2d,0x40, // names: , * + 0x80,0x59, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0a, // FOR_ITER 10 + 0xc1, // STORE_FAST 1 + 0x12,0x41, // LOAD_GLOBAL 'bool' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_utils_validate_stake_credential__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_helpers_utils_validate_stake_credential__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_cardano_helpers_utils_validate_stake_credential__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_apps_cardano_helpers_utils_validate_stake_credential__lt_genexpr_gt_ + 7, + .opcodes = fun_data_apps_cardano_helpers_utils_validate_stake_credential__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_helpers_utils_validate_stake_credential[] = { + &raw_code_apps_cardano_helpers_utils_validate_stake_credential__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_cardano_helpers_utils_validate_stake_credential = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_helpers_utils_validate_stake_credential, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 105, + #endif + .children = (void *)&children_apps_cardano_helpers_utils_validate_stake_credential, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_apps_cardano_helpers_utils_validate_stake_credential + 8, + .line_info_top = fun_data_apps_cardano_helpers_utils_validate_stake_credential + 19, + .opcodes = fun_data_apps_cardano_helpers_utils_validate_stake_credential + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_helpers_utils__lt_module_gt_ +// frozen bytecode for file apps/cardano/helpers/utils.py, scope apps_cardano_helpers_utils_validate_network_info +static const byte fun_data_apps_cardano_helpers_utils_validate_network_info[70] = { + 0x4a,0x18, // prelude + 0x26,0x3e,0x3f, // names: validate_network_info, network_id, protocol_magic + 0x80,0x65,0x60,0x40,0x4b,0x50,0x27,0x47,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x27, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x28, // IMPORT_NAME 'trezor' + 0x1c,0x27, // IMPORT_FROM 'wire' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x29, // LOAD_CONST_STRING 'network_ids' + 0x10,0x2a, // LOAD_CONST_STRING 'protocol_magics' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x06, // IMPORT_NAME '' + 0x1c,0x29, // IMPORT_FROM 'network_ids' + 0xc3, // STORE_FAST 3 + 0x1c,0x2a, // IMPORT_FROM 'protocol_magics' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x2b, // LOAD_METHOD 'is_mainnet' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x14,0x2b, // LOAD_METHOD 'is_mainnet' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x2c, // LOAD_METHOD 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_helpers_utils_validate_network_info = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_helpers_utils_validate_network_info, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 38, + .line_info = fun_data_apps_cardano_helpers_utils_validate_network_info + 5, + .line_info_top = fun_data_apps_cardano_helpers_utils_validate_network_info + 14, + .opcodes = fun_data_apps_cardano_helpers_utils_validate_network_info + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_helpers_utils__lt_module_gt_[] = { + &raw_code_apps_cardano_helpers_utils_variable_length_encode, + &raw_code_apps_cardano_helpers_utils_to_account_path, + &raw_code_apps_cardano_helpers_utils_format_account_number, + &raw_code_apps_cardano_helpers_utils_format_optional_int, + &raw_code_apps_cardano_helpers_utils_format_stake_pool_id, + &raw_code_apps_cardano_helpers_utils_format_asset_fingerprint, + &raw_code_apps_cardano_helpers_utils_get_public_key_hash, + &raw_code_apps_cardano_helpers_utils_derive_public_key, + &raw_code_apps_cardano_helpers_utils_validate_stake_credential, + &raw_code_apps_cardano_helpers_utils_validate_network_info, +}; + +static const mp_raw_code_t raw_code_apps_cardano_helpers_utils__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_helpers_utils__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 115, + #endif + .children = (void *)&children_apps_cardano_helpers_utils__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 10, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_helpers_utils__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_helpers_utils__lt_module_gt_ + 27, + .opcodes = fun_data_apps_cardano_helpers_utils__lt_module_gt_ + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_helpers_utils[66] = { + MP_QSTR_apps_slash_cardano_slash_helpers_slash_utils_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_hashlib, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_ADDRESS_KEY_HASH_SIZE, + MP_QSTR_bech32, + MP_QSTR_, + MP_QSTR_ACCOUNT_PATH_INDEX, + MP_QSTR_paths, + MP_QSTR_variable_length_encode, + MP_QSTR_format, + MP_QSTR_append, + MP_QSTR_to_account_path, + MP_QSTR_format_account_number, + MP_QSTR_unharden, + MP_QSTR__hash__brace_open__brace_close_, + MP_QSTR_format_optional_int, + MP_QSTR_n_slash_a, + MP_QSTR_format_stake_pool_id, + MP_QSTR_encode, + MP_QSTR_pool, + MP_QSTR_format_asset_fingerprint, + MP_QSTR_blake2b, + MP_QSTR_data, + MP_QSTR_outlen, + MP_QSTR_digest, + MP_QSTR_asset, + MP_QSTR_get_public_key_hash, + MP_QSTR_derive_public_key, + MP_QSTR_remove_ed25519_prefix, + MP_QSTR_apps_dot_common_dot_seed, + MP_QSTR_derive, + MP_QSTR_public_key, + MP_QSTR_chain_code, + MP_QSTR_validate_stake_credential, + MP_QSTR_SCRIPT_HASH_SIZE, + MP_QSTR_SCHEMA_STAKING_ANY_ACCOUNT, + MP_QSTR_match, + MP_QSTR_validate_network_info, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_network_ids, + MP_QSTR_protocol_magics, + MP_QSTR_is_mainnet, + MP_QSTR_ProcessError, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_number, + MP_QSTR_ValueError, + MP_QSTR_bytes, + MP_QSTR_reversed, + MP_QSTR_path, + MP_QSTR_len, + MP_QSTR_str, + MP_QSTR_pool_id_bytes, + MP_QSTR_policy_id, + MP_QSTR_asset_name_bytes, + MP_QSTR_keychain, + MP_QSTR_extended, + MP_QSTR_script_hash, + MP_QSTR_key_hash, + MP_QSTR_error, + MP_QSTR_sum, + MP_QSTR_network_id, + MP_QSTR_protocol_magic, + MP_QSTR__star_, + MP_QSTR_bool, +}; + +// constants +static const mp_obj_str_t const_obj_apps_cardano_helpers_utils_0 = {{&mp_type_str}, 57150, 51, (const byte*)"\x4e\x65\x67\x61\x74\x69\x76\x65\x20\x6e\x75\x6d\x62\x65\x72\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x2e\x20\x4e\x75\x6d\x62\x65\x72\x20\x73\x75\x70\x70\x6c\x69\x65\x64\x3a\x20\x7b\x7d"}; +static const mp_obj_str_t const_obj_apps_cardano_helpers_utils_2 = {{&mp_type_str}, 3047, 46, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x6e\x65\x74\x77\x6f\x72\x6b\x20\x69\x64\x2f\x70\x72\x6f\x74\x6f\x63\x6f\x6c\x20\x6d\x61\x67\x69\x63\x20\x63\x6f\x6d\x62\x69\x6e\x61\x74\x69\x6f\x6e\x21"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_helpers_utils[3] = { + MP_ROM_PTR(&const_obj_apps_cardano_helpers_utils_0), + MP_ROM_QSTR(MP_QSTR_Path_space_is_space_too_space_short_dot_), + MP_ROM_PTR(&const_obj_apps_cardano_helpers_utils_2), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_helpers_utils = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_helpers_utils, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_helpers_utils, + }, + .rc = &raw_code_apps_cardano_helpers_utils__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_sign_tx___init__ +// - original source file: build/firmware/src/apps/cardano/sign_tx/__init__.mpy +// - frozen file name: apps/cardano/sign_tx/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/sign_tx/__init__.py, scope apps_cardano_sign_tx___init____lt_module_gt_ +static const byte fun_data_apps_cardano_sign_tx___init____lt_module_gt_[31] = { + 0x08,0x0a, // prelude + 0x01, // names: + 0x40,0x4c,0x60,0x60, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x02, // LOAD_CONST_STRING 'seed' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME '' + 0x1c,0x02, // IMPORT_FROM 'seed' + 0x16,0x02, // STORE_NAME 'seed' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'seed' + 0x13,0x04, // LOAD_ATTR 'with_keychain' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x05, // STORE_NAME 'sign_tx' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_sign_tx___init____lt_module_gt_ +// frozen bytecode for file apps/cardano/sign_tx/__init__.py, scope apps_cardano_sign_tx___init___sign_tx +static const byte fun_data_apps_cardano_sign_tx___init___sign_tx[226] = { + 0xa2,0x52,0x3a, // prelude + 0x05,0x1e,0x1f, // names: sign_tx, msg, keychain + 0x80,0x0e,0x30,0x2b,0x4b,0x4b,0x44,0x20,0x27,0x4b,0x25,0x27,0x4b,0x24,0x27,0x4b,0x24,0x27,0x4b,0x44,0x43,0x46,0x22,0x54,0x40,0x51, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'log' + 0x10,0x07, // LOAD_CONST_STRING 'wire' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x08, // IMPORT_NAME 'trezor' + 0x1c,0x06, // IMPORT_FROM 'log' + 0xc2, // STORE_FAST 2 + 0x1c,0x07, // IMPORT_FROM 'wire' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'CardanoTxSigningMode' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.enums' + 0x1c,0x09, // IMPORT_FROM 'CardanoTxSigningMode' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'CardanoSignTxFinished' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0b, // IMPORT_FROM 'CardanoSignTxFinished' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0d, // LOAD_CONST_STRING 'Signer' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'signer' + 0x1c,0x0d, // IMPORT_FROM 'Signer' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'signing_mode' + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x13,0x10, // LOAD_ATTR 'ORDINARY_TRANSACTION' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x11, // LOAD_CONST_STRING 'OrdinarySigner' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x12, // IMPORT_NAME 'ordinary_signer' + 0x1c,0x11, // IMPORT_FROM 'OrdinarySigner' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0xc8, // STORE_FAST 8 + 0x42,0xc5,0x80, // JUMP 69 + 0xb7, // LOAD_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x13,0x13, // LOAD_ATTR 'POOL_REGISTRATION_AS_OWNER' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x14, // LOAD_CONST_STRING 'PoolOwnerSigner' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x15, // IMPORT_NAME 'pool_owner_signer' + 0x1c,0x14, // IMPORT_FROM 'PoolOwnerSigner' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0xba, // LOAD_FAST 10 + 0xc8, // STORE_FAST 8 + 0x42,0x6f, // JUMP 47 + 0xb7, // LOAD_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x13,0x16, // LOAD_ATTR 'MULTISIG_TRANSACTION' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x17, // LOAD_CONST_STRING 'MultisigSigner' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME 'multisig_signer' + 0x1c,0x17, // IMPORT_FROM 'MultisigSigner' + 0xcb, // STORE_FAST 11 + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0xc8, // STORE_FAST 8 + 0x42,0x59, // JUMP 25 + 0xb7, // LOAD_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x13,0x19, // LOAD_ATTR 'PLUTUS_TRANSACTION' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1a, // LOAD_CONST_STRING 'PlutusSigner' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1b, // IMPORT_NAME 'plutus_signer' + 0x1c,0x1a, // IMPORT_FROM 'PlutusSigner' + 0xcc, // STORE_FAST 12 + 0x59, // POP_TOP + 0xbc, // LOAD_FAST 12 + 0xc8, // STORE_FAST 8 + 0x42,0x43, // JUMP 3 + 0x12,0x20, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb8, // LOAD_FAST 8 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xcd, // STORE_FAST 13 + 0x48,0x0b, // SETUP_EXCEPT 11 + 0xbd, // LOAD_FAST 13 + 0x14,0x1c, // LOAD_METHOD 'sign' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x4a,0x1a, // POP_EXCEPT_JUMP 26 + 0x57, // DUP_TOP + 0x12,0x21, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xce, // STORE_FAST 14 + 0x49,0x09, // SETUP_FINALLY 9 + 0xb3, // LOAD_FAST 3 + 0x14,0x1d, // LOAD_METHOD 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xce, // STORE_FAST 14 + 0x28,0x0e, // DELETE_FAST 14 + 0x5d, // END_FINALLY + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb5, // LOAD_FAST 5 + 0x34,0x00, // CALL_FUNCTION 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx___init___sign_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx___init___sign_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 226, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 21, + .n_exc_stack = 2, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_cardano_sign_tx___init___sign_tx + 6, + .line_info_top = fun_data_apps_cardano_sign_tx___init___sign_tx + 32, + .opcodes = fun_data_apps_cardano_sign_tx___init___sign_tx + 32, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_sign_tx___init____lt_module_gt_[] = { + &raw_code_apps_cardano_sign_tx___init___sign_tx, +}; + +static const mp_raw_code_t raw_code_apps_cardano_sign_tx___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_sign_tx___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = (void *)&children_apps_cardano_sign_tx___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_sign_tx___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_sign_tx___init____lt_module_gt_ + 7, + .opcodes = fun_data_apps_cardano_sign_tx___init____lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_sign_tx___init__[34] = { + MP_QSTR_apps_slash_cardano_slash_sign_tx_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_seed, + MP_QSTR_, + MP_QSTR_with_keychain, + MP_QSTR_sign_tx, + MP_QSTR_log, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_CardanoTxSigningMode, + MP_QSTR_trezor_dot_enums, + MP_QSTR_CardanoSignTxFinished, + MP_QSTR_trezor_dot_messages, + MP_QSTR_Signer, + MP_QSTR_signer, + MP_QSTR_signing_mode, + MP_QSTR_ORDINARY_TRANSACTION, + MP_QSTR_OrdinarySigner, + MP_QSTR_ordinary_signer, + MP_QSTR_POOL_REGISTRATION_AS_OWNER, + MP_QSTR_PoolOwnerSigner, + MP_QSTR_pool_owner_signer, + MP_QSTR_MULTISIG_TRANSACTION, + MP_QSTR_MultisigSigner, + MP_QSTR_multisig_signer, + MP_QSTR_PLUTUS_TRANSACTION, + MP_QSTR_PlutusSigner, + MP_QSTR_plutus_signer, + MP_QSTR_sign, + MP_QSTR_ProcessError, + MP_QSTR_msg, + MP_QSTR_keychain, + MP_QSTR_RuntimeError, + MP_QSTR_ValueError, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_sign_tx___init__[1] = { + MP_ROM_QSTR(MP_QSTR_Signing_space_failed), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_sign_tx___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_sign_tx___init__, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_sign_tx___init__, + }, + .rc = &raw_code_apps_cardano_sign_tx___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_sign_tx_multisig_signer +// - original source file: build/firmware/src/apps/cardano/sign_tx/multisig_signer.mpy +// - frozen file name: apps/cardano/sign_tx/multisig_signer.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/sign_tx/multisig_signer.py, scope apps_cardano_sign_tx_multisig_signer__lt_module_gt_ +static const byte fun_data_apps_cardano_sign_tx_multisig_signer__lt_module_gt_[45] = { + 0x18,0x0c, // prelude + 0x01, // names: + 0x40,0x4c,0x4c,0x60,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.wire' + 0x1c,0x02, // IMPORT_FROM 'ProcessError' + 0x16,0x02, // STORE_NAME 'ProcessError' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING 'Signer' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'signer' + 0x1c,0x04, // IMPORT_FROM 'Signer' + 0x16,0x04, // STORE_NAME 'Signer' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x06, // LOAD_CONST_STRING 'MultisigSigner' + 0x11,0x04, // LOAD_NAME 'Signer' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x06, // STORE_NAME 'MultisigSigner' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_sign_tx_multisig_signer__lt_module_gt_ +// frozen bytecode for file apps/cardano/sign_tx/multisig_signer.py, scope apps_cardano_sign_tx_multisig_signer_MultisigSigner +static const byte fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner[67] = { + 0x08,0x21, // prelude + 0x06, // names: MultisigSigner + 0x88,0x0b,0x60,0x20,0x44,0x86,0x0a,0x84,0x12,0x66,0x40,0x86,0x09,0x66,0x40,0x00, // code info + 0x11,0x2a, // LOAD_NAME '__name__' + 0x16,0x2b, // STORE_NAME '__module__' + 0x10,0x06, // LOAD_CONST_STRING 'MultisigSigner' + 0x16,0x2c, // STORE_NAME '__qualname__' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x2d, // STORE_NAME 'SIGNING_MODE_TITLE' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x07, // STORE_NAME '_validate_tx_init' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0e, // STORE_NAME '_confirm_tx' + 0xb0, // LOAD_FAST 0 + 0x20,0x02,0x01, // MAKE_CLOSURE 2 + 0x16,0x19, // STORE_NAME '_validate_output' + 0xb0, // LOAD_FAST 0 + 0x20,0x03,0x01, // MAKE_CLOSURE 3 + 0x16,0x1b, // STORE_NAME '_validate_certificate' + 0xb0, // LOAD_FAST 0 + 0x20,0x04,0x01, // MAKE_CLOSURE 4 + 0x16,0x22, // STORE_NAME '_validate_withdrawal' + 0xb0, // LOAD_FAST 0 + 0x20,0x05,0x01, // MAKE_CLOSURE 5 + 0x16,0x23, // STORE_NAME '_validate_witness_request' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_sign_tx_multisig_signer_MultisigSigner +// frozen bytecode for file apps/cardano/sign_tx/multisig_signer.py, scope apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_tx_init +static const byte fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_tx_init[68] = { + 0x32,0x16, // prelude + 0x07,0x2e,0x2f, // names: _validate_tx_init, *, self + 0x80,0x12,0x24,0x44,0x2a,0x29,0x28,0x29, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x08, // LOAD_ATTR 'msg' + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x09, // LOAD_ATTR '_assert_tx_init_cond' + 0xc3, // STORE_FAST 3 + 0x12,0x30, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x07, // LOAD_SUPER_METHOD '_validate_tx_init' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x0a, // LOAD_ATTR 'collateral_inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x0b, // LOAD_ATTR 'has_collateral_return' + 0xd3, // UNARY_OP 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x0c, // LOAD_ATTR 'total_collateral' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x0d, // LOAD_ATTR 'reference_inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_tx_init = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_tx_init, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 68, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_tx_init + 5, + .line_info_top = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_tx_init + 13, + .opcodes = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_tx_init + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_multisig_signer_MultisigSigner +// frozen bytecode for file apps/cardano/sign_tx/multisig_signer.py, scope apps_cardano_sign_tx_multisig_signer_MultisigSigner__confirm_tx +static const byte fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__confirm_tx[72] = { + 0xfa,0x40,0x1c, // prelude + 0x0e,0x2f,0x18, // names: _confirm_tx, self, tx_hash + 0x80,0x1c,0x4b,0x64,0x26,0x23,0x23,0x23,0x23,0x23,0x23, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x0f, // LOAD_CONST_STRING 'layout' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME '' + 0x1c,0x0f, // IMPORT_FROM 'layout' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'msg' + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x14,0x11, // LOAD_METHOD '_is_network_id_verifiable' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x14,0x12, // LOAD_METHOD 'confirm_tx' + 0xb3, // LOAD_FAST 3 + 0x13,0x13, // LOAD_ATTR 'fee' + 0xb3, // LOAD_FAST 3 + 0x13,0x14, // LOAD_ATTR 'network_id' + 0xb3, // LOAD_FAST 3 + 0x13,0x15, // LOAD_ATTR 'protocol_magic' + 0xb3, // LOAD_FAST 3 + 0x13,0x16, // LOAD_ATTR 'ttl' + 0xb3, // LOAD_FAST 3 + 0x13,0x17, // LOAD_ATTR 'validity_interval_start' + 0xb3, // LOAD_FAST 3 + 0x13,0x0c, // LOAD_ATTR 'total_collateral' + 0xb4, // LOAD_FAST 4 + 0x10,0x18, // LOAD_CONST_STRING 'tx_hash' + 0x51, // LOAD_CONST_NONE + 0x36,0x82,0x07, // CALL_METHOD 263 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_multisig_signer_MultisigSigner__confirm_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__confirm_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__confirm_tx + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__confirm_tx + 17, + .opcodes = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__confirm_tx + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_multisig_signer_MultisigSigner +// frozen bytecode for file apps/cardano/sign_tx/multisig_signer.py, scope apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_output +static const byte fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_output[38] = { + 0x2b,0x10, // prelude + 0x19,0x2e,0x2f,0x31, // names: _validate_output, *, self, output + 0x80,0x2e,0x2b,0x28, // code info + 0x12,0x30, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x19, // LOAD_SUPER_METHOD '_validate_output' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x1a, // LOAD_ATTR 'address_parameters' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_output + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_output + 10, + .opcodes = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_output + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_multisig_signer_MultisigSigner +// frozen bytecode for file apps/cardano/sign_tx/multisig_signer.py, scope apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_certificate +static const byte fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_certificate[70] = { + 0x33,0x16, // prelude + 0x1b,0x2e,0x2f,0x32, // names: _validate_certificate, *, self, certificate + 0x80,0x33,0x4b,0x2b,0x29,0x27,0x2a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1c, // LOAD_CONST_STRING 'CardanoCertificateType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1d, // IMPORT_NAME 'trezor.enums' + 0x1c,0x1c, // IMPORT_FROM 'CardanoCertificateType' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x30, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x1b, // LOAD_SUPER_METHOD '_validate_certificate' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x1e, // LOAD_ATTR 'type' + 0xb3, // LOAD_FAST 3 + 0x13,0x1f, // LOAD_ATTR 'STAKE_POOL_REGISTRATION' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x13,0x20, // LOAD_ATTR 'path' + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb2, // LOAD_FAST 2 + 0x13,0x21, // LOAD_ATTR 'key_hash' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_certificate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_certificate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 27, + .line_info = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_certificate + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_certificate + 13, + .opcodes = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_certificate + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_multisig_signer_MultisigSigner +// frozen bytecode for file apps/cardano/sign_tx/multisig_signer.py, scope apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_withdrawal +static const byte fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_withdrawal[40] = { + 0x2b,0x10, // prelude + 0x22,0x2e,0x2f,0x33, // names: _validate_withdrawal, *, self, withdrawal + 0x80,0x3c,0x2b,0x2a, // code info + 0x12,0x30, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x22, // LOAD_SUPER_METHOD '_validate_withdrawal' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x20, // LOAD_ATTR 'path' + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb2, // LOAD_FAST 2 + 0x13,0x21, // LOAD_ATTR 'key_hash' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_withdrawal = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_withdrawal, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 40, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_withdrawal + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_withdrawal + 10, + .opcodes = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_withdrawal + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_multisig_signer_MultisigSigner +// frozen bytecode for file apps/cardano/sign_tx/multisig_signer.py, scope apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_witness_request +static const byte fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_witness_request[90] = { + 0x4b,0x1a, // prelude + 0x23,0x2e,0x2f,0x34, // names: _validate_witness_request, *, self, witness_request + 0x80,0x43,0x2b,0x4b,0x2b,0x29,0x48,0x20,0x70, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x24, // LOAD_CONST_STRING 'seed' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME '' + 0x1c,0x24, // IMPORT_FROM 'seed' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x25, // LOAD_CONST_STRING 'SCHEMA_MINT' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x26, // IMPORT_NAME 'helpers.paths' + 0x1c,0x25, // IMPORT_FROM 'SCHEMA_MINT' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x12,0x30, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x23, // LOAD_SUPER_METHOD '_validate_witness_request' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x27, // LOAD_METHOD 'match' + 0xb2, // LOAD_FAST 2 + 0x13,0x20, // LOAD_ATTR 'path' + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x08, // LOAD_ATTR 'msg' + 0x13,0x28, // LOAD_ATTR 'minting_asset_groups_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0xc6, // STORE_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x14,0x29, // LOAD_METHOD 'is_multisig_path' + 0xb2, // LOAD_FAST 2 + 0x13,0x20, // LOAD_ATTR 'path' + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x4d, // POP_JUMP_IF_TRUE 13 + 0xb5, // LOAD_FAST 5 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0xb6, // LOAD_FAST 6 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_witness_request = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_witness_request, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 90, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_witness_request + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_witness_request + 15, + .opcodes = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_witness_request + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_sign_tx_multisig_signer_MultisigSigner[] = { + &raw_code_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_tx_init, + &raw_code_apps_cardano_sign_tx_multisig_signer_MultisigSigner__confirm_tx, + &raw_code_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_output, + &raw_code_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_certificate, + &raw_code_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_withdrawal, + &raw_code_apps_cardano_sign_tx_multisig_signer_MultisigSigner__validate_witness_request, +}; + +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_multisig_signer_MultisigSigner = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 67, + #endif + .children = (void *)&children_apps_cardano_sign_tx_multisig_signer_MultisigSigner, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner + 3, + .line_info_top = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner + 18, + .opcodes = fun_data_apps_cardano_sign_tx_multisig_signer_MultisigSigner + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_sign_tx_multisig_signer__lt_module_gt_[] = { + &raw_code_apps_cardano_sign_tx_multisig_signer_MultisigSigner, +}; + +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_multisig_signer__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_sign_tx_multisig_signer__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = (void *)&children_apps_cardano_sign_tx_multisig_signer__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_sign_tx_multisig_signer__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_sign_tx_multisig_signer__lt_module_gt_ + 8, + .opcodes = fun_data_apps_cardano_sign_tx_multisig_signer__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_sign_tx_multisig_signer[53] = { + MP_QSTR_apps_slash_cardano_slash_sign_tx_slash_multisig_signer_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_Signer, + MP_QSTR_signer, + MP_QSTR_MultisigSigner, + MP_QSTR__validate_tx_init, + MP_QSTR_msg, + MP_QSTR__assert_tx_init_cond, + MP_QSTR_collateral_inputs_count, + MP_QSTR_has_collateral_return, + MP_QSTR_total_collateral, + MP_QSTR_reference_inputs_count, + MP_QSTR__confirm_tx, + MP_QSTR_layout, + MP_QSTR_, + MP_QSTR__is_network_id_verifiable, + MP_QSTR_confirm_tx, + MP_QSTR_fee, + MP_QSTR_network_id, + MP_QSTR_protocol_magic, + MP_QSTR_ttl, + MP_QSTR_validity_interval_start, + MP_QSTR_tx_hash, + MP_QSTR__validate_output, + MP_QSTR_address_parameters, + MP_QSTR__validate_certificate, + MP_QSTR_CardanoCertificateType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_type, + MP_QSTR_STAKE_POOL_REGISTRATION, + MP_QSTR_path, + MP_QSTR_key_hash, + MP_QSTR__validate_withdrawal, + MP_QSTR__validate_witness_request, + MP_QSTR_seed, + MP_QSTR_SCHEMA_MINT, + MP_QSTR_helpers_dot_paths, + MP_QSTR_match, + MP_QSTR_minting_asset_groups_count, + MP_QSTR_is_multisig_path, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_SIGNING_MODE_TITLE, + MP_QSTR__star_, + MP_QSTR_self, + MP_QSTR_super, + MP_QSTR_output, + MP_QSTR_certificate, + MP_QSTR_withdrawal, + MP_QSTR_witness_request, +}; + +// constants +static const mp_obj_str_t const_obj_apps_cardano_sign_tx_multisig_signer_0 = {{&mp_type_str}, 3432, 34, (const byte*)"\x43\x6f\x6e\x66\x69\x72\x6d\x69\x6e\x67\x20\x61\x20\x6d\x75\x6c\x74\x69\x73\x69\x67\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_sign_tx_multisig_signer[5] = { + MP_ROM_PTR(&const_obj_apps_cardano_sign_tx_multisig_signer_0), + MP_ROM_QSTR(MP_QSTR_Invalid_space_output), + MP_ROM_QSTR(MP_QSTR_Invalid_space_certificate), + MP_ROM_QSTR(MP_QSTR_Invalid_space_withdrawal), + MP_ROM_QSTR(MP_QSTR_Invalid_space_witness_space_request), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_sign_tx_multisig_signer = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_sign_tx_multisig_signer, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_sign_tx_multisig_signer, + }, + .rc = &raw_code_apps_cardano_sign_tx_multisig_signer__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_sign_tx_ordinary_signer +// - original source file: build/firmware/src/apps/cardano/sign_tx/ordinary_signer.mpy +// - frozen file name: apps/cardano/sign_tx/ordinary_signer.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/sign_tx/ordinary_signer.py, scope apps_cardano_sign_tx_ordinary_signer__lt_module_gt_ +static const byte fun_data_apps_cardano_sign_tx_ordinary_signer__lt_module_gt_[71] = { + 0x18,0x10, // prelude + 0x01, // names: + 0x40,0x4c,0x2c,0x2c,0x4c,0x60,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.wire' + 0x1c,0x02, // IMPORT_FROM 'ProcessError' + 0x16,0x02, // STORE_NAME 'ProcessError' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x04, // LOAD_CONST_STRING 'layout' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME '' + 0x1c,0x04, // IMPORT_FROM 'layout' + 0x16,0x04, // STORE_NAME 'layout' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x06, // LOAD_CONST_STRING 'SCHEMA_MINT' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'helpers.paths' + 0x1c,0x06, // IMPORT_FROM 'SCHEMA_MINT' + 0x16,0x06, // STORE_NAME 'SCHEMA_MINT' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x08, // LOAD_CONST_STRING 'Signer' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'signer' + 0x1c,0x08, // IMPORT_FROM 'Signer' + 0x16,0x08, // STORE_NAME 'Signer' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x0a, // LOAD_CONST_STRING 'OrdinarySigner' + 0x11,0x08, // LOAD_NAME 'Signer' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x0a, // STORE_NAME 'OrdinarySigner' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_sign_tx_ordinary_signer__lt_module_gt_ +// frozen bytecode for file apps/cardano/sign_tx/ordinary_signer.py, scope apps_cardano_sign_tx_ordinary_signer_OrdinarySigner +static const byte fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner[65] = { + 0x08,0x21, // prelude + 0x0a, // names: OrdinarySigner + 0x88,0x0d,0x60,0x40,0x44,0x86,0x0a,0x84,0x10,0x86,0x09,0x66,0x40,0x86,0x10,0x00, // code info + 0x11,0x31, // LOAD_NAME '__name__' + 0x16,0x32, // STORE_NAME '__module__' + 0x10,0x0a, // LOAD_CONST_STRING 'OrdinarySigner' + 0x16,0x33, // STORE_NAME '__qualname__' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x34, // STORE_NAME 'SIGNING_MODE_TITLE' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x0b, // STORE_NAME '_validate_tx_init' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x12, // STORE_NAME '_confirm_tx' + 0xb0, // LOAD_FAST 0 + 0x20,0x02,0x01, // MAKE_CLOSURE 2 + 0x16,0x1b, // STORE_NAME '_validate_certificate' + 0xb0, // LOAD_FAST 0 + 0x20,0x03,0x01, // MAKE_CLOSURE 3 + 0x16,0x22, // STORE_NAME '_validate_withdrawal' + 0xb0, // LOAD_FAST 0 + 0x20,0x04,0x01, // MAKE_CLOSURE 4 + 0x16,0x23, // STORE_NAME '_validate_witness_request' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x2a, // STORE_NAME '_show_witness_request' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_sign_tx_ordinary_signer_OrdinarySigner +// frozen bytecode for file apps/cardano/sign_tx/ordinary_signer.py, scope apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_tx_init +static const byte fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_tx_init[68] = { + 0x32,0x16, // prelude + 0x0b,0x35,0x36, // names: _validate_tx_init, *, self + 0x80,0x15,0x24,0x44,0x2a,0x29,0x28,0x29, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x0c, // LOAD_ATTR 'msg' + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x0d, // LOAD_ATTR '_assert_tx_init_cond' + 0xc3, // STORE_FAST 3 + 0x12,0x37, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x0b, // LOAD_SUPER_METHOD '_validate_tx_init' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x0e, // LOAD_ATTR 'collateral_inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x0f, // LOAD_ATTR 'has_collateral_return' + 0xd3, // UNARY_OP 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x10, // LOAD_ATTR 'total_collateral' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x11, // LOAD_ATTR 'reference_inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_tx_init = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_tx_init, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 68, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_tx_init + 5, + .line_info_top = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_tx_init + 13, + .opcodes = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_tx_init + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_ordinary_signer_OrdinarySigner +// frozen bytecode for file apps/cardano/sign_tx/ordinary_signer.py, scope apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__confirm_tx +static const byte fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__confirm_tx[61] = { + 0xf2,0x40,0x1a, // prelude + 0x12,0x36,0x1a, // names: _confirm_tx, self, tx_hash + 0x80,0x1f,0x64,0x26,0x24,0x23,0x23,0x23,0x23,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'msg' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x13, // LOAD_METHOD '_is_network_id_verifiable' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0x12,0x04, // LOAD_GLOBAL 'layout' + 0x14,0x14, // LOAD_METHOD 'confirm_tx' + 0xb2, // LOAD_FAST 2 + 0x13,0x15, // LOAD_ATTR 'fee' + 0xb2, // LOAD_FAST 2 + 0x13,0x16, // LOAD_ATTR 'network_id' + 0xb2, // LOAD_FAST 2 + 0x13,0x17, // LOAD_ATTR 'protocol_magic' + 0xb2, // LOAD_FAST 2 + 0x13,0x18, // LOAD_ATTR 'ttl' + 0xb2, // LOAD_FAST 2 + 0x13,0x19, // LOAD_ATTR 'validity_interval_start' + 0xb2, // LOAD_FAST 2 + 0x13,0x10, // LOAD_ATTR 'total_collateral' + 0xb3, // LOAD_FAST 3 + 0x10,0x1a, // LOAD_CONST_STRING 'tx_hash' + 0x51, // LOAD_CONST_NONE + 0x36,0x82,0x07, // CALL_METHOD 263 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__confirm_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__confirm_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 61, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__confirm_tx + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__confirm_tx + 16, + .opcodes = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__confirm_tx + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_ordinary_signer_OrdinarySigner +// frozen bytecode for file apps/cardano/sign_tx/ordinary_signer.py, scope apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_certificate +static const byte fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_certificate[70] = { + 0x33,0x16, // prelude + 0x1b,0x35,0x36,0x38, // names: _validate_certificate, *, self, certificate + 0x80,0x2f,0x4b,0x2b,0x29,0x27,0x2a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1c, // LOAD_CONST_STRING 'CardanoCertificateType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1d, // IMPORT_NAME 'trezor.enums' + 0x1c,0x1c, // IMPORT_FROM 'CardanoCertificateType' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x37, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x1b, // LOAD_SUPER_METHOD '_validate_certificate' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x1e, // LOAD_ATTR 'type' + 0xb3, // LOAD_FAST 3 + 0x13,0x1f, // LOAD_ATTR 'STAKE_POOL_REGISTRATION' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x13,0x20, // LOAD_ATTR 'script_hash' + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb2, // LOAD_FAST 2 + 0x13,0x21, // LOAD_ATTR 'key_hash' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_certificate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_certificate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 27, + .line_info = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_certificate + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_certificate + 13, + .opcodes = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_certificate + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_ordinary_signer_OrdinarySigner +// frozen bytecode for file apps/cardano/sign_tx/ordinary_signer.py, scope apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_withdrawal +static const byte fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_withdrawal[40] = { + 0x2b,0x10, // prelude + 0x22,0x35,0x36,0x39, // names: _validate_withdrawal, *, self, withdrawal + 0x80,0x38,0x2b,0x2a, // code info + 0x12,0x37, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x22, // LOAD_SUPER_METHOD '_validate_withdrawal' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x20, // LOAD_ATTR 'script_hash' + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb2, // LOAD_FAST 2 + 0x13,0x21, // LOAD_ATTR 'key_hash' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_withdrawal = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_withdrawal, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 40, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_withdrawal + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_withdrawal + 10, + .opcodes = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_withdrawal + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_ordinary_signer_OrdinarySigner +// frozen bytecode for file apps/cardano/sign_tx/ordinary_signer.py, scope apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_witness_request +static const byte fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_witness_request[90] = { + 0x43,0x1a, // prelude + 0x23,0x35,0x36,0x3a, // names: _validate_witness_request, *, self, witness_request + 0x80,0x3f,0x4b,0x2b,0x2a,0x48,0x20,0x2a,0x70, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x24, // LOAD_CONST_STRING 'seed' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME '' + 0x1c,0x24, // IMPORT_FROM 'seed' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x37, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x23, // LOAD_SUPER_METHOD '_validate_witness_request' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'SCHEMA_MINT' + 0x14,0x25, // LOAD_METHOD 'match' + 0xb2, // LOAD_FAST 2 + 0x13,0x26, // LOAD_ATTR 'path' + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x0c, // LOAD_ATTR 'msg' + 0x13,0x27, // LOAD_ATTR 'minting_asset_groups_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x14,0x28, // LOAD_METHOD 'is_byron_path' + 0xb2, // LOAD_FAST 2 + 0x13,0x26, // LOAD_ATTR 'path' + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x57, // POP_JUMP_IF_TRUE 23 + 0xb3, // LOAD_FAST 3 + 0x14,0x29, // LOAD_METHOD 'is_shelley_path' + 0xb2, // LOAD_FAST 2 + 0x13,0x26, // LOAD_ATTR 'path' + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x4d, // POP_JUMP_IF_TRUE 13 + 0xb4, // LOAD_FAST 4 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0xb5, // LOAD_FAST 5 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_witness_request = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_witness_request, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 90, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_witness_request + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_witness_request + 15, + .opcodes = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_witness_request + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_ordinary_signer_OrdinarySigner +// frozen bytecode for file apps/cardano/sign_tx/ordinary_signer.py, scope apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__show_witness_request +static const byte fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__show_witness_request[114] = { + 0xe2,0x40,0x1e, // prelude + 0x2a,0x36,0x3b, // names: _show_witness_request, self, witness_path + 0x80,0x4d,0x75,0x60,0x20,0x27,0x27,0x48,0x23,0x53,0x4d,0x23, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x2b, // LOAD_CONST_STRING 'SCHEMA_PAYMENT' + 0x10,0x2c, // LOAD_CONST_STRING 'SCHEMA_STAKING' + 0x10,0x2d, // LOAD_CONST_STRING 'WITNESS_PATH_NAME' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x07, // IMPORT_NAME 'helpers.paths' + 0x1c,0x2b, // IMPORT_FROM 'SCHEMA_PAYMENT' + 0xc2, // STORE_FAST 2 + 0x1c,0x2c, // IMPORT_FROM 'SCHEMA_STAKING' + 0xc3, // STORE_FAST 3 + 0x1c,0x2d, // IMPORT_FROM 'WITNESS_PATH_NAME' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x25, // LOAD_METHOD 'match' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x14,0x25, // LOAD_METHOD 'match' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0x12,0x06, // LOAD_GLOBAL 'SCHEMA_MINT' + 0x14,0x25, // LOAD_METHOD 'match' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x04, // LOAD_GLOBAL 'layout' + 0x14,0x2e, // LOAD_METHOD 'confirm_witness_request' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x63, // JUMP 35 + 0xb5, // LOAD_FAST 5 + 0x43,0x50, // POP_JUMP_IF_TRUE 16 + 0xb6, // LOAD_FAST 6 + 0x43,0x4d, // POP_JUMP_IF_TRUE 13 + 0xb0, // LOAD_FAST 0 + 0x14,0x2f, // LOAD_METHOD '_fail_or_warn_path' + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x50, // JUMP 16 + 0xb0, // LOAD_FAST 0 + 0x14,0x30, // LOAD_METHOD '_show_if_showing_details' + 0x12,0x04, // LOAD_GLOBAL 'layout' + 0x14,0x2e, // LOAD_METHOD 'confirm_witness_request' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__show_witness_request = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__show_witness_request, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 114, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__show_witness_request + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__show_witness_request + 18, + .opcodes = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__show_witness_request + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner[] = { + &raw_code_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_tx_init, + &raw_code_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__confirm_tx, + &raw_code_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_certificate, + &raw_code_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_withdrawal, + &raw_code_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__validate_witness_request, + &raw_code_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner__show_witness_request, +}; + +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 65, + #endif + .children = (void *)&children_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner + 3, + .line_info_top = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner + 18, + .opcodes = fun_data_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_sign_tx_ordinary_signer__lt_module_gt_[] = { + &raw_code_apps_cardano_sign_tx_ordinary_signer_OrdinarySigner, +}; + +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_ordinary_signer__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_sign_tx_ordinary_signer__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 71, + #endif + .children = (void *)&children_apps_cardano_sign_tx_ordinary_signer__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_sign_tx_ordinary_signer__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_sign_tx_ordinary_signer__lt_module_gt_ + 10, + .opcodes = fun_data_apps_cardano_sign_tx_ordinary_signer__lt_module_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_sign_tx_ordinary_signer[60] = { + MP_QSTR_apps_slash_cardano_slash_sign_tx_slash_ordinary_signer_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_layout, + MP_QSTR_, + MP_QSTR_SCHEMA_MINT, + MP_QSTR_helpers_dot_paths, + MP_QSTR_Signer, + MP_QSTR_signer, + MP_QSTR_OrdinarySigner, + MP_QSTR__validate_tx_init, + MP_QSTR_msg, + MP_QSTR__assert_tx_init_cond, + MP_QSTR_collateral_inputs_count, + MP_QSTR_has_collateral_return, + MP_QSTR_total_collateral, + MP_QSTR_reference_inputs_count, + MP_QSTR__confirm_tx, + MP_QSTR__is_network_id_verifiable, + MP_QSTR_confirm_tx, + MP_QSTR_fee, + MP_QSTR_network_id, + MP_QSTR_protocol_magic, + MP_QSTR_ttl, + MP_QSTR_validity_interval_start, + MP_QSTR_tx_hash, + MP_QSTR__validate_certificate, + MP_QSTR_CardanoCertificateType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_type, + MP_QSTR_STAKE_POOL_REGISTRATION, + MP_QSTR_script_hash, + MP_QSTR_key_hash, + MP_QSTR__validate_withdrawal, + MP_QSTR__validate_witness_request, + MP_QSTR_seed, + MP_QSTR_match, + MP_QSTR_path, + MP_QSTR_minting_asset_groups_count, + MP_QSTR_is_byron_path, + MP_QSTR_is_shelley_path, + MP_QSTR__show_witness_request, + MP_QSTR_SCHEMA_PAYMENT, + MP_QSTR_SCHEMA_STAKING, + MP_QSTR_WITNESS_PATH_NAME, + MP_QSTR_confirm_witness_request, + MP_QSTR__fail_or_warn_path, + MP_QSTR__show_if_showing_details, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_SIGNING_MODE_TITLE, + MP_QSTR__star_, + MP_QSTR_self, + MP_QSTR_super, + MP_QSTR_certificate, + MP_QSTR_withdrawal, + MP_QSTR_witness_request, + MP_QSTR_witness_path, +}; + +// constants +static const mp_obj_str_t const_obj_apps_cardano_sign_tx_ordinary_signer_0 = {{&mp_type_str}, 35708, 25, (const byte*)"\x43\x6f\x6e\x66\x69\x72\x6d\x69\x6e\x67\x20\x61\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_sign_tx_ordinary_signer[4] = { + MP_ROM_PTR(&const_obj_apps_cardano_sign_tx_ordinary_signer_0), + MP_ROM_QSTR(MP_QSTR_Invalid_space_certificate), + MP_ROM_QSTR(MP_QSTR_Invalid_space_withdrawal), + MP_ROM_QSTR(MP_QSTR_Invalid_space_witness_space_request), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_sign_tx_ordinary_signer = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_sign_tx_ordinary_signer, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_sign_tx_ordinary_signer, + }, + .rc = &raw_code_apps_cardano_sign_tx_ordinary_signer__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_sign_tx_plutus_signer +// - original source file: build/firmware/src/apps/cardano/sign_tx/plutus_signer.mpy +// - frozen file name: apps/cardano/sign_tx/plutus_signer.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/sign_tx/plutus_signer.py, scope apps_cardano_sign_tx_plutus_signer__lt_module_gt_ +static const byte fun_data_apps_cardano_sign_tx_plutus_signer__lt_module_gt_[58] = { + 0x18,0x0e, // prelude + 0x01, // names: + 0x40,0x4c,0x2c,0x4c,0x60,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'wire' + 0x16,0x02, // STORE_NAME 'wire' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x04, // LOAD_CONST_STRING 'layout' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME '' + 0x1c,0x04, // IMPORT_FROM 'layout' + 0x16,0x04, // STORE_NAME 'layout' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x06, // LOAD_CONST_STRING 'Signer' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'signer' + 0x1c,0x06, // IMPORT_FROM 'Signer' + 0x16,0x06, // STORE_NAME 'Signer' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x08, // LOAD_CONST_STRING 'PlutusSigner' + 0x11,0x06, // LOAD_NAME 'Signer' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x08, // STORE_NAME 'PlutusSigner' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_sign_tx_plutus_signer__lt_module_gt_ +// frozen bytecode for file apps/cardano/sign_tx/plutus_signer.py, scope apps_cardano_sign_tx_plutus_signer_PlutusSigner +static const byte fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner[75] = { + 0x08,0x29, // prelude + 0x08, // names: PlutusSigner + 0x88,0x0c,0x60,0x40,0x44,0x86,0x0c,0x84,0x13,0x64,0x40,0x84,0x0f,0x84,0x0a,0x64,0x40,0x86,0x07,0x00, // code info + 0x11,0x35, // LOAD_NAME '__name__' + 0x16,0x36, // STORE_NAME '__module__' + 0x10,0x08, // LOAD_CONST_STRING 'PlutusSigner' + 0x16,0x37, // STORE_NAME '__qualname__' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x38, // STORE_NAME 'SIGNING_MODE_TITLE' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x09, // STORE_NAME '_show_tx_init' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x11, // STORE_NAME '_confirm_tx' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x19, // STORE_NAME '_show_input' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x1c, // STORE_NAME '_show_output_credentials' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x23, // STORE_NAME '_should_show_output' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x26, // STORE_NAME '_is_change_output' + 0xb0, // LOAD_FAST 0 + 0x20,0x06,0x01, // MAKE_CLOSURE 6 + 0x16,0x27, // STORE_NAME '_validate_certificate' + 0xb0, // LOAD_FAST 0 + 0x20,0x07,0x01, // MAKE_CLOSURE 7 + 0x16,0x2d, // STORE_NAME '_validate_witness_request' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_sign_tx_plutus_signer_PlutusSigner +// frozen bytecode for file apps/cardano/sign_tx/plutus_signer.py, scope apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_tx_init +static const byte fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_tx_init[86] = { + 0xa2,0x40,0x16, // prelude + 0x09,0x39,0x3a, // names: _show_tx_init, *, self + 0x80,0x14,0x6d,0x29,0x2a,0x29,0x4a,0x29, // code info + 0x12,0x3b, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x09, // LOAD_SUPER_METHOD '_show_tx_init' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'msg' + 0x13,0x0b, // LOAD_ATTR 'script_data_hash' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x04, // LOAD_GLOBAL 'layout' + 0x14,0x0c, // LOAD_METHOD 'warn_no_script_data_hash' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'msg' + 0x13,0x0d, // LOAD_ATTR 'collateral_inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x04, // LOAD_GLOBAL 'layout' + 0x14,0x0e, // LOAD_METHOD 'warn_no_collateral_inputs' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'msg' + 0x13,0x0f, // LOAD_ATTR 'total_collateral' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x04, // LOAD_GLOBAL 'layout' + 0x14,0x10, // LOAD_METHOD 'warn_unknown_total_collateral' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_tx_init = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_tx_init, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 86, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_tx_init + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_tx_init + 14, + .opcodes = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_tx_init + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_plutus_signer_PlutusSigner +// frozen bytecode for file apps/cardano/sign_tx/plutus_signer.py, scope apps_cardano_sign_tx_plutus_signer_PlutusSigner__confirm_tx +static const byte fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__confirm_tx[59] = { + 0xea,0x40,0x1c, // prelude + 0x11,0x3a,0x3c, // names: _confirm_tx, self, tx_hash + 0x80,0x20,0x64,0x60,0x26,0x24,0x23,0x23,0x23,0x23,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x0a, // LOAD_ATTR 'msg' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x12, // LOAD_METHOD '_is_network_id_verifiable' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0x12,0x04, // LOAD_GLOBAL 'layout' + 0x14,0x13, // LOAD_METHOD 'confirm_tx' + 0xb2, // LOAD_FAST 2 + 0x13,0x14, // LOAD_ATTR 'fee' + 0xb2, // LOAD_FAST 2 + 0x13,0x15, // LOAD_ATTR 'network_id' + 0xb2, // LOAD_FAST 2 + 0x13,0x16, // LOAD_ATTR 'protocol_magic' + 0xb2, // LOAD_FAST 2 + 0x13,0x17, // LOAD_ATTR 'ttl' + 0xb2, // LOAD_FAST 2 + 0x13,0x18, // LOAD_ATTR 'validity_interval_start' + 0xb2, // LOAD_FAST 2 + 0x13,0x0f, // LOAD_ATTR 'total_collateral' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x36,0x08, // CALL_METHOD 8 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_plutus_signer_PlutusSigner__confirm_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__confirm_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__confirm_tx + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__confirm_tx + 17, + .opcodes = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__confirm_tx + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_plutus_signer_PlutusSigner +// frozen bytecode for file apps/cardano/sign_tx/plutus_signer.py, scope apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_input +static const byte fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_input[26] = { + 0xb2,0x40,0x0a, // prelude + 0x19,0x3a,0x3d, // names: _show_input, self, input + 0x80,0x35, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x1a, // LOAD_METHOD '_show_if_showing_details' + 0x12,0x04, // LOAD_GLOBAL 'layout' + 0x14,0x1b, // LOAD_METHOD 'confirm_input' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_input + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_input + 8, + .opcodes = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_input + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_plutus_signer_PlutusSigner +// frozen bytecode for file apps/cardano/sign_tx/plutus_signer.py, scope apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_output_credentials +static const byte fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_output_credentials[59] = { + 0xd2,0x40,0x14, // prelude + 0x1c,0x3a,0x3e, // names: _show_output_credentials, self, address_parameters + 0x80,0x3a,0x70,0x40,0x25,0x24,0x26, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x1d, // LOAD_CONST_STRING 'Credential' + 0x10,0x1e, // LOAD_CONST_STRING 'should_show_credentials' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x1f, // IMPORT_NAME 'helpers.credential' + 0x1c,0x1d, // IMPORT_FROM 'Credential' + 0xc2, // STORE_FAST 2 + 0x1c,0x1e, // IMPORT_FROM 'should_show_credentials' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0x12,0x04, // LOAD_GLOBAL 'layout' + 0x14,0x20, // LOAD_METHOD 'show_device_owned_output_credentials' + 0xb2, // LOAD_FAST 2 + 0x14,0x21, // LOAD_METHOD 'payment_credential' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xb2, // LOAD_FAST 2 + 0x14,0x22, // LOAD_METHOD 'stake_credential' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xb4, // LOAD_FAST 4 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_output_credentials = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_output_credentials, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_output_credentials + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_output_credentials + 13, + .opcodes = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_output_credentials + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_plutus_signer_PlutusSigner +// frozen bytecode for file apps/cardano/sign_tx/plutus_signer.py, scope apps_cardano_sign_tx_plutus_signer_PlutusSigner__should_show_output +static const byte fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__should_show_output[23] = { + 0x22,0x0e, // prelude + 0x23,0x3a,0x3f, // names: _should_show_output, self, output + 0x80,0x4a,0x48,0x44, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x24, // LOAD_METHOD '_is_simple_change_output' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'should_show_details' + 0x63, // RETURN_VALUE + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_plutus_signer_PlutusSigner__should_show_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__should_show_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__should_show_output + 5, + .line_info_top = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__should_show_output + 9, + .opcodes = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__should_show_output + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_plutus_signer_PlutusSigner +// frozen bytecode for file apps/cardano/sign_tx/plutus_signer.py, scope apps_cardano_sign_tx_plutus_signer_PlutusSigner__is_change_output +static const byte fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__is_change_output[9] = { + 0x12,0x0a, // prelude + 0x26,0x3a,0x3f, // names: _is_change_output, self, output + 0x80,0x53, // code info + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_plutus_signer_PlutusSigner__is_change_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__is_change_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 9, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 38, + .line_info = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__is_change_output + 5, + .line_info_top = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__is_change_output + 7, + .opcodes = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__is_change_output + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_plutus_signer_PlutusSigner +// frozen bytecode for file apps/cardano/sign_tx/plutus_signer.py, scope apps_cardano_sign_tx_plutus_signer_PlutusSigner__validate_certificate +static const byte fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__validate_certificate[53] = { + 0x33,0x12, // prelude + 0x27,0x39,0x3a,0x40, // names: _validate_certificate, *, self, certificate + 0x80,0x56,0x4b,0x2b,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x28, // LOAD_CONST_STRING 'CardanoCertificateType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x29, // IMPORT_NAME 'trezor.enums' + 0x1c,0x28, // IMPORT_FROM 'CardanoCertificateType' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x3b, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x27, // LOAD_SUPER_METHOD '_validate_certificate' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x2a, // LOAD_ATTR 'type' + 0xb3, // LOAD_FAST 3 + 0x13,0x2b, // LOAD_ATTR 'STAKE_POOL_REGISTRATION' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x02, // LOAD_GLOBAL 'wire' + 0x14,0x2c, // LOAD_METHOD 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_plutus_signer_PlutusSigner__validate_certificate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__validate_certificate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 53, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__validate_certificate + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__validate_certificate + 11, + .opcodes = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__validate_certificate + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_plutus_signer_PlutusSigner +// frozen bytecode for file apps/cardano/sign_tx/plutus_signer.py, scope apps_cardano_sign_tx_plutus_signer_PlutusSigner__validate_witness_request +static const byte fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__validate_witness_request[91] = { + 0x43,0x1a, // prelude + 0x2d,0x39,0x3a,0x41, // names: _validate_witness_request, *, self, witness_request + 0x80,0x5f,0x2b,0x4b,0x2b,0x69,0x20,0x2a,0x6d, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x2e, // LOAD_CONST_STRING 'seed' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME '' + 0x1c,0x2e, // IMPORT_FROM 'seed' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x2f, // LOAD_CONST_STRING 'SCHEMA_MINT' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x30, // IMPORT_NAME 'helpers.paths' + 0x1c,0x2f, // IMPORT_FROM 'SCHEMA_MINT' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x12,0x3b, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x2d, // LOAD_SUPER_METHOD '_validate_witness_request' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x31, // LOAD_METHOD 'match' + 0xb2, // LOAD_FAST 2 + 0x13,0x32, // LOAD_ATTR 'path' + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x14,0x33, // LOAD_METHOD 'is_shelley_path' + 0xb2, // LOAD_FAST 2 + 0x13,0x32, // LOAD_ATTR 'path' + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x56, // POP_JUMP_IF_TRUE 22 + 0xb3, // LOAD_FAST 3 + 0x14,0x34, // LOAD_METHOD 'is_multisig_path' + 0xb2, // LOAD_FAST 2 + 0x13,0x32, // LOAD_ATTR 'path' + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x4c, // POP_JUMP_IF_TRUE 12 + 0xb5, // LOAD_FAST 5 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x12,0x02, // LOAD_GLOBAL 'wire' + 0x14,0x2c, // LOAD_METHOD 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_plutus_signer_PlutusSigner__validate_witness_request = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__validate_witness_request, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 91, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__validate_witness_request + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__validate_witness_request + 15, + .opcodes = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner__validate_witness_request + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_sign_tx_plutus_signer_PlutusSigner[] = { + &raw_code_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_tx_init, + &raw_code_apps_cardano_sign_tx_plutus_signer_PlutusSigner__confirm_tx, + &raw_code_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_input, + &raw_code_apps_cardano_sign_tx_plutus_signer_PlutusSigner__show_output_credentials, + &raw_code_apps_cardano_sign_tx_plutus_signer_PlutusSigner__should_show_output, + &raw_code_apps_cardano_sign_tx_plutus_signer_PlutusSigner__is_change_output, + &raw_code_apps_cardano_sign_tx_plutus_signer_PlutusSigner__validate_certificate, + &raw_code_apps_cardano_sign_tx_plutus_signer_PlutusSigner__validate_witness_request, +}; + +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_plutus_signer_PlutusSigner = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 75, + #endif + .children = (void *)&children_apps_cardano_sign_tx_plutus_signer_PlutusSigner, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 8, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner + 3, + .line_info_top = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner + 22, + .opcodes = fun_data_apps_cardano_sign_tx_plutus_signer_PlutusSigner + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_sign_tx_plutus_signer__lt_module_gt_[] = { + &raw_code_apps_cardano_sign_tx_plutus_signer_PlutusSigner, +}; + +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_plutus_signer__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_sign_tx_plutus_signer__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 58, + #endif + .children = (void *)&children_apps_cardano_sign_tx_plutus_signer__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_sign_tx_plutus_signer__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_sign_tx_plutus_signer__lt_module_gt_ + 9, + .opcodes = fun_data_apps_cardano_sign_tx_plutus_signer__lt_module_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_sign_tx_plutus_signer[66] = { + MP_QSTR_apps_slash_cardano_slash_sign_tx_slash_plutus_signer_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_layout, + MP_QSTR_, + MP_QSTR_Signer, + MP_QSTR_signer, + MP_QSTR_PlutusSigner, + MP_QSTR__show_tx_init, + MP_QSTR_msg, + MP_QSTR_script_data_hash, + MP_QSTR_warn_no_script_data_hash, + MP_QSTR_collateral_inputs_count, + MP_QSTR_warn_no_collateral_inputs, + MP_QSTR_total_collateral, + MP_QSTR_warn_unknown_total_collateral, + MP_QSTR__confirm_tx, + MP_QSTR__is_network_id_verifiable, + MP_QSTR_confirm_tx, + MP_QSTR_fee, + MP_QSTR_network_id, + MP_QSTR_protocol_magic, + MP_QSTR_ttl, + MP_QSTR_validity_interval_start, + MP_QSTR__show_input, + MP_QSTR__show_if_showing_details, + MP_QSTR_confirm_input, + MP_QSTR__show_output_credentials, + MP_QSTR_Credential, + MP_QSTR_should_show_credentials, + MP_QSTR_helpers_dot_credential, + MP_QSTR_show_device_owned_output_credentials, + MP_QSTR_payment_credential, + MP_QSTR_stake_credential, + MP_QSTR__should_show_output, + MP_QSTR__is_simple_change_output, + MP_QSTR_should_show_details, + MP_QSTR__is_change_output, + MP_QSTR__validate_certificate, + MP_QSTR_CardanoCertificateType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_type, + MP_QSTR_STAKE_POOL_REGISTRATION, + MP_QSTR_ProcessError, + MP_QSTR__validate_witness_request, + MP_QSTR_seed, + MP_QSTR_SCHEMA_MINT, + MP_QSTR_helpers_dot_paths, + MP_QSTR_match, + MP_QSTR_path, + MP_QSTR_is_shelley_path, + MP_QSTR_is_multisig_path, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_SIGNING_MODE_TITLE, + MP_QSTR__star_, + MP_QSTR_self, + MP_QSTR_super, + MP_QSTR_tx_hash, + MP_QSTR_input, + MP_QSTR_address_parameters, + MP_QSTR_output, + MP_QSTR_certificate, + MP_QSTR_witness_request, +}; + +// constants +static const mp_obj_str_t const_obj_apps_cardano_sign_tx_plutus_signer_0 = {{&mp_type_str}, 3911, 32, (const byte*)"\x43\x6f\x6e\x66\x69\x72\x6d\x69\x6e\x67\x20\x61\x20\x50\x6c\x75\x74\x75\x73\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_sign_tx_plutus_signer[3] = { + MP_ROM_PTR(&const_obj_apps_cardano_sign_tx_plutus_signer_0), + MP_ROM_QSTR(MP_QSTR_Invalid_space_certificate), + MP_ROM_QSTR(MP_QSTR_Invalid_space_witness_space_request), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_sign_tx_plutus_signer = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_sign_tx_plutus_signer, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_sign_tx_plutus_signer, + }, + .rc = &raw_code_apps_cardano_sign_tx_plutus_signer__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_sign_tx_pool_owner_signer +// - original source file: build/firmware/src/apps/cardano/sign_tx/pool_owner_signer.mpy +// - frozen file name: apps/cardano/sign_tx/pool_owner_signer.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/sign_tx/pool_owner_signer.py, scope apps_cardano_sign_tx_pool_owner_signer__lt_module_gt_ +static const byte fun_data_apps_cardano_sign_tx_pool_owner_signer__lt_module_gt_[45] = { + 0x18,0x0c, // prelude + 0x01, // names: + 0x40,0x4c,0x4c,0x60,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.wire' + 0x1c,0x02, // IMPORT_FROM 'ProcessError' + 0x16,0x02, // STORE_NAME 'ProcessError' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING 'Signer' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'signer' + 0x1c,0x04, // IMPORT_FROM 'Signer' + 0x16,0x04, // STORE_NAME 'Signer' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x06, // LOAD_CONST_STRING 'PoolOwnerSigner' + 0x11,0x04, // LOAD_NAME 'Signer' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x06, // STORE_NAME 'PoolOwnerSigner' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_sign_tx_pool_owner_signer__lt_module_gt_ +// frozen bytecode for file apps/cardano/sign_tx/pool_owner_signer.py, scope apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner +static const byte fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner[71] = { + 0x08,0x25, // prelude + 0x06, // names: PoolOwnerSigner + 0x88,0x0b,0x80,0x0c,0x44,0x86,0x11,0x84,0x0a,0x86,0x0a,0x64,0x40,0x86,0x07,0x86,0x0b,0x00, // code info + 0x11,0x2b, // LOAD_NAME '__name__' + 0x16,0x2c, // STORE_NAME '__module__' + 0x10,0x06, // LOAD_CONST_STRING 'PoolOwnerSigner' + 0x16,0x2d, // STORE_NAME '__qualname__' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x2e, // STORE_NAME 'SIGNING_MODE_TITLE' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x07, // STORE_NAME '_validate_tx_init' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x13, // STORE_NAME '_confirm_tx' + 0xb0, // LOAD_FAST 0 + 0x20,0x02,0x01, // MAKE_CLOSURE 2 + 0x16,0x1a, // STORE_NAME '_validate_output' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x1f, // STORE_NAME '_should_show_output' + 0xb0, // LOAD_FAST 0 + 0x20,0x04,0x01, // MAKE_CLOSURE 4 + 0x16,0x20, // STORE_NAME '_validate_certificate' + 0xb0, // LOAD_FAST 0 + 0x20,0x05,0x01, // MAKE_CLOSURE 5 + 0x16,0x25, // STORE_NAME '_validate_witness_request' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x2a, // STORE_NAME '_is_network_id_verifiable' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner +// frozen bytecode for file apps/cardano/sign_tx/pool_owner_signer.py, scope apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_tx_init +static const byte fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_tx_init[94] = { + 0x6a,0x22, // prelude + 0x07,0x2f,0x30, // names: _validate_tx_init, *, self + 0x80,0x1a,0x44,0x2a,0x20,0x25,0x25,0x25,0x25,0x25,0x25,0x24,0x25,0x4b, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x08, // LOAD_ATTR 'msg' + 0xc2, // STORE_FAST 2 + 0x12,0x31, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x07, // LOAD_SUPER_METHOD '_validate_tx_init' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x09, // LOAD_ATTR 'certificates_count' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0xb2, // LOAD_FAST 2 + 0x13,0x0a, // LOAD_ATTR 'withdrawals_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0xb2, // LOAD_FAST 2 + 0x13,0x0b, // LOAD_ATTR 'minting_asset_groups_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0xb2, // LOAD_FAST 2 + 0x13,0x0c, // LOAD_ATTR 'script_data_hash' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xb2, // LOAD_FAST 2 + 0x13,0x0d, // LOAD_ATTR 'collateral_inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0xb2, // LOAD_FAST 2 + 0x13,0x0e, // LOAD_ATTR 'required_signers_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0xb2, // LOAD_FAST 2 + 0x13,0x0f, // LOAD_ATTR 'has_collateral_return' + 0xd3, // UNARY_OP 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x10, // LOAD_ATTR 'total_collateral' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xb2, // LOAD_FAST 2 + 0x13,0x11, // LOAD_ATTR 'reference_inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x2a,0x09, // BUILD_TUPLE 9 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x14,0x12, // LOAD_METHOD '_assert_tx_init_cond' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_tx_init = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_tx_init, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 94, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_tx_init + 5, + .line_info_top = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_tx_init + 19, + .opcodes = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_tx_init + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner +// frozen bytecode for file apps/cardano/sign_tx/pool_owner_signer.py, scope apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__confirm_tx +static const byte fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__confirm_tx[49] = { + 0xba,0x40,0x12, // prelude + 0x13,0x30,0x32, // names: _confirm_tx, self, tx_hash + 0x80,0x2b,0x6b,0x23,0x25,0x25, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x14, // LOAD_CONST_STRING 'layout' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x15, // IMPORT_NAME '' + 0x1c,0x14, // IMPORT_FROM 'layout' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x16, // LOAD_METHOD 'confirm_stake_pool_registration_final' + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'msg' + 0x13,0x17, // LOAD_ATTR 'protocol_magic' + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'msg' + 0x13,0x18, // LOAD_ATTR 'ttl' + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'msg' + 0x13,0x19, // LOAD_ATTR 'validity_interval_start' + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__confirm_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__confirm_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__confirm_tx + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__confirm_tx + 12, + .opcodes = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__confirm_tx + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner +// frozen bytecode for file apps/cardano/sign_tx/pool_owner_signer.py, scope apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_output +static const byte fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_output[64] = { + 0x2b,0x18, // prelude + 0x1a,0x2f,0x30,0x33, // names: _validate_output, *, self, output + 0x80,0x35,0x2b,0x20,0x28,0x28,0x27,0x47, // code info + 0x12,0x31, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x1a, // LOAD_SUPER_METHOD '_validate_output' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x1b, // LOAD_ATTR 'address_parameters' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x43,0x56, // POP_JUMP_IF_TRUE 22 + 0xb2, // LOAD_FAST 2 + 0x13,0x1c, // LOAD_ATTR 'datum_hash' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x43,0x4e, // POP_JUMP_IF_TRUE 14 + 0xb2, // LOAD_FAST 2 + 0x13,0x1d, // LOAD_ATTR 'inline_datum_size' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0xb2, // LOAD_FAST 2 + 0x13,0x1e, // LOAD_ATTR 'reference_script_size' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 64, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 26, + .line_info = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_output + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_output + 14, + .opcodes = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_output + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner +// frozen bytecode for file apps/cardano/sign_tx/pool_owner_signer.py, scope apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__should_show_output +static const byte fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__should_show_output[9] = { + 0x12,0x0a, // prelude + 0x1f,0x30,0x33, // names: _should_show_output, self, output + 0x80,0x41, // code info + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__should_show_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__should_show_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 9, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__should_show_output + 5, + .line_info_top = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__should_show_output + 7, + .opcodes = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__should_show_output + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner +// frozen bytecode for file apps/cardano/sign_tx/pool_owner_signer.py, scope apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_certificate +static const byte fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_certificate[51] = { + 0x33,0x12, // prelude + 0x20,0x2f,0x30,0x34, // names: _validate_certificate, *, self, certificate + 0x80,0x44,0x4b,0x2b,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x21, // LOAD_CONST_STRING 'CardanoCertificateType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x22, // IMPORT_NAME 'trezor.enums' + 0x1c,0x21, // IMPORT_FROM 'CardanoCertificateType' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x31, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x20, // LOAD_SUPER_METHOD '_validate_certificate' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x23, // LOAD_ATTR 'type' + 0xb3, // LOAD_FAST 3 + 0x13,0x24, // LOAD_ATTR 'STAKE_POOL_REGISTRATION' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_certificate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_certificate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_certificate + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_certificate + 11, + .opcodes = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_certificate + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner +// frozen bytecode for file apps/cardano/sign_tx/pool_owner_signer.py, scope apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_witness_request +static const byte fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_witness_request[53] = { + 0x33,0x14, // prelude + 0x25,0x2f,0x30,0x35, // names: _validate_witness_request, *, self, witness_request + 0x80,0x4d,0x4b,0x2b,0x2a,0x22, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x26, // LOAD_CONST_STRING 'SCHEMA_STAKING_ANY_ACCOUNT' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x27, // IMPORT_NAME 'helpers.paths' + 0x1c,0x26, // IMPORT_FROM 'SCHEMA_STAKING_ANY_ACCOUNT' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x31, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x25, // LOAD_SUPER_METHOD '_validate_witness_request' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x28, // LOAD_METHOD 'match' + 0xb2, // LOAD_FAST 2 + 0x13,0x29, // LOAD_ATTR 'path' + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_witness_request = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_witness_request, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 53, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_witness_request + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_witness_request + 12, + .opcodes = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_witness_request + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner +// frozen bytecode for file apps/cardano/sign_tx/pool_owner_signer.py, scope apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__is_network_id_verifiable +static const byte fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__is_network_id_verifiable[8] = { + 0x09,0x08, // prelude + 0x2a,0x30, // names: _is_network_id_verifiable, self + 0x80,0x57, // code info + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__is_network_id_verifiable = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__is_network_id_verifiable, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 8, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__is_network_id_verifiable + 4, + .line_info_top = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__is_network_id_verifiable + 6, + .opcodes = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__is_network_id_verifiable + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner[] = { + &raw_code_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_tx_init, + &raw_code_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__confirm_tx, + &raw_code_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_output, + &raw_code_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__should_show_output, + &raw_code_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_certificate, + &raw_code_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__validate_witness_request, + &raw_code_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner__is_network_id_verifiable, +}; + +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 71, + #endif + .children = (void *)&children_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 7, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner + 3, + .line_info_top = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner + 20, + .opcodes = fun_data_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_sign_tx_pool_owner_signer__lt_module_gt_[] = { + &raw_code_apps_cardano_sign_tx_pool_owner_signer_PoolOwnerSigner, +}; + +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_pool_owner_signer__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_sign_tx_pool_owner_signer__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = (void *)&children_apps_cardano_sign_tx_pool_owner_signer__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_sign_tx_pool_owner_signer__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_sign_tx_pool_owner_signer__lt_module_gt_ + 8, + .opcodes = fun_data_apps_cardano_sign_tx_pool_owner_signer__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_sign_tx_pool_owner_signer[54] = { + MP_QSTR_apps_slash_cardano_slash_sign_tx_slash_pool_owner_signer_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_Signer, + MP_QSTR_signer, + MP_QSTR_PoolOwnerSigner, + MP_QSTR__validate_tx_init, + MP_QSTR_msg, + MP_QSTR_certificates_count, + MP_QSTR_withdrawals_count, + MP_QSTR_minting_asset_groups_count, + MP_QSTR_script_data_hash, + MP_QSTR_collateral_inputs_count, + MP_QSTR_required_signers_count, + MP_QSTR_has_collateral_return, + MP_QSTR_total_collateral, + MP_QSTR_reference_inputs_count, + MP_QSTR__assert_tx_init_cond, + MP_QSTR__confirm_tx, + MP_QSTR_layout, + MP_QSTR_, + MP_QSTR_confirm_stake_pool_registration_final, + MP_QSTR_protocol_magic, + MP_QSTR_ttl, + MP_QSTR_validity_interval_start, + MP_QSTR__validate_output, + MP_QSTR_address_parameters, + MP_QSTR_datum_hash, + MP_QSTR_inline_datum_size, + MP_QSTR_reference_script_size, + MP_QSTR__should_show_output, + MP_QSTR__validate_certificate, + MP_QSTR_CardanoCertificateType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_type, + MP_QSTR_STAKE_POOL_REGISTRATION, + MP_QSTR__validate_witness_request, + MP_QSTR_SCHEMA_STAKING_ANY_ACCOUNT, + MP_QSTR_helpers_dot_paths, + MP_QSTR_match, + MP_QSTR_path, + MP_QSTR__is_network_id_verifiable, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_SIGNING_MODE_TITLE, + MP_QSTR__star_, + MP_QSTR_self, + MP_QSTR_super, + MP_QSTR_tx_hash, + MP_QSTR_output, + MP_QSTR_certificate, + MP_QSTR_witness_request, +}; + +// constants +static const mp_obj_str_t const_obj_apps_cardano_sign_tx_pool_owner_signer_0 = {{&mp_type_str}, 51719, 38, (const byte*)"\x43\x6f\x6e\x66\x69\x72\x6d\x69\x6e\x67\x20\x70\x6f\x6f\x6c\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x20\x61\x73\x20\x6f\x77\x6e\x65\x72\x2e"}; +static const mp_obj_str_t const_obj_apps_cardano_sign_tx_pool_owner_signer_3 = {{&mp_type_str}, 26486, 69, (const byte*)"\x53\x74\x61\x6b\x65\x70\x6f\x6f\x6c\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x63\x61\x6e\x20\x6f\x6e\x6c\x79\x20\x63\x6f\x6e\x74\x61\x69\x6e\x20\x73\x74\x61\x6b\x69\x6e\x67\x20\x77\x69\x74\x6e\x65\x73\x73\x65\x73"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_sign_tx_pool_owner_signer[4] = { + MP_ROM_PTR(&const_obj_apps_cardano_sign_tx_pool_owner_signer_0), + MP_ROM_QSTR(MP_QSTR_Invalid_space_output), + MP_ROM_QSTR(MP_QSTR_Invalid_space_certificate), + MP_ROM_PTR(&const_obj_apps_cardano_sign_tx_pool_owner_signer_3), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_sign_tx_pool_owner_signer = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_sign_tx_pool_owner_signer, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_sign_tx_pool_owner_signer, + }, + .rc = &raw_code_apps_cardano_sign_tx_pool_owner_signer__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_cardano_sign_tx_signer +// - original source file: build/firmware/src/apps/cardano/sign_tx/signer.mpy +// - frozen file name: apps/cardano/sign_tx/signer.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer__lt_module_gt_ +static const byte fun_data_apps_cardano_sign_tx_signer__lt_module_gt_[241] = { + 0x20,0x22, // prelude + 0x01, // names: + 0x6c,0x2c,0x78,0x40,0x32,0x32,0x4d,0x4c,0x3e,0x32,0x2c,0x32,0x2c,0x4c,0x80,0x2d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'messages' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor' + 0x1c,0x04, // IMPORT_FROM 'messages' + 0x16,0x04, // STORE_NAME 'messages' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'CardanoCertificateType' + 0x10,0x07, // LOAD_CONST_STRING 'CardanoTxOutputSerializationFormat' + 0x10,0x08, // LOAD_CONST_STRING 'CardanoTxWitnessType' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x09, // IMPORT_NAME 'trezor.enums' + 0x1c,0x06, // IMPORT_FROM 'CardanoCertificateType' + 0x16,0x06, // STORE_NAME 'CardanoCertificateType' + 0x1c,0x07, // IMPORT_FROM 'CardanoTxOutputSerializationFormat' + 0x16,0x07, // STORE_NAME 'CardanoTxOutputSerializationFormat' + 0x1c,0x08, // IMPORT_FROM 'CardanoTxWitnessType' + 0x16,0x08, // STORE_NAME 'CardanoTxWitnessType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'CardanoTxItemAck' + 0x10,0x0b, // LOAD_CONST_STRING 'CardanoTxOutput' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0c, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0a, // IMPORT_FROM 'CardanoTxItemAck' + 0x16,0x0a, // STORE_NAME 'CardanoTxItemAck' + 0x1c,0x0b, // IMPORT_FROM 'CardanoTxOutput' + 0x16,0x0b, // STORE_NAME 'CardanoTxOutput' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'DataError' + 0x10,0x0e, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0f, // IMPORT_NAME 'trezor.wire' + 0x1c,0x0d, // IMPORT_FROM 'DataError' + 0x16,0x0d, // STORE_NAME 'DataError' + 0x1c,0x0e, // IMPORT_FROM 'ProcessError' + 0x16,0x0e, // STORE_NAME 'ProcessError' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'call' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x10, // IMPORT_FROM 'call' + 0x16,0x82,0x19, // STORE_NAME 'ctx_call' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x12, // LOAD_CONST_STRING 'safety_checks' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME 'apps.common' + 0x1c,0x12, // IMPORT_FROM 'safety_checks' + 0x16,0x12, // STORE_NAME 'safety_checks' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x14, // LOAD_CONST_STRING 'addresses' + 0x10,0x15, // LOAD_CONST_STRING 'certificates' + 0x10,0x16, // LOAD_CONST_STRING 'layout' + 0x10,0x17, // LOAD_CONST_STRING 'seed' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x18, // IMPORT_NAME '' + 0x1c,0x14, // IMPORT_FROM 'addresses' + 0x16,0x14, // STORE_NAME 'addresses' + 0x1c,0x15, // IMPORT_FROM 'certificates' + 0x16,0x15, // STORE_NAME 'certificates' + 0x1c,0x16, // IMPORT_FROM 'layout' + 0x16,0x16, // STORE_NAME 'layout' + 0x1c,0x17, // IMPORT_FROM 'seed' + 0x16,0x17, // STORE_NAME 'seed' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x19, // LOAD_CONST_STRING 'INPUT_PREV_HASH_SIZE' + 0x10,0x1a, // LOAD_CONST_STRING 'LOVELACE_MAX_SUPPLY' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x1b, // IMPORT_NAME 'helpers' + 0x1c,0x19, // IMPORT_FROM 'INPUT_PREV_HASH_SIZE' + 0x16,0x19, // STORE_NAME 'INPUT_PREV_HASH_SIZE' + 0x1c,0x1a, // IMPORT_FROM 'LOVELACE_MAX_SUPPLY' + 0x16,0x1a, // STORE_NAME 'LOVELACE_MAX_SUPPLY' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x1c, // LOAD_CONST_STRING 'Credential' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1d, // IMPORT_NAME 'helpers.credential' + 0x1c,0x1c, // IMPORT_FROM 'Credential' + 0x16,0x1c, // STORE_NAME 'Credential' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x1e, // LOAD_CONST_STRING 'HashBuilderDict' + 0x10,0x1f, // LOAD_CONST_STRING 'HashBuilderList' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x20, // IMPORT_NAME 'helpers.hash_builder_collection' + 0x1c,0x1e, // IMPORT_FROM 'HashBuilderDict' + 0x16,0x1e, // STORE_NAME 'HashBuilderDict' + 0x1c,0x1f, // IMPORT_FROM 'HashBuilderList' + 0x16,0x1f, // STORE_NAME 'HashBuilderList' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x21, // LOAD_CONST_STRING 'SCHEMA_STAKING' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x22, // IMPORT_NAME 'helpers.paths' + 0x1c,0x21, // IMPORT_FROM 'SCHEMA_STAKING' + 0x16,0x21, // STORE_NAME 'SCHEMA_STAKING' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x23, // LOAD_CONST_STRING 'derive_public_key' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x24, // IMPORT_NAME 'helpers.utils' + 0x1c,0x23, // IMPORT_FROM 'derive_public_key' + 0x16,0x23, // STORE_NAME 'derive_public_key' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x25, // LOAD_CONST_STRING 'Signer' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x25, // STORE_NAME 'Signer' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_sign_tx_signer__lt_module_gt_ +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer +static const byte fun_data_apps_cardano_sign_tx_signer_Signer[475] = { + 0x08,0x98,0x04, // prelude + 0x25, // names: Signer + 0x8b,0x44,0x80,0x08,0x40,0x84,0x24,0x84,0x13,0x84,0x4f,0x84,0x0e,0x64,0x60,0x64,0x60,0x84,0x0b,0x64,0x20,0x64,0x60,0x84,0x0d,0x84,0x1c,0x84,0x27,0x84,0x20,0x85,0x08,0x84,0x1a,0x65,0x20,0x85,0x08,0x84,0x19,0x84,0x38,0x85,0x1a,0x85,0x18,0x89,0x10,0x85,0x12,0x89,0x15,0x85,0x1b,0x85,0x1b,0x84,0x2d,0x85,0x08,0x85,0x17,0x85,0x13,0x85,0x0e,0x85,0x0e,0x84,0x10,0x85,0x11,0x84,0x1e,0x84,0x1b,0x85,0x12,0x84,0x08,0x85,0x09,0x84,0x0d,0x65,0x60,0x85,0x0a,0x84,0x13,0x85,0x1b,0x84,0x1b,0x85,0x0e,0x85,0x1c,0x85,0x09,0x85,0x08,0x84,0x0f,0x85,0x08,0x84,0x0f,0x65,0x40,0x85,0x08,0x65,0x20,0x84,0x10,0x85,0x0c,0x64,0x60,0x85,0x16,0x65,0x20,0x85,0x0c,0x85,0x0b,0x85,0x09,0x85,0x08,0x65,0x60,0x65,0x60,0x84,0x11, // code info + 0x11,0x82,0x1a, // LOAD_NAME '__name__' + 0x16,0x82,0x1b, // STORE_NAME '__module__' + 0x10,0x25, // LOAD_CONST_STRING 'Signer' + 0x16,0x82,0x1c, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x26, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x3b, // STORE_NAME 'sign' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x41, // STORE_NAME '_processs_tx_init' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x48, // STORE_NAME '_validate_tx_init' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x49, // STORE_NAME '_show_tx_init' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x43, // STORE_NAME '_confirm_tx' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x4c, // STORE_NAME '_process_inputs' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x61, // STORE_NAME '_validate_input' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x62, // STORE_NAME '_show_input' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x4e, // STORE_NAME '_process_outputs' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x66, // STORE_NAME '_process_output' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x68, // STORE_NAME '_validate_output' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x6a, // STORE_NAME '_show_output_init' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x81,0x00, // STORE_NAME '_show_output_credentials' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x16,0x69, // STORE_NAME '_should_show_output' + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x16,0x81,0x02, // STORE_NAME '_is_change_output' + 0x32,0x10, // MAKE_FUNCTION 16 + 0x16,0x81,0x08, // STORE_NAME '_is_simple_change_output' + 0x32,0x11, // MAKE_FUNCTION 17 + 0x16,0x70, // STORE_NAME '_process_legacy_output' + 0x32,0x12, // MAKE_FUNCTION 18 + 0x16,0x72, // STORE_NAME '_process_babbage_output' + 0x32,0x13, // MAKE_FUNCTION 19 + 0x16,0x81,0x0b, // STORE_NAME '_process_output_value' + 0x32,0x14, // MAKE_FUNCTION 20 + 0x16,0x81,0x11, // STORE_NAME '_process_asset_groups' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x15, // MAKE_FUNCTION_DEFARGS 21 + 0x16,0x81,0x13, // STORE_NAME '_validate_asset_group' + 0x32,0x16, // MAKE_FUNCTION 22 + 0x16,0x81,0x16, // STORE_NAME '_process_tokens' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x17, // MAKE_FUNCTION_DEFARGS 23 + 0x16,0x81,0x18, // STORE_NAME '_validate_token' + 0x32,0x18, // MAKE_FUNCTION 24 + 0x16,0x81,0x0f, // STORE_NAME '_process_inline_datum' + 0x32,0x19, // MAKE_FUNCTION 25 + 0x16,0x81,0x10, // STORE_NAME '_process_reference_script' + 0x32,0x1a, // MAKE_FUNCTION 26 + 0x16,0x50, // STORE_NAME '_process_certificates' + 0x32,0x1b, // MAKE_FUNCTION 27 + 0x16,0x81,0x24, // STORE_NAME '_validate_certificate' + 0x32,0x1c, // MAKE_FUNCTION 28 + 0x16,0x81,0x25, // STORE_NAME '_show_certificate' + 0x32,0x1d, // MAKE_FUNCTION 29 + 0x16,0x81,0x2b, // STORE_NAME '_process_pool_owners' + 0x32,0x1e, // MAKE_FUNCTION 30 + 0x16,0x81,0x3a, // STORE_NAME '_show_pool_owner' + 0x32,0x1f, // MAKE_FUNCTION 31 + 0x16,0x81,0x2d, // STORE_NAME '_process_pool_relays' + 0x32,0x20, // MAKE_FUNCTION 32 + 0x16,0x51, // STORE_NAME '_process_withdrawals' + 0x32,0x21, // MAKE_FUNCTION 33 + 0x16,0x81,0x44, // STORE_NAME '_validate_withdrawal' + 0x32,0x22, // MAKE_FUNCTION 34 + 0x16,0x52, // STORE_NAME '_process_auxiliary_data' + 0x32,0x23, // MAKE_FUNCTION 35 + 0x16,0x53, // STORE_NAME '_process_minting' + 0x32,0x24, // MAKE_FUNCTION 36 + 0x16,0x81,0x53, // STORE_NAME '_process_minting_tokens' + 0x32,0x25, // MAKE_FUNCTION 37 + 0x16,0x54, // STORE_NAME '_process_script_data_hash' + 0x32,0x26, // MAKE_FUNCTION 38 + 0x16,0x81,0x55, // STORE_NAME '_validate_script_data_hash' + 0x32,0x27, // MAKE_FUNCTION 39 + 0x16,0x55, // STORE_NAME '_process_collateral_inputs' + 0x32,0x28, // MAKE_FUNCTION 40 + 0x16,0x81,0x59, // STORE_NAME '_validate_collateral_input' + 0x32,0x29, // MAKE_FUNCTION 41 + 0x16,0x81,0x5a, // STORE_NAME '_show_collateral_input' + 0x32,0x2a, // MAKE_FUNCTION 42 + 0x16,0x56, // STORE_NAME '_process_required_signers' + 0x32,0x2b, // MAKE_FUNCTION 43 + 0x16,0x81,0x5e, // STORE_NAME '_validate_required_signer' + 0x32,0x2c, // MAKE_FUNCTION 44 + 0x16,0x58, // STORE_NAME '_process_collateral_return' + 0x32,0x2d, // MAKE_FUNCTION 45 + 0x16,0x81,0x65, // STORE_NAME '_validate_collateral_return' + 0x32,0x2e, // MAKE_FUNCTION 46 + 0x16,0x81,0x68, // STORE_NAME '_show_collateral_return_init' + 0x32,0x2f, // MAKE_FUNCTION 47 + 0x16,0x81,0x66, // STORE_NAME '_should_show_collateral_return_init' + 0x32,0x30, // MAKE_FUNCTION 48 + 0x16,0x81,0x67, // STORE_NAME '_should_show_collateral_return_tokens' + 0x32,0x31, // MAKE_FUNCTION 49 + 0x16,0x59, // STORE_NAME '_process_reference_inputs' + 0x32,0x32, // MAKE_FUNCTION 50 + 0x16,0x81,0x6c, // STORE_NAME '_validate_reference_input' + 0x32,0x33, // MAKE_FUNCTION 51 + 0x16,0x44, // STORE_NAME '_process_witness_requests' + 0x32,0x34, // MAKE_FUNCTION 52 + 0x16,0x81,0x70, // STORE_NAME '_validate_witness_request' + 0x32,0x35, // MAKE_FUNCTION 53 + 0x16,0x81,0x71, // STORE_NAME '_show_witness_request' + 0x32,0x36, // MAKE_FUNCTION 54 + 0x16,0x81,0x77, // STORE_NAME '_assert_tx_init_cond' + 0x32,0x37, // MAKE_FUNCTION 55 + 0x16,0x5e, // STORE_NAME '_is_network_id_verifiable' + 0x32,0x38, // MAKE_FUNCTION 56 + 0x16,0x81,0x0a, // STORE_NAME '_get_output_address' + 0x32,0x39, // MAKE_FUNCTION 57 + 0x16,0x7a, // STORE_NAME '_get_output_address_type' + 0x32,0x3a, // MAKE_FUNCTION 58 + 0x16,0x81,0x45, // STORE_NAME '_derive_withdrawal_address_bytes' + 0x32,0x3b, // MAKE_FUNCTION 59 + 0x16,0x81,0x1c, // STORE_NAME '_get_chunks_count' + 0x32,0x3c, // MAKE_FUNCTION 60 + 0x16,0x81,0x1e, // STORE_NAME '_validate_chunk' + 0x32,0x3d, // MAKE_FUNCTION 61 + 0x16,0x81,0x73, // STORE_NAME '_get_byron_witness' + 0x32,0x3e, // MAKE_FUNCTION 62 + 0x16,0x81,0x74, // STORE_NAME '_get_shelley_witness' + 0x32,0x3f, // MAKE_FUNCTION 63 + 0x16,0x82,0x08, // STORE_NAME '_sign_tx_hash' + 0x32,0x40, // MAKE_FUNCTION 64 + 0x16,0x81,0x34, // STORE_NAME '_fail_or_warn_if_invalid_path' + 0x32,0x41, // MAKE_FUNCTION 65 + 0x16,0x82,0x11, // STORE_NAME '_fail_or_warn_path' + 0x32,0x42, // MAKE_FUNCTION 66 + 0x16,0x77, // STORE_NAME '_fail_if_strict_and_unusual' + 0x32,0x43, // MAKE_FUNCTION 67 + 0x16,0x81,0x0c, // STORE_NAME '_show_if_showing_details' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer___init__ +static const byte fun_data_apps_cardano_sign_tx_signer_Signer___init__[149] = { + 0xa3,0x10,0x38, // prelude + 0x26,0x82,0x1d,0x29,0x2a, // names: __init__, self, msg, keychain + 0x80,0x53,0x4b,0x24,0x44,0x66,0x24,0x20,0x26,0x25,0x25,0x23,0x26,0x25,0x23,0x26,0x25,0x25,0x23,0x26,0x6b,0x23,0x6b, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x27, // LOAD_CONST_STRING 'AccountPathChecker' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x28, // IMPORT_NAME 'helpers.account_path_check' + 0x1c,0x27, // IMPORT_FROM 'AccountPathChecker' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x29, // STORE_ATTR 'msg' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x2a, // STORE_ATTR 'keychain' + 0xb3, // LOAD_FAST 3 + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x2b, // STORE_ATTR 'account_path_checker' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x12,0x82,0x1e, // LOAD_GLOBAL 'sum' + 0xb1, // LOAD_FAST 1 + 0x13,0x2c, // LOAD_ATTR 'ttl' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x2d, // LOAD_ATTR 'certificates_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0xb1, // LOAD_FAST 1 + 0x13,0x2e, // LOAD_ATTR 'withdrawals_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0xb1, // LOAD_FAST 1 + 0x13,0x2f, // LOAD_ATTR 'has_auxiliary_data' + 0xb1, // LOAD_FAST 1 + 0x13,0x30, // LOAD_ATTR 'validity_interval_start' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x31, // LOAD_ATTR 'minting_asset_groups_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'include_network_id' + 0xb1, // LOAD_FAST 1 + 0x13,0x33, // LOAD_ATTR 'script_data_hash' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x34, // LOAD_ATTR 'collateral_inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0xb1, // LOAD_FAST 1 + 0x13,0x35, // LOAD_ATTR 'required_signers_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0xb1, // LOAD_FAST 1 + 0x13,0x36, // LOAD_ATTR 'has_collateral_return' + 0xb1, // LOAD_FAST 1 + 0x13,0x37, // LOAD_ATTR 'total_collateral' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x38, // LOAD_ATTR 'reference_inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x2a,0x0d, // BUILD_TUPLE 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc4, // STORE_FAST 4 + 0x12,0x1e, // LOAD_GLOBAL 'HashBuilderDict' + 0xb4, // LOAD_FAST 4 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x39, // STORE_ATTR 'tx_dict' + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x3a, // STORE_ATTR 'should_show_details' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 149, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 21, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 38, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer___init__ + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer___init__ + 31, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer___init__ + 31, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer_sign +static const byte fun_data_apps_cardano_sign_tx_signer_Signer_sign[131] = { + 0xcd,0x40,0x1e, // prelude + 0x3b,0x82,0x1d, // names: sign, self + 0x80,0x73,0x4b,0x2a,0x29,0x26,0x4c,0x26,0x4a,0x2a,0x2e,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3c, // LOAD_CONST_STRING 'hashlib' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x3d, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x3c, // IMPORT_FROM 'hashlib' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x3e, // LOAD_METHOD 'blake2b' + 0x10,0x3f, // LOAD_CONST_STRING 'outlen' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x82,0x00, // CALL_METHOD 256 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'tx_dict' + 0x14,0x40, // LOAD_METHOD 'start' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'tx_dict' + 0x47,0x0b, // SETUP_WITH 11 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x41, // LOAD_METHOD '_processs_tx_init' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0xb2, // LOAD_FAST 2 + 0x14,0x42, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x14,0x43, // LOAD_METHOD '_confirm_tx' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x44, // LOAD_METHOD '_process_witness_requests' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0xb4, // LOAD_FAST 4 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x45, // LOAD_ATTR 'CardanoTxHostAck' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x14,0x46, // LOAD_METHOD 'CardanoTxBodyHash' + 0x10,0x47, // LOAD_CONST_STRING 'tx_hash' + 0xb3, // LOAD_FAST 3 + 0x36,0x82,0x00, // CALL_METHOD 256 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x45, // LOAD_ATTR 'CardanoTxHostAck' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer_sign = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer_sign, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 131, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 59, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer_sign + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer_sign + 18, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer_sign + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__processs_tx_init +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__processs_tx_init[487] = { + 0x85,0x50,0x78, // prelude + 0x41,0x82,0x1d, // names: _processs_tx_init, self + 0x80,0x86,0x26,0x29,0x24,0x26,0x43,0x27,0x28,0x4d,0x27,0x28,0x4d,0x48,0x28,0x48,0x27,0x27,0x28,0x4d,0x27,0x22,0x4c,0x28,0x4d,0x25,0x49,0x28,0x48,0x27,0x22,0x23,0x49,0x28,0x4d,0x28,0x49,0x27,0x21,0x46,0x28,0x4d,0x27,0x21,0x46,0x28,0x4d,0x25,0x48,0x25,0x49,0x28,0x48,0x27,0x21,0x46,0x28, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x48, // LOAD_METHOD '_validate_tx_init' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x49, // LOAD_METHOD '_show_tx_init' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'tx_dict' + 0x13,0x4a, // LOAD_ATTR 'add' + 0xc2, // STORE_FAST 2 + 0x12,0x1f, // LOAD_GLOBAL 'HashBuilderList' + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x4b, // LOAD_ATTR 'inputs_count' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x47,0x0c, // SETUP_WITH 12 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x4c, // LOAD_METHOD '_process_inputs' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x4d, // LOAD_ATTR 'outputs_count' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x47,0x0c, // SETUP_WITH 12 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x4e, // LOAD_METHOD '_process_outputs' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0xb2, // LOAD_FAST 2 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x4f, // LOAD_ATTR 'fee' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x2c, // LOAD_ATTR 'ttl' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x2c, // LOAD_ATTR 'ttl' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x2d, // LOAD_ATTR 'certificates_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x2d, // LOAD_ATTR 'certificates_count' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc6, // STORE_FAST 6 + 0xb2, // LOAD_FAST 2 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xb6, // LOAD_FAST 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0x47,0x0c, // SETUP_WITH 12 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x50, // LOAD_METHOD '_process_certificates' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0xb1, // LOAD_FAST 1 + 0x13,0x2e, // LOAD_ATTR 'withdrawals_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x63, // POP_JUMP_IF_FALSE 35 + 0x12,0x1e, // LOAD_GLOBAL 'HashBuilderDict' + 0xb1, // LOAD_FAST 1 + 0x13,0x2e, // LOAD_ATTR 'withdrawals_count' + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc7, // STORE_FAST 7 + 0xb2, // LOAD_FAST 2 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0x47,0x0c, // SETUP_WITH 12 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x51, // LOAD_METHOD '_process_withdrawals' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0xb1, // LOAD_FAST 1 + 0x13,0x2f, // LOAD_ATTR 'has_auxiliary_data' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x52, // LOAD_METHOD '_process_auxiliary_data' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x30, // LOAD_ATTR 'validity_interval_start' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x30, // LOAD_ATTR 'validity_interval_start' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x31, // LOAD_ATTR 'minting_asset_groups_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x63, // POP_JUMP_IF_FALSE 35 + 0x12,0x1e, // LOAD_GLOBAL 'HashBuilderDict' + 0xb1, // LOAD_FAST 1 + 0x13,0x31, // LOAD_ATTR 'minting_asset_groups_count' + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc8, // STORE_FAST 8 + 0xb2, // LOAD_FAST 2 + 0x89, // LOAD_CONST_SMALL_INT 9 + 0xb8, // LOAD_FAST 8 + 0x34,0x02, // CALL_FUNCTION 2 + 0x47,0x0c, // SETUP_WITH 12 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x53, // LOAD_METHOD '_process_minting' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0xb1, // LOAD_FAST 1 + 0x13,0x33, // LOAD_ATTR 'script_data_hash' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x54, // LOAD_METHOD '_process_script_data_hash' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x34, // LOAD_ATTR 'collateral_inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x34, // LOAD_ATTR 'collateral_inputs_count' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0xb2, // LOAD_FAST 2 + 0x8d, // LOAD_CONST_SMALL_INT 13 + 0xb9, // LOAD_FAST 9 + 0x34,0x02, // CALL_FUNCTION 2 + 0x47,0x0c, // SETUP_WITH 12 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x55, // LOAD_METHOD '_process_collateral_inputs' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0xb1, // LOAD_FAST 1 + 0x13,0x35, // LOAD_ATTR 'required_signers_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x35, // LOAD_ATTR 'required_signers_count' + 0x34,0x01, // CALL_FUNCTION 1 + 0xca, // STORE_FAST 10 + 0xb2, // LOAD_FAST 2 + 0x8e, // LOAD_CONST_SMALL_INT 14 + 0xba, // LOAD_FAST 10 + 0x34,0x02, // CALL_FUNCTION 2 + 0x47,0x0c, // SETUP_WITH 12 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x56, // LOAD_METHOD '_process_required_signers' + 0xba, // LOAD_FAST 10 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'include_network_id' + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0xb1, // LOAD_FAST 1 + 0x13,0x57, // LOAD_ATTR 'network_id' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x36, // LOAD_ATTR 'has_collateral_return' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x58, // LOAD_METHOD '_process_collateral_return' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x37, // LOAD_ATTR 'total_collateral' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x91, // LOAD_CONST_SMALL_INT 17 + 0xb1, // LOAD_FAST 1 + 0x13,0x37, // LOAD_ATTR 'total_collateral' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x38, // LOAD_ATTR 'reference_inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x38, // LOAD_ATTR 'reference_inputs_count' + 0x34,0x01, // CALL_FUNCTION 1 + 0xcb, // STORE_FAST 11 + 0xb2, // LOAD_FAST 2 + 0x92, // LOAD_CONST_SMALL_INT 18 + 0xbb, // LOAD_FAST 11 + 0x34,0x02, // CALL_FUNCTION 2 + 0x47,0x0c, // SETUP_WITH 12 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x59, // LOAD_METHOD '_process_reference_inputs' + 0xbb, // LOAD_FAST 11 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__processs_tx_init = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__processs_tx_init, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 487, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 65, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__processs_tx_init + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__processs_tx_init + 63, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__processs_tx_init + 63, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__validate_tx_init +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__validate_tx_init[80] = { + 0x29,0x1a, // prelude + 0x48,0x82,0x1d, // names: _validate_tx_init, self + 0x80,0xd5,0x4b,0x44,0x28,0x27,0x20,0x28,0x48,0x27, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x5a, // LOAD_CONST_STRING 'validate_network_info' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x24, // IMPORT_NAME 'helpers.utils' + 0x1c,0x5a, // IMPORT_FROM 'validate_network_info' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x13,0x4f, // LOAD_ATTR 'fee' + 0x12,0x1a, // LOAD_GLOBAL 'LOVELACE_MAX_SUPPLY' + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x13,0x37, // LOAD_ATTR 'total_collateral' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb2, // LOAD_FAST 2 + 0x13,0x37, // LOAD_ATTR 'total_collateral' + 0x12,0x1a, // LOAD_GLOBAL 'LOVELACE_MAX_SUPPLY' + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x57, // LOAD_ATTR 'network_id' + 0xb2, // LOAD_FAST 2 + 0x13,0x5b, // LOAD_ATTR 'protocol_magic' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__validate_tx_init = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__validate_tx_init, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 80, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 72, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__validate_tx_init + 5, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__validate_tx_init + 15, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__validate_tx_init + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__show_tx_init +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__show_tx_init[44] = { + 0x99,0x40,0x0e, // prelude + 0x49,0x82,0x1d, // names: _show_tx_init, self + 0x80,0xe3,0x4f,0x27, // code info + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x5c, // LOAD_METHOD 'show_tx_init' + 0xb0, // LOAD_FAST 0 + 0x13,0x5d, // LOAD_ATTR 'SIGNING_MODE_TITLE' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xb0, // LOAD_FAST 0 + 0x18,0x3a, // STORE_ATTR 'should_show_details' + 0xb0, // LOAD_FAST 0 + 0x14,0x5e, // LOAD_METHOD '_is_network_id_verifiable' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x4a, // POP_JUMP_IF_TRUE 10 + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x5f, // LOAD_METHOD 'warn_tx_network_unverifiable' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__show_tx_init = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__show_tx_init, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 73, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__show_tx_init + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__show_tx_init + 10, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__show_tx_init + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__confirm_tx +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__confirm_tx[15] = { + 0x92,0x40,0x0c, // prelude + 0x43,0x82,0x1d,0x47, // names: _confirm_tx, self, tx_hash + 0x80,0xea, // code info + 0x12,0x82,0x1f, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__confirm_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__confirm_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 67, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__confirm_tx + 7, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__confirm_tx + 9, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__confirm_tx + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_inputs +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_inputs[84] = { + 0xca,0x40,0x18, // prelude + 0x4c,0x82,0x1d,0x82,0x20, // names: _process_inputs, self, inputs_list + 0x80,0xf1,0x2a,0x23,0x4e,0x27,0x2a, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x4b, // LOAD_ATTR 'inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x74, // JUMP 52 + 0x57, // DUP_TOP + 0xc2, // STORE_FAST 2 + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0x12,0x0a, // LOAD_GLOBAL 'CardanoTxItemAck' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x60, // LOAD_ATTR 'CardanoTxInput' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x14,0x61, // LOAD_METHOD '_validate_input' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x62, // LOAD_METHOD '_show_input' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x63, // LOAD_METHOD 'append' + 0xb3, // LOAD_FAST 3 + 0x13,0x64, // LOAD_ATTR 'prev_hash' + 0xb3, // LOAD_FAST 3 + 0x13,0x65, // LOAD_ATTR 'prev_index' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x07, // POP_JUMP_IF_TRUE -57 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_inputs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_inputs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 84, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 76, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_inputs + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_inputs + 15, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_inputs + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__validate_input +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__validate_input[32] = { + 0x1a,0x10, // prelude + 0x61,0x82,0x1d,0x82,0x21, // names: _validate_input, self, input + 0x80,0xfa,0x2d, // code info + 0x12,0x82,0x22, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x64, // LOAD_ATTR 'prev_hash' + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x19, // LOAD_GLOBAL 'INPUT_PREV_HASH_SIZE' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__validate_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__validate_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 97, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__validate_input + 7, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__validate_input + 10, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__validate_input + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__show_input +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__show_input[12] = { + 0x92,0x40,0x0e, // prelude + 0x62,0x82,0x1d,0x82,0x21, // names: _show_input, self, input + 0x80,0xff, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__show_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__show_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 98, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__show_input + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__show_input + 10, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__show_input + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_outputs +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_outputs[85] = { + 0xd2,0x40,0x1c, // prelude + 0x4e,0x82,0x1d,0x82,0x23, // names: _process_outputs, self, outputs_list + 0x90,0x04,0x22,0x2a,0x23,0x4c,0x4b,0x4f,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x4d, // LOAD_ATTR 'outputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x64, // JUMP 36 + 0x57, // DUP_TOP + 0xc3, // STORE_FAST 3 + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0x12,0x0a, // LOAD_GLOBAL 'CardanoTxItemAck' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x0b, // LOAD_GLOBAL 'CardanoTxOutput' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x66, // LOAD_METHOD '_process_output' + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x13,0x67, // LOAD_ATTR 'amount' + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x17, // POP_JUMP_IF_TRUE -41 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x12,0x1a, // LOAD_GLOBAL 'LOVELACE_MAX_SUPPLY' + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_outputs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_outputs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 85, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 78, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_outputs + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_outputs + 17, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_outputs + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_output +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_output[179] = { + 0xef,0x40,0x36, // prelude + 0x66,0x82,0x1d,0x82,0x23,0x82,0x24, // names: _process_output, self, outputs_list, output + 0x90,0x13,0x27,0x27,0x23,0x4a,0x24,0x20,0x26,0x25,0x6b,0x2a,0x26,0x29,0x31,0x2a,0x23,0x49,0x29,0x51, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x68, // LOAD_METHOD '_validate_output' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x69, // LOAD_METHOD '_should_show_output' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb0, // LOAD_FAST 0 + 0x14,0x6a, // LOAD_METHOD '_show_output_init' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x12,0x82,0x1e, // LOAD_GLOBAL 'sum' + 0xb2, // LOAD_FAST 2 + 0x13,0x6b, // LOAD_ATTR 'datum_hash' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x6c, // LOAD_ATTR 'inline_datum_size' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0xb2, // LOAD_FAST 2 + 0x13,0x6d, // LOAD_ATTR 'reference_script_size' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x2a,0x03, // BUILD_TUPLE 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x6e, // LOAD_ATTR 'format' + 0x12,0x07, // LOAD_GLOBAL 'CardanoTxOutputSerializationFormat' + 0x13,0x6f, // LOAD_ATTR 'ARRAY_LEGACY' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0x12,0x1f, // LOAD_GLOBAL 'HashBuilderList' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x14,0x63, // LOAD_METHOD 'append' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x47,0x0e, // SETUP_WITH 14 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x70, // LOAD_METHOD '_process_legacy_output' + 0xb5, // LOAD_FAST 5 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x42,0x74, // JUMP 52 + 0xb2, // LOAD_FAST 2 + 0x13,0x6e, // LOAD_ATTR 'format' + 0x12,0x07, // LOAD_GLOBAL 'CardanoTxOutputSerializationFormat' + 0x13,0x71, // LOAD_ATTR 'MAP_BABBAGE' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x66, // POP_JUMP_IF_FALSE 38 + 0x12,0x1e, // LOAD_GLOBAL 'HashBuilderDict' + 0xb4, // LOAD_FAST 4 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc6, // STORE_FAST 6 + 0xb1, // LOAD_FAST 1 + 0x14,0x63, // LOAD_METHOD 'append' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x47,0x0e, // SETUP_WITH 14 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x72, // LOAD_METHOD '_process_babbage_output' + 0xb6, // LOAD_FAST 6 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x42,0x44, // JUMP 4 + 0x12,0x82,0x25, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 179, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 102, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_output + 10, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_output + 30, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_output + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__validate_output +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__validate_output[235] = { + 0x42,0x3a, // prelude + 0x68,0x82,0x1d,0x82,0x24, // names: _validate_output, self, output + 0x90,0x2d,0x4b,0x44,0x2e,0x47,0x26,0x28,0x29,0x28,0x24,0x72,0x67,0x28,0x2c,0x67,0x27,0x2a,0x67,0x2f,0x67,0x27,0x2a,0x47, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x73, // LOAD_CONST_STRING 'OUTPUT_DATUM_HASH_SIZE' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1b, // IMPORT_NAME 'helpers' + 0x1c,0x73, // IMPORT_FROM 'OUTPUT_DATUM_HASH_SIZE' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x74, // LOAD_ATTR 'address_parameters' + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb1, // LOAD_FAST 1 + 0x13,0x75, // LOAD_ATTR 'address' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x12,0x14, // LOAD_GLOBAL 'addresses' + 0x14,0x76, // LOAD_METHOD 'validate_output_address_parameters' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x77, // LOAD_METHOD '_fail_if_strict_and_unusual' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x65, // JUMP 37 + 0xb1, // LOAD_FAST 1 + 0x13,0x75, // LOAD_ATTR 'address' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0x12,0x14, // LOAD_GLOBAL 'addresses' + 0x14,0x78, // LOAD_METHOD 'validate_output_address' + 0xb1, // LOAD_FAST 1 + 0x13,0x75, // LOAD_ATTR 'address' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x5b, // LOAD_ATTR 'protocol_magic' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x57, // LOAD_ATTR 'network_id' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x13,0x6b, // LOAD_ATTR 'datum_hash' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x82,0x22, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x6b, // LOAD_ATTR 'datum_hash' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x13,0x6c, // LOAD_ATTR 'inline_datum_size' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb1, // LOAD_FAST 1 + 0x13,0x6e, // LOAD_ATTR 'format' + 0x12,0x07, // LOAD_GLOBAL 'CardanoTxOutputSerializationFormat' + 0x13,0x71, // LOAD_ATTR 'MAP_BABBAGE' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x13,0x6b, // LOAD_ATTR 'datum_hash' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb1, // LOAD_FAST 1 + 0x13,0x6c, // LOAD_ATTR 'inline_datum_size' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x13,0x6d, // LOAD_ATTR 'reference_script_size' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb1, // LOAD_FAST 1 + 0x13,0x6e, // LOAD_ATTR 'format' + 0x12,0x07, // LOAD_GLOBAL 'CardanoTxOutputSerializationFormat' + 0x13,0x71, // LOAD_ATTR 'MAP_BABBAGE' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'account_path_checker' + 0x14,0x79, // LOAD_METHOD 'add_output' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__validate_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__validate_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 235, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 104, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__validate_output + 7, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__validate_output + 31, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__validate_output + 31, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__show_output_init +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__show_output_init[190] = { + 0xe2,0x40,0x38, // prelude + 0x6a,0x82,0x1d,0x82,0x24, // names: _show_output_init, self, output + 0x90,0x54,0x27,0x20,0x27,0x27,0x48,0x4a,0x27,0x4a,0x28,0x24,0x23,0x23,0x25,0x48,0x4f,0x20,0x44,0x25,0x44,0x30,0x28, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x7a, // LOAD_METHOD '_get_output_address_type' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x6b, // LOAD_ATTR 'datum_hash' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb1, // LOAD_FAST 1 + 0x13,0x6c, // LOAD_ATTR 'inline_datum_size' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb2, // LOAD_FAST 2 + 0x12,0x14, // LOAD_GLOBAL 'addresses' + 0x13,0x7b, // LOAD_ATTR 'ADDRESS_TYPES_PAYMENT_SCRIPT' + 0xdd, // BINARY_OP 6 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x7c, // LOAD_METHOD 'warn_tx_output_no_datum' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x7d, // LOAD_ATTR 'asset_groups_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x7e, // LOAD_METHOD 'warn_tx_output_contains_tokens' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x74, // LOAD_ATTR 'address_parameters' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x66, // POP_JUMP_IF_FALSE 38 + 0x12,0x14, // LOAD_GLOBAL 'addresses' + 0x14,0x7f, // LOAD_METHOD 'derive_human_readable' + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'keychain' + 0xb1, // LOAD_FAST 1 + 0x13,0x74, // LOAD_ATTR 'address_parameters' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x5b, // LOAD_ATTR 'protocol_magic' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x57, // LOAD_ATTR 'network_id' + 0x36,0x04, // CALL_METHOD 4 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x00, // LOAD_METHOD '_show_output_credentials' + 0xb1, // LOAD_FAST 1 + 0x13,0x74, // LOAD_ATTR 'address_parameters' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x44, // JUMP 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x75, // LOAD_ATTR 'address' + 0xc3, // STORE_FAST 3 + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x01, // LOAD_METHOD 'confirm_sending' + 0xb1, // LOAD_FAST 1 + 0x13,0x67, // LOAD_ATTR 'amount' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x02, // LOAD_METHOD '_is_change_output' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x81,0x03, // LOAD_CONST_STRING 'change' + 0x42,0x42, // JUMP 2 + 0x10,0x75, // LOAD_CONST_STRING 'address' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x57, // LOAD_ATTR 'network_id' + 0x10,0x81,0x04, // LOAD_CONST_STRING 'chunkify' + 0x12,0x82,0x26, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x81,0x04, // LOAD_ATTR 'chunkify' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x82,0x04, // CALL_METHOD 260 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__show_output_init = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__show_output_init, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 190, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 106, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__show_output_init + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__show_output_init + 31, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__show_output_init + 31, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__show_output_credentials +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__show_output_credentials[41] = { + 0xba,0x40,0x12, // prelude + 0x81,0x00,0x82,0x1d,0x74, // names: _show_output_credentials, self, address_parameters + 0x90,0x76,0x25,0x28, // code info + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x05, // LOAD_METHOD 'show_change_output_credentials' + 0x12,0x1c, // LOAD_GLOBAL 'Credential' + 0x14,0x81,0x06, // LOAD_METHOD 'payment_credential' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x12,0x1c, // LOAD_GLOBAL 'Credential' + 0x14,0x81,0x07, // LOAD_METHOD 'stake_credential' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__show_output_credentials = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__show_output_credentials, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 128, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__show_output_credentials + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__show_output_credentials + 12, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__show_output_credentials + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__should_show_output +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__should_show_output[93] = { + 0x32,0x2a, // prelude + 0x69,0x82,0x1d,0x82,0x24, // names: _should_show_output, self, output + 0x90,0x7c,0x60,0x40,0x27,0x20,0x27,0x27,0x68,0x42,0x49,0x20,0x28,0x27,0x46,0x47, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x7a, // LOAD_METHOD '_get_output_address_type' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x6b, // LOAD_ATTR 'datum_hash' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb1, // LOAD_FAST 1 + 0x13,0x6c, // LOAD_ATTR 'inline_datum_size' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb2, // LOAD_FAST 2 + 0x12,0x14, // LOAD_GLOBAL 'addresses' + 0x13,0x7b, // LOAD_ATTR 'ADDRESS_TYPES_PAYMENT_SCRIPT' + 0xdd, // BINARY_OP 6 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x08, // LOAD_METHOD '_is_simple_change_output' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0xb1, // LOAD_FAST 1 + 0x13,0x6b, // LOAD_ATTR 'datum_hash' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x45,0x0c, // JUMP_IF_TRUE_OR_POP 12 + 0xb1, // LOAD_FAST 1 + 0x13,0x6c, // LOAD_ATTR 'inline_datum_size' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x45,0x05, // JUMP_IF_TRUE_OR_POP 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x6d, // LOAD_ATTR 'reference_script_size' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x3a, // LOAD_ATTR 'should_show_details' + 0x46,0x01, // JUMP_IF_FALSE_OR_POP 1 + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__should_show_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__should_show_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 93, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 105, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__should_show_output + 7, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__should_show_output + 23, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__should_show_output + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__is_change_output +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__is_change_output[18] = { + 0x1a,0x12, // prelude + 0x81,0x02,0x82,0x1d,0x82,0x24, // names: _is_change_output, self, output + 0x90,0x96,0x20, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x74, // LOAD_ATTR 'address_parameters' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__is_change_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__is_change_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 130, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__is_change_output + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__is_change_output + 11, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__is_change_output + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__is_simple_change_output +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__is_simple_change_output[42] = { + 0x22,0x16, // prelude + 0x81,0x08,0x82,0x1d,0x82,0x24, // names: _is_simple_change_output, self, output + 0x90,0x9a,0x20,0x4d,0x29, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x81,0x09, // LOAD_CONST_STRING 'should_show_credentials' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1d, // IMPORT_NAME 'helpers.credential' + 0x1c,0x81,0x09, // IMPORT_FROM 'should_show_credentials' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x74, // LOAD_ATTR 'address_parameters' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x46,0x07, // JUMP_IF_FALSE_OR_POP 7 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x74, // LOAD_ATTR 'address_parameters' + 0x34,0x01, // CALL_FUNCTION 1 + 0xd3, // UNARY_OP 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__is_simple_change_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__is_simple_change_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 136, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__is_simple_change_output + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__is_simple_change_output + 13, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__is_simple_change_output + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_legacy_output +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_legacy_output[131] = { + 0xe4,0x44,0x2c, // prelude + 0x70,0x82,0x1d,0x82,0x27,0x82,0x24,0x82,0x28, // names: _process_legacy_output, self, output_list, output, should_show + 0x90,0xa7,0x28,0x47,0x47,0x6b,0x26,0x29,0x50,0x28,0x23,0x24,0x50, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0a, // LOAD_METHOD '_get_output_address' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x14,0x63, // LOAD_METHOD 'append' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x7d, // LOAD_ATTR 'asset_groups_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb1, // LOAD_FAST 1 + 0x14,0x63, // LOAD_METHOD 'append' + 0xb2, // LOAD_FAST 2 + 0x13,0x67, // LOAD_ATTR 'amount' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x5f, // JUMP 31 + 0x12,0x1f, // LOAD_GLOBAL 'HashBuilderList' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x14,0x63, // LOAD_METHOD 'append' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x47,0x0f, // SETUP_WITH 15 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0b, // LOAD_METHOD '_process_output_value' + 0xb5, // LOAD_FAST 5 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0xb2, // LOAD_FAST 2 + 0x13,0x6b, // LOAD_ATTR 'datum_hash' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0xb3, // LOAD_FAST 3 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0c, // LOAD_METHOD '_show_if_showing_details' + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x0d, // LOAD_METHOD 'confirm_datum_hash' + 0xb2, // LOAD_FAST 2 + 0x13,0x6b, // LOAD_ATTR 'datum_hash' + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x63, // LOAD_METHOD 'append' + 0xb2, // LOAD_FAST 2 + 0x13,0x6b, // LOAD_ATTR 'datum_hash' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_legacy_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_legacy_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 131, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 112, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_legacy_output + 12, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_legacy_output + 25, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_legacy_output + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_babbage_output +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_babbage_output[277] = { + 0x98,0x56,0x54, // prelude + 0x72,0x82,0x1d,0x82,0x29,0x82,0x24,0x82,0x28, // names: _process_babbage_output, self, output_dict, output, should_show + 0x90,0xc0,0x60,0x20,0x4d,0x44,0x28,0x46,0x47,0x6a,0x26,0x28,0x50,0x28,0x23,0x24,0x50,0x42,0x4c,0x27,0x26,0x28,0x27,0x21,0x46,0x29,0x25,0x72,0x27,0x21,0x46,0x28,0x25, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x81,0x0e, // LOAD_CONST_STRING 'HashBuilderEmbeddedCBOR' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x20, // IMPORT_NAME 'helpers.hash_builder_collection' + 0x1c,0x81,0x0e, // IMPORT_FROM 'HashBuilderEmbeddedCBOR' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x4a, // LOAD_ATTR 'add' + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0a, // LOAD_METHOD '_get_output_address' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb6, // LOAD_FAST 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x7d, // LOAD_ATTR 'asset_groups_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb5, // LOAD_FAST 5 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x67, // LOAD_ATTR 'amount' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x5e, // JUMP 30 + 0x12,0x1f, // LOAD_GLOBAL 'HashBuilderList' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0xb5, // LOAD_FAST 5 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0x47,0x0f, // SETUP_WITH 15 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0b, // LOAD_METHOD '_process_output_value' + 0xb7, // LOAD_FAST 7 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0xb2, // LOAD_FAST 2 + 0x13,0x6b, // LOAD_ATTR 'datum_hash' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x65, // POP_JUMP_IF_FALSE 37 + 0xb3, // LOAD_FAST 3 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0c, // LOAD_METHOD '_show_if_showing_details' + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x0d, // LOAD_METHOD 'confirm_datum_hash' + 0xb2, // LOAD_FAST 2 + 0x13,0x6b, // LOAD_ATTR 'datum_hash' + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x6b, // LOAD_ATTR 'datum_hash' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0xc3,0x80, // JUMP 67 + 0xb2, // LOAD_FAST 2 + 0x13,0x6c, // LOAD_ATTR 'inline_datum_size' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x7c, // POP_JUMP_IF_FALSE 60 + 0x12,0x1f, // LOAD_GLOBAL 'HashBuilderList' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0xb5, // LOAD_FAST 5 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xb8, // LOAD_FAST 8 + 0x34,0x02, // CALL_FUNCTION 2 + 0x47,0x2b, // SETUP_WITH 43 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x63, // LOAD_METHOD 'append' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x6c, // LOAD_ATTR 'inline_datum_size' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0xb8, // LOAD_FAST 8 + 0x14,0x63, // LOAD_METHOD 'append' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0x47,0x11, // SETUP_WITH 17 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0f, // LOAD_METHOD '_process_inline_datum' + 0xb9, // LOAD_FAST 9 + 0xb2, // LOAD_FAST 2 + 0x13,0x6c, // LOAD_ATTR 'inline_datum_size' + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x42,0x40, // JUMP 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x6d, // LOAD_ATTR 'reference_script_size' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x61, // POP_JUMP_IF_FALSE 33 + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x6d, // LOAD_ATTR 'reference_script_size' + 0x34,0x01, // CALL_FUNCTION 1 + 0xca, // STORE_FAST 10 + 0xb5, // LOAD_FAST 5 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xba, // LOAD_FAST 10 + 0x34,0x02, // CALL_FUNCTION 2 + 0x47,0x11, // SETUP_WITH 17 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x10, // LOAD_METHOD '_process_reference_script' + 0xba, // LOAD_FAST 10 + 0xb2, // LOAD_FAST 2 + 0x13,0x6d, // LOAD_ATTR 'reference_script_size' + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_babbage_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_babbage_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 277, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 20, + .n_exc_stack = 2, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 114, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_babbage_output + 12, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_babbage_output + 45, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_babbage_output + 45, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_output_value +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_output_value[76] = { + 0xdc,0x44,0x2a, // prelude + 0x81,0x0b,0x82,0x1d,0x82,0x2a,0x82,0x24,0x82,0x2b, // names: _process_output_value, self, output_value_list, output, should_show_tokens + 0x90,0xf8,0x20,0x40,0x49,0x40,0x22,0x23,0x49,0x29,0x45, // code info + 0xb1, // LOAD_FAST 1 + 0x14,0x63, // LOAD_METHOD 'append' + 0xb2, // LOAD_FAST 2 + 0x13,0x67, // LOAD_ATTR 'amount' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x1e, // LOAD_GLOBAL 'HashBuilderDict' + 0xb2, // LOAD_FAST 2 + 0x13,0x7d, // LOAD_ATTR 'asset_groups_count' + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x14,0x63, // LOAD_METHOD 'append' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x47,0x11, // SETUP_WITH 17 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x11, // LOAD_METHOD '_process_asset_groups' + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x7d, // LOAD_ATTR 'asset_groups_count' + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_output_value = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_output_value, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 76, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 139, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_output_value + 13, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_output_value + 24, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_output_value + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_asset_groups +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_asset_groups[120] = { + 0x84,0x54,0x2a, // prelude + 0x81,0x11,0x82,0x1d,0x82,0x2c,0x7d,0x82,0x2b, // names: _process_asset_groups, self, asset_groups_dict, asset_groups_count, should_show_tokens + 0xa0,0x12,0x27,0x23,0x4f,0x48,0x22,0x24,0x49,0x2d,0x45,0x24, // code info + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xd1,0x80, // JUMP 81 + 0x57, // DUP_TOP + 0xc4, // STORE_FAST 4 + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0x12,0x0a, // LOAD_GLOBAL 'CardanoTxItemAck' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x81,0x12, // LOAD_ATTR 'CardanoAssetGroup' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x13, // LOAD_METHOD '_validate_asset_group' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x1e, // LOAD_GLOBAL 'HashBuilderDict' + 0xb5, // LOAD_FAST 5 + 0x13,0x81,0x14, // LOAD_ATTR 'tokens_count' + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc6, // STORE_FAST 6 + 0xb1, // LOAD_FAST 1 + 0x14,0x4a, // LOAD_METHOD 'add' + 0xb5, // LOAD_FAST 5 + 0x13,0x81,0x15, // LOAD_ATTR 'policy_id' + 0xb6, // LOAD_FAST 6 + 0x36,0x02, // CALL_METHOD 2 + 0x47,0x16, // SETUP_WITH 22 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x16, // LOAD_METHOD '_process_tokens' + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x13,0x81,0x15, // LOAD_ATTR 'policy_id' + 0xb5, // LOAD_FAST 5 + 0x13,0x81,0x14, // LOAD_ATTR 'tokens_count' + 0xb3, // LOAD_FAST 3 + 0x36,0x04, // CALL_METHOD 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xa9,0x7f, // POP_JUMP_IF_TRUE -87 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_asset_groups = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_asset_groups, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 120, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 145, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_asset_groups + 12, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_asset_groups + 24, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_asset_groups + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__validate_asset_group +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__validate_asset_group[64] = { + 0xab,0x01,0x20, // prelude + 0x81,0x13,0x82,0x1d,0x82,0x2d,0x81,0x52, // names: _validate_asset_group, self, asset_group, is_mint + 0xa0,0x27,0x20,0x4b,0x67,0x2d,0x22,0x28, // code info + 0xb2, // LOAD_FAST 2 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x42,0x46, // JUMP 6 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x12,0x82,0x22, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x15, // LOAD_ATTR 'policy_id' + 0x34,0x01, // CALL_FUNCTION 1 + 0x9c, // LOAD_CONST_SMALL_INT 28 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb3, // LOAD_FAST 3 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x14, // LOAD_ATTR 'tokens_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb3, // LOAD_FAST 3 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__validate_asset_group = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__validate_asset_group, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 64, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 147, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__validate_asset_group + 11, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__validate_asset_group + 19, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__validate_asset_group + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_tokens +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_tokens[96] = { + 0xe1,0x44,0x2a, // prelude + 0x81,0x16,0x82,0x1d,0x82,0x2e,0x81,0x15,0x81,0x14,0x82,0x2b, // names: _process_tokens, self, tokens_dict, policy_id, tokens_count, should_show_tokens + 0xa0,0x3b,0x26,0x23,0x4f,0x28,0x23,0x4d,0x20, // code info + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x7b, // JUMP 59 + 0x57, // DUP_TOP + 0xc5, // STORE_FAST 5 + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0x12,0x0a, // LOAD_GLOBAL 'CardanoTxItemAck' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x81,0x17, // LOAD_ATTR 'CardanoToken' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x18, // LOAD_METHOD '_validate_token' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x19, // LOAD_METHOD 'confirm_sending_token' + 0xb2, // LOAD_FAST 2 + 0xb6, // LOAD_FAST 6 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x4a, // LOAD_METHOD 'add' + 0xb6, // LOAD_FAST 6 + 0x13,0x81,0x1a, // LOAD_ATTR 'asset_name_bytes' + 0xb6, // LOAD_FAST 6 + 0x13,0x67, // LOAD_ATTR 'amount' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x00, // POP_JUMP_IF_TRUE -64 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_tokens = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_tokens, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 96, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 150, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_tokens + 15, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_tokens + 24, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_tokens + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__validate_token +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__validate_token[98] = { + 0xab,0x01,0x26, // prelude + 0x81,0x18,0x82,0x1d,0x82,0x2f,0x81,0x52, // names: _validate_token, self, token, is_mint + 0xa0,0x49,0x20,0x4b,0x67,0x23,0x30,0x44,0x30,0x42,0x2d, // code info + 0xb2, // LOAD_FAST 2 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x42,0x46, // JUMP 6 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x1b, // LOAD_ATTR 'mint_amount' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x67, // LOAD_ATTR 'amount' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb3, // LOAD_FAST 3 + 0x65, // RAISE_OBJ + 0x42,0x52, // JUMP 18 + 0xb1, // LOAD_FAST 1 + 0x13,0x67, // LOAD_ATTR 'amount' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x1b, // LOAD_ATTR 'mint_amount' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb3, // LOAD_FAST 3 + 0x65, // RAISE_OBJ + 0x12,0x82,0x22, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x1a, // LOAD_ATTR 'asset_name_bytes' + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb3, // LOAD_FAST 3 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__validate_token = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__validate_token, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 98, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 152, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__validate_token + 11, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__validate_token + 22, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__validate_token + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_inline_datum +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_inline_datum[129] = { + 0xf8,0x44,0x2c, // prelude + 0x81,0x0f,0x82,0x1d,0x82,0x30,0x6c,0x82,0x28, // names: _process_inline_datum, self, inline_datum_cbor, inline_datum_size, should_show + 0xa0,0x61,0x40,0x28,0x27,0x23,0x4f,0x24,0x66,0x49,0x28,0x24,0x52, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x1c, // LOAD_METHOD '_get_chunks_count' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xd1,0x80, // JUMP 81 + 0x57, // DUP_TOP + 0xc5, // STORE_FAST 5 + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0x12,0x0a, // LOAD_GLOBAL 'CardanoTxItemAck' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x81,0x1d, // LOAD_ATTR 'CardanoTxInlineDatumChunk' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x1e, // LOAD_METHOD '_validate_chunk' + 0xb6, // LOAD_FAST 6 + 0x13,0x81,0x1f, // LOAD_ATTR 'data' + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb3, // LOAD_FAST 3 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0c, // LOAD_METHOD '_show_if_showing_details' + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x20, // LOAD_METHOD 'confirm_inline_datum' + 0xb6, // LOAD_FAST 6 + 0x13,0x81,0x1f, // LOAD_ATTR 'data' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x4a, // LOAD_METHOD 'add' + 0xb6, // LOAD_FAST 6 + 0x13,0x81,0x1f, // LOAD_ATTR 'data' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xa9,0x7f, // POP_JUMP_IF_TRUE -87 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_inline_datum = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_inline_datum, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 129, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 143, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_inline_datum + 12, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_inline_datum + 25, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_inline_datum + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_reference_script +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_reference_script[129] = { + 0xf8,0x44,0x2c, // prelude + 0x81,0x10,0x82,0x1d,0x82,0x31,0x6d,0x82,0x28, // names: _process_reference_script, self, reference_script_cbor, reference_script_size, should_show + 0xa0,0x7c,0x40,0x28,0x27,0x23,0x4f,0x24,0x66,0x49,0x28,0x24,0x52, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x1c, // LOAD_METHOD '_get_chunks_count' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xd1,0x80, // JUMP 81 + 0x57, // DUP_TOP + 0xc5, // STORE_FAST 5 + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0x12,0x0a, // LOAD_GLOBAL 'CardanoTxItemAck' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x81,0x21, // LOAD_ATTR 'CardanoTxReferenceScriptChunk' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x1e, // LOAD_METHOD '_validate_chunk' + 0xb6, // LOAD_FAST 6 + 0x13,0x81,0x1f, // LOAD_ATTR 'data' + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb3, // LOAD_FAST 3 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0c, // LOAD_METHOD '_show_if_showing_details' + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x22, // LOAD_METHOD 'confirm_reference_script' + 0xb6, // LOAD_FAST 6 + 0x13,0x81,0x1f, // LOAD_ATTR 'data' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x4a, // LOAD_METHOD 'add' + 0xb6, // LOAD_FAST 6 + 0x13,0x81,0x1f, // LOAD_ATTR 'data' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xa9,0x7f, // POP_JUMP_IF_TRUE -87 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_reference_script = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_reference_script, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 129, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 144, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_reference_script + 12, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_reference_script + 25, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_reference_script + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_certificates +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_certificates[260] = { + 0x9a,0x52,0x40, // prelude + 0x50,0x82,0x1d,0x82,0x32, // names: _process_certificates, self, certificates_list + 0xa0,0x92,0x2b,0x23,0x4f,0x28,0x4b,0x2d,0x25,0x40,0x66,0x29,0x6c,0x49,0x22,0x47,0x29,0x25,0x6d,0x22,0x47,0x29,0x25,0x6d,0x23,0x73,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x2d, // LOAD_ATTR 'certificates_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xce,0x81, // JUMP 206 + 0x57, // DUP_TOP + 0xc2, // STORE_FAST 2 + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0x12,0x0a, // LOAD_GLOBAL 'CardanoTxItemAck' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x81,0x23, // LOAD_ATTR 'CardanoTxCertificate' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x24, // LOAD_METHOD '_validate_certificate' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x25, // LOAD_METHOD '_show_certificate' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x13,0x81,0x26, // LOAD_ATTR 'type' + 0x12,0x06, // LOAD_GLOBAL 'CardanoCertificateType' + 0x13,0x81,0x27, // LOAD_ATTR 'STAKE_POOL_REGISTRATION' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x87,0x81, // POP_JUMP_IF_FALSE 135 + 0xb3, // LOAD_FAST 3 + 0x13,0x81,0x28, // LOAD_ATTR 'pool_parameters' + 0xc4, // STORE_FAST 4 + 0x12,0x1f, // LOAD_GLOBAL 'HashBuilderList' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x14,0x63, // LOAD_METHOD 'append' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x47,0x70, // SETUP_WITH 112 + 0x59, // POP_TOP + 0x12,0x15, // LOAD_GLOBAL 'certificates' + 0x14,0x81,0x29, // LOAD_METHOD 'cborize_pool_registration_init' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x14,0x63, // LOAD_METHOD 'append' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x12,0x1f, // LOAD_GLOBAL 'HashBuilderList' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x2a, // LOAD_ATTR 'owners_count' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0xb5, // LOAD_FAST 5 + 0x14,0x63, // LOAD_METHOD 'append' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x47,0x11, // SETUP_WITH 17 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x2b, // LOAD_METHOD '_process_pool_owners' + 0xb7, // LOAD_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x2a, // LOAD_ATTR 'owners_count' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x12,0x1f, // LOAD_GLOBAL 'HashBuilderList' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x2c, // LOAD_ATTR 'relays_count' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0xb5, // LOAD_FAST 5 + 0x14,0x63, // LOAD_METHOD 'append' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0x47,0x11, // SETUP_WITH 17 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x2d, // LOAD_METHOD '_process_pool_relays' + 0xb8, // LOAD_FAST 8 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x2c, // LOAD_ATTR 'relays_count' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0xb5, // LOAD_FAST 5 + 0x14,0x63, // LOAD_METHOD 'append' + 0x12,0x15, // LOAD_GLOBAL 'certificates' + 0x14,0x81,0x2e, // LOAD_METHOD 'cborize_pool_metadata' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x2f, // LOAD_ATTR 'metadata' + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x42,0x51, // JUMP 17 + 0xb1, // LOAD_FAST 1 + 0x14,0x63, // LOAD_METHOD 'append' + 0x12,0x15, // LOAD_GLOBAL 'certificates' + 0x14,0x81,0x30, // LOAD_METHOD 'cborize' + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'keychain' + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xac,0x7e, // POP_JUMP_IF_TRUE -212 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_certificates = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_certificates, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 260, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 20, + .n_exc_stack = 2, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 80, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_certificates + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_certificates + 35, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_certificates + 35, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__validate_certificate +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__validate_certificate[37] = { + 0x3a,0x16, // prelude + 0x81,0x24,0x82,0x1d,0x82,0x33, // names: _validate_certificate, self, certificate + 0xa0,0xbf,0x46,0x25,0x25, // code info + 0x12,0x15, // LOAD_GLOBAL 'certificates' + 0x14,0x81,0x31, // LOAD_METHOD 'validate' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x5b, // LOAD_ATTR 'protocol_magic' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x57, // LOAD_ATTR 'network_id' + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'account_path_checker' + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__validate_certificate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__validate_certificate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 164, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__validate_certificate + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__validate_certificate + 13, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__validate_certificate + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__show_certificate +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__show_certificate[123] = { + 0xba,0x40,0x24, // prelude + 0x81,0x25,0x82,0x1d,0x82,0x33, // names: _show_certificate, self, certificate + 0xa0,0xc9,0x4d,0x26,0x26,0x6b,0x2c,0x20,0x25,0x4f,0x25,0x6f, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x81,0x32, // LOAD_CONST_STRING 'CERTIFICATE_PATH_NAME' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x22, // IMPORT_NAME 'helpers.paths' + 0x1c,0x81,0x32, // IMPORT_FROM 'CERTIFICATE_PATH_NAME' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x33, // LOAD_ATTR 'path' + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x34, // LOAD_METHOD '_fail_or_warn_if_invalid_path' + 0x12,0x21, // LOAD_GLOBAL 'SCHEMA_STAKING' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x33, // LOAD_ATTR 'path' + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x26, // LOAD_ATTR 'type' + 0x12,0x06, // LOAD_GLOBAL 'CardanoCertificateType' + 0x13,0x81,0x27, // LOAD_ATTR 'STAKE_POOL_REGISTRATION' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x68, // POP_JUMP_IF_FALSE 40 + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x35, // LOAD_METHOD 'confirm_stake_pool_parameters' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x28, // LOAD_ATTR 'pool_parameters' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x57, // LOAD_ATTR 'network_id' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x36, // LOAD_METHOD 'confirm_stake_pool_metadata' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x28, // LOAD_ATTR 'pool_parameters' + 0x13,0x81,0x2f, // LOAD_ATTR 'metadata' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x4c, // JUMP 12 + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x37, // LOAD_METHOD 'confirm_certificate' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__show_certificate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__show_certificate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 123, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 165, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__show_certificate + 9, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__show_certificate + 21, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__show_certificate + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_pool_owners +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_pool_owners[123] = { + 0xeb,0x40,0x28, // prelude + 0x81,0x2b,0x82,0x1d,0x82,0x34,0x81,0x2a, // names: _process_pool_owners, self, pool_owners_list, owners_count + 0xa0,0xe0,0x22,0x27,0x23,0x4f,0x2c,0x2b,0x23,0x6e,0x26,0x4e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xc8,0x80, // JUMP 72 + 0x57, // DUP_TOP + 0xc4, // STORE_FAST 4 + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0x12,0x0a, // LOAD_GLOBAL 'CardanoTxItemAck' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x81,0x38, // LOAD_ATTR 'CardanoPoolOwner' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0x12,0x15, // LOAD_GLOBAL 'certificates' + 0x14,0x81,0x39, // LOAD_METHOD 'validate_pool_owner' + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'account_path_checker' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x3a, // LOAD_METHOD '_show_pool_owner' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x63, // LOAD_METHOD 'append' + 0x12,0x15, // LOAD_GLOBAL 'certificates' + 0x14,0x81,0x3b, // LOAD_METHOD 'cborize_pool_owner' + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'keychain' + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x13,0x81,0x3c, // LOAD_ATTR 'staking_key_path' + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xb2,0x7f, // POP_JUMP_IF_TRUE -78 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x15, // LOAD_GLOBAL 'certificates' + 0x14,0x81,0x3d, // LOAD_METHOD 'assert_cond' + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_pool_owners = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_pool_owners, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 123, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 171, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_pool_owners + 11, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_pool_owners + 23, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_pool_owners + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__show_pool_owner +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__show_pool_owner[79] = { + 0xc2,0x40,0x1a, // prelude + 0x81,0x3a,0x82,0x1d,0x82,0x35, // names: _show_pool_owner, self, owner + 0xa0,0xf1,0x4d,0x26,0x26,0x6b,0x25, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x81,0x3e, // LOAD_CONST_STRING 'POOL_OWNER_STAKING_PATH_NAME' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x22, // IMPORT_NAME 'helpers.paths' + 0x1c,0x81,0x3e, // IMPORT_FROM 'POOL_OWNER_STAKING_PATH_NAME' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x3c, // LOAD_ATTR 'staking_key_path' + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x34, // LOAD_METHOD '_fail_or_warn_if_invalid_path' + 0x12,0x21, // LOAD_GLOBAL 'SCHEMA_STAKING' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x3c, // LOAD_ATTR 'staking_key_path' + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x3f, // LOAD_METHOD 'confirm_stake_pool_owner' + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'keychain' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x5b, // LOAD_ATTR 'protocol_magic' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x57, // LOAD_ATTR 'network_id' + 0x36,0x04, // CALL_METHOD 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__show_pool_owner = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__show_pool_owner, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 79, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 186, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__show_pool_owner + 9, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__show_pool_owner + 16, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__show_pool_owner + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_pool_relays +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_pool_relays[75] = { + 0xdb,0x40,0x1c, // prelude + 0x81,0x2d,0x82,0x1d,0x82,0x36,0x81,0x2c, // names: _process_pool_relays, self, relays_list, relays_count + 0xb0,0x03,0x26,0x23,0x4f,0x29, // code info + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x6d, // JUMP 45 + 0x57, // DUP_TOP + 0xc3, // STORE_FAST 3 + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0x12,0x0a, // LOAD_GLOBAL 'CardanoTxItemAck' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x81,0x40, // LOAD_ATTR 'CardanoPoolRelayParameters' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0x12,0x15, // LOAD_GLOBAL 'certificates' + 0x14,0x81,0x41, // LOAD_METHOD 'validate_pool_relay' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x63, // LOAD_METHOD 'append' + 0x12,0x15, // LOAD_GLOBAL 'certificates' + 0x14,0x81,0x42, // LOAD_METHOD 'cborize_pool_relay' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x0e, // POP_JUMP_IF_TRUE -50 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_pool_relays = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_pool_relays, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 75, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 173, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_pool_relays + 11, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_pool_relays + 17, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_pool_relays + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_withdrawals +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_withdrawals[109] = { + 0xea,0x40,0x1e, // prelude + 0x51,0x82,0x1d,0x82,0x37, // names: _process_withdrawals, self, withdrawals_dict + 0xb0,0x0f,0x2b,0x23,0x4f,0x28,0x28,0x24,0x27,0x6d, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x2e, // LOAD_ATTR 'withdrawals_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xc8,0x80, // JUMP 72 + 0x57, // DUP_TOP + 0xc2, // STORE_FAST 2 + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0x12,0x0a, // LOAD_GLOBAL 'CardanoTxItemAck' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x81,0x43, // LOAD_ATTR 'CardanoTxWithdrawal' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x44, // LOAD_METHOD '_validate_withdrawal' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x45, // LOAD_METHOD '_derive_withdrawal_address_bytes' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0c, // LOAD_METHOD '_show_if_showing_details' + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x46, // LOAD_METHOD 'confirm_withdrawal' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x57, // LOAD_ATTR 'network_id' + 0x36,0x03, // CALL_METHOD 3 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x4a, // LOAD_METHOD 'add' + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x13,0x67, // LOAD_ATTR 'amount' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xb2,0x7f, // POP_JUMP_IF_TRUE -78 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_withdrawals = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_withdrawals, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 109, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 81, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_withdrawals + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_withdrawals + 18, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_withdrawals + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__validate_withdrawal +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__validate_withdrawal[90] = { + 0x42,0x20, // prelude + 0x81,0x44,0x82,0x1d,0x82,0x38, // names: _validate_withdrawal, self, withdrawal + 0xb0,0x1d,0x4d,0x21,0x24,0x24,0x24,0x69,0x32,0x47, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x81,0x47, // LOAD_CONST_STRING 'validate_stake_credential' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x24, // IMPORT_NAME 'helpers.utils' + 0x1c,0x81,0x47, // IMPORT_FROM 'validate_stake_credential' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x33, // LOAD_ATTR 'path' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x48, // LOAD_ATTR 'script_hash' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x49, // LOAD_ATTR 'key_hash' + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x67, // LOAD_ATTR 'amount' + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x05, // JUMP_IF_FALSE_OR_POP 5 + 0x12,0x1a, // LOAD_GLOBAL 'LOVELACE_MAX_SUPPLY' + 0xd7, // BINARY_OP 0 __lt__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'account_path_checker' + 0x14,0x81,0x4a, // LOAD_METHOD 'add_withdrawal' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__validate_withdrawal = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__validate_withdrawal, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 90, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 196, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__validate_withdrawal + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__validate_withdrawal + 18, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__validate_withdrawal + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_auxiliary_data +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_auxiliary_data[145] = { + 0xe9,0x40,0x28, // prelude + 0x52,0x82,0x1d, // names: _process_auxiliary_data, self + 0xb0,0x2e,0x4d,0x44,0x23,0x4f,0x4e,0x60,0x24,0x50,0x24,0x44,0x24,0x23,0x23,0x49,0x4a, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x81,0x4b, // LOAD_CONST_STRING 'auxiliary_data' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME '' + 0x1c,0x81,0x4b, // IMPORT_FROM 'auxiliary_data' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0xc2, // STORE_FAST 2 + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0x12,0x0a, // LOAD_GLOBAL 'CardanoTxItemAck' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x81,0x4c, // LOAD_ATTR 'CardanoTxAuxiliaryData' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x31, // LOAD_METHOD 'validate' + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x5b, // LOAD_ATTR 'protocol_magic' + 0xb2, // LOAD_FAST 2 + 0x13,0x57, // LOAD_ATTR 'network_id' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x4d, // LOAD_METHOD 'get_hash_and_supplement' + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'keychain' + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x5b, // LOAD_ATTR 'protocol_magic' + 0xb2, // LOAD_FAST 2 + 0x13,0x57, // LOAD_ATTR 'network_id' + 0x36,0x04, // CALL_METHOD 4 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x4e, // LOAD_METHOD 'show' + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'keychain' + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x13,0x81,0x4f, // LOAD_ATTR 'cvote_registration_parameters' + 0xb2, // LOAD_FAST 2 + 0x13,0x5b, // LOAD_ATTR 'protocol_magic' + 0xb2, // LOAD_FAST 2 + 0x13,0x57, // LOAD_ATTR 'network_id' + 0xb0, // LOAD_FAST 0 + 0x13,0x3a, // LOAD_ATTR 'should_show_details' + 0x36,0x06, // CALL_METHOD 6 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'tx_dict' + 0x14,0x4a, // LOAD_METHOD 'add' + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0xb5, // LOAD_FAST 5 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x45, // LOAD_ATTR 'CardanoTxHostAck' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_auxiliary_data = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_auxiliary_data, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 145, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 82, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_auxiliary_data + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_auxiliary_data + 23, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_auxiliary_data + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_minting +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_minting[153] = { + 0xf6,0x40,0x26, // prelude + 0x53,0x82,0x1d,0x82,0x39, // names: _process_minting, self, minting_dict + 0xb0,0x4e,0x23,0x6f,0x4b,0x29,0x23,0x4f,0x4d,0x22,0x4d,0x2d,0x45,0x24, // code info + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0x12,0x0a, // LOAD_GLOBAL 'CardanoTxItemAck' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x81,0x50, // LOAD_ATTR 'CardanoTxMint' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x51, // LOAD_METHOD 'warn_tx_contains_mint' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x7d, // LOAD_ATTR 'asset_groups_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xd5,0x80, // JUMP 85 + 0x57, // DUP_TOP + 0xc3, // STORE_FAST 3 + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0x12,0x0a, // LOAD_GLOBAL 'CardanoTxItemAck' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x81,0x12, // LOAD_ATTR 'CardanoAssetGroup' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x13, // LOAD_METHOD '_validate_asset_group' + 0xb4, // LOAD_FAST 4 + 0x10,0x81,0x52, // LOAD_CONST_STRING 'is_mint' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x01, // CALL_METHOD 257 + 0x59, // POP_TOP + 0x12,0x1e, // LOAD_GLOBAL 'HashBuilderDict' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x14, // LOAD_ATTR 'tokens_count' + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x14,0x4a, // LOAD_METHOD 'add' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x15, // LOAD_ATTR 'policy_id' + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0x47,0x15, // SETUP_WITH 21 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x53, // LOAD_METHOD '_process_minting_tokens' + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x15, // LOAD_ATTR 'policy_id' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x14, // LOAD_ATTR 'tokens_count' + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xa5,0x7f, // POP_JUMP_IF_TRUE -91 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_minting = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_minting, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 153, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 83, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_minting + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_minting + 22, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_minting + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_minting_tokens +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_minting_tokens[97] = { + 0xe0,0x44,0x24, // prelude + 0x81,0x53,0x82,0x1d,0x82,0x3a,0x81,0x15,0x81,0x14, // names: _process_minting_tokens, self, tokens, policy_id, tokens_count + 0xb0,0x6c,0x26,0x23,0x4f,0x2d,0x4d,0x20, // code info + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x7e, // JUMP 62 + 0x57, // DUP_TOP + 0xc4, // STORE_FAST 4 + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0x12,0x0a, // LOAD_GLOBAL 'CardanoTxItemAck' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x81,0x17, // LOAD_ATTR 'CardanoToken' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x18, // LOAD_METHOD '_validate_token' + 0xb5, // LOAD_FAST 5 + 0x10,0x81,0x52, // LOAD_CONST_STRING 'is_mint' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x01, // CALL_METHOD 257 + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x54, // LOAD_METHOD 'confirm_token_minting' + 0xb2, // LOAD_FAST 2 + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x4a, // LOAD_METHOD 'add' + 0xb5, // LOAD_FAST 5 + 0x13,0x81,0x1a, // LOAD_ATTR 'asset_name_bytes' + 0xb5, // LOAD_FAST 5 + 0x13,0x81,0x1b, // LOAD_ATTR 'mint_amount' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xbc,0x7f, // POP_JUMP_IF_TRUE -68 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_minting_tokens = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_minting_tokens, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 97, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 211, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_minting_tokens + 13, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_minting_tokens + 21, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_minting_tokens + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_script_data_hash +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_script_data_hash[57] = { + 0xa9,0x40,0x12, // prelude + 0x54,0x82,0x1d, // names: _process_script_data_hash, self + 0xb0,0x79,0x20,0x27,0x24,0x52, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x55, // LOAD_METHOD '_validate_script_data_hash' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0c, // LOAD_METHOD '_show_if_showing_details' + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x56, // LOAD_METHOD 'confirm_script_data_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x33, // LOAD_ATTR 'script_data_hash' + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'tx_dict' + 0x14,0x4a, // LOAD_METHOD 'add' + 0x8b, // LOAD_CONST_SMALL_INT 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x33, // LOAD_ATTR 'script_data_hash' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_script_data_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_script_data_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 84, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_script_data_hash + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_script_data_hash + 12, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_script_data_hash + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__validate_script_data_hash +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__validate_script_data_hash[47] = { + 0x19,0x12, // prelude + 0x81,0x55,0x82,0x1d, // names: _validate_script_data_hash, self + 0xb0,0x81,0x4d,0x20,0x2e, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x81,0x57, // LOAD_CONST_STRING 'SCRIPT_DATA_HASH_SIZE' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1b, // IMPORT_NAME 'helpers' + 0x1c,0x81,0x57, // IMPORT_FROM 'SCRIPT_DATA_HASH_SIZE' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x82,0x22, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x33, // LOAD_ATTR 'script_data_hash' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__validate_script_data_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__validate_script_data_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 213, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__validate_script_data_hash + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__validate_script_data_hash + 11, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__validate_script_data_hash + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_collateral_inputs +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_collateral_inputs[88] = { + 0xca,0x40,0x1a, // prelude + 0x55,0x82,0x1d,0x82,0x3b, // names: _process_collateral_inputs, self, collateral_inputs_list + 0xb0,0x8c,0x2a,0x23,0x4f,0x28,0x2b,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x34, // LOAD_ATTR 'collateral_inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x77, // JUMP 55 + 0x57, // DUP_TOP + 0xc2, // STORE_FAST 2 + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0x12,0x0a, // LOAD_GLOBAL 'CardanoTxItemAck' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x81,0x58, // LOAD_ATTR 'CardanoTxCollateralInput' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x59, // LOAD_METHOD '_validate_collateral_input' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x5a, // LOAD_METHOD '_show_collateral_input' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x63, // LOAD_METHOD 'append' + 0xb3, // LOAD_FAST 3 + 0x13,0x64, // LOAD_ATTR 'prev_hash' + 0xb3, // LOAD_FAST 3 + 0x13,0x65, // LOAD_ATTR 'prev_index' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x04, // POP_JUMP_IF_TRUE -60 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_collateral_inputs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_collateral_inputs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 88, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 85, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_collateral_inputs + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_collateral_inputs + 16, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_collateral_inputs + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__validate_collateral_input +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__validate_collateral_input[33] = { + 0x1a,0x12, // prelude + 0x81,0x59,0x82,0x1d,0x82,0x3c, // names: _validate_collateral_input, self, collateral_input + 0xb0,0x99,0x2d, // code info + 0x12,0x82,0x22, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x64, // LOAD_ATTR 'prev_hash' + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x19, // LOAD_GLOBAL 'INPUT_PREV_HASH_SIZE' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__validate_collateral_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__validate_collateral_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 217, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__validate_collateral_input + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__validate_collateral_input + 11, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__validate_collateral_input + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__show_collateral_input +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__show_collateral_input[42] = { + 0xb2,0x40,0x14, // prelude + 0x81,0x5a,0x82,0x1d,0x82,0x3c, // names: _show_collateral_input, self, collateral_input + 0xb0,0x9f,0x29,0x24, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x37, // LOAD_ATTR 'total_collateral' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0c, // LOAD_METHOD '_show_if_showing_details' + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x5b, // LOAD_METHOD 'confirm_collateral_input' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__show_collateral_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__show_collateral_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 218, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__show_collateral_input + 9, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__show_collateral_input + 13, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__show_collateral_input + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_required_signers +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_required_signers[123] = { + 0xe2,0x40,0x20, // prelude + 0x56,0x82,0x1d,0x82,0x3d, // names: _process_required_signers, self, required_signers_list + 0xb0,0xa9,0x4d,0x2b,0x23,0x4f,0x28,0x24,0x6e,0x27,0x4a, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x81,0x5c, // LOAD_CONST_STRING 'get_public_key_hash' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x24, // IMPORT_NAME 'helpers.utils' + 0x1c,0x81,0x5c, // IMPORT_FROM 'get_public_key_hash' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x35, // LOAD_ATTR 'required_signers_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xc8,0x80, // JUMP 72 + 0x57, // DUP_TOP + 0xc3, // STORE_FAST 3 + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0x12,0x0a, // LOAD_GLOBAL 'CardanoTxItemAck' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x81,0x5d, // LOAD_ATTR 'CardanoTxRequiredSigner' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x5e, // LOAD_METHOD '_validate_required_signer' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0c, // LOAD_METHOD '_show_if_showing_details' + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x5f, // LOAD_METHOD 'confirm_required_signer' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x49, // LOAD_ATTR 'key_hash' + 0x45,0x0a, // JUMP_IF_TRUE_OR_POP 10 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'keychain' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x60, // LOAD_ATTR 'key_path' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x14,0x63, // LOAD_METHOD 'append' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xb2,0x7f, // POP_JUMP_IF_TRUE -78 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_required_signers = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_required_signers, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 123, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 86, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_required_signers + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_required_signers + 19, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_required_signers + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__validate_required_signer +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__validate_required_signer[123] = { + 0x3a,0x2a, // prelude + 0x81,0x5e,0x82,0x1d,0x82,0x3e, // names: _validate_required_signer, self, required_signer + 0xb0,0xbc,0x4d,0x45,0x47,0x29,0x42,0x26,0x2d,0x47,0x20,0x2a,0x2a,0x4a,0x44, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x81,0x61, // LOAD_CONST_STRING 'ADDRESS_KEY_HASH_SIZE' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1b, // IMPORT_NAME 'helpers' + 0x1c,0x81,0x61, // IMPORT_FROM 'ADDRESS_KEY_HASH_SIZE' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x60, // LOAD_ATTR 'key_path' + 0xc3, // STORE_FAST 3 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x49, // LOAD_ATTR 'key_hash' + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb3, // LOAD_FAST 3 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb4, // LOAD_FAST 4 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x49, // LOAD_ATTR 'key_hash' + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x12,0x82,0x22, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x49, // LOAD_ATTR 'key_hash' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb4, // LOAD_FAST 4 + 0x65, // RAISE_OBJ + 0x42,0x67, // JUMP 39 + 0xb3, // LOAD_FAST 3 + 0x44,0x62, // POP_JUMP_IF_FALSE 34 + 0x12,0x17, // LOAD_GLOBAL 'seed' + 0x14,0x81,0x62, // LOAD_METHOD 'is_shelley_path' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x56, // POP_JUMP_IF_TRUE 22 + 0x12,0x17, // LOAD_GLOBAL 'seed' + 0x14,0x81,0x63, // LOAD_METHOD 'is_multisig_path' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x4c, // POP_JUMP_IF_TRUE 12 + 0x12,0x17, // LOAD_GLOBAL 'seed' + 0x14,0x81,0x64, // LOAD_METHOD 'is_minting_path' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0xb4, // LOAD_FAST 4 + 0x65, // RAISE_OBJ + 0x42,0x42, // JUMP 2 + 0xb4, // LOAD_FAST 4 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__validate_required_signer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__validate_required_signer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 123, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 222, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__validate_required_signer + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__validate_required_signer + 23, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__validate_required_signer + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_collateral_return +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_collateral_return[182] = { + 0xed,0x40,0x2c, // prelude + 0x58,0x82,0x1d, // names: _process_collateral_return, self + 0xb0,0xd5,0x2f,0x28,0x28,0x28,0x23,0x6b,0x22,0x2a,0x26,0x2c,0x71,0x2a,0x23,0x49,0x2c,0x71,0x20, // code info + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0x12,0x0a, // LOAD_GLOBAL 'CardanoTxItemAck' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x0b, // LOAD_GLOBAL 'CardanoTxOutput' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x65, // LOAD_METHOD '_validate_collateral_return' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x66, // LOAD_METHOD '_should_show_collateral_return_init' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x67, // LOAD_METHOD '_should_show_collateral_return_tokens' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x68, // LOAD_METHOD '_show_collateral_return_init' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x6e, // LOAD_ATTR 'format' + 0x12,0x07, // LOAD_GLOBAL 'CardanoTxOutputSerializationFormat' + 0x13,0x6f, // LOAD_ATTR 'ARRAY_LEGACY' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x63, // POP_JUMP_IF_FALSE 35 + 0x12,0x1f, // LOAD_GLOBAL 'HashBuilderList' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'tx_dict' + 0x14,0x4a, // LOAD_METHOD 'add' + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0x47,0x0e, // SETUP_WITH 14 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x70, // LOAD_METHOD '_process_legacy_output' + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x42,0x77, // JUMP 55 + 0xb1, // LOAD_FAST 1 + 0x13,0x6e, // LOAD_ATTR 'format' + 0x12,0x07, // LOAD_GLOBAL 'CardanoTxOutputSerializationFormat' + 0x13,0x71, // LOAD_ATTR 'MAP_BABBAGE' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x69, // POP_JUMP_IF_FALSE 41 + 0x12,0x1e, // LOAD_GLOBAL 'HashBuilderDict' + 0xb4, // LOAD_FAST 4 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'tx_dict' + 0x14,0x4a, // LOAD_METHOD 'add' + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xb6, // LOAD_FAST 6 + 0x36,0x02, // CALL_METHOD 2 + 0x47,0x0e, // SETUP_WITH 14 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x72, // LOAD_METHOD '_process_babbage_output' + 0xb6, // LOAD_FAST 6 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x42,0x44, // JUMP 4 + 0x12,0x82,0x25, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_collateral_return = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_collateral_return, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 182, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 88, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_collateral_return + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_collateral_return + 25, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_collateral_return + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__validate_collateral_return +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__validate_collateral_return[80] = { + 0x2a,0x20, // prelude + 0x81,0x65,0x82,0x1d,0x82,0x24, // names: _validate_collateral_return, self, output + 0xb0,0xf0,0x47,0x27,0x2a,0x47,0x20,0x28,0x27,0x47, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x68, // LOAD_METHOD '_validate_output' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x7a, // LOAD_METHOD '_get_output_address_type' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x12,0x14, // LOAD_GLOBAL 'addresses' + 0x13,0x81,0x69, // LOAD_ATTR 'ADDRESS_TYPES_PAYMENT_KEY' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x13,0x6b, // LOAD_ATTR 'datum_hash' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x43,0x4e, // POP_JUMP_IF_TRUE 14 + 0xb1, // LOAD_FAST 1 + 0x13,0x6c, // LOAD_ATTR 'inline_datum_size' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0xb1, // LOAD_FAST 1 + 0x13,0x6d, // LOAD_ATTR 'reference_script_size' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__validate_collateral_return = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__validate_collateral_return, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 80, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 229, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__validate_collateral_return + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__validate_collateral_return + 18, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__validate_collateral_return + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__show_collateral_return_init +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__show_collateral_return_init[138] = { + 0xda,0x40,0x30, // prelude + 0x81,0x68,0x82,0x1d,0x82,0x24, // names: _show_collateral_return_init, self, output + 0xc0,0x00,0x27,0x4f,0x28,0x24,0x23,0x23,0x25,0x48,0x24,0x6b,0x20,0x44,0x25,0x44,0x22,0x28, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x7d, // LOAD_ATTR 'asset_groups_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x7e, // LOAD_METHOD 'warn_tx_output_contains_tokens' + 0x10,0x81,0x6a, // LOAD_CONST_STRING 'is_collateral_return' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x00, // CALL_METHOD 256 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x74, // LOAD_ATTR 'address_parameters' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x66, // POP_JUMP_IF_FALSE 38 + 0x12,0x14, // LOAD_GLOBAL 'addresses' + 0x14,0x7f, // LOAD_METHOD 'derive_human_readable' + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'keychain' + 0xb1, // LOAD_FAST 1 + 0x13,0x74, // LOAD_ATTR 'address_parameters' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x5b, // LOAD_ATTR 'protocol_magic' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x57, // LOAD_ATTR 'network_id' + 0x36,0x04, // CALL_METHOD 4 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x00, // LOAD_METHOD '_show_output_credentials' + 0xb1, // LOAD_FAST 1 + 0x13,0x74, // LOAD_ATTR 'address_parameters' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x44, // JUMP 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x75, // LOAD_ATTR 'address' + 0xc2, // STORE_FAST 2 + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x01, // LOAD_METHOD 'confirm_sending' + 0xb1, // LOAD_FAST 1 + 0x13,0x67, // LOAD_ATTR 'amount' + 0xb2, // LOAD_FAST 2 + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x57, // LOAD_ATTR 'network_id' + 0x10,0x81,0x04, // LOAD_CONST_STRING 'chunkify' + 0x12,0x82,0x26, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x81,0x04, // LOAD_ATTR 'chunkify' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x82,0x04, // CALL_METHOD 260 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__show_collateral_return_init = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__show_collateral_return_init, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 138, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 232, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__show_collateral_return_init + 9, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__show_collateral_return_init + 27, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__show_collateral_return_init + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__should_show_collateral_return_init +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__should_show_collateral_return_init[38] = { + 0x22,0x18, // prelude + 0x81,0x66,0x82,0x1d,0x82,0x24, // names: _should_show_collateral_return_init, self, output + 0xc0,0x1a,0x29,0x42,0x29,0x42, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x37, // LOAD_ATTR 'total_collateral' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x08, // LOAD_METHOD '_is_simple_change_output' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__should_show_collateral_return_init = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__should_show_collateral_return_init, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 230, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__should_show_collateral_return_init + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__should_show_collateral_return_init + 14, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__should_show_collateral_return_init + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__should_show_collateral_return_tokens +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__should_show_collateral_return_tokens[27] = { + 0x22,0x14, // prelude + 0x81,0x67,0x82,0x1d,0x82,0x24, // names: _should_show_collateral_return_tokens, self, output + 0xc0,0x23,0x29,0x42, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x08, // LOAD_METHOD '_is_simple_change_output' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x3a, // LOAD_ATTR 'should_show_details' + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__should_show_collateral_return_tokens = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__should_show_collateral_return_tokens, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 231, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__should_show_collateral_return_tokens + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__should_show_collateral_return_tokens + 12, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__should_show_collateral_return_tokens + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_reference_inputs +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_reference_inputs[97] = { + 0xd2,0x40,0x1c, // prelude + 0x59,0x82,0x1d,0x82,0x3f, // names: _process_reference_inputs, self, reference_inputs_list + 0xc0,0x2d,0x2a,0x23,0x4f,0x28,0x24,0x4e,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x38, // LOAD_ATTR 'reference_inputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x7e, // JUMP 62 + 0x57, // DUP_TOP + 0xc2, // STORE_FAST 2 + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0x12,0x0a, // LOAD_GLOBAL 'CardanoTxItemAck' + 0x34,0x00, // CALL_FUNCTION 0 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x81,0x6b, // LOAD_ATTR 'CardanoTxReferenceInput' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x6c, // LOAD_METHOD '_validate_reference_input' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0c, // LOAD_METHOD '_show_if_showing_details' + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x6d, // LOAD_METHOD 'confirm_reference_input' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x63, // LOAD_METHOD 'append' + 0xb3, // LOAD_FAST 3 + 0x13,0x64, // LOAD_ATTR 'prev_hash' + 0xb3, // LOAD_FAST 3 + 0x13,0x65, // LOAD_ATTR 'prev_index' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xbc,0x7f, // POP_JUMP_IF_TRUE -68 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_reference_inputs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_reference_inputs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 97, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 89, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_reference_inputs + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_reference_inputs + 17, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_reference_inputs + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__validate_reference_input +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__validate_reference_input[33] = { + 0x1a,0x12, // prelude + 0x81,0x6c,0x82,0x1d,0x82,0x40, // names: _validate_reference_input, self, reference_input + 0xc0,0x3c,0x2d, // code info + 0x12,0x82,0x22, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x64, // LOAD_ATTR 'prev_hash' + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x19, // LOAD_GLOBAL 'INPUT_PREV_HASH_SIZE' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__validate_reference_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__validate_reference_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 236, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__validate_reference_input + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__validate_reference_input + 11, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__validate_reference_input + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__process_witness_requests +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__process_witness_requests[116] = { + 0xda,0x40,0x1e, // prelude + 0x44,0x82,0x1d,0x47, // names: _process_witness_requests, self, tx_hash + 0xc0,0x42,0x45,0x2c,0x2f,0x28,0x25,0x2b,0x2a,0x4b,0x53, // code info + 0x12,0x0a, // LOAD_GLOBAL 'CardanoTxItemAck' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x81,0x6e, // LOAD_ATTR 'witness_requests_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xc9,0x80, // JUMP 73 + 0x57, // DUP_TOP + 0xc3, // STORE_FAST 3 + 0x12,0x82,0x19, // LOAD_GLOBAL 'ctx_call' + 0xb2, // LOAD_FAST 2 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x13,0x81,0x6f, // LOAD_ATTR 'CardanoTxWitnessRequest' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x70, // LOAD_METHOD '_validate_witness_request' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x33, // LOAD_ATTR 'path' + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x71, // LOAD_METHOD '_show_witness_request' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x17, // LOAD_GLOBAL 'seed' + 0x14,0x81,0x72, // LOAD_METHOD 'is_byron_path' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x73, // LOAD_METHOD '_get_byron_witness' + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0x42,0x49, // JUMP 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x74, // LOAD_METHOD '_get_shelley_witness' + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xb1,0x7f, // POP_JUMP_IF_TRUE -79 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__process_witness_requests = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__process_witness_requests, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 116, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 68, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__process_witness_requests + 7, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__process_witness_requests + 18, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__process_witness_requests + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__validate_witness_request +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__validate_witness_request[22] = { + 0x22,0x10, // prelude + 0x81,0x70,0x82,0x1d,0x82,0x41, // names: _validate_witness_request, self, witness_request + 0xc0,0x53, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'account_path_checker' + 0x14,0x81,0x75, // LOAD_METHOD 'add_witness_request' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__validate_witness_request = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__validate_witness_request, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 240, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__validate_witness_request + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__validate_witness_request + 10, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__validate_witness_request + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__show_witness_request +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__show_witness_request[25] = { + 0xa2,0x40,0x10, // prelude + 0x81,0x71,0x82,0x1d,0x82,0x42, // names: _show_witness_request, self, witness_path + 0xc0,0x59, // code info + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x81,0x76, // LOAD_METHOD 'confirm_witness_request' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__show_witness_request = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__show_witness_request, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 241, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__show_witness_request + 9, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__show_witness_request + 11, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__show_witness_request + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__assert_tx_init_cond +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__assert_tx_init_cond[23] = { + 0x1a,0x12, // prelude + 0x81,0x77,0x82,0x1d,0x82,0x43, // names: _assert_tx_init_cond, self, condition + 0xc0,0x5e,0x23, // code info + 0xb1, // LOAD_FAST 1 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x0e, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__assert_tx_init_cond = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__assert_tx_init_cond, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 247, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__assert_tx_init_cond + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__assert_tx_init_cond + 11, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__assert_tx_init_cond + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__is_network_id_verifiable +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__is_network_id_verifiable[36] = { + 0x11,0x14, // prelude + 0x5e,0x82,0x1d, // names: _is_network_id_verifiable, self + 0xc0,0x62,0x80,0x09,0x20,0x27,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x32, // LOAD_ATTR 'include_network_id' + 0x45,0x10, // JUMP_IF_TRUE_OR_POP 16 + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x4d, // LOAD_ATTR 'outputs_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x45,0x07, // JUMP_IF_TRUE_OR_POP 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x2e, // LOAD_ATTR 'withdrawals_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__is_network_id_verifiable = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__is_network_id_verifiable, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 94, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__is_network_id_verifiable + 5, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__is_network_id_verifiable + 12, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__is_network_id_verifiable + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__get_output_address +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__get_output_address[59] = { + 0x3a,0x1e, // prelude + 0x81,0x0a,0x82,0x1d,0x82,0x24, // names: _get_output_address, self, output + 0xc0,0x72,0x25,0x25,0x23,0x23,0x25,0x68,0x20, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x74, // LOAD_ATTR 'address_parameters' + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0x12,0x14, // LOAD_GLOBAL 'addresses' + 0x14,0x81,0x78, // LOAD_METHOD 'derive_bytes' + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'keychain' + 0xb1, // LOAD_FAST 1 + 0x13,0x74, // LOAD_ATTR 'address_parameters' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x5b, // LOAD_ATTR 'protocol_magic' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x57, // LOAD_ATTR 'network_id' + 0x36,0x04, // CALL_METHOD 4 + 0x63, // RETURN_VALUE + 0x12,0x14, // LOAD_GLOBAL 'addresses' + 0x14,0x81,0x79, // LOAD_METHOD 'get_bytes_unsafe' + 0xb1, // LOAD_FAST 1 + 0x13,0x75, // LOAD_ATTR 'address' + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__get_output_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__get_output_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 138, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__get_output_address + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__get_output_address + 17, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__get_output_address + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__get_output_address_type +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__get_output_address_type[42] = { + 0x32,0x14, // prelude + 0x7a,0x82,0x1d,0x82,0x24, // names: _get_output_address_type, self, output + 0xc0,0x7e,0x25,0x27,0x20, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x74, // LOAD_ATTR 'address_parameters' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb1, // LOAD_FAST 1 + 0x13,0x74, // LOAD_ATTR 'address_parameters' + 0x13,0x81,0x7a, // LOAD_ATTR 'address_type' + 0x63, // RETURN_VALUE + 0x12,0x14, // LOAD_GLOBAL 'addresses' + 0x14,0x81,0x7b, // LOAD_METHOD 'get_type' + 0x12,0x14, // LOAD_GLOBAL 'addresses' + 0x14,0x81,0x79, // LOAD_METHOD 'get_bytes_unsafe' + 0xb1, // LOAD_FAST 1 + 0x13,0x75, // LOAD_ATTR 'address' + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__get_output_address_type = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__get_output_address_type, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 122, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__get_output_address_type + 7, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__get_output_address_type + 12, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__get_output_address_type + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__derive_withdrawal_address_bytes +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__derive_withdrawal_address_bytes[113] = { + 0x82,0x10,0x28, // prelude + 0x81,0x45,0x82,0x1d,0x82,0x38, // names: _derive_withdrawal_address_bytes, self, withdrawal + 0xc0,0x86,0x4d,0x20,0x20,0x32,0x45,0x25,0x23,0x4c,0x27,0x27,0x47,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x7c, // LOAD_CONST_STRING 'CardanoAddressType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.enums' + 0x1c,0x81,0x7c, // IMPORT_FROM 'CardanoAddressType' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x33, // LOAD_ATTR 'path' + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x49, // LOAD_ATTR 'key_hash' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb2, // LOAD_FAST 2 + 0x13,0x81,0x7d, // LOAD_ATTR 'REWARD' + 0x42,0x44, // JUMP 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x81,0x7e, // LOAD_ATTR 'REWARD_SCRIPT' + 0xc3, // STORE_FAST 3 + 0x12,0x14, // LOAD_GLOBAL 'addresses' + 0x14,0x81,0x78, // LOAD_METHOD 'derive_bytes' + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'keychain' + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x14,0x81,0x7f, // LOAD_METHOD 'CardanoAddressParametersType' + 0x10,0x81,0x7a, // LOAD_CONST_STRING 'address_type' + 0xb3, // LOAD_FAST 3 + 0x10,0x82,0x00, // LOAD_CONST_STRING 'address_n_staking' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x33, // LOAD_ATTR 'path' + 0x10,0x82,0x01, // LOAD_CONST_STRING 'staking_key_hash' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x49, // LOAD_ATTR 'key_hash' + 0x10,0x82,0x02, // LOAD_CONST_STRING 'script_staking_hash' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x48, // LOAD_ATTR 'script_hash' + 0x36,0x88,0x00, // CALL_METHOD 1024 + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x5b, // LOAD_ATTR 'protocol_magic' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'msg' + 0x13,0x57, // LOAD_ATTR 'network_id' + 0x36,0x04, // CALL_METHOD 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__derive_withdrawal_address_bytes = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__derive_withdrawal_address_bytes, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 113, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 197, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__derive_withdrawal_address_bytes + 9, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__derive_withdrawal_address_bytes + 23, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__derive_withdrawal_address_bytes + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__get_chunks_count +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__get_chunks_count[21] = { + 0x1a,0x12, // prelude + 0x81,0x1c,0x82,0x1d,0x82,0x44, // names: _get_chunks_count, self, data_size + 0xc0,0x9a,0x20, // code info + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x22,0x88,0x00, // LOAD_CONST_SMALL_INT 1024 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__get_chunks_count = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__get_chunks_count, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 156, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__get_chunks_count + 8, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__get_chunks_count + 11, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__get_chunks_count + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__validate_chunk +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__validate_chunk[64] = { + 0xb9,0x04,0x22, // prelude + 0x81,0x1e,0x82,0x1d,0x82,0x45,0x82,0x46,0x82,0x47,0x82,0x48, // names: _validate_chunk, self, chunk_data, chunk_number, chunks_count, error + 0xc0,0xa4,0x33,0x22,0x33, // code info + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x82,0x22, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x88,0x00, // LOAD_CONST_SMALL_INT 1024 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb4, // LOAD_FAST 4 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x82,0x22, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x88,0x00, // LOAD_CONST_SMALL_INT 1024 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb4, // LOAD_FAST 4 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__validate_chunk = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__validate_chunk, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 64, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 158, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__validate_chunk + 15, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__validate_chunk + 20, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__validate_chunk + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__get_byron_witness +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__get_byron_witness[74] = { + 0x73,0x1c, // prelude + 0x81,0x73,0x82,0x1d,0x81,0x33,0x47, // names: _get_byron_witness, self, path, tx_hash + 0xc0,0xac,0x2a,0x28,0x28,0x2b,0x2b, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'keychain' + 0x14,0x82,0x03, // LOAD_METHOD 'derive' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x14,0x82,0x04, // LOAD_METHOD 'CardanoTxWitnessResponse' + 0x10,0x81,0x26, // LOAD_CONST_STRING 'type' + 0x12,0x08, // LOAD_GLOBAL 'CardanoTxWitnessType' + 0x13,0x82,0x05, // LOAD_ATTR 'BYRON_WITNESS' + 0x10,0x82,0x06, // LOAD_CONST_STRING 'pub_key' + 0x12,0x23, // LOAD_GLOBAL 'derive_public_key' + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'keychain' + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x10,0x82,0x07, // LOAD_CONST_STRING 'signature' + 0xb0, // LOAD_FAST 0 + 0x14,0x82,0x08, // LOAD_METHOD '_sign_tx_hash' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x10,0x82,0x09, // LOAD_CONST_STRING 'chain_code' + 0xb3, // LOAD_FAST 3 + 0x14,0x82,0x09, // LOAD_METHOD 'chain_code' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x88,0x00, // CALL_METHOD 1024 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__get_byron_witness = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__get_byron_witness, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 74, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 243, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__get_byron_witness + 9, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__get_byron_witness + 16, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__get_byron_witness + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__get_shelley_witness +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__get_shelley_witness[53] = { + 0x6b,0x18, // prelude + 0x81,0x74,0x82,0x1d,0x81,0x33,0x47, // names: _get_shelley_witness, self, path, tx_hash + 0xc0,0xb7,0x28,0x28,0x2b, // code info + 0x12,0x04, // LOAD_GLOBAL 'messages' + 0x14,0x82,0x04, // LOAD_METHOD 'CardanoTxWitnessResponse' + 0x10,0x81,0x26, // LOAD_CONST_STRING 'type' + 0x12,0x08, // LOAD_GLOBAL 'CardanoTxWitnessType' + 0x13,0x82,0x0a, // LOAD_ATTR 'SHELLEY_WITNESS' + 0x10,0x82,0x06, // LOAD_CONST_STRING 'pub_key' + 0x12,0x23, // LOAD_GLOBAL 'derive_public_key' + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'keychain' + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x10,0x82,0x07, // LOAD_CONST_STRING 'signature' + 0xb0, // LOAD_FAST 0 + 0x14,0x82,0x08, // LOAD_METHOD '_sign_tx_hash' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x86,0x00, // CALL_METHOD 768 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__get_shelley_witness = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__get_shelley_witness, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 53, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 244, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__get_shelley_witness + 9, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__get_shelley_witness + 14, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__get_shelley_witness + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__sign_tx_hash +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__sign_tx_hash[59] = { + 0x4b,0x1a, // prelude + 0x82,0x08,0x82,0x1d,0x82,0x49,0x81,0x33, // names: _sign_tx_hash, self, tx_body_hash, path + 0xc0,0xbe,0x4e,0x2a,0x24, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x82,0x0b, // LOAD_CONST_STRING 'ed25519' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x82,0x0c, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x82,0x0b, // IMPORT_FROM 'ed25519' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'keychain' + 0x14,0x82,0x03, // LOAD_METHOD 'derive' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x14,0x82,0x0d, // LOAD_METHOD 'sign_ext' + 0xb4, // LOAD_FAST 4 + 0x14,0x82,0x0e, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0xb4, // LOAD_FAST 4 + 0x14,0x82,0x0f, // LOAD_METHOD 'private_key_ext' + 0x36,0x00, // CALL_METHOD 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__sign_tx_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__sign_tx_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 264, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__sign_tx_hash + 10, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__sign_tx_hash + 15, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__sign_tx_hash + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__fail_or_warn_if_invalid_path +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__fail_or_warn_if_invalid_path[39] = { + 0xb8,0x44,0x1a, // prelude + 0x81,0x34,0x82,0x1d,0x82,0x4a,0x81,0x33,0x82,0x4b, // names: _fail_or_warn_if_invalid_path, self, schema, path, path_name + 0xc0,0xc8,0x29, // code info + 0xb1, // LOAD_FAST 1 + 0x14,0x82,0x10, // LOAD_METHOD 'match' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x4c, // POP_JUMP_IF_TRUE 12 + 0xb0, // LOAD_FAST 0 + 0x14,0x82,0x11, // LOAD_METHOD '_fail_or_warn_path' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__fail_or_warn_if_invalid_path = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__fail_or_warn_if_invalid_path, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 180, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__fail_or_warn_if_invalid_path + 13, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__fail_or_warn_if_invalid_path + 16, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__fail_or_warn_if_invalid_path + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__fail_or_warn_path +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__fail_or_warn_path[59] = { + 0xbb,0x40,0x18, // prelude + 0x82,0x11,0x82,0x1d,0x81,0x33,0x82,0x4b, // names: _fail_or_warn_path, self, path, path_name + 0xc0,0xcc,0x29,0x54, // code info + 0x12,0x12, // LOAD_GLOBAL 'safety_checks' + 0x14,0x82,0x12, // LOAD_METHOD 'is_strict' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x0d, // LOAD_GLOBAL 'DataError' + 0x10,0x82,0x13, // LOAD_CONST_STRING 'Invalid {}' + 0x14,0x6e, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x14,0x82,0x14, // LOAD_METHOD 'lower' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x4d, // JUMP 13 + 0x12,0x16, // LOAD_GLOBAL 'layout' + 0x14,0x82,0x15, // LOAD_METHOD 'warn_path' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__fail_or_warn_path = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__fail_or_warn_path, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 273, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__fail_or_warn_path + 11, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__fail_or_warn_path + 15, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__fail_or_warn_path + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__fail_if_strict_and_unusual +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__fail_if_strict_and_unusual[110] = { + 0x42,0x1a, // prelude + 0x77,0x82,0x1d,0x74, // names: _fail_if_strict_and_unusual, self, address_parameters + 0xc0,0xd4,0x74,0x40,0x29,0x42,0x2d,0x52,0x2d, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x82,0x16, // LOAD_CONST_STRING 'CHANGE_OUTPUT_PATH_NAME' + 0x10,0x82,0x17, // LOAD_CONST_STRING 'CHANGE_OUTPUT_STAKING_PATH_NAME' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x22, // IMPORT_NAME 'helpers.paths' + 0x1c,0x82,0x16, // IMPORT_FROM 'CHANGE_OUTPUT_PATH_NAME' + 0xc2, // STORE_FAST 2 + 0x1c,0x82,0x17, // IMPORT_FROM 'CHANGE_OUTPUT_STAKING_PATH_NAME' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'safety_checks' + 0x14,0x82,0x12, // LOAD_METHOD 'is_strict' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x1c, // LOAD_GLOBAL 'Credential' + 0x14,0x81,0x06, // LOAD_METHOD 'payment_credential' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x13,0x82,0x18, // LOAD_ATTR 'is_unusual_path' + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x0d, // LOAD_GLOBAL 'DataError' + 0x10,0x82,0x13, // LOAD_CONST_STRING 'Invalid {}' + 0x14,0x6e, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x14,0x82,0x14, // LOAD_METHOD 'lower' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x1c, // LOAD_GLOBAL 'Credential' + 0x14,0x81,0x07, // LOAD_METHOD 'stake_credential' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x13,0x82,0x18, // LOAD_ATTR 'is_unusual_path' + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x0d, // LOAD_GLOBAL 'DataError' + 0x10,0x82,0x13, // LOAD_CONST_STRING 'Invalid {}' + 0x14,0x6e, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0x14,0x82,0x14, // LOAD_METHOD 'lower' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__fail_if_strict_and_unusual = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__fail_if_strict_and_unusual, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 110, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 119, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__fail_if_strict_and_unusual + 6, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__fail_if_strict_and_unusual + 15, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__fail_if_strict_and_unusual + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_cardano_sign_tx_signer_Signer +// frozen bytecode for file apps/cardano/sign_tx/signer.py, scope apps_cardano_sign_tx_signer_Signer__show_if_showing_details +static const byte fun_data_apps_cardano_sign_tx_signer_Signer__show_if_showing_details[24] = { + 0x9a,0x40,0x12, // prelude + 0x81,0x0c,0x82,0x1d,0x82,0x4c, // names: _show_if_showing_details, self, layout_fn + 0xc0,0xe3,0x25, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x3a, // LOAD_ATTR 'should_show_details' + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb1, // LOAD_FAST 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer__show_if_showing_details = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer__show_if_showing_details, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 140, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer__show_if_showing_details + 9, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer__show_if_showing_details + 12, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer__show_if_showing_details + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_sign_tx_signer_Signer[] = { + &raw_code_apps_cardano_sign_tx_signer_Signer___init__, + &raw_code_apps_cardano_sign_tx_signer_Signer_sign, + &raw_code_apps_cardano_sign_tx_signer_Signer__processs_tx_init, + &raw_code_apps_cardano_sign_tx_signer_Signer__validate_tx_init, + &raw_code_apps_cardano_sign_tx_signer_Signer__show_tx_init, + &raw_code_apps_cardano_sign_tx_signer_Signer__confirm_tx, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_inputs, + &raw_code_apps_cardano_sign_tx_signer_Signer__validate_input, + &raw_code_apps_cardano_sign_tx_signer_Signer__show_input, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_outputs, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_output, + &raw_code_apps_cardano_sign_tx_signer_Signer__validate_output, + &raw_code_apps_cardano_sign_tx_signer_Signer__show_output_init, + &raw_code_apps_cardano_sign_tx_signer_Signer__show_output_credentials, + &raw_code_apps_cardano_sign_tx_signer_Signer__should_show_output, + &raw_code_apps_cardano_sign_tx_signer_Signer__is_change_output, + &raw_code_apps_cardano_sign_tx_signer_Signer__is_simple_change_output, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_legacy_output, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_babbage_output, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_output_value, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_asset_groups, + &raw_code_apps_cardano_sign_tx_signer_Signer__validate_asset_group, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_tokens, + &raw_code_apps_cardano_sign_tx_signer_Signer__validate_token, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_inline_datum, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_reference_script, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_certificates, + &raw_code_apps_cardano_sign_tx_signer_Signer__validate_certificate, + &raw_code_apps_cardano_sign_tx_signer_Signer__show_certificate, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_pool_owners, + &raw_code_apps_cardano_sign_tx_signer_Signer__show_pool_owner, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_pool_relays, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_withdrawals, + &raw_code_apps_cardano_sign_tx_signer_Signer__validate_withdrawal, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_auxiliary_data, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_minting, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_minting_tokens, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_script_data_hash, + &raw_code_apps_cardano_sign_tx_signer_Signer__validate_script_data_hash, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_collateral_inputs, + &raw_code_apps_cardano_sign_tx_signer_Signer__validate_collateral_input, + &raw_code_apps_cardano_sign_tx_signer_Signer__show_collateral_input, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_required_signers, + &raw_code_apps_cardano_sign_tx_signer_Signer__validate_required_signer, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_collateral_return, + &raw_code_apps_cardano_sign_tx_signer_Signer__validate_collateral_return, + &raw_code_apps_cardano_sign_tx_signer_Signer__show_collateral_return_init, + &raw_code_apps_cardano_sign_tx_signer_Signer__should_show_collateral_return_init, + &raw_code_apps_cardano_sign_tx_signer_Signer__should_show_collateral_return_tokens, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_reference_inputs, + &raw_code_apps_cardano_sign_tx_signer_Signer__validate_reference_input, + &raw_code_apps_cardano_sign_tx_signer_Signer__process_witness_requests, + &raw_code_apps_cardano_sign_tx_signer_Signer__validate_witness_request, + &raw_code_apps_cardano_sign_tx_signer_Signer__show_witness_request, + &raw_code_apps_cardano_sign_tx_signer_Signer__assert_tx_init_cond, + &raw_code_apps_cardano_sign_tx_signer_Signer__is_network_id_verifiable, + &raw_code_apps_cardano_sign_tx_signer_Signer__get_output_address, + &raw_code_apps_cardano_sign_tx_signer_Signer__get_output_address_type, + &raw_code_apps_cardano_sign_tx_signer_Signer__derive_withdrawal_address_bytes, + &raw_code_apps_cardano_sign_tx_signer_Signer__get_chunks_count, + &raw_code_apps_cardano_sign_tx_signer_Signer__validate_chunk, + &raw_code_apps_cardano_sign_tx_signer_Signer__get_byron_witness, + &raw_code_apps_cardano_sign_tx_signer_Signer__get_shelley_witness, + &raw_code_apps_cardano_sign_tx_signer_Signer__sign_tx_hash, + &raw_code_apps_cardano_sign_tx_signer_Signer__fail_or_warn_if_invalid_path, + &raw_code_apps_cardano_sign_tx_signer_Signer__fail_or_warn_path, + &raw_code_apps_cardano_sign_tx_signer_Signer__fail_if_strict_and_unusual, + &raw_code_apps_cardano_sign_tx_signer_Signer__show_if_showing_details, +}; + +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer_Signer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_sign_tx_signer_Signer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 475, + #endif + .children = (void *)&children_apps_cardano_sign_tx_signer_Signer, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 68, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_cardano_sign_tx_signer_Signer + 4, + .line_info_top = fun_data_apps_cardano_sign_tx_signer_Signer + 143, + .opcodes = fun_data_apps_cardano_sign_tx_signer_Signer + 143, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_cardano_sign_tx_signer__lt_module_gt_[] = { + &raw_code_apps_cardano_sign_tx_signer_Signer, +}; + +static const mp_raw_code_t raw_code_apps_cardano_sign_tx_signer__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_cardano_sign_tx_signer__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 241, + #endif + .children = (void *)&children_apps_cardano_sign_tx_signer__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_cardano_sign_tx_signer__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_cardano_sign_tx_signer__lt_module_gt_ + 19, + .opcodes = fun_data_apps_cardano_sign_tx_signer__lt_module_gt_ + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_cardano_sign_tx_signer[333] = { + MP_QSTR_apps_slash_cardano_slash_sign_tx_slash_signer_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_messages, + MP_QSTR_trezor, + MP_QSTR_CardanoCertificateType, + MP_QSTR_CardanoTxOutputSerializationFormat, + MP_QSTR_CardanoTxWitnessType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_CardanoTxItemAck, + MP_QSTR_CardanoTxOutput, + MP_QSTR_trezor_dot_messages, + MP_QSTR_DataError, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_call, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_safety_checks, + MP_QSTR_apps_dot_common, + MP_QSTR_addresses, + MP_QSTR_certificates, + MP_QSTR_layout, + MP_QSTR_seed, + MP_QSTR_, + MP_QSTR_INPUT_PREV_HASH_SIZE, + MP_QSTR_LOVELACE_MAX_SUPPLY, + MP_QSTR_helpers, + MP_QSTR_Credential, + MP_QSTR_helpers_dot_credential, + MP_QSTR_HashBuilderDict, + MP_QSTR_HashBuilderList, + MP_QSTR_helpers_dot_hash_builder_collection, + MP_QSTR_SCHEMA_STAKING, + MP_QSTR_helpers_dot_paths, + MP_QSTR_derive_public_key, + MP_QSTR_helpers_dot_utils, + MP_QSTR_Signer, + MP_QSTR___init__, + MP_QSTR_AccountPathChecker, + MP_QSTR_helpers_dot_account_path_check, + MP_QSTR_msg, + MP_QSTR_keychain, + MP_QSTR_account_path_checker, + MP_QSTR_ttl, + MP_QSTR_certificates_count, + MP_QSTR_withdrawals_count, + MP_QSTR_has_auxiliary_data, + MP_QSTR_validity_interval_start, + MP_QSTR_minting_asset_groups_count, + MP_QSTR_include_network_id, + MP_QSTR_script_data_hash, + MP_QSTR_collateral_inputs_count, + MP_QSTR_required_signers_count, + MP_QSTR_has_collateral_return, + MP_QSTR_total_collateral, + MP_QSTR_reference_inputs_count, + MP_QSTR_tx_dict, + MP_QSTR_should_show_details, + MP_QSTR_sign, + MP_QSTR_hashlib, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_blake2b, + MP_QSTR_outlen, + MP_QSTR_start, + MP_QSTR__processs_tx_init, + MP_QSTR_digest, + MP_QSTR__confirm_tx, + MP_QSTR__process_witness_requests, + MP_QSTR_CardanoTxHostAck, + MP_QSTR_CardanoTxBodyHash, + MP_QSTR_tx_hash, + MP_QSTR__validate_tx_init, + MP_QSTR__show_tx_init, + MP_QSTR_add, + MP_QSTR_inputs_count, + MP_QSTR__process_inputs, + MP_QSTR_outputs_count, + MP_QSTR__process_outputs, + MP_QSTR_fee, + MP_QSTR__process_certificates, + MP_QSTR__process_withdrawals, + MP_QSTR__process_auxiliary_data, + MP_QSTR__process_minting, + MP_QSTR__process_script_data_hash, + MP_QSTR__process_collateral_inputs, + MP_QSTR__process_required_signers, + MP_QSTR_network_id, + MP_QSTR__process_collateral_return, + MP_QSTR__process_reference_inputs, + MP_QSTR_validate_network_info, + MP_QSTR_protocol_magic, + MP_QSTR_show_tx_init, + MP_QSTR_SIGNING_MODE_TITLE, + MP_QSTR__is_network_id_verifiable, + MP_QSTR_warn_tx_network_unverifiable, + MP_QSTR_CardanoTxInput, + MP_QSTR__validate_input, + MP_QSTR__show_input, + MP_QSTR_append, + MP_QSTR_prev_hash, + MP_QSTR_prev_index, + MP_QSTR__process_output, + MP_QSTR_amount, + MP_QSTR__validate_output, + MP_QSTR__should_show_output, + MP_QSTR__show_output_init, + MP_QSTR_datum_hash, + MP_QSTR_inline_datum_size, + MP_QSTR_reference_script_size, + MP_QSTR_format, + MP_QSTR_ARRAY_LEGACY, + MP_QSTR__process_legacy_output, + MP_QSTR_MAP_BABBAGE, + MP_QSTR__process_babbage_output, + MP_QSTR_OUTPUT_DATUM_HASH_SIZE, + MP_QSTR_address_parameters, + MP_QSTR_address, + MP_QSTR_validate_output_address_parameters, + MP_QSTR__fail_if_strict_and_unusual, + MP_QSTR_validate_output_address, + MP_QSTR_add_output, + MP_QSTR__get_output_address_type, + MP_QSTR_ADDRESS_TYPES_PAYMENT_SCRIPT, + MP_QSTR_warn_tx_output_no_datum, + MP_QSTR_asset_groups_count, + MP_QSTR_warn_tx_output_contains_tokens, + MP_QSTR_derive_human_readable, + MP_QSTR__show_output_credentials, + MP_QSTR_confirm_sending, + MP_QSTR__is_change_output, + MP_QSTR_change, + MP_QSTR_chunkify, + MP_QSTR_show_change_output_credentials, + MP_QSTR_payment_credential, + MP_QSTR_stake_credential, + MP_QSTR__is_simple_change_output, + MP_QSTR_should_show_credentials, + MP_QSTR__get_output_address, + MP_QSTR__process_output_value, + MP_QSTR__show_if_showing_details, + MP_QSTR_confirm_datum_hash, + MP_QSTR_HashBuilderEmbeddedCBOR, + MP_QSTR__process_inline_datum, + MP_QSTR__process_reference_script, + MP_QSTR__process_asset_groups, + MP_QSTR_CardanoAssetGroup, + MP_QSTR__validate_asset_group, + MP_QSTR_tokens_count, + MP_QSTR_policy_id, + MP_QSTR__process_tokens, + MP_QSTR_CardanoToken, + MP_QSTR__validate_token, + MP_QSTR_confirm_sending_token, + MP_QSTR_asset_name_bytes, + MP_QSTR_mint_amount, + MP_QSTR__get_chunks_count, + MP_QSTR_CardanoTxInlineDatumChunk, + MP_QSTR__validate_chunk, + MP_QSTR_data, + MP_QSTR_confirm_inline_datum, + MP_QSTR_CardanoTxReferenceScriptChunk, + MP_QSTR_confirm_reference_script, + MP_QSTR_CardanoTxCertificate, + MP_QSTR__validate_certificate, + MP_QSTR__show_certificate, + MP_QSTR_type, + MP_QSTR_STAKE_POOL_REGISTRATION, + MP_QSTR_pool_parameters, + MP_QSTR_cborize_pool_registration_init, + MP_QSTR_owners_count, + MP_QSTR__process_pool_owners, + MP_QSTR_relays_count, + MP_QSTR__process_pool_relays, + MP_QSTR_cborize_pool_metadata, + MP_QSTR_metadata, + MP_QSTR_cborize, + MP_QSTR_validate, + MP_QSTR_CERTIFICATE_PATH_NAME, + MP_QSTR_path, + MP_QSTR__fail_or_warn_if_invalid_path, + MP_QSTR_confirm_stake_pool_parameters, + MP_QSTR_confirm_stake_pool_metadata, + MP_QSTR_confirm_certificate, + MP_QSTR_CardanoPoolOwner, + MP_QSTR_validate_pool_owner, + MP_QSTR__show_pool_owner, + MP_QSTR_cborize_pool_owner, + MP_QSTR_staking_key_path, + MP_QSTR_assert_cond, + MP_QSTR_POOL_OWNER_STAKING_PATH_NAME, + MP_QSTR_confirm_stake_pool_owner, + MP_QSTR_CardanoPoolRelayParameters, + MP_QSTR_validate_pool_relay, + MP_QSTR_cborize_pool_relay, + MP_QSTR_CardanoTxWithdrawal, + MP_QSTR__validate_withdrawal, + MP_QSTR__derive_withdrawal_address_bytes, + MP_QSTR_confirm_withdrawal, + MP_QSTR_validate_stake_credential, + MP_QSTR_script_hash, + MP_QSTR_key_hash, + MP_QSTR_add_withdrawal, + MP_QSTR_auxiliary_data, + MP_QSTR_CardanoTxAuxiliaryData, + MP_QSTR_get_hash_and_supplement, + MP_QSTR_show, + MP_QSTR_cvote_registration_parameters, + MP_QSTR_CardanoTxMint, + MP_QSTR_warn_tx_contains_mint, + MP_QSTR_is_mint, + MP_QSTR__process_minting_tokens, + MP_QSTR_confirm_token_minting, + MP_QSTR__validate_script_data_hash, + MP_QSTR_confirm_script_data_hash, + MP_QSTR_SCRIPT_DATA_HASH_SIZE, + MP_QSTR_CardanoTxCollateralInput, + MP_QSTR__validate_collateral_input, + MP_QSTR__show_collateral_input, + MP_QSTR_confirm_collateral_input, + MP_QSTR_get_public_key_hash, + MP_QSTR_CardanoTxRequiredSigner, + MP_QSTR__validate_required_signer, + MP_QSTR_confirm_required_signer, + MP_QSTR_key_path, + MP_QSTR_ADDRESS_KEY_HASH_SIZE, + MP_QSTR_is_shelley_path, + MP_QSTR_is_multisig_path, + MP_QSTR_is_minting_path, + MP_QSTR__validate_collateral_return, + MP_QSTR__should_show_collateral_return_init, + MP_QSTR__should_show_collateral_return_tokens, + MP_QSTR__show_collateral_return_init, + MP_QSTR_ADDRESS_TYPES_PAYMENT_KEY, + MP_QSTR_is_collateral_return, + MP_QSTR_CardanoTxReferenceInput, + MP_QSTR__validate_reference_input, + MP_QSTR_confirm_reference_input, + MP_QSTR_witness_requests_count, + MP_QSTR_CardanoTxWitnessRequest, + MP_QSTR__validate_witness_request, + MP_QSTR__show_witness_request, + MP_QSTR_is_byron_path, + MP_QSTR__get_byron_witness, + MP_QSTR__get_shelley_witness, + MP_QSTR_add_witness_request, + MP_QSTR_confirm_witness_request, + MP_QSTR__assert_tx_init_cond, + MP_QSTR_derive_bytes, + MP_QSTR_get_bytes_unsafe, + MP_QSTR_address_type, + MP_QSTR_get_type, + MP_QSTR_CardanoAddressType, + MP_QSTR_REWARD, + MP_QSTR_REWARD_SCRIPT, + MP_QSTR_CardanoAddressParametersType, + MP_QSTR_address_n_staking, + MP_QSTR_staking_key_hash, + MP_QSTR_script_staking_hash, + MP_QSTR_derive, + MP_QSTR_CardanoTxWitnessResponse, + MP_QSTR_BYRON_WITNESS, + MP_QSTR_pub_key, + MP_QSTR_signature, + MP_QSTR__sign_tx_hash, + MP_QSTR_chain_code, + MP_QSTR_SHELLEY_WITNESS, + MP_QSTR_ed25519, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_sign_ext, + MP_QSTR_private_key, + MP_QSTR_private_key_ext, + MP_QSTR_match, + MP_QSTR__fail_or_warn_path, + MP_QSTR_is_strict, + MP_QSTR_Invalid_space__brace_open__brace_close_, + MP_QSTR_lower, + MP_QSTR_warn_path, + MP_QSTR_CHANGE_OUTPUT_PATH_NAME, + MP_QSTR_CHANGE_OUTPUT_STAKING_PATH_NAME, + MP_QSTR_is_unusual_path, + MP_QSTR_ctx_call, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_self, + MP_QSTR_sum, + MP_QSTR_NotImplementedError, + MP_QSTR_inputs_list, + MP_QSTR_input, + MP_QSTR_len, + MP_QSTR_outputs_list, + MP_QSTR_output, + MP_QSTR_RuntimeError, + MP_QSTR_bool, + MP_QSTR_output_list, + MP_QSTR_should_show, + MP_QSTR_output_dict, + MP_QSTR_output_value_list, + MP_QSTR_should_show_tokens, + MP_QSTR_asset_groups_dict, + MP_QSTR_asset_group, + MP_QSTR_tokens_dict, + MP_QSTR_token, + MP_QSTR_inline_datum_cbor, + MP_QSTR_reference_script_cbor, + MP_QSTR_certificates_list, + MP_QSTR_certificate, + MP_QSTR_pool_owners_list, + MP_QSTR_owner, + MP_QSTR_relays_list, + MP_QSTR_withdrawals_dict, + MP_QSTR_withdrawal, + MP_QSTR_minting_dict, + MP_QSTR_tokens, + MP_QSTR_collateral_inputs_list, + MP_QSTR_collateral_input, + MP_QSTR_required_signers_list, + MP_QSTR_required_signer, + MP_QSTR_reference_inputs_list, + MP_QSTR_reference_input, + MP_QSTR_witness_request, + MP_QSTR_witness_path, + MP_QSTR_condition, + MP_QSTR_data_size, + MP_QSTR_chunk_data, + MP_QSTR_chunk_number, + MP_QSTR_chunks_count, + MP_QSTR_error, + MP_QSTR_tx_body_hash, + MP_QSTR_schema, + MP_QSTR_path_name, + MP_QSTR_layout_fn, +}; + +// constants +static const mp_obj_str_t const_obj_apps_cardano_sign_tx_signer_0 = {{&mp_type_str}, 1626, 26, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x74\x78\x20\x73\x69\x67\x6e\x69\x6e\x67\x20\x72\x65\x71\x75\x65\x73\x74"}; +static const mp_obj_str_t const_obj_apps_cardano_sign_tx_signer_2 = {{&mp_type_str}, 19749, 25, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x6d\x69\x6e\x74\x20\x74\x6f\x6b\x65\x6e\x20\x62\x75\x6e\x64\x6c\x65"}; +static const mp_obj_str_t const_obj_apps_cardano_sign_tx_signer_4 = {{&mp_type_str}, 7271, 33, (const byte*)"\x54\x6f\x74\x61\x6c\x20\x63\x6f\x6c\x6c\x61\x74\x65\x72\x61\x6c\x20\x69\x73\x20\x6f\x75\x74\x20\x6f\x66\x20\x72\x61\x6e\x67\x65\x21"}; +static const mp_obj_str_t const_obj_apps_cardano_sign_tx_signer_6 = {{&mp_type_str}, 25100, 41, (const byte*)"\x54\x6f\x74\x61\x6c\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x61\x6d\x6f\x75\x6e\x74\x20\x69\x73\x20\x6f\x75\x74\x20\x6f\x66\x20\x72\x61\x6e\x67\x65\x21"}; +static const mp_obj_str_t const_obj_apps_cardano_sign_tx_signer_8 = {{&mp_type_str}, 38032, 25, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x6f\x75\x74\x70\x75\x74\x20\x64\x61\x74\x75\x6d\x20\x68\x61\x73\x68"}; +static const mp_obj_str_t const_obj_apps_cardano_sign_tx_signer_9 = {{&mp_type_str}, 52259, 30, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x74\x6f\x6b\x65\x6e\x20\x62\x75\x6e\x64\x6c\x65\x20\x69\x6e\x20\x6f\x75\x74\x70\x75\x74"}; +static const mp_obj_str_t const_obj_apps_cardano_sign_tx_signer_10 = {{&mp_type_str}, 18287, 26, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x69\x6e\x6c\x69\x6e\x65\x20\x64\x61\x74\x75\x6d\x20\x63\x68\x75\x6e\x6b"}; +static const mp_obj_str_t const_obj_apps_cardano_sign_tx_signer_11 = {{&mp_type_str}, 62411, 30, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x72\x65\x66\x65\x72\x65\x6e\x63\x65\x20\x73\x63\x72\x69\x70\x74\x20\x63\x68\x75\x6e\x6b"}; +static const mp_obj_str_t const_obj_apps_cardano_sign_tx_signer_15 = {{&mp_type_str}, 49245, 25, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x63\x6f\x6c\x6c\x61\x74\x65\x72\x61\x6c\x20\x72\x65\x74\x75\x72\x6e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_cardano_sign_tx_signer[18] = { + MP_ROM_PTR(&const_obj_apps_cardano_sign_tx_signer_0), + MP_ROM_QSTR(MP_QSTR_Invalid_space_withdrawal), + MP_ROM_PTR(&const_obj_apps_cardano_sign_tx_signer_2), + MP_ROM_QSTR(MP_QSTR_Fee_space_is_space_out_space_of_space_range_bang_), + MP_ROM_PTR(&const_obj_apps_cardano_sign_tx_signer_4), + MP_ROM_QSTR(MP_QSTR_Invalid_space_input), + MP_ROM_PTR(&const_obj_apps_cardano_sign_tx_signer_6), + MP_ROM_QSTR(MP_QSTR_Invalid_space_output), + MP_ROM_PTR(&const_obj_apps_cardano_sign_tx_signer_8), + MP_ROM_PTR(&const_obj_apps_cardano_sign_tx_signer_9), + MP_ROM_PTR(&const_obj_apps_cardano_sign_tx_signer_10), + MP_ROM_PTR(&const_obj_apps_cardano_sign_tx_signer_11), + MP_ROM_QSTR(MP_QSTR_Invalid_space_script_space_data_space_hash), + MP_ROM_QSTR(MP_QSTR_Invalid_space_collateral_space_input), + MP_ROM_QSTR(MP_QSTR_Invalid_space_required_space_signer), + MP_ROM_PTR(&const_obj_apps_cardano_sign_tx_signer_15), + MP_ROM_QSTR(MP_QSTR_collateral_hyphen_return), + MP_ROM_QSTR(MP_QSTR_Invalid_space_reference_space_input), +}; + +static const mp_frozen_module_t frozen_module_apps_cardano_sign_tx_signer = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_cardano_sign_tx_signer, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_cardano_sign_tx_signer, + }, + .rc = &raw_code_apps_cardano_sign_tx_signer__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_CardanoAddressType +// - original source file: build/firmware/src/trezor/enums/CardanoAddressType.mpy +// - frozen file name: trezor/enums/CardanoAddressType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/CardanoAddressType.py, scope trezor_enums_CardanoAddressType__lt_module_gt_ +static const byte fun_data_trezor_enums_CardanoAddressType__lt_module_gt_[50] = { + 0x00,0x1a, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'BASE' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'BASE_SCRIPT_KEY' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'BASE_KEY_SCRIPT' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x05, // STORE_NAME 'BASE_SCRIPT_SCRIPT' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x16,0x06, // STORE_NAME 'POINTER' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x16,0x07, // STORE_NAME 'POINTER_SCRIPT' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x16,0x08, // STORE_NAME 'ENTERPRISE' + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x16,0x09, // STORE_NAME 'ENTERPRISE_SCRIPT' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x16,0x0a, // STORE_NAME 'BYRON' + 0x8e, // LOAD_CONST_SMALL_INT 14 + 0x16,0x0b, // STORE_NAME 'REWARD' + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0x16,0x0c, // STORE_NAME 'REWARD_SCRIPT' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_CardanoAddressType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_CardanoAddressType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_CardanoAddressType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_CardanoAddressType__lt_module_gt_ + 15, + .opcodes = fun_data_trezor_enums_CardanoAddressType__lt_module_gt_ + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_CardanoAddressType[13] = { + MP_QSTR_trezor_slash_enums_slash_CardanoAddressType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_BASE, + MP_QSTR_BASE_SCRIPT_KEY, + MP_QSTR_BASE_KEY_SCRIPT, + MP_QSTR_BASE_SCRIPT_SCRIPT, + MP_QSTR_POINTER, + MP_QSTR_POINTER_SCRIPT, + MP_QSTR_ENTERPRISE, + MP_QSTR_ENTERPRISE_SCRIPT, + MP_QSTR_BYRON, + MP_QSTR_REWARD, + MP_QSTR_REWARD_SCRIPT, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_CardanoAddressType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_CardanoAddressType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_CardanoAddressType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_CardanoCVoteRegistrationFormat +// - original source file: build/firmware/src/trezor/enums/CardanoCVoteRegistrationFormat.mpy +// - frozen file name: trezor/enums/CardanoCVoteRegistrationFormat.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/CardanoCVoteRegistrationFormat.py, scope trezor_enums_CardanoCVoteRegistrationFormat__lt_module_gt_ +static const byte fun_data_trezor_enums_CardanoCVoteRegistrationFormat__lt_module_gt_[14] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x60,0x20,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'CIP15' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'CIP36' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_CardanoCVoteRegistrationFormat__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_CardanoCVoteRegistrationFormat__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_CardanoCVoteRegistrationFormat__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_CardanoCVoteRegistrationFormat__lt_module_gt_ + 6, + .opcodes = fun_data_trezor_enums_CardanoCVoteRegistrationFormat__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_CardanoCVoteRegistrationFormat[4] = { + MP_QSTR_trezor_slash_enums_slash_CardanoCVoteRegistrationFormat_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_CIP15, + MP_QSTR_CIP36, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_CardanoCVoteRegistrationFormat = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_CardanoCVoteRegistrationFormat, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_CardanoCVoteRegistrationFormat__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_CardanoCertificateType +// - original source file: build/firmware/src/trezor/enums/CardanoCertificateType.mpy +// - frozen file name: trezor/enums/CardanoCertificateType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/CardanoCertificateType.py, scope trezor_enums_CardanoCertificateType__lt_module_gt_ +static const byte fun_data_trezor_enums_CardanoCertificateType__lt_module_gt_[22] = { + 0x00,0x0c, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'STAKE_REGISTRATION' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'STAKE_DEREGISTRATION' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'STAKE_DELEGATION' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x05, // STORE_NAME 'STAKE_POOL_REGISTRATION' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_CardanoCertificateType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_CardanoCertificateType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_CardanoCertificateType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_CardanoCertificateType__lt_module_gt_ + 8, + .opcodes = fun_data_trezor_enums_CardanoCertificateType__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_CardanoCertificateType[6] = { + MP_QSTR_trezor_slash_enums_slash_CardanoCertificateType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_STAKE_REGISTRATION, + MP_QSTR_STAKE_DEREGISTRATION, + MP_QSTR_STAKE_DELEGATION, + MP_QSTR_STAKE_POOL_REGISTRATION, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_CardanoCertificateType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_CardanoCertificateType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_CardanoCertificateType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_CardanoDerivationType +// - original source file: build/firmware/src/trezor/enums/CardanoDerivationType.mpy +// - frozen file name: trezor/enums/CardanoDerivationType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/CardanoDerivationType.py, scope trezor_enums_CardanoDerivationType__lt_module_gt_ +static const byte fun_data_trezor_enums_CardanoDerivationType__lt_module_gt_[18] = { + 0x00,0x0a, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'LEDGER' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'ICARUS' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'ICARUS_TREZOR' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_CardanoDerivationType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_CardanoDerivationType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_CardanoDerivationType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_CardanoDerivationType__lt_module_gt_ + 7, + .opcodes = fun_data_trezor_enums_CardanoDerivationType__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_CardanoDerivationType[5] = { + MP_QSTR_trezor_slash_enums_slash_CardanoDerivationType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_LEDGER, + MP_QSTR_ICARUS, + MP_QSTR_ICARUS_TREZOR, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_CardanoDerivationType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_CardanoDerivationType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_CardanoDerivationType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_CardanoNativeScriptHashDisplayFormat +// - original source file: build/firmware/src/trezor/enums/CardanoNativeScriptHashDisplayFormat.mpy +// - frozen file name: trezor/enums/CardanoNativeScriptHashDisplayFormat.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/CardanoNativeScriptHashDisplayFormat.py, scope trezor_enums_CardanoNativeScriptHashDisplayFormat__lt_module_gt_ +static const byte fun_data_trezor_enums_CardanoNativeScriptHashDisplayFormat__lt_module_gt_[18] = { + 0x00,0x0a, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'HIDE' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'BECH32' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'POLICY_ID' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_CardanoNativeScriptHashDisplayFormat__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_CardanoNativeScriptHashDisplayFormat__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_CardanoNativeScriptHashDisplayFormat__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_CardanoNativeScriptHashDisplayFormat__lt_module_gt_ + 7, + .opcodes = fun_data_trezor_enums_CardanoNativeScriptHashDisplayFormat__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_CardanoNativeScriptHashDisplayFormat[5] = { + MP_QSTR_trezor_slash_enums_slash_CardanoNativeScriptHashDisplayFormat_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_HIDE, + MP_QSTR_BECH32, + MP_QSTR_POLICY_ID, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_CardanoNativeScriptHashDisplayFormat = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_CardanoNativeScriptHashDisplayFormat, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_CardanoNativeScriptHashDisplayFormat__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_CardanoNativeScriptType +// - original source file: build/firmware/src/trezor/enums/CardanoNativeScriptType.mpy +// - frozen file name: trezor/enums/CardanoNativeScriptType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/CardanoNativeScriptType.py, scope trezor_enums_CardanoNativeScriptType__lt_module_gt_ +static const byte fun_data_trezor_enums_CardanoNativeScriptType__lt_module_gt_[30] = { + 0x00,0x10, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23,0x23,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'PUB_KEY' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'ALL' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'ANY' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x05, // STORE_NAME 'N_OF_K' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x16,0x06, // STORE_NAME 'INVALID_BEFORE' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x16,0x07, // STORE_NAME 'INVALID_HEREAFTER' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_CardanoNativeScriptType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_CardanoNativeScriptType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_CardanoNativeScriptType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_CardanoNativeScriptType__lt_module_gt_ + 10, + .opcodes = fun_data_trezor_enums_CardanoNativeScriptType__lt_module_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_CardanoNativeScriptType[8] = { + MP_QSTR_trezor_slash_enums_slash_CardanoNativeScriptType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_PUB_KEY, + MP_QSTR_ALL, + MP_QSTR_ANY, + MP_QSTR_N_OF_K, + MP_QSTR_INVALID_BEFORE, + MP_QSTR_INVALID_HEREAFTER, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_CardanoNativeScriptType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_CardanoNativeScriptType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_CardanoNativeScriptType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_CardanoPoolRelayType +// - original source file: build/firmware/src/trezor/enums/CardanoPoolRelayType.mpy +// - frozen file name: trezor/enums/CardanoPoolRelayType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/CardanoPoolRelayType.py, scope trezor_enums_CardanoPoolRelayType__lt_module_gt_ +static const byte fun_data_trezor_enums_CardanoPoolRelayType__lt_module_gt_[18] = { + 0x00,0x0a, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'SINGLE_HOST_IP' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'SINGLE_HOST_NAME' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'MULTIPLE_HOST_NAME' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_CardanoPoolRelayType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_CardanoPoolRelayType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_CardanoPoolRelayType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_CardanoPoolRelayType__lt_module_gt_ + 7, + .opcodes = fun_data_trezor_enums_CardanoPoolRelayType__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_CardanoPoolRelayType[5] = { + MP_QSTR_trezor_slash_enums_slash_CardanoPoolRelayType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_SINGLE_HOST_IP, + MP_QSTR_SINGLE_HOST_NAME, + MP_QSTR_MULTIPLE_HOST_NAME, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_CardanoPoolRelayType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_CardanoPoolRelayType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_CardanoPoolRelayType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_CardanoTxAuxiliaryDataSupplementType +// - original source file: build/firmware/src/trezor/enums/CardanoTxAuxiliaryDataSupplementType.mpy +// - frozen file name: trezor/enums/CardanoTxAuxiliaryDataSupplementType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/CardanoTxAuxiliaryDataSupplementType.py, scope trezor_enums_CardanoTxAuxiliaryDataSupplementType__lt_module_gt_ +static const byte fun_data_trezor_enums_CardanoTxAuxiliaryDataSupplementType__lt_module_gt_[14] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x60,0x20,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'NONE' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'CVOTE_REGISTRATION_SIGNATURE' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_CardanoTxAuxiliaryDataSupplementType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_CardanoTxAuxiliaryDataSupplementType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_CardanoTxAuxiliaryDataSupplementType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_CardanoTxAuxiliaryDataSupplementType__lt_module_gt_ + 6, + .opcodes = fun_data_trezor_enums_CardanoTxAuxiliaryDataSupplementType__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_CardanoTxAuxiliaryDataSupplementType[4] = { + MP_QSTR_trezor_slash_enums_slash_CardanoTxAuxiliaryDataSupplementType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_NONE, + MP_QSTR_CVOTE_REGISTRATION_SIGNATURE, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_CardanoTxAuxiliaryDataSupplementType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_CardanoTxAuxiliaryDataSupplementType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_CardanoTxAuxiliaryDataSupplementType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_CardanoTxOutputSerializationFormat +// - original source file: build/firmware/src/trezor/enums/CardanoTxOutputSerializationFormat.mpy +// - frozen file name: trezor/enums/CardanoTxOutputSerializationFormat.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/CardanoTxOutputSerializationFormat.py, scope trezor_enums_CardanoTxOutputSerializationFormat__lt_module_gt_ +static const byte fun_data_trezor_enums_CardanoTxOutputSerializationFormat__lt_module_gt_[14] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x60,0x20,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'ARRAY_LEGACY' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'MAP_BABBAGE' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_CardanoTxOutputSerializationFormat__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_CardanoTxOutputSerializationFormat__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_CardanoTxOutputSerializationFormat__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_CardanoTxOutputSerializationFormat__lt_module_gt_ + 6, + .opcodes = fun_data_trezor_enums_CardanoTxOutputSerializationFormat__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_CardanoTxOutputSerializationFormat[4] = { + MP_QSTR_trezor_slash_enums_slash_CardanoTxOutputSerializationFormat_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ARRAY_LEGACY, + MP_QSTR_MAP_BABBAGE, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_CardanoTxOutputSerializationFormat = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_CardanoTxOutputSerializationFormat, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_CardanoTxOutputSerializationFormat__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_CardanoTxSigningMode +// - original source file: build/firmware/src/trezor/enums/CardanoTxSigningMode.mpy +// - frozen file name: trezor/enums/CardanoTxSigningMode.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/CardanoTxSigningMode.py, scope trezor_enums_CardanoTxSigningMode__lt_module_gt_ +static const byte fun_data_trezor_enums_CardanoTxSigningMode__lt_module_gt_[22] = { + 0x00,0x0c, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'ORDINARY_TRANSACTION' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'POOL_REGISTRATION_AS_OWNER' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'MULTISIG_TRANSACTION' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x05, // STORE_NAME 'PLUTUS_TRANSACTION' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_CardanoTxSigningMode__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_CardanoTxSigningMode__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_CardanoTxSigningMode__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_CardanoTxSigningMode__lt_module_gt_ + 8, + .opcodes = fun_data_trezor_enums_CardanoTxSigningMode__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_CardanoTxSigningMode[6] = { + MP_QSTR_trezor_slash_enums_slash_CardanoTxSigningMode_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ORDINARY_TRANSACTION, + MP_QSTR_POOL_REGISTRATION_AS_OWNER, + MP_QSTR_MULTISIG_TRANSACTION, + MP_QSTR_PLUTUS_TRANSACTION, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_CardanoTxSigningMode = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_CardanoTxSigningMode, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_CardanoTxSigningMode__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_CardanoTxWitnessType +// - original source file: build/firmware/src/trezor/enums/CardanoTxWitnessType.mpy +// - frozen file name: trezor/enums/CardanoTxWitnessType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/CardanoTxWitnessType.py, scope trezor_enums_CardanoTxWitnessType__lt_module_gt_ +static const byte fun_data_trezor_enums_CardanoTxWitnessType__lt_module_gt_[14] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x60,0x20,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'BYRON_WITNESS' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'SHELLEY_WITNESS' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_CardanoTxWitnessType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_CardanoTxWitnessType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_CardanoTxWitnessType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_CardanoTxWitnessType__lt_module_gt_ + 6, + .opcodes = fun_data_trezor_enums_CardanoTxWitnessType__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_CardanoTxWitnessType[4] = { + MP_QSTR_trezor_slash_enums_slash_CardanoTxWitnessType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_BYRON_WITNESS, + MP_QSTR_SHELLEY_WITNESS, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_CardanoTxWitnessType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_CardanoTxWitnessType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_CardanoTxWitnessType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_eos___init__ +// - original source file: build/firmware/src/apps/eos/__init__.mpy +// - frozen file name: apps/eos/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/eos/__init__.py, scope apps_eos___init____lt_module_gt_ +static const byte fun_data_apps_eos___init____lt_module_gt_[33] = { + 0x08,0x08, // prelude + 0x01, // names: + 0x4c,0x24,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'PATTERN_BIP44' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x02, // IMPORT_FROM 'PATTERN_BIP44' + 0x16,0x02, // STORE_NAME 'PATTERN_BIP44' + 0x59, // POP_TOP + 0x10,0x04, // LOAD_CONST_STRING 'secp256k1' + 0x16,0x05, // STORE_NAME 'CURVE' + 0x22,0x81,0x42, // LOAD_CONST_SMALL_INT 194 + 0x16,0x06, // STORE_NAME 'SLIP44_ID' + 0x11,0x02, // LOAD_NAME 'PATTERN_BIP44' + 0x16,0x07, // STORE_NAME 'PATTERN' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_eos___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_eos___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_eos___init____lt_module_gt_ + 6, + .opcodes = fun_data_apps_eos___init____lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_eos___init__[8] = { + MP_QSTR_apps_slash_eos_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_PATTERN_BIP44, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_secp256k1, + MP_QSTR_CURVE, + MP_QSTR_SLIP44_ID, + MP_QSTR_PATTERN, +}; + +static const mp_frozen_module_t frozen_module_apps_eos___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_eos___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps_eos___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_eos_get_public_key +// - original source file: build/firmware/src/apps/eos/get_public_key.mpy +// - frozen file name: apps/eos/get_public_key.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/eos/get_public_key.py, scope apps_eos_get_public_key__lt_module_gt_ +static const byte fun_data_apps_eos_get_public_key__lt_module_gt_[33] = { + 0x08,0x0a, // prelude + 0x01, // names: + 0x40,0x4c,0x60,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'auto_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x02, // IMPORT_FROM 'auto_keychain' + 0x16,0x02, // STORE_NAME 'auto_keychain' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'auto_keychain' + 0x11,0x1d, // LOAD_NAME '__name__' + 0x34,0x01, // CALL_FUNCTION 1 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x04, // STORE_NAME 'get_public_key' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_eos_get_public_key__lt_module_gt_ +// frozen bytecode for file apps/eos/get_public_key.py, scope apps_eos_get_public_key_get_public_key +static const byte fun_data_apps_eos_get_public_key_get_public_key[180] = { + 0x9a,0x50,0x26, // prelude + 0x04,0x1e,0x1f, // names: get_public_key, msg, keychain + 0x80,0x0c,0x2b,0x4b,0x4b,0x2b,0x4b,0x4d,0x49,0x2c,0x45,0x25,0x50,0x29,0x2d,0x2a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'secp256k1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x05, // IMPORT_FROM 'secp256k1' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'EosPublicKey' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.messages' + 0x1c,0x07, // IMPORT_FROM 'EosPublicKey' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'apps.common' + 0x1c,0x09, // IMPORT_FROM 'paths' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0b, // LOAD_CONST_STRING 'public_key_to_wif' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'helpers' + 0x1c,0x0b, // IMPORT_FROM 'public_key_to_wif' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0d, // LOAD_CONST_STRING 'require_get_public_key' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'layout' + 0x1c,0x0d, // IMPORT_FROM 'require_get_public_key' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x0f, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'address_n' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x11, // LOAD_METHOD 'derive' + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xc7, // STORE_FAST 7 + 0xb2, // LOAD_FAST 2 + 0x14,0x12, // LOAD_METHOD 'publickey' + 0xb7, // LOAD_FAST 7 + 0x14,0x13, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0x52, // LOAD_CONST_TRUE + 0x36,0x02, // CALL_METHOD 2 + 0xc8, // STORE_FAST 8 + 0xb5, // LOAD_FAST 5 + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'show_display' + 0x44,0x70, // POP_JUMP_IF_FALSE 48 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x15, // LOAD_CONST_STRING 'PATTERN' + 0x10,0x16, // LOAD_CONST_STRING 'SLIP44_ID' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x17, // IMPORT_NAME '' + 0x1c,0x15, // IMPORT_FROM 'PATTERN' + 0xca, // STORE_FAST 10 + 0x1c,0x16, // IMPORT_FROM 'SLIP44_ID' + 0xcb, // STORE_FAST 11 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x18, // LOAD_METHOD 'address_n_to_str' + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xcc, // STORE_FAST 12 + 0xb4, // LOAD_FAST 4 + 0x14,0x19, // LOAD_METHOD 'get_account_name' + 0x10,0x1a, // LOAD_CONST_STRING 'EOS' + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'address_n' + 0xba, // LOAD_FAST 10 + 0xbb, // LOAD_FAST 11 + 0x36,0x04, // CALL_METHOD 4 + 0xcd, // STORE_FAST 13 + 0xb6, // LOAD_FAST 6 + 0xb9, // LOAD_FAST 9 + 0xbc, // LOAD_FAST 12 + 0xbd, // LOAD_FAST 13 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x1b, // LOAD_CONST_STRING 'wif_public_key' + 0xb9, // LOAD_FAST 9 + 0x10,0x1c, // LOAD_CONST_STRING 'raw_public_key' + 0xb8, // LOAD_FAST 8 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_get_public_key_get_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_get_public_key_get_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 180, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 20, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_eos_get_public_key_get_public_key + 6, + .line_info_top = fun_data_apps_eos_get_public_key_get_public_key + 22, + .opcodes = fun_data_apps_eos_get_public_key_get_public_key + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_eos_get_public_key__lt_module_gt_[] = { + &raw_code_apps_eos_get_public_key_get_public_key, +}; + +static const mp_raw_code_t raw_code_apps_eos_get_public_key__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_eos_get_public_key__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = (void *)&children_apps_eos_get_public_key__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_eos_get_public_key__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_eos_get_public_key__lt_module_gt_ + 7, + .opcodes = fun_data_apps_eos_get_public_key__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_eos_get_public_key[32] = { + MP_QSTR_apps_slash_eos_slash_get_public_key_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_auto_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_get_public_key, + MP_QSTR_secp256k1, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_EosPublicKey, + MP_QSTR_trezor_dot_messages, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_public_key_to_wif, + MP_QSTR_helpers, + MP_QSTR_require_get_public_key, + MP_QSTR_layout, + MP_QSTR_validate_path, + MP_QSTR_address_n, + MP_QSTR_derive, + MP_QSTR_publickey, + MP_QSTR_private_key, + MP_QSTR_show_display, + MP_QSTR_PATTERN, + MP_QSTR_SLIP44_ID, + MP_QSTR_, + MP_QSTR_address_n_to_str, + MP_QSTR_get_account_name, + MP_QSTR_EOS, + MP_QSTR_wif_public_key, + MP_QSTR_raw_public_key, + MP_QSTR___name__, + MP_QSTR_msg, + MP_QSTR_keychain, +}; + +static const mp_frozen_module_t frozen_module_apps_eos_get_public_key = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_eos_get_public_key, + .obj_table = NULL, + }, + .rc = &raw_code_apps_eos_get_public_key__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_eos_helpers +// - original source file: build/firmware/src/apps/eos/helpers.mpy +// - frozen file name: apps/eos/helpers.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/eos/helpers.py, scope apps_eos_helpers__lt_module_gt_ +static const byte fun_data_apps_eos_helpers__lt_module_gt_[30] = { + 0x00,0x14, // prelude + 0x01, // names: + 0x40,0x60,0x20,0x84,0x0a,0x84,0x0c,0x84,0x11, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'base58_encode' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x08, // STORE_NAME 'eos_name_to_string' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0c, // STORE_NAME 'eos_asset_to_string' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x18, // STORE_NAME 'public_key_to_wif' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_eos_helpers__lt_module_gt_ +// frozen bytecode for file apps/eos/helpers.py, scope apps_eos_helpers_base58_encode +static const byte fun_data_apps_eos_helpers_base58_encode[61] = { + 0x63,0x14, // prelude + 0x02,0x1c,0x1d,0x1e, // names: base58_encode, prefix, sig_prefix, data + 0x80,0x07,0x4b,0x34,0x23,0x49, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'base58' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x03, // IMPORT_FROM 'base58' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x05, // LOAD_METHOD 'encode' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x14,0x06, // LOAD_METHOD 'ripemd160_32' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x14,0x05, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x07, // LOAD_CONST_STRING '_' + 0xf2, // BINARY_OP 27 __add__ + 0xb4, // LOAD_FAST 4 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_helpers_base58_encode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_eos_helpers_base58_encode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 61, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_eos_helpers_base58_encode + 6, + .line_info_top = fun_data_apps_eos_helpers_base58_encode + 12, + .opcodes = fun_data_apps_eos_helpers_base58_encode + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_helpers__lt_module_gt_ +// frozen bytecode for file apps/eos/helpers.py, scope apps_eos_helpers_eos_name_to_string +static const byte fun_data_apps_eos_helpers_eos_name_to_string[72] = { + 0x51,0x16, // prelude + 0x08,0x1f, // names: eos_name_to_string, value + 0x80,0x11,0x23,0x22,0x23,0x25,0x2e,0x24,0x54, // code info + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0xc2, // STORE_FAST 2 + 0x10,0x09, // LOAD_CONST_STRING '' + 0xc3, // STORE_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x62, // JUMP 34 + 0x57, // DUP_TOP + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0x42,0x41, // JUMP 1 + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xef, // BINARY_OP 24 __and__ + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0xb3, // LOAD_FAST 3 + 0xf2, // BINARY_OP 27 __add__ + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x42,0x41, // JUMP 1 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xe4, // BINARY_OP 13 __irshift__ + 0xc2, // STORE_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x57, // DUP_TOP + 0x8d, // LOAD_CONST_SMALL_INT 13 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x19, // POP_JUMP_IF_TRUE -39 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x0a, // LOAD_METHOD 'rstrip' + 0x10,0x0b, // LOAD_CONST_STRING '.' + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_helpers_eos_name_to_string = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_eos_helpers_eos_name_to_string, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_eos_helpers_eos_name_to_string + 4, + .line_info_top = fun_data_apps_eos_helpers_eos_name_to_string + 13, + .opcodes = fun_data_apps_eos_helpers_eos_name_to_string + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_helpers__lt_module_gt_ +// frozen bytecode for file apps/eos/helpers.py, scope apps_eos_helpers_eos_asset_to_string +static const byte fun_data_apps_eos_helpers_eos_asset_to_string[122] = { + 0x59,0x1c, // prelude + 0x0c,0x20, // names: eos_asset_to_string, asset + 0x80,0x1d,0x2d,0x24,0x5b,0x2b,0x25,0x28,0x26,0x23,0x48,0x4a, // code info + 0x12,0x21, // LOAD_GLOBAL 'int' + 0x14,0x0d, // LOAD_METHOD 'to_bytes' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'symbol' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x10,0x0f, // LOAD_CONST_STRING 'big' + 0x36,0x03, // CALL_METHOD 3 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x55, // LOAD_SUBSCR + 0xc2, // STORE_FAST 2 + 0x12,0x22, // LOAD_GLOBAL 'bytes' + 0x12,0x23, // LOAD_GLOBAL 'reversed' + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x0a, // LOAD_METHOD 'rstrip' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x10, // LOAD_METHOD 'decode' + 0x10,0x11, // LOAD_CONST_STRING 'ascii' + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x10,0x12, // LOAD_CONST_STRING '{:0{}d}' + 0x14,0x13, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'amount' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x63, // POP_JUMP_IF_FALSE 35 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xb2, // LOAD_FAST 2 + 0xd1, // UNARY_OP 1 __neg__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x10,0x09, // LOAD_CONST_STRING '' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x10,0x15, // LOAD_CONST_STRING '0' + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0xd1, // UNARY_OP 1 __neg__ + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc6, // STORE_FAST 6 + 0x10,0x16, // LOAD_CONST_STRING '{}.{} {}' + 0x14,0x13, // LOAD_METHOD 'format' + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE + 0x10,0x17, // LOAD_CONST_STRING '{} {}' + 0x14,0x13, // LOAD_METHOD 'format' + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_helpers_eos_asset_to_string = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_eos_helpers_eos_asset_to_string, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 122, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_eos_helpers_eos_asset_to_string + 4, + .line_info_top = fun_data_apps_eos_helpers_eos_asset_to_string + 16, + .opcodes = fun_data_apps_eos_helpers_eos_asset_to_string + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_helpers__lt_module_gt_ +// frozen bytecode for file apps/eos/helpers.py, scope apps_eos_helpers_public_key_to_wif +static const byte fun_data_apps_eos_helpers_public_key_to_wif[108] = { + 0x39,0x16, // prelude + 0x18,0x24, // names: public_key_to_wif, pub_key + 0x80,0x2e,0x4b,0x32,0x30,0x2b,0x33,0x44,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x19, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1a, // IMPORT_NAME 'trezor.wire' + 0x1c,0x19, // IMPORT_FROM 'DataError' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x66, // POP_JUMP_IF_FALSE 38 + 0x12,0x25, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x80,0x41, // LOAD_CONST_SMALL_INT 65 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5b, // POP_JUMP_IF_FALSE 27 + 0xb0, // LOAD_FAST 0 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x55, // LOAD_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xef, // BINARY_OP 24 __and__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x42,0x42, // JUMP 2 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xf2, // BINARY_OP 27 __add__ + 0xc3, // STORE_FAST 3 + 0x42,0x5d, // JUMP 29 + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x2b,0x02, // BUILD_LIST 2 + 0xdd, // BINARY_OP 6 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x25, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb0, // LOAD_FAST 0 + 0xc3, // STORE_FAST 3 + 0x42,0x46, // JUMP 6 + 0xb1, // LOAD_FAST 1 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x02, // LOAD_GLOBAL 'base58_encode' + 0x10,0x1b, // LOAD_CONST_STRING 'EOS' + 0x10,0x09, // LOAD_CONST_STRING '' + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_helpers_public_key_to_wif = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_eos_helpers_public_key_to_wif, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 108, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 24, + .line_info = fun_data_apps_eos_helpers_public_key_to_wif + 4, + .line_info_top = fun_data_apps_eos_helpers_public_key_to_wif + 13, + .opcodes = fun_data_apps_eos_helpers_public_key_to_wif + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_eos_helpers__lt_module_gt_[] = { + &raw_code_apps_eos_helpers_base58_encode, + &raw_code_apps_eos_helpers_eos_name_to_string, + &raw_code_apps_eos_helpers_eos_asset_to_string, + &raw_code_apps_eos_helpers_public_key_to_wif, +}; + +static const mp_raw_code_t raw_code_apps_eos_helpers__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_eos_helpers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = (void *)&children_apps_eos_helpers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_eos_helpers__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_eos_helpers__lt_module_gt_ + 12, + .opcodes = fun_data_apps_eos_helpers__lt_module_gt_ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_eos_helpers[38] = { + MP_QSTR_apps_slash_eos_slash_helpers_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_base58_encode, + MP_QSTR_base58, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_encode, + MP_QSTR_ripemd160_32, + MP_QSTR__, + MP_QSTR_eos_name_to_string, + MP_QSTR_, + MP_QSTR_rstrip, + MP_QSTR__dot_, + MP_QSTR_eos_asset_to_string, + MP_QSTR_to_bytes, + MP_QSTR_symbol, + MP_QSTR_big, + MP_QSTR_decode, + MP_QSTR_ascii, + MP_QSTR__brace_open__colon_0_brace_open__brace_close_d_brace_close_, + MP_QSTR_format, + MP_QSTR_amount, + MP_QSTR_0, + MP_QSTR__brace_open__brace_close__dot__brace_open__brace_close__space__brace_open__brace_close_, + MP_QSTR__brace_open__brace_close__space__brace_open__brace_close_, + MP_QSTR_public_key_to_wif, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_EOS, + MP_QSTR_prefix, + MP_QSTR_sig_prefix, + MP_QSTR_data, + MP_QSTR_value, + MP_QSTR_asset, + MP_QSTR_int, + MP_QSTR_bytes, + MP_QSTR_reversed, + MP_QSTR_pub_key, + MP_QSTR_len, +}; + +// constants +static const mp_obj_str_t const_obj_apps_eos_helpers_0 = {{&mp_type_str}, 51809, 32, (const byte*)"\x2e\x31\x32\x33\x34\x35\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a"}; +static const mp_obj_str_t const_obj_apps_eos_helpers_1 = {{&mp_type_bytes}, 46501, 1, (const byte*)"\x00"}; +static const mp_obj_str_t const_obj_apps_eos_helpers_2 = {{&mp_type_bytes}, 46502, 1, (const byte*)"\x03"}; +static const mp_obj_str_t const_obj_apps_eos_helpers_3 = {{&mp_type_bytes}, 46503, 1, (const byte*)"\x02"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_eos_helpers[5] = { + MP_ROM_PTR(&const_obj_apps_eos_helpers_0), + MP_ROM_PTR(&const_obj_apps_eos_helpers_1), + MP_ROM_PTR(&const_obj_apps_eos_helpers_2), + MP_ROM_PTR(&const_obj_apps_eos_helpers_3), + MP_ROM_QSTR(MP_QSTR_invalid_space_public_space_key), +}; + +static const mp_frozen_module_t frozen_module_apps_eos_helpers = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_eos_helpers, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_eos_helpers, + }, + .rc = &raw_code_apps_eos_helpers__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_eos_layout +// - original source file: build/firmware/src/apps/eos/layout.mpy +// - frozen file name: apps/eos/layout.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/eos/layout.py, scope apps_eos_layout__lt_module_gt_ +static const byte fun_data_apps_eos_layout__lt_module_gt_[15] = { + 0x00,0x06, // prelude + 0x01, // names: + 0x84,0x08, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'require_get_public_key' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x07, // STORE_NAME 'require_sign_tx' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_eos_layout__lt_module_gt_ +// frozen bytecode for file apps/eos/layout.py, scope apps_eos_layout_require_get_public_key +static const byte fun_data_apps_eos_layout_require_get_public_key[37] = { + 0xcb,0x40,0x0c, // prelude + 0x02,0x13,0x05,0x06, // names: require_get_public_key, public_key, path, account + 0x60,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'show_pubkey' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x03, // IMPORT_FROM 'show_pubkey' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x10,0x05, // LOAD_CONST_STRING 'path' + 0xb1, // LOAD_FAST 1 + 0x10,0x06, // LOAD_CONST_STRING 'account' + 0xb2, // LOAD_FAST 2 + 0x34,0x84,0x01, // CALL_FUNCTION 513 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_layout_require_get_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_eos_layout_require_get_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_eos_layout_require_get_public_key + 7, + .line_info_top = fun_data_apps_eos_layout_require_get_public_key + 9, + .opcodes = fun_data_apps_eos_layout_require_get_public_key + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_layout__lt_module_gt_ +// frozen bytecode for file apps/eos/layout.py, scope apps_eos_layout_require_sign_tx +static const byte fun_data_apps_eos_layout_require_sign_tx[80] = { + 0xe9,0x40,0x16, // prelude + 0x07,0x14, // names: require_sign_tx, num_actions + 0x80,0x09,0x2b,0x2b,0x4b,0x43,0x24,0x24,0x2a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.enums' + 0x1c,0x08, // IMPORT_FROM 'ButtonRequestType' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'format_plural' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'trezor.strings' + 0x1c,0x0a, // IMPORT_FROM 'format_plural' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'confirm_action' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x0c, // IMPORT_FROM 'confirm_action' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x0d, // LOAD_CONST_STRING 'confirm_tx' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x10,0x0e, // LOAD_CONST_STRING 'description' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x10,0x0f, // LOAD_CONST_STRING 'description_param' + 0xb2, // LOAD_FAST 2 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xb0, // LOAD_FAST 0 + 0x10,0x10, // LOAD_CONST_STRING 'action' + 0x34,0x03, // CALL_FUNCTION 3 + 0x10,0x11, // LOAD_CONST_STRING 'br_code' + 0xb1, // LOAD_FAST 1 + 0x13,0x12, // LOAD_ATTR 'SignTx' + 0x34,0x86,0x02, // CALL_FUNCTION 770 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_layout_require_sign_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_eos_layout_require_sign_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 80, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_eos_layout_require_sign_tx + 5, + .line_info_top = fun_data_apps_eos_layout_require_sign_tx + 14, + .opcodes = fun_data_apps_eos_layout_require_sign_tx + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_eos_layout__lt_module_gt_[] = { + &raw_code_apps_eos_layout_require_get_public_key, + &raw_code_apps_eos_layout_require_sign_tx, +}; + +static const mp_raw_code_t raw_code_apps_eos_layout__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_eos_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = (void *)&children_apps_eos_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_eos_layout__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_eos_layout__lt_module_gt_ + 5, + .opcodes = fun_data_apps_eos_layout__lt_module_gt_ + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_eos_layout[21] = { + MP_QSTR_apps_slash_eos_slash_layout_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_require_get_public_key, + MP_QSTR_show_pubkey, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_path, + MP_QSTR_account, + MP_QSTR_require_sign_tx, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_format_plural, + MP_QSTR_trezor_dot_strings, + MP_QSTR_confirm_action, + MP_QSTR_confirm_tx, + MP_QSTR_description, + MP_QSTR_description_param, + MP_QSTR_action, + MP_QSTR_br_code, + MP_QSTR_SignTx, + MP_QSTR_public_key, + MP_QSTR_num_actions, +}; + +// constants +static const mp_obj_str_t const_obj_apps_eos_layout_1 = {{&mp_type_str}, 59005, 25, (const byte*)"\x59\x6f\x75\x20\x61\x72\x65\x20\x61\x62\x6f\x75\x74\x20\x74\x6f\x20\x73\x69\x67\x6e\x20\x7b\x7d\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_eos_layout[3] = { + MP_ROM_QSTR(MP_QSTR_Sign_space_transaction), + MP_ROM_PTR(&const_obj_apps_eos_layout_1), + MP_ROM_QSTR(MP_QSTR__brace_open_count_brace_close__space__brace_open_plural_brace_close_), +}; + +static const mp_frozen_module_t frozen_module_apps_eos_layout = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_eos_layout, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_eos_layout, + }, + .rc = &raw_code_apps_eos_layout__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_eos_sign_tx +// - original source file: build/firmware/src/apps/eos/sign_tx.mpy +// - frozen file name: apps/eos/sign_tx.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/eos/sign_tx.py, scope apps_eos_sign_tx__lt_module_gt_ +static const byte fun_data_apps_eos_sign_tx__lt_module_gt_[33] = { + 0x08,0x0a, // prelude + 0x01, // names: + 0x40,0x4c,0x60,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'auto_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x02, // IMPORT_FROM 'auto_keychain' + 0x16,0x02, // STORE_NAME 'auto_keychain' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'auto_keychain' + 0x11,0x2d, // LOAD_NAME '__name__' + 0x34,0x01, // CALL_FUNCTION 1 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x04, // STORE_NAME 'sign_tx' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_eos_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/eos/sign_tx.py, scope apps_eos_sign_tx_sign_tx +static const byte fun_data_apps_eos_sign_tx_sign_tx[386] = { + 0xf2,0x50,0x48, // prelude + 0x04,0x2e,0x2f, // names: sign_tx, msg, keychain + 0x80,0x0c,0x2b,0x2b,0x35,0x2b,0x2b,0x4b,0x4b,0x2b,0x2b,0x2b,0x56,0x45,0x24,0x46,0x4d,0x2a,0x68,0x2a,0x29,0x28,0x29,0x69,0x28,0x2c,0x29,0x56,0x28,0x4c,0x28,0x23,0x70, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'secp256k1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x05, // IMPORT_FROM 'secp256k1' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x07, // IMPORT_FROM 'sha256' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'EosSignedTx' + 0x10,0x0a, // LOAD_CONST_STRING 'EosTxActionAck' + 0x10,0x0b, // LOAD_CONST_STRING 'EosTxActionRequest' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x0c, // IMPORT_NAME 'trezor.messages' + 0x1c,0x09, // IMPORT_FROM 'EosSignedTx' + 0xc4, // STORE_FAST 4 + 0x1c,0x0a, // IMPORT_FROM 'EosTxActionAck' + 0xc5, // STORE_FAST 5 + 0x1c,0x0b, // IMPORT_FROM 'EosTxActionRequest' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'HashWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'trezor.utils' + 0x1c,0x0d, // IMPORT_FROM 'HashWriter' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0f, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'trezor.wire' + 0x1c,0x0f, // IMPORT_FROM 'DataError' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'call' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x12, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x11, // IMPORT_FROM 'call' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'apps.common' + 0x1c,0x13, // IMPORT_FROM 'paths' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x15, // LOAD_CONST_STRING 'process_action' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x16, // IMPORT_NAME 'actions' + 0x1c,0x15, // IMPORT_FROM 'process_action' + 0xcb, // STORE_FAST 11 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x17, // LOAD_CONST_STRING 'base58_encode' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME 'helpers' + 0x1c,0x17, // IMPORT_FROM 'base58_encode' + 0xcc, // STORE_FAST 12 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x19, // LOAD_CONST_STRING 'require_sign_tx' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1a, // IMPORT_NAME 'layout' + 0x1c,0x19, // IMPORT_FROM 'require_sign_tx' + 0xcd, // STORE_FAST 13 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1b, // LOAD_CONST_STRING 'write_bytes_fixed' + 0x10,0x1c, // LOAD_CONST_STRING 'write_header' + 0x10,0x1d, // LOAD_CONST_STRING 'write_uvarint' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x1e, // IMPORT_NAME 'writers' + 0x1c,0x1b, // IMPORT_FROM 'write_bytes_fixed' + 0xce, // STORE_FAST 14 + 0x1c,0x1c, // IMPORT_FROM 'write_header' + 0xcf, // STORE_FAST 15 + 0x1c,0x1d, // IMPORT_FROM 'write_uvarint' + 0x26,0x10, // STORE_FAST_N 16 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x1f, // LOAD_ATTR 'num_actions' + 0x26,0x11, // STORE_FAST_N 17 + 0x24,0x11, // LOAD_FAST_N 17 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb8, // LOAD_FAST 8 + 0x10,0x20, // LOAD_CONST_STRING 'No actions' + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xba, // LOAD_FAST 10 + 0x14,0x21, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'address_n' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x23, // LOAD_METHOD 'derive' + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x12, // STORE_FAST_N 18 + 0xb7, // LOAD_FAST 7 + 0xb3, // LOAD_FAST 3 + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x13, // STORE_FAST_N 19 + 0xbe, // LOAD_FAST 14 + 0x24,0x13, // LOAD_FAST_N 19 + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'chain_id' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xbf, // LOAD_FAST 15 + 0x24,0x13, // LOAD_FAST_N 19 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'header' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x24,0x10, // LOAD_FAST_N 16 + 0x24,0x13, // LOAD_FAST_N 19 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x24,0x10, // LOAD_FAST_N 16 + 0x24,0x13, // LOAD_FAST_N 19 + 0x24,0x11, // LOAD_FAST_N 17 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbd, // LOAD_FAST 13 + 0x24,0x11, // LOAD_FAST_N 17 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x24,0x11, // LOAD_FAST_N 17 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x67, // JUMP 39 + 0x57, // DUP_TOP + 0x26,0x14, // STORE_FAST_N 20 + 0xb9, // LOAD_FAST 9 + 0xb6, // LOAD_FAST 6 + 0x34,0x00, // CALL_FUNCTION 0 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x15, // STORE_FAST_N 21 + 0x24,0x14, // LOAD_FAST_N 20 + 0x24,0x11, // LOAD_FAST_N 17 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xd9, // BINARY_OP 2 __eq__ + 0x26,0x16, // STORE_FAST_N 22 + 0xbb, // LOAD_FAST 11 + 0x24,0x13, // LOAD_FAST_N 19 + 0x24,0x15, // LOAD_FAST_N 21 + 0x24,0x16, // LOAD_FAST_N 22 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x14, // POP_JUMP_IF_TRUE -44 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x24,0x10, // LOAD_FAST_N 16 + 0x24,0x13, // LOAD_FAST_N 19 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x24,0x13, // LOAD_FAST_N 19 + 0x12,0x30, // LOAD_GLOBAL 'bytearray' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x24,0x13, // LOAD_FAST_N 19 + 0x14,0x26, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x17, // STORE_FAST_N 23 + 0xb2, // LOAD_FAST 2 + 0x14,0x27, // LOAD_METHOD 'sign' + 0x24,0x12, // LOAD_FAST_N 18 + 0x14,0x28, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0x24,0x17, // LOAD_FAST_N 23 + 0x52, // LOAD_CONST_TRUE + 0xb2, // LOAD_FAST 2 + 0x13,0x29, // LOAD_ATTR 'CANONICAL_SIG_EOS' + 0x36,0x04, // CALL_METHOD 4 + 0x26,0x18, // STORE_FAST_N 24 + 0xb4, // LOAD_FAST 4 + 0x10,0x2a, // LOAD_CONST_STRING 'signature' + 0xbc, // LOAD_FAST 12 + 0x10,0x2b, // LOAD_CONST_STRING 'SIG_' + 0x10,0x2c, // LOAD_CONST_STRING 'K1' + 0x24,0x18, // LOAD_FAST_N 24 + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_sign_tx_sign_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_sign_tx_sign_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 386, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 31, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_eos_sign_tx_sign_tx + 6, + .line_info_top = fun_data_apps_eos_sign_tx_sign_tx + 39, + .opcodes = fun_data_apps_eos_sign_tx_sign_tx + 39, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_eos_sign_tx__lt_module_gt_[] = { + &raw_code_apps_eos_sign_tx_sign_tx, +}; + +static const mp_raw_code_t raw_code_apps_eos_sign_tx__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_eos_sign_tx__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = (void *)&children_apps_eos_sign_tx__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_eos_sign_tx__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_eos_sign_tx__lt_module_gt_ + 7, + .opcodes = fun_data_apps_eos_sign_tx__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_eos_sign_tx[49] = { + MP_QSTR_apps_slash_eos_slash_sign_tx_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_auto_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_sign_tx, + MP_QSTR_secp256k1, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_EosSignedTx, + MP_QSTR_EosTxActionAck, + MP_QSTR_EosTxActionRequest, + MP_QSTR_trezor_dot_messages, + MP_QSTR_HashWriter, + MP_QSTR_trezor_dot_utils, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_call, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_process_action, + MP_QSTR_actions, + MP_QSTR_base58_encode, + MP_QSTR_helpers, + MP_QSTR_require_sign_tx, + MP_QSTR_layout, + MP_QSTR_write_bytes_fixed, + MP_QSTR_write_header, + MP_QSTR_write_uvarint, + MP_QSTR_writers, + MP_QSTR_num_actions, + MP_QSTR_No_space_actions, + MP_QSTR_validate_path, + MP_QSTR_address_n, + MP_QSTR_derive, + MP_QSTR_chain_id, + MP_QSTR_header, + MP_QSTR_get_digest, + MP_QSTR_sign, + MP_QSTR_private_key, + MP_QSTR_CANONICAL_SIG_EOS, + MP_QSTR_signature, + MP_QSTR_SIG_, + MP_QSTR_K1, + MP_QSTR___name__, + MP_QSTR_msg, + MP_QSTR_keychain, + MP_QSTR_bytearray, +}; + +static const mp_frozen_module_t frozen_module_apps_eos_sign_tx = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_eos_sign_tx, + .obj_table = NULL, + }, + .rc = &raw_code_apps_eos_sign_tx__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_eos_writers +// - original source file: build/firmware/src/apps/eos/writers.mpy +// - frozen file name: apps/eos/writers.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/eos/writers.py, scope apps_eos_writers__lt_module_gt_ +static const byte fun_data_apps_eos_writers__lt_module_gt_[166] = { + 0x38,0x54, // prelude + 0x01, // names: + 0x40,0x1f,0x71,0x80,0x07,0x80,0x17,0x84,0x18,0x84,0x09,0x84,0x07,0x64,0x60,0x64,0x60,0x64,0x40,0x64,0x40,0x84,0x09,0x64,0x20,0x84,0x08,0x64,0x60,0x84,0x07,0x64,0x40,0x84,0x08,0x84,0x07,0x84,0x09,0x64,0x40, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'write_bytes_fixed' + 0x10,0x03, // LOAD_CONST_STRING 'write_bytes_unchecked' + 0x10,0x04, // LOAD_CONST_STRING 'write_uint8' + 0x10,0x05, // LOAD_CONST_STRING 'write_uint16_le' + 0x10,0x06, // LOAD_CONST_STRING 'write_uint32_le' + 0x10,0x07, // LOAD_CONST_STRING 'write_uint64_le' + 0x10,0x08, // LOAD_CONST_STRING 'write_uvarint' + 0x2a,0x07, // BUILD_TUPLE 7 + 0x1b,0x09, // IMPORT_NAME 'apps.common.writers' + 0x1c,0x02, // IMPORT_FROM 'write_bytes_fixed' + 0x16,0x02, // STORE_NAME 'write_bytes_fixed' + 0x1c,0x03, // IMPORT_FROM 'write_bytes_unchecked' + 0x16,0x03, // STORE_NAME 'write_bytes_unchecked' + 0x1c,0x04, // IMPORT_FROM 'write_uint8' + 0x16,0x04, // STORE_NAME 'write_uint8' + 0x1c,0x05, // IMPORT_FROM 'write_uint16_le' + 0x16,0x05, // STORE_NAME 'write_uint16_le' + 0x1c,0x06, // IMPORT_FROM 'write_uint32_le' + 0x16,0x06, // STORE_NAME 'write_uint32_le' + 0x1c,0x07, // IMPORT_FROM 'write_uint64_le' + 0x16,0x07, // STORE_NAME 'write_uint64_le' + 0x1c,0x08, // IMPORT_FROM 'write_uvarint' + 0x16,0x08, // STORE_NAME 'write_uvarint' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0a, // STORE_NAME 'write_auth' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x18, // STORE_NAME 'write_header' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x1f, // STORE_NAME 'write_action_transfer' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x25, // STORE_NAME 'write_action_buyram' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x27, // STORE_NAME 'write_action_buyrambytes' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x29, // STORE_NAME 'write_action_sellram' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x2a, // STORE_NAME 'write_action_delegate' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x2c, // STORE_NAME 'write_action_undelegate' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x2f, // STORE_NAME 'write_action_refund' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x31, // STORE_NAME 'write_action_voteproducer' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x35, // STORE_NAME 'write_action_updateauth' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x38, // STORE_NAME 'write_action_deleteauth' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x39, // STORE_NAME 'write_action_linkauth' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x3b, // STORE_NAME 'write_action_unlinkauth' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x16,0x3d, // STORE_NAME 'write_action_newaccount' + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x16,0x41, // STORE_NAME 'write_action_common' + 0x32,0x10, // MAKE_FUNCTION 16 + 0x16,0x43, // STORE_NAME 'write_asset' + 0x32,0x11, // MAKE_FUNCTION 17 + 0x16,0x46, // STORE_NAME 'write_bytes_prefixed' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_eos_writers__lt_module_gt_ +// frozen bytecode for file apps/eos/writers.py, scope apps_eos_writers_write_auth +static const byte fun_data_apps_eos_writers_write_auth[202] = { + 0x6a,0x2c, // prelude + 0x0a,0x47,0x37, // names: write_auth, w, auth + 0x80,0x24,0x4b,0x29,0x2d,0x27,0x27,0x26,0x29,0x2a,0x4b,0x2d,0x27,0x2b,0x2b,0x4b,0x2d,0x27,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.wire' + 0x1c,0x0b, // IMPORT_FROM 'DataError' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'write_uint32_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x0d, // LOAD_ATTR 'threshold' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'write_uvarint' + 0xb0, // LOAD_FAST 0 + 0x12,0x48, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x0e, // LOAD_ATTR 'keys' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x0e, // LOAD_ATTR 'keys' + 0x5f, // GET_ITER_STACK + 0x4b,0x2c, // FOR_ITER 44 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x13,0x0f, // LOAD_ATTR 'key' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb2, // LOAD_FAST 2 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x08, // LOAD_GLOBAL 'write_uvarint' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x13,0x10, // LOAD_ATTR 'type' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x13,0x0f, // LOAD_ATTR 'key' + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'write_uint16_le' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x13,0x11, // LOAD_ATTR 'weight' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x12, // JUMP -46 + 0x12,0x08, // LOAD_GLOBAL 'write_uvarint' + 0xb0, // LOAD_FAST 0 + 0x12,0x48, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x12, // LOAD_ATTR 'accounts' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x12, // LOAD_ATTR 'accounts' + 0x5f, // GET_ITER_STACK + 0x4b,0x22, // FOR_ITER 34 + 0xc4, // STORE_FAST 4 + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x13,0x13, // LOAD_ATTR 'account' + 0x13,0x14, // LOAD_ATTR 'actor' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x13,0x13, // LOAD_ATTR 'account' + 0x13,0x15, // LOAD_ATTR 'permission' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'write_uint16_le' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x13,0x11, // LOAD_ATTR 'weight' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x1c, // JUMP -36 + 0x12,0x08, // LOAD_GLOBAL 'write_uvarint' + 0xb0, // LOAD_FAST 0 + 0x12,0x48, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'waits' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'waits' + 0x5f, // GET_ITER_STACK + 0x4b,0x15, // FOR_ITER 21 + 0xc5, // STORE_FAST 5 + 0x12,0x06, // LOAD_GLOBAL 'write_uint32_le' + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0x13,0x17, // LOAD_ATTR 'wait_sec' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'write_uint16_le' + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0x13,0x11, // LOAD_ATTR 'weight' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x29, // JUMP -23 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_writers_write_auth = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_writers_write_auth, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 202, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_eos_writers_write_auth + 5, + .line_info_top = fun_data_apps_eos_writers_write_auth + 24, + .opcodes = fun_data_apps_eos_writers_write_auth + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_writers__lt_module_gt_ +// frozen bytecode for file apps/eos/writers.py, scope apps_eos_writers_write_header +static const byte fun_data_apps_eos_writers_write_header[68] = { + 0x22,0x14, // prelude + 0x18,0x49,0x4a, // names: write_header, hasher, header + 0x80,0x3c,0x29,0x29,0x29,0x29,0x29, // code info + 0x12,0x06, // LOAD_GLOBAL 'write_uint32_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'expiration' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'write_uint16_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'ref_block_num' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'write_uint32_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'ref_block_prefix' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'write_uvarint' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1c, // LOAD_ATTR 'max_net_usage_words' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'write_uint8' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1d, // LOAD_ATTR 'max_cpu_usage_ms' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'write_uvarint' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1e, // LOAD_ATTR 'delay_sec' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_writers_write_header = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_writers_write_header, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 68, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 24, + .line_info = fun_data_apps_eos_writers_write_header + 5, + .line_info_top = fun_data_apps_eos_writers_write_header + 12, + .opcodes = fun_data_apps_eos_writers_write_header + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_writers__lt_module_gt_ +// frozen bytecode for file apps/eos/writers.py, scope apps_eos_writers_write_action_transfer +static const byte fun_data_apps_eos_writers_write_action_transfer[52] = { + 0x2a,0x10, // prelude + 0x1f,0x47,0x4b, // names: write_action_transfer, w, msg + 0x80,0x45,0x29,0x29,0x29, // code info + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x20, // LOAD_ATTR 'sender' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'receiver' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x43, // LOAD_GLOBAL 'write_asset' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x22, // LOAD_ATTR 'quantity' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x46, // LOAD_GLOBAL 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x23, // LOAD_ATTR 'memo' + 0x14,0x24, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_writers_write_action_transfer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_writers_write_action_transfer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 52, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_eos_writers_write_action_transfer + 5, + .line_info_top = fun_data_apps_eos_writers_write_action_transfer + 10, + .opcodes = fun_data_apps_eos_writers_write_action_transfer + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_writers__lt_module_gt_ +// frozen bytecode for file apps/eos/writers.py, scope apps_eos_writers_write_action_buyram +static const byte fun_data_apps_eos_writers_write_action_buyram[38] = { + 0x22,0x0e, // prelude + 0x25,0x47,0x4b, // names: write_action_buyram, w, msg + 0x80,0x4c,0x29,0x29, // code info + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x26, // LOAD_ATTR 'payer' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'receiver' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x43, // LOAD_GLOBAL 'write_asset' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x22, // LOAD_ATTR 'quantity' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_writers_write_action_buyram = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_writers_write_action_buyram, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_eos_writers_write_action_buyram + 5, + .line_info_top = fun_data_apps_eos_writers_write_action_buyram + 9, + .opcodes = fun_data_apps_eos_writers_write_action_buyram + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_writers__lt_module_gt_ +// frozen bytecode for file apps/eos/writers.py, scope apps_eos_writers_write_action_buyrambytes +static const byte fun_data_apps_eos_writers_write_action_buyrambytes[38] = { + 0x22,0x0e, // prelude + 0x27,0x47,0x4b, // names: write_action_buyrambytes, w, msg + 0x80,0x52,0x29,0x29, // code info + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x26, // LOAD_ATTR 'payer' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'receiver' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'write_uint32_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x28, // LOAD_ATTR 'bytes' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_writers_write_action_buyrambytes = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_writers_write_action_buyrambytes, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_eos_writers_write_action_buyrambytes + 5, + .line_info_top = fun_data_apps_eos_writers_write_action_buyrambytes + 9, + .opcodes = fun_data_apps_eos_writers_write_action_buyrambytes + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_writers__lt_module_gt_ +// frozen bytecode for file apps/eos/writers.py, scope apps_eos_writers_write_action_sellram +static const byte fun_data_apps_eos_writers_write_action_sellram[28] = { + 0x22,0x0c, // prelude + 0x29,0x47,0x4b, // names: write_action_sellram, w, msg + 0x80,0x58,0x29, // code info + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x13, // LOAD_ATTR 'account' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x28, // LOAD_ATTR 'bytes' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_writers_write_action_sellram = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_writers_write_action_sellram, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_eos_writers_write_action_sellram + 5, + .line_info_top = fun_data_apps_eos_writers_write_action_sellram + 8, + .opcodes = fun_data_apps_eos_writers_write_action_sellram + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_writers__lt_module_gt_ +// frozen bytecode for file apps/eos/writers.py, scope apps_eos_writers_write_action_delegate +static const byte fun_data_apps_eos_writers_write_action_delegate[32] = { + 0x22,0x0c, // prelude + 0x2a,0x47,0x4b, // names: write_action_delegate, w, msg + 0x80,0x5d,0x27, // code info + 0x12,0x2c, // LOAD_GLOBAL 'write_action_undelegate' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'write_uint8' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x2b, // LOAD_ATTR 'transfer' + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x42,0x41, // JUMP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_writers_write_action_delegate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_writers_write_action_delegate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_eos_writers_write_action_delegate + 5, + .line_info_top = fun_data_apps_eos_writers_write_action_delegate + 8, + .opcodes = fun_data_apps_eos_writers_write_action_delegate + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_writers__lt_module_gt_ +// frozen bytecode for file apps/eos/writers.py, scope apps_eos_writers_write_action_undelegate +static const byte fun_data_apps_eos_writers_write_action_undelegate[48] = { + 0x22,0x10, // prelude + 0x2c,0x47,0x4b, // names: write_action_undelegate, w, msg + 0x80,0x64,0x29,0x29,0x29, // code info + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x20, // LOAD_ATTR 'sender' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'receiver' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x43, // LOAD_GLOBAL 'write_asset' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x2d, // LOAD_ATTR 'net_quantity' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x43, // LOAD_GLOBAL 'write_asset' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x2e, // LOAD_ATTR 'cpu_quantity' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_writers_write_action_undelegate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_writers_write_action_undelegate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 44, + .line_info = fun_data_apps_eos_writers_write_action_undelegate + 5, + .line_info_top = fun_data_apps_eos_writers_write_action_undelegate + 10, + .opcodes = fun_data_apps_eos_writers_write_action_undelegate + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_writers__lt_module_gt_ +// frozen bytecode for file apps/eos/writers.py, scope apps_eos_writers_write_action_refund +static const byte fun_data_apps_eos_writers_write_action_refund[18] = { + 0x22,0x0a, // prelude + 0x2f,0x47,0x4b, // names: write_action_refund, w, msg + 0x80,0x6b, // code info + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x30, // LOAD_ATTR 'owner' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_writers_write_action_refund = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_writers_write_action_refund, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_apps_eos_writers_write_action_refund + 5, + .line_info_top = fun_data_apps_eos_writers_write_action_refund + 7, + .opcodes = fun_data_apps_eos_writers_write_action_refund + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_writers__lt_module_gt_ +// frozen bytecode for file apps/eos/writers.py, scope apps_eos_writers_write_action_voteproducer +static const byte fun_data_apps_eos_writers_write_action_voteproducer[60] = { + 0x4a,0x12, // prelude + 0x31,0x47,0x4b, // names: write_action_voteproducer, w, msg + 0x80,0x6f,0x29,0x29,0x2d,0x27, // code info + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'voter' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x33, // LOAD_ATTR 'proxy' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'write_uvarint' + 0xb0, // LOAD_FAST 0 + 0x12,0x48, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x34, // LOAD_ATTR 'producers' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x34, // LOAD_ATTR 'producers' + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc2, // STORE_FAST 2 + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_writers_write_action_voteproducer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_writers_write_action_voteproducer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 60, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 49, + .line_info = fun_data_apps_eos_writers_write_action_voteproducer + 5, + .line_info_top = fun_data_apps_eos_writers_write_action_voteproducer + 11, + .opcodes = fun_data_apps_eos_writers_write_action_voteproducer + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_writers__lt_module_gt_ +// frozen bytecode for file apps/eos/writers.py, scope apps_eos_writers_write_action_updateauth +static const byte fun_data_apps_eos_writers_write_action_updateauth[36] = { + 0x22,0x0e, // prelude + 0x35,0x47,0x4b, // names: write_action_updateauth, w, msg + 0x80,0x77,0x27,0x29, // code info + 0x12,0x38, // LOAD_GLOBAL 'write_action_deleteauth' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x36, // LOAD_ATTR 'parent' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'write_auth' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x37, // LOAD_ATTR 'auth' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_writers_write_action_updateauth = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_writers_write_action_updateauth, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 53, + .line_info = fun_data_apps_eos_writers_write_action_updateauth + 5, + .line_info_top = fun_data_apps_eos_writers_write_action_updateauth + 9, + .opcodes = fun_data_apps_eos_writers_write_action_updateauth + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_writers__lt_module_gt_ +// frozen bytecode for file apps/eos/writers.py, scope apps_eos_writers_write_action_deleteauth +static const byte fun_data_apps_eos_writers_write_action_deleteauth[28] = { + 0x22,0x0c, // prelude + 0x38,0x47,0x4b, // names: write_action_deleteauth, w, msg + 0x80,0x7f,0x29, // code info + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x13, // LOAD_ATTR 'account' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x15, // LOAD_ATTR 'permission' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_writers_write_action_deleteauth = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_writers_write_action_deleteauth, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 56, + .line_info = fun_data_apps_eos_writers_write_action_deleteauth + 5, + .line_info_top = fun_data_apps_eos_writers_write_action_deleteauth + 8, + .opcodes = fun_data_apps_eos_writers_write_action_deleteauth + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_writers__lt_module_gt_ +// frozen bytecode for file apps/eos/writers.py, scope apps_eos_writers_write_action_linkauth +static const byte fun_data_apps_eos_writers_write_action_linkauth[26] = { + 0x22,0x0c, // prelude + 0x39,0x47,0x4b, // names: write_action_linkauth, w, msg + 0x80,0x84,0x27, // code info + 0x12,0x3b, // LOAD_GLOBAL 'write_action_unlinkauth' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x3a, // LOAD_ATTR 'requirement' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_writers_write_action_linkauth = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_writers_write_action_linkauth, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 57, + .line_info = fun_data_apps_eos_writers_write_action_linkauth + 5, + .line_info_top = fun_data_apps_eos_writers_write_action_linkauth + 8, + .opcodes = fun_data_apps_eos_writers_write_action_linkauth + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_writers__lt_module_gt_ +// frozen bytecode for file apps/eos/writers.py, scope apps_eos_writers_write_action_unlinkauth +static const byte fun_data_apps_eos_writers_write_action_unlinkauth[38] = { + 0x22,0x0e, // prelude + 0x3b,0x47,0x4b, // names: write_action_unlinkauth, w, msg + 0x80,0x8b,0x29,0x29, // code info + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x13, // LOAD_ATTR 'account' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x3c, // LOAD_ATTR 'code' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x10, // LOAD_ATTR 'type' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_writers_write_action_unlinkauth = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_writers_write_action_unlinkauth, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 59, + .line_info = fun_data_apps_eos_writers_write_action_unlinkauth + 5, + .line_info_top = fun_data_apps_eos_writers_write_action_unlinkauth + 9, + .opcodes = fun_data_apps_eos_writers_write_action_unlinkauth + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_writers__lt_module_gt_ +// frozen bytecode for file apps/eos/writers.py, scope apps_eos_writers_write_action_newaccount +static const byte fun_data_apps_eos_writers_write_action_newaccount[48] = { + 0x22,0x10, // prelude + 0x3d,0x47,0x4b, // names: write_action_newaccount, w, msg + 0x80,0x91,0x29,0x29,0x29, // code info + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x3e, // LOAD_ATTR 'creator' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x3f, // LOAD_ATTR 'name' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'write_auth' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x30, // LOAD_ATTR 'owner' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'write_auth' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x40, // LOAD_ATTR 'active' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_writers_write_action_newaccount = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_writers_write_action_newaccount, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 61, + .line_info = fun_data_apps_eos_writers_write_action_newaccount + 5, + .line_info_top = fun_data_apps_eos_writers_write_action_newaccount + 10, + .opcodes = fun_data_apps_eos_writers_write_action_newaccount + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_writers__lt_module_gt_ +// frozen bytecode for file apps/eos/writers.py, scope apps_eos_writers_write_action_common +static const byte fun_data_apps_eos_writers_write_action_common[72] = { + 0x4a,0x14, // prelude + 0x41,0x47,0x4b, // names: write_action_common, w, msg + 0x80,0x98,0x29,0x29,0x2d,0x27,0x29, // code info + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x13, // LOAD_ATTR 'account' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x3f, // LOAD_ATTR 'name' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'write_uvarint' + 0xb0, // LOAD_FAST 0 + 0x12,0x48, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x42, // LOAD_ATTR 'authorization' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x42, // LOAD_ATTR 'authorization' + 0x5f, // GET_ITER_STACK + 0x4b,0x15, // FOR_ITER 21 + 0xc2, // STORE_FAST 2 + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x14, // LOAD_ATTR 'actor' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x15, // LOAD_ATTR 'permission' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x29, // JUMP -23 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_writers_write_action_common = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_writers_write_action_common, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 65, + .line_info = fun_data_apps_eos_writers_write_action_common + 5, + .line_info_top = fun_data_apps_eos_writers_write_action_common + 12, + .opcodes = fun_data_apps_eos_writers_write_action_common + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_writers__lt_module_gt_ +// frozen bytecode for file apps/eos/writers.py, scope apps_eos_writers_write_asset +static const byte fun_data_apps_eos_writers_write_asset[28] = { + 0x22,0x0c, // prelude + 0x43,0x47,0x4c, // names: write_asset, w, asset + 0x80,0xa1,0x29, // code info + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x44, // LOAD_ATTR 'amount' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'write_uint64_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x45, // LOAD_ATTR 'symbol' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_writers_write_asset = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_writers_write_asset, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 67, + .line_info = fun_data_apps_eos_writers_write_asset + 5, + .line_info_top = fun_data_apps_eos_writers_write_asset + 8, + .opcodes = fun_data_apps_eos_writers_write_asset + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_writers__lt_module_gt_ +// frozen bytecode for file apps/eos/writers.py, scope apps_eos_writers_write_bytes_prefixed +static const byte fun_data_apps_eos_writers_write_bytes_prefixed[28] = { + 0x2a,0x0c, // prelude + 0x46,0x47,0x4d, // names: write_bytes_prefixed, w, data + 0x80,0xa6,0x2b, // code info + 0x12,0x08, // LOAD_GLOBAL 'write_uvarint' + 0xb0, // LOAD_FAST 0 + 0x12,0x48, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_unchecked' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_writers_write_bytes_prefixed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_writers_write_bytes_prefixed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 70, + .line_info = fun_data_apps_eos_writers_write_bytes_prefixed + 5, + .line_info_top = fun_data_apps_eos_writers_write_bytes_prefixed + 8, + .opcodes = fun_data_apps_eos_writers_write_bytes_prefixed + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_eos_writers__lt_module_gt_[] = { + &raw_code_apps_eos_writers_write_auth, + &raw_code_apps_eos_writers_write_header, + &raw_code_apps_eos_writers_write_action_transfer, + &raw_code_apps_eos_writers_write_action_buyram, + &raw_code_apps_eos_writers_write_action_buyrambytes, + &raw_code_apps_eos_writers_write_action_sellram, + &raw_code_apps_eos_writers_write_action_delegate, + &raw_code_apps_eos_writers_write_action_undelegate, + &raw_code_apps_eos_writers_write_action_refund, + &raw_code_apps_eos_writers_write_action_voteproducer, + &raw_code_apps_eos_writers_write_action_updateauth, + &raw_code_apps_eos_writers_write_action_deleteauth, + &raw_code_apps_eos_writers_write_action_linkauth, + &raw_code_apps_eos_writers_write_action_unlinkauth, + &raw_code_apps_eos_writers_write_action_newaccount, + &raw_code_apps_eos_writers_write_action_common, + &raw_code_apps_eos_writers_write_asset, + &raw_code_apps_eos_writers_write_bytes_prefixed, +}; + +static const mp_raw_code_t raw_code_apps_eos_writers__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_eos_writers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 166, + #endif + .children = (void *)&children_apps_eos_writers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 18, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_eos_writers__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_eos_writers__lt_module_gt_ + 44, + .opcodes = fun_data_apps_eos_writers__lt_module_gt_ + 44, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_eos_writers[78] = { + MP_QSTR_apps_slash_eos_slash_writers_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_write_bytes_fixed, + MP_QSTR_write_bytes_unchecked, + MP_QSTR_write_uint8, + MP_QSTR_write_uint16_le, + MP_QSTR_write_uint32_le, + MP_QSTR_write_uint64_le, + MP_QSTR_write_uvarint, + MP_QSTR_apps_dot_common_dot_writers, + MP_QSTR_write_auth, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_threshold, + MP_QSTR_keys, + MP_QSTR_key, + MP_QSTR_type, + MP_QSTR_weight, + MP_QSTR_accounts, + MP_QSTR_account, + MP_QSTR_actor, + MP_QSTR_permission, + MP_QSTR_waits, + MP_QSTR_wait_sec, + MP_QSTR_write_header, + MP_QSTR_expiration, + MP_QSTR_ref_block_num, + MP_QSTR_ref_block_prefix, + MP_QSTR_max_net_usage_words, + MP_QSTR_max_cpu_usage_ms, + MP_QSTR_delay_sec, + MP_QSTR_write_action_transfer, + MP_QSTR_sender, + MP_QSTR_receiver, + MP_QSTR_quantity, + MP_QSTR_memo, + MP_QSTR_encode, + MP_QSTR_write_action_buyram, + MP_QSTR_payer, + MP_QSTR_write_action_buyrambytes, + MP_QSTR_bytes, + MP_QSTR_write_action_sellram, + MP_QSTR_write_action_delegate, + MP_QSTR_transfer, + MP_QSTR_write_action_undelegate, + MP_QSTR_net_quantity, + MP_QSTR_cpu_quantity, + MP_QSTR_write_action_refund, + MP_QSTR_owner, + MP_QSTR_write_action_voteproducer, + MP_QSTR_voter, + MP_QSTR_proxy, + MP_QSTR_producers, + MP_QSTR_write_action_updateauth, + MP_QSTR_parent, + MP_QSTR_auth, + MP_QSTR_write_action_deleteauth, + MP_QSTR_write_action_linkauth, + MP_QSTR_requirement, + MP_QSTR_write_action_unlinkauth, + MP_QSTR_code, + MP_QSTR_write_action_newaccount, + MP_QSTR_creator, + MP_QSTR_name, + MP_QSTR_active, + MP_QSTR_write_action_common, + MP_QSTR_authorization, + MP_QSTR_write_asset, + MP_QSTR_amount, + MP_QSTR_symbol, + MP_QSTR_write_bytes_prefixed, + MP_QSTR_w, + MP_QSTR_len, + MP_QSTR_hasher, + MP_QSTR_header, + MP_QSTR_msg, + MP_QSTR_asset, + MP_QSTR_data, +}; + +// constants +static const mp_obj_str_t const_obj_apps_eos_writers_0 = {{&mp_type_str}, 1264, 32, (const byte*)"\x4b\x65\x79\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x65\x78\x70\x6c\x69\x63\x69\x74\x6c\x79\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_eos_writers[1] = { + MP_ROM_PTR(&const_obj_apps_eos_writers_0), +}; + +static const mp_frozen_module_t frozen_module_apps_eos_writers = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_eos_writers, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_eos_writers, + }, + .rc = &raw_code_apps_eos_writers__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_eos_actions___init__ +// - original source file: build/firmware/src/apps/eos/actions/__init__.mpy +// - frozen file name: apps/eos/actions/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/eos/actions/__init__.py, scope apps_eos_actions___init____lt_module_gt_ +static const byte fun_data_apps_eos_actions___init____lt_module_gt_[24] = { + 0x00,0x10, // prelude + 0x01, // names: + 0x40,0x60,0x40,0x84,0x4f,0x84,0x24, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'process_action' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x3e, // STORE_NAME '_process_unknown_action' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x50, // STORE_NAME '_check_action' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_eos_actions___init____lt_module_gt_ +// frozen bytecode for file apps/eos/actions/__init__.py, scope apps_eos_actions___init___process_action +static const byte fun_data_apps_eos_actions___init___process_action[596] = { + 0xe3,0x40,0x8e,0x02, // prelude + 0x02,0x51,0x52,0x0b, // names: process_action, sha, action, is_last + 0x80,0x0a,0x30,0x4b,0x2b,0x4b,0x29,0x67,0x20,0x44,0x25,0x27,0x26,0x20,0x2c,0x2d,0x26,0x20,0x2c,0x2d,0x26,0x20,0x2c,0x2d,0x26,0x20,0x2c,0x2d,0x26,0x20,0x2c,0x2d,0x26,0x20,0x2c,0x2d,0x26,0x20,0x2c,0x2d,0x26,0x20,0x2c,0x2d,0x26,0x20,0x2c,0x2d,0x26,0x20,0x2c,0x2d,0x26,0x20,0x2c,0x2c,0x26,0x20,0x2c,0x4c,0x29,0x26,0x20,0x2d,0x4c,0x4a,0x2a, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x03, // LOAD_CONST_STRING 'helpers' + 0x10,0x04, // LOAD_CONST_STRING 'writers' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x05, // IMPORT_NAME '' + 0x1c,0x03, // IMPORT_FROM 'helpers' + 0xc3, // STORE_FAST 3 + 0x1c,0x04, // IMPORT_FROM 'writers' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x06, // LOAD_CONST_STRING 'layout' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME '' + 0x1c,0x06, // IMPORT_FROM 'layout' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x07, // LOAD_METHOD 'eos_name_to_string' + 0xb1, // LOAD_FAST 1 + 0x13,0x08, // LOAD_ATTR 'common' + 0x13,0x09, // LOAD_ATTR 'name' + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x14,0x07, // LOAD_METHOD 'eos_name_to_string' + 0xb1, // LOAD_FAST 1 + 0x13,0x08, // LOAD_ATTR 'common' + 0x13,0x0a, // LOAD_ATTR 'account' + 0x36,0x01, // CALL_METHOD 1 + 0xc7, // STORE_FAST 7 + 0x12,0x50, // LOAD_GLOBAL '_check_action' + 0xb1, // LOAD_FAST 1 + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x34,0x03, // CALL_FUNCTION 3 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x53, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0xb5, // LOAD_FAST 5 + 0x18,0x0b, // STORE_ATTR 'is_last' + 0x12,0x54, // LOAD_GLOBAL 'bytearray' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc8, // STORE_FAST 8 + 0xb7, // LOAD_FAST 7 + 0x10,0x0c, // LOAD_CONST_STRING 'eosio' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xfb,0x82, // POP_JUMP_IF_FALSE 379 + 0xb6, // LOAD_FAST 6 + 0x10,0x0d, // LOAD_CONST_STRING 'buyram' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb5, // LOAD_FAST 5 + 0x14,0x0e, // LOAD_METHOD 'confirm_action_buyram' + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'buy_ram' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x10, // LOAD_METHOD 'write_action_buyram' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'buy_ram' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xda,0x82, // JUMP 346 + 0xb6, // LOAD_FAST 6 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb5, // LOAD_FAST 5 + 0x14,0x11, // LOAD_METHOD 'confirm_action_buyrambytes' + 0xb1, // LOAD_FAST 1 + 0x13,0x12, // LOAD_ATTR 'buy_ram_bytes' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x13, // LOAD_METHOD 'write_action_buyrambytes' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x12, // LOAD_ATTR 'buy_ram_bytes' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xbb,0x82, // JUMP 315 + 0xb6, // LOAD_FAST 6 + 0x10,0x14, // LOAD_CONST_STRING 'sellram' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb5, // LOAD_FAST 5 + 0x14,0x15, // LOAD_METHOD 'confirm_action_sellram' + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'sell_ram' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x17, // LOAD_METHOD 'write_action_sellram' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'sell_ram' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x9c,0x82, // JUMP 284 + 0xb6, // LOAD_FAST 6 + 0x10,0x18, // LOAD_CONST_STRING 'delegatebw' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb5, // LOAD_FAST 5 + 0x14,0x19, // LOAD_METHOD 'confirm_action_delegate' + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'delegate' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x1b, // LOAD_METHOD 'write_action_delegate' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'delegate' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xfd,0x81, // JUMP 253 + 0xb6, // LOAD_FAST 6 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb5, // LOAD_FAST 5 + 0x14,0x1c, // LOAD_METHOD 'confirm_action_undelegate' + 0xb1, // LOAD_FAST 1 + 0x13,0x1d, // LOAD_ATTR 'undelegate' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x1e, // LOAD_METHOD 'write_action_undelegate' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x1d, // LOAD_ATTR 'undelegate' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xde,0x81, // JUMP 222 + 0xb6, // LOAD_FAST 6 + 0x10,0x1f, // LOAD_CONST_STRING 'refund' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb5, // LOAD_FAST 5 + 0x14,0x20, // LOAD_METHOD 'confirm_action_refund' + 0xb1, // LOAD_FAST 1 + 0x13,0x1f, // LOAD_ATTR 'refund' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x21, // LOAD_METHOD 'write_action_refund' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x1f, // LOAD_ATTR 'refund' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xbf,0x81, // JUMP 191 + 0xb6, // LOAD_FAST 6 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb5, // LOAD_FAST 5 + 0x14,0x22, // LOAD_METHOD 'confirm_action_voteproducer' + 0xb1, // LOAD_FAST 1 + 0x13,0x23, // LOAD_ATTR 'vote_producer' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x24, // LOAD_METHOD 'write_action_voteproducer' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x23, // LOAD_ATTR 'vote_producer' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xa0,0x81, // JUMP 160 + 0xb6, // LOAD_FAST 6 + 0x10,0x25, // LOAD_CONST_STRING 'updateauth' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb5, // LOAD_FAST 5 + 0x14,0x26, // LOAD_METHOD 'confirm_action_updateauth' + 0xb1, // LOAD_FAST 1 + 0x13,0x27, // LOAD_ATTR 'update_auth' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x28, // LOAD_METHOD 'write_action_updateauth' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x27, // LOAD_ATTR 'update_auth' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x81,0x81, // JUMP 129 + 0xb6, // LOAD_FAST 6 + 0x10,0x29, // LOAD_CONST_STRING 'deleteauth' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb5, // LOAD_FAST 5 + 0x14,0x2a, // LOAD_METHOD 'confirm_action_deleteauth' + 0xb1, // LOAD_FAST 1 + 0x13,0x2b, // LOAD_ATTR 'delete_auth' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x2c, // LOAD_METHOD 'write_action_deleteauth' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x2b, // LOAD_ATTR 'delete_auth' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xe2,0x80, // JUMP 98 + 0xb6, // LOAD_FAST 6 + 0x10,0x2d, // LOAD_CONST_STRING 'linkauth' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb5, // LOAD_FAST 5 + 0x14,0x2e, // LOAD_METHOD 'confirm_action_linkauth' + 0xb1, // LOAD_FAST 1 + 0x13,0x2f, // LOAD_ATTR 'link_auth' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x30, // LOAD_METHOD 'write_action_linkauth' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x2f, // LOAD_ATTR 'link_auth' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xc3,0x80, // JUMP 67 + 0xb6, // LOAD_FAST 6 + 0x10,0x31, // LOAD_CONST_STRING 'unlinkauth' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0xb5, // LOAD_FAST 5 + 0x14,0x32, // LOAD_METHOD 'confirm_action_unlinkauth' + 0xb1, // LOAD_FAST 1 + 0x13,0x33, // LOAD_ATTR 'unlink_auth' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x34, // LOAD_METHOD 'write_action_unlinkauth' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x33, // LOAD_ATTR 'unlink_auth' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x65, // JUMP 37 + 0xb6, // LOAD_FAST 6 + 0x10,0x35, // LOAD_CONST_STRING 'newaccount' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0xb5, // LOAD_FAST 5 + 0x14,0x36, // LOAD_METHOD 'confirm_action_newaccount' + 0xb1, // LOAD_FAST 1 + 0x13,0x37, // LOAD_ATTR 'new_account' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x38, // LOAD_METHOD 'write_action_newaccount' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x37, // LOAD_ATTR 'new_account' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0x12,0x53, // LOAD_GLOBAL 'ValueError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x69, // JUMP 41 + 0xb6, // LOAD_FAST 6 + 0x10,0x39, // LOAD_CONST_STRING 'transfer' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb5, // LOAD_FAST 5 + 0x14,0x3a, // LOAD_METHOD 'confirm_action_transfer' + 0xb1, // LOAD_FAST 1 + 0x13,0x39, // LOAD_ATTR 'transfer' + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x3b, // LOAD_METHOD 'write_action_transfer' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x39, // LOAD_ATTR 'transfer' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x4a, // JUMP 10 + 0x12,0x3e, // LOAD_GLOBAL '_process_unknown_action' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x3c, // LOAD_METHOD 'write_action_common' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x08, // LOAD_ATTR 'common' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x3d, // LOAD_METHOD 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb8, // LOAD_FAST 8 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_actions___init___process_action = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_eos_actions___init___process_action, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 596, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_eos_actions___init___process_action + 8, + .line_info_top = fun_data_apps_eos_actions___init___process_action + 75, + .opcodes = fun_data_apps_eos_actions___init___process_action + 75, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_actions___init____lt_module_gt_ +// frozen bytecode for file apps/eos/actions/__init__.py, scope apps_eos_actions___init____process_unknown_action +static const byte fun_data_apps_eos_actions___init____process_unknown_action[241] = { + 0x8a,0x50,0x38, // prelude + 0x3e,0x55,0x52, // names: _process_unknown_action, w, action + 0x80,0x57,0x2b,0x30,0x2b,0x4b,0x2b,0x4b,0x24,0x20,0x44,0x27,0x2a,0x47,0x28,0x4a,0x22,0x4f,0x25,0x47,0x27,0x48,0x28,0x25,0x4d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3f, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x40, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x3f, // IMPORT_FROM 'sha256' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x41, // LOAD_CONST_STRING 'EosTxActionAck' + 0x10,0x42, // LOAD_CONST_STRING 'EosTxActionRequest' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x43, // IMPORT_NAME 'trezor.messages' + 0x1c,0x41, // IMPORT_FROM 'EosTxActionAck' + 0xc3, // STORE_FAST 3 + 0x1c,0x42, // IMPORT_FROM 'EosTxActionRequest' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x44, // LOAD_CONST_STRING 'HashWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x45, // IMPORT_NAME 'trezor.utils' + 0x1c,0x44, // IMPORT_FROM 'HashWriter' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x46, // LOAD_CONST_STRING 'call' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x47, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x46, // IMPORT_FROM 'call' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x04, // LOAD_CONST_STRING 'writers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME '' + 0x1c,0x04, // IMPORT_FROM 'writers' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x06, // LOAD_CONST_STRING 'layout' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME '' + 0x1c,0x06, // IMPORT_FROM 'layout' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x48, // LOAD_ATTR 'unknown' + 0xc9, // STORE_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x13,0x49, // LOAD_ATTR 'data_chunk' + 0xca, // STORE_FAST 10 + 0xb5, // LOAD_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcb, // STORE_FAST 11 + 0xb7, // LOAD_FAST 7 + 0x14,0x4a, // LOAD_METHOD 'write_uvarint' + 0xbb, // LOAD_FAST 11 + 0xb9, // LOAD_FAST 9 + 0x13,0x4b, // LOAD_ATTR 'data_size' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0x14,0x4c, // LOAD_METHOD 'extend' + 0xba, // LOAD_FAST 10 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x4d, // LOAD_METHOD 'write_bytes_unchecked' + 0xb0, // LOAD_FAST 0 + 0xba, // LOAD_FAST 10 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x13,0x4b, // LOAD_ATTR 'data_size' + 0x12,0x56, // LOAD_GLOBAL 'len' + 0xba, // LOAD_FAST 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xcc, // STORE_FAST 12 + 0x42,0x7e, // JUMP 62 + 0xb6, // LOAD_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x10,0x4b, // LOAD_CONST_STRING 'data_size' + 0xbc, // LOAD_FAST 12 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc1, // STORE_FAST 1 + 0xb9, // LOAD_FAST 9 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x53, // LOAD_GLOBAL 'ValueError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbb, // LOAD_FAST 11 + 0x14,0x4c, // LOAD_METHOD 'extend' + 0xba, // LOAD_FAST 10 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x4d, // LOAD_METHOD 'write_bytes_unchecked' + 0xb0, // LOAD_FAST 0 + 0xba, // LOAD_FAST 10 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xbc, // LOAD_FAST 12 + 0x12,0x56, // LOAD_GLOBAL 'len' + 0xba, // LOAD_FAST 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0xe6, // BINARY_OP 15 __isub__ + 0xcc, // STORE_FAST 12 + 0xbc, // LOAD_FAST 12 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x53, // LOAD_GLOBAL 'ValueError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbc, // LOAD_FAST 12 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0xbc,0x7f, // POP_JUMP_IF_TRUE -68 + 0xb8, // LOAD_FAST 8 + 0x14,0x4e, // LOAD_METHOD 'confirm_action_unknown' + 0xb1, // LOAD_FAST 1 + 0x13,0x08, // LOAD_ATTR 'common' + 0xbb, // LOAD_FAST 11 + 0x14,0x4f, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_actions___init____process_unknown_action = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_actions___init____process_unknown_action, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 241, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 62, + .line_info = fun_data_apps_eos_actions___init____process_unknown_action + 6, + .line_info_top = fun_data_apps_eos_actions___init____process_unknown_action + 31, + .opcodes = fun_data_apps_eos_actions___init____process_unknown_action + 31, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_actions___init____lt_module_gt_ +// frozen bytecode for file apps/eos/actions/__init__.py, scope apps_eos_actions___init____check_action +static const byte fun_data_apps_eos_actions___init____check_action[227] = { + 0x23,0x30, // prelude + 0x50,0x52,0x09,0x0a, // names: _check_action, action, name, account + 0x80,0x7b,0x27,0x20,0x2f,0x2f,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x6d,0x26,0x47,0x28,0x42, // code info + 0xb2, // LOAD_FAST 2 + 0x10,0x0c, // LOAD_CONST_STRING 'eosio' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xa9,0x81, // POP_JUMP_IF_FALSE 169 + 0xb1, // LOAD_FAST 1 + 0x10,0x0d, // LOAD_CONST_STRING 'buyram' + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'buy_ram' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x45,0x99,0x01, // JUMP_IF_TRUE_OR_POP 153 + 0xb1, // LOAD_FAST 1 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'buy_ram_bytes' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x45,0x8a,0x01, // JUMP_IF_TRUE_OR_POP 138 + 0xb1, // LOAD_FAST 1 + 0x10,0x14, // LOAD_CONST_STRING 'sellram' + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'sell_ram' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x45,0x7c, // JUMP_IF_TRUE_OR_POP 124 + 0xb1, // LOAD_FAST 1 + 0x10,0x18, // LOAD_CONST_STRING 'delegatebw' + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'delegate' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x45,0x6e, // JUMP_IF_TRUE_OR_POP 110 + 0xb1, // LOAD_FAST 1 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'undelegate' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x45,0x60, // JUMP_IF_TRUE_OR_POP 96 + 0xb1, // LOAD_FAST 1 + 0x10,0x1f, // LOAD_CONST_STRING 'refund' + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x1f, // LOAD_ATTR 'refund' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x45,0x52, // JUMP_IF_TRUE_OR_POP 82 + 0xb1, // LOAD_FAST 1 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'vote_producer' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x45,0x44, // JUMP_IF_TRUE_OR_POP 68 + 0xb1, // LOAD_FAST 1 + 0x10,0x25, // LOAD_CONST_STRING 'updateauth' + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'update_auth' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x45,0x36, // JUMP_IF_TRUE_OR_POP 54 + 0xb1, // LOAD_FAST 1 + 0x10,0x29, // LOAD_CONST_STRING 'deleteauth' + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'delete_auth' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x45,0x28, // JUMP_IF_TRUE_OR_POP 40 + 0xb1, // LOAD_FAST 1 + 0x10,0x2d, // LOAD_CONST_STRING 'linkauth' + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'link_auth' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x45,0x1a, // JUMP_IF_TRUE_OR_POP 26 + 0xb1, // LOAD_FAST 1 + 0x10,0x31, // LOAD_CONST_STRING 'unlinkauth' + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x33, // LOAD_ATTR 'unlink_auth' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x45,0x0c, // JUMP_IF_TRUE_OR_POP 12 + 0xb1, // LOAD_FAST 1 + 0x10,0x35, // LOAD_CONST_STRING 'newaccount' + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'new_account' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x10,0x39, // LOAD_CONST_STRING 'transfer' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'transfer' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'unknown' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_actions___init____check_action = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_eos_actions___init____check_action, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 227, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 80, + .line_info = fun_data_apps_eos_actions___init____check_action + 6, + .line_info_top = fun_data_apps_eos_actions___init____check_action + 26, + .opcodes = fun_data_apps_eos_actions___init____check_action + 26, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_eos_actions___init____lt_module_gt_[] = { + &raw_code_apps_eos_actions___init___process_action, + &raw_code_apps_eos_actions___init____process_unknown_action, + &raw_code_apps_eos_actions___init____check_action, +}; + +static const mp_raw_code_t raw_code_apps_eos_actions___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_eos_actions___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = (void *)&children_apps_eos_actions___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_eos_actions___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_eos_actions___init____lt_module_gt_ + 10, + .opcodes = fun_data_apps_eos_actions___init____lt_module_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_eos_actions___init__[87] = { + MP_QSTR_apps_slash_eos_slash_actions_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_process_action, + MP_QSTR_helpers, + MP_QSTR_writers, + MP_QSTR_, + MP_QSTR_layout, + MP_QSTR_eos_name_to_string, + MP_QSTR_common, + MP_QSTR_name, + MP_QSTR_account, + MP_QSTR_is_last, + MP_QSTR_eosio, + MP_QSTR_buyram, + MP_QSTR_confirm_action_buyram, + MP_QSTR_buy_ram, + MP_QSTR_write_action_buyram, + MP_QSTR_confirm_action_buyrambytes, + MP_QSTR_buy_ram_bytes, + MP_QSTR_write_action_buyrambytes, + MP_QSTR_sellram, + MP_QSTR_confirm_action_sellram, + MP_QSTR_sell_ram, + MP_QSTR_write_action_sellram, + MP_QSTR_delegatebw, + MP_QSTR_confirm_action_delegate, + MP_QSTR_delegate, + MP_QSTR_write_action_delegate, + MP_QSTR_confirm_action_undelegate, + MP_QSTR_undelegate, + MP_QSTR_write_action_undelegate, + MP_QSTR_refund, + MP_QSTR_confirm_action_refund, + MP_QSTR_write_action_refund, + MP_QSTR_confirm_action_voteproducer, + MP_QSTR_vote_producer, + MP_QSTR_write_action_voteproducer, + MP_QSTR_updateauth, + MP_QSTR_confirm_action_updateauth, + MP_QSTR_update_auth, + MP_QSTR_write_action_updateauth, + MP_QSTR_deleteauth, + MP_QSTR_confirm_action_deleteauth, + MP_QSTR_delete_auth, + MP_QSTR_write_action_deleteauth, + MP_QSTR_linkauth, + MP_QSTR_confirm_action_linkauth, + MP_QSTR_link_auth, + MP_QSTR_write_action_linkauth, + MP_QSTR_unlinkauth, + MP_QSTR_confirm_action_unlinkauth, + MP_QSTR_unlink_auth, + MP_QSTR_write_action_unlinkauth, + MP_QSTR_newaccount, + MP_QSTR_confirm_action_newaccount, + MP_QSTR_new_account, + MP_QSTR_write_action_newaccount, + MP_QSTR_transfer, + MP_QSTR_confirm_action_transfer, + MP_QSTR_write_action_transfer, + MP_QSTR_write_action_common, + MP_QSTR_write_bytes_prefixed, + MP_QSTR__process_unknown_action, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_EosTxActionAck, + MP_QSTR_EosTxActionRequest, + MP_QSTR_trezor_dot_messages, + MP_QSTR_HashWriter, + MP_QSTR_trezor_dot_utils, + MP_QSTR_call, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_unknown, + MP_QSTR_data_chunk, + MP_QSTR_write_uvarint, + MP_QSTR_data_size, + MP_QSTR_extend, + MP_QSTR_write_bytes_unchecked, + MP_QSTR_confirm_action_unknown, + MP_QSTR_get_digest, + MP_QSTR__check_action, + MP_QSTR_sha, + MP_QSTR_action, + MP_QSTR_ValueError, + MP_QSTR_bytearray, + MP_QSTR_w, + MP_QSTR_len, +}; + +// constants +static const mp_obj_str_t const_obj_apps_eos_actions___init___4 = {{&mp_type_str}, 15036, 34, (const byte*)"\x55\x6e\x72\x65\x63\x6f\x67\x6e\x69\x7a\x65\x64\x20\x61\x63\x74\x69\x6f\x6e\x20\x74\x79\x70\x65\x20\x66\x6f\x72\x20\x65\x6f\x73\x69\x6f"}; +static const mp_obj_str_t const_obj_apps_eos_actions___init___5 = {{&mp_type_str}, 7520, 38, (const byte*)"\x42\x61\x64\x20\x72\x65\x73\x70\x6f\x6e\x73\x65\x2e\x20\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x73\x74\x72\x75\x63\x74\x20\x65\x78\x70\x65\x63\x74\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_eos_actions___init___6 = {{&mp_type_str}, 37309, 30, (const byte*)"\x42\x61\x64\x20\x72\x65\x73\x70\x6f\x6e\x73\x65\x2e\x20\x42\x75\x66\x66\x65\x72\x20\x6f\x76\x65\x72\x66\x6c\x6f\x77\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_eos_actions___init__[7] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_action), + MP_ROM_QSTR(MP_QSTR_buyrambytes), + MP_ROM_QSTR(MP_QSTR_undelegatebw), + MP_ROM_QSTR(MP_QSTR_voteproducer), + MP_ROM_PTR(&const_obj_apps_eos_actions___init___4), + MP_ROM_PTR(&const_obj_apps_eos_actions___init___5), + MP_ROM_PTR(&const_obj_apps_eos_actions___init___6), +}; + +static const mp_frozen_module_t frozen_module_apps_eos_actions___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_eos_actions___init__, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_eos_actions___init__, + }, + .rc = &raw_code_apps_eos_actions___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_eos_actions_layout +// - original source file: build/firmware/src/apps/eos/actions/layout.mpy +// - frozen file name: apps/eos/actions/layout.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/eos/actions/layout.py, scope apps_eos_actions_layout__lt_module_gt_ +static const byte fun_data_apps_eos_actions_layout__lt_module_gt_[152] = { + 0x10,0x4e, // prelude + 0x01, // names: + 0x40,0x2c,0x4c,0x52,0x80,0x18,0x63,0x40,0x84,0x0e,0x84,0x0c,0x84,0x0c,0x84,0x15,0x84,0x0b,0x84,0x0d,0x84,0x08,0x84,0x22,0x84,0x10,0x84,0x0e,0x84,0x0b,0x84,0x0d,0x84,0x0c,0x84,0x0e,0x84,0x0e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x02, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x02, // STORE_NAME 'ButtonRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'confirm_properties' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x04, // IMPORT_FROM 'confirm_properties' + 0x16,0x04, // STORE_NAME 'confirm_properties' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x06, // LOAD_CONST_STRING 'eos_asset_to_string' + 0x10,0x07, // LOAD_CONST_STRING 'eos_name_to_string' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x08, // IMPORT_NAME 'helpers' + 0x1c,0x06, // IMPORT_FROM 'eos_asset_to_string' + 0x16,0x06, // STORE_NAME 'eos_asset_to_string' + 0x1c,0x07, // IMPORT_FROM 'eos_name_to_string' + 0x16,0x07, // STORE_NAME 'eos_name_to_string' + 0x59, // POP_TOP + 0x50, // LOAD_CONST_FALSE + 0x16,0x67, // STORE_NAME 'is_last' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x09, // STORE_NAME '_confirm_properties' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0d, // STORE_NAME 'confirm_action_buyram' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x15, // STORE_NAME 'confirm_action_buyrambytes' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x18, // STORE_NAME 'confirm_action_delegate' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x22, // STORE_NAME 'confirm_action_sellram' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x25, // STORE_NAME 'confirm_action_undelegate' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x27, // STORE_NAME 'confirm_action_refund' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x2b, // STORE_NAME 'confirm_action_voteproducer' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x31, // STORE_NAME 'confirm_action_transfer' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x38, // STORE_NAME 'confirm_action_updateauth' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x3f, // STORE_NAME 'confirm_action_deleteauth' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x40, // STORE_NAME 'confirm_action_linkauth' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x47, // STORE_NAME 'confirm_action_unlinkauth' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x48, // STORE_NAME 'confirm_action_newaccount' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x16,0x4e, // STORE_NAME 'confirm_action_unknown' + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x16,0x50, // STORE_NAME 'authorization_fields' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_eos_actions_layout__lt_module_gt_ +// frozen bytecode for file apps/eos/actions/layout.py, scope apps_eos_actions_layout__confirm_properties +static const byte fun_data_apps_eos_actions_layout__confirm_properties[35] = { + 0xd3,0x40,0x10, // prelude + 0x09,0x68,0x69,0x6a, // names: _confirm_properties, br_type, title, props + 0x80,0x29,0x6b,0x40, // code info + 0x12,0x04, // LOAD_GLOBAL 'confirm_properties' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x10,0x0a, // LOAD_CONST_STRING 'hold' + 0x12,0x67, // LOAD_GLOBAL 'is_last' + 0x10,0x0b, // LOAD_CONST_STRING 'br_code' + 0x12,0x02, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x0c, // LOAD_ATTR 'ConfirmOutput' + 0x34,0x84,0x03, // CALL_FUNCTION 515 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_actions_layout__confirm_properties = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_eos_actions_layout__confirm_properties, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_eos_actions_layout__confirm_properties + 7, + .line_info_top = fun_data_apps_eos_actions_layout__confirm_properties + 11, + .opcodes = fun_data_apps_eos_actions_layout__confirm_properties + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_actions_layout__lt_module_gt_ +// frozen bytecode for file apps/eos/actions/layout.py, scope apps_eos_actions_layout_confirm_action_buyram +static const byte fun_data_apps_eos_actions_layout_confirm_action_buyram[61] = { + 0xc1,0x40,0x12, // prelude + 0x0d,0x6b, // names: confirm_action_buyram, msg + 0x80,0x33,0x22,0x44,0x20,0x2b,0x2b, // code info + 0x12,0x09, // LOAD_GLOBAL '_confirm_properties' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x10,0x0e, // LOAD_CONST_STRING 'Buy RAM' + 0x10,0x0f, // LOAD_CONST_STRING 'Payer:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'payer' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x11, // LOAD_CONST_STRING 'Receiver:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'receiver' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x13, // LOAD_CONST_STRING 'Amount:' + 0x12,0x06, // LOAD_GLOBAL 'eos_asset_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'quantity' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_actions_layout_confirm_action_buyram = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_eos_actions_layout_confirm_action_buyram, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 61, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_eos_actions_layout_confirm_action_buyram + 5, + .line_info_top = fun_data_apps_eos_actions_layout_confirm_action_buyram + 12, + .opcodes = fun_data_apps_eos_actions_layout_confirm_action_buyram + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_actions_layout__lt_module_gt_ +// frozen bytecode for file apps/eos/actions/layout.py, scope apps_eos_actions_layout_confirm_action_buyrambytes +static const byte fun_data_apps_eos_actions_layout_confirm_action_buyrambytes[61] = { + 0xc1,0x40,0x12, // prelude + 0x15,0x6b, // names: confirm_action_buyrambytes, msg + 0x80,0x3f,0x22,0x44,0x20,0x2b,0x2b, // code info + 0x12,0x09, // LOAD_GLOBAL '_confirm_properties' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x10,0x0e, // LOAD_CONST_STRING 'Buy RAM' + 0x10,0x0f, // LOAD_CONST_STRING 'Payer:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'payer' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x11, // LOAD_CONST_STRING 'Receiver:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'receiver' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x16, // LOAD_CONST_STRING 'Bytes:' + 0x12,0x6c, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'bytes' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_actions_layout_confirm_action_buyrambytes = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_eos_actions_layout_confirm_action_buyrambytes, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 61, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_eos_actions_layout_confirm_action_buyrambytes + 5, + .line_info_top = fun_data_apps_eos_actions_layout_confirm_action_buyrambytes + 12, + .opcodes = fun_data_apps_eos_actions_layout_confirm_action_buyrambytes + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_actions_layout__lt_module_gt_ +// frozen bytecode for file apps/eos/actions/layout.py, scope apps_eos_actions_layout_confirm_action_delegate +static const byte fun_data_apps_eos_actions_layout_confirm_action_delegate[118] = { + 0xc1,0x40,0x1e, // prelude + 0x18,0x6b, // names: confirm_action_delegate, msg + 0x80,0x4b,0x20,0x2b,0x2b,0x2b,0x4e,0x24,0x25,0x26,0x51,0x46,0x22, // code info + 0x10,0x19, // LOAD_CONST_STRING 'Sender:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'sender' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x11, // LOAD_CONST_STRING 'Receiver:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'receiver' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x1b, // LOAD_CONST_STRING 'CPU:' + 0x12,0x06, // LOAD_GLOBAL 'eos_asset_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'cpu_quantity' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x1d, // LOAD_CONST_STRING 'NET:' + 0x12,0x06, // LOAD_GLOBAL 'eos_asset_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x1e, // LOAD_ATTR 'net_quantity' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x04, // BUILD_LIST 4 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x1f, // LOAD_ATTR 'append' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'transfer' + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0xb2, // LOAD_FAST 2 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x10,0x11, // LOAD_CONST_STRING 'Receiver:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'receiver' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x46, // JUMP 6 + 0xb2, // LOAD_FAST 2 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL '_confirm_properties' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x10,0x21, // LOAD_CONST_STRING 'Delegate' + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_actions_layout_confirm_action_delegate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_eos_actions_layout_confirm_action_delegate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 118, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 24, + .line_info = fun_data_apps_eos_actions_layout_confirm_action_delegate + 5, + .line_info_top = fun_data_apps_eos_actions_layout_confirm_action_delegate + 18, + .opcodes = fun_data_apps_eos_actions_layout_confirm_action_delegate + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_actions_layout__lt_module_gt_ +// frozen bytecode for file apps/eos/actions/layout.py, scope apps_eos_actions_layout_confirm_action_sellram +static const byte fun_data_apps_eos_actions_layout_confirm_action_sellram[49] = { + 0xb9,0x40,0x10, // prelude + 0x22,0x6b, // names: confirm_action_sellram, msg + 0x80,0x60,0x22,0x44,0x20,0x2b, // code info + 0x12,0x09, // LOAD_GLOBAL '_confirm_properties' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x10,0x23, // LOAD_CONST_STRING 'Sell RAM' + 0x10,0x11, // LOAD_CONST_STRING 'Receiver:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'account' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x16, // LOAD_CONST_STRING 'Bytes:' + 0x12,0x6c, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'bytes' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_actions_layout_confirm_action_sellram = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_eos_actions_layout_confirm_action_sellram, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_apps_eos_actions_layout_confirm_action_sellram + 5, + .line_info_top = fun_data_apps_eos_actions_layout_confirm_action_sellram + 11, + .opcodes = fun_data_apps_eos_actions_layout_confirm_action_sellram + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_actions_layout__lt_module_gt_ +// frozen bytecode for file apps/eos/actions/layout.py, scope apps_eos_actions_layout_confirm_action_undelegate +static const byte fun_data_apps_eos_actions_layout_confirm_action_undelegate[73] = { + 0xc9,0x40,0x14, // prelude + 0x25,0x6b, // names: confirm_action_undelegate, msg + 0x80,0x6b,0x22,0x44,0x20,0x2b,0x2b,0x2b, // code info + 0x12,0x09, // LOAD_GLOBAL '_confirm_properties' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x10,0x26, // LOAD_CONST_STRING 'Undelegate' + 0x10,0x19, // LOAD_CONST_STRING 'Sender:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'sender' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x11, // LOAD_CONST_STRING 'Receiver:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'receiver' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x1b, // LOAD_CONST_STRING 'CPU:' + 0x12,0x06, // LOAD_GLOBAL 'eos_asset_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'cpu_quantity' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x1d, // LOAD_CONST_STRING 'NET:' + 0x12,0x06, // LOAD_GLOBAL 'eos_asset_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x1e, // LOAD_ATTR 'net_quantity' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x04, // BUILD_TUPLE 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_actions_layout_confirm_action_undelegate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_eos_actions_layout_confirm_action_undelegate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 73, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_eos_actions_layout_confirm_action_undelegate + 5, + .line_info_top = fun_data_apps_eos_actions_layout_confirm_action_undelegate + 13, + .opcodes = fun_data_apps_eos_actions_layout_confirm_action_undelegate + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_actions_layout__lt_module_gt_ +// frozen bytecode for file apps/eos/actions/layout.py, scope apps_eos_actions_layout_confirm_action_refund +static const byte fun_data_apps_eos_actions_layout_confirm_action_refund[36] = { + 0xb1,0x40,0x0c, // prelude + 0x27,0x6b, // names: confirm_action_refund, msg + 0x80,0x78,0x22,0x44, // code info + 0x12,0x09, // LOAD_GLOBAL '_confirm_properties' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x10,0x28, // LOAD_CONST_STRING 'Refund' + 0x10,0x29, // LOAD_CONST_STRING 'Owner:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'owner' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_actions_layout_confirm_action_refund = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_eos_actions_layout_confirm_action_refund, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_eos_actions_layout_confirm_action_refund + 5, + .line_info_top = fun_data_apps_eos_actions_layout_confirm_action_refund + 9, + .opcodes = fun_data_apps_eos_actions_layout_confirm_action_refund + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_actions_layout__lt_module_gt_ +// frozen bytecode for file apps/eos/actions/layout.py, scope apps_eos_actions_layout_confirm_action_voteproducer +static const byte fun_data_apps_eos_actions_layout_confirm_action_voteproducer[130] = { + 0xc1,0x40,0x2c, // prelude + 0x2b,0x6b, // names: confirm_action_voteproducer, msg + 0x80,0x80,0x44,0x48,0x22,0x22,0x22,0x20,0x2b,0x78,0x60,0x22,0x22,0x22,0x42,0x71,0x60,0x22,0x22,0x22, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x2c, // LOAD_ATTR 'producers' + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR 'proxy' + 0x44,0x69, // POP_JUMP_IF_FALSE 41 + 0xb1, // LOAD_FAST 1 + 0x43,0x66, // POP_JUMP_IF_TRUE 38 + 0x12,0x09, // LOAD_GLOBAL '_confirm_properties' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x10,0x2e, // LOAD_CONST_STRING 'Voter:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'voter' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x30, // LOAD_CONST_STRING 'Proxy:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR 'proxy' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x75, // JUMP 53 + 0xb1, // LOAD_FAST 1 + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0x12,0x09, // LOAD_GLOBAL '_confirm_properties' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x12,0x6d, // LOAD_GLOBAL 'enumerate' + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x59, // JUMP 25 + 0x12,0x09, // LOAD_GLOBAL '_confirm_properties' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x10,0x2e, // LOAD_CONST_STRING 'Voter:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'voter' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_eos_actions_layout_confirm_action_voteproducer +// frozen bytecode for file apps/eos/actions/layout.py, scope apps_eos_actions_layout_confirm_action_voteproducer__lt_genexpr_gt_ +static const byte fun_data_apps_eos_actions_layout_confirm_action_voteproducer__lt_genexpr_gt_[38] = { + 0xd9,0x40,0x08, // prelude + 0x64,0x70, // names: , * + 0x80,0x93, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x17, // FOR_ITER 23 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc1, // STORE_FAST 1 + 0xc2, // STORE_FAST 2 + 0x10,0x65, // LOAD_CONST_STRING '{:2d}. {}' + 0x14,0x66, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x02, // CALL_METHOD 2 + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x27, // JUMP -25 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_actions_layout_confirm_action_voteproducer__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_eos_actions_layout_confirm_action_voteproducer__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 100, + .line_info = fun_data_apps_eos_actions_layout_confirm_action_voteproducer__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_apps_eos_actions_layout_confirm_action_voteproducer__lt_genexpr_gt_ + 7, + .opcodes = fun_data_apps_eos_actions_layout_confirm_action_voteproducer__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_eos_actions_layout_confirm_action_voteproducer[] = { + &raw_code_apps_eos_actions_layout_confirm_action_voteproducer__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_eos_actions_layout_confirm_action_voteproducer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_eos_actions_layout_confirm_action_voteproducer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 130, + #endif + .children = (void *)&children_apps_eos_actions_layout_confirm_action_voteproducer, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_apps_eos_actions_layout_confirm_action_voteproducer + 5, + .line_info_top = fun_data_apps_eos_actions_layout_confirm_action_voteproducer + 25, + .opcodes = fun_data_apps_eos_actions_layout_confirm_action_voteproducer + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_actions_layout__lt_module_gt_ +// frozen bytecode for file apps/eos/actions/layout.py, scope apps_eos_actions_layout_confirm_action_transfer +static const byte fun_data_apps_eos_actions_layout_confirm_action_transfer[100] = { + 0xc2,0x40,0x1a, // prelude + 0x31,0x6b,0x24, // names: confirm_action_transfer, msg, account + 0x80,0xa2,0x20,0x2b,0x2b,0x2b,0x48,0x28,0x34,0x22, // code info + 0x10,0x32, // LOAD_CONST_STRING 'From:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'sender' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x33, // LOAD_CONST_STRING 'To:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'receiver' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x13, // LOAD_CONST_STRING 'Amount:' + 0x12,0x06, // LOAD_GLOBAL 'eos_asset_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'quantity' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x34, // LOAD_CONST_STRING 'Contract:' + 0xb1, // LOAD_FAST 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x04, // BUILD_LIST 4 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'memo' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0xb2, // LOAD_FAST 2 + 0x14,0x1f, // LOAD_METHOD 'append' + 0x10,0x36, // LOAD_CONST_STRING 'Memo' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'memo' + 0x51, // LOAD_CONST_NONE + 0x22,0x84,0x00, // LOAD_CONST_SMALL_INT 512 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL '_confirm_properties' + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x10,0x37, // LOAD_CONST_STRING 'Transfer' + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_actions_layout_confirm_action_transfer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_actions_layout_confirm_action_transfer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 100, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 49, + .line_info = fun_data_apps_eos_actions_layout_confirm_action_transfer + 6, + .line_info_top = fun_data_apps_eos_actions_layout_confirm_action_transfer + 16, + .opcodes = fun_data_apps_eos_actions_layout_confirm_action_transfer + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_actions_layout__lt_module_gt_ +// frozen bytecode for file apps/eos/actions/layout.py, scope apps_eos_actions_layout_confirm_action_updateauth +static const byte fun_data_apps_eos_actions_layout_confirm_action_updateauth[78] = { + 0xb1,0x40,0x16, // prelude + 0x38,0x6b, // names: confirm_action_updateauth, msg + 0x80,0xb2,0x20,0x2b,0x2b,0x4e,0x2d,0x22,0x22, // code info + 0x10,0x39, // LOAD_CONST_STRING 'Account:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'account' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x3a, // LOAD_ATTR 'permission' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x3b, // LOAD_CONST_STRING 'Parent:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x3c, // LOAD_ATTR 'parent' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x03, // BUILD_LIST 3 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x3d, // LOAD_METHOD 'extend' + 0x12,0x50, // LOAD_GLOBAL 'authorization_fields' + 0xb0, // LOAD_FAST 0 + 0x13,0x3e, // LOAD_ATTR 'auth' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL '_confirm_properties' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_actions_layout_confirm_action_updateauth = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_eos_actions_layout_confirm_action_updateauth, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 78, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 56, + .line_info = fun_data_apps_eos_actions_layout_confirm_action_updateauth + 5, + .line_info_top = fun_data_apps_eos_actions_layout_confirm_action_updateauth + 14, + .opcodes = fun_data_apps_eos_actions_layout_confirm_action_updateauth + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_actions_layout__lt_module_gt_ +// frozen bytecode for file apps/eos/actions/layout.py, scope apps_eos_actions_layout_confirm_action_deleteauth +static const byte fun_data_apps_eos_actions_layout_confirm_action_deleteauth[50] = { + 0xb9,0x40,0x12, // prelude + 0x3f,0x6b, // names: confirm_action_deleteauth, msg + 0x80,0xc0,0x22,0x22,0x22,0x20,0x2b, // code info + 0x12,0x09, // LOAD_GLOBAL '_confirm_properties' + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x10,0x39, // LOAD_CONST_STRING 'Account:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'account' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x3a, // LOAD_ATTR 'permission' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_actions_layout_confirm_action_deleteauth = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_eos_actions_layout_confirm_action_deleteauth, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 63, + .line_info = fun_data_apps_eos_actions_layout_confirm_action_deleteauth + 5, + .line_info_top = fun_data_apps_eos_actions_layout_confirm_action_deleteauth + 12, + .opcodes = fun_data_apps_eos_actions_layout_confirm_action_deleteauth + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_actions_layout__lt_module_gt_ +// frozen bytecode for file apps/eos/actions/layout.py, scope apps_eos_actions_layout_confirm_action_linkauth +static const byte fun_data_apps_eos_actions_layout_confirm_action_linkauth[73] = { + 0xc9,0x40,0x14, // prelude + 0x40,0x6b, // names: confirm_action_linkauth, msg + 0x80,0xcb,0x22,0x44,0x20,0x2b,0x2b,0x2b, // code info + 0x12,0x09, // LOAD_GLOBAL '_confirm_properties' + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x10,0x41, // LOAD_CONST_STRING 'Link Auth' + 0x10,0x39, // LOAD_CONST_STRING 'Account:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'account' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x42, // LOAD_CONST_STRING 'Code:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x43, // LOAD_ATTR 'code' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x44, // LOAD_CONST_STRING 'Type:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x45, // LOAD_ATTR 'type' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x46, // LOAD_ATTR 'requirement' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x04, // BUILD_TUPLE 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_actions_layout_confirm_action_linkauth = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_eos_actions_layout_confirm_action_linkauth, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 73, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_apps_eos_actions_layout_confirm_action_linkauth + 5, + .line_info_top = fun_data_apps_eos_actions_layout_confirm_action_linkauth + 13, + .opcodes = fun_data_apps_eos_actions_layout_confirm_action_linkauth + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_actions_layout__lt_module_gt_ +// frozen bytecode for file apps/eos/actions/layout.py, scope apps_eos_actions_layout_confirm_action_unlinkauth +static const byte fun_data_apps_eos_actions_layout_confirm_action_unlinkauth[62] = { + 0xc1,0x40,0x14, // prelude + 0x47,0x6b, // names: confirm_action_unlinkauth, msg + 0x80,0xd8,0x22,0x22,0x22,0x20,0x2b,0x2b, // code info + 0x12,0x09, // LOAD_GLOBAL '_confirm_properties' + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0x10,0x39, // LOAD_CONST_STRING 'Account:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'account' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x42, // LOAD_CONST_STRING 'Code:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x43, // LOAD_ATTR 'code' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x44, // LOAD_CONST_STRING 'Type:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x45, // LOAD_ATTR 'type' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_actions_layout_confirm_action_unlinkauth = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_eos_actions_layout_confirm_action_unlinkauth, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 62, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 71, + .line_info = fun_data_apps_eos_actions_layout_confirm_action_unlinkauth + 5, + .line_info_top = fun_data_apps_eos_actions_layout_confirm_action_unlinkauth + 13, + .opcodes = fun_data_apps_eos_actions_layout_confirm_action_unlinkauth + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_actions_layout__lt_module_gt_ +// frozen bytecode for file apps/eos/actions/layout.py, scope apps_eos_actions_layout_confirm_action_newaccount +static const byte fun_data_apps_eos_actions_layout_confirm_action_newaccount[80] = { + 0xa9,0x40,0x16, // prelude + 0x48,0x6b, // names: confirm_action_newaccount, msg + 0x80,0xe4,0x20,0x2b,0x4e,0x2d,0x2d,0x22,0x22, // code info + 0x10,0x49, // LOAD_CONST_STRING 'Creator:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x4a, // LOAD_ATTR 'creator' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x4b, // LOAD_CONST_STRING 'Name:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x4c, // LOAD_ATTR 'name' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x02, // BUILD_LIST 2 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x3d, // LOAD_METHOD 'extend' + 0x12,0x50, // LOAD_GLOBAL 'authorization_fields' + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'owner' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x3d, // LOAD_METHOD 'extend' + 0x12,0x50, // LOAD_GLOBAL 'authorization_fields' + 0xb0, // LOAD_FAST 0 + 0x13,0x4d, // LOAD_ATTR 'active' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL '_confirm_properties' + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0x23,0x17, // LOAD_CONST_OBJ 23 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_actions_layout_confirm_action_newaccount = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_eos_actions_layout_confirm_action_newaccount, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 80, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 72, + .line_info = fun_data_apps_eos_actions_layout_confirm_action_newaccount + 5, + .line_info_top = fun_data_apps_eos_actions_layout_confirm_action_newaccount + 14, + .opcodes = fun_data_apps_eos_actions_layout_confirm_action_newaccount + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_actions_layout__lt_module_gt_ +// frozen bytecode for file apps/eos/actions/layout.py, scope apps_eos_actions_layout_confirm_action_unknown +static const byte fun_data_apps_eos_actions_layout_confirm_action_unknown[69] = { + 0xca,0x40,0x18, // prelude + 0x4e,0x6e,0x6f, // names: confirm_action_unknown, action, checksum + 0x80,0xf2,0x22,0x22,0x22,0x20,0x2b,0x2b,0x6d, // code info + 0x12,0x04, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x18, // LOAD_CONST_OBJ 24 + 0x23,0x19, // LOAD_CONST_OBJ 25 + 0x10,0x34, // LOAD_CONST_STRING 'Contract:' + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'account' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x1a, // LOAD_CONST_OBJ 26 + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xb0, // LOAD_FAST 0 + 0x13,0x4c, // LOAD_ATTR 'name' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x4f, // LOAD_CONST_STRING 'Checksum:' + 0xb1, // LOAD_FAST 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x10,0x0a, // LOAD_CONST_STRING 'hold' + 0x12,0x67, // LOAD_GLOBAL 'is_last' + 0x10,0x0b, // LOAD_CONST_STRING 'br_code' + 0x12,0x02, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x0c, // LOAD_ATTR 'ConfirmOutput' + 0x34,0x84,0x03, // CALL_FUNCTION 515 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_actions_layout_confirm_action_unknown = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_eos_actions_layout_confirm_action_unknown, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 69, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 78, + .line_info = fun_data_apps_eos_actions_layout_confirm_action_unknown + 6, + .line_info_top = fun_data_apps_eos_actions_layout_confirm_action_unknown + 15, + .opcodes = fun_data_apps_eos_actions_layout_confirm_action_unknown + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_eos_actions_layout__lt_module_gt_ +// frozen bytecode for file apps/eos/actions/layout.py, scope apps_eos_actions_layout_authorization_fields +static const byte fun_data_apps_eos_actions_layout_authorization_fields[344] = { + 0xc9,0x10,0x48, // prelude + 0x50,0x3e, // names: authorization_fields, auth + 0x90,0x00,0x4b,0x4b,0x23,0x44,0x6f,0x20,0x2f,0x27,0x46,0x2b,0x48,0x2c,0x4c,0x28,0x4b,0x2f,0x2a,0x4a,0x26,0x28,0x28,0x48,0x28,0x28,0x51,0x30,0x2a,0x49,0x29,0x25,0x2c,0x4a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x51, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x52, // IMPORT_NAME 'trezor.wire' + 0x1c,0x51, // IMPORT_FROM 'DataError' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x53, // LOAD_CONST_STRING 'public_key_to_wif' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'helpers' + 0x1c,0x53, // IMPORT_FROM 'public_key_to_wif' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x2b,0x00, // BUILD_LIST 0 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x13,0x1f, // LOAD_ATTR 'append' + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x10,0x54, // LOAD_CONST_STRING 'Threshold:' + 0x12,0x6c, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x55, // LOAD_ATTR 'threshold' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x6d, // LOAD_GLOBAL 'enumerate' + 0xb0, // LOAD_FAST 0 + 0x13,0x56, // LOAD_ATTR 'keys' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5f, // GET_ITER_STACK + 0x4b,0x4f, // FOR_ITER 79 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc5, // STORE_FAST 5 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x13,0x57, // LOAD_ATTR 'key' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb1, // LOAD_FAST 1 + 0x23,0x1b, // LOAD_CONST_OBJ 27 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x12,0x17, // LOAD_GLOBAL 'bytes' + 0xb6, // LOAD_FAST 6 + 0x13,0x57, // LOAD_ATTR 'key' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0x12,0x6c, // LOAD_GLOBAL 'str' + 0xb6, // LOAD_FAST 6 + 0x13,0x58, // LOAD_ATTR 'weight' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0x10,0x59, // LOAD_CONST_STRING 'Key #' + 0x12,0x6c, // LOAD_GLOBAL 'str' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x5a, // LOAD_CONST_STRING ':' + 0xf2, // BINARY_OP 27 __add__ + 0xc9, // STORE_FAST 9 + 0x10,0x59, // LOAD_CONST_STRING 'Key #' + 0x12,0x6c, // LOAD_GLOBAL 'str' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x5b, // LOAD_CONST_STRING ' Weight:' + 0xf2, // BINARY_OP 27 __add__ + 0xca, // STORE_FAST 10 + 0xb4, // LOAD_FAST 4 + 0xb9, // LOAD_FAST 9 + 0xb7, // LOAD_FAST 7 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xba, // LOAD_FAST 10 + 0xb8, // LOAD_FAST 8 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0xaf,0x7f, // JUMP -81 + 0x12,0x6d, // LOAD_GLOBAL 'enumerate' + 0xb0, // LOAD_FAST 0 + 0x13,0x5c, // LOAD_ATTR 'accounts' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5f, // GET_ITER_STACK + 0x4b,0x57, // FOR_ITER 87 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc5, // STORE_FAST 5 + 0xcb, // STORE_FAST 11 + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xbb, // LOAD_FAST 11 + 0x13,0x24, // LOAD_ATTR 'account' + 0x13,0x5d, // LOAD_ATTR 'actor' + 0x34,0x01, // CALL_FUNCTION 1 + 0xcc, // STORE_FAST 12 + 0x12,0x07, // LOAD_GLOBAL 'eos_name_to_string' + 0xbb, // LOAD_FAST 11 + 0x13,0x24, // LOAD_ATTR 'account' + 0x13,0x3a, // LOAD_ATTR 'permission' + 0x34,0x01, // CALL_FUNCTION 1 + 0xcd, // STORE_FAST 13 + 0x12,0x6c, // LOAD_GLOBAL 'str' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0x10,0x5e, // LOAD_CONST_STRING 'Account #' + 0xb5, // LOAD_FAST 5 + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x5a, // LOAD_CONST_STRING ':' + 0xf2, // BINARY_OP 27 __add__ + 0xce, // STORE_FAST 14 + 0x23,0x1c, // LOAD_CONST_OBJ 28 + 0xb5, // LOAD_FAST 5 + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x5a, // LOAD_CONST_STRING ':' + 0xf2, // BINARY_OP 27 __add__ + 0xcf, // STORE_FAST 15 + 0x10,0x5e, // LOAD_CONST_STRING 'Account #' + 0xb5, // LOAD_FAST 5 + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x5f, // LOAD_CONST_STRING ' weight:' + 0xf2, // BINARY_OP 27 __add__ + 0xca, // STORE_FAST 10 + 0xb4, // LOAD_FAST 4 + 0xbe, // LOAD_FAST 14 + 0xbc, // LOAD_FAST 12 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xbf, // LOAD_FAST 15 + 0xbd, // LOAD_FAST 13 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xba, // LOAD_FAST 10 + 0x12,0x6c, // LOAD_GLOBAL 'str' + 0xbb, // LOAD_FAST 11 + 0x13,0x58, // LOAD_ATTR 'weight' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0xa7,0x7f, // JUMP -89 + 0x12,0x6d, // LOAD_GLOBAL 'enumerate' + 0xb0, // LOAD_FAST 0 + 0x13,0x60, // LOAD_ATTR 'waits' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5f, // GET_ITER_STACK + 0x4b,0x3c, // FOR_ITER 60 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc5, // STORE_FAST 5 + 0x26,0x10, // STORE_FAST_N 16 + 0x12,0x6c, // LOAD_GLOBAL 'str' + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x61, // LOAD_ATTR 'wait_sec' + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x11, // STORE_FAST_N 17 + 0x12,0x6c, // LOAD_GLOBAL 'str' + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x58, // LOAD_ATTR 'weight' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0x10,0x62, // LOAD_CONST_STRING 'Delay #' + 0x12,0x6c, // LOAD_GLOBAL 'str' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc9, // STORE_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x10,0x5f, // LOAD_CONST_STRING ' weight:' + 0xf2, // BINARY_OP 27 __add__ + 0xca, // STORE_FAST 10 + 0xb4, // LOAD_FAST 4 + 0xb9, // LOAD_FAST 9 + 0x24,0x11, // LOAD_FAST_N 17 + 0x10,0x63, // LOAD_CONST_STRING ' sec' + 0xf2, // BINARY_OP 27 __add__ + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xba, // LOAD_FAST 10 + 0xb8, // LOAD_FAST 8 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x02, // JUMP -62 + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_eos_actions_layout_authorization_fields = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_eos_actions_layout_authorization_fields, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 344, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 26, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 80, + .line_info = fun_data_apps_eos_actions_layout_authorization_fields + 5, + .line_info_top = fun_data_apps_eos_actions_layout_authorization_fields + 39, + .opcodes = fun_data_apps_eos_actions_layout_authorization_fields + 39, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_eos_actions_layout__lt_module_gt_[] = { + &raw_code_apps_eos_actions_layout__confirm_properties, + &raw_code_apps_eos_actions_layout_confirm_action_buyram, + &raw_code_apps_eos_actions_layout_confirm_action_buyrambytes, + &raw_code_apps_eos_actions_layout_confirm_action_delegate, + &raw_code_apps_eos_actions_layout_confirm_action_sellram, + &raw_code_apps_eos_actions_layout_confirm_action_undelegate, + &raw_code_apps_eos_actions_layout_confirm_action_refund, + &raw_code_apps_eos_actions_layout_confirm_action_voteproducer, + &raw_code_apps_eos_actions_layout_confirm_action_transfer, + &raw_code_apps_eos_actions_layout_confirm_action_updateauth, + &raw_code_apps_eos_actions_layout_confirm_action_deleteauth, + &raw_code_apps_eos_actions_layout_confirm_action_linkauth, + &raw_code_apps_eos_actions_layout_confirm_action_unlinkauth, + &raw_code_apps_eos_actions_layout_confirm_action_newaccount, + &raw_code_apps_eos_actions_layout_confirm_action_unknown, + &raw_code_apps_eos_actions_layout_authorization_fields, +}; + +static const mp_raw_code_t raw_code_apps_eos_actions_layout__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_eos_actions_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 152, + #endif + .children = (void *)&children_apps_eos_actions_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 16, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_eos_actions_layout__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_eos_actions_layout__lt_module_gt_ + 41, + .opcodes = fun_data_apps_eos_actions_layout__lt_module_gt_ + 41, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_eos_actions_layout[113] = { + MP_QSTR_apps_slash_eos_slash_actions_slash_layout_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_confirm_properties, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_eos_asset_to_string, + MP_QSTR_eos_name_to_string, + MP_QSTR_helpers, + MP_QSTR__confirm_properties, + MP_QSTR_hold, + MP_QSTR_br_code, + MP_QSTR_ConfirmOutput, + MP_QSTR_confirm_action_buyram, + MP_QSTR_Buy_space_RAM, + MP_QSTR_Payer_colon_, + MP_QSTR_payer, + MP_QSTR_Receiver_colon_, + MP_QSTR_receiver, + MP_QSTR_Amount_colon_, + MP_QSTR_quantity, + MP_QSTR_confirm_action_buyrambytes, + MP_QSTR_Bytes_colon_, + MP_QSTR_bytes, + MP_QSTR_confirm_action_delegate, + MP_QSTR_Sender_colon_, + MP_QSTR_sender, + MP_QSTR_CPU_colon_, + MP_QSTR_cpu_quantity, + MP_QSTR_NET_colon_, + MP_QSTR_net_quantity, + MP_QSTR_append, + MP_QSTR_transfer, + MP_QSTR_Delegate, + MP_QSTR_confirm_action_sellram, + MP_QSTR_Sell_space_RAM, + MP_QSTR_account, + MP_QSTR_confirm_action_undelegate, + MP_QSTR_Undelegate, + MP_QSTR_confirm_action_refund, + MP_QSTR_Refund, + MP_QSTR_Owner_colon_, + MP_QSTR_owner, + MP_QSTR_confirm_action_voteproducer, + MP_QSTR_producers, + MP_QSTR_proxy, + MP_QSTR_Voter_colon_, + MP_QSTR_voter, + MP_QSTR_Proxy_colon_, + MP_QSTR_confirm_action_transfer, + MP_QSTR_From_colon_, + MP_QSTR_To_colon_, + MP_QSTR_Contract_colon_, + MP_QSTR_memo, + MP_QSTR_Memo, + MP_QSTR_Transfer, + MP_QSTR_confirm_action_updateauth, + MP_QSTR_Account_colon_, + MP_QSTR_permission, + MP_QSTR_Parent_colon_, + MP_QSTR_parent, + MP_QSTR_extend, + MP_QSTR_auth, + MP_QSTR_confirm_action_deleteauth, + MP_QSTR_confirm_action_linkauth, + MP_QSTR_Link_space_Auth, + MP_QSTR_Code_colon_, + MP_QSTR_code, + MP_QSTR_Type_colon_, + MP_QSTR_type, + MP_QSTR_requirement, + MP_QSTR_confirm_action_unlinkauth, + MP_QSTR_confirm_action_newaccount, + MP_QSTR_Creator_colon_, + MP_QSTR_creator, + MP_QSTR_Name_colon_, + MP_QSTR_name, + MP_QSTR_active, + MP_QSTR_confirm_action_unknown, + MP_QSTR_Checksum_colon_, + MP_QSTR_authorization_fields, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_public_key_to_wif, + MP_QSTR_Threshold_colon_, + MP_QSTR_threshold, + MP_QSTR_keys, + MP_QSTR_key, + MP_QSTR_weight, + MP_QSTR_Key_space__hash_, + MP_QSTR__colon_, + MP_QSTR__space_Weight_colon_, + MP_QSTR_accounts, + MP_QSTR_actor, + MP_QSTR_Account_space__hash_, + MP_QSTR__space_weight_colon_, + MP_QSTR_waits, + MP_QSTR_wait_sec, + MP_QSTR_Delay_space__hash_, + MP_QSTR__space_sec, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR__brace_open__colon_2d_brace_close__dot__space__brace_open__brace_close_, + MP_QSTR_format, + MP_QSTR_is_last, + MP_QSTR_br_type, + MP_QSTR_title, + MP_QSTR_props, + MP_QSTR_msg, + MP_QSTR_str, + MP_QSTR_enumerate, + MP_QSTR_action, + MP_QSTR_checksum, + MP_QSTR__star_, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_eos_actions_layout_2 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_Transfer_colon_), + MP_ROM_QSTR(MP_QSTR_Yes), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_eos_actions_layout_3 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_Transfer_colon_), + MP_ROM_QSTR(MP_QSTR_No), +}}; +static const mp_obj_str_t const_obj_apps_eos_actions_layout_27 = {{&mp_type_str}, 1264, 32, (const byte*)"\x4b\x65\x79\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x65\x78\x70\x6c\x69\x63\x69\x74\x6c\x79\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_eos_actions_layout[29] = { + MP_ROM_QSTR(MP_QSTR_confirm_buyram), + MP_ROM_QSTR(MP_QSTR_confirm_buyrambytes), + MP_ROM_PTR(&const_obj_apps_eos_actions_layout_2), + MP_ROM_PTR(&const_obj_apps_eos_actions_layout_3), + MP_ROM_QSTR(MP_QSTR_confirm_delegate), + MP_ROM_QSTR(MP_QSTR_confirm_sellram), + MP_ROM_QSTR(MP_QSTR_confirm_undelegate), + MP_ROM_QSTR(MP_QSTR_confirm_refund), + MP_ROM_QSTR(MP_QSTR_confirm_voteproducer), + MP_ROM_QSTR(MP_QSTR_Vote_space_for_space_proxy), + MP_ROM_QSTR(MP_QSTR_Vote_space_for_space_producers), + MP_ROM_QSTR(MP_QSTR_Cancel_space_vote), + MP_ROM_QSTR(MP_QSTR_confirm_transfer), + MP_ROM_QSTR(MP_QSTR_Permission_colon_), + MP_ROM_QSTR(MP_QSTR_confirm_updateauth), + MP_ROM_QSTR(MP_QSTR_Update_space_Auth), + MP_ROM_QSTR(MP_QSTR_confirm_deleteauth), + MP_ROM_QSTR(MP_QSTR_Delete_space_Auth), + MP_ROM_QSTR(MP_QSTR_confirm_linkauth), + MP_ROM_QSTR(MP_QSTR_Requirement_colon_), + MP_ROM_QSTR(MP_QSTR_confirm_unlinkauth), + MP_ROM_QSTR(MP_QSTR_Unlink_space_Auth), + MP_ROM_QSTR(MP_QSTR_confirm_newaccount), + MP_ROM_QSTR(MP_QSTR_New_space_Account), + MP_ROM_QSTR(MP_QSTR_confirm_unknown), + MP_ROM_QSTR(MP_QSTR_Arbitrary_space_data), + MP_ROM_QSTR(MP_QSTR_Action_space_Name_colon_), + MP_ROM_PTR(&const_obj_apps_eos_actions_layout_27), + MP_ROM_QSTR(MP_QSTR_Acc_space_Permission_space__hash_), +}; + +static const mp_frozen_module_t frozen_module_apps_eos_actions_layout = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_eos_actions_layout, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_eos_actions_layout, + }, + .rc = &raw_code_apps_eos_actions_layout__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ethereum___init__ +// - original source file: build/firmware/src/apps/ethereum/__init__.mpy +// - frozen file name: apps/ethereum/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ethereum/__init__.py, scope apps_ethereum___init____lt_module_gt_ +static const byte fun_data_apps_ethereum___init____lt_module_gt_[9] = { + 0x00,0x02, // prelude + 0x01, // names: + // code info + 0x10,0x02, // LOAD_CONST_STRING 'secp256k1' + 0x16,0x03, // STORE_NAME 'CURVE' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 9, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ethereum___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ethereum___init____lt_module_gt_ + 3, + .opcodes = fun_data_apps_ethereum___init____lt_module_gt_ + 3, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ethereum___init__[4] = { + MP_QSTR_apps_slash_ethereum_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_secp256k1, + MP_QSTR_CURVE, +}; + +static const mp_frozen_module_t frozen_module_apps_ethereum___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ethereum___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps_ethereum___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ethereum_definitions +// - original source file: build/firmware/src/apps/ethereum/definitions.mpy +// - frozen file name: apps/ethereum/definitions.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ethereum/definitions.py, scope apps_ethereum_definitions__lt_module_gt_ +static const byte fun_data_apps_ethereum_definitions__lt_module_gt_[55] = { + 0x10,0x10, // prelude + 0x01, // names: + 0x40,0x32,0x4c,0x80,0x08,0x84,0x4c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'EthereumNetworkInfo' + 0x10,0x03, // LOAD_CONST_STRING 'EthereumTokenInfo' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x04, // IMPORT_NAME 'trezor.messages' + 0x1c,0x02, // IMPORT_FROM 'EthereumNetworkInfo' + 0x16,0x02, // STORE_NAME 'EthereumNetworkInfo' + 0x1c,0x03, // IMPORT_FROM 'EthereumTokenInfo' + 0x16,0x03, // STORE_NAME 'EthereumTokenInfo' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.wire' + 0x1c,0x05, // IMPORT_FROM 'DataError' + 0x16,0x05, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x08, // STORE_NAME 'decode_definition' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x07, // LOAD_CONST_STRING 'Definitions' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x07, // STORE_NAME 'Definitions' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_definitions__lt_module_gt_ +// frozen bytecode for file apps/ethereum/definitions.py, scope apps_ethereum_definitions_decode_definition +static const byte fun_data_apps_ethereum_definitions_decode_definition[443] = { + 0xe6,0x10,0x64, // prelude + 0x08,0x35,0x36, // names: decode_definition, definition, expected_type + 0x80,0x0e,0x2b,0x2b,0x2b,0x2b,0x4b,0x4b,0x6b,0x25,0x44,0x2a,0x44,0x43,0x32,0x67,0x29,0x67,0x2c,0x67,0x27,0x67,0x20,0x26,0x32,0x26,0x26,0x27,0x28,0x29,0x29,0x26,0x28,0x28,0x4f,0x27,0x4a,0x27,0x70,0x6a,0x30,0x60,0x40,0x24,0x67,0x22,0x50, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'verify' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.crypto.cosi' + 0x1c,0x09, // IMPORT_FROM 'verify' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x0b, // IMPORT_FROM 'sha256' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'EthereumDefinitionType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'trezor.enums' + 0x1c,0x0d, // IMPORT_FROM 'EthereumDefinitionType' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0f, // LOAD_CONST_STRING 'decode' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'trezor.protobuf' + 0x1c,0x0f, // IMPORT_FROM 'decode' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'BufferReader' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x12, // IMPORT_NAME 'trezor.utils' + 0x1c,0x11, // IMPORT_FROM 'BufferReader' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'readers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'apps.common' + 0x1c,0x13, // IMPORT_FROM 'readers' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x15, // LOAD_CONST_STRING 'definitions_constants' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x16, // IMPORT_NAME '' + 0x1c,0x15, // IMPORT_FROM 'definitions_constants' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0xb4, // LOAD_FAST 4 + 0x13,0x17, // LOAD_ATTR 'NETWORK' + 0xca, // STORE_FAST 10 + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'MESSAGE_NAME' + 0x12,0x03, // LOAD_GLOBAL 'EthereumTokenInfo' + 0x13,0x18, // LOAD_ATTR 'MESSAGE_NAME' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb4, // LOAD_FAST 4 + 0x13,0x19, // LOAD_ATTR 'TOKEN' + 0xca, // STORE_FAST 10 + 0x48,0xd5,0x01, // SETUP_EXCEPT 213 + 0xb9, // LOAD_FAST 9 + 0x14,0x1a, // LOAD_METHOD 'read_memoryview' + 0x12,0x37, // LOAD_GLOBAL 'len' + 0xb8, // LOAD_FAST 8 + 0x13,0x1b, // LOAD_ATTR 'FORMAT_VERSION' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0xb8, // LOAD_FAST 8 + 0x13,0x1b, // LOAD_ATTR 'FORMAT_VERSION' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x05, // LOAD_GLOBAL 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb9, // LOAD_FAST 9 + 0x14,0x1c, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0xba, // LOAD_FAST 10 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x05, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb7, // LOAD_FAST 7 + 0x14,0x1d, // LOAD_METHOD 'read_uint32_le' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0xb8, // LOAD_FAST 8 + 0x13,0x1e, // LOAD_ATTR 'MIN_DATA_VERSION' + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x05, // LOAD_GLOBAL 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb7, // LOAD_FAST 7 + 0x14,0x1f, // LOAD_METHOD 'read_uint16_le' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0xcb, // STORE_FAST 11 + 0xb9, // LOAD_FAST 9 + 0x14,0x1a, // LOAD_METHOD 'read_memoryview' + 0xbb, // LOAD_FAST 11 + 0x36,0x01, // CALL_METHOD 1 + 0xcc, // STORE_FAST 12 + 0xb3, // LOAD_FAST 3 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcd, // STORE_FAST 13 + 0xbd, // LOAD_FAST 13 + 0x14,0x20, // LOAD_METHOD 'update' + 0x12,0x38, // LOAD_GLOBAL 'memoryview' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x51, // LOAD_CONST_NONE + 0xb9, // LOAD_FAST 9 + 0x13,0x21, // LOAD_ATTR 'offset' + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xbd, // LOAD_FAST 13 + 0x14,0x22, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xce, // STORE_FAST 14 + 0xb9, // LOAD_FAST 9 + 0x14,0x1c, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0xcf, // STORE_FAST 15 + 0xbf, // LOAD_FAST 15 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x7b, // JUMP 59 + 0x57, // DUP_TOP + 0x26,0x10, // STORE_FAST_N 16 + 0xb9, // LOAD_FAST 9 + 0x14,0x1a, // LOAD_METHOD 'read_memoryview' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x11, // STORE_FAST_N 17 + 0x12,0x39, // LOAD_GLOBAL 'min' + 0xbe, // LOAD_FAST 14 + 0x24,0x11, // LOAD_FAST_N 17 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x12, // STORE_FAST_N 18 + 0x12,0x3a, // LOAD_GLOBAL 'max' + 0xbe, // LOAD_FAST 14 + 0x24,0x11, // LOAD_FAST_N 17 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x13, // STORE_FAST_N 19 + 0xb3, // LOAD_FAST 3 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcd, // STORE_FAST 13 + 0xbd, // LOAD_FAST 13 + 0x14,0x20, // LOAD_METHOD 'update' + 0x24,0x12, // LOAD_FAST_N 18 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xbd, // LOAD_FAST 13 + 0x14,0x20, // LOAD_METHOD 'update' + 0x24,0x13, // LOAD_FAST_N 19 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xbd, // LOAD_FAST 13 + 0x14,0x22, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xce, // STORE_FAST 14 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x00, // POP_JUMP_IF_TRUE -64 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x14,0x1c, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x14, // STORE_FAST_N 20 + 0xb9, // LOAD_FAST 9 + 0x14,0x1a, // LOAD_METHOD 'read_memoryview' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x15, // STORE_FAST_N 21 + 0xb9, // LOAD_FAST 9 + 0x14,0x23, // LOAD_METHOD 'remaining_count' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x05, // LOAD_GLOBAL 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x11, // POP_EXCEPT_JUMP 17 + 0x57, // DUP_TOP + 0x12,0x3b, // LOAD_GLOBAL 'EOFError' + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb2, // LOAD_FAST 2 + 0x24,0x15, // LOAD_FAST_N 21 + 0xbe, // LOAD_FAST 14 + 0xb8, // LOAD_FAST 8 + 0x13,0x24, // LOAD_ATTR 'THRESHOLD' + 0xb8, // LOAD_FAST 8 + 0x13,0x25, // LOAD_ATTR 'PUBLIC_KEYS' + 0x24,0x14, // LOAD_FAST_N 20 + 0x34,0x05, // CALL_FUNCTION 5 + 0x26,0x16, // STORE_FAST_N 22 + 0x24,0x16, // LOAD_FAST_N 22 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x05, // LOAD_GLOBAL 'DataError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x48,0x09, // SETUP_EXCEPT 9 + 0xb5, // LOAD_FAST 5 + 0xbc, // LOAD_FAST 12 + 0xb1, // LOAD_FAST 1 + 0x52, // LOAD_CONST_TRUE + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE + 0x4a,0x11, // POP_EXCEPT_JUMP 17 + 0x57, // DUP_TOP + 0x12,0x3c, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_definitions_decode_definition = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_definitions_decode_definition, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 443, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 29, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_ethereum_definitions_decode_definition + 6, + .line_info_top = fun_data_apps_ethereum_definitions_decode_definition + 53, + .opcodes = fun_data_apps_ethereum_definitions_decode_definition + 53, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_definitions__lt_module_gt_ +// frozen bytecode for file apps/ethereum/definitions.py, scope apps_ethereum_definitions_Definitions +static const byte fun_data_apps_ethereum_definitions_Definitions[42] = { + 0x10,0x12, // prelude + 0x07, // names: Definitions + 0x88,0x5a,0x60,0x20,0x64,0x60,0x8d,0x2d, // code info + 0x11,0x3d, // LOAD_NAME '__name__' + 0x16,0x3e, // STORE_NAME '__module__' + 0x10,0x07, // LOAD_CONST_STRING 'Definitions' + 0x16,0x3f, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x26, // STORE_NAME '__init__' + 0x11,0x40, // LOAD_NAME 'classmethod' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x29, // STORE_NAME 'from_encoded' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x31, // STORE_NAME 'get_token' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_definitions_Definitions +// frozen bytecode for file apps/ethereum/definitions.py, scope apps_ethereum_definitions_Definitions___init__ +static const byte fun_data_apps_ethereum_definitions_Definitions___init__[19] = { + 0x23,0x0e, // prelude + 0x26,0x41,0x27,0x34, // names: __init__, self, network, tokens + 0x80,0x61,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x27, // STORE_ATTR 'network' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x28, // STORE_ATTR '_tokens' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_definitions_Definitions___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_ethereum_definitions_Definitions___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 38, + .line_info = fun_data_apps_ethereum_definitions_Definitions___init__ + 6, + .line_info_top = fun_data_apps_ethereum_definitions_Definitions___init__ + 9, + .opcodes = fun_data_apps_ethereum_definitions_Definitions___init__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_definitions_Definitions +// frozen bytecode for file apps/ethereum/definitions.py, scope apps_ethereum_definitions_Definitions_from_encoded +static const byte fun_data_apps_ethereum_definitions_Definitions_from_encoded[198] = { + 0xf1,0x84,0x01,0x3a, // prelude + 0x29,0x42,0x43,0x44,0x2e,0x2f, // names: from_encoded, cls, encoded_network, encoded_token, chain_id, slip44 + 0x80,0x6c,0x55,0x22,0x63,0x26,0x27,0x26,0x67,0x47,0x2b,0x48,0x45,0x47,0x2d,0x27,0x2d,0x67,0x26,0x68,0x20,0x29,0x46, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x2a, // LOAD_CONST_STRING 'UNKNOWN_NETWORK' + 0x10,0x2b, // LOAD_CONST_STRING 'by_chain_id' + 0x10,0x2c, // LOAD_CONST_STRING 'by_slip44' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x2d, // IMPORT_NAME 'networks' + 0x1c,0x2a, // IMPORT_FROM 'UNKNOWN_NETWORK' + 0xc5, // STORE_FAST 5 + 0x1c,0x2b, // IMPORT_FROM 'by_chain_id' + 0xc6, // STORE_FAST 6 + 0x1c,0x2c, // IMPORT_FROM 'by_slip44' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0xc8, // STORE_FAST 8 + 0x2c,0x00, // BUILD_MAP 0 + 0xc9, // STORE_FAST 9 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb6, // LOAD_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0x42,0x54, // JUMP 20 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb7, // LOAD_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0x42,0x47, // JUMP 7 + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0x2c,0x00, // BUILD_MAP 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb8, // LOAD_FAST 8 + 0xb5, // LOAD_FAST 5 + 0xde, // BINARY_OP 7 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x08, // LOAD_GLOBAL 'decode_definition' + 0xb1, // LOAD_FAST 1 + 0x12,0x02, // LOAD_GLOBAL 'EthereumNetworkInfo' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0xb5, // LOAD_FAST 5 + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0x2c,0x00, // BUILD_MAP 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb8, // LOAD_FAST 8 + 0x13,0x2e, // LOAD_ATTR 'chain_id' + 0xb3, // LOAD_FAST 3 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x05, // LOAD_GLOBAL 'DataError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb8, // LOAD_FAST 8 + 0x13,0x2f, // LOAD_ATTR 'slip44' + 0xb4, // LOAD_FAST 4 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x05, // LOAD_GLOBAL 'DataError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0x12,0x08, // LOAD_GLOBAL 'decode_definition' + 0xb2, // LOAD_FAST 2 + 0x12,0x03, // LOAD_GLOBAL 'EthereumTokenInfo' + 0x34,0x02, // CALL_FUNCTION 2 + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0x13,0x2e, // LOAD_ATTR 'chain_id' + 0xb8, // LOAD_FAST 8 + 0x13,0x2e, // LOAD_ATTR 'chain_id' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xba, // LOAD_FAST 10 + 0xb9, // LOAD_FAST 9 + 0xba, // LOAD_FAST 10 + 0x13,0x30, // LOAD_ATTR 'address' + 0x56, // STORE_SUBSCR + 0xb0, // LOAD_FAST 0 + 0xb8, // LOAD_FAST 8 + 0xb9, // LOAD_FAST 9 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_definitions_Definitions_from_encoded = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_ethereum_definitions_Definitions_from_encoded, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 198, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_ethereum_definitions_Definitions_from_encoded + 10, + .line_info_top = fun_data_apps_ethereum_definitions_Definitions_from_encoded + 33, + .opcodes = fun_data_apps_ethereum_definitions_Definitions_from_encoded + 33, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_definitions_Definitions +// frozen bytecode for file apps/ethereum/definitions.py, scope apps_ethereum_definitions_Definitions_get_token +static const byte fun_data_apps_ethereum_definitions_Definitions_get_token[62] = { + 0x3a,0x16, // prelude + 0x31,0x41,0x30, // names: get_token, self, address + 0x80,0x92,0x70,0x2a,0x26,0x42,0x27,0x46, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x32, // LOAD_CONST_STRING 'UNKNOWN_TOKEN' + 0x10,0x33, // LOAD_CONST_STRING 'token_by_chain_address' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x34, // IMPORT_NAME 'tokens' + 0x1c,0x32, // IMPORT_FROM 'UNKNOWN_TOKEN' + 0xc2, // STORE_FAST 2 + 0x1c,0x33, // IMPORT_FROM 'token_by_chain_address' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'network' + 0x13,0x2e, // LOAD_ATTR 'chain_id' + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR '_tokens' + 0xdd, // BINARY_OP 6 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR '_tokens' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_definitions_Definitions_get_token = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_definitions_Definitions_get_token, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 62, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 49, + .line_info = fun_data_apps_ethereum_definitions_Definitions_get_token + 5, + .line_info_top = fun_data_apps_ethereum_definitions_Definitions_get_token + 13, + .opcodes = fun_data_apps_ethereum_definitions_Definitions_get_token + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_definitions_Definitions[] = { + &raw_code_apps_ethereum_definitions_Definitions___init__, + &raw_code_apps_ethereum_definitions_Definitions_from_encoded, + &raw_code_apps_ethereum_definitions_Definitions_get_token, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_definitions_Definitions = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_definitions_Definitions, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = (void *)&children_apps_ethereum_definitions_Definitions, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_ethereum_definitions_Definitions + 3, + .line_info_top = fun_data_apps_ethereum_definitions_Definitions + 11, + .opcodes = fun_data_apps_ethereum_definitions_Definitions + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_definitions__lt_module_gt_[] = { + &raw_code_apps_ethereum_definitions_decode_definition, + &raw_code_apps_ethereum_definitions_Definitions, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_definitions__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_definitions__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = (void *)&children_apps_ethereum_definitions__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ethereum_definitions__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ethereum_definitions__lt_module_gt_ + 10, + .opcodes = fun_data_apps_ethereum_definitions__lt_module_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ethereum_definitions[69] = { + MP_QSTR_apps_slash_ethereum_slash_definitions_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_EthereumNetworkInfo, + MP_QSTR_EthereumTokenInfo, + MP_QSTR_trezor_dot_messages, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_Definitions, + MP_QSTR_decode_definition, + MP_QSTR_verify, + MP_QSTR_trezor_dot_crypto_dot_cosi, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_EthereumDefinitionType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_decode, + MP_QSTR_trezor_dot_protobuf, + MP_QSTR_BufferReader, + MP_QSTR_trezor_dot_utils, + MP_QSTR_readers, + MP_QSTR_apps_dot_common, + MP_QSTR_definitions_constants, + MP_QSTR_, + MP_QSTR_NETWORK, + MP_QSTR_MESSAGE_NAME, + MP_QSTR_TOKEN, + MP_QSTR_read_memoryview, + MP_QSTR_FORMAT_VERSION, + MP_QSTR_get, + MP_QSTR_read_uint32_le, + MP_QSTR_MIN_DATA_VERSION, + MP_QSTR_read_uint16_le, + MP_QSTR_update, + MP_QSTR_offset, + MP_QSTR_digest, + MP_QSTR_remaining_count, + MP_QSTR_THRESHOLD, + MP_QSTR_PUBLIC_KEYS, + MP_QSTR___init__, + MP_QSTR_network, + MP_QSTR__tokens, + MP_QSTR_from_encoded, + MP_QSTR_UNKNOWN_NETWORK, + MP_QSTR_by_chain_id, + MP_QSTR_by_slip44, + MP_QSTR_networks, + MP_QSTR_chain_id, + MP_QSTR_slip44, + MP_QSTR_address, + MP_QSTR_get_token, + MP_QSTR_UNKNOWN_TOKEN, + MP_QSTR_token_by_chain_address, + MP_QSTR_tokens, + MP_QSTR_definition, + MP_QSTR_expected_type, + MP_QSTR_len, + MP_QSTR_memoryview, + MP_QSTR_min, + MP_QSTR_max, + MP_QSTR_EOFError, + MP_QSTR_ValueError, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_classmethod, + MP_QSTR_self, + MP_QSTR_cls, + MP_QSTR_encoded_network, + MP_QSTR_encoded_token, +}; + +// constants +static const mp_obj_str_t const_obj_apps_ethereum_definitions_0 = {{&mp_type_str}, 33106, 27, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x45\x74\x68\x65\x72\x65\x75\x6d\x20\x64\x65\x66\x69\x6e\x69\x74\x69\x6f\x6e"}; +static const mp_obj_str_t const_obj_apps_ethereum_definitions_3 = {{&mp_type_bytes}, 46501, 1, (const byte*)"\x00"}; +static const mp_obj_str_t const_obj_apps_ethereum_definitions_4 = {{&mp_type_bytes}, 46500, 1, (const byte*)"\x01"}; +static const mp_obj_str_t const_obj_apps_ethereum_definitions_5 = {{&mp_type_str}, 24133, 28, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x64\x65\x66\x69\x6e\x69\x74\x69\x6f\x6e\x20\x73\x69\x67\x6e\x61\x74\x75\x72\x65"}; +static const mp_obj_str_t const_obj_apps_ethereum_definitions_6 = {{&mp_type_str}, 16874, 27, (const byte*)"\x4e\x65\x74\x77\x6f\x72\x6b\x20\x64\x65\x66\x69\x6e\x69\x74\x69\x6f\x6e\x20\x6d\x69\x73\x6d\x61\x74\x63\x68"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_ethereum_definitions[7] = { + MP_ROM_PTR(&const_obj_apps_ethereum_definitions_0), + MP_ROM_QSTR(MP_QSTR_Definition_space_type_space_mismatch), + MP_ROM_QSTR(MP_QSTR_Definition_space_is_space_outdated), + MP_ROM_PTR(&const_obj_apps_ethereum_definitions_3), + MP_ROM_PTR(&const_obj_apps_ethereum_definitions_4), + MP_ROM_PTR(&const_obj_apps_ethereum_definitions_5), + MP_ROM_PTR(&const_obj_apps_ethereum_definitions_6), +}; + +static const mp_frozen_module_t frozen_module_apps_ethereum_definitions = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ethereum_definitions, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_ethereum_definitions, + }, + .rc = &raw_code_apps_ethereum_definitions__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ethereum_definitions_constants +// - original source file: build/firmware/src/apps/ethereum/definitions_constants.mpy +// - frozen file name: apps/ethereum/definitions_constants.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ethereum/definitions_constants.py, scope apps_ethereum_definitions_constants__lt_module_gt_ +static const byte fun_data_apps_ethereum_definitions_constants__lt_module_gt_[28] = { + 0x00,0x12, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x40,0x64,0x20,0x24,0x44, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x02, // STORE_NAME 'THRESHOLD' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x03, // STORE_NAME 'PUBLIC_KEYS' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x16,0x04, // STORE_NAME 'MIN_DATA_VERSION' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x16,0x05, // STORE_NAME 'FORMAT_VERSION' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_definitions_constants__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_definitions_constants__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ethereum_definitions_constants__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ethereum_definitions_constants__lt_module_gt_ + 11, + .opcodes = fun_data_apps_ethereum_definitions_constants__lt_module_gt_ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ethereum_definitions_constants[6] = { + MP_QSTR_apps_slash_ethereum_slash_definitions_constants_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_THRESHOLD, + MP_QSTR_PUBLIC_KEYS, + MP_QSTR_MIN_DATA_VERSION, + MP_QSTR_FORMAT_VERSION, +}; + +// constants +static const mp_obj_str_t const_obj_apps_ethereum_definitions_constants_0_0 = {{&mp_type_bytes}, 30667, 32, (const byte*)"\x43\x34\x99\x63\x43\x62\x3e\x46\x2f\x0f\xc9\x33\x11\xfe\xf1\x48\x4c\xa2\x3d\x2f\xf1\xee\xc6\xdf\x1f\xa8\xeb\x7e\x35\x73\xb3\xdb"}; +static const mp_obj_str_t const_obj_apps_ethereum_definitions_constants_0_1 = {{&mp_type_bytes}, 56809, 32, (const byte*)"\xa9\xa2\x2c\xc2\x65\xa0\xcb\x1d\x6c\xb3\x29\xbc\x0e\x60\xbc\x45\xdf\x76\xb9\xab\x28\xfb\x87\xb6\x11\x36\xfe\xaf\x8d\x8f\xdc\x96"}; +static const mp_obj_str_t const_obj_apps_ethereum_definitions_constants_0_2 = {{&mp_type_bytes}, 15855, 32, (const byte*)"\xb8\xd2\xb2\x1d\xe2\x71\x24\xf0\x51\x1f\x90\x3a\xe7\xe6\x0e\x07\x96\x18\x10\xa0\xb8\xf2\x8e\xa7\x55\xfa\x50\x36\x7a\x8a\x2b\x8b"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_definitions_constants_0 = {{&mp_type_tuple}, 3, { + MP_ROM_PTR(&const_obj_apps_ethereum_definitions_constants_0_0), + MP_ROM_PTR(&const_obj_apps_ethereum_definitions_constants_0_1), + MP_ROM_PTR(&const_obj_apps_ethereum_definitions_constants_0_2), +}}; +static const mp_obj_int_t const_obj_apps_ethereum_definitions_constants_1 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xd838,0x642a}}}; +static const mp_obj_str_t const_obj_apps_ethereum_definitions_constants_2 = {{&mp_type_bytes}, 44620, 5, (const byte*)"\x74\x72\x7a\x64\x31"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_ethereum_definitions_constants[3] = { + MP_ROM_PTR(&const_obj_apps_ethereum_definitions_constants_0), + MP_ROM_PTR(&const_obj_apps_ethereum_definitions_constants_1), + MP_ROM_PTR(&const_obj_apps_ethereum_definitions_constants_2), +}; + +static const mp_frozen_module_t frozen_module_apps_ethereum_definitions_constants = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ethereum_definitions_constants, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_ethereum_definitions_constants, + }, + .rc = &raw_code_apps_ethereum_definitions_constants__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ethereum_get_address +// - original source file: build/firmware/src/apps/ethereum/get_address.mpy +// - frozen file name: apps/ethereum/get_address.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ethereum/get_address.py, scope apps_ethereum_get_address__lt_module_gt_ +static const byte fun_data_apps_ethereum_get_address__lt_module_gt_[40] = { + 0x10,0x0a, // prelude + 0x01, // names: + 0x40,0x52,0x80,0x08, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x02, // LOAD_CONST_STRING 'PATTERNS_ADDRESS' + 0x10,0x03, // LOAD_CONST_STRING 'with_keychain_from_path' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x04, // IMPORT_NAME 'keychain' + 0x1c,0x02, // IMPORT_FROM 'PATTERNS_ADDRESS' + 0x16,0x02, // STORE_NAME 'PATTERNS_ADDRESS' + 0x1c,0x03, // IMPORT_FROM 'with_keychain_from_path' + 0x16,0x03, // STORE_NAME 'with_keychain_from_path' + 0x59, // POP_TOP + 0x11,0x03, // LOAD_NAME 'with_keychain_from_path' + 0x11,0x02, // LOAD_NAME 'PATTERNS_ADDRESS' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x35,0x01, // CALL_FUNCTION_VAR_KW 1 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x05, // STORE_NAME 'get_address' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_get_address__lt_module_gt_ +// frozen bytecode for file apps/ethereum/get_address.py, scope apps_ethereum_get_address_get_address +static const byte fun_data_apps_ethereum_get_address_get_address[157] = { + 0xab,0x50,0x28, // prelude + 0x05,0x1b,0x04,0x1c, // names: get_address, msg, keychain, defs + 0x80,0x12,0x2b,0x4b,0x4b,0x4b,0x44,0x4b,0x47,0x4c,0x25,0x24,0x44,0x28,0x6d,0x6e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'EthereumAddress' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.messages' + 0x1c,0x06, // IMPORT_FROM 'EthereumAddress' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'show_address' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x08, // IMPORT_FROM 'show_address' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'apps.common' + 0x1c,0x0a, // IMPORT_FROM 'paths' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0c, // LOAD_CONST_STRING 'address_from_bytes' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'helpers' + 0x1c,0x0c, // IMPORT_FROM 'address_from_bytes' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'address_n' + 0xc7, // STORE_FAST 7 + 0xb5, // LOAD_FAST 5 + 0x14,0x0f, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x10, // LOAD_METHOD 'derive' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0xc8, // STORE_FAST 8 + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0x14,0x11, // LOAD_METHOD 'ethereum_pubkeyhash' + 0x36,0x00, // CALL_METHOD 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x12, // LOAD_ATTR 'network' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc9, // STORE_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'show_display' + 0x44,0x6b, // POP_JUMP_IF_FALSE 43 + 0xb7, // LOAD_FAST 7 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0xca, // STORE_FAST 10 + 0xb4, // LOAD_FAST 4 + 0xb9, // LOAD_FAST 9 + 0x10,0x14, // LOAD_CONST_STRING 'path' + 0xb5, // LOAD_FAST 5 + 0x14,0x15, // LOAD_METHOD 'address_n_to_str' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x16, // LOAD_CONST_STRING 'account' + 0xb5, // LOAD_FAST 5 + 0x14,0x17, // LOAD_METHOD 'get_account_name' + 0x10,0x18, // LOAD_CONST_STRING 'ETH' + 0xb7, // LOAD_FAST 7 + 0x12,0x02, // LOAD_GLOBAL 'PATTERNS_ADDRESS' + 0xba, // LOAD_FAST 10 + 0x36,0x04, // CALL_METHOD 4 + 0x10,0x19, // LOAD_CONST_STRING 'chunkify' + 0x12,0x1d, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'chunkify' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x86,0x01, // CALL_FUNCTION 769 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x1a, // LOAD_CONST_STRING 'address' + 0xb9, // LOAD_FAST 9 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_get_address_get_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_ethereum_get_address_get_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 157, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 22, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_ethereum_get_address_get_address + 7, + .line_info_top = fun_data_apps_ethereum_get_address_get_address + 23, + .opcodes = fun_data_apps_ethereum_get_address_get_address + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_get_address__lt_module_gt_[] = { + &raw_code_apps_ethereum_get_address_get_address, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_get_address__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_get_address__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 40, + #endif + .children = (void *)&children_apps_ethereum_get_address__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ethereum_get_address__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ethereum_get_address__lt_module_gt_ + 7, + .opcodes = fun_data_apps_ethereum_get_address__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ethereum_get_address[30] = { + MP_QSTR_apps_slash_ethereum_slash_get_address_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_PATTERNS_ADDRESS, + MP_QSTR_with_keychain_from_path, + MP_QSTR_keychain, + MP_QSTR_get_address, + MP_QSTR_EthereumAddress, + MP_QSTR_trezor_dot_messages, + MP_QSTR_show_address, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_address_from_bytes, + MP_QSTR_helpers, + MP_QSTR_address_n, + MP_QSTR_validate_path, + MP_QSTR_derive, + MP_QSTR_ethereum_pubkeyhash, + MP_QSTR_network, + MP_QSTR_show_display, + MP_QSTR_path, + MP_QSTR_address_n_to_str, + MP_QSTR_account, + MP_QSTR_get_account_name, + MP_QSTR_ETH, + MP_QSTR_chunkify, + MP_QSTR_address, + MP_QSTR_msg, + MP_QSTR_defs, + MP_QSTR_bool, +}; + +static const mp_frozen_module_t frozen_module_apps_ethereum_get_address = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ethereum_get_address, + .obj_table = NULL, + }, + .rc = &raw_code_apps_ethereum_get_address__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ethereum_get_public_key +// - original source file: build/firmware/src/apps/ethereum/get_public_key.mpy +// - frozen file name: apps/ethereum/get_public_key.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ethereum/get_public_key.py, scope apps_ethereum_get_public_key__lt_module_gt_ +static const byte fun_data_apps_ethereum_get_public_key__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'get_public_key' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_get_public_key__lt_module_gt_ +// frozen bytecode for file apps/ethereum/get_public_key.py, scope apps_ethereum_get_public_key_get_public_key +static const byte fun_data_apps_ethereum_get_public_key_get_public_key[123] = { + 0xe1,0x40,0x18, // prelude + 0x02,0x11, // names: get_public_key, msg + 0x80,0x07,0x4b,0x30,0x4b,0x6b,0x2a,0x4a,0x25,0x53, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'hexlify' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'ubinascii' + 0x1c,0x03, // IMPORT_FROM 'hexlify' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'EthereumPublicKey' + 0x10,0x06, // LOAD_CONST_STRING 'GetPublicKey' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x07, // IMPORT_NAME 'trezor.messages' + 0x1c,0x05, // IMPORT_FROM 'EthereumPublicKey' + 0xc2, // STORE_FAST 2 + 0x1c,0x06, // IMPORT_FROM 'GetPublicKey' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'show_pubkey' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x08, // IMPORT_FROM 'show_pubkey' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'get_public_key' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'apps.bitcoin' + 0x1c,0x02, // IMPORT_FROM 'get_public_key' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x0b, // LOAD_CONST_STRING 'address_n' + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'address_n' + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x14,0x02, // LOAD_METHOD 'get_public_key' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc7, // STORE_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'show_display' + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0xb7, // LOAD_FAST 7 + 0x13,0x0d, // LOAD_ATTR 'node' + 0x13,0x0e, // LOAD_ATTR 'public_key' + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x0f, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x10,0x0d, // LOAD_CONST_STRING 'node' + 0xb7, // LOAD_FAST 7 + 0x13,0x0d, // LOAD_ATTR 'node' + 0x10,0x10, // LOAD_CONST_STRING 'xpub' + 0xb7, // LOAD_FAST 7 + 0x13,0x10, // LOAD_ATTR 'xpub' + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_get_public_key_get_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_get_public_key_get_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 123, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_ethereum_get_public_key_get_public_key + 5, + .line_info_top = fun_data_apps_ethereum_get_public_key_get_public_key + 15, + .opcodes = fun_data_apps_ethereum_get_public_key_get_public_key + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_get_public_key__lt_module_gt_[] = { + &raw_code_apps_ethereum_get_public_key_get_public_key, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_get_public_key__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_get_public_key__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_ethereum_get_public_key__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ethereum_get_public_key__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ethereum_get_public_key__lt_module_gt_ + 6, + .opcodes = fun_data_apps_ethereum_get_public_key__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ethereum_get_public_key[18] = { + MP_QSTR_apps_slash_ethereum_slash_get_public_key_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_get_public_key, + MP_QSTR_hexlify, + MP_QSTR_ubinascii, + MP_QSTR_EthereumPublicKey, + MP_QSTR_GetPublicKey, + MP_QSTR_trezor_dot_messages, + MP_QSTR_show_pubkey, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_apps_dot_bitcoin, + MP_QSTR_address_n, + MP_QSTR_show_display, + MP_QSTR_node, + MP_QSTR_public_key, + MP_QSTR_decode, + MP_QSTR_xpub, + MP_QSTR_msg, +}; + +static const mp_frozen_module_t frozen_module_apps_ethereum_get_public_key = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ethereum_get_public_key, + .obj_table = NULL, + }, + .rc = &raw_code_apps_ethereum_get_public_key__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ethereum_helpers +// - original source file: build/firmware/src/apps/ethereum/helpers.mpy +// - frozen file name: apps/ethereum/helpers.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ethereum/helpers.py, scope apps_ethereum_helpers__lt_module_gt_ +static const byte fun_data_apps_ethereum_helpers__lt_module_gt_[75] = { + 0x08,0x20, // prelude + 0x01, // names: + 0x20,0x4c,0x4c,0x60,0x60,0x64,0x20,0x8b,0x23,0x84,0x13,0x84,0x28,0x84,0x13, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'hexlify' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'ubinascii' + 0x1c,0x02, // IMPORT_FROM 'hexlify' + 0x16,0x02, // STORE_NAME 'hexlify' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING 'networks' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME '' + 0x1c,0x04, // IMPORT_FROM 'networks' + 0x16,0x04, // STORE_NAME 'networks' + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x38, // STORE_NAME 'RSKIP60_NETWORKS' + 0x11,0x04, // LOAD_NAME 'networks' + 0x13,0x06, // LOAD_ATTR 'UNKNOWN_NETWORK' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x07, // STORE_NAME 'address_from_bytes' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x11, // STORE_NAME 'bytes_from_address' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x16, // STORE_NAME 'get_type_name' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x2e, // STORE_NAME 'decode_typed_data' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x34, // STORE_NAME '_from_bytes_bigendian_signed' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_helpers__lt_module_gt_ +// frozen bytecode for file apps/ethereum/helpers.py, scope apps_ethereum_helpers_address_from_bytes +static const byte fun_data_apps_ethereum_helpers_address_from_bytes[123] = { + 0xea,0x01,0x9f,0x01, // prelude + 0x07,0x39,0x3a, // names: address_from_bytes, address_bytes, network + 0x80,0x11,0x60,0x20,0x4b,0x48,0x4d,0x43,0x2b,0x55,0x87,0x0f,0x04,0x05,0x06, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'sha3_256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x08, // IMPORT_FROM 'sha3_256' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'chain_id' + 0x12,0x38, // LOAD_GLOBAL 'RSKIP60_NETWORKS' + 0xdd, // BINARY_OP 6 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x3b, // LOAD_GLOBAL 'str' + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'chain_id' + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x0b, // LOAD_CONST_STRING '0x' + 0xf2, // BINARY_OP 27 __add__ + 0xc3, // STORE_FAST 3 + 0x42,0x43, // JUMP 3 + 0x10,0x05, // LOAD_CONST_STRING '' + 0xc3, // STORE_FAST 3 + 0x12,0x02, // LOAD_GLOBAL 'hexlify' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x0c, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0x27,0x04, // STORE_DEREF 4 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x25,0x04, // LOAD_DEREF 4 + 0xf2, // BINARY_OP 27 __add__ + 0x14,0x0d, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x0e, // LOAD_CONST_STRING 'keccak' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0x14,0x0f, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x27,0x05, // STORE_DEREF 5 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x20,0x00,0x02, // MAKE_CLOSURE 0 + 0x27,0x06, // STORE_DEREF 6 + 0x10,0x0b, // LOAD_CONST_STRING '0x' + 0x10,0x05, // LOAD_CONST_STRING '' + 0x14,0x10, // LOAD_METHOD 'join' + 0xb6, // LOAD_FAST 6 + 0x20,0x01,0x01, // MAKE_CLOSURE 1 + 0x12,0x3c, // LOAD_GLOBAL 'range' + 0x12,0x3d, // LOAD_GLOBAL 'len' + 0x25,0x04, // LOAD_DEREF 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_helpers_address_from_bytes +// frozen bytecode for file apps/ethereum/helpers.py, scope apps_ethereum_helpers_address_from_bytes__maybe_upper +static const byte fun_data_apps_ethereum_helpers_address_from_bytes__maybe_upper[58] = { + 0x43,0x1c, // prelude + 0x35,0x44,0x44,0x45, // names: _maybe_upper, *, *, i + 0x80,0x21,0x20,0x27,0x25,0x47,0x66,0x22,0x25,0x46, // code info + 0x25,0x01, // LOAD_DEREF 1 + 0xb2, // LOAD_FAST 2 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x55, // LOAD_SUBSCR + 0xc3, // STORE_FAST 3 + 0x25,0x00, // LOAD_DEREF 0 + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf8, // BINARY_OP 33 __mod__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xc5, // STORE_FAST 5 + 0x42,0x42, // JUMP 2 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0xef, // BINARY_OP 24 __and__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x14,0x36, // LOAD_METHOD 'upper' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_helpers_address_from_bytes__maybe_upper = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_ethereum_helpers_address_from_bytes__maybe_upper, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 58, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 53, + .line_info = fun_data_apps_ethereum_helpers_address_from_bytes__maybe_upper + 6, + .line_info_top = fun_data_apps_ethereum_helpers_address_from_bytes__maybe_upper + 16, + .opcodes = fun_data_apps_ethereum_helpers_address_from_bytes__maybe_upper + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_helpers_address_from_bytes +// frozen bytecode for file apps/ethereum/helpers.py, scope apps_ethereum_helpers_address_from_bytes__lt_genexpr_gt_ +static const byte fun_data_apps_ethereum_helpers_address_from_bytes__lt_genexpr_gt_[26] = { + 0xc2,0x40,0x0a, // prelude + 0x37,0x44,0x44, // names: , *, * + 0x80,0x2f, // code info + 0x53, // LOAD_NULL + 0xb1, // LOAD_FAST 1 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0a, // FOR_ITER 10 + 0xc2, // STORE_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_helpers_address_from_bytes__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_helpers_address_from_bytes__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 55, + .line_info = fun_data_apps_ethereum_helpers_address_from_bytes__lt_genexpr_gt_ + 6, + .line_info_top = fun_data_apps_ethereum_helpers_address_from_bytes__lt_genexpr_gt_ + 8, + .opcodes = fun_data_apps_ethereum_helpers_address_from_bytes__lt_genexpr_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_helpers_address_from_bytes[] = { + &raw_code_apps_ethereum_helpers_address_from_bytes__maybe_upper, + &raw_code_apps_ethereum_helpers_address_from_bytes__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_helpers_address_from_bytes = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_helpers_address_from_bytes, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 123, + #endif + .children = (void *)&children_apps_ethereum_helpers_address_from_bytes, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_ethereum_helpers_address_from_bytes + 7, + .line_info_top = fun_data_apps_ethereum_helpers_address_from_bytes + 19, + .opcodes = fun_data_apps_ethereum_helpers_address_from_bytes + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_helpers__lt_module_gt_ +// frozen bytecode for file apps/ethereum/helpers.py, scope apps_ethereum_helpers_bytes_from_address +static const byte fun_data_apps_ethereum_helpers_bytes_from_address[115] = { + 0x31,0x1c, // prelude + 0x11,0x25, // names: bytes_from_address, address + 0x80,0x33,0x4b,0x4b,0x29,0x45,0x29,0x2c,0x28,0x4a,0x29,0x45, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x12, // LOAD_CONST_STRING 'unhexlify' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'ubinascii' + 0x1c,0x12, // IMPORT_FROM 'unhexlify' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'trezor' + 0x1c,0x13, // IMPORT_FROM 'wire' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa8, // LOAD_CONST_SMALL_INT 40 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0x12,0x3d, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xaa, // LOAD_CONST_SMALL_INT 42 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5e, // POP_JUMP_IF_FALSE 30 + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x15, // LOAD_METHOD 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0x12,0x3d, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x1f, // LOAD_GLOBAL 'bytes' + 0x34,0x00, // CALL_FUNCTION 0 + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x14,0x15, // LOAD_METHOD 'ProcessError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_helpers_bytes_from_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_helpers_bytes_from_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 115, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_apps_ethereum_helpers_bytes_from_address + 4, + .line_info_top = fun_data_apps_ethereum_helpers_bytes_from_address + 16, + .opcodes = fun_data_apps_ethereum_helpers_bytes_from_address + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_helpers__lt_module_gt_ +// frozen bytecode for file apps/ethereum/helpers.py, scope apps_ethereum_helpers_get_type_name +static const byte fun_data_apps_ethereum_helpers_get_type_name[198] = { + 0x49,0x40, // prelude + 0x16,0x3e, // names: get_type_name, field + 0x80,0x46,0x20,0x4b,0x24,0x44,0x22,0x26,0x26,0x26,0x26,0x26,0x67,0x27,0x20,0x24,0x27,0x20,0x28,0x25,0x48,0x2b,0x2c,0x20,0x2c,0x27,0x23,0x4a,0x66,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING 'EthereumDataType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME 'trezor.enums' + 0x1c,0x17, // IMPORT_FROM 'EthereumDataType' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'data_type' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'size' + 0xc3, // STORE_FAST 3 + 0x2c,0x06, // BUILD_MAP 6 + 0x10,0x1b, // LOAD_CONST_STRING 'uint' + 0xb1, // LOAD_FAST 1 + 0x13,0x1c, // LOAD_ATTR 'UINT' + 0x62, // STORE_MAP + 0x10,0x1d, // LOAD_CONST_STRING 'int' + 0xb1, // LOAD_FAST 1 + 0x13,0x1e, // LOAD_ATTR 'INT' + 0x62, // STORE_MAP + 0x10,0x1f, // LOAD_CONST_STRING 'bytes' + 0xb1, // LOAD_FAST 1 + 0x13,0x20, // LOAD_ATTR 'BYTES' + 0x62, // STORE_MAP + 0x10,0x21, // LOAD_CONST_STRING 'string' + 0xb1, // LOAD_FAST 1 + 0x13,0x22, // LOAD_ATTR 'STRING' + 0x62, // STORE_MAP + 0x10,0x23, // LOAD_CONST_STRING 'bool' + 0xb1, // LOAD_FAST 1 + 0x13,0x24, // LOAD_ATTR 'BOOL' + 0x62, // STORE_MAP + 0x10,0x25, // LOAD_CONST_STRING 'address' + 0xb1, // LOAD_FAST 1 + 0x13,0x26, // LOAD_ATTR 'ADDRESS' + 0x62, // STORE_MAP + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x27, // LOAD_ATTR 'STRUCT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'struct_name' + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x29, // LOAD_ATTR 'ARRAY' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0x12,0x16, // LOAD_GLOBAL 'get_type_name' + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'entry_type' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x10,0x2b, // LOAD_CONST_STRING '{}[]' + 0x14,0x2c, // LOAD_METHOD 'format' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0x10,0x2d, // LOAD_CONST_STRING '{}[{}]' + 0x14,0x2c, // LOAD_METHOD 'format' + 0xb5, // LOAD_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE + 0x42,0x76, // JUMP 54 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x1c, // LOAD_ATTR 'UINT' + 0xb1, // LOAD_FAST 1 + 0x13,0x1e, // LOAD_ATTR 'INT' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0x12,0x3b, // LOAD_GLOBAL 'str' + 0xb3, // LOAD_FAST 3 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf4, // BINARY_OP 29 __mul__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x20, // LOAD_ATTR 'BYTES' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xb3, // LOAD_FAST 3 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0x12,0x3b, // LOAD_GLOBAL 'str' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE + 0x42,0x44, // JUMP 4 + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_helpers_get_type_name = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_helpers_get_type_name, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 198, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_apps_ethereum_helpers_get_type_name + 4, + .line_info_top = fun_data_apps_ethereum_helpers_get_type_name + 34, + .opcodes = fun_data_apps_ethereum_helpers_get_type_name + 34, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_helpers__lt_module_gt_ +// frozen bytecode for file apps/ethereum/helpers.py, scope apps_ethereum_helpers_decode_typed_data +static const byte fun_data_apps_ethereum_helpers_decode_typed_data[128] = { + 0x32,0x24, // prelude + 0x2e,0x3f,0x40, // names: decode_typed_data, data, type_name + 0x80,0x6e,0x20,0x29,0x2a,0x26,0x26,0x26,0x26,0x26,0x2c,0x29,0x2e,0x49,0x4a, // code info + 0xb1, // LOAD_FAST 1 + 0x14,0x2f, // LOAD_METHOD 'startswith' + 0x10,0x1f, // LOAD_CONST_STRING 'bytes' + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x02, // LOAD_GLOBAL 'hexlify' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x0c, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x10,0x21, // LOAD_CONST_STRING 'string' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb0, // LOAD_FAST 0 + 0x14,0x0c, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x10,0x25, // LOAD_CONST_STRING 'address' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x12,0x07, // LOAD_GLOBAL 'address_from_bytes' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x10,0x23, // LOAD_CONST_STRING 'bool' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb0, // LOAD_FAST 0 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x10,0x30, // LOAD_CONST_STRING 'true' + 0x63, // RETURN_VALUE + 0x10,0x31, // LOAD_CONST_STRING 'false' + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x14,0x2f, // LOAD_METHOD 'startswith' + 0x10,0x1b, // LOAD_CONST_STRING 'uint' + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x3b, // LOAD_GLOBAL 'str' + 0x12,0x1d, // LOAD_GLOBAL 'int' + 0x14,0x32, // LOAD_METHOD 'from_bytes' + 0xb0, // LOAD_FAST 0 + 0x10,0x33, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x14,0x2f, // LOAD_METHOD 'startswith' + 0x10,0x1d, // LOAD_CONST_STRING 'int' + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x3b, // LOAD_GLOBAL 'str' + 0x12,0x34, // LOAD_GLOBAL '_from_bytes_bigendian_signed' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0x12,0x41, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_helpers_decode_typed_data = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_helpers_decode_typed_data, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 128, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_ethereum_helpers_decode_typed_data + 5, + .line_info_top = fun_data_apps_ethereum_helpers_decode_typed_data + 20, + .opcodes = fun_data_apps_ethereum_helpers_decode_typed_data + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_helpers__lt_module_gt_ +// frozen bytecode for file apps/ethereum/helpers.py, scope apps_ethereum_helpers__from_bytes_bigendian_signed +static const byte fun_data_apps_ethereum_helpers__from_bytes_bigendian_signed[87] = { + 0x49,0x16, // prelude + 0x34,0x42, // names: _from_bytes_bigendian_signed, b + 0x80,0x81,0x28,0x23,0x26,0x2a,0x34,0x2a,0x45, // code info + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xef, // BINARY_OP 24 __and__ + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x44,0x73, // POP_JUMP_IF_FALSE 51 + 0x12,0x43, // LOAD_GLOBAL 'bytearray' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x12,0x3d, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x4f, // JUMP 15 + 0x57, // DUP_TOP + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x55, // LOAD_SUBSCR + 0xd2, // UNARY_OP 2 __invert__ + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xef, // BINARY_OP 24 __and__ + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x56, // STORE_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2c, // POP_JUMP_IF_TRUE -20 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x1d, // LOAD_GLOBAL 'int' + 0x14,0x32, // LOAD_METHOD 'from_bytes' + 0xb2, // LOAD_FAST 2 + 0x10,0x33, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0xd1, // UNARY_OP 1 __neg__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x63, // RETURN_VALUE + 0x12,0x1d, // LOAD_GLOBAL 'int' + 0x14,0x32, // LOAD_METHOD 'from_bytes' + 0xb0, // LOAD_FAST 0 + 0x10,0x33, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_helpers__from_bytes_bigendian_signed = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_helpers__from_bytes_bigendian_signed, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 87, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 52, + .line_info = fun_data_apps_ethereum_helpers__from_bytes_bigendian_signed + 4, + .line_info_top = fun_data_apps_ethereum_helpers__from_bytes_bigendian_signed + 13, + .opcodes = fun_data_apps_ethereum_helpers__from_bytes_bigendian_signed + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_helpers__lt_module_gt_[] = { + &raw_code_apps_ethereum_helpers_address_from_bytes, + &raw_code_apps_ethereum_helpers_bytes_from_address, + &raw_code_apps_ethereum_helpers_get_type_name, + &raw_code_apps_ethereum_helpers_decode_typed_data, + &raw_code_apps_ethereum_helpers__from_bytes_bigendian_signed, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_helpers__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_helpers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 75, + #endif + .children = (void *)&children_apps_ethereum_helpers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ethereum_helpers__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ethereum_helpers__lt_module_gt_ + 18, + .opcodes = fun_data_apps_ethereum_helpers__lt_module_gt_ + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ethereum_helpers[70] = { + MP_QSTR_apps_slash_ethereum_slash_helpers_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_hexlify, + MP_QSTR_ubinascii, + MP_QSTR_networks, + MP_QSTR_, + MP_QSTR_UNKNOWN_NETWORK, + MP_QSTR_address_from_bytes, + MP_QSTR_sha3_256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_chain_id, + MP_QSTR_0x, + MP_QSTR_decode, + MP_QSTR_encode, + MP_QSTR_keccak, + MP_QSTR_digest, + MP_QSTR_join, + MP_QSTR_bytes_from_address, + MP_QSTR_unhexlify, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_ProcessError, + MP_QSTR_get_type_name, + MP_QSTR_EthereumDataType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_data_type, + MP_QSTR_size, + MP_QSTR_uint, + MP_QSTR_UINT, + MP_QSTR_int, + MP_QSTR_INT, + MP_QSTR_bytes, + MP_QSTR_BYTES, + MP_QSTR_string, + MP_QSTR_STRING, + MP_QSTR_bool, + MP_QSTR_BOOL, + MP_QSTR_address, + MP_QSTR_ADDRESS, + MP_QSTR_STRUCT, + MP_QSTR_struct_name, + MP_QSTR_ARRAY, + MP_QSTR_entry_type, + MP_QSTR__brace_open__brace_close__bracket_open__bracket_close_, + MP_QSTR_format, + MP_QSTR__brace_open__brace_close__bracket_open__brace_open__brace_close__bracket_close_, + MP_QSTR_decode_typed_data, + MP_QSTR_startswith, + MP_QSTR_true, + MP_QSTR_false, + MP_QSTR_from_bytes, + MP_QSTR_big, + MP_QSTR__from_bytes_bigendian_signed, + MP_QSTR__maybe_upper, + MP_QSTR_upper, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_RSKIP60_NETWORKS, + MP_QSTR_address_bytes, + MP_QSTR_network, + MP_QSTR_str, + MP_QSTR_range, + MP_QSTR_len, + MP_QSTR_field, + MP_QSTR_data, + MP_QSTR_type_name, + MP_QSTR_ValueError, + MP_QSTR_b, + MP_QSTR_bytearray, + MP_QSTR__star_, + MP_QSTR_i, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_helpers_0 = {{&mp_type_tuple}, 2, { + MP_ROM_INT(30), + MP_ROM_INT(31), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_helpers_1 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_0x), + MP_ROM_QSTR(MP_QSTR_0X), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_helpers_2 = {{&mp_type_str}, 11076, 41, (const byte*)"\x45\x74\x68\x65\x72\x65\x75\x6d\x3a\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x62\x65\x67\x69\x6e\x6e\x69\x6e\x67\x20\x6f\x66\x20\x61\x6e\x20\x61\x64\x64\x72\x65\x73\x73"}; +static const mp_obj_str_t const_obj_apps_ethereum_helpers_3 = {{&mp_type_str}, 6231, 32, (const byte*)"\x45\x74\x68\x65\x72\x65\x75\x6d\x3a\x20\x49\x6e\x76\x61\x6c\x69\x64\x20\x61\x64\x64\x72\x65\x73\x73\x20\x6c\x65\x6e\x67\x74\x68"}; +static const mp_obj_str_t const_obj_apps_ethereum_helpers_4 = {{&mp_type_bytes}, 46500, 1, (const byte*)"\x01"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_ethereum_helpers[5] = { + MP_ROM_PTR(&const_obj_apps_ethereum_helpers_0), + MP_ROM_PTR(&const_obj_apps_ethereum_helpers_1), + MP_ROM_PTR(&const_obj_apps_ethereum_helpers_2), + MP_ROM_PTR(&const_obj_apps_ethereum_helpers_3), + MP_ROM_PTR(&const_obj_apps_ethereum_helpers_4), +}; + +static const mp_frozen_module_t frozen_module_apps_ethereum_helpers = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ethereum_helpers, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_ethereum_helpers, + }, + .rc = &raw_code_apps_ethereum_helpers__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ethereum_keychain +// - original source file: build/firmware/src/apps/ethereum/keychain.mpy +// - frozen file name: apps/ethereum/keychain.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ethereum/keychain.py, scope apps_ethereum_keychain__lt_module_gt_ +static const byte fun_data_apps_ethereum_keychain__lt_module_gt_[131] = { + 0x18,0x2c, // prelude + 0x01, // names: + 0x40,0x4c,0x2c,0x4c,0x58,0x80,0x2d,0x20,0x24,0x24,0x24,0x68,0x20,0x84,0x0b,0x89,0x14,0x84,0x12,0x84,0x13, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'EthereumNetworkInfo' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.messages' + 0x1c,0x02, // IMPORT_FROM 'EthereumNetworkInfo' + 0x16,0x02, // STORE_NAME 'EthereumNetworkInfo' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'apps.common' + 0x1c,0x04, // IMPORT_FROM 'paths' + 0x16,0x04, // STORE_NAME 'paths' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'get_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x06, // IMPORT_FROM 'get_keychain' + 0x16,0x06, // STORE_NAME 'get_keychain' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x08, // LOAD_CONST_STRING 'CURVE' + 0x10,0x09, // LOAD_CONST_STRING 'definitions' + 0x10,0x0a, // LOAD_CONST_STRING 'networks' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x0b, // IMPORT_NAME '' + 0x1c,0x08, // IMPORT_FROM 'CURVE' + 0x16,0x08, // STORE_NAME 'CURVE' + 0x1c,0x09, // IMPORT_FROM 'definitions' + 0x16,0x09, // STORE_NAME 'definitions' + 0x1c,0x0a, // IMPORT_FROM 'networks' + 0x16,0x0a, // STORE_NAME 'networks' + 0x59, // POP_TOP + 0x11,0x04, // LOAD_NAME 'paths' + 0x13,0x0c, // LOAD_ATTR 'PATTERN_BIP44' + 0x11,0x04, // LOAD_NAME 'paths' + 0x13,0x0d, // LOAD_ATTR 'PATTERN_SEP5' + 0x11,0x04, // LOAD_NAME 'paths' + 0x13,0x0e, // LOAD_ATTR 'PATTERN_SEP5_LEDGER_LIVE_LEGACY' + 0x11,0x04, // LOAD_NAME 'paths' + 0x13,0x0f, // LOAD_ATTR 'PATTERN_CASA' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x16,0x25, // STORE_NAME 'PATTERNS_ADDRESS' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x10, // STORE_NAME '_slip44_from_address_n' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x12, // STORE_NAME '_defs_from_message' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x17, // STORE_NAME '_schemas_from_network' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x1a, // STORE_NAME 'with_keychain_from_path' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x1b, // STORE_NAME 'with_keychain_from_chain_id' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_keychain__lt_module_gt_ +// frozen bytecode for file apps/ethereum/keychain.py, scope apps_ethereum_keychain__slip44_from_address_n +static const byte fun_data_apps_ethereum_keychain__slip44_from_address_n[54] = { + 0x21,0x12, // prelude + 0x10,0x24, // names: _slip44_from_address_n, address_n + 0x80,0x3f,0x25,0x29,0x42,0x30,0x44, // code info + 0x12,0x04, // LOAD_GLOBAL 'paths' + 0x13,0x11, // LOAD_ATTR 'HARDENED' + 0xc1, // STORE_FAST 1 + 0x12,0x26, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xad, // LOAD_CONST_SMALL_INT 45 + 0xb1, // LOAD_FAST 1 + 0xed, // BINARY_OP 22 __or__ + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0xef, // BINARY_OP 24 __and__ + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0xd2, // UNARY_OP 2 __invert__ + 0xef, // BINARY_OP 24 __and__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_keychain__slip44_from_address_n = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_keychain__slip44_from_address_n, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 54, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_ethereum_keychain__slip44_from_address_n + 4, + .line_info_top = fun_data_apps_ethereum_keychain__slip44_from_address_n + 11, + .opcodes = fun_data_apps_ethereum_keychain__slip44_from_address_n + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_keychain__lt_module_gt_ +// frozen bytecode for file apps/ethereum/keychain.py, scope apps_ethereum_keychain__defs_from_message +static const byte fun_data_apps_ethereum_keychain__defs_from_message[81] = { + 0xd3,0x80,0x01,0x1c, // prelude + 0x12,0x27,0x22,0x19, // names: _defs_from_message, msg, chain_id, slip44 + 0x80,0x4c,0x22,0x62,0x29,0x28,0x26,0x48,0x29,0x46, // code info + 0x51, // LOAD_CONST_NONE + 0xc3, // STORE_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xc4, // STORE_FAST 4 + 0x12,0x28, // LOAD_GLOBAL 'hasattr' + 0xb0, // LOAD_FAST 0 + 0x10,0x09, // LOAD_CONST_STRING 'definitions' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'definitions' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'definitions' + 0x13,0x13, // LOAD_ATTR 'encoded_network' + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'definitions' + 0x13,0x14, // LOAD_ATTR 'encoded_token' + 0xc4, // STORE_FAST 4 + 0x42,0x4f, // JUMP 15 + 0x12,0x28, // LOAD_GLOBAL 'hasattr' + 0xb0, // LOAD_FAST 0 + 0x10,0x13, // LOAD_CONST_STRING 'encoded_network' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'encoded_network' + 0xc3, // STORE_FAST 3 + 0x42,0x40, // JUMP 0 + 0x12,0x09, // LOAD_GLOBAL 'definitions' + 0x13,0x15, // LOAD_ATTR 'Definitions' + 0x14,0x16, // LOAD_METHOD 'from_encoded' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x04, // CALL_METHOD 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_keychain__defs_from_message = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_ethereum_keychain__defs_from_message, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 81, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_ethereum_keychain__defs_from_message + 8, + .line_info_top = fun_data_apps_ethereum_keychain__defs_from_message + 18, + .opcodes = fun_data_apps_ethereum_keychain__defs_from_message + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_keychain__lt_module_gt_ +// frozen bytecode for file apps/ethereum/keychain.py, scope apps_ethereum_keychain__schemas_from_network +static const byte fun_data_apps_ethereum_keychain__schemas_from_network[70] = { + 0x2a,0x19, // prelude + 0x17,0x29,0x2a, // names: _schemas_from_network, patterns, network_info + 0x80,0x61,0x20,0x48,0x26,0x49,0x4b,0x47,0x28,0x03, // code info + 0xb1, // LOAD_FAST 1 + 0x12,0x0a, // LOAD_GLOBAL 'networks' + 0x13,0x18, // LOAD_ATTR 'UNKNOWN_NETWORK' + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x27,0x03, // STORE_DEREF 3 + 0x42,0x5b, // JUMP 27 + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'slip44' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'slip44' + 0x22,0x3c, // LOAD_CONST_SMALL_INT 60 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x27,0x03, // STORE_DEREF 3 + 0x42,0x47, // JUMP 7 + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'slip44' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x27,0x03, // STORE_DEREF 3 + 0xb3, // LOAD_FAST 3 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x32,0x01, // MAKE_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_keychain__schemas_from_network +// frozen bytecode for file apps/ethereum/keychain.py, scope apps_ethereum_keychain__schemas_from_network__lt_listcomp_gt_ +static const byte fun_data_apps_ethereum_keychain__schemas_from_network__lt_listcomp_gt_[30] = { + 0x5a,0x0a, // prelude + 0x1c,0x2c,0x2c, // names: , *, * + 0x80,0x6b, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x10, // FOR_ITER 16 + 0xc2, // STORE_FAST 2 + 0x12,0x04, // LOAD_GLOBAL 'paths' + 0x13,0x1d, // LOAD_ATTR 'PathSchema' + 0x14,0x1e, // LOAD_METHOD 'parse' + 0xb2, // LOAD_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0x36,0x02, // CALL_METHOD 2 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x2e, // JUMP -18 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_keychain__schemas_from_network__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_keychain__schemas_from_network__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_apps_ethereum_keychain__schemas_from_network__lt_listcomp_gt_ + 5, + .line_info_top = fun_data_apps_ethereum_keychain__schemas_from_network__lt_listcomp_gt_ + 7, + .opcodes = fun_data_apps_ethereum_keychain__schemas_from_network__lt_listcomp_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_keychain__schemas_from_network +// frozen bytecode for file apps/ethereum/keychain.py, scope apps_ethereum_keychain__schemas_from_network__lt_listcomp_gt_2 +static const byte fun_data_apps_ethereum_keychain__schemas_from_network__lt_listcomp_gt_2[23] = { + 0x41,0x08, // prelude + 0x1c,0x2c, // names: , * + 0x80,0x6c, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x1f, // LOAD_METHOD 'copy' + 0x36,0x00, // CALL_METHOD 0 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x34, // JUMP -12 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_keychain__schemas_from_network__lt_listcomp_gt_2 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_keychain__schemas_from_network__lt_listcomp_gt_2, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_apps_ethereum_keychain__schemas_from_network__lt_listcomp_gt_2 + 4, + .line_info_top = fun_data_apps_ethereum_keychain__schemas_from_network__lt_listcomp_gt_2 + 6, + .opcodes = fun_data_apps_ethereum_keychain__schemas_from_network__lt_listcomp_gt_2 + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_keychain__schemas_from_network[] = { + &raw_code_apps_ethereum_keychain__schemas_from_network__lt_listcomp_gt_, + &raw_code_apps_ethereum_keychain__schemas_from_network__lt_listcomp_gt_2, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_keychain__schemas_from_network = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_keychain__schemas_from_network, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = (void *)&children_apps_ethereum_keychain__schemas_from_network, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_ethereum_keychain__schemas_from_network + 5, + .line_info_top = fun_data_apps_ethereum_keychain__schemas_from_network + 14, + .opcodes = fun_data_apps_ethereum_keychain__schemas_from_network + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_keychain__lt_module_gt_ +// frozen bytecode for file apps/ethereum/keychain.py, scope apps_ethereum_keychain_with_keychain_from_path +static const byte fun_data_apps_ethereum_keychain_with_keychain_from_path[18] = { + 0x90,0x80,0x80,0x40,0x0b, // prelude + 0x1a, // names: with_keychain_from_path + 0x80,0x72,0x85,0x0d,0x00, // code info + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_keychain_with_keychain_from_path +// frozen bytecode for file apps/ethereum/keychain.py, scope apps_ethereum_keychain_with_keychain_from_path_decorator +static const byte fun_data_apps_ethereum_keychain_with_keychain_from_path_decorator[18] = { + 0x22,0x0f, // prelude + 0x20,0x2c,0x2b, // names: decorator, *, func + 0x80,0x75,0x86,0x08,0x01, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x02, // MAKE_CLOSURE 0 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_keychain_with_keychain_from_path_decorator +// frozen bytecode for file apps/ethereum/keychain.py, scope apps_ethereum_keychain_with_keychain_from_path_decorator_wrapper +static const byte fun_data_apps_ethereum_keychain_with_keychain_from_path_decorator_wrapper[73] = { + 0xe7,0x40,0x16, // prelude + 0x21,0x2c,0x2c,0x27, // names: wrapper, *, *, msg + 0x80,0x76,0x28,0x2a,0x2a,0x2b,0x24, // code info + 0x12,0x10, // LOAD_GLOBAL '_slip44_from_address_n' + 0xb2, // LOAD_FAST 2 + 0x13,0x24, // LOAD_ATTR 'address_n' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x12,0x12, // LOAD_GLOBAL '_defs_from_message' + 0xb2, // LOAD_FAST 2 + 0x10,0x19, // LOAD_CONST_STRING 'slip44' + 0xb3, // LOAD_FAST 3 + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0xc4, // STORE_FAST 4 + 0x12,0x17, // LOAD_GLOBAL '_schemas_from_network' + 0x25,0x01, // LOAD_DEREF 1 + 0xb4, // LOAD_FAST 4 + 0x13,0x23, // LOAD_ATTR 'network' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0x12,0x06, // LOAD_GLOBAL 'get_keychain' + 0x12,0x08, // LOAD_GLOBAL 'CURVE' + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x47,0x0d, // SETUP_WITH 13 + 0x59, // POP_TOP + 0x25,0x00, // LOAD_DEREF 0 + 0xb2, // LOAD_FAST 2 + 0xb6, // LOAD_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_keychain_with_keychain_from_path_decorator_wrapper = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_ethereum_keychain_with_keychain_from_path_decorator_wrapper, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 73, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_ethereum_keychain_with_keychain_from_path_decorator_wrapper + 7, + .line_info_top = fun_data_apps_ethereum_keychain_with_keychain_from_path_decorator_wrapper + 14, + .opcodes = fun_data_apps_ethereum_keychain_with_keychain_from_path_decorator_wrapper + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_keychain_with_keychain_from_path_decorator[] = { + &raw_code_apps_ethereum_keychain_with_keychain_from_path_decorator_wrapper, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_keychain_with_keychain_from_path_decorator = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_keychain_with_keychain_from_path_decorator, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = (void *)&children_apps_ethereum_keychain_with_keychain_from_path_decorator, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_ethereum_keychain_with_keychain_from_path_decorator + 5, + .line_info_top = fun_data_apps_ethereum_keychain_with_keychain_from_path_decorator + 9, + .opcodes = fun_data_apps_ethereum_keychain_with_keychain_from_path_decorator + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_keychain_with_keychain_from_path[] = { + &raw_code_apps_ethereum_keychain_with_keychain_from_path_decorator, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_keychain_with_keychain_from_path = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x04, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_keychain_with_keychain_from_path, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = (void *)&children_apps_ethereum_keychain_with_keychain_from_path, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 4, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 26, + .line_info = fun_data_apps_ethereum_keychain_with_keychain_from_path + 6, + .line_info_top = fun_data_apps_ethereum_keychain_with_keychain_from_path + 10, + .opcodes = fun_data_apps_ethereum_keychain_with_keychain_from_path + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_keychain__lt_module_gt_ +// frozen bytecode for file apps/ethereum/keychain.py, scope apps_ethereum_keychain_with_keychain_from_chain_id +static const byte fun_data_apps_ethereum_keychain_with_keychain_from_chain_id[16] = { + 0x11,0x0d, // prelude + 0x1b,0x2b, // names: with_keychain_from_chain_id, func + 0x80,0x86,0x85,0x07,0x00, // code info + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_keychain_with_keychain_from_chain_id +// frozen bytecode for file apps/ethereum/keychain.py, scope apps_ethereum_keychain_with_keychain_from_chain_id_wrapper +static const byte fun_data_apps_ethereum_keychain_with_keychain_from_chain_id_wrapper[65] = { + 0xd6,0x40,0x12, // prelude + 0x21,0x2c,0x27, // names: wrapper, *, msg + 0x80,0x87,0x2c,0x2a,0x2b,0x24, // code info + 0x12,0x12, // LOAD_GLOBAL '_defs_from_message' + 0xb1, // LOAD_FAST 1 + 0x10,0x22, // LOAD_CONST_STRING 'chain_id' + 0xb1, // LOAD_FAST 1 + 0x13,0x22, // LOAD_ATTR 'chain_id' + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0xc2, // STORE_FAST 2 + 0x12,0x17, // LOAD_GLOBAL '_schemas_from_network' + 0x12,0x25, // LOAD_GLOBAL 'PATTERNS_ADDRESS' + 0xb2, // LOAD_FAST 2 + 0x13,0x23, // LOAD_ATTR 'network' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc3, // STORE_FAST 3 + 0x12,0x06, // LOAD_GLOBAL 'get_keychain' + 0x12,0x08, // LOAD_GLOBAL 'CURVE' + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x47,0x0d, // SETUP_WITH 13 + 0x59, // POP_TOP + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x5c, // WITH_CLEANUP + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_keychain_with_keychain_from_chain_id_wrapper = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_keychain_with_keychain_from_chain_id_wrapper, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 65, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_ethereum_keychain_with_keychain_from_chain_id_wrapper + 6, + .line_info_top = fun_data_apps_ethereum_keychain_with_keychain_from_chain_id_wrapper + 12, + .opcodes = fun_data_apps_ethereum_keychain_with_keychain_from_chain_id_wrapper + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_keychain_with_keychain_from_chain_id[] = { + &raw_code_apps_ethereum_keychain_with_keychain_from_chain_id_wrapper, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_keychain_with_keychain_from_chain_id = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_keychain_with_keychain_from_chain_id, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = (void *)&children_apps_ethereum_keychain_with_keychain_from_chain_id, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 27, + .line_info = fun_data_apps_ethereum_keychain_with_keychain_from_chain_id + 4, + .line_info_top = fun_data_apps_ethereum_keychain_with_keychain_from_chain_id + 8, + .opcodes = fun_data_apps_ethereum_keychain_with_keychain_from_chain_id + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_keychain__lt_module_gt_[] = { + &raw_code_apps_ethereum_keychain__slip44_from_address_n, + &raw_code_apps_ethereum_keychain__defs_from_message, + &raw_code_apps_ethereum_keychain__schemas_from_network, + &raw_code_apps_ethereum_keychain_with_keychain_from_path, + &raw_code_apps_ethereum_keychain_with_keychain_from_chain_id, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_keychain__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_keychain__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 131, + #endif + .children = (void *)&children_apps_ethereum_keychain__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ethereum_keychain__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ethereum_keychain__lt_module_gt_ + 24, + .opcodes = fun_data_apps_ethereum_keychain__lt_module_gt_ + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ethereum_keychain[45] = { + MP_QSTR_apps_slash_ethereum_slash_keychain_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_EthereumNetworkInfo, + MP_QSTR_trezor_dot_messages, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_get_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_CURVE, + MP_QSTR_definitions, + MP_QSTR_networks, + MP_QSTR_, + MP_QSTR_PATTERN_BIP44, + MP_QSTR_PATTERN_SEP5, + MP_QSTR_PATTERN_SEP5_LEDGER_LIVE_LEGACY, + MP_QSTR_PATTERN_CASA, + MP_QSTR__slip44_from_address_n, + MP_QSTR_HARDENED, + MP_QSTR__defs_from_message, + MP_QSTR_encoded_network, + MP_QSTR_encoded_token, + MP_QSTR_Definitions, + MP_QSTR_from_encoded, + MP_QSTR__schemas_from_network, + MP_QSTR_UNKNOWN_NETWORK, + MP_QSTR_slip44, + MP_QSTR_with_keychain_from_path, + MP_QSTR_with_keychain_from_chain_id, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_PathSchema, + MP_QSTR_parse, + MP_QSTR_copy, + MP_QSTR_decorator, + MP_QSTR_wrapper, + MP_QSTR_chain_id, + MP_QSTR_network, + MP_QSTR_address_n, + MP_QSTR_PATTERNS_ADDRESS, + MP_QSTR_len, + MP_QSTR_msg, + MP_QSTR_hasattr, + MP_QSTR_patterns, + MP_QSTR_network_info, + MP_QSTR_func, + MP_QSTR__star_, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_keychain_0 = {{&mp_type_tuple}, 2, { + MP_ROM_INT(60), + MP_ROM_INT(1), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_ethereum_keychain[1] = { + MP_ROM_PTR(&const_obj_apps_ethereum_keychain_0), +}; + +static const mp_frozen_module_t frozen_module_apps_ethereum_keychain = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ethereum_keychain, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_ethereum_keychain, + }, + .rc = &raw_code_apps_ethereum_keychain__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ethereum_layout +// - original source file: build/firmware/src/apps/ethereum/layout.mpy +// - frozen file name: apps/ethereum/layout.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ethereum/layout.py, scope apps_ethereum_layout__lt_module_gt_ +static const byte fun_data_apps_ethereum_layout__lt_module_gt_[192] = { + 0x20,0x4a, // prelude + 0x01, // names: + 0x40,0x2c,0x2c,0x2c,0x7e,0x60,0x20,0x52,0x80,0x0b,0x84,0x1a,0x84,0x1e,0x84,0x0f,0x84,0x0d,0x84,0x0b,0x84,0x0c,0x84,0x09,0x84,0x11,0x60,0x22,0x89,0x12,0x84,0x0e,0x88,0x27,0x84,0x16, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'ui' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'ui' + 0x16,0x02, // STORE_NAME 'ui' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.enums' + 0x1c,0x04, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x04, // STORE_NAME 'ButtonRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'format_plural' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.strings' + 0x1c,0x06, // IMPORT_FROM 'format_plural' + 0x16,0x06, // STORE_NAME 'format_plural' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'confirm_blob' + 0x10,0x09, // LOAD_CONST_STRING 'confirm_ethereum_tx' + 0x10,0x0a, // LOAD_CONST_STRING 'confirm_text' + 0x10,0x0b, // LOAD_CONST_STRING 'should_show_more' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x0c, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x08, // IMPORT_FROM 'confirm_blob' + 0x16,0x08, // STORE_NAME 'confirm_blob' + 0x1c,0x09, // IMPORT_FROM 'confirm_ethereum_tx' + 0x16,0x09, // STORE_NAME 'confirm_ethereum_tx' + 0x1c,0x0a, // IMPORT_FROM 'confirm_text' + 0x16,0x0a, // STORE_NAME 'confirm_text' + 0x1c,0x0b, // IMPORT_FROM 'should_show_more' + 0x16,0x0b, // STORE_NAME 'should_show_more' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0d, // LOAD_CONST_STRING 'address_from_bytes' + 0x10,0x0e, // LOAD_CONST_STRING 'decode_typed_data' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0f, // IMPORT_NAME 'helpers' + 0x1c,0x0d, // IMPORT_FROM 'address_from_bytes' + 0x16,0x0d, // STORE_NAME 'address_from_bytes' + 0x1c,0x0e, // IMPORT_FROM 'decode_typed_data' + 0x16,0x0e, // STORE_NAME 'decode_typed_data' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x10, // STORE_NAME 'require_confirm_tx' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x15, // STORE_NAME 'require_confirm_tx_eip1559' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x16, // STORE_NAME 'require_confirm_unknown_token' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x1f, // STORE_NAME 'require_confirm_address' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x20, // STORE_NAME 'require_confirm_data' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x22, // STORE_NAME 'confirm_typed_data_final' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x26, // STORE_NAME 'confirm_empty_typed_message' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x28, // STORE_NAME 'should_show_domain' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x08, // MAKE_FUNCTION_DEFARGS 8 + 0x16,0x2c, // STORE_NAME 'should_show_struct' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x30, // STORE_NAME 'should_show_array' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x0a, // MAKE_FUNCTION_DEFARGS 10 + 0x16,0x32, // STORE_NAME 'confirm_typed_value' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x3a, // STORE_NAME 'format_ethereum_amount' + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x0c, // MAKE_FUNCTION_DEFARGS 12 + 0x16,0x40, // STORE_NAME 'limit_str' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_layout__lt_module_gt_ +// frozen bytecode for file apps/ethereum/layout.py, scope apps_ethereum_layout_require_confirm_tx +static const byte fun_data_apps_ethereum_layout_require_confirm_tx[98] = { + 0x82,0x54,0x26, // prelude + 0x10,0x44,0x45,0x46,0x47,0x48,0x49, // names: require_confirm_tx, to_bytes, value, gas_price, gas_limit, network, token + 0x80,0x21,0x23,0x49,0x43,0x28,0x2a,0x28,0x48,0x20,0x25,0x68, // code info + 0xb0, // LOAD_FAST 0 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x0d, // LOAD_GLOBAL 'address_from_bytes' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc6, // STORE_FAST 6 + 0x42,0x43, // JUMP 3 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xc6, // STORE_FAST 6 + 0x12,0x3a, // LOAD_GLOBAL 'format_ethereum_amount' + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc7, // STORE_FAST 7 + 0x12,0x3a, // LOAD_GLOBAL 'format_ethereum_amount' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xf4, // BINARY_OP 29 __mul__ + 0x51, // LOAD_CONST_NONE + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc8, // STORE_FAST 8 + 0x10,0x11, // LOAD_CONST_STRING '{} units' + 0x14,0x12, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0xc9, // STORE_FAST 9 + 0x12,0x3a, // LOAD_GLOBAL 'format_ethereum_amount' + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0xca, // STORE_FAST 10 + 0x10,0x13, // LOAD_CONST_STRING 'Gas limit:' + 0xb9, // LOAD_FAST 9 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x14, // LOAD_CONST_STRING 'Gas price:' + 0xba, // LOAD_FAST 10 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xcb, // STORE_FAST 11 + 0x12,0x09, // LOAD_GLOBAL 'confirm_ethereum_tx' + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0xbb, // LOAD_FAST 11 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_layout_require_confirm_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 6, + .fun_data = fun_data_apps_ethereum_layout_require_confirm_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 98, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_ethereum_layout_require_confirm_tx + 10, + .line_info_top = fun_data_apps_ethereum_layout_require_confirm_tx + 22, + .opcodes = fun_data_apps_ethereum_layout_require_confirm_tx + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_layout__lt_module_gt_ +// frozen bytecode for file apps/ethereum/layout.py, scope apps_ethereum_layout_require_confirm_tx_eip1559 +static const byte fun_data_apps_ethereum_layout_require_confirm_tx_eip1559[114] = { + 0x93,0x54,0x2c, // prelude + 0x15,0x44,0x45,0x4a,0x4b,0x47,0x48,0x49, // names: require_confirm_tx_eip1559, to_bytes, value, max_gas_fee, max_priority_fee, gas_limit, network, token + 0x80,0x3d,0x23,0x49,0x43,0x28,0x2a,0x28,0x28,0x48,0x20,0x25,0x25,0x68, // code info + 0xb0, // LOAD_FAST 0 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x0d, // LOAD_GLOBAL 'address_from_bytes' + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc7, // STORE_FAST 7 + 0x42,0x43, // JUMP 3 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xc7, // STORE_FAST 7 + 0x12,0x3a, // LOAD_GLOBAL 'format_ethereum_amount' + 0xb1, // LOAD_FAST 1 + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc8, // STORE_FAST 8 + 0x12,0x3a, // LOAD_GLOBAL 'format_ethereum_amount' + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0xf4, // BINARY_OP 29 __mul__ + 0x51, // LOAD_CONST_NONE + 0xb5, // LOAD_FAST 5 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc9, // STORE_FAST 9 + 0x10,0x11, // LOAD_CONST_STRING '{} units' + 0x14,0x12, // LOAD_METHOD 'format' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0xca, // STORE_FAST 10 + 0x12,0x3a, // LOAD_GLOBAL 'format_ethereum_amount' + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xb5, // LOAD_FAST 5 + 0x34,0x03, // CALL_FUNCTION 3 + 0xcb, // STORE_FAST 11 + 0x12,0x3a, // LOAD_GLOBAL 'format_ethereum_amount' + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xb5, // LOAD_FAST 5 + 0x34,0x03, // CALL_FUNCTION 3 + 0xcc, // STORE_FAST 12 + 0x10,0x13, // LOAD_CONST_STRING 'Gas limit:' + 0xba, // LOAD_FAST 10 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xbb, // LOAD_FAST 11 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xbc, // LOAD_FAST 12 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x03, // BUILD_TUPLE 3 + 0xcd, // STORE_FAST 13 + 0x12,0x09, // LOAD_GLOBAL 'confirm_ethereum_tx' + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0xb9, // LOAD_FAST 9 + 0xbd, // LOAD_FAST 13 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_layout_require_confirm_tx_eip1559 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 7, + .fun_data = fun_data_apps_ethereum_layout_require_confirm_tx_eip1559, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 114, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_ethereum_layout_require_confirm_tx_eip1559 + 11, + .line_info_top = fun_data_apps_ethereum_layout_require_confirm_tx_eip1559 + 25, + .opcodes = fun_data_apps_ethereum_layout_require_confirm_tx_eip1559 + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_layout__lt_module_gt_ +// frozen bytecode for file apps/ethereum/layout.py, scope apps_ethereum_layout_require_confirm_unknown_token +static const byte fun_data_apps_ethereum_layout_require_confirm_unknown_token[64] = { + 0x51,0x14, // prelude + 0x16,0x4c, // names: require_confirm_unknown_token, address_bytes + 0x80,0x52,0x4b,0x4b,0x2c,0x21,0x65,0x24, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING 'hexlify' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME 'ubinascii' + 0x1c,0x17, // IMPORT_FROM 'hexlify' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x19, // LOAD_CONST_STRING 'confirm_address' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x19, // IMPORT_FROM 'confirm_address' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x10,0x1a, // LOAD_CONST_STRING '0x' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x1b, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0xf2, // BINARY_OP 27 __add__ + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xb3, // LOAD_FAST 3 + 0x10,0x1c, // LOAD_CONST_STRING 'Contract:' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x10,0x1d, // LOAD_CONST_STRING 'br_code' + 0x12,0x04, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x1e, // LOAD_ATTR 'SignTx' + 0x34,0x82,0x04, // CALL_FUNCTION 260 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_layout_require_confirm_unknown_token = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_layout_require_confirm_unknown_token, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 64, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_apps_ethereum_layout_require_confirm_unknown_token + 4, + .line_info_top = fun_data_apps_ethereum_layout_require_confirm_unknown_token + 12, + .opcodes = fun_data_apps_ethereum_layout_require_confirm_unknown_token + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_layout__lt_module_gt_ +// frozen bytecode for file apps/ethereum/layout.py, scope apps_ethereum_layout_require_confirm_address +static const byte fun_data_apps_ethereum_layout_require_confirm_address[59] = { + 0x41,0x12, // prelude + 0x1f,0x4c, // names: require_confirm_address, address_bytes + 0x80,0x61,0x4b,0x4b,0x2c,0x21,0x45, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING 'hexlify' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME 'ubinascii' + 0x1c,0x17, // IMPORT_FROM 'hexlify' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x19, // LOAD_CONST_STRING 'confirm_address' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x19, // IMPORT_FROM 'confirm_address' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x10,0x1a, // LOAD_CONST_STRING '0x' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x1b, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0xf2, // BINARY_OP 27 __add__ + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0xb3, // LOAD_FAST 3 + 0x10,0x1d, // LOAD_CONST_STRING 'br_code' + 0x12,0x04, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x1e, // LOAD_ATTR 'SignTx' + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_layout_require_confirm_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_layout_require_confirm_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_ethereum_layout_require_confirm_address + 4, + .line_info_top = fun_data_apps_ethereum_layout_require_confirm_address + 11, + .opcodes = fun_data_apps_ethereum_layout_require_confirm_address + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_layout__lt_module_gt_ +// frozen bytecode for file apps/ethereum/layout.py, scope apps_ethereum_layout_require_confirm_data +static const byte fun_data_apps_ethereum_layout_require_confirm_data[38] = { + 0x52,0x12, // prelude + 0x20,0x4d,0x4e, // names: require_confirm_data, data, data_total + 0x80,0x6e,0x22,0x22,0x43,0x29, // code info + 0x12,0x08, // LOAD_GLOBAL 'confirm_blob' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0xb0, // LOAD_FAST 0 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x14,0x12, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x1d, // LOAD_CONST_STRING 'br_code' + 0x12,0x04, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x1e, // LOAD_ATTR 'SignTx' + 0x10,0x21, // LOAD_CONST_STRING 'ask_pagination' + 0x52, // LOAD_CONST_TRUE + 0x34,0x84,0x04, // CALL_FUNCTION 516 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_layout_require_confirm_data = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_layout_require_confirm_data, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_ethereum_layout_require_confirm_data + 5, + .line_info_top = fun_data_apps_ethereum_layout_require_confirm_data + 11, + .opcodes = fun_data_apps_ethereum_layout_require_confirm_data + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_layout__lt_module_gt_ +// frozen bytecode for file apps/ethereum/layout.py, scope apps_ethereum_layout_confirm_typed_data_final +static const byte fun_data_apps_ethereum_layout_confirm_typed_data_final[44] = { + 0xc0,0x40,0x0e, // prelude + 0x22, // names: confirm_typed_data_final + 0x80,0x79,0x4b,0x43,0x22,0x24, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x23, // LOAD_CONST_STRING 'confirm_action' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x23, // IMPORT_FROM 'confirm_action' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x10,0x22, // LOAD_CONST_STRING 'confirm_typed_data_final' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x10,0x24, // LOAD_CONST_STRING 'verb' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x10,0x25, // LOAD_CONST_STRING 'hold' + 0x52, // LOAD_CONST_TRUE + 0x34,0x84,0x03, // CALL_FUNCTION 515 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_layout_confirm_typed_data_final = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_layout_confirm_typed_data_final, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_apps_ethereum_layout_confirm_typed_data_final + 4, + .line_info_top = fun_data_apps_ethereum_layout_confirm_typed_data_final + 10, + .opcodes = fun_data_apps_ethereum_layout_confirm_typed_data_final + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_layout__lt_module_gt_ +// frozen bytecode for file apps/ethereum/layout.py, scope apps_ethereum_layout_confirm_empty_typed_message +static const byte fun_data_apps_ethereum_layout_confirm_empty_typed_message[20] = { + 0x20,0x0a, // prelude + 0x26, // names: confirm_empty_typed_message + 0x80,0x85,0x44,0x44, // code info + 0x12,0x0a, // LOAD_GLOBAL 'confirm_text' + 0x10,0x26, // LOAD_CONST_STRING 'confirm_empty_typed_message' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x10,0x27, // LOAD_CONST_STRING '' + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x34,0x04, // CALL_FUNCTION 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_layout_confirm_empty_typed_message = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_layout_confirm_empty_typed_message, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 38, + .line_info = fun_data_apps_ethereum_layout_confirm_empty_typed_message + 3, + .line_info_top = fun_data_apps_ethereum_layout_confirm_empty_typed_message + 7, + .opcodes = fun_data_apps_ethereum_layout_confirm_empty_typed_message + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_layout__lt_module_gt_ +// frozen bytecode for file apps/ethereum/layout.py, scope apps_ethereum_layout_should_show_domain +static const byte fun_data_apps_ethereum_layout_should_show_domain[72] = { + 0xca,0x40,0x1a, // prelude + 0x28,0x43,0x4f, // names: should_show_domain, name, version + 0x80,0x8e,0x28,0x48,0x20,0x28,0x27,0x4a,0x22,0x43, // code info + 0x12,0x0e, // LOAD_GLOBAL 'decode_typed_data' + 0xb0, // LOAD_FAST 0 + 0x10,0x29, // LOAD_CONST_STRING 'string' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc2, // STORE_FAST 2 + 0x12,0x0e, // LOAD_GLOBAL 'decode_typed_data' + 0xb1, // LOAD_FAST 1 + 0x10,0x29, // LOAD_CONST_STRING 'string' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc3, // STORE_FAST 3 + 0x12,0x02, // LOAD_GLOBAL 'ui' + 0x13,0x2a, // LOAD_ATTR 'NORMAL' + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x12,0x02, // LOAD_GLOBAL 'ui' + 0x13,0x2b, // LOAD_ATTR 'DEMIBOLD' + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x12,0x02, // LOAD_GLOBAL 'ui' + 0x13,0x2b, // LOAD_ATTR 'DEMIBOLD' + 0xb3, // LOAD_FAST 3 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x03, // BUILD_TUPLE 3 + 0xc4, // STORE_FAST 4 + 0x12,0x0b, // LOAD_GLOBAL 'should_show_more' + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0xb4, // LOAD_FAST 4 + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x10,0x28, // LOAD_CONST_STRING 'should_show_domain' + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_layout_should_show_domain = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_layout_should_show_domain, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_ethereum_layout_should_show_domain + 6, + .line_info_top = fun_data_apps_ethereum_layout_should_show_domain + 16, + .opcodes = fun_data_apps_ethereum_layout_should_show_domain + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_layout__lt_module_gt_ +// frozen bytecode for file apps/ethereum/layout.py, scope apps_ethereum_layout_should_show_struct +static const byte fun_data_apps_ethereum_layout_should_show_struct[77] = { + 0xd8,0xc4,0x01,0x1a, // prelude + 0x2c,0x50,0x51,0x52,0x53, // names: should_show_struct, description, data_members, title, button_text + 0x80,0xa4,0x20,0x27,0x20,0x24,0x4f,0x55, // code info + 0x12,0x02, // LOAD_GLOBAL 'ui' + 0x13,0x2b, // LOAD_ATTR 'DEMIBOLD' + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x12,0x02, // LOAD_GLOBAL 'ui' + 0x13,0x2a, // LOAD_ATTR 'NORMAL' + 0x12,0x06, // LOAD_GLOBAL 'format_plural' + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x12,0x54, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x2d, // LOAD_CONST_STRING 'key' + 0x34,0x03, // CALL_FUNCTION 3 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x12,0x02, // LOAD_GLOBAL 'ui' + 0x13,0x2a, // LOAD_ATTR 'NORMAL' + 0x10,0x2e, // LOAD_CONST_STRING ', ' + 0x14,0x2f, // LOAD_METHOD 'join' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x03, // BUILD_TUPLE 3 + 0xc4, // STORE_FAST 4 + 0x12,0x0b, // LOAD_GLOBAL 'should_show_more' + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x10,0x2c, // LOAD_CONST_STRING 'should_show_struct' + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_layout_should_show_struct +// frozen bytecode for file apps/ethereum/layout.py, scope apps_ethereum_layout_should_show_struct__lt_genexpr_gt_ +static const byte fun_data_apps_ethereum_layout_should_show_struct__lt_genexpr_gt_[23] = { + 0xb1,0x40,0x08, // prelude + 0x42,0x5b, // names: , * + 0x80,0xaa, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x08, // FOR_ITER 8 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x43, // LOAD_ATTR 'name' + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x36, // JUMP -10 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_layout_should_show_struct__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_layout_should_show_struct__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 66, + .line_info = fun_data_apps_ethereum_layout_should_show_struct__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_apps_ethereum_layout_should_show_struct__lt_genexpr_gt_ + 7, + .opcodes = fun_data_apps_ethereum_layout_should_show_struct__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_layout_should_show_struct[] = { + &raw_code_apps_ethereum_layout_should_show_struct__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_layout_should_show_struct = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_ethereum_layout_should_show_struct, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 77, + #endif + .children = (void *)&children_apps_ethereum_layout_should_show_struct, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 44, + .line_info = fun_data_apps_ethereum_layout_should_show_struct + 9, + .line_info_top = fun_data_apps_ethereum_layout_should_show_struct + 17, + .opcodes = fun_data_apps_ethereum_layout_should_show_struct + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_layout__lt_module_gt_ +// frozen bytecode for file apps/ethereum/layout.py, scope apps_ethereum_layout_should_show_array +static const byte fun_data_apps_ethereum_layout_should_show_array[53] = { + 0xc3,0x40,0x12, // prelude + 0x30,0x55,0x37,0x56, // names: should_show_array, parent_objects, data_type, size + 0x80,0xb9,0x31,0x22,0x4c, // code info + 0x12,0x02, // LOAD_GLOBAL 'ui' + 0x13,0x2a, // LOAD_ATTR 'NORMAL' + 0x12,0x06, // LOAD_GLOBAL 'format_plural' + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x01, // BUILD_TUPLE 1 + 0xc3, // STORE_FAST 3 + 0x12,0x0b, // LOAD_GLOBAL 'should_show_more' + 0x12,0x40, // LOAD_GLOBAL 'limit_str' + 0x10,0x31, // LOAD_CONST_STRING '.' + 0x14,0x2f, // LOAD_METHOD 'join' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb3, // LOAD_FAST 3 + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0x10,0x30, // LOAD_CONST_STRING 'should_show_array' + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_layout_should_show_array = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_ethereum_layout_should_show_array, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 53, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 48, + .line_info = fun_data_apps_ethereum_layout_should_show_array + 7, + .line_info_top = fun_data_apps_ethereum_layout_should_show_array + 12, + .opcodes = fun_data_apps_ethereum_layout_should_show_array + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_layout__lt_module_gt_ +// frozen bytecode for file apps/ethereum/layout.py, scope apps_ethereum_layout_confirm_typed_value +static const byte fun_data_apps_ethereum_layout_confirm_typed_value[160] = { + 0x89,0x55,0x2a, // prelude + 0x32,0x43,0x45,0x55,0x57,0x58, // names: confirm_typed_value, name, value, parent_objects, field, array_index + 0x80,0xc9,0x4b,0x4b,0x45,0x26,0x30,0x4b,0x2c,0x49,0x47,0x2e,0x73,0x60,0x40, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x33, // LOAD_CONST_STRING 'EthereumDataType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.enums' + 0x1c,0x33, // IMPORT_FROM 'EthereumDataType' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x34, // LOAD_CONST_STRING 'get_type_name' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'helpers' + 0x1c,0x34, // IMPORT_FROM 'get_type_name' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x5b, // POP_JUMP_IF_FALSE 27 + 0x12,0x40, // LOAD_GLOBAL 'limit_str' + 0x10,0x31, // LOAD_CONST_STRING '.' + 0x14,0x2f, // LOAD_METHOD 'join' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x2b,0x01, // BUILD_LIST 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0x10,0x35, // LOAD_CONST_STRING '[{}] ({})' + 0x14,0x12, // LOAD_METHOD 'format' + 0xb4, // LOAD_FAST 4 + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0xc9, // STORE_FAST 9 + 0x42,0x55, // JUMP 21 + 0x12,0x40, // LOAD_GLOBAL 'limit_str' + 0x10,0x31, // LOAD_CONST_STRING '.' + 0x14,0x2f, // LOAD_METHOD 'join' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0x10,0x36, // LOAD_CONST_STRING '{} ({})' + 0x14,0x12, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0xc9, // STORE_FAST 9 + 0x12,0x0e, // LOAD_GLOBAL 'decode_typed_data' + 0xb1, // LOAD_FAST 1 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0xca, // STORE_FAST 10 + 0xb3, // LOAD_FAST 3 + 0x13,0x37, // LOAD_ATTR 'data_type' + 0xb5, // LOAD_FAST 5 + 0x13,0x38, // LOAD_ATTR 'ADDRESS' + 0xb5, // LOAD_FAST 5 + 0x13,0x39, // LOAD_ATTR 'BYTES' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x08, // LOAD_GLOBAL 'confirm_blob' + 0x10,0x32, // LOAD_CONST_STRING 'confirm_typed_value' + 0xb8, // LOAD_FAST 8 + 0xba, // LOAD_FAST 10 + 0xb9, // LOAD_FAST 9 + 0x10,0x21, // LOAD_CONST_STRING 'ask_pagination' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x04, // CALL_FUNCTION 260 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x4d, // JUMP 13 + 0x12,0x0a, // LOAD_GLOBAL 'confirm_text' + 0x10,0x32, // LOAD_CONST_STRING 'confirm_typed_value' + 0xb8, // LOAD_FAST 8 + 0xba, // LOAD_FAST 10 + 0xb9, // LOAD_FAST 9 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_layout_confirm_typed_value = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_apps_ethereum_layout_confirm_typed_value, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 160, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 50, + .line_info = fun_data_apps_ethereum_layout_confirm_typed_value + 9, + .line_info_top = fun_data_apps_ethereum_layout_confirm_typed_value + 24, + .opcodes = fun_data_apps_ethereum_layout_confirm_typed_value + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_layout__lt_module_gt_ +// frozen bytecode for file apps/ethereum/layout.py, scope apps_ethereum_layout_format_ethereum_amount +static const byte fun_data_apps_ethereum_layout_format_ethereum_amount[81] = { + 0x53,0x1e, // prelude + 0x3a,0x45,0x49,0x48, // names: format_ethereum_amount, value, token, network + 0x80,0xee,0x4b,0x23,0x24,0x46,0x24,0x62,0x2e,0x25,0x42, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3b, // LOAD_CONST_STRING 'format_amount' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.strings' + 0x1c,0x3b, // IMPORT_FROM 'format_amount' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb1, // LOAD_FAST 1 + 0x13,0x3c, // LOAD_ATTR 'symbol' + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x3d, // LOAD_ATTR 'decimals' + 0xc5, // STORE_FAST 5 + 0x42,0x46, // JUMP 6 + 0xb2, // LOAD_FAST 2 + 0x13,0x3c, // LOAD_ATTR 'symbol' + 0xc4, // STORE_FAST 4 + 0x92, // LOAD_CONST_SMALL_INT 18 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x89, // LOAD_CONST_SMALL_INT 9 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb0, // LOAD_FAST 0 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xb5, // LOAD_FAST 5 + 0x89, // LOAD_CONST_SMALL_INT 9 + 0xf3, // BINARY_OP 28 __sub__ + 0xf9, // BINARY_OP 34 __pow__ + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x10,0x3e, // LOAD_CONST_STRING 'Wei ' + 0xb4, // LOAD_FAST 4 + 0xf2, // BINARY_OP 27 __add__ + 0xc4, // STORE_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc5, // STORE_FAST 5 + 0x10,0x3f, // LOAD_CONST_STRING '{} {}' + 0x14,0x12, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_layout_format_ethereum_amount = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_ethereum_layout_format_ethereum_amount, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 81, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 58, + .line_info = fun_data_apps_ethereum_layout_format_ethereum_amount + 6, + .line_info_top = fun_data_apps_ethereum_layout_format_ethereum_amount + 17, + .opcodes = fun_data_apps_ethereum_layout_format_ethereum_amount + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_layout__lt_module_gt_ +// frozen bytecode for file apps/ethereum/layout.py, scope apps_ethereum_layout_limit_str +static const byte fun_data_apps_ethereum_layout_limit_str[35] = { + 0xaa,0x01,0x10, // prelude + 0x40,0x59,0x5a, // names: limit_str, s, limit + 0x90,0x00,0x20,0x2b,0x42, // code info + 0x12,0x54, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf2, // BINARY_OP 27 __add__ + 0xda, // BINARY_OP 3 __le__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE + 0x10,0x41, // LOAD_CONST_STRING '..' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xd1, // UNARY_OP 1 __neg__ + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_layout_limit_str = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_layout_limit_str, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 64, + .line_info = fun_data_apps_ethereum_layout_limit_str + 6, + .line_info_top = fun_data_apps_ethereum_layout_limit_str + 11, + .opcodes = fun_data_apps_ethereum_layout_limit_str + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_layout__lt_module_gt_[] = { + &raw_code_apps_ethereum_layout_require_confirm_tx, + &raw_code_apps_ethereum_layout_require_confirm_tx_eip1559, + &raw_code_apps_ethereum_layout_require_confirm_unknown_token, + &raw_code_apps_ethereum_layout_require_confirm_address, + &raw_code_apps_ethereum_layout_require_confirm_data, + &raw_code_apps_ethereum_layout_confirm_typed_data_final, + &raw_code_apps_ethereum_layout_confirm_empty_typed_message, + &raw_code_apps_ethereum_layout_should_show_domain, + &raw_code_apps_ethereum_layout_should_show_struct, + &raw_code_apps_ethereum_layout_should_show_array, + &raw_code_apps_ethereum_layout_confirm_typed_value, + &raw_code_apps_ethereum_layout_format_ethereum_amount, + &raw_code_apps_ethereum_layout_limit_str, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_layout__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 192, + #endif + .children = (void *)&children_apps_ethereum_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 13, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ethereum_layout__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ethereum_layout__lt_module_gt_ + 39, + .opcodes = fun_data_apps_ethereum_layout__lt_module_gt_ + 39, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ethereum_layout[92] = { + MP_QSTR_apps_slash_ethereum_slash_layout_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ui, + MP_QSTR_trezor, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_format_plural, + MP_QSTR_trezor_dot_strings, + MP_QSTR_confirm_blob, + MP_QSTR_confirm_ethereum_tx, + MP_QSTR_confirm_text, + MP_QSTR_should_show_more, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_address_from_bytes, + MP_QSTR_decode_typed_data, + MP_QSTR_helpers, + MP_QSTR_require_confirm_tx, + MP_QSTR__brace_open__brace_close__space_units, + MP_QSTR_format, + MP_QSTR_Gas_space_limit_colon_, + MP_QSTR_Gas_space_price_colon_, + MP_QSTR_require_confirm_tx_eip1559, + MP_QSTR_require_confirm_unknown_token, + MP_QSTR_hexlify, + MP_QSTR_ubinascii, + MP_QSTR_confirm_address, + MP_QSTR_0x, + MP_QSTR_decode, + MP_QSTR_Contract_colon_, + MP_QSTR_br_code, + MP_QSTR_SignTx, + MP_QSTR_require_confirm_address, + MP_QSTR_require_confirm_data, + MP_QSTR_ask_pagination, + MP_QSTR_confirm_typed_data_final, + MP_QSTR_confirm_action, + MP_QSTR_verb, + MP_QSTR_hold, + MP_QSTR_confirm_empty_typed_message, + MP_QSTR_, + MP_QSTR_should_show_domain, + MP_QSTR_string, + MP_QSTR_NORMAL, + MP_QSTR_DEMIBOLD, + MP_QSTR_should_show_struct, + MP_QSTR_key, + MP_QSTR__comma__space_, + MP_QSTR_join, + MP_QSTR_should_show_array, + MP_QSTR__dot_, + MP_QSTR_confirm_typed_value, + MP_QSTR_EthereumDataType, + MP_QSTR_get_type_name, + MP_QSTR__bracket_open__brace_open__brace_close__bracket_close__space__paren_open__brace_open__brace_close__paren_close_, + MP_QSTR__brace_open__brace_close__space__paren_open__brace_open__brace_close__paren_close_, + MP_QSTR_data_type, + MP_QSTR_ADDRESS, + MP_QSTR_BYTES, + MP_QSTR_format_ethereum_amount, + MP_QSTR_format_amount, + MP_QSTR_symbol, + MP_QSTR_decimals, + MP_QSTR_Wei_space_, + MP_QSTR__brace_open__brace_close__space__brace_open__brace_close_, + MP_QSTR_limit_str, + MP_QSTR__dot__dot_, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_name, + MP_QSTR_to_bytes, + MP_QSTR_value, + MP_QSTR_gas_price, + MP_QSTR_gas_limit, + MP_QSTR_network, + MP_QSTR_token, + MP_QSTR_max_gas_fee, + MP_QSTR_max_priority_fee, + MP_QSTR_address_bytes, + MP_QSTR_data, + MP_QSTR_data_total, + MP_QSTR_version, + MP_QSTR_description, + MP_QSTR_data_members, + MP_QSTR_title, + MP_QSTR_button_text, + MP_QSTR_len, + MP_QSTR_parent_objects, + MP_QSTR_size, + MP_QSTR_field, + MP_QSTR_array_index, + MP_QSTR_s, + MP_QSTR_limit, + MP_QSTR__star_, +}; + +// constants +static const mp_obj_str_t const_obj_apps_ethereum_layout_12 = {{&mp_type_str}, 49263, 31, (const byte*)"\x52\x65\x61\x6c\x6c\x79\x20\x73\x69\x67\x6e\x20\x45\x49\x50\x2d\x37\x31\x32\x20\x74\x79\x70\x65\x64\x20\x64\x61\x74\x61\x3f"}; +static const mp_obj_str_t const_obj_apps_ethereum_layout_19 = {{&mp_type_str}, 27859, 25, (const byte*)"\x43\x6f\x6e\x74\x61\x69\x6e\x73\x20\x7b\x63\x6f\x75\x6e\x74\x7d\x20\x7b\x70\x6c\x75\x72\x61\x6c\x7d"}; +static const mp_obj_str_t const_obj_apps_ethereum_layout_20 = {{&mp_type_str}, 25088, 25, (const byte*)"\x41\x72\x72\x61\x79\x20\x6f\x66\x20\x7b\x63\x6f\x75\x6e\x74\x7d\x20\x7b\x70\x6c\x75\x72\x61\x6c\x7d"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_ethereum_layout[22] = { + MP_ROM_QSTR(MP_QSTR_Confirm_space_struct), + MP_ROM_QSTR(MP_QSTR_Show_space_full_space_struct), + MP_ROM_QSTR(MP_QSTR_new_space_contract_question_), + MP_ROM_QSTR(MP_QSTR_Max_space_gas_space_price_colon_), + MP_ROM_QSTR(MP_QSTR_Priority_space_fee_colon_), + MP_ROM_QSTR(MP_QSTR_Unknown_space_token), + MP_ROM_QSTR(MP_QSTR_unknown_token), + MP_ROM_QSTR(MP_QSTR_Signing_space_address), + MP_ROM_QSTR(MP_QSTR_confirm_data), + MP_ROM_QSTR(MP_QSTR_Confirm_space_data), + MP_ROM_QSTR(MP_QSTR_Size_colon__space__brace_open__brace_close__space_bytes), + MP_ROM_QSTR(MP_QSTR_Confirm_space_typed_space_data), + MP_ROM_PTR(&const_obj_apps_ethereum_layout_12), + MP_ROM_QSTR(MP_QSTR_Hold_space_to_space_confirm), + MP_ROM_QSTR(MP_QSTR_Confirm_space_message), + MP_ROM_QSTR(MP_QSTR_No_space_message_space_field), + MP_ROM_QSTR(MP_QSTR_Name_space_and_space_version), + MP_ROM_QSTR(MP_QSTR_Confirm_space_domain), + MP_ROM_QSTR(MP_QSTR_Show_space_full_space_domain), + MP_ROM_PTR(&const_obj_apps_ethereum_layout_19), + MP_ROM_PTR(&const_obj_apps_ethereum_layout_20), + MP_ROM_QSTR(MP_QSTR_Show_space_full_space_array), +}; + +static const mp_frozen_module_t frozen_module_apps_ethereum_layout = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ethereum_layout, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_ethereum_layout, + }, + .rc = &raw_code_apps_ethereum_layout__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ethereum_networks +// - original source file: build/firmware/src/apps/ethereum/networks.mpy +// - frozen file name: apps/ethereum/networks.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ethereum/networks.py, scope apps_ethereum_networks__lt_module_gt_ +static const byte fun_data_apps_ethereum_networks__lt_module_gt_[76] = { + 0x40,0x1e, // prelude + 0x01, // names: + 0x80,0x09,0x2c,0x4c,0x80,0x0d,0x6e,0x20,0x67,0x20,0x84,0x0d,0x84,0x0e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'utils' + 0x16,0x02, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'EthereumNetworkInfo' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.messages' + 0x1c,0x04, // IMPORT_FROM 'EthereumNetworkInfo' + 0x16,0x04, // STORE_NAME 'EthereumNetworkInfo' + 0x59, // POP_TOP + 0x11,0x04, // LOAD_NAME 'EthereumNetworkInfo' + 0x10,0x06, // LOAD_CONST_STRING 'chain_id' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'slip44' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'symbol' + 0x10,0x09, // LOAD_CONST_STRING 'UNKN' + 0x10,0x0a, // LOAD_CONST_STRING 'name' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x88,0x00, // CALL_FUNCTION 1024 + 0x16,0x0e, // STORE_NAME 'UNKNOWN_NETWORK' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0b, // STORE_NAME 'by_chain_id' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0c, // STORE_NAME 'by_slip44' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0d, // STORE_NAME '_networks_iterator' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_networks__lt_module_gt_ +// frozen bytecode for file apps/ethereum/networks.py, scope apps_ethereum_networks_by_chain_id +static const byte fun_data_apps_ethereum_networks_by_chain_id[63] = { + 0x81,0x10,0x18, // prelude + 0x0b,0x06, // names: by_chain_id, chain_id + 0x80,0x22,0x28,0x24,0x25,0x24,0x25,0x25,0x25,0x49, // code info + 0x12,0x0d, // LOAD_GLOBAL '_networks_iterator' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x26, // FOR_ITER 38 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0x12,0x04, // LOAD_GLOBAL 'EthereumNetworkInfo' + 0x10,0x06, // LOAD_CONST_STRING 'chain_id' + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x10,0x07, // LOAD_CONST_STRING 'slip44' + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x10,0x08, // LOAD_CONST_STRING 'symbol' + 0xb1, // LOAD_FAST 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x55, // LOAD_SUBSCR + 0x10,0x0a, // LOAD_CONST_STRING 'name' + 0xb1, // LOAD_FAST 1 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x55, // LOAD_SUBSCR + 0x34,0x88,0x00, // CALL_FUNCTION 1024 + 0x63, // RETURN_VALUE + 0x42,0x18, // JUMP -40 + 0x12,0x0e, // LOAD_GLOBAL 'UNKNOWN_NETWORK' + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_networks_by_chain_id = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_networks_by_chain_id, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 63, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_apps_ethereum_networks_by_chain_id + 5, + .line_info_top = fun_data_apps_ethereum_networks_by_chain_id + 15, + .opcodes = fun_data_apps_ethereum_networks_by_chain_id + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_networks__lt_module_gt_ +// frozen bytecode for file apps/ethereum/networks.py, scope apps_ethereum_networks_by_slip44 +static const byte fun_data_apps_ethereum_networks_by_slip44[63] = { + 0x81,0x10,0x18, // prelude + 0x0c,0x07, // names: by_slip44, slip44 + 0x80,0x2f,0x28,0x24,0x25,0x24,0x25,0x25,0x25,0x49, // code info + 0x12,0x0d, // LOAD_GLOBAL '_networks_iterator' + 0x34,0x00, // CALL_FUNCTION 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x26, // FOR_ITER 38 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0x12,0x04, // LOAD_GLOBAL 'EthereumNetworkInfo' + 0x10,0x06, // LOAD_CONST_STRING 'chain_id' + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x10,0x07, // LOAD_CONST_STRING 'slip44' + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x10,0x08, // LOAD_CONST_STRING 'symbol' + 0xb1, // LOAD_FAST 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x55, // LOAD_SUBSCR + 0x10,0x0a, // LOAD_CONST_STRING 'name' + 0xb1, // LOAD_FAST 1 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x55, // LOAD_SUBSCR + 0x34,0x88,0x00, // CALL_FUNCTION 1024 + 0x63, // RETURN_VALUE + 0x42,0x18, // JUMP -40 + 0x12,0x0e, // LOAD_GLOBAL 'UNKNOWN_NETWORK' + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_networks_by_slip44 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_networks_by_slip44, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 63, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_ethereum_networks_by_slip44 + 5, + .line_info_top = fun_data_apps_ethereum_networks_by_slip44 + 15, + .opcodes = fun_data_apps_ethereum_networks_by_slip44 + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_networks__lt_module_gt_ +// frozen bytecode for file apps/ethereum/networks.py, scope apps_ethereum_networks__networks_iterator +static const byte fun_data_apps_ethereum_networks__networks_iterator[57] = { + 0x80,0x40,0x30, // prelude + 0x0d, // names: _networks_iterator + 0x80,0x3d,0x80,0x2c,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40, // code info + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_networks__networks_iterator = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_networks__networks_iterator, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_ethereum_networks__networks_iterator + 4, + .line_info_top = fun_data_apps_ethereum_networks__networks_iterator + 27, + .opcodes = fun_data_apps_ethereum_networks__networks_iterator + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_networks__lt_module_gt_[] = { + &raw_code_apps_ethereum_networks_by_chain_id, + &raw_code_apps_ethereum_networks_by_slip44, + &raw_code_apps_ethereum_networks__networks_iterator, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_networks__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_networks__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 76, + #endif + .children = (void *)&children_apps_ethereum_networks__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ethereum_networks__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ethereum_networks__lt_module_gt_ + 17, + .opcodes = fun_data_apps_ethereum_networks__lt_module_gt_ + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ethereum_networks[15] = { + MP_QSTR_apps_slash_ethereum_slash_networks_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_EthereumNetworkInfo, + MP_QSTR_trezor_dot_messages, + MP_QSTR_chain_id, + MP_QSTR_slip44, + MP_QSTR_symbol, + MP_QSTR_UNKN, + MP_QSTR_name, + MP_QSTR_by_chain_id, + MP_QSTR_by_slip44, + MP_QSTR__networks_iterator, + MP_QSTR_UNKNOWN_NETWORK, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_networks_1 = {{&mp_type_tuple}, 4, { + MP_ROM_INT(1), + MP_ROM_INT(60), + MP_ROM_QSTR(MP_QSTR_ETH), + MP_ROM_QSTR(MP_QSTR_Ethereum), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_networks_2 = {{&mp_type_tuple}, 4, { + MP_ROM_INT(3), + MP_ROM_INT(1), + MP_ROM_QSTR(MP_QSTR_tETH), + MP_ROM_QSTR(MP_QSTR_Ropsten), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_networks_3 = {{&mp_type_tuple}, 4, { + MP_ROM_INT(4), + MP_ROM_INT(1), + MP_ROM_QSTR(MP_QSTR_tETH), + MP_ROM_QSTR(MP_QSTR_Rinkeby), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_networks_4 = {{&mp_type_tuple}, 4, { + MP_ROM_INT(5), + MP_ROM_INT(1), + MP_ROM_QSTR(MP_QSTR_tETH), + MP_ROM_QSTR(MP_QSTR_G_ouml_rli), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_networks_5 = {{&mp_type_tuple}, 4, { + MP_ROM_INT(56), + MP_ROM_INT(714), + MP_ROM_QSTR(MP_QSTR_BNB), + MP_ROM_QSTR(MP_QSTR_Binance_space_Smart_space_Chain), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_networks_6 = {{&mp_type_tuple}, 4, { + MP_ROM_INT(61), + MP_ROM_INT(61), + MP_ROM_QSTR(MP_QSTR_ETC), + MP_ROM_QSTR(MP_QSTR_Ethereum_space_Classic), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_networks_7 = {{&mp_type_tuple}, 4, { + MP_ROM_INT(137), + MP_ROM_INT(966), + MP_ROM_QSTR(MP_QSTR_MATIC), + MP_ROM_QSTR(MP_QSTR_Polygon), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_ethereum_networks[8] = { + MP_ROM_QSTR(MP_QSTR_Unknown_space_network), + MP_ROM_PTR(&const_obj_apps_ethereum_networks_1), + MP_ROM_PTR(&const_obj_apps_ethereum_networks_2), + MP_ROM_PTR(&const_obj_apps_ethereum_networks_3), + MP_ROM_PTR(&const_obj_apps_ethereum_networks_4), + MP_ROM_PTR(&const_obj_apps_ethereum_networks_5), + MP_ROM_PTR(&const_obj_apps_ethereum_networks_6), + MP_ROM_PTR(&const_obj_apps_ethereum_networks_7), +}; + +static const mp_frozen_module_t frozen_module_apps_ethereum_networks = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ethereum_networks, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_ethereum_networks, + }, + .rc = &raw_code_apps_ethereum_networks__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ethereum_sign_message +// - original source file: build/firmware/src/apps/ethereum/sign_message.mpy +// - frozen file name: apps/ethereum/sign_message.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ethereum/sign_message.py, scope apps_ethereum_sign_message__lt_module_gt_ +static const byte fun_data_apps_ethereum_sign_message__lt_module_gt_[46] = { + 0x10,0x0e, // prelude + 0x01, // names: + 0x40,0x52,0x80,0x08,0x84,0x0c, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x02, // LOAD_CONST_STRING 'PATTERNS_ADDRESS' + 0x10,0x03, // LOAD_CONST_STRING 'with_keychain_from_path' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x04, // IMPORT_NAME 'keychain' + 0x1c,0x02, // IMPORT_FROM 'PATTERNS_ADDRESS' + 0x16,0x02, // STORE_NAME 'PATTERNS_ADDRESS' + 0x1c,0x03, // IMPORT_FROM 'with_keychain_from_path' + 0x16,0x03, // STORE_NAME 'with_keychain_from_path' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x05, // STORE_NAME 'message_digest' + 0x11,0x03, // LOAD_NAME 'with_keychain_from_path' + 0x11,0x02, // LOAD_NAME 'PATTERNS_ADDRESS' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x35,0x01, // CALL_FUNCTION_VAR_KW 1 + 0x32,0x01, // MAKE_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x0e, // STORE_NAME 'sign_message' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_sign_message__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_message.py, scope apps_ethereum_sign_message_message_digest +static const byte fun_data_apps_ethereum_sign_message_message_digest[88] = { + 0x49,0x16, // prelude + 0x05,0x21, // names: message_digest, message + 0x80,0x0d,0x2b,0x4b,0x2b,0x23,0x27,0x33,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'sha3_256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x06, // IMPORT_FROM 'sha3_256' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'HashWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.utils' + 0x1c,0x08, // IMPORT_FROM 'HashWriter' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x10,0x0a, // LOAD_CONST_STRING 'keccak' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x14,0x0b, // LOAD_METHOD 'extend' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x0b, // LOAD_METHOD 'extend' + 0x12,0x28, // LOAD_GLOBAL 'str' + 0x12,0x29, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x0c, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x0b, // LOAD_METHOD 'extend' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x0d, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_message_message_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_sign_message_message_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 88, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_ethereum_sign_message_message_digest + 4, + .line_info_top = fun_data_apps_ethereum_sign_message_message_digest + 13, + .opcodes = fun_data_apps_ethereum_sign_message_message_digest + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_message__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_message.py, scope apps_ethereum_sign_message_sign_message +static const byte fun_data_apps_ethereum_sign_message_sign_message[192] = { + 0x9b,0x50,0x2a, // prelude + 0x0e,0x2a,0x04,0x2b, // names: sign_message, msg, keychain, defs + 0x80,0x1e,0x2b,0x2b,0x4b,0x2b,0x4b,0x4b,0x4d,0x29,0x2c,0x54,0x23,0x25,0x48,0x66,0x46, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0f, // LOAD_CONST_STRING 'secp256k1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x0f, // IMPORT_FROM 'secp256k1' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'EthereumMessageSignature' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x12, // IMPORT_NAME 'trezor.messages' + 0x1c,0x11, // IMPORT_FROM 'EthereumMessageSignature' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'confirm_signverify' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x13, // IMPORT_FROM 'confirm_signverify' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x15, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x16, // IMPORT_NAME 'apps.common' + 0x1c,0x15, // IMPORT_FROM 'paths' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING 'decode_message' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME 'apps.common.signverify' + 0x1c,0x17, // IMPORT_FROM 'decode_message' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x19, // LOAD_CONST_STRING 'address_from_bytes' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1a, // IMPORT_NAME 'helpers' + 0x1c,0x19, // IMPORT_FROM 'address_from_bytes' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x1b, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'address_n' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x1d, // LOAD_METHOD 'derive' + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xc9, // STORE_FAST 9 + 0xb8, // LOAD_FAST 8 + 0xb9, // LOAD_FAST 9 + 0x14,0x1e, // LOAD_METHOD 'ethereum_pubkeyhash' + 0x36,0x00, // CALL_METHOD 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x1f, // LOAD_ATTR 'network' + 0x34,0x02, // CALL_FUNCTION 2 + 0xca, // STORE_FAST 10 + 0xb5, // LOAD_FAST 5 + 0x10,0x20, // LOAD_CONST_STRING 'ETH' + 0xb7, // LOAD_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'message' + 0x34,0x01, // CALL_FUNCTION 1 + 0xba, // LOAD_FAST 10 + 0x10,0x22, // LOAD_CONST_STRING 'verify' + 0x50, // LOAD_CONST_FALSE + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x23, // LOAD_METHOD 'sign' + 0xb9, // LOAD_FAST 9 + 0x14,0x24, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0x12,0x05, // LOAD_GLOBAL 'message_digest' + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'message' + 0x34,0x01, // CALL_FUNCTION 1 + 0x50, // LOAD_CONST_FALSE + 0xb3, // LOAD_FAST 3 + 0x13,0x25, // LOAD_ATTR 'CANONICAL_SIG_ETHEREUM' + 0x36,0x04, // CALL_METHOD 4 + 0xcb, // STORE_FAST 11 + 0xb4, // LOAD_FAST 4 + 0x10,0x26, // LOAD_CONST_STRING 'address' + 0xba, // LOAD_FAST 10 + 0x10,0x27, // LOAD_CONST_STRING 'signature' + 0xbb, // LOAD_FAST 11 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x12,0x2c, // LOAD_GLOBAL 'bytearray' + 0xbb, // LOAD_FAST 11 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_message_sign_message = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_ethereum_sign_message_sign_message, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 192, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 20, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_ethereum_sign_message_sign_message + 7, + .line_info_top = fun_data_apps_ethereum_sign_message_sign_message + 24, + .opcodes = fun_data_apps_ethereum_sign_message_sign_message + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_sign_message__lt_module_gt_[] = { + &raw_code_apps_ethereum_sign_message_message_digest, + &raw_code_apps_ethereum_sign_message_sign_message, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_sign_message__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_sign_message__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = (void *)&children_apps_ethereum_sign_message__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ethereum_sign_message__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ethereum_sign_message__lt_module_gt_ + 9, + .opcodes = fun_data_apps_ethereum_sign_message__lt_module_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ethereum_sign_message[45] = { + MP_QSTR_apps_slash_ethereum_slash_sign_message_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_PATTERNS_ADDRESS, + MP_QSTR_with_keychain_from_path, + MP_QSTR_keychain, + MP_QSTR_message_digest, + MP_QSTR_sha3_256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_HashWriter, + MP_QSTR_trezor_dot_utils, + MP_QSTR_keccak, + MP_QSTR_extend, + MP_QSTR_encode, + MP_QSTR_get_digest, + MP_QSTR_sign_message, + MP_QSTR_secp256k1, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_EthereumMessageSignature, + MP_QSTR_trezor_dot_messages, + MP_QSTR_confirm_signverify, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_decode_message, + MP_QSTR_apps_dot_common_dot_signverify, + MP_QSTR_address_from_bytes, + MP_QSTR_helpers, + MP_QSTR_validate_path, + MP_QSTR_address_n, + MP_QSTR_derive, + MP_QSTR_ethereum_pubkeyhash, + MP_QSTR_network, + MP_QSTR_ETH, + MP_QSTR_message, + MP_QSTR_verify, + MP_QSTR_sign, + MP_QSTR_private_key, + MP_QSTR_CANONICAL_SIG_ETHEREUM, + MP_QSTR_address, + MP_QSTR_signature, + MP_QSTR_str, + MP_QSTR_len, + MP_QSTR_msg, + MP_QSTR_defs, + MP_QSTR_bytearray, +}; + +// constants +static const mp_obj_str_t const_obj_apps_ethereum_sign_message_0 = {{&mp_type_bytes}, 31590, 26, (const byte*)"\x19\x45\x74\x68\x65\x72\x65\x75\x6d\x20\x53\x69\x67\x6e\x65\x64\x20\x4d\x65\x73\x73\x61\x67\x65\x3a\x0a"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_ethereum_sign_message[1] = { + MP_ROM_PTR(&const_obj_apps_ethereum_sign_message_0), +}; + +static const mp_frozen_module_t frozen_module_apps_ethereum_sign_message = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ethereum_sign_message, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_ethereum_sign_message, + }, + .rc = &raw_code_apps_ethereum_sign_message__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ethereum_sign_tx +// - original source file: build/firmware/src/apps/ethereum/sign_tx.mpy +// - frozen file name: apps/ethereum/sign_tx.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ethereum/sign_tx.py, scope apps_ethereum_sign_tx__lt_module_gt_ +static const byte fun_data_apps_ethereum_sign_tx__lt_module_gt_[116] = { + 0x08,0x28, // prelude + 0x01, // names: + 0x40,0x2c,0x2c,0x4c,0x2c,0x4c,0x80,0x0c,0x64,0x88,0x4c,0x84,0x1d,0x84,0x19,0x84,0x0a,0x84,0x17, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'rlp' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x02, // IMPORT_FROM 'rlp' + 0x16,0x02, // STORE_NAME 'rlp' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'EthereumTxRequest' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.messages' + 0x1c,0x04, // IMPORT_FROM 'EthereumTxRequest' + 0x16,0x04, // STORE_NAME 'EthereumTxRequest' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.wire' + 0x1c,0x06, // IMPORT_FROM 'DataError' + 0x16,0x06, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x08, // LOAD_CONST_STRING 'bytes_from_address' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'helpers' + 0x1c,0x08, // IMPORT_FROM 'bytes_from_address' + 0x16,0x08, // STORE_NAME 'bytes_from_address' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0a, // LOAD_CONST_STRING 'with_keychain_from_chain_id' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'keychain' + 0x1c,0x0a, // IMPORT_FROM 'with_keychain_from_chain_id' + 0x16,0x0a, // STORE_NAME 'with_keychain_from_chain_id' + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x44, // STORE_NAME 'MAX_CHAIN_ID' + 0x11,0x0a, // LOAD_NAME 'with_keychain_from_chain_id' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x0c, // STORE_NAME 'sign_tx' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x2b, // STORE_NAME 'handle_erc20' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x32, // STORE_NAME '_get_total_length' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x35, // STORE_NAME 'send_request_chunk' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x39, // STORE_NAME '_sign_digest' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x43, // STORE_NAME 'check_common_fields' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_tx.py, scope apps_ethereum_sign_tx_sign_tx +static const byte fun_data_apps_ethereum_sign_tx_sign_tx[478] = { + 0xe3,0x50,0x60, // prelude + 0x0c,0x45,0x0b,0x46, // names: sign_tx, msg, keychain, defs + 0x80,0x1e,0x2b,0x4b,0x4b,0x70,0x2c,0x27,0x33,0x27,0x46,0x6d,0x4f,0x44,0x2a,0x4b,0x63,0x2b,0x2b,0x6a,0x20,0x25,0x26,0x4a,0x47,0x2c,0x4e,0x28,0x4c,0x34,0x4d,0x25,0x4c,0x2f,0x48,0x22,0x2a,0x2b,0x70,0x2c,0x2a,0x4a,0x28,0x4a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'sha3_256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x0d, // IMPORT_FROM 'sha3_256' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0f, // LOAD_CONST_STRING 'HashWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'trezor.utils' + 0x1c,0x0f, // IMPORT_FROM 'HashWriter' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x12, // IMPORT_NAME 'apps.common' + 0x1c,0x11, // IMPORT_FROM 'paths' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x13, // LOAD_CONST_STRING 'require_confirm_data' + 0x10,0x14, // LOAD_CONST_STRING 'require_confirm_tx' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x15, // IMPORT_NAME 'layout' + 0x1c,0x13, // IMPORT_FROM 'require_confirm_data' + 0xc6, // STORE_FAST 6 + 0x1c,0x14, // IMPORT_FROM 'require_confirm_tx' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'tx_type' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x51, // LOAD_CONST_NONE + 0x2b,0x03, // BUILD_LIST 3 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x47, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'gas_price' + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x47, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'gas_limit' + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x9e, // LOAD_CONST_SMALL_INT 30 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x43, // LOAD_GLOBAL 'check_common_fields' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x19, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'address_n' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x2b, // LOAD_GLOBAL 'handle_erc20' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x30,0x04, // UNPACK_SEQUENCE 4 + 0xc8, // STORE_FAST 8 + 0xc9, // STORE_FAST 9 + 0xca, // STORE_FAST 10 + 0xcb, // STORE_FAST 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'data_length' + 0xcc, // STORE_FAST 12 + 0xb8, // LOAD_FAST 8 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xbc, // LOAD_FAST 12 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'data_initial_chunk' + 0xbc, // LOAD_FAST 12 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0xba, // LOAD_FAST 10 + 0xbb, // LOAD_FAST 11 + 0x12,0x48, // LOAD_GLOBAL 'int' + 0x14,0x1d, // LOAD_METHOD 'from_bytes' + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'gas_price' + 0x10,0x1e, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x12,0x48, // LOAD_GLOBAL 'int' + 0x14,0x1d, // LOAD_METHOD 'from_bytes' + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'gas_limit' + 0x10,0x1e, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0xb2, // LOAD_FAST 2 + 0x13,0x1f, // LOAD_ATTR 'network' + 0xb8, // LOAD_FAST 8 + 0x34,0x06, // CALL_FUNCTION 6 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x49, // LOAD_GLOBAL 'bytearray' + 0x34,0x00, // CALL_FUNCTION 0 + 0xcd, // STORE_FAST 13 + 0xbd, // LOAD_FAST 13 + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'data_initial_chunk' + 0xe5, // BINARY_OP 14 __iadd__ + 0xcd, // STORE_FAST 13 + 0xbc, // LOAD_FAST 12 + 0x12,0x47, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'data_initial_chunk' + 0x34,0x01, // CALL_FUNCTION 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xce, // STORE_FAST 14 + 0x12,0x32, // LOAD_GLOBAL '_get_total_length' + 0xb0, // LOAD_FAST 0 + 0xbc, // LOAD_FAST 12 + 0x34,0x02, // CALL_FUNCTION 2 + 0xcf, // STORE_FAST 15 + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x10,0x20, // LOAD_CONST_STRING 'keccak' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x10, // STORE_FAST_N 16 + 0x12,0x02, // LOAD_GLOBAL 'rlp' + 0x14,0x21, // LOAD_METHOD 'write_header' + 0x24,0x10, // LOAD_FAST_N 16 + 0xbf, // LOAD_FAST 15 + 0x12,0x02, // LOAD_GLOBAL 'rlp' + 0x13,0x22, // LOAD_ATTR 'LIST_HEADER_BYTE' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'tx_type' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'rlp' + 0x14,0x23, // LOAD_METHOD 'write' + 0x24,0x10, // LOAD_FAST_N 16 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'tx_type' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'nonce' + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'gas_price' + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'gas_limit' + 0xb9, // LOAD_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'value' + 0x2a,0x05, // BUILD_TUPLE 5 + 0x5f, // GET_ITER_STACK + 0x4b,0x0f, // FOR_ITER 15 + 0x26,0x11, // STORE_FAST_N 17 + 0x12,0x02, // LOAD_GLOBAL 'rlp' + 0x14,0x23, // LOAD_METHOD 'write' + 0x24,0x10, // LOAD_FAST_N 16 + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x2f, // JUMP -17 + 0xbe, // LOAD_FAST 14 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'rlp' + 0x14,0x23, // LOAD_METHOD 'write' + 0x24,0x10, // LOAD_FAST_N 16 + 0xbd, // LOAD_FAST 13 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x57, // JUMP 23 + 0x12,0x02, // LOAD_GLOBAL 'rlp' + 0x14,0x21, // LOAD_METHOD 'write_header' + 0x24,0x10, // LOAD_FAST_N 16 + 0xbc, // LOAD_FAST 12 + 0x12,0x02, // LOAD_GLOBAL 'rlp' + 0x13,0x26, // LOAD_ATTR 'STRING_HEADER_BYTE' + 0xbd, // LOAD_FAST 13 + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x27, // LOAD_METHOD 'extend' + 0xbd, // LOAD_FAST 13 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x60, // JUMP 32 + 0x12,0x35, // LOAD_GLOBAL 'send_request_chunk' + 0xbe, // LOAD_FAST 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x12, // STORE_FAST_N 18 + 0xbe, // LOAD_FAST 14 + 0x12,0x47, // LOAD_GLOBAL 'len' + 0x24,0x12, // LOAD_FAST_N 18 + 0x13,0x28, // LOAD_ATTR 'data_chunk' + 0x34,0x01, // CALL_FUNCTION 1 + 0xe6, // BINARY_OP 15 __isub__ + 0xce, // STORE_FAST 14 + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x27, // LOAD_METHOD 'extend' + 0x24,0x12, // LOAD_FAST_N 18 + 0x13,0x28, // LOAD_ATTR 'data_chunk' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x1b, // POP_JUMP_IF_TRUE -37 + 0x12,0x02, // LOAD_GLOBAL 'rlp' + 0x14,0x23, // LOAD_METHOD 'write' + 0x24,0x10, // LOAD_FAST_N 16 + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'chain_id' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'rlp' + 0x14,0x23, // LOAD_METHOD 'write' + 0x24,0x10, // LOAD_FAST_N 16 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'rlp' + 0x14,0x23, // LOAD_METHOD 'write' + 0x24,0x10, // LOAD_FAST_N 16 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x2a, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x13, // STORE_FAST_N 19 + 0x12,0x39, // LOAD_GLOBAL '_sign_digest' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x24,0x13, // LOAD_FAST_N 19 + 0x34,0x03, // CALL_FUNCTION 3 + 0x26,0x14, // STORE_FAST_N 20 + 0x24,0x14, // LOAD_FAST_N 20 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_tx_sign_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_ethereum_sign_tx_sign_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 478, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 29, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_ethereum_sign_tx_sign_tx + 7, + .line_info_top = fun_data_apps_ethereum_sign_tx_sign_tx + 51, + .opcodes = fun_data_apps_ethereum_sign_tx_sign_tx + 51, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_tx.py, scope apps_ethereum_sign_tx_handle_erc20 +static const byte fun_data_apps_ethereum_sign_tx_handle_erc20[186] = { + 0xea,0x40,0x2e, // prelude + 0x2b,0x45,0x4a, // names: handle_erc20, msg, definitions + 0x80,0x68,0x2b,0x4b,0x24,0x22,0x2a,0x2c,0x20,0x2d,0x2c,0x2a,0x2b,0x26,0x45,0x27,0x27,0x51,0x27,0x48, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x2c, // LOAD_CONST_STRING 'tokens' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2d, // IMPORT_NAME '' + 0x1c,0x2c, // IMPORT_FROM 'tokens' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x2e, // LOAD_CONST_STRING 'require_confirm_unknown_token' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x15, // IMPORT_NAME 'layout' + 0x1c,0x2e, // IMPORT_FROM 'require_confirm_unknown_token' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'data_initial_chunk' + 0xc4, // STORE_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xc5, // STORE_FAST 5 + 0x12,0x08, // LOAD_GLOBAL 'bytes_from_address' + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'to' + 0x34,0x01, // CALL_FUNCTION 1 + 0x57, // DUP_TOP + 0xc6, // STORE_FAST 6 + 0xc7, // STORE_FAST 7 + 0x12,0x48, // LOAD_GLOBAL 'int' + 0x14,0x1d, // LOAD_METHOD 'from_bytes' + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'value' + 0x10,0x1e, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0xc8, // STORE_FAST 8 + 0x12,0x47, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'to' + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xdd, // BINARY_OP 6 + 0x44,0xda,0x80, // POP_JUMP_IF_FALSE 90 + 0x12,0x47, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'value' + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xce,0x80, // POP_JUMP_IF_FALSE 78 + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'data_length' + 0x22,0x80,0x44, // LOAD_CONST_SMALL_INT 68 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xc4,0x80, // POP_JUMP_IF_FALSE 68 + 0x12,0x47, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x80,0x44, // LOAD_CONST_SMALL_INT 68 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x79, // POP_JUMP_IF_FALSE 57 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6e, // POP_JUMP_IF_FALSE 46 + 0xb1, // LOAD_FAST 1 + 0x14,0x30, // LOAD_METHOD 'get_token' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xa4, // LOAD_CONST_SMALL_INT 36 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc7, // STORE_FAST 7 + 0x12,0x48, // LOAD_GLOBAL 'int' + 0x14,0x1d, // LOAD_METHOD 'from_bytes' + 0xb4, // LOAD_FAST 4 + 0xa4, // LOAD_CONST_SMALL_INT 36 + 0x22,0x80,0x44, // LOAD_CONST_SMALL_INT 68 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x10,0x1e, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0xc8, // STORE_FAST 8 + 0xb5, // LOAD_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x13,0x31, // LOAD_ATTR 'UNKNOWN_TOKEN' + 0xde, // BINARY_OP 7 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb3, // LOAD_FAST 3 + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0x2a,0x04, // BUILD_TUPLE 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_tx_handle_erc20 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_sign_tx_handle_erc20, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 186, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_apps_ethereum_sign_tx_handle_erc20 + 6, + .line_info_top = fun_data_apps_ethereum_sign_tx_handle_erc20 + 26, + .opcodes = fun_data_apps_ethereum_sign_tx_handle_erc20 + 26, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_tx.py, scope apps_ethereum_sign_tx__get_total_length +static const byte fun_data_apps_ethereum_sign_tx__get_total_length[107] = { + 0x62,0x28, // prelude + 0x32,0x45,0x4b, // names: _get_total_length, msg, data_total + 0x80,0x82,0x22,0x28,0x4c,0x20,0x23,0x23,0x23,0x27,0x23,0x68,0x40,0x25,0x4c,0x2d,0x44, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'tx_type' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb2, // LOAD_FAST 2 + 0x12,0x02, // LOAD_GLOBAL 'rlp' + 0x14,0x33, // LOAD_METHOD 'length' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'tx_type' + 0x36,0x01, // CALL_METHOD 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'nonce' + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'gas_price' + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'gas_limit' + 0x12,0x08, // LOAD_GLOBAL 'bytes_from_address' + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'to' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'value' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'chain_id' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2a,0x08, // BUILD_TUPLE 8 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x5f, // GET_ITER_STACK + 0x4b,0x0d, // FOR_ITER 13 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x12,0x02, // LOAD_GLOBAL 'rlp' + 0x14,0x33, // LOAD_METHOD 'length' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0x42,0x31, // JUMP -15 + 0xb2, // LOAD_FAST 2 + 0x12,0x02, // LOAD_GLOBAL 'rlp' + 0x14,0x34, // LOAD_METHOD 'header_length' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'data_initial_chunk' + 0x36,0x02, // CALL_METHOD 2 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_tx__get_total_length = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_sign_tx__get_total_length, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 107, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 50, + .line_info = fun_data_apps_ethereum_sign_tx__get_total_length + 5, + .line_info_top = fun_data_apps_ethereum_sign_tx__get_total_length + 22, + .opcodes = fun_data_apps_ethereum_sign_tx__get_total_length + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_tx.py, scope apps_ethereum_sign_tx_send_request_chunk +static const byte fun_data_apps_ethereum_sign_tx_send_request_chunk[58] = { + 0xb1,0x40,0x10, // prelude + 0x35,0x4c, // names: send_request_chunk, data_left + 0x80,0x9b,0x2b,0x6b,0x25,0x2b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x36, // LOAD_CONST_STRING 'EthereumTxAck' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.messages' + 0x1c,0x36, // IMPORT_FROM 'EthereumTxAck' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x37, // LOAD_CONST_STRING 'call' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x38, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x37, // IMPORT_FROM 'call' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'EthereumTxRequest' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc3, // STORE_FAST 3 + 0x12,0x4d, // LOAD_GLOBAL 'min' + 0xb0, // LOAD_FAST 0 + 0x22,0x88,0x00, // LOAD_CONST_SMALL_INT 1024 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb3, // LOAD_FAST 3 + 0x18,0x1b, // STORE_ATTR 'data_length' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_tx_send_request_chunk = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_sign_tx_send_request_chunk, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 58, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 53, + .line_info = fun_data_apps_ethereum_sign_tx_send_request_chunk + 5, + .line_info_top = fun_data_apps_ethereum_sign_tx_send_request_chunk + 11, + .opcodes = fun_data_apps_ethereum_sign_tx_send_request_chunk + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_tx.py, scope apps_ethereum_sign_tx__sign_digest +static const byte fun_data_apps_ethereum_sign_tx__sign_digest[120] = { + 0x63,0x22, // prelude + 0x39,0x45,0x0b,0x4e, // names: _sign_digest, msg, keychain, digest + 0x80,0xa7,0x4b,0x29,0x23,0x6d,0x25,0x26,0x28,0x4b,0x4f,0x29,0x49, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3a, // LOAD_CONST_STRING 'secp256k1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x3b, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x3a, // IMPORT_FROM 'secp256k1' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x3c, // LOAD_METHOD 'derive' + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x14,0x3d, // LOAD_METHOD 'sign' + 0xb4, // LOAD_FAST 4 + 0x14,0x3e, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0xb2, // LOAD_FAST 2 + 0x50, // LOAD_CONST_FALSE + 0xb3, // LOAD_FAST 3 + 0x13,0x3f, // LOAD_ATTR 'CANONICAL_SIG_ETHEREUM' + 0x36,0x04, // CALL_METHOD 4 + 0xc5, // STORE_FAST 5 + 0x12,0x04, // LOAD_GLOBAL 'EthereumTxRequest' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb6, // LOAD_FAST 6 + 0x18,0x40, // STORE_ATTR 'signature_v' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'chain_id' + 0x12,0x44, // LOAD_GLOBAL 'MAX_CHAIN_ID' + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb6, // LOAD_FAST 6 + 0x57, // DUP_TOP + 0x13,0x40, // LOAD_ATTR 'signature_v' + 0x9b, // LOAD_CONST_SMALL_INT 27 + 0xe6, // BINARY_OP 15 __isub__ + 0x5a, // ROT_TWO + 0x18,0x40, // STORE_ATTR 'signature_v' + 0x42,0x4f, // JUMP 15 + 0xb6, // LOAD_FAST 6 + 0x57, // DUP_TOP + 0x13,0x40, // LOAD_ATTR 'signature_v' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'chain_id' + 0xf4, // BINARY_OP 29 __mul__ + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf2, // BINARY_OP 27 __add__ + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x40, // STORE_ATTR 'signature_v' + 0xb5, // LOAD_FAST 5 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb6, // LOAD_FAST 6 + 0x18,0x41, // STORE_ATTR 'signature_r' + 0xb5, // LOAD_FAST 5 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb6, // LOAD_FAST 6 + 0x18,0x42, // STORE_ATTR 'signature_s' + 0xb6, // LOAD_FAST 6 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_tx__sign_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_ethereum_sign_tx__sign_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 120, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 57, + .line_info = fun_data_apps_ethereum_sign_tx__sign_digest + 6, + .line_info_top = fun_data_apps_ethereum_sign_tx__sign_digest + 19, + .opcodes = fun_data_apps_ethereum_sign_tx__sign_digest + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_tx.py, scope apps_ethereum_sign_tx_check_common_fields +static const byte fun_data_apps_ethereum_sign_tx_check_common_fields[127] = { + 0x19,0x22, // prelude + 0x43,0x45, // names: check_common_fields, msg + 0x80,0xbc,0x44,0x25,0x25,0x67,0x29,0x27,0x2b,0x47,0x2d,0x47,0x4a,0x47,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'data_length' + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x6e, // POP_JUMP_IF_FALSE 46 + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'data_initial_chunk' + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x22,0x87,0xd0,0xc8,0x00, // LOAD_CONST_SMALL_INT 16000000 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x47, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'data_initial_chunk' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x47, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'to' + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'to' + 0x43,0x4c, // POP_JUMP_IF_TRUE 12 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'chain_id' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'DataError' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_tx_check_common_fields = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_sign_tx_check_common_fields, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 127, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 67, + .line_info = fun_data_apps_ethereum_sign_tx_check_common_fields + 4, + .line_info_top = fun_data_apps_ethereum_sign_tx_check_common_fields + 19, + .opcodes = fun_data_apps_ethereum_sign_tx_check_common_fields + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_sign_tx__lt_module_gt_[] = { + &raw_code_apps_ethereum_sign_tx_sign_tx, + &raw_code_apps_ethereum_sign_tx_handle_erc20, + &raw_code_apps_ethereum_sign_tx__get_total_length, + &raw_code_apps_ethereum_sign_tx_send_request_chunk, + &raw_code_apps_ethereum_sign_tx__sign_digest, + &raw_code_apps_ethereum_sign_tx_check_common_fields, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_sign_tx__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_sign_tx__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 116, + #endif + .children = (void *)&children_apps_ethereum_sign_tx__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ethereum_sign_tx__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ethereum_sign_tx__lt_module_gt_ + 22, + .opcodes = fun_data_apps_ethereum_sign_tx__lt_module_gt_ + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ethereum_sign_tx[79] = { + MP_QSTR_apps_slash_ethereum_slash_sign_tx_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_rlp, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_EthereumTxRequest, + MP_QSTR_trezor_dot_messages, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_bytes_from_address, + MP_QSTR_helpers, + MP_QSTR_with_keychain_from_chain_id, + MP_QSTR_keychain, + MP_QSTR_sign_tx, + MP_QSTR_sha3_256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_HashWriter, + MP_QSTR_trezor_dot_utils, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_require_confirm_data, + MP_QSTR_require_confirm_tx, + MP_QSTR_layout, + MP_QSTR_tx_type, + MP_QSTR_gas_price, + MP_QSTR_gas_limit, + MP_QSTR_validate_path, + MP_QSTR_address_n, + MP_QSTR_data_length, + MP_QSTR_data_initial_chunk, + MP_QSTR_from_bytes, + MP_QSTR_big, + MP_QSTR_network, + MP_QSTR_keccak, + MP_QSTR_write_header, + MP_QSTR_LIST_HEADER_BYTE, + MP_QSTR_write, + MP_QSTR_nonce, + MP_QSTR_value, + MP_QSTR_STRING_HEADER_BYTE, + MP_QSTR_extend, + MP_QSTR_data_chunk, + MP_QSTR_chain_id, + MP_QSTR_get_digest, + MP_QSTR_handle_erc20, + MP_QSTR_tokens, + MP_QSTR_, + MP_QSTR_require_confirm_unknown_token, + MP_QSTR_to, + MP_QSTR_get_token, + MP_QSTR_UNKNOWN_TOKEN, + MP_QSTR__get_total_length, + MP_QSTR_length, + MP_QSTR_header_length, + MP_QSTR_send_request_chunk, + MP_QSTR_EthereumTxAck, + MP_QSTR_call, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR__sign_digest, + MP_QSTR_secp256k1, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_derive, + MP_QSTR_sign, + MP_QSTR_private_key, + MP_QSTR_CANONICAL_SIG_ETHEREUM, + MP_QSTR_signature_v, + MP_QSTR_signature_r, + MP_QSTR_signature_s, + MP_QSTR_check_common_fields, + MP_QSTR_MAX_CHAIN_ID, + MP_QSTR_msg, + MP_QSTR_defs, + MP_QSTR_len, + MP_QSTR_int, + MP_QSTR_bytearray, + MP_QSTR_definitions, + MP_QSTR_data_total, + MP_QSTR_data_left, + MP_QSTR_min, + MP_QSTR_digest, +}; + +// constants +static const mp_obj_int_t const_obj_apps_ethereum_sign_tx_0 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xffed,0x7fff}}}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_sign_tx_3 = {{&mp_type_tuple}, 2, { + MP_ROM_INT(40), + MP_ROM_INT(42), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_sign_tx_4 = {{&mp_type_bytes}, 41582, 16, (const byte*)"\xa9\x05\x9c\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}; +static const mp_obj_str_t const_obj_apps_ethereum_sign_tx_5 = {{&mp_type_str}, 21877, 42, (const byte*)"\x44\x61\x74\x61\x20\x6c\x65\x6e\x67\x74\x68\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x2c\x20\x62\x75\x74\x20\x6e\x6f\x20\x69\x6e\x69\x74\x69\x61\x6c\x20\x63\x68\x75\x6e\x6b"}; +static const mp_obj_str_t const_obj_apps_ethereum_sign_tx_6 = {{&mp_type_str}, 42965, 25, (const byte*)"\x44\x61\x74\x61\x20\x6c\x65\x6e\x67\x74\x68\x20\x65\x78\x63\x65\x65\x64\x73\x20\x6c\x69\x6d\x69\x74"}; +static const mp_obj_str_t const_obj_apps_ethereum_sign_tx_7 = {{&mp_type_str}, 62781, 29, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x73\x69\x7a\x65\x20\x6f\x66\x20\x69\x6e\x69\x74\x69\x61\x6c\x20\x63\x68\x75\x6e\x6b"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_sign_tx_8 = {{&mp_type_tuple}, 3, { + MP_ROM_INT(0), + MP_ROM_INT(40), + MP_ROM_INT(42), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_sign_tx_9 = {{&mp_type_str}, 121, 25, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x72\x65\x63\x69\x70\x69\x65\x6e\x74\x20\x61\x64\x64\x72\x65\x73\x73"}; +static const mp_obj_str_t const_obj_apps_ethereum_sign_tx_10 = {{&mp_type_str}, 4578, 30, (const byte*)"\x43\x6f\x6e\x74\x72\x61\x63\x74\x20\x63\x72\x65\x61\x74\x69\x6f\x6e\x20\x77\x69\x74\x68\x6f\x75\x74\x20\x64\x61\x74\x61"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_ethereum_sign_tx[12] = { + MP_ROM_PTR(&const_obj_apps_ethereum_sign_tx_0), + MP_ROM_QSTR(MP_QSTR_tx_type_space_out_space_of_space_bounds), + MP_ROM_QSTR(MP_QSTR_Fee_space_overflow), + MP_ROM_PTR(&const_obj_apps_ethereum_sign_tx_3), + MP_ROM_PTR(&const_obj_apps_ethereum_sign_tx_4), + MP_ROM_PTR(&const_obj_apps_ethereum_sign_tx_5), + MP_ROM_PTR(&const_obj_apps_ethereum_sign_tx_6), + MP_ROM_PTR(&const_obj_apps_ethereum_sign_tx_7), + MP_ROM_PTR(&const_obj_apps_ethereum_sign_tx_8), + MP_ROM_PTR(&const_obj_apps_ethereum_sign_tx_9), + MP_ROM_PTR(&const_obj_apps_ethereum_sign_tx_10), + MP_ROM_QSTR(MP_QSTR_Chain_space_ID_space_out_space_of_space_bounds), +}; + +static const mp_frozen_module_t frozen_module_apps_ethereum_sign_tx = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ethereum_sign_tx, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_ethereum_sign_tx, + }, + .rc = &raw_code_apps_ethereum_sign_tx__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ethereum_sign_tx_eip1559 +// - original source file: build/firmware/src/apps/ethereum/sign_tx_eip1559.mpy +// - frozen file name: apps/ethereum/sign_tx_eip1559.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ethereum/sign_tx_eip1559.py, scope apps_ethereum_sign_tx_eip1559__lt_module_gt_ +static const byte fun_data_apps_ethereum_sign_tx_eip1559__lt_module_gt_[85] = { + 0x08,0x1a, // prelude + 0x01, // names: + 0x6c,0x4c,0x2c,0x4c,0x80,0x0f,0x84,0x08,0x88,0x60,0x84,0x1b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'rlp' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x04, // IMPORT_FROM 'rlp' + 0x16,0x04, // STORE_NAME 'rlp' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x06, // LOAD_CONST_STRING 'bytes_from_address' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'helpers' + 0x1c,0x06, // IMPORT_FROM 'bytes_from_address' + 0x16,0x06, // STORE_NAME 'bytes_from_address' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x08, // LOAD_CONST_STRING 'with_keychain_from_chain_id' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'keychain' + 0x1c,0x08, // IMPORT_FROM 'with_keychain_from_chain_id' + 0x16,0x08, // STORE_NAME 'with_keychain_from_chain_id' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0a, // STORE_NAME 'access_list_item_length' + 0x11,0x08, // LOAD_NAME 'with_keychain_from_chain_id' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x0f, // STORE_NAME 'sign_tx_eip1559' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x36, // STORE_NAME '_get_total_length' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x38, // STORE_NAME '_sign_digest' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_sign_tx_eip1559__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_tx_eip1559.py, scope apps_ethereum_sign_tx_eip1559_access_list_item_length +static const byte fun_data_apps_ethereum_sign_tx_eip1559_access_list_item_length[47] = { + 0x31,0x0e, // prelude + 0x0a,0x45, // names: access_list_item_length, item + 0x80,0x18,0x2e,0x2a,0x20, // code info + 0x12,0x04, // LOAD_GLOBAL 'rlp' + 0x14,0x0b, // LOAD_METHOD 'length' + 0x12,0x06, // LOAD_GLOBAL 'bytes_from_address' + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'address' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0x12,0x04, // LOAD_GLOBAL 'rlp' + 0x14,0x0b, // LOAD_METHOD 'length' + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'storage_keys' + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0x12,0x04, // LOAD_GLOBAL 'rlp' + 0x14,0x0e, // LOAD_METHOD 'header_length' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xb1, // LOAD_FAST 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb2, // LOAD_FAST 2 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_tx_eip1559_access_list_item_length = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_sign_tx_eip1559_access_list_item_length, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_ethereum_sign_tx_eip1559_access_list_item_length + 4, + .line_info_top = fun_data_apps_ethereum_sign_tx_eip1559_access_list_item_length + 9, + .opcodes = fun_data_apps_ethereum_sign_tx_eip1559_access_list_item_length + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_tx_eip1559__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_tx_eip1559.py, scope apps_ethereum_sign_tx_eip1559_sign_tx_eip1559 +static const byte fun_data_apps_ethereum_sign_tx_eip1559_sign_tx_eip1559[638] = { + 0xc3,0x60,0x80,0x02, // prelude + 0x0f,0x46,0x09,0x47, // names: sign_tx_eip1559, msg, keychain, defs + 0x80,0x25,0x2b,0x2b,0x2b,0x4b,0x4b,0x30,0x55,0x24,0x64,0x31,0x28,0x31,0x28,0x45,0x6d,0x51,0x2a,0x4b,0x65,0x2b,0x2b,0x29,0x6a,0x20,0x26,0x28,0x4b,0x48,0x4c,0x49,0x4d,0x20,0x23,0x23,0x23,0x66,0x47,0x27,0x4c,0x26,0x4c,0x2e,0x49,0x22,0x2a,0x2d,0x71,0x2e,0x2d,0x28,0x2a,0x29,0x2b,0x30,0x2a,0x4f,0x28,0x4a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'trezor' + 0x1c,0x10, // IMPORT_FROM 'wire' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'rlp' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x04, // IMPORT_FROM 'rlp' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x12, // LOAD_CONST_STRING 'sha3_256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x12, // IMPORT_FROM 'sha3_256' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x14, // LOAD_CONST_STRING 'HashWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x15, // IMPORT_NAME 'trezor.utils' + 0x1c,0x14, // IMPORT_FROM 'HashWriter' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x16, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x17, // IMPORT_NAME 'apps.common' + 0x1c,0x16, // IMPORT_FROM 'paths' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x18, // LOAD_CONST_STRING 'require_confirm_data' + 0x10,0x19, // LOAD_CONST_STRING 'require_confirm_tx_eip1559' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x1a, // IMPORT_NAME 'layout' + 0x1c,0x18, // IMPORT_FROM 'require_confirm_data' + 0xc8, // STORE_FAST 8 + 0x1c,0x19, // IMPORT_FROM 'require_confirm_tx_eip1559' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1b, // LOAD_CONST_STRING 'check_common_fields' + 0x10,0x1c, // LOAD_CONST_STRING 'handle_erc20' + 0x10,0x1d, // LOAD_CONST_STRING 'send_request_chunk' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x1e, // IMPORT_NAME 'sign_tx' + 0x1c,0x1b, // IMPORT_FROM 'check_common_fields' + 0xca, // STORE_FAST 10 + 0x1c,0x1c, // IMPORT_FROM 'handle_erc20' + 0xcb, // STORE_FAST 11 + 0x1c,0x1d, // IMPORT_FROM 'send_request_chunk' + 0xcc, // STORE_FAST 12 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x1f, // LOAD_ATTR 'gas_limit' + 0xcd, // STORE_FAST 13 + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'data_length' + 0xce, // STORE_FAST 14 + 0x12,0x48, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'max_gas_fee' + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x48, // LOAD_GLOBAL 'len' + 0xbd, // LOAD_FAST 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x9e, // LOAD_CONST_SMALL_INT 30 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb3, // LOAD_FAST 3 + 0x14,0x22, // LOAD_METHOD 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x12,0x48, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'max_priority_fee' + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x48, // LOAD_GLOBAL 'len' + 0xbd, // LOAD_FAST 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x9e, // LOAD_CONST_SMALL_INT 30 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb3, // LOAD_FAST 3 + 0x14,0x22, // LOAD_METHOD 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xba, // LOAD_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x24, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'address_n' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x30,0x04, // UNPACK_SEQUENCE 4 + 0xcf, // STORE_FAST 15 + 0x26,0x10, // STORE_FAST_N 16 + 0x26,0x11, // STORE_FAST_N 17 + 0x26,0x12, // STORE_FAST_N 18 + 0xbf, // LOAD_FAST 15 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xbe, // LOAD_FAST 14 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb8, // LOAD_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'data_initial_chunk' + 0xbe, // LOAD_FAST 14 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x12, // LOAD_FAST_N 18 + 0x12,0x49, // LOAD_GLOBAL 'int' + 0x14,0x27, // LOAD_METHOD 'from_bytes' + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'max_gas_fee' + 0x10,0x28, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x12,0x49, // LOAD_GLOBAL 'int' + 0x14,0x27, // LOAD_METHOD 'from_bytes' + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'max_priority_fee' + 0x10,0x28, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x12,0x49, // LOAD_GLOBAL 'int' + 0x14,0x27, // LOAD_METHOD 'from_bytes' + 0xbd, // LOAD_FAST 13 + 0x10,0x28, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0xb2, // LOAD_FAST 2 + 0x13,0x29, // LOAD_ATTR 'network' + 0xbf, // LOAD_FAST 15 + 0x34,0x07, // CALL_FUNCTION 7 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x4a, // LOAD_GLOBAL 'bytearray' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x13, // STORE_FAST_N 19 + 0x24,0x13, // LOAD_FAST_N 19 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'data_initial_chunk' + 0xe5, // BINARY_OP 14 __iadd__ + 0x26,0x13, // STORE_FAST_N 19 + 0xbe, // LOAD_FAST 14 + 0x12,0x48, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'data_initial_chunk' + 0x34,0x01, // CALL_FUNCTION 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x26,0x14, // STORE_FAST_N 20 + 0x12,0x36, // LOAD_GLOBAL '_get_total_length' + 0xb0, // LOAD_FAST 0 + 0xbe, // LOAD_FAST 14 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x15, // STORE_FAST_N 21 + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x10,0x2a, // LOAD_CONST_STRING 'keccak' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x16, // STORE_FAST_N 22 + 0xb4, // LOAD_FAST 4 + 0x14,0x2b, // LOAD_METHOD 'write' + 0x24,0x16, // LOAD_FAST_N 22 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x2c, // LOAD_METHOD 'write_header' + 0x24,0x16, // LOAD_FAST_N 22 + 0x24,0x15, // LOAD_FAST_N 21 + 0xb4, // LOAD_FAST 4 + 0x13,0x2d, // LOAD_ATTR 'LIST_HEADER_BYTE' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x2e, // LOAD_ATTR 'chain_id' + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'nonce' + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'max_priority_fee' + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'max_gas_fee' + 0xbd, // LOAD_FAST 13 + 0x24,0x10, // LOAD_FAST_N 16 + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'value' + 0x2a,0x07, // BUILD_TUPLE 7 + 0x26,0x17, // STORE_FAST_N 23 + 0x24,0x17, // LOAD_FAST_N 23 + 0x5f, // GET_ITER_STACK + 0x4b,0x0e, // FOR_ITER 14 + 0x26,0x18, // STORE_FAST_N 24 + 0xb4, // LOAD_FAST 4 + 0x14,0x2b, // LOAD_METHOD 'write' + 0x24,0x16, // LOAD_FAST_N 22 + 0x24,0x18, // LOAD_FAST_N 24 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x30, // JUMP -16 + 0x24,0x14, // LOAD_FAST_N 20 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb4, // LOAD_FAST 4 + 0x14,0x2b, // LOAD_METHOD 'write' + 0x24,0x16, // LOAD_FAST_N 22 + 0x24,0x13, // LOAD_FAST_N 19 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x57, // JUMP 23 + 0xb4, // LOAD_FAST 4 + 0x14,0x2c, // LOAD_METHOD 'write_header' + 0x24,0x16, // LOAD_FAST_N 22 + 0xbe, // LOAD_FAST 14 + 0xb4, // LOAD_FAST 4 + 0x13,0x31, // LOAD_ATTR 'STRING_HEADER_BYTE' + 0x24,0x13, // LOAD_FAST_N 19 + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0x24,0x16, // LOAD_FAST_N 22 + 0x14,0x32, // LOAD_METHOD 'extend' + 0x24,0x13, // LOAD_FAST_N 19 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x62, // JUMP 34 + 0xbc, // LOAD_FAST 12 + 0x24,0x14, // LOAD_FAST_N 20 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x19, // STORE_FAST_N 25 + 0x24,0x14, // LOAD_FAST_N 20 + 0x12,0x48, // LOAD_GLOBAL 'len' + 0x24,0x19, // LOAD_FAST_N 25 + 0x13,0x33, // LOAD_ATTR 'data_chunk' + 0x34,0x01, // CALL_FUNCTION 1 + 0xe6, // BINARY_OP 15 __isub__ + 0x26,0x14, // STORE_FAST_N 20 + 0x24,0x16, // LOAD_FAST_N 22 + 0x14,0x32, // LOAD_METHOD 'extend' + 0x24,0x19, // LOAD_FAST_N 25 + 0x13,0x33, // LOAD_ATTR 'data_chunk' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x24,0x14, // LOAD_FAST_N 20 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x18, // POP_JUMP_IF_TRUE -40 + 0x12,0x4b, // LOAD_GLOBAL 'sum' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'access_list' + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x1a, // STORE_FAST_N 26 + 0xb4, // LOAD_FAST 4 + 0x14,0x2c, // LOAD_METHOD 'write_header' + 0x24,0x16, // LOAD_FAST_N 22 + 0x24,0x1a, // LOAD_FAST_N 26 + 0xb4, // LOAD_FAST 4 + 0x13,0x2d, // LOAD_ATTR 'LIST_HEADER_BYTE' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'access_list' + 0x5f, // GET_ITER_STACK + 0x4b,0x49, // FOR_ITER 73 + 0x26,0x1b, // STORE_FAST_N 27 + 0x12,0x06, // LOAD_GLOBAL 'bytes_from_address' + 0x24,0x1b, // LOAD_FAST_N 27 + 0x13,0x0c, // LOAD_ATTR 'address' + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x10, // STORE_FAST_N 16 + 0xb4, // LOAD_FAST 4 + 0x14,0x0b, // LOAD_METHOD 'length' + 0x24,0x10, // LOAD_FAST_N 16 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x1c, // STORE_FAST_N 28 + 0xb4, // LOAD_FAST 4 + 0x14,0x0b, // LOAD_METHOD 'length' + 0x24,0x1b, // LOAD_FAST_N 27 + 0x13,0x0d, // LOAD_ATTR 'storage_keys' + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x1d, // STORE_FAST_N 29 + 0xb4, // LOAD_FAST 4 + 0x14,0x2c, // LOAD_METHOD 'write_header' + 0x24,0x16, // LOAD_FAST_N 22 + 0x24,0x1c, // LOAD_FAST_N 28 + 0x24,0x1d, // LOAD_FAST_N 29 + 0xf2, // BINARY_OP 27 __add__ + 0xb4, // LOAD_FAST 4 + 0x13,0x2d, // LOAD_ATTR 'LIST_HEADER_BYTE' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x2b, // LOAD_METHOD 'write' + 0x24,0x16, // LOAD_FAST_N 22 + 0x24,0x10, // LOAD_FAST_N 16 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x2b, // LOAD_METHOD 'write' + 0x24,0x16, // LOAD_FAST_N 22 + 0x24,0x1b, // LOAD_FAST_N 27 + 0x13,0x0d, // LOAD_ATTR 'storage_keys' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xb5,0x7f, // JUMP -75 + 0x24,0x16, // LOAD_FAST_N 22 + 0x14,0x35, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x1e, // STORE_FAST_N 30 + 0x12,0x38, // LOAD_GLOBAL '_sign_digest' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x24,0x1e, // LOAD_FAST_N 30 + 0x34,0x03, // CALL_FUNCTION 3 + 0x26,0x1f, // STORE_FAST_N 31 + 0x24,0x1f, // LOAD_FAST_N 31 + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_sign_tx_eip1559_sign_tx_eip1559 +// frozen bytecode for file apps/ethereum/sign_tx_eip1559.py, scope apps_ethereum_sign_tx_eip1559_sign_tx_eip1559__lt_genexpr_gt_ +static const byte fun_data_apps_ethereum_sign_tx_eip1559_sign_tx_eip1559__lt_genexpr_gt_[25] = { + 0xb9,0x40,0x08, // prelude + 0x44,0x4e, // names: , * + 0x80,0x6f, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0a, // FOR_ITER 10 + 0xc1, // STORE_FAST 1 + 0x12,0x0a, // LOAD_GLOBAL 'access_list_item_length' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_tx_eip1559_sign_tx_eip1559__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_sign_tx_eip1559_sign_tx_eip1559__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 68, + .line_info = fun_data_apps_ethereum_sign_tx_eip1559_sign_tx_eip1559__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_apps_ethereum_sign_tx_eip1559_sign_tx_eip1559__lt_genexpr_gt_ + 7, + .opcodes = fun_data_apps_ethereum_sign_tx_eip1559_sign_tx_eip1559__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_sign_tx_eip1559_sign_tx_eip1559[] = { + &raw_code_apps_ethereum_sign_tx_eip1559_sign_tx_eip1559__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_sign_tx_eip1559_sign_tx_eip1559 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_ethereum_sign_tx_eip1559_sign_tx_eip1559, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 638, + #endif + .children = (void *)&children_apps_ethereum_sign_tx_eip1559_sign_tx_eip1559, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 41, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_ethereum_sign_tx_eip1559_sign_tx_eip1559 + 8, + .line_info_top = fun_data_apps_ethereum_sign_tx_eip1559_sign_tx_eip1559 + 68, + .opcodes = fun_data_apps_ethereum_sign_tx_eip1559_sign_tx_eip1559 + 68, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_tx_eip1559__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_tx_eip1559.py, scope apps_ethereum_sign_tx_eip1559__get_total_length +static const byte fun_data_apps_ethereum_sign_tx_eip1559__get_total_length[116] = { + 0x72,0x2a, // prelude + 0x36,0x46,0x4c, // names: _get_total_length, msg, data_total + 0x80,0x80,0x42,0x20,0x23,0x23,0x27,0x23,0x23,0x23,0x46,0x25,0x4c,0x2d,0x64,0x2d,0x4a,0x44, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'nonce' + 0xb0, // LOAD_FAST 0 + 0x13,0x1f, // LOAD_ATTR 'gas_limit' + 0x12,0x06, // LOAD_GLOBAL 'bytes_from_address' + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'to' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'value' + 0xb0, // LOAD_FAST 0 + 0x13,0x2e, // LOAD_ATTR 'chain_id' + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'max_gas_fee' + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'max_priority_fee' + 0x2a,0x07, // BUILD_TUPLE 7 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x5f, // GET_ITER_STACK + 0x4b,0x0d, // FOR_ITER 13 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x12,0x04, // LOAD_GLOBAL 'rlp' + 0x14,0x0b, // LOAD_METHOD 'length' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0x42,0x31, // JUMP -15 + 0xb2, // LOAD_FAST 2 + 0x12,0x04, // LOAD_GLOBAL 'rlp' + 0x14,0x0e, // LOAD_METHOD 'header_length' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'data_initial_chunk' + 0x36,0x02, // CALL_METHOD 2 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0x12,0x4b, // LOAD_GLOBAL 'sum' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'access_list' + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0x12,0x04, // LOAD_GLOBAL 'rlp' + 0x14,0x0e, // LOAD_METHOD 'header_length' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0xb5, // LOAD_FAST 5 + 0xf2, // BINARY_OP 27 __add__ + 0xc6, // STORE_FAST 6 + 0xb2, // LOAD_FAST 2 + 0xb6, // LOAD_FAST 6 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_sign_tx_eip1559__get_total_length +// frozen bytecode for file apps/ethereum/sign_tx_eip1559.py, scope apps_ethereum_sign_tx_eip1559__get_total_length__lt_genexpr_gt_ +static const byte fun_data_apps_ethereum_sign_tx_eip1559__get_total_length__lt_genexpr_gt_[25] = { + 0xb9,0x40,0x08, // prelude + 0x44,0x4e, // names: , * + 0x80,0x92, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x0a, // FOR_ITER 10 + 0xc1, // STORE_FAST 1 + 0x12,0x0a, // LOAD_GLOBAL 'access_list_item_length' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_tx_eip1559__get_total_length__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_sign_tx_eip1559__get_total_length__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 68, + .line_info = fun_data_apps_ethereum_sign_tx_eip1559__get_total_length__lt_genexpr_gt_ + 5, + .line_info_top = fun_data_apps_ethereum_sign_tx_eip1559__get_total_length__lt_genexpr_gt_ + 7, + .opcodes = fun_data_apps_ethereum_sign_tx_eip1559__get_total_length__lt_genexpr_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_sign_tx_eip1559__get_total_length[] = { + &raw_code_apps_ethereum_sign_tx_eip1559__get_total_length__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_sign_tx_eip1559__get_total_length = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_sign_tx_eip1559__get_total_length, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 116, + #endif + .children = (void *)&children_apps_ethereum_sign_tx_eip1559__get_total_length, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 54, + .line_info = fun_data_apps_ethereum_sign_tx_eip1559__get_total_length + 5, + .line_info_top = fun_data_apps_ethereum_sign_tx_eip1559__get_total_length + 23, + .opcodes = fun_data_apps_ethereum_sign_tx_eip1559__get_total_length + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_tx_eip1559__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_tx_eip1559.py, scope apps_ethereum_sign_tx_eip1559__sign_digest +static const byte fun_data_apps_ethereum_sign_tx_eip1559__sign_digest[96] = { + 0x6b,0x1e, // prelude + 0x38,0x46,0x09,0x4d, // names: _sign_digest, msg, keychain, digest + 0x80,0x9d,0x2b,0x4b,0x29,0x23,0x6d,0x24,0x28,0x29,0x49, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x39, // LOAD_CONST_STRING 'secp256k1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x3a, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x39, // IMPORT_FROM 'secp256k1' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3b, // LOAD_CONST_STRING 'EthereumTxRequest' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x3c, // IMPORT_NAME 'trezor.messages' + 0x1c,0x3b, // IMPORT_FROM 'EthereumTxRequest' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x3d, // LOAD_METHOD 'derive' + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x14,0x3e, // LOAD_METHOD 'sign' + 0xb5, // LOAD_FAST 5 + 0x14,0x3f, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0xb2, // LOAD_FAST 2 + 0x50, // LOAD_CONST_FALSE + 0xb3, // LOAD_FAST 3 + 0x13,0x40, // LOAD_ATTR 'CANONICAL_SIG_ETHEREUM' + 0x36,0x04, // CALL_METHOD 4 + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc7, // STORE_FAST 7 + 0xb6, // LOAD_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x9b, // LOAD_CONST_SMALL_INT 27 + 0xf3, // BINARY_OP 28 __sub__ + 0xb7, // LOAD_FAST 7 + 0x18,0x41, // STORE_ATTR 'signature_v' + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb7, // LOAD_FAST 7 + 0x18,0x42, // STORE_ATTR 'signature_r' + 0xb6, // LOAD_FAST 6 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb7, // LOAD_FAST 7 + 0x18,0x43, // STORE_ATTR 'signature_s' + 0xb7, // LOAD_FAST 7 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_tx_eip1559__sign_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_ethereum_sign_tx_eip1559__sign_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 96, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 56, + .line_info = fun_data_apps_ethereum_sign_tx_eip1559__sign_digest + 6, + .line_info_top = fun_data_apps_ethereum_sign_tx_eip1559__sign_digest + 17, + .opcodes = fun_data_apps_ethereum_sign_tx_eip1559__sign_digest + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_sign_tx_eip1559__lt_module_gt_[] = { + &raw_code_apps_ethereum_sign_tx_eip1559_access_list_item_length, + &raw_code_apps_ethereum_sign_tx_eip1559_sign_tx_eip1559, + &raw_code_apps_ethereum_sign_tx_eip1559__get_total_length, + &raw_code_apps_ethereum_sign_tx_eip1559__sign_digest, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_sign_tx_eip1559__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_sign_tx_eip1559__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 85, + #endif + .children = (void *)&children_apps_ethereum_sign_tx_eip1559__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ethereum_sign_tx_eip1559__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ethereum_sign_tx_eip1559__lt_module_gt_ + 15, + .opcodes = fun_data_apps_ethereum_sign_tx_eip1559__lt_module_gt_ + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ethereum_sign_tx_eip1559[79] = { + MP_QSTR_apps_slash_ethereum_slash_sign_tx_eip1559_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_rlp, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_bytes_from_address, + MP_QSTR_helpers, + MP_QSTR_with_keychain_from_chain_id, + MP_QSTR_keychain, + MP_QSTR_access_list_item_length, + MP_QSTR_length, + MP_QSTR_address, + MP_QSTR_storage_keys, + MP_QSTR_header_length, + MP_QSTR_sign_tx_eip1559, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_sha3_256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_HashWriter, + MP_QSTR_trezor_dot_utils, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_require_confirm_data, + MP_QSTR_require_confirm_tx_eip1559, + MP_QSTR_layout, + MP_QSTR_check_common_fields, + MP_QSTR_handle_erc20, + MP_QSTR_send_request_chunk, + MP_QSTR_sign_tx, + MP_QSTR_gas_limit, + MP_QSTR_data_length, + MP_QSTR_max_gas_fee, + MP_QSTR_DataError, + MP_QSTR_max_priority_fee, + MP_QSTR_validate_path, + MP_QSTR_address_n, + MP_QSTR_data_initial_chunk, + MP_QSTR_from_bytes, + MP_QSTR_big, + MP_QSTR_network, + MP_QSTR_keccak, + MP_QSTR_write, + MP_QSTR_write_header, + MP_QSTR_LIST_HEADER_BYTE, + MP_QSTR_chain_id, + MP_QSTR_nonce, + MP_QSTR_value, + MP_QSTR_STRING_HEADER_BYTE, + MP_QSTR_extend, + MP_QSTR_data_chunk, + MP_QSTR_access_list, + MP_QSTR_get_digest, + MP_QSTR__get_total_length, + MP_QSTR_to, + MP_QSTR__sign_digest, + MP_QSTR_secp256k1, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_EthereumTxRequest, + MP_QSTR_trezor_dot_messages, + MP_QSTR_derive, + MP_QSTR_sign, + MP_QSTR_private_key, + MP_QSTR_CANONICAL_SIG_ETHEREUM, + MP_QSTR_signature_v, + MP_QSTR_signature_r, + MP_QSTR_signature_s, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_item, + MP_QSTR_msg, + MP_QSTR_defs, + MP_QSTR_len, + MP_QSTR_int, + MP_QSTR_bytearray, + MP_QSTR_sum, + MP_QSTR_data_total, + MP_QSTR_digest, + MP_QSTR__star_, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_ethereum_sign_tx_eip1559[1] = { + MP_ROM_QSTR(MP_QSTR_Fee_space_overflow), +}; + +static const mp_frozen_module_t frozen_module_apps_ethereum_sign_tx_eip1559 = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ethereum_sign_tx_eip1559, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_ethereum_sign_tx_eip1559, + }, + .rc = &raw_code_apps_ethereum_sign_tx_eip1559__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ethereum_sign_typed_data +// - original source file: build/firmware/src/apps/ethereum/sign_typed_data.mpy +// - frozen file name: apps/ethereum/sign_typed_data.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data__lt_module_gt_ +static const byte fun_data_apps_ethereum_sign_typed_data__lt_module_gt_[184] = { + 0x10,0x40, // prelude + 0x01, // names: + 0x40,0x2c,0x2c,0x4c,0x2c,0x32,0x4c,0x80,0x0e,0x8d,0x24,0x88,0x37,0x84,0x07,0x64,0x60,0x89,0xe5,0x84,0x30,0x88,0x0e,0x84,0x1b,0x84,0x33,0x84,0x0a,0x84,0x12, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'EthereumDataType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x02, // IMPORT_FROM 'EthereumDataType' + 0x16,0x02, // STORE_NAME 'EthereumDataType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.wire' + 0x1c,0x04, // IMPORT_FROM 'DataError' + 0x16,0x04, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'call' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x06, // IMPORT_FROM 'call' + 0x16,0x06, // STORE_NAME 'call' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x08, // LOAD_CONST_STRING 'get_type_name' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'helpers' + 0x1c,0x08, // IMPORT_FROM 'get_type_name' + 0x16,0x08, // STORE_NAME 'get_type_name' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0a, // LOAD_CONST_STRING 'PATTERNS_ADDRESS' + 0x10,0x0b, // LOAD_CONST_STRING 'with_keychain_from_path' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0c, // IMPORT_NAME 'keychain' + 0x1c,0x0a, // IMPORT_FROM 'PATTERNS_ADDRESS' + 0x16,0x0a, // STORE_NAME 'PATTERNS_ADDRESS' + 0x1c,0x0b, // IMPORT_FROM 'with_keychain_from_path' + 0x16,0x0b, // STORE_NAME 'with_keychain_from_path' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0d, // LOAD_CONST_STRING 'should_show_struct' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'layout' + 0x1c,0x0d, // IMPORT_FROM 'should_show_struct' + 0x16,0x0d, // STORE_NAME 'should_show_struct' + 0x59, // POP_TOP + 0x11,0x0b, // LOAD_NAME 'with_keychain_from_path' + 0x11,0x0a, // LOAD_NAME 'PATTERNS_ADDRESS' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x35,0x01, // CALL_FUNCTION_VAR_KW 1 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x10, // STORE_NAME 'sign_typed_data' + 0x52, // LOAD_CONST_TRUE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x25, // STORE_NAME '_generate_typed_data_hash' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x2d, // STORE_NAME 'get_hash_writer' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x33, // STORE_NAME 'keccak256' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x04, // MAKE_FUNCTION 4 + 0x10,0x0f, // LOAD_CONST_STRING 'TypedDataEnvelope' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x0f, // STORE_NAME 'TypedDataEnvelope' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x36, // STORE_NAME 'encode_field' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x06, // MAKE_FUNCTION_DEFARGS 6 + 0x16,0x41, // STORE_NAME 'write_leftpad32' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x42, // STORE_NAME '_validate_value' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x44, // STORE_NAME 'validate_field_type' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x49, // STORE_NAME '_get_array_size' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x4d, // STORE_NAME 'get_value' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x53, // STORE_NAME '_get_name_and_version_for_domain' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_sign_typed_data__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data_sign_typed_data +static const byte fun_data_apps_ethereum_sign_typed_data_sign_typed_data[174] = { + 0x9b,0x50,0x2a, // prelude + 0x10,0x6c,0x0c,0x6d, // names: sign_typed_data, msg, keychain, defs + 0x80,0x1e,0x2b,0x4b,0x4b,0x2b,0x4b,0x4d,0x29,0x66,0x48,0x22,0x6c,0x23,0x6d,0x23,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'secp256k1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x12, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x11, // IMPORT_FROM 'secp256k1' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'EthereumTypedDataSignature' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'trezor.messages' + 0x1c,0x13, // IMPORT_FROM 'EthereumTypedDataSignature' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x15, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x16, // IMPORT_NAME 'apps.common' + 0x1c,0x15, // IMPORT_FROM 'paths' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x17, // LOAD_CONST_STRING 'address_from_bytes' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'helpers' + 0x1c,0x17, // IMPORT_FROM 'address_from_bytes' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x18, // LOAD_CONST_STRING 'require_confirm_address' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'layout' + 0x1c,0x18, // IMPORT_FROM 'require_confirm_address' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x19, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'address_n' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x1b, // LOAD_METHOD 'derive' + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x14,0x1c, // LOAD_METHOD 'ethereum_pubkeyhash' + 0x36,0x00, // CALL_METHOD 0 + 0xc9, // STORE_FAST 9 + 0xb7, // LOAD_FAST 7 + 0xb9, // LOAD_FAST 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x25, // LOAD_GLOBAL '_generate_typed_data_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'primary_type' + 0xb0, // LOAD_FAST 0 + 0x13,0x1e, // LOAD_ATTR 'metamask_v4_compat' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xca, // STORE_FAST 10 + 0xb3, // LOAD_FAST 3 + 0x14,0x1f, // LOAD_METHOD 'sign' + 0xb8, // LOAD_FAST 8 + 0x14,0x20, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0xba, // LOAD_FAST 10 + 0x50, // LOAD_CONST_FALSE + 0xb3, // LOAD_FAST 3 + 0x13,0x21, // LOAD_ATTR 'CANONICAL_SIG_ETHEREUM' + 0x36,0x04, // CALL_METHOD 4 + 0xcb, // STORE_FAST 11 + 0xb4, // LOAD_FAST 4 + 0x10,0x22, // LOAD_CONST_STRING 'address' + 0xb6, // LOAD_FAST 6 + 0xb9, // LOAD_FAST 9 + 0xb2, // LOAD_FAST 2 + 0x13,0x23, // LOAD_ATTR 'network' + 0x34,0x02, // CALL_FUNCTION 2 + 0x10,0x24, // LOAD_CONST_STRING 'signature' + 0xbb, // LOAD_FAST 11 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xbb, // LOAD_FAST 11 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data_sign_typed_data = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_ethereum_sign_typed_data_sign_typed_data, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 174, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 20, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_ethereum_sign_typed_data_sign_typed_data + 7, + .line_info_top = fun_data_apps_ethereum_sign_typed_data_sign_typed_data + 24, + .opcodes = fun_data_apps_ethereum_sign_typed_data_sign_typed_data + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_typed_data__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data__generate_typed_data_hash +static const byte fun_data_apps_ethereum_sign_typed_data__generate_typed_data_hash[183] = { + 0x8a,0x51,0x3c, // prelude + 0x25,0x1d,0x1e, // names: _generate_typed_data_hash, primary_type, metamask_v4_compat + 0x80,0x3f,0x60,0x60,0x75,0x60,0x67,0x20,0x49,0x2c,0x29,0x23,0x22,0x44,0x6a,0x60,0x26,0x27,0x45,0x43,0x27,0x22,0x48,0x44,0x44,0x69,0x47, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x26, // LOAD_CONST_STRING 'confirm_empty_typed_message' + 0x10,0x27, // LOAD_CONST_STRING 'confirm_typed_data_final' + 0x10,0x28, // LOAD_CONST_STRING 'should_show_domain' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x0e, // IMPORT_NAME 'layout' + 0x1c,0x26, // IMPORT_FROM 'confirm_empty_typed_message' + 0xc2, // STORE_FAST 2 + 0x1c,0x27, // IMPORT_FROM 'confirm_typed_data_final' + 0xc3, // STORE_FAST 3 + 0x1c,0x28, // IMPORT_FROM 'should_show_domain' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'TypedDataEnvelope' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x14,0x29, // LOAD_METHOD 'collect_types' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x53, // LOAD_GLOBAL '_get_name_and_version_for_domain' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc6, // STORE_FAST 6 + 0xc7, // STORE_FAST 7 + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc8, // STORE_FAST 8 + 0xb5, // LOAD_FAST 5 + 0x14,0x2a, // LOAD_METHOD 'hash_struct' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x01, // BUILD_LIST 1 + 0xb8, // LOAD_FAST 8 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x2b,0x01, // BUILD_LIST 1 + 0x36,0x04, // CALL_METHOD 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc9, // STORE_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb2, // LOAD_FAST 2 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xca, // STORE_FAST 10 + 0x42,0x65, // JUMP 37 + 0x12,0x0d, // LOAD_GLOBAL 'should_show_struct' + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0x13,0x2b, // LOAD_ATTR 'types' + 0xb0, // LOAD_FAST 0 + 0x55, // LOAD_SUBSCR + 0x13,0x2c, // LOAD_ATTR 'members' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xcb, // STORE_FAST 11 + 0xb5, // LOAD_FAST 5 + 0x14,0x2a, // LOAD_METHOD 'hash_struct' + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x2b,0x01, // BUILD_LIST 1 + 0xbb, // LOAD_FAST 11 + 0xb0, // LOAD_FAST 0 + 0x2b,0x01, // BUILD_LIST 1 + 0x36,0x04, // CALL_METHOD 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xca, // STORE_FAST 10 + 0xb3, // LOAD_FAST 3 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x33, // LOAD_GLOBAL 'keccak256' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xb9, // LOAD_FAST 9 + 0xf2, // BINARY_OP 27 __add__ + 0xba, // LOAD_FAST 10 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data__generate_typed_data_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_sign_typed_data__generate_typed_data_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 183, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_ethereum_sign_typed_data__generate_typed_data_hash + 6, + .line_info_top = fun_data_apps_ethereum_sign_typed_data__generate_typed_data_hash + 33, + .opcodes = fun_data_apps_ethereum_sign_typed_data__generate_typed_data_hash + 33, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_typed_data__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data_get_hash_writer +static const byte fun_data_apps_ethereum_sign_typed_data_get_hash_writer[40] = { + 0x28,0x0a, // prelude + 0x2d, // names: get_hash_writer + 0x80,0x74,0x2b,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2e, // LOAD_CONST_STRING 'sha3_256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2f, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x2e, // IMPORT_FROM 'sha3_256' + 0xc0, // STORE_FAST 0 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x30, // LOAD_CONST_STRING 'HashWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x31, // IMPORT_NAME 'trezor.utils' + 0x1c,0x30, // IMPORT_FROM 'HashWriter' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x10,0x32, // LOAD_CONST_STRING 'keccak' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data_get_hash_writer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_sign_typed_data_get_hash_writer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 40, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_ethereum_sign_typed_data_get_hash_writer + 3, + .line_info_top = fun_data_apps_ethereum_sign_typed_data_get_hash_writer + 7, + .opcodes = fun_data_apps_ethereum_sign_typed_data_get_hash_writer + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_typed_data__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data_keccak256 +static const byte fun_data_apps_ethereum_sign_typed_data_keccak256[26] = { + 0x21,0x0c, // prelude + 0x33,0x6e, // names: keccak256, message + 0x80,0x7b,0x25,0x27, // code info + 0x12,0x2d, // LOAD_GLOBAL 'get_hash_writer' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x34, // LOAD_METHOD 'extend' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x35, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data_keccak256 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_sign_typed_data_keccak256, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 51, + .line_info = fun_data_apps_ethereum_sign_typed_data_keccak256 + 4, + .line_info_top = fun_data_apps_ethereum_sign_typed_data_keccak256 + 8, + .opcodes = fun_data_apps_ethereum_sign_typed_data_keccak256 + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_typed_data__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data_TypedDataEnvelope +static const byte fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope[62] = { + 0x00,0x24, // prelude + 0x0f, // names: TypedDataEnvelope + 0x88,0x81,0x40,0x84,0x09,0x64,0x40,0x84,0x17,0x84,0x13,0x64,0x40,0x84,0x15,0x84,0x17, // code info + 0x11,0x6f, // LOAD_NAME '__name__' + 0x16,0x70, // STORE_NAME '__module__' + 0x10,0x0f, // LOAD_CONST_STRING 'TypedDataEnvelope' + 0x16,0x71, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x57, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x29, // STORE_NAME 'collect_types' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x58, // STORE_NAME '_collect_types' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x2a, // STORE_NAME 'hash_struct' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x5b, // STORE_NAME 'hash_type' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x5d, // STORE_NAME 'encode_type' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x5e, // STORE_NAME 'find_typed_dependencies' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x5c, // STORE_NAME 'get_and_encode_data' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_sign_typed_data_TypedDataEnvelope +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data_TypedDataEnvelope___init__ +static const byte fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope___init__[25] = { + 0x23,0x10, // prelude + 0x57,0x7a,0x1d,0x1e, // names: __init__, self, primary_type, metamask_v4_compat + 0x80,0x88,0x24,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x1d, // STORE_ATTR 'primary_type' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x1e, // STORE_ATTR 'metamask_v4_compat' + 0x2c,0x00, // BUILD_MAP 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x2b, // STORE_ATTR 'types' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 87, + .line_info = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope___init__ + 6, + .line_info_top = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope___init__ + 10, + .opcodes = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope___init__ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_typed_data_TypedDataEnvelope +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data_TypedDataEnvelope_collect_types +static const byte fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_collect_types[34] = { + 0x99,0x40,0x0c, // prelude + 0x29,0x7a, // names: collect_types, self + 0x80,0x8d,0x20,0x2b, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x58, // LOAD_METHOD '_collect_types' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x58, // LOAD_METHOD '_collect_types' + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'primary_type' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope_collect_types = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_collect_types, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_collect_types + 5, + .line_info_top = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_collect_types + 9, + .opcodes = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_collect_types + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_typed_data_TypedDataEnvelope +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data_TypedDataEnvelope__collect_types +static const byte fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope__collect_types[133] = { + 0xf2,0x40,0x2a, // prelude + 0x58,0x7a,0x7b, // names: _collect_types, self, type_name + 0x80,0x92,0x20,0x70,0x40,0x28,0x2a,0x26,0x27,0x24,0x26,0x22,0x20,0x2e,0x20,0x2a,0x4a,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x59, // LOAD_CONST_STRING 'EthereumTypedDataStructAck' + 0x10,0x5a, // LOAD_CONST_STRING 'EthereumTypedDataStructRequest' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x14, // IMPORT_NAME 'trezor.messages' + 0x1c,0x59, // IMPORT_FROM 'EthereumTypedDataStructAck' + 0xc2, // STORE_FAST 2 + 0x1c,0x5a, // IMPORT_FROM 'EthereumTypedDataStructRequest' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x54, // LOAD_CONST_STRING 'name' + 0xb1, // LOAD_FAST 1 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0xc4, // STORE_FAST 4 + 0x12,0x06, // LOAD_GLOBAL 'call' + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'types' + 0xb1, // LOAD_FAST 1 + 0x56, // STORE_SUBSCR + 0xb5, // LOAD_FAST 5 + 0x13,0x2c, // LOAD_ATTR 'members' + 0x5f, // GET_ITER_STACK + 0x4b,0x3d, // FOR_ITER 61 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x13,0x55, // LOAD_ATTR 'type' + 0xc7, // STORE_FAST 7 + 0x12,0x44, // LOAD_GLOBAL 'validate_field_type' + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x44, // JUMP 4 + 0xb7, // LOAD_FAST 7 + 0x13,0x46, // LOAD_ATTR 'entry_type' + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x13,0x37, // LOAD_ATTR 'data_type' + 0x12,0x02, // LOAD_GLOBAL 'EthereumDataType' + 0x13,0x45, // LOAD_ATTR 'ARRAY' + 0xd9, // BINARY_OP 2 __eq__ + 0x43,0x32, // POP_JUMP_IF_TRUE -14 + 0xb7, // LOAD_FAST 7 + 0x13,0x37, // LOAD_ATTR 'data_type' + 0x12,0x02, // LOAD_GLOBAL 'EthereumDataType' + 0x13,0x47, // LOAD_ATTR 'STRUCT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0xb7, // LOAD_FAST 7 + 0x13,0x48, // LOAD_ATTR 'struct_name' + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'types' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb0, // LOAD_FAST 0 + 0x14,0x58, // LOAD_METHOD '_collect_types' + 0xb7, // LOAD_FAST 7 + 0x13,0x48, // LOAD_ATTR 'struct_name' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x01, // JUMP -63 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope__collect_types = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope__collect_types, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 133, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 88, + .line_info = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope__collect_types + 6, + .line_info_top = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope__collect_types + 24, + .opcodes = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope__collect_types + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_typed_data_TypedDataEnvelope +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data_TypedDataEnvelope_hash_struct +static const byte fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_hash_struct[49] = { + 0xe1,0x44,0x1a, // prelude + 0x2a,0x7a,0x1d,0x50,0x7c,0x7d, // names: hash_struct, self, primary_type, member_path, show_data, parent_objects + 0x80,0xaf,0x20,0x25,0x28,0x8e,0x07, // code info + 0x12,0x2d, // LOAD_GLOBAL 'get_hash_writer' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x14,0x5b, // LOAD_METHOD 'hash_type' + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x5c, // LOAD_METHOD 'get_and_encode_data' + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x05, // CALL_METHOD 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x35, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope_hash_struct = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_hash_struct, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_hash_struct + 9, + .line_info_top = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_hash_struct + 16, + .opcodes = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_hash_struct + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_typed_data_TypedDataEnvelope +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data_TypedDataEnvelope_hash_type +static const byte fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_hash_type[30] = { + 0x3b,0x10, // prelude + 0x5b,0x7a,0x72,0x1d, // names: hash_type, self, w, primary_type + 0x80,0xbc,0x20,0x2b, // code info + 0x12,0x33, // LOAD_GLOBAL 'keccak256' + 0xb0, // LOAD_FAST 0 + 0x14,0x5d, // LOAD_METHOD 'encode_type' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x14,0x34, // LOAD_METHOD 'extend' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope_hash_type = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_hash_type, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 91, + .line_info = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_hash_type + 6, + .line_info_top = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_hash_type + 10, + .opcodes = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_hash_type + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_typed_data_TypedDataEnvelope +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data_TypedDataEnvelope_encode_type +static const byte fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_encode_type[103] = { + 0x82,0x10,0x1e, // prelude + 0x5d,0x7a,0x1d, // names: encode_type, self, primary_type + 0x80,0xc1,0x80,0x07,0x43,0x25,0x28,0x47,0x2d,0x28,0x2d,0x50, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xc2, // STORE_FAST 2 + 0x12,0x7e, // LOAD_GLOBAL 'set' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x14,0x5e, // LOAD_METHOD 'find_typed_dependencies' + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x5f, // LOAD_METHOD 'remove' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x2b,0x01, // BUILD_LIST 1 + 0x12,0x7f, // LOAD_GLOBAL 'sorted' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x5f, // GET_ITER_STACK + 0x4b,0x26, // FOR_ITER 38 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'types' + 0xb4, // LOAD_FAST 4 + 0x55, // LOAD_SUBSCR + 0x13,0x2c, // LOAD_ATTR 'members' + 0xc5, // STORE_FAST 5 + 0x10,0x60, // LOAD_CONST_STRING ',' + 0x14,0x61, // LOAD_METHOD 'join' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb5, // LOAD_FAST 5 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0xb2, // LOAD_FAST 2 + 0x14,0x3a, // LOAD_METHOD 'append' + 0x10,0x62, // LOAD_CONST_STRING '{}({})' + 0x14,0x63, // LOAD_METHOD 'format' + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x18, // JUMP -40 + 0x10,0x64, // LOAD_CONST_STRING '' + 0x14,0x61, // LOAD_METHOD 'join' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x65, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_sign_typed_data_TypedDataEnvelope_encode_type +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data_TypedDataEnvelope_encode_type__lt_genexpr_gt_ +static const byte fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_encode_type__lt_genexpr_gt_[37] = { + 0xc9,0x40,0x0a, // prelude + 0x6a,0x81,0x01, // names: , * + 0x80,0xd0, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x15, // FOR_ITER 21 + 0xc1, // STORE_FAST 1 + 0x10,0x6b, // LOAD_CONST_STRING '{} {}' + 0x14,0x63, // LOAD_METHOD 'format' + 0x12,0x08, // LOAD_GLOBAL 'get_type_name' + 0xb1, // LOAD_FAST 1 + 0x13,0x55, // LOAD_ATTR 'type' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x54, // LOAD_ATTR 'name' + 0x36,0x02, // CALL_METHOD 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x29, // JUMP -23 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope_encode_type__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_encode_type__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 106, + .line_info = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_encode_type__lt_genexpr_gt_ + 6, + .line_info_top = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_encode_type__lt_genexpr_gt_ + 8, + .opcodes = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_encode_type__lt_genexpr_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_sign_typed_data_TypedDataEnvelope_encode_type[] = { + &raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope_encode_type__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope_encode_type = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_encode_type, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 103, + #endif + .children = (void *)&children_apps_ethereum_sign_typed_data_TypedDataEnvelope_encode_type, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 93, + .line_info = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_encode_type + 6, + .line_info_top = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_encode_type + 18, + .opcodes = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_encode_type + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_typed_data_TypedDataEnvelope +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data_TypedDataEnvelope_find_typed_dependencies +static const byte fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_find_typed_dependencies[98] = { + 0x63,0x26, // prelude + 0x5e,0x7a,0x1d,0x81,0x00, // names: find_typed_dependencies, self, primary_type, results + 0x80,0xda,0x40,0x2d,0x42,0x67,0x20,0x2b,0x24,0x22,0x20,0x2e,0x2a,0x20, // code info + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xdd, // BINARY_OP 6 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'types' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x14,0x66, // LOAD_METHOD 'add' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'types' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x13,0x2c, // LOAD_ATTR 'members' + 0x5f, // GET_ITER_STACK + 0x4b,0x2b, // FOR_ITER 43 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x13,0x55, // LOAD_ATTR 'type' + 0xc4, // STORE_FAST 4 + 0x42,0x44, // JUMP 4 + 0xb4, // LOAD_FAST 4 + 0x13,0x46, // LOAD_ATTR 'entry_type' + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x13,0x37, // LOAD_ATTR 'data_type' + 0x12,0x02, // LOAD_GLOBAL 'EthereumDataType' + 0x13,0x45, // LOAD_ATTR 'ARRAY' + 0xd9, // BINARY_OP 2 __eq__ + 0x43,0x32, // POP_JUMP_IF_TRUE -14 + 0xb4, // LOAD_FAST 4 + 0x13,0x37, // LOAD_ATTR 'data_type' + 0x12,0x02, // LOAD_GLOBAL 'EthereumDataType' + 0x13,0x47, // LOAD_ATTR 'STRUCT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb0, // LOAD_FAST 0 + 0x14,0x5e, // LOAD_METHOD 'find_typed_dependencies' + 0xb4, // LOAD_FAST 4 + 0x13,0x48, // LOAD_ATTR 'struct_name' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x13, // JUMP -45 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope_find_typed_dependencies = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_find_typed_dependencies, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 98, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 94, + .line_info = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_find_typed_dependencies + 7, + .line_info_top = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_find_typed_dependencies + 21, + .opcodes = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_find_typed_dependencies + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_typed_data_TypedDataEnvelope +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data_TypedDataEnvelope_get_and_encode_data +static const byte fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_get_and_encode_data[482] = { + 0xaa,0x64,0x88,0x02, // prelude + 0x5c,0x7a,0x72,0x1d,0x50,0x7c,0x7d, // names: get_and_encode_data, self, w, primary_type, member_path, show_data, parent_objects + 0x80,0xf4,0x80,0x08,0x50,0x28,0x26,0x27,0x2d,0x24,0x24,0x64,0x2b,0x20,0x24,0x44,0x23,0x43,0x27,0x70,0x43,0x6f,0x60,0x2b,0x4b,0x27,0x4c,0x45,0x20,0x25,0x44,0x23,0x42,0x71,0x20,0x43,0x26,0x27,0x29,0x46,0x2b,0x20,0x65,0x60,0x25,0x70,0x60,0x4b,0x73,0x60,0x40,0x2d,0x2b,0x24,0x79,0x60,0x20,0x4e,0x2b,0x29,0x23, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x67, // LOAD_CONST_STRING 'confirm_typed_value' + 0x10,0x68, // LOAD_CONST_STRING 'should_show_array' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0e, // IMPORT_NAME 'layout' + 0x1c,0x67, // IMPORT_FROM 'confirm_typed_value' + 0xc6, // STORE_FAST 6 + 0x1c,0x68, // IMPORT_FROM 'should_show_array' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'types' + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0x13,0x2c, // LOAD_ATTR 'members' + 0xc8, // STORE_FAST 8 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x01, // BUILD_LIST 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc9, // STORE_FAST 9 + 0xb5, // LOAD_FAST 5 + 0x10,0x64, // LOAD_CONST_STRING '' + 0x2b,0x01, // BUILD_LIST 1 + 0xf2, // BINARY_OP 27 __add__ + 0xca, // STORE_FAST 10 + 0x12,0x79, // LOAD_GLOBAL 'enumerate' + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0xea,0x02, // FOR_ITER 362 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xcb, // STORE_FAST 11 + 0xcc, // STORE_FAST 12 + 0xbb, // LOAD_FAST 11 + 0xb9, // LOAD_FAST 9 + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x56, // STORE_SUBSCR + 0xbc, // LOAD_FAST 12 + 0x13,0x54, // LOAD_ATTR 'name' + 0xcd, // STORE_FAST 13 + 0xbc, // LOAD_FAST 12 + 0x13,0x55, // LOAD_ATTR 'type' + 0xce, // STORE_FAST 14 + 0xbe, // LOAD_FAST 14 + 0x13,0x37, // LOAD_ATTR 'data_type' + 0x12,0x02, // LOAD_GLOBAL 'EthereumDataType' + 0x13,0x47, // LOAD_ATTR 'STRUCT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xc2,0x80, // POP_JUMP_IF_FALSE 66 + 0xbe, // LOAD_FAST 14 + 0x13,0x48, // LOAD_ATTR 'struct_name' + 0xcf, // STORE_FAST 15 + 0xbd, // LOAD_FAST 13 + 0xba, // LOAD_FAST 10 + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x56, // STORE_SUBSCR + 0xb4, // LOAD_FAST 4 + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0x12,0x0d, // LOAD_GLOBAL 'should_show_struct' + 0xbf, // LOAD_FAST 15 + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'types' + 0xbf, // LOAD_FAST 15 + 0x55, // LOAD_SUBSCR + 0x13,0x2c, // LOAD_ATTR 'members' + 0x10,0x69, // LOAD_CONST_STRING '.' + 0x14,0x61, // LOAD_METHOD 'join' + 0xba, // LOAD_FAST 10 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x10, // STORE_FAST_N 16 + 0x42,0x43, // JUMP 3 + 0x50, // LOAD_CONST_FALSE + 0x26,0x10, // STORE_FAST_N 16 + 0xb0, // LOAD_FAST 0 + 0x14,0x2a, // LOAD_METHOD 'hash_struct' + 0xbf, // LOAD_FAST 15 + 0xb9, // LOAD_FAST 9 + 0x24,0x10, // LOAD_FAST_N 16 + 0xba, // LOAD_FAST 10 + 0x36,0x04, // CALL_METHOD 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x11, // STORE_FAST_N 17 + 0xb1, // LOAD_FAST 1 + 0x14,0x34, // LOAD_METHOD 'extend' + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x8a,0x82, // JUMP 266 + 0xbe, // LOAD_FAST 14 + 0x13,0x37, // LOAD_ATTR 'data_type' + 0x12,0x02, // LOAD_GLOBAL 'EthereumDataType' + 0x13,0x45, // LOAD_ATTR 'ARRAY' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xdc,0x81, // POP_JUMP_IF_FALSE 220 + 0xbe, // LOAD_FAST 14 + 0x13,0x39, // LOAD_ATTR 'size' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x49, // LOAD_GLOBAL '_get_array_size' + 0xb9, // LOAD_FAST 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x12, // STORE_FAST_N 18 + 0x42,0x45, // JUMP 5 + 0xbe, // LOAD_FAST 14 + 0x13,0x39, // LOAD_ATTR 'size' + 0x26,0x12, // STORE_FAST_N 18 + 0xbe, // LOAD_FAST 14 + 0x13,0x46, // LOAD_ATTR 'entry_type' + 0x26,0x13, // STORE_FAST_N 19 + 0xbd, // LOAD_FAST 13 + 0xba, // LOAD_FAST 10 + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x56, // STORE_SUBSCR + 0xb4, // LOAD_FAST 4 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xb7, // LOAD_FAST 7 + 0xba, // LOAD_FAST 10 + 0x12,0x08, // LOAD_GLOBAL 'get_type_name' + 0x24,0x13, // LOAD_FAST_N 19 + 0x34,0x01, // CALL_FUNCTION 1 + 0x24,0x12, // LOAD_FAST_N 18 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x14, // STORE_FAST_N 20 + 0x42,0x43, // JUMP 3 + 0x50, // LOAD_CONST_FALSE + 0x26,0x14, // STORE_FAST_N 20 + 0x12,0x2d, // LOAD_GLOBAL 'get_hash_writer' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x15, // STORE_FAST_N 21 + 0xb9, // LOAD_FAST 9 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x01, // BUILD_LIST 1 + 0xf2, // BINARY_OP 27 __add__ + 0x26,0x16, // STORE_FAST_N 22 + 0x24,0x12, // LOAD_FAST_N 18 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xf9,0x80, // JUMP 121 + 0x57, // DUP_TOP + 0x26,0x17, // STORE_FAST_N 23 + 0x24,0x17, // LOAD_FAST_N 23 + 0x24,0x16, // LOAD_FAST_N 22 + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x56, // STORE_SUBSCR + 0x24,0x13, // LOAD_FAST_N 19 + 0x13,0x37, // LOAD_ATTR 'data_type' + 0x12,0x02, // LOAD_GLOBAL 'EthereumDataType' + 0x13,0x47, // LOAD_ATTR 'STRUCT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x78, // POP_JUMP_IF_FALSE 56 + 0x24,0x13, // LOAD_FAST_N 19 + 0x13,0x48, // LOAD_ATTR 'struct_name' + 0xcf, // STORE_FAST 15 + 0xb0, // LOAD_FAST 0 + 0x13,0x1e, // LOAD_ATTR 'metamask_v4_compat' + 0x44,0x5b, // POP_JUMP_IF_FALSE 27 + 0xb0, // LOAD_FAST 0 + 0x14,0x2a, // LOAD_METHOD 'hash_struct' + 0xbf, // LOAD_FAST 15 + 0x24,0x16, // LOAD_FAST_N 22 + 0x24,0x14, // LOAD_FAST_N 20 + 0xba, // LOAD_FAST 10 + 0x36,0x04, // CALL_METHOD 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x11, // STORE_FAST_N 17 + 0x24,0x15, // LOAD_FAST_N 21 + 0x14,0x34, // LOAD_METHOD 'extend' + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x51, // JUMP 17 + 0xb0, // LOAD_FAST 0 + 0x14,0x5c, // LOAD_METHOD 'get_and_encode_data' + 0x24,0x15, // LOAD_FAST_N 21 + 0xbf, // LOAD_FAST 15 + 0x24,0x16, // LOAD_FAST_N 22 + 0x24,0x14, // LOAD_FAST_N 20 + 0xba, // LOAD_FAST 10 + 0x36,0x05, // CALL_METHOD 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x6b, // JUMP 43 + 0x12,0x4d, // LOAD_GLOBAL 'get_value' + 0x24,0x13, // LOAD_FAST_N 19 + 0x24,0x16, // LOAD_FAST_N 22 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x18, // STORE_FAST_N 24 + 0x12,0x36, // LOAD_GLOBAL 'encode_field' + 0x24,0x15, // LOAD_FAST_N 21 + 0x24,0x13, // LOAD_FAST_N 19 + 0x24,0x18, // LOAD_FAST_N 24 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x24,0x14, // LOAD_FAST_N 20 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb6, // LOAD_FAST 6 + 0xbd, // LOAD_FAST 13 + 0x24,0x18, // LOAD_FAST_N 24 + 0xb5, // LOAD_FAST 5 + 0x24,0x13, // LOAD_FAST_N 19 + 0x24,0x17, // LOAD_FAST_N 23 + 0x34,0x05, // CALL_FUNCTION 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x81,0x7f, // POP_JUMP_IF_TRUE -127 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x34, // LOAD_METHOD 'extend' + 0x24,0x15, // LOAD_FAST_N 21 + 0x14,0x35, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x63, // JUMP 35 + 0x12,0x4d, // LOAD_GLOBAL 'get_value' + 0xbe, // LOAD_FAST 14 + 0xb9, // LOAD_FAST 9 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x18, // STORE_FAST_N 24 + 0x12,0x36, // LOAD_GLOBAL 'encode_field' + 0xb1, // LOAD_FAST 1 + 0xbe, // LOAD_FAST 14 + 0x24,0x18, // LOAD_FAST_N 24 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb6, // LOAD_FAST 6 + 0xbd, // LOAD_FAST 13 + 0x24,0x18, // LOAD_FAST_N 24 + 0xb5, // LOAD_FAST 5 + 0xbe, // LOAD_FAST 14 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x93,0x7d, // JUMP -365 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope_get_and_encode_data = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 6, + .fun_data = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_get_and_encode_data, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 482, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 38, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 92, + .line_info = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_get_and_encode_data + 11, + .line_info_top = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_get_and_encode_data + 72, + .opcodes = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope_get_and_encode_data + 72, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_sign_typed_data_TypedDataEnvelope[] = { + &raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope___init__, + &raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope_collect_types, + &raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope__collect_types, + &raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope_hash_struct, + &raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope_hash_type, + &raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope_encode_type, + &raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope_find_typed_dependencies, + &raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope_get_and_encode_data, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 62, + #endif + .children = (void *)&children_apps_ethereum_sign_typed_data_TypedDataEnvelope, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 8, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope + 3, + .line_info_top = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope + 20, + .opcodes = fun_data_apps_ethereum_sign_typed_data_TypedDataEnvelope + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_typed_data__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data_encode_field +static const byte fun_data_apps_ethereum_sign_typed_data_encode_field[169] = { + 0x53,0x34, // prelude + 0x36,0x72,0x52,0x51, // names: encode_field, w, field, value + 0x90,0x6a,0x80,0x10,0x43,0x44,0x27,0x27,0x6d,0x20,0x27,0x2c,0x33,0x27,0x2d,0x27,0x2d,0x21,0x23,0x23,0x48,0x49, // code info + 0x12,0x02, // LOAD_GLOBAL 'EthereumDataType' + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x37, // LOAD_ATTR 'data_type' + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x13,0x38, // LOAD_ATTR 'BYTES' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7a, // POP_JUMP_IF_FALSE 58 + 0xb1, // LOAD_FAST 1 + 0x13,0x39, // LOAD_ATTR 'size' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb0, // LOAD_FAST 0 + 0x14,0x34, // LOAD_METHOD 'extend' + 0x12,0x33, // LOAD_GLOBAL 'keccak256' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x63, // JUMP 35 + 0xb0, // LOAD_FAST 0 + 0x14,0x34, // LOAD_METHOD 'extend' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x12,0x73, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x4b, // JUMP 11 + 0x57, // DUP_TOP + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x14,0x3a, // LOAD_METHOD 'append' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x30, // POP_JUMP_IF_TRUE -16 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x42,0xc3,0x80, // JUMP 67 + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x13,0x3b, // LOAD_ATTR 'STRING' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb0, // LOAD_FAST 0 + 0x14,0x34, // LOAD_METHOD 'extend' + 0x12,0x33, // LOAD_GLOBAL 'keccak256' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x6f, // JUMP 47 + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x13,0x3c, // LOAD_ATTR 'INT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x41, // LOAD_GLOBAL 'write_leftpad32' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x10,0x3d, // LOAD_CONST_STRING 'signed' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x59, // POP_TOP + 0x42,0x5b, // JUMP 27 + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x13,0x3e, // LOAD_ATTR 'UINT' + 0xb3, // LOAD_FAST 3 + 0x13,0x3f, // LOAD_ATTR 'BOOL' + 0xb3, // LOAD_FAST 3 + 0x13,0x40, // LOAD_ATTR 'ADDRESS' + 0x2a,0x03, // BUILD_TUPLE 3 + 0xdd, // BINARY_OP 6 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x41, // LOAD_GLOBAL 'write_leftpad32' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x43, // JUMP 3 + 0x12,0x74, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data_encode_field = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_ethereum_sign_typed_data_encode_field, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 169, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 54, + .line_info = fun_data_apps_ethereum_sign_typed_data_encode_field + 6, + .line_info_top = fun_data_apps_ethereum_sign_typed_data_encode_field + 28, + .opcodes = fun_data_apps_ethereum_sign_typed_data_encode_field + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_typed_data__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data_write_leftpad32 +static const byte fun_data_apps_ethereum_sign_typed_data_write_leftpad32[72] = { + 0xcb,0x01,0x18, // prelude + 0x41,0x72,0x51,0x3d, // names: write_leftpad32, w, value, signed + 0x90,0x96,0x60,0x2c,0x46,0x42,0x2c,0x30, // code info + 0xb2, // LOAD_FAST 2 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xef, // BINARY_OP 24 __and__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xc3, // STORE_FAST 3 + 0x42,0x42, // JUMP 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc3, // STORE_FAST 3 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x12,0x73, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x4b, // JUMP 11 + 0x57, // DUP_TOP + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x3a, // LOAD_METHOD 'append' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x30, // POP_JUMP_IF_TRUE -16 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x34, // LOAD_METHOD 'extend' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data_write_leftpad32 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_ethereum_sign_typed_data_write_leftpad32, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 65, + .line_info = fun_data_apps_ethereum_sign_typed_data_write_leftpad32 + 7, + .line_info_top = fun_data_apps_ethereum_sign_typed_data_write_leftpad32 + 15, + .opcodes = fun_data_apps_ethereum_sign_typed_data_write_leftpad32 + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_typed_data__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data__validate_value +static const byte fun_data_apps_ethereum_sign_typed_data__validate_value[142] = { + 0x3e,0x24, // prelude + 0x42,0x52,0x51, // names: _validate_value, field, value + 0x90,0xa4,0x80,0x09,0x33,0x67,0x2a,0x27,0x2a,0x2a,0x29,0x29,0x2a,0x22,0x4f, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'size' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x73, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'size' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'data_type' + 0x12,0x02, // LOAD_GLOBAL 'EthereumDataType' + 0x13,0x3f, // LOAD_ATTR 'BOOL' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb1, // LOAD_FAST 1 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0xc3,0x80, // JUMP 67 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'data_type' + 0x12,0x02, // LOAD_GLOBAL 'EthereumDataType' + 0x13,0x40, // LOAD_ATTR 'ADDRESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x73, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x67, // JUMP 39 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'data_type' + 0x12,0x02, // LOAD_GLOBAL 'EthereumDataType' + 0x13,0x3b, // LOAD_ATTR 'STRING' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5d, // POP_JUMP_IF_FALSE 29 + 0x48,0x08, // SETUP_EXCEPT 8 + 0xb1, // LOAD_FAST 1 + 0x14,0x43, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x4a,0x11, // POP_EXCEPT_JUMP 17 + 0x57, // DUP_TOP + 0x12,0x75, // LOAD_GLOBAL 'UnicodeError' + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x42,0x40, // JUMP 0 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data__validate_value = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_sign_typed_data__validate_value, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 142, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 66, + .line_info = fun_data_apps_ethereum_sign_typed_data__validate_value + 5, + .line_info_top = fun_data_apps_ethereum_sign_typed_data__validate_value + 20, + .opcodes = fun_data_apps_ethereum_sign_typed_data__validate_value + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_typed_data__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data_validate_field_type +static const byte fun_data_apps_ethereum_sign_typed_data_validate_field_type[266] = { + 0x39,0x48, // prelude + 0x44,0x52, // names: validate_field_type, field + 0x90,0xbf,0x60,0x40,0x43,0x64,0x27,0x27,0x47,0x4a,0x28,0x67,0x27,0x27,0x49,0x28,0x27,0x64,0x27,0x25,0x2a,0x27,0x35,0x2a,0x21,0x23,0x48,0x34,0x29,0x21,0x23,0x23,0x48,0x26, // code info + 0x12,0x02, // LOAD_GLOBAL 'EthereumDataType' + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'data_type' + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x45, // LOAD_ATTR 'ARRAY' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0xb0, // LOAD_FAST 0 + 0x13,0x46, // LOAD_ATTR 'entry_type' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x44, // LOAD_GLOBAL 'validate_field_type' + 0xb0, // LOAD_FAST 0 + 0x13,0x46, // LOAD_ATTR 'entry_type' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x4f, // JUMP 15 + 0xb0, // LOAD_FAST 0 + 0x13,0x46, // LOAD_ATTR 'entry_type' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x47, // LOAD_ATTR 'STRUCT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'struct_name' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x4f, // JUMP 15 + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'struct_name' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'size' + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x47, // LOAD_ATTR 'STRUCT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0xed,0x80, // JUMP 109 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x38, // LOAD_ATTR 'BYTES' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5f, // POP_JUMP_IF_FALSE 31 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb3, // LOAD_FAST 3 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x04, // JUMP_IF_FALSE_OR_POP 4 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0xc7,0x80, // JUMP 71 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x3e, // LOAD_ATTR 'UINT' + 0xb1, // LOAD_FAST 1 + 0x13,0x3c, // LOAD_ATTR 'INT' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0x44,0x5d, // POP_JUMP_IF_FALSE 29 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x4f, // POP_JUMP_IF_TRUE 15 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb3, // LOAD_FAST 3 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x04, // JUMP_IF_FALSE_OR_POP 4 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xda, // BINARY_OP 3 __le__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x5e, // JUMP 30 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x3b, // LOAD_ATTR 'STRING' + 0xb1, // LOAD_FAST 1 + 0x13,0x3f, // LOAD_ATTR 'BOOL' + 0xb1, // LOAD_FAST 1 + 0x13,0x40, // LOAD_ATTR 'ADDRESS' + 0x2a,0x03, // BUILD_TUPLE 3 + 0xdd, // BINARY_OP 6 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x40, // JUMP 0 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data_validate_field_type = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_sign_typed_data_validate_field_type, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 266, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 68, + .line_info = fun_data_apps_ethereum_sign_typed_data_validate_field_type + 4, + .line_info_top = fun_data_apps_ethereum_sign_typed_data_validate_field_type + 38, + .opcodes = fun_data_apps_ethereum_sign_typed_data_validate_field_type + 38, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_typed_data__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data__get_array_size +static const byte fun_data_apps_ethereum_sign_typed_data__get_array_size[56] = { + 0xc1,0x40,0x10, // prelude + 0x49,0x50, // names: _get_array_size, member_path + 0x90,0xf2,0x20,0x6b,0x2e,0x2a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x4a, // LOAD_CONST_STRING 'EthereumFieldType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'trezor.messages' + 0x1c,0x4a, // IMPORT_FROM 'EthereumFieldType' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x10,0x37, // LOAD_CONST_STRING 'data_type' + 0x12,0x02, // LOAD_GLOBAL 'EthereumDataType' + 0x13,0x3e, // LOAD_ATTR 'UINT' + 0x10,0x39, // LOAD_CONST_STRING 'size' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0xc2, // STORE_FAST 2 + 0x12,0x4d, // LOAD_GLOBAL 'get_value' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0x12,0x76, // LOAD_GLOBAL 'int' + 0x14,0x4b, // LOAD_METHOD 'from_bytes' + 0xb3, // LOAD_FAST 3 + 0x10,0x4c, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data__get_array_size = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_sign_typed_data__get_array_size, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 73, + .line_info = fun_data_apps_ethereum_sign_typed_data__get_array_size + 5, + .line_info_top = fun_data_apps_ethereum_sign_typed_data__get_array_size + 11, + .opcodes = fun_data_apps_ethereum_sign_typed_data__get_array_size + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_typed_data__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data_get_value +static const byte fun_data_apps_ethereum_sign_typed_data_get_value[66] = { + 0xda,0x40,0x16, // prelude + 0x4d,0x52,0x77, // names: get_value, field, member_value_path + 0x90,0xff,0x20,0x50,0x68,0x2a,0x44,0x4c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x4e, // LOAD_CONST_STRING 'EthereumTypedDataValueAck' + 0x10,0x4f, // LOAD_CONST_STRING 'EthereumTypedDataValueRequest' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x14, // IMPORT_NAME 'trezor.messages' + 0x1c,0x4e, // IMPORT_FROM 'EthereumTypedDataValueAck' + 0xc2, // STORE_FAST 2 + 0x1c,0x4f, // IMPORT_FROM 'EthereumTypedDataValueRequest' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x50, // LOAD_CONST_STRING 'member_path' + 0xb1, // LOAD_FAST 1 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0xc4, // STORE_FAST 4 + 0x12,0x06, // LOAD_GLOBAL 'call' + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x13,0x51, // LOAD_ATTR 'value' + 0xc6, // STORE_FAST 6 + 0x12,0x42, // LOAD_GLOBAL '_validate_value' + 0x10,0x52, // LOAD_CONST_STRING 'field' + 0xb0, // LOAD_FAST 0 + 0x10,0x51, // LOAD_CONST_STRING 'value' + 0xb6, // LOAD_FAST 6 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data_get_value = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_sign_typed_data_get_value, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 66, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 77, + .line_info = fun_data_apps_ethereum_sign_typed_data_get_value + 6, + .line_info_top = fun_data_apps_ethereum_sign_typed_data_get_value + 14, + .opcodes = fun_data_apps_ethereum_sign_typed_data_get_value + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_sign_typed_data__lt_module_gt_ +// frozen bytecode for file apps/ethereum/sign_typed_data.py, scope apps_ethereum_sign_typed_data__get_name_and_version_for_domain +static const byte fun_data_apps_ethereum_sign_typed_data__get_name_and_version_for_domain[104] = { + 0xe9,0x40,0x1c, // prelude + 0x53,0x78, // names: _get_name_and_version_for_domain, typed_data_envelope + 0xa0,0x10,0x23,0x43,0x29,0x25,0x2c,0x24,0x28,0x2e,0x28,0x50, // code info + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0xc1, // STORE_FAST 1 + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'types' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x55, // LOAD_SUBSCR + 0x13,0x2c, // LOAD_ATTR 'members' + 0xc3, // STORE_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x02, // BUILD_LIST 2 + 0xc4, // STORE_FAST 4 + 0x12,0x79, // LOAD_GLOBAL 'enumerate' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x36, // FOR_ITER 54 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc5, // STORE_FAST 5 + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x56, // STORE_SUBSCR + 0xb6, // LOAD_FAST 6 + 0x13,0x54, // LOAD_ATTR 'name' + 0x10,0x54, // LOAD_CONST_STRING 'name' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x4d, // LOAD_GLOBAL 'get_value' + 0xb6, // LOAD_FAST 6 + 0x13,0x55, // LOAD_ATTR 'type' + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc1, // STORE_FAST 1 + 0x42,0x56, // JUMP 22 + 0xb6, // LOAD_FAST 6 + 0x13,0x54, // LOAD_ATTR 'name' + 0x10,0x56, // LOAD_CONST_STRING 'version' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x4d, // LOAD_GLOBAL 'get_value' + 0xb6, // LOAD_FAST 6 + 0x13,0x55, // LOAD_ATTR 'type' + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0x42,0x40, // JUMP 0 + 0x42,0x08, // JUMP -56 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data__get_name_and_version_for_domain = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_sign_typed_data__get_name_and_version_for_domain, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 104, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 83, + .line_info = fun_data_apps_ethereum_sign_typed_data__get_name_and_version_for_domain + 5, + .line_info_top = fun_data_apps_ethereum_sign_typed_data__get_name_and_version_for_domain + 17, + .opcodes = fun_data_apps_ethereum_sign_typed_data__get_name_and_version_for_domain + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_sign_typed_data__lt_module_gt_[] = { + &raw_code_apps_ethereum_sign_typed_data_sign_typed_data, + &raw_code_apps_ethereum_sign_typed_data__generate_typed_data_hash, + &raw_code_apps_ethereum_sign_typed_data_get_hash_writer, + &raw_code_apps_ethereum_sign_typed_data_keccak256, + &raw_code_apps_ethereum_sign_typed_data_TypedDataEnvelope, + &raw_code_apps_ethereum_sign_typed_data_encode_field, + &raw_code_apps_ethereum_sign_typed_data_write_leftpad32, + &raw_code_apps_ethereum_sign_typed_data__validate_value, + &raw_code_apps_ethereum_sign_typed_data_validate_field_type, + &raw_code_apps_ethereum_sign_typed_data__get_array_size, + &raw_code_apps_ethereum_sign_typed_data_get_value, + &raw_code_apps_ethereum_sign_typed_data__get_name_and_version_for_domain, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_sign_typed_data__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_sign_typed_data__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 184, + #endif + .children = (void *)&children_apps_ethereum_sign_typed_data__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 12, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ethereum_sign_typed_data__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ethereum_sign_typed_data__lt_module_gt_ + 34, + .opcodes = fun_data_apps_ethereum_sign_typed_data__lt_module_gt_ + 34, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ethereum_sign_typed_data[130] = { + MP_QSTR_apps_slash_ethereum_slash_sign_typed_data_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_EthereumDataType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_call, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_get_type_name, + MP_QSTR_helpers, + MP_QSTR_PATTERNS_ADDRESS, + MP_QSTR_with_keychain_from_path, + MP_QSTR_keychain, + MP_QSTR_should_show_struct, + MP_QSTR_layout, + MP_QSTR_TypedDataEnvelope, + MP_QSTR_sign_typed_data, + MP_QSTR_secp256k1, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_EthereumTypedDataSignature, + MP_QSTR_trezor_dot_messages, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_address_from_bytes, + MP_QSTR_require_confirm_address, + MP_QSTR_validate_path, + MP_QSTR_address_n, + MP_QSTR_derive, + MP_QSTR_ethereum_pubkeyhash, + MP_QSTR_primary_type, + MP_QSTR_metamask_v4_compat, + MP_QSTR_sign, + MP_QSTR_private_key, + MP_QSTR_CANONICAL_SIG_ETHEREUM, + MP_QSTR_address, + MP_QSTR_network, + MP_QSTR_signature, + MP_QSTR__generate_typed_data_hash, + MP_QSTR_confirm_empty_typed_message, + MP_QSTR_confirm_typed_data_final, + MP_QSTR_should_show_domain, + MP_QSTR_collect_types, + MP_QSTR_hash_struct, + MP_QSTR_types, + MP_QSTR_members, + MP_QSTR_get_hash_writer, + MP_QSTR_sha3_256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_HashWriter, + MP_QSTR_trezor_dot_utils, + MP_QSTR_keccak, + MP_QSTR_keccak256, + MP_QSTR_extend, + MP_QSTR_get_digest, + MP_QSTR_encode_field, + MP_QSTR_data_type, + MP_QSTR_BYTES, + MP_QSTR_size, + MP_QSTR_append, + MP_QSTR_STRING, + MP_QSTR_INT, + MP_QSTR_signed, + MP_QSTR_UINT, + MP_QSTR_BOOL, + MP_QSTR_ADDRESS, + MP_QSTR_write_leftpad32, + MP_QSTR__validate_value, + MP_QSTR_decode, + MP_QSTR_validate_field_type, + MP_QSTR_ARRAY, + MP_QSTR_entry_type, + MP_QSTR_STRUCT, + MP_QSTR_struct_name, + MP_QSTR__get_array_size, + MP_QSTR_EthereumFieldType, + MP_QSTR_from_bytes, + MP_QSTR_big, + MP_QSTR_get_value, + MP_QSTR_EthereumTypedDataValueAck, + MP_QSTR_EthereumTypedDataValueRequest, + MP_QSTR_member_path, + MP_QSTR_value, + MP_QSTR_field, + MP_QSTR__get_name_and_version_for_domain, + MP_QSTR_name, + MP_QSTR_type, + MP_QSTR_version, + MP_QSTR___init__, + MP_QSTR__collect_types, + MP_QSTR_EthereumTypedDataStructAck, + MP_QSTR_EthereumTypedDataStructRequest, + MP_QSTR_hash_type, + MP_QSTR_get_and_encode_data, + MP_QSTR_encode_type, + MP_QSTR_find_typed_dependencies, + MP_QSTR_remove, + MP_QSTR__comma_, + MP_QSTR_join, + MP_QSTR__brace_open__brace_close__paren_open__brace_open__brace_close__paren_close_, + MP_QSTR_format, + MP_QSTR_, + MP_QSTR_encode, + MP_QSTR_add, + MP_QSTR_confirm_typed_value, + MP_QSTR_should_show_array, + MP_QSTR__dot_, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR__brace_open__brace_close__space__brace_open__brace_close_, + MP_QSTR_msg, + MP_QSTR_defs, + MP_QSTR_message, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_w, + MP_QSTR_len, + MP_QSTR_ValueError, + MP_QSTR_UnicodeError, + MP_QSTR_int, + MP_QSTR_member_value_path, + MP_QSTR_typed_data_envelope, + MP_QSTR_enumerate, + MP_QSTR_self, + MP_QSTR_type_name, + MP_QSTR_show_data, + MP_QSTR_parent_objects, + MP_QSTR_set, + MP_QSTR_sorted, + MP_QSTR_results, + MP_QSTR__star_, +}; + +// constants +static const mp_obj_str_t const_obj_apps_ethereum_sign_typed_data_4 = {{&mp_type_bytes}, 27965, 2, (const byte*)"\x19\x01"}; +static const mp_obj_str_t const_obj_apps_ethereum_sign_typed_data_6_0 = {{&mp_type_bytes}, 46501, 1, (const byte*)"\x00"}; +static const mp_obj_str_t const_obj_apps_ethereum_sign_typed_data_6_1 = {{&mp_type_bytes}, 46500, 1, (const byte*)"\x01"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_sign_typed_data_6 = {{&mp_type_tuple}, 2, { + MP_ROM_PTR(&const_obj_apps_ethereum_sign_typed_data_6_0), + MP_ROM_PTR(&const_obj_apps_ethereum_sign_typed_data_6_1), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_sign_typed_data_10 = {{&mp_type_str}, 17388, 27, (const byte*)"\x4d\x69\x73\x73\x69\x6e\x67\x20\x65\x6e\x74\x72\x79\x5f\x74\x79\x70\x65\x20\x69\x6e\x20\x61\x72\x72\x61\x79"}; +static const mp_obj_str_t const_obj_apps_ethereum_sign_typed_data_11 = {{&mp_type_str}, 27650, 33, (const byte*)"\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x65\x6e\x74\x72\x79\x5f\x74\x79\x70\x65\x20\x69\x6e\x20\x6e\x6f\x6e\x61\x72\x72\x61\x79"}; +static const mp_obj_str_t const_obj_apps_ethereum_sign_typed_data_12 = {{&mp_type_str}, 14046, 29, (const byte*)"\x4d\x69\x73\x73\x69\x6e\x67\x20\x73\x74\x72\x75\x63\x74\x5f\x6e\x61\x6d\x65\x20\x69\x6e\x20\x73\x74\x72\x75\x63\x74"}; +static const mp_obj_str_t const_obj_apps_ethereum_sign_typed_data_13 = {{&mp_type_str}, 7248, 35, (const byte*)"\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x73\x74\x72\x75\x63\x74\x5f\x6e\x61\x6d\x65\x20\x69\x6e\x20\x6e\x6f\x6e\x73\x74\x72\x75\x63\x74"}; +static const mp_obj_str_t const_obj_apps_ethereum_sign_typed_data_17 = {{&mp_type_str}, 44330, 32, (const byte*)"\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x73\x69\x7a\x65\x20\x69\x6e\x20\x73\x74\x72\x2f\x62\x6f\x6f\x6c\x2f\x61\x64\x64\x72"}; +static const mp_obj_str_t const_obj_apps_ethereum_sign_typed_data_18 = {{&mp_type_bytes}, 9325, 7, (const byte*)"\x75\x6e\x6b\x6e\x6f\x77\x6e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_ethereum_sign_typed_data[19] = { + MP_ROM_QSTR(MP_QSTR_EIP712Domain), + MP_ROM_PTR(&mp_const_empty_bytes_obj), + MP_ROM_QSTR(MP_QSTR_Confirm_space_message), + MP_ROM_QSTR(MP_QSTR_Show_space_full_space_message), + MP_ROM_PTR(&const_obj_apps_ethereum_sign_typed_data_4), + MP_ROM_QSTR(MP_QSTR_Invalid_space_length), + MP_ROM_PTR(&const_obj_apps_ethereum_sign_typed_data_6), + MP_ROM_QSTR(MP_QSTR_Invalid_space_boolean_space_value), + MP_ROM_QSTR(MP_QSTR_Invalid_space_address), + MP_ROM_QSTR(MP_QSTR_Invalid_space_UTF_hyphen_8), + MP_ROM_PTR(&const_obj_apps_ethereum_sign_typed_data_10), + MP_ROM_PTR(&const_obj_apps_ethereum_sign_typed_data_11), + MP_ROM_PTR(&const_obj_apps_ethereum_sign_typed_data_12), + MP_ROM_PTR(&const_obj_apps_ethereum_sign_typed_data_13), + MP_ROM_QSTR(MP_QSTR_Missing_space_size_space_in_space_struct), + MP_ROM_QSTR(MP_QSTR_Invalid_space_size_space_in_space_bytes), + MP_ROM_QSTR(MP_QSTR_Invalid_space_size_space_in_space_int_slash_uint), + MP_ROM_PTR(&const_obj_apps_ethereum_sign_typed_data_17), + MP_ROM_PTR(&const_obj_apps_ethereum_sign_typed_data_18), +}; + +static const mp_frozen_module_t frozen_module_apps_ethereum_sign_typed_data = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ethereum_sign_typed_data, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_ethereum_sign_typed_data, + }, + .rc = &raw_code_apps_ethereum_sign_typed_data__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ethereum_tokens +// - original source file: build/firmware/src/apps/ethereum/tokens.mpy +// - frozen file name: apps/ethereum/tokens.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ethereum/tokens.py, scope apps_ethereum_tokens__lt_module_gt_ +static const byte fun_data_apps_ethereum_tokens__lt_module_gt_[72] = { + 0x50,0x16, // prelude + 0x01, // names: + 0x80,0x12,0x2c,0x4c,0x6b,0x47,0x67,0x20,0x84,0x0d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'utils' + 0x16,0x02, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'EthereumTokenInfo' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.messages' + 0x1c,0x04, // IMPORT_FROM 'EthereumTokenInfo' + 0x16,0x04, // STORE_NAME 'EthereumTokenInfo' + 0x59, // POP_TOP + 0x11,0x04, // LOAD_NAME 'EthereumTokenInfo' + 0x10,0x06, // LOAD_CONST_STRING 'symbol' + 0x10,0x07, // LOAD_CONST_STRING 'Wei UNKN' + 0x10,0x08, // LOAD_CONST_STRING 'decimals' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'address' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x10,0x0a, // LOAD_CONST_STRING 'chain_id' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'name' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x8a,0x00, // CALL_FUNCTION 1280 + 0x16,0x0e, // STORE_NAME 'UNKNOWN_TOKEN' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0c, // STORE_NAME 'token_by_chain_address' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0d, // STORE_NAME '_token_iterator' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_tokens__lt_module_gt_ +// frozen bytecode for file apps/ethereum/tokens.py, scope apps_ethereum_tokens_token_by_chain_address +static const byte fun_data_apps_ethereum_tokens_token_by_chain_address[57] = { + 0xa2,0x10,0x14, // prelude + 0x0c,0x0a,0x09, // names: token_by_chain_address, chain_id, address + 0x80,0x1f,0x2e,0x25,0x77,0x60,0x20, // code info + 0x12,0x0d, // LOAD_GLOBAL '_token_iterator' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x22, // FOR_ITER 34 + 0x30,0x04, // UNPACK_SEQUENCE 4 + 0xc2, // STORE_FAST 2 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x12,0x04, // LOAD_GLOBAL 'EthereumTokenInfo' + 0x10,0x06, // LOAD_CONST_STRING 'symbol' + 0xb3, // LOAD_FAST 3 + 0x10,0x08, // LOAD_CONST_STRING 'decimals' + 0xb4, // LOAD_FAST 4 + 0x10,0x09, // LOAD_CONST_STRING 'address' + 0xb1, // LOAD_FAST 1 + 0x10,0x0a, // LOAD_CONST_STRING 'chain_id' + 0xb0, // LOAD_FAST 0 + 0x10,0x0b, // LOAD_CONST_STRING 'name' + 0xb5, // LOAD_FAST 5 + 0x34,0x8a,0x00, // CALL_FUNCTION 1280 + 0x63, // RETURN_VALUE + 0x42,0x1c, // JUMP -36 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_tokens_token_by_chain_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_ethereum_tokens_token_by_chain_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 21, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_ethereum_tokens_token_by_chain_address + 6, + .line_info_top = fun_data_apps_ethereum_tokens_token_by_chain_address + 13, + .opcodes = fun_data_apps_ethereum_tokens_token_by_chain_address + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ethereum_tokens__lt_module_gt_ +// frozen bytecode for file apps/ethereum/tokens.py, scope apps_ethereum_tokens__token_iterator +static const byte fun_data_apps_ethereum_tokens__token_iterator[200] = { + 0x91,0x40,0x9e,0x02, // prelude + 0x0d,0x0a, // names: _token_iterator, chain_id + 0x80,0x2c,0x80,0x95,0x26,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x40,0x64,0x20,0x26,0x40,0x64,0x20,0x27,0x40, // code info + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xd8,0x80, // POP_JUMP_IF_FALSE 88 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x23,0x17, // LOAD_CONST_OBJ 23 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x22,0x38, // LOAD_CONST_SMALL_INT 56 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x18, // LOAD_CONST_OBJ 24 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x09, // LOAD_CONST_SMALL_INT 137 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x19, // LOAD_CONST_OBJ 25 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_tokens__token_iterator = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_tokens__token_iterator, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 200, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_ethereum_tokens__token_iterator + 6, + .line_info_top = fun_data_apps_ethereum_tokens__token_iterator + 83, + .opcodes = fun_data_apps_ethereum_tokens__token_iterator + 83, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_tokens__lt_module_gt_[] = { + &raw_code_apps_ethereum_tokens_token_by_chain_address, + &raw_code_apps_ethereum_tokens__token_iterator, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_tokens__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_tokens__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = (void *)&children_apps_ethereum_tokens__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ethereum_tokens__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ethereum_tokens__lt_module_gt_ + 13, + .opcodes = fun_data_apps_ethereum_tokens__lt_module_gt_ + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ethereum_tokens[15] = { + MP_QSTR_apps_slash_ethereum_slash_tokens_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_EthereumTokenInfo, + MP_QSTR_trezor_dot_messages, + MP_QSTR_symbol, + MP_QSTR_Wei_space_UNKN, + MP_QSTR_decimals, + MP_QSTR_address, + MP_QSTR_chain_id, + MP_QSTR_name, + MP_QSTR_token_by_chain_address, + MP_QSTR__token_iterator, + MP_QSTR_UNKNOWN_TOKEN, +}; + +// constants +static const mp_obj_str_t const_obj_apps_ethereum_tokens_2_0 = {{&mp_type_bytes}, 22412, 20, (const byte*)"\x7f\xc6\x65\x00\xc8\x4a\x76\xad\x7e\x9c\x93\x43\x7b\xfc\x5a\xc3\x3e\x2d\xda\xe9"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_2 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_2_0), + MP_ROM_QSTR(MP_QSTR_AAVE), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_Aave), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_3_0 = {{&mp_type_bytes}, 65152, 20, (const byte*)"\x4d\x22\x44\x52\x80\x1a\xce\xd8\xb2\xf0\xae\xbe\x15\x53\x79\xbb\x5d\x59\x43\x81"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_3 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_3_0), + MP_ROM_QSTR(MP_QSTR_APE), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_ApeCoin), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_4_0 = {{&mp_type_bytes}, 11519, 20, (const byte*)"\xbb\x0e\x17\xef\x65\xf8\x2a\xb0\x18\xd8\xed\xd7\x76\xe8\xdd\x94\x03\x27\xb2\x8b"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_4 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_4_0), + MP_ROM_QSTR(MP_QSTR_AXS), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_Axie_space_Infinity), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_5_0 = {{&mp_type_bytes}, 41871, 20, (const byte*)"\x4f\xab\xb1\x45\xd6\x46\x52\xa9\x48\xd7\x25\x33\x02\x3f\x6e\x7a\x62\x3c\x7c\x53"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_5 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_5_0), + MP_ROM_QSTR(MP_QSTR_BUSD), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_Binance_space_USD), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_6_0 = {{&mp_type_bytes}, 8238, 20, (const byte*)"\x35\x06\x42\x4f\x91\xfd\x33\x08\x44\x66\xf4\x02\xd5\xd9\x7f\x05\xf8\xe3\xb4\xaf"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_6 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_6_0), + MP_ROM_QSTR(MP_QSTR_CHZ), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_Chiliz), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_7_0 = {{&mp_type_bytes}, 11891, 20, (const byte*)"\xa0\xb7\x3e\x1f\xf0\xb8\x09\x14\xab\x6f\xe0\x44\x4e\x65\x84\x8c\x4c\x34\x45\x0b"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_7 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_7_0), + MP_ROM_QSTR(MP_QSTR_CRO), + MP_ROM_INT(8), + MP_ROM_QSTR(MP_QSTR_Cronos), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_8_0 = {{&mp_type_bytes}, 23366, 20, (const byte*)"\x6b\x17\x54\x74\xe8\x90\x94\xc4\x4d\xa9\x8b\x95\x4e\xed\xea\xc4\x95\x27\x1d\x0f"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_8 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_8_0), + MP_ROM_QSTR(MP_QSTR_DAI), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_Dai), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_9_0 = {{&mp_type_bytes}, 63119, 20, (const byte*)"\x85\x3d\x95\x5a\xce\xf8\x22\xdb\x05\x8e\xb8\x50\x59\x11\xed\x77\xf1\x75\xb9\x9e"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_9 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_9_0), + MP_ROM_QSTR(MP_QSTR_FRAX), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_Frax), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_10_0 = {{&mp_type_bytes}, 20465, 20, (const byte*)"\x2a\xf5\xd2\xad\x76\x74\x11\x91\xd1\x5d\xfe\x7b\xf6\xac\x92\xd4\xbd\x91\x2c\xa3"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_10 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_10_0), + MP_ROM_QSTR(MP_QSTR_LEO), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_LEO_space_Token), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_11_0 = {{&mp_type_bytes}, 58722, 20, (const byte*)"\x51\x49\x10\x77\x1a\xf9\xca\x65\x6a\xf8\x40\xdf\xf8\x3e\x82\x64\xec\xf9\x86\xca"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_11 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_11_0), + MP_ROM_QSTR(MP_QSTR_LINK), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_Chainlink), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_12_0 = {{&mp_type_bytes}, 335, 20, (const byte*)"\x0f\x5d\x2f\xb2\x9f\xb7\xd3\xcf\xee\x44\x4a\x20\x02\x98\xf4\x68\x90\x8c\xc9\x42"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_12 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_12_0), + MP_ROM_QSTR(MP_QSTR_MANA), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_Decentraland), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_13_0 = {{&mp_type_bytes}, 42122, 20, (const byte*)"\x7d\x1a\xfa\x7b\x71\x8f\xb8\x93\xdb\x30\xa3\xab\xc0\xcf\xc6\x08\xaa\xcf\xeb\xb0"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_13 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_13_0), + MP_ROM_QSTR(MP_QSTR_MATIC), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_Polygon), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_14_0 = {{&mp_type_bytes}, 23142, 20, (const byte*)"\x75\x23\x1f\x58\xb4\x32\x40\xc9\x71\x8d\xd5\x8b\x49\x67\xc5\x11\x43\x42\xa8\x6c"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_14 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_14_0), + MP_ROM_QSTR(MP_QSTR_OKB), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_OKB), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_15_0 = {{&mp_type_bytes}, 29912, 20, (const byte*)"\x4a\x22\x0e\x60\x96\xb2\x5e\xad\xb8\x83\x58\xcb\x44\x06\x8a\x32\x48\x25\x46\x75"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_15 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_15_0), + MP_ROM_QSTR(MP_QSTR_QNT), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_Quant), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_16_0 = {{&mp_type_bytes}, 58490, 20, (const byte*)"\x38\x45\xba\xda\xde\x8e\x6d\xff\x04\x98\x20\x68\x0d\x1f\x14\xbd\x39\x03\xa5\xd0"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_16 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_16_0), + MP_ROM_QSTR(MP_QSTR_SAND), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_The_space_Sandbox), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_17_0 = {{&mp_type_bytes}, 11053, 20, (const byte*)"\x95\xad\x61\xb0\xa1\x50\xd7\x92\x19\xdc\xf6\x4e\x1e\x6c\xc0\x1f\x0b\x64\xc4\xce"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_17 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_17_0), + MP_ROM_QSTR(MP_QSTR_SHIB), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_Shiba_space_Inu), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_18_0 = {{&mp_type_bytes}, 59861, 20, (const byte*)"\xae\x7a\xb9\x65\x20\xde\x3a\x18\xe5\xe1\x11\xb5\xea\xab\x09\x53\x12\xd7\xfe\x84"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_18 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_18_0), + MP_ROM_QSTR(MP_QSTR_STETH), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_Lido_space_Staked_space_Ether), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_19_0 = {{&mp_type_bytes}, 15873, 20, (const byte*)"\x1f\x98\x40\xa8\x5d\x5a\xf5\xbf\x1d\x17\x62\xf9\x25\xbd\xad\xdc\x42\x01\xf9\x84"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_19 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_19_0), + MP_ROM_QSTR(MP_QSTR_UNI), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_Uniswap), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_20_0 = {{&mp_type_bytes}, 57285, 20, (const byte*)"\xa0\xb8\x69\x91\xc6\x21\x8b\x36\xc1\xd1\x9d\x4a\x2e\x9e\xb0\xce\x36\x06\xeb\x48"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_20 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_20_0), + MP_ROM_QSTR(MP_QSTR_USDC), + MP_ROM_INT(6), + MP_ROM_QSTR(MP_QSTR_USD_space_Coin), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_21_0 = {{&mp_type_bytes}, 36250, 20, (const byte*)"\xda\xc1\x7f\x95\x8d\x2e\xe5\x23\xa2\x20\x62\x06\x99\x45\x97\xc1\x3d\x83\x1e\xc7"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_21 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_21_0), + MP_ROM_QSTR(MP_QSTR_USDT), + MP_ROM_INT(6), + MP_ROM_QSTR(MP_QSTR_Tether), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_22_0 = {{&mp_type_bytes}, 44824, 20, (const byte*)"\x22\x60\xfa\xc5\xe5\x54\x2a\x77\x3a\xa4\x4f\xbc\xfe\xdf\x7c\x19\x3b\xc2\xc5\x99"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_22 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_22_0), + MP_ROM_QSTR(MP_QSTR_WBTC), + MP_ROM_INT(8), + MP_ROM_QSTR(MP_QSTR_Wrapped_space_Bitcoin), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_23_0 = {{&mp_type_bytes}, 36855, 20, (const byte*)"\xa2\xcd\x3d\x43\xc7\x75\x97\x8a\x96\xbd\xbf\x12\xd7\x33\xd5\xa1\xed\x94\xfb\x18"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_23 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_23_0), + MP_ROM_QSTR(MP_QSTR_XCN), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_Chain), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_24_0 = {{&mp_type_bytes}, 44524, 20, (const byte*)"\x0e\xb3\xa7\x05\xfc\x54\x72\x50\x37\xcc\x9e\x00\x8b\xde\xde\x69\x7f\x62\xf3\x35"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_24 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_24_0), + MP_ROM_QSTR(MP_QSTR_ATOM), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_Cosmos_space_Hub), +}}; +static const mp_obj_str_t const_obj_apps_ethereum_tokens_25_0 = {{&mp_type_bytes}, 30559, 20, (const byte*)"\x2c\x89\xbb\xc9\x2b\xd8\x6f\x80\x75\xd1\xde\xcc\x58\xc7\xf4\xe0\x10\x7f\x28\x6b"}; +static const mp_rom_obj_tuple_t const_obj_apps_ethereum_tokens_25 = {{&mp_type_tuple}, 4, { + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_25_0), + MP_ROM_QSTR(MP_QSTR_WAVAX), + MP_ROM_INT(18), + MP_ROM_QSTR(MP_QSTR_Wrapped_space_AVAX), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_ethereum_tokens[26] = { + MP_ROM_PTR(&mp_const_empty_bytes_obj), + MP_ROM_QSTR(MP_QSTR_Unknown_space_token), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_2), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_3), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_4), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_5), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_6), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_7), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_8), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_9), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_10), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_11), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_12), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_13), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_14), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_15), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_16), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_17), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_18), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_19), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_20), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_21), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_22), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_23), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_24), + MP_ROM_PTR(&const_obj_apps_ethereum_tokens_25), +}; + +static const mp_frozen_module_t frozen_module_apps_ethereum_tokens = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ethereum_tokens, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_ethereum_tokens, + }, + .rc = &raw_code_apps_ethereum_tokens__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ethereum_verify_message +// - original source file: build/firmware/src/apps/ethereum/verify_message.mpy +// - frozen file name: apps/ethereum/verify_message.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ethereum/verify_message.py, scope apps_ethereum_verify_message__lt_module_gt_ +static const byte fun_data_apps_ethereum_verify_message__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'verify_message' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ethereum_verify_message__lt_module_gt_ +// frozen bytecode for file apps/ethereum/verify_message.py, scope apps_ethereum_verify_message_verify_message +static const byte fun_data_apps_ethereum_verify_message_verify_message[284] = { + 0xb1,0x50,0x34, // prelude + 0x02,0x1d, // names: verify_message, msg + 0x80,0x07,0x2b,0x2b,0x2b,0x30,0x4b,0x4b,0x30,0x4b,0x27,0x2d,0x26,0x59,0x48,0x23,0x46,0x58,0x27,0x25,0x46,0x46,0x55,0x2b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'secp256k1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x03, // IMPORT_FROM 'secp256k1' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'sha3_256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x05, // IMPORT_FROM 'sha3_256' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'Success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.messages' + 0x1c,0x07, // IMPORT_FROM 'Success' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'confirm_signverify' + 0x10,0x0a, // LOAD_CONST_STRING 'show_success' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0b, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x09, // IMPORT_FROM 'confirm_signverify' + 0xc4, // STORE_FAST 4 + 0x1c,0x0a, // IMPORT_FROM 'show_success' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'trezor.wire' + 0x1c,0x0c, // IMPORT_FROM 'DataError' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'decode_message' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'apps.common.signverify' + 0x1c,0x0e, // IMPORT_FROM 'decode_message' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x10, // LOAD_CONST_STRING 'address_from_bytes' + 0x10,0x11, // LOAD_CONST_STRING 'bytes_from_address' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x12, // IMPORT_NAME 'helpers' + 0x1c,0x10, // IMPORT_FROM 'address_from_bytes' + 0xc8, // STORE_FAST 8 + 0x1c,0x11, // IMPORT_FROM 'bytes_from_address' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x13, // LOAD_CONST_STRING 'message_digest' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'sign_message' + 0x1c,0x13, // IMPORT_FROM 'message_digest' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0xba, // LOAD_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'message' + 0x34,0x01, // CALL_FUNCTION 1 + 0xcb, // STORE_FAST 11 + 0x12,0x1e, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'signature' + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x80,0x41, // LOAD_CONST_SMALL_INT 65 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb6, // LOAD_FAST 6 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x1f, // LOAD_GLOBAL 'bytearray' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'signature' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x55, // LOAD_SUBSCR + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'signature' + 0x51, // LOAD_CONST_NONE + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xf2, // BINARY_OP 27 __add__ + 0xcc, // STORE_FAST 12 + 0xb1, // LOAD_FAST 1 + 0x14,0x17, // LOAD_METHOD 'verify_recover' + 0xbc, // LOAD_FAST 12 + 0xbb, // LOAD_FAST 11 + 0x36,0x02, // CALL_METHOD 2 + 0xcd, // STORE_FAST 13 + 0xbd, // LOAD_FAST 13 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb6, // LOAD_FAST 6 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0xbd, // LOAD_FAST 13 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x10,0x18, // LOAD_CONST_STRING 'keccak' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0x14,0x19, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x22,0x6c, // LOAD_CONST_SMALL_INT -20 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xce, // STORE_FAST 14 + 0xb9, // LOAD_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'address' + 0x34,0x01, // CALL_FUNCTION 1 + 0xcf, // STORE_FAST 15 + 0xbf, // LOAD_FAST 15 + 0xbe, // LOAD_FAST 14 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb6, // LOAD_FAST 6 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb8, // LOAD_FAST 8 + 0xbf, // LOAD_FAST 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x10, // STORE_FAST_N 16 + 0xb4, // LOAD_FAST 4 + 0x10,0x1b, // LOAD_CONST_STRING 'ETH' + 0xb7, // LOAD_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'message' + 0x34,0x01, // CALL_FUNCTION 1 + 0x24,0x10, // LOAD_FAST_N 16 + 0x10,0x1c, // LOAD_CONST_STRING 'verify' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x10,0x02, // LOAD_CONST_STRING 'verify_message' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x15, // LOAD_CONST_STRING 'message' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ethereum_verify_message_verify_message = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_ethereum_verify_message_verify_message, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 284, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 23, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_ethereum_verify_message_verify_message + 5, + .line_info_top = fun_data_apps_ethereum_verify_message_verify_message + 29, + .opcodes = fun_data_apps_ethereum_verify_message_verify_message + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ethereum_verify_message__lt_module_gt_[] = { + &raw_code_apps_ethereum_verify_message_verify_message, +}; + +static const mp_raw_code_t raw_code_apps_ethereum_verify_message__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ethereum_verify_message__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_ethereum_verify_message__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ethereum_verify_message__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ethereum_verify_message__lt_module_gt_ + 6, + .opcodes = fun_data_apps_ethereum_verify_message__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ethereum_verify_message[32] = { + MP_QSTR_apps_slash_ethereum_slash_verify_message_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_verify_message, + MP_QSTR_secp256k1, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_sha3_256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_Success, + MP_QSTR_trezor_dot_messages, + MP_QSTR_confirm_signverify, + MP_QSTR_show_success, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_decode_message, + MP_QSTR_apps_dot_common_dot_signverify, + MP_QSTR_address_from_bytes, + MP_QSTR_bytes_from_address, + MP_QSTR_helpers, + MP_QSTR_message_digest, + MP_QSTR_sign_message, + MP_QSTR_message, + MP_QSTR_signature, + MP_QSTR_verify_recover, + MP_QSTR_keccak, + MP_QSTR_digest, + MP_QSTR_address, + MP_QSTR_ETH, + MP_QSTR_verify, + MP_QSTR_msg, + MP_QSTR_len, + MP_QSTR_bytearray, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_ethereum_verify_message[3] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_signature), + MP_ROM_QSTR(MP_QSTR_The_space_signature_space_is_space_valid_dot_), + MP_ROM_QSTR(MP_QSTR_Message_space_verified), +}; + +static const mp_frozen_module_t frozen_module_apps_ethereum_verify_message = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ethereum_verify_message, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_ethereum_verify_message, + }, + .rc = &raw_code_apps_ethereum_verify_message__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_EthereumDataType +// - original source file: build/firmware/src/trezor/enums/EthereumDataType.mpy +// - frozen file name: trezor/enums/EthereumDataType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/EthereumDataType.py, scope trezor_enums_EthereumDataType__lt_module_gt_ +static const byte fun_data_trezor_enums_EthereumDataType__lt_module_gt_[38] = { + 0x00,0x14, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x02, // STORE_NAME 'UINT' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x03, // STORE_NAME 'INT' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x04, // STORE_NAME 'BYTES' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x16,0x05, // STORE_NAME 'STRING' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x16,0x06, // STORE_NAME 'BOOL' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x16,0x07, // STORE_NAME 'ADDRESS' + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x16,0x08, // STORE_NAME 'ARRAY' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x16,0x09, // STORE_NAME 'STRUCT' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_EthereumDataType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_EthereumDataType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_EthereumDataType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_EthereumDataType__lt_module_gt_ + 12, + .opcodes = fun_data_trezor_enums_EthereumDataType__lt_module_gt_ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_EthereumDataType[10] = { + MP_QSTR_trezor_slash_enums_slash_EthereumDataType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_UINT, + MP_QSTR_INT, + MP_QSTR_BYTES, + MP_QSTR_STRING, + MP_QSTR_BOOL, + MP_QSTR_ADDRESS, + MP_QSTR_ARRAY, + MP_QSTR_STRUCT, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_EthereumDataType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_EthereumDataType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_EthereumDataType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_EthereumDefinitionType +// - original source file: build/firmware/src/trezor/enums/EthereumDefinitionType.mpy +// - frozen file name: trezor/enums/EthereumDefinitionType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/EthereumDefinitionType.py, scope trezor_enums_EthereumDefinitionType__lt_module_gt_ +static const byte fun_data_trezor_enums_EthereumDefinitionType__lt_module_gt_[14] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x60,0x20,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'NETWORK' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'TOKEN' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_EthereumDefinitionType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_EthereumDefinitionType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_EthereumDefinitionType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_EthereumDefinitionType__lt_module_gt_ + 6, + .opcodes = fun_data_trezor_enums_EthereumDefinitionType__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_EthereumDefinitionType[4] = { + MP_QSTR_trezor_slash_enums_slash_EthereumDefinitionType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_NETWORK, + MP_QSTR_TOKEN, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_EthereumDefinitionType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_EthereumDefinitionType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_EthereumDefinitionType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero___init__ +// - original source file: build/firmware/src/apps/monero/__init__.mpy +// - frozen file name: apps/monero/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/__init__.py, scope apps_monero___init____lt_module_gt_ +static const byte fun_data_apps_monero___init____lt_module_gt_[33] = { + 0x08,0x08, // prelude + 0x01, // names: + 0x4c,0x24,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'PATTERN_SEP5' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x02, // IMPORT_FROM 'PATTERN_SEP5' + 0x16,0x02, // STORE_NAME 'PATTERN_SEP5' + 0x59, // POP_TOP + 0x10,0x04, // LOAD_CONST_STRING 'ed25519' + 0x16,0x05, // STORE_NAME 'CURVE' + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0x16,0x06, // STORE_NAME 'SLIP44_ID' + 0x11,0x02, // LOAD_NAME 'PATTERN_SEP5' + 0x16,0x07, // STORE_NAME 'PATTERN' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero___init____lt_module_gt_ + 6, + .opcodes = fun_data_apps_monero___init____lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero___init__[8] = { + MP_QSTR_apps_slash_monero_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_PATTERN_SEP5, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_ed25519, + MP_QSTR_CURVE, + MP_QSTR_SLIP44_ID, + MP_QSTR_PATTERN, +}; + +static const mp_frozen_module_t frozen_module_apps_monero___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps_monero___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_diag +// - original source file: build/firmware/src/apps/monero/diag.mpy +// - frozen file name: apps/monero/diag.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/diag.py, scope apps_monero_diag__lt_module_gt_ +static const byte fun_data_apps_monero_diag__lt_module_gt_[8] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_diag__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_diag__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 8, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_diag__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_diag__lt_module_gt_ + 6, + .opcodes = fun_data_apps_monero_diag__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_diag[2] = { + MP_QSTR_apps_slash_monero_slash_diag_dot_py, + MP_QSTR__lt_module_gt_, +}; + +static const mp_frozen_module_t frozen_module_apps_monero_diag = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_diag, + .obj_table = NULL, + }, + .rc = &raw_code_apps_monero_diag__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_get_address +// - original source file: build/firmware/src/apps/monero/get_address.mpy +// - frozen file name: apps/monero/get_address.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/get_address.py, scope apps_monero_get_address__lt_module_gt_ +static const byte fun_data_apps_monero_get_address__lt_module_gt_[33] = { + 0x08,0x0a, // prelude + 0x01, // names: + 0x40,0x4c,0x60,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'auto_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x02, // IMPORT_FROM 'auto_keychain' + 0x16,0x02, // STORE_NAME 'auto_keychain' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'auto_keychain' + 0x11,0x31, // LOAD_NAME '__name__' + 0x34,0x01, // CALL_FUNCTION 1 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x04, // STORE_NAME 'get_address' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_get_address__lt_module_gt_ +// frozen bytecode for file apps/monero/get_address.py, scope apps_monero_get_address_get_address +static const byte fun_data_apps_monero_get_address_get_address[435] = { + 0x9a,0x60,0x66, // prelude + 0x04,0x32,0x33, // names: get_address, msg, keychain + 0x80,0x0c,0x2b,0x2b,0x4b,0x2b,0x2b,0x35,0x4b,0x24,0x24,0x24,0x44,0x4b,0x2b,0x45,0x20,0x55,0x46,0x29,0x48,0x28,0x48,0x24,0x20,0x29,0x27,0x23,0x28,0x28,0x6d,0x20,0x24,0x20,0x40,0x23,0x70,0x23,0x28,0x27,0x6b,0x26,0x52,0x45,0x27,0x28,0x30,0x6e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x05, // IMPORT_FROM 'wire' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'MoneroAddress' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.messages' + 0x1c,0x07, // IMPORT_FROM 'MoneroAddress' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'show_address' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x09, // IMPORT_FROM 'show_address' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'apps.common' + 0x1c,0x0b, // IMPORT_FROM 'paths' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'misc' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'apps.monero' + 0x1c,0x0d, // IMPORT_FROM 'misc' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0f, // LOAD_CONST_STRING 'addresses' + 0x10,0x10, // LOAD_CONST_STRING 'crypto_helpers' + 0x10,0x11, // LOAD_CONST_STRING 'monero' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x12, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x0f, // IMPORT_FROM 'addresses' + 0xc7, // STORE_FAST 7 + 0x1c,0x10, // IMPORT_FROM 'crypto_helpers' + 0xc8, // STORE_FAST 8 + 0x1c,0x11, // IMPORT_FROM 'monero' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'net_version' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'apps.monero.xmr.networks' + 0x1c,0x13, // IMPORT_FROM 'net_version' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'account' + 0xcb, // STORE_FAST 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'minor' + 0xcc, // STORE_FAST 12 + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'payment_id' + 0xcd, // STORE_FAST 13 + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'address_n' + 0xce, // STORE_FAST 14 + 0xb5, // LOAD_FAST 5 + 0x14,0x19, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xbe, // LOAD_FAST 14 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x1a, // LOAD_METHOD 'get_creds' + 0xb1, // LOAD_FAST 1 + 0xbe, // LOAD_FAST 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'network_type' + 0x36,0x03, // CALL_METHOD 3 + 0xcf, // STORE_FAST 15 + 0xbf, // LOAD_FAST 15 + 0x13,0x1c, // LOAD_ATTR 'address' + 0x26,0x10, // STORE_FAST_N 16 + 0xbb, // LOAD_FAST 11 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x46,0x0d, // JUMP_IF_FALSE_OR_POP 13 + 0xbc, // LOAD_FAST 12 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x46,0x07, // JUMP_IF_FALSE_OR_POP 7 + 0xbb, // LOAD_FAST 11 + 0xbc, // LOAD_FAST 12 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x26,0x11, // STORE_FAST_N 17 + 0xbd, // LOAD_FAST 13 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x26,0x12, // STORE_FAST_N 18 + 0xbb, // LOAD_FAST 11 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xbc, // LOAD_FAST 12 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x1d, // LOAD_METHOD 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x24,0x12, // LOAD_FAST_N 18 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x24,0x11, // LOAD_FAST_N 17 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x1e, // LOAD_METHOD 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x24,0x12, // LOAD_FAST_N 18 + 0x44,0x70, // POP_JUMP_IF_FALSE 48 + 0x12,0x34, // LOAD_GLOBAL 'len' + 0xbd, // LOAD_FAST 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x35, // LOAD_GLOBAL 'ValueError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb7, // LOAD_FAST 7 + 0x14,0x1f, // LOAD_METHOD 'encode_addr' + 0xba, // LOAD_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'network_type' + 0x50, // LOAD_CONST_FALSE + 0x52, // LOAD_CONST_TRUE + 0x34,0x03, // CALL_FUNCTION 3 + 0xb8, // LOAD_FAST 8 + 0x14,0x20, // LOAD_METHOD 'encodepoint' + 0xbf, // LOAD_FAST 15 + 0x13,0x21, // LOAD_ATTR 'spend_key_public' + 0x36,0x01, // CALL_METHOD 1 + 0xb8, // LOAD_FAST 8 + 0x14,0x20, // LOAD_METHOD 'encodepoint' + 0xbf, // LOAD_FAST 15 + 0x13,0x22, // LOAD_ATTR 'view_key_public' + 0x36,0x01, // CALL_METHOD 1 + 0xbd, // LOAD_FAST 13 + 0x36,0x04, // CALL_METHOD 4 + 0x26,0x10, // STORE_FAST_N 16 + 0x24,0x11, // LOAD_FAST_N 17 + 0x44,0x70, // POP_JUMP_IF_FALSE 48 + 0xb9, // LOAD_FAST 9 + 0x14,0x23, // LOAD_METHOD 'generate_sub_address_keys' + 0xbf, // LOAD_FAST 15 + 0x13,0x24, // LOAD_ATTR 'view_key_private' + 0xbf, // LOAD_FAST 15 + 0x13,0x21, // LOAD_ATTR 'spend_key_public' + 0xbb, // LOAD_FAST 11 + 0xbc, // LOAD_FAST 12 + 0x36,0x04, // CALL_METHOD 4 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0x26,0x13, // STORE_FAST_N 19 + 0x26,0x14, // STORE_FAST_N 20 + 0xb7, // LOAD_FAST 7 + 0x14,0x1f, // LOAD_METHOD 'encode_addr' + 0xba, // LOAD_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'network_type' + 0x52, // LOAD_CONST_TRUE + 0x50, // LOAD_CONST_FALSE + 0x34,0x03, // CALL_FUNCTION 3 + 0xb8, // LOAD_FAST 8 + 0x14,0x20, // LOAD_METHOD 'encodepoint' + 0x24,0x13, // LOAD_FAST_N 19 + 0x36,0x01, // CALL_METHOD 1 + 0xb8, // LOAD_FAST 8 + 0x14,0x20, // LOAD_METHOD 'encodepoint' + 0x24,0x14, // LOAD_FAST_N 20 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x03, // CALL_METHOD 3 + 0x26,0x10, // STORE_FAST_N 16 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'show_display' + 0x44,0xc4,0x80, // POP_JUMP_IF_FALSE 68 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x26, // LOAD_CONST_STRING 'PATTERN' + 0x10,0x27, // LOAD_CONST_STRING 'SLIP44_ID' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x28, // IMPORT_NAME '' + 0x1c,0x26, // IMPORT_FROM 'PATTERN' + 0x26,0x15, // STORE_FAST_N 21 + 0x1c,0x27, // IMPORT_FROM 'SLIP44_ID' + 0x26,0x16, // STORE_FAST_N 22 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x24,0x10, // LOAD_FAST_N 16 + 0x10,0x29, // LOAD_CONST_STRING 'address_qr' + 0x10,0x2a, // LOAD_CONST_STRING 'monero:' + 0x24,0x10, // LOAD_FAST_N 16 + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x2b, // LOAD_CONST_STRING 'path' + 0xb5, // LOAD_FAST 5 + 0x14,0x2c, // LOAD_METHOD 'address_n_to_str' + 0xbe, // LOAD_FAST 14 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x15, // LOAD_CONST_STRING 'account' + 0xb5, // LOAD_FAST 5 + 0x14,0x2d, // LOAD_METHOD 'get_account_name' + 0x10,0x2e, // LOAD_CONST_STRING 'XMR' + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'address_n' + 0x24,0x15, // LOAD_FAST_N 21 + 0x24,0x16, // LOAD_FAST_N 22 + 0x36,0x04, // CALL_METHOD 4 + 0x10,0x2f, // LOAD_CONST_STRING 'chunkify' + 0x12,0x36, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'chunkify' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x88,0x01, // CALL_FUNCTION 1025 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x1c, // LOAD_CONST_STRING 'address' + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x30, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_get_address_get_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_get_address_get_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 435, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 36, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_monero_get_address_get_address + 6, + .line_info_top = fun_data_apps_monero_get_address_get_address + 54, + .opcodes = fun_data_apps_monero_get_address_get_address + 54, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_get_address__lt_module_gt_[] = { + &raw_code_apps_monero_get_address_get_address, +}; + +static const mp_raw_code_t raw_code_apps_monero_get_address__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_get_address__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = (void *)&children_apps_monero_get_address__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_get_address__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_get_address__lt_module_gt_ + 7, + .opcodes = fun_data_apps_monero_get_address__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_get_address[55] = { + MP_QSTR_apps_slash_monero_slash_get_address_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_auto_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_get_address, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_MoneroAddress, + MP_QSTR_trezor_dot_messages, + MP_QSTR_show_address, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_misc, + MP_QSTR_apps_dot_monero, + MP_QSTR_addresses, + MP_QSTR_crypto_helpers, + MP_QSTR_monero, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_net_version, + MP_QSTR_apps_dot_monero_dot_xmr_dot_networks, + MP_QSTR_account, + MP_QSTR_minor, + MP_QSTR_payment_id, + MP_QSTR_address_n, + MP_QSTR_validate_path, + MP_QSTR_get_creds, + MP_QSTR_network_type, + MP_QSTR_address, + MP_QSTR_ProcessError, + MP_QSTR_DataError, + MP_QSTR_encode_addr, + MP_QSTR_encodepoint, + MP_QSTR_spend_key_public, + MP_QSTR_view_key_public, + MP_QSTR_generate_sub_address_keys, + MP_QSTR_view_key_private, + MP_QSTR_show_display, + MP_QSTR_PATTERN, + MP_QSTR_SLIP44_ID, + MP_QSTR_, + MP_QSTR_address_qr, + MP_QSTR_monero_colon_, + MP_QSTR_path, + MP_QSTR_address_n_to_str, + MP_QSTR_get_account_name, + MP_QSTR_XMR, + MP_QSTR_chunkify, + MP_QSTR_encode, + MP_QSTR___name__, + MP_QSTR_msg, + MP_QSTR_keychain, + MP_QSTR_len, + MP_QSTR_ValueError, + MP_QSTR_bool, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_monero_get_address_0 = {{&mp_type_tuple}, 2, { + MP_ROM_INT(0), + MP_ROM_INT(0), +}}; +static const mp_obj_str_t const_obj_apps_monero_get_address_1 = {{&mp_type_str}, 59598, 26, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x73\x75\x62\x61\x64\x64\x72\x65\x73\x73\x20\x69\x6e\x64\x65\x78\x65\x73"}; +static const mp_obj_str_t const_obj_apps_monero_get_address_2 = {{&mp_type_str}, 57246, 31, (const byte*)"\x53\x75\x62\x61\x64\x64\x72\x65\x73\x73\x20\x63\x61\x6e\x6e\x6f\x74\x20\x62\x65\x20\x69\x6e\x74\x65\x67\x72\x61\x74\x65\x64"}; +static const mp_obj_str_t const_obj_apps_monero_get_address_3 = {{&mp_type_str}, 11007, 25, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x70\x61\x79\x6d\x65\x6e\x74\x20\x49\x44\x20\x6c\x65\x6e\x67\x74\x68"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_get_address[4] = { + MP_ROM_PTR(&const_obj_apps_monero_get_address_0), + MP_ROM_PTR(&const_obj_apps_monero_get_address_1), + MP_ROM_PTR(&const_obj_apps_monero_get_address_2), + MP_ROM_PTR(&const_obj_apps_monero_get_address_3), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_get_address = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_get_address, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_get_address, + }, + .rc = &raw_code_apps_monero_get_address__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_get_tx_keys +// - original source file: build/firmware/src/apps/monero/get_tx_keys.mpy +// - frozen file name: apps/monero/get_tx_keys.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/get_tx_keys.py, scope apps_monero_get_tx_keys__lt_module_gt_ +static const byte fun_data_apps_monero_get_tx_keys__lt_module_gt_[48] = { + 0x08,0x10, // prelude + 0x01, // names: + 0x80,0x10,0x6c,0x6c,0x20,0x60,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'auto_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x04, // IMPORT_FROM 'auto_keychain' + 0x16,0x04, // STORE_NAME 'auto_keychain' + 0x59, // POP_TOP + 0x11,0x04, // LOAD_NAME 'auto_keychain' + 0x11,0x33, // LOAD_NAME '__name__' + 0x34,0x01, // CALL_FUNCTION 1 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x06, // STORE_NAME 'get_tx_keys' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_get_tx_keys__lt_module_gt_ +// frozen bytecode for file apps/monero/get_tx_keys.py, scope apps_monero_get_tx_keys_get_tx_keys +static const byte fun_data_apps_monero_get_tx_keys_get_tx_keys[391] = { + 0xfa,0x50,0x56, // prelude + 0x06,0x34,0x35, // names: get_tx_keys, msg, keychain + 0x80,0x21,0x30,0x4b,0x2b,0x30,0x55,0x4d,0x26,0x4e,0x4d,0x23,0x23,0x23,0x23,0x6b,0x40,0x2a,0x31,0x65,0x24,0x27,0x48,0x26,0x29,0x27,0x27,0x29,0x28,0x2d,0x2b,0x76,0x23,0x6e,0x2a,0x2a,0x23,0x26,0x43,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'utils' + 0x10,0x08, // LOAD_CONST_STRING 'wire' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x09, // IMPORT_NAME 'trezor' + 0x1c,0x07, // IMPORT_FROM 'utils' + 0xc2, // STORE_FAST 2 + 0x1c,0x08, // IMPORT_FROM 'wire' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'MoneroGetTxKeyAck' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0a, // IMPORT_FROM 'MoneroGetTxKeyAck' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'apps.common' + 0x1c,0x0c, // IMPORT_FROM 'paths' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'layout' + 0x10,0x0f, // LOAD_CONST_STRING 'misc' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x10, // IMPORT_NAME 'apps.monero' + 0x1c,0x0e, // IMPORT_FROM 'layout' + 0xc6, // STORE_FAST 6 + 0x1c,0x0f, // IMPORT_FROM 'misc' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'chacha_poly' + 0x10,0x12, // LOAD_CONST_STRING 'crypto' + 0x10,0x13, // LOAD_CONST_STRING 'crypto_helpers' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x14, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x11, // IMPORT_FROM 'chacha_poly' + 0xc8, // STORE_FAST 8 + 0x1c,0x12, // IMPORT_FROM 'crypto' + 0xc9, // STORE_FAST 9 + 0x1c,0x13, // IMPORT_FROM 'crypto_helpers' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x15, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'address_n' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'reason' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0xcb, // STORE_FAST 11 + 0xb6, // LOAD_FAST 6 + 0x14,0x18, // LOAD_METHOD 'require_confirm_tx_key' + 0x10,0x19, // LOAD_CONST_STRING 'export_key' + 0xbb, // LOAD_FAST 11 + 0xd3, // UNARY_OP 3 + 0x36,0x82,0x00, // CALL_METHOD 256 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x1a, // LOAD_METHOD 'get_creds' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'address_n' + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'network_type' + 0x36,0x03, // CALL_METHOD 3 + 0xcc, // STORE_FAST 12 + 0xb7, // LOAD_FAST 7 + 0x14,0x1c, // LOAD_METHOD 'compute_tx_key' + 0xbc, // LOAD_FAST 12 + 0x13,0x1d, // LOAD_ATTR 'spend_key_private' + 0xb0, // LOAD_FAST 0 + 0x13,0x1e, // LOAD_ATTR 'tx_prefix_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x1f, // LOAD_ATTR 'salt1' + 0xba, // LOAD_FAST 10 + 0x14,0x20, // LOAD_METHOD 'decodeint' + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'salt2' + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x04, // CALL_METHOD 4 + 0xcd, // STORE_FAST 13 + 0xb8, // LOAD_FAST 8 + 0x14,0x22, // LOAD_METHOD 'decrypt_pack' + 0xbd, // LOAD_FAST 13 + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'tx_enc_keys' + 0x36,0x02, // CALL_METHOD 2 + 0xce, // STORE_FAST 14 + 0xb2, // LOAD_FAST 2 + 0x14,0x24, // LOAD_METHOD 'ensure' + 0x12,0x36, // LOAD_GLOBAL 'len' + 0xbe, // LOAD_FAST 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf8, // BINARY_OP 33 __mod__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x23, // STORE_ATTR 'tx_enc_keys' + 0xbb, // LOAD_FAST 11 + 0x44,0xeb,0x80, // POP_JUMP_IF_FALSE 107 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'view_public_key' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb3, // LOAD_FAST 3 + 0x14,0x26, // LOAD_METHOD 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x12,0x37, // LOAD_GLOBAL 'bytearray' + 0xbe, // LOAD_FAST 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0xce, // STORE_FAST 14 + 0xba, // LOAD_FAST 10 + 0x14,0x27, // LOAD_METHOD 'decodepoint' + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'view_public_key' + 0x36,0x01, // CALL_METHOD 1 + 0xcf, // STORE_FAST 15 + 0xb9, // LOAD_FAST 9 + 0x14,0x28, // LOAD_METHOD 'Scalar' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x10, // STORE_FAST_N 16 + 0xb9, // LOAD_FAST 9 + 0x14,0x29, // LOAD_METHOD 'Point' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x11, // STORE_FAST_N 17 + 0x12,0x36, // LOAD_GLOBAL 'len' + 0xbe, // LOAD_FAST 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x26,0x12, // STORE_FAST_N 18 + 0x24,0x12, // LOAD_FAST_N 18 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x6a, // JUMP 42 + 0x57, // DUP_TOP + 0x26,0x13, // STORE_FAST_N 19 + 0xb9, // LOAD_FAST 9 + 0x14,0x2a, // LOAD_METHOD 'decodeint_into' + 0x24,0x10, // LOAD_FAST_N 16 + 0xbe, // LOAD_FAST 14 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x24,0x13, // LOAD_FAST_N 19 + 0xf4, // BINARY_OP 29 __mul__ + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x14,0x2b, // LOAD_METHOD 'scalarmult_into' + 0x24,0x11, // LOAD_FAST_N 17 + 0xbf, // LOAD_FAST 15 + 0x24,0x10, // LOAD_FAST_N 16 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x14,0x2c, // LOAD_METHOD 'encodepoint_into' + 0xbe, // LOAD_FAST 14 + 0x24,0x11, // LOAD_FAST_N 17 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x24,0x13, // LOAD_FAST_N 19 + 0xf4, // BINARY_OP 29 __mul__ + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x11, // POP_JUMP_IF_TRUE -47 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x2d, // LOAD_METHOD 'compute_enc_key_host' + 0xbc, // LOAD_FAST 12 + 0x13,0x2e, // LOAD_ATTR 'view_key_private' + 0xb0, // LOAD_FAST 0 + 0x13,0x1e, // LOAD_ATTR 'tx_prefix_hash' + 0x36,0x02, // CALL_METHOD 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0x26,0x14, // STORE_FAST_N 20 + 0x26,0x15, // STORE_FAST_N 21 + 0xb8, // LOAD_FAST 8 + 0x14,0x2f, // LOAD_METHOD 'encrypt_pack' + 0x24,0x14, // LOAD_FAST_N 20 + 0xbe, // LOAD_FAST 14 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x16, // STORE_FAST_N 22 + 0xb4, // LOAD_FAST 4 + 0x10,0x30, // LOAD_CONST_STRING 'salt' + 0x24,0x15, // LOAD_FAST_N 21 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x26,0x17, // STORE_FAST_N 23 + 0xbb, // LOAD_FAST 11 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x24,0x16, // LOAD_FAST_N 22 + 0x24,0x17, // LOAD_FAST_N 23 + 0x18,0x31, // STORE_ATTR 'tx_derivations' + 0x24,0x17, // LOAD_FAST_N 23 + 0x63, // RETURN_VALUE + 0x24,0x16, // LOAD_FAST_N 22 + 0x24,0x17, // LOAD_FAST_N 23 + 0x18,0x32, // STORE_ATTR 'tx_keys' + 0x24,0x17, // LOAD_FAST_N 23 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_get_tx_keys_get_tx_keys = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_get_tx_keys_get_tx_keys, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 391, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 32, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_monero_get_tx_keys_get_tx_keys + 6, + .line_info_top = fun_data_apps_monero_get_tx_keys_get_tx_keys + 46, + .opcodes = fun_data_apps_monero_get_tx_keys_get_tx_keys + 46, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_get_tx_keys__lt_module_gt_[] = { + &raw_code_apps_monero_get_tx_keys_get_tx_keys, +}; + +static const mp_raw_code_t raw_code_apps_monero_get_tx_keys__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_get_tx_keys__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = (void *)&children_apps_monero_get_tx_keys__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_get_tx_keys__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_get_tx_keys__lt_module_gt_ + 10, + .opcodes = fun_data_apps_monero_get_tx_keys__lt_module_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_get_tx_keys[56] = { + MP_QSTR_apps_slash_monero_slash_get_tx_keys_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_auto_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_get_tx_keys, + MP_QSTR_utils, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_MoneroGetTxKeyAck, + MP_QSTR_trezor_dot_messages, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_layout, + MP_QSTR_misc, + MP_QSTR_apps_dot_monero, + MP_QSTR_chacha_poly, + MP_QSTR_crypto, + MP_QSTR_crypto_helpers, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_validate_path, + MP_QSTR_address_n, + MP_QSTR_reason, + MP_QSTR_require_confirm_tx_key, + MP_QSTR_export_key, + MP_QSTR_get_creds, + MP_QSTR_network_type, + MP_QSTR_compute_tx_key, + MP_QSTR_spend_key_private, + MP_QSTR_tx_prefix_hash, + MP_QSTR_salt1, + MP_QSTR_decodeint, + MP_QSTR_salt2, + MP_QSTR_decrypt_pack, + MP_QSTR_tx_enc_keys, + MP_QSTR_ensure, + MP_QSTR_view_public_key, + MP_QSTR_DataError, + MP_QSTR_decodepoint, + MP_QSTR_Scalar, + MP_QSTR_Point, + MP_QSTR_decodeint_into, + MP_QSTR_scalarmult_into, + MP_QSTR_encodepoint_into, + MP_QSTR_compute_enc_key_host, + MP_QSTR_view_key_private, + MP_QSTR_encrypt_pack, + MP_QSTR_salt, + MP_QSTR_tx_derivations, + MP_QSTR_tx_keys, + MP_QSTR___name__, + MP_QSTR_msg, + MP_QSTR_keychain, + MP_QSTR_len, + MP_QSTR_bytearray, +}; + +// constants +static const mp_obj_str_t const_obj_apps_monero_get_tx_keys_0 = {{&mp_type_str}, 33296, 30, (const byte*)"\x54\x78\x20\x6b\x65\x79\x20\x62\x75\x66\x66\x65\x72\x20\x68\x61\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x73\x69\x7a\x65"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_get_tx_keys[3] = { + MP_ROM_PTR(&const_obj_apps_monero_get_tx_keys_0), + MP_ROM_PTR(&mp_const_empty_bytes_obj), + MP_ROM_QSTR(MP_QSTR_Missing_space_view_space_public_space_key), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_get_tx_keys = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_get_tx_keys, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_get_tx_keys, + }, + .rc = &raw_code_apps_monero_get_tx_keys__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_get_watch_only +// - original source file: build/firmware/src/apps/monero/get_watch_only.mpy +// - frozen file name: apps/monero/get_watch_only.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/get_watch_only.py, scope apps_monero_get_watch_only__lt_module_gt_ +static const byte fun_data_apps_monero_get_watch_only__lt_module_gt_[33] = { + 0x08,0x0a, // prelude + 0x01, // names: + 0x40,0x4c,0x60,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'auto_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x02, // IMPORT_FROM 'auto_keychain' + 0x16,0x02, // STORE_NAME 'auto_keychain' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'auto_keychain' + 0x11,0x18, // LOAD_NAME '__name__' + 0x34,0x01, // CALL_FUNCTION 1 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x04, // STORE_NAME 'get_watch_only' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_get_watch_only__lt_module_gt_ +// frozen bytecode for file apps/monero/get_watch_only.py, scope apps_monero_get_watch_only_get_watch_only +static const byte fun_data_apps_monero_get_watch_only_get_watch_only[129] = { + 0xfa,0x40,0x1c, // prelude + 0x04,0x19,0x1a, // names: get_watch_only, msg, keychain + 0x80,0x0c,0x4b,0x2b,0x30,0x4b,0x4d,0x49,0x2d,0x24,0x49, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'MoneroWatchKey' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.messages' + 0x1c,0x05, // IMPORT_FROM 'MoneroWatchKey' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'apps.common' + 0x1c,0x07, // IMPORT_FROM 'paths' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'layout' + 0x10,0x0a, // LOAD_CONST_STRING 'misc' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0b, // IMPORT_NAME 'apps.monero' + 0x1c,0x09, // IMPORT_FROM 'layout' + 0xc4, // STORE_FAST 4 + 0x1c,0x0a, // IMPORT_FROM 'misc' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'crypto_helpers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x0c, // IMPORT_FROM 'crypto_helpers' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x0e, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'address_n' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x10, // LOAD_METHOD 'require_confirm_watchkey' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x11, // LOAD_METHOD 'get_creds' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'address_n' + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'network_type' + 0x36,0x03, // CALL_METHOD 3 + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x13,0x13, // LOAD_ATTR 'address' + 0xc8, // STORE_FAST 8 + 0xb6, // LOAD_FAST 6 + 0x14,0x14, // LOAD_METHOD 'encodeint' + 0xb7, // LOAD_FAST 7 + 0x13,0x15, // LOAD_ATTR 'view_key_private' + 0x36,0x01, // CALL_METHOD 1 + 0xc9, // STORE_FAST 9 + 0xb2, // LOAD_FAST 2 + 0x10,0x16, // LOAD_CONST_STRING 'watch_key' + 0xb9, // LOAD_FAST 9 + 0x10,0x13, // LOAD_CONST_STRING 'address' + 0xb8, // LOAD_FAST 8 + 0x14,0x17, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_get_watch_only_get_watch_only = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_get_watch_only_get_watch_only, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 129, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_monero_get_watch_only_get_watch_only + 6, + .line_info_top = fun_data_apps_monero_get_watch_only_get_watch_only + 17, + .opcodes = fun_data_apps_monero_get_watch_only_get_watch_only + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_get_watch_only__lt_module_gt_[] = { + &raw_code_apps_monero_get_watch_only_get_watch_only, +}; + +static const mp_raw_code_t raw_code_apps_monero_get_watch_only__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_get_watch_only__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = (void *)&children_apps_monero_get_watch_only__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_get_watch_only__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_get_watch_only__lt_module_gt_ + 7, + .opcodes = fun_data_apps_monero_get_watch_only__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_get_watch_only[27] = { + MP_QSTR_apps_slash_monero_slash_get_watch_only_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_auto_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_get_watch_only, + MP_QSTR_MoneroWatchKey, + MP_QSTR_trezor_dot_messages, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_layout, + MP_QSTR_misc, + MP_QSTR_apps_dot_monero, + MP_QSTR_crypto_helpers, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_validate_path, + MP_QSTR_address_n, + MP_QSTR_require_confirm_watchkey, + MP_QSTR_get_creds, + MP_QSTR_network_type, + MP_QSTR_address, + MP_QSTR_encodeint, + MP_QSTR_view_key_private, + MP_QSTR_watch_key, + MP_QSTR_encode, + MP_QSTR___name__, + MP_QSTR_msg, + MP_QSTR_keychain, +}; + +static const mp_frozen_module_t frozen_module_apps_monero_get_watch_only = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_get_watch_only, + .obj_table = NULL, + }, + .rc = &raw_code_apps_monero_get_watch_only__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_key_image_sync +// - original source file: build/firmware/src/apps/monero/key_image_sync.mpy +// - frozen file name: apps/monero/key_image_sync.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/key_image_sync.py, scope apps_monero_key_image_sync__lt_module_gt_ +static const byte fun_data_apps_monero_key_image_sync__lt_module_gt_[82] = { + 0x10,0x1a, // prelude + 0x01, // names: + 0x40,0x4c,0x2c,0x4c,0x80,0x0f,0x8c,0x20,0x89,0x0d,0x84,0x1e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.wire' + 0x1c,0x02, // IMPORT_FROM 'DataError' + 0x16,0x02, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'auto_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x04, // IMPORT_FROM 'auto_keychain' + 0x16,0x04, // STORE_NAME 'auto_keychain' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'layout' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'apps.monero' + 0x1c,0x06, // IMPORT_FROM 'layout' + 0x16,0x06, // STORE_NAME 'layout' + 0x59, // POP_TOP + 0x11,0x04, // LOAD_NAME 'auto_keychain' + 0x11,0x48, // LOAD_NAME '__name__' + 0x34,0x01, // CALL_FUNCTION 1 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x09, // STORE_NAME 'key_image_sync' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x08, // LOAD_CONST_STRING 'KeyImageSync' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x08, // STORE_NAME 'KeyImageSync' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x19, // STORE_NAME '_init_step' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x30, // STORE_NAME '_sync_step' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_key_image_sync__lt_module_gt_ +// frozen bytecode for file apps/monero/key_image_sync.py, scope apps_monero_key_image_sync_key_image_sync +static const byte fun_data_apps_monero_key_image_sync_key_image_sync[180] = { + 0xfa,0x40,0x2c, // prelude + 0x09,0x49,0x4a, // names: key_image_sync, msg, keychain + 0x80,0x1a,0x45,0x75,0x40,0x4b,0x45,0x2b,0x27,0x22,0x29,0x28,0x31,0x69,0x2b,0x27,0x28,0x27,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x0a, // IMPORT_NAME 'gc' + 0xc2, // STORE_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'MoneroKeyImageSyncFinalAck' + 0x10,0x0c, // LOAD_CONST_STRING 'MoneroKeyImageSyncFinalRequest' + 0x10,0x0d, // LOAD_CONST_STRING 'MoneroKeyImageSyncStepRequest' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x0e, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0b, // IMPORT_FROM 'MoneroKeyImageSyncFinalAck' + 0xc3, // STORE_FAST 3 + 0x1c,0x0c, // IMPORT_FROM 'MoneroKeyImageSyncFinalRequest' + 0xc4, // STORE_FAST 4 + 0x1c,0x0d, // IMPORT_FROM 'MoneroKeyImageSyncStepRequest' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0f, // LOAD_CONST_STRING 'call' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x0f, // IMPORT_FROM 'call' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'KeyImageSync' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc7, // STORE_FAST 7 + 0x12,0x19, // LOAD_GLOBAL '_init_step' + 0xb7, // LOAD_FAST 7 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc8, // STORE_FAST 8 + 0x12,0x06, // LOAD_GLOBAL 'layout' + 0x14,0x11, // LOAD_METHOD 'monero_keyimage_sync_progress' + 0x36,0x00, // CALL_METHOD 0 + 0xc9, // STORE_FAST 9 + 0x42,0x57, // JUMP 23 + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xca, // STORE_FAST 10 + 0x12,0x30, // LOAD_GLOBAL '_sync_step' + 0xb7, // LOAD_FAST 7 + 0xba, // LOAD_FAST 10 + 0xb9, // LOAD_FAST 9 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc8, // STORE_FAST 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x12, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x13,0x13, // LOAD_ATTR 'current_output' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb7, // LOAD_FAST 7 + 0x13,0x14, // LOAD_ATTR 'num_outputs' + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x1e, // POP_JUMP_IF_TRUE -34 + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x13,0x13, // LOAD_ATTR 'current_output' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb7, // LOAD_FAST 7 + 0x13,0x14, // LOAD_ATTR 'num_outputs' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb7, // LOAD_FAST 7 + 0x13,0x15, // LOAD_ATTR 'hasher' + 0x14,0x16, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xcb, // STORE_FAST 11 + 0xbb, // LOAD_FAST 11 + 0xb7, // LOAD_FAST 7 + 0x13,0x17, // LOAD_ATTR 'expected_hash' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x10,0x18, // LOAD_CONST_STRING 'enc_key' + 0xb7, // LOAD_FAST 7 + 0x13,0x18, // LOAD_ATTR 'enc_key' + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_key_image_sync_key_image_sync = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_key_image_sync_key_image_sync, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 180, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_monero_key_image_sync_key_image_sync + 6, + .line_info_top = fun_data_apps_monero_key_image_sync_key_image_sync + 25, + .opcodes = fun_data_apps_monero_key_image_sync_key_image_sync + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_key_image_sync__lt_module_gt_ +// frozen bytecode for file apps/monero/key_image_sync.py, scope apps_monero_key_image_sync_KeyImageSync +static const byte fun_data_apps_monero_key_image_sync_KeyImageSync[19] = { + 0x00,0x06, // prelude + 0x08, // names: KeyImageSync + 0x88,0x37, // code info + 0x11,0x48, // LOAD_NAME '__name__' + 0x16,0x4b, // STORE_NAME '__module__' + 0x10,0x08, // LOAD_CONST_STRING 'KeyImageSync' + 0x16,0x4c, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x45, // STORE_NAME '__init__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_key_image_sync_KeyImageSync +// frozen bytecode for file apps/monero/key_image_sync.py, scope apps_monero_key_image_sync_KeyImageSync___init__ +static const byte fun_data_apps_monero_key_image_sync_KeyImageSync___init__[61] = { + 0x19,0x16, // prelude + 0x45,0x52, // names: __init__, self + 0x80,0x38,0x4b,0x24,0x24,0x25,0x25,0x24,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x46, // LOAD_CONST_STRING 'crypto_helpers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x21, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x46, // IMPORT_FROM 'crypto_helpers' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0xb0, // LOAD_FAST 0 + 0x18,0x13, // STORE_ATTR 'current_output' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x14, // STORE_ATTR 'num_outputs' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x17, // STORE_ATTR 'expected_hash' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x18, // STORE_ATTR 'enc_key' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x26, // STORE_ATTR 'creds' + 0x2c,0x00, // BUILD_MAP 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'subaddresses' + 0xb1, // LOAD_FAST 1 + 0x14,0x47, // LOAD_METHOD 'get_keccak' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x15, // STORE_ATTR 'hasher' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_key_image_sync_KeyImageSync___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_key_image_sync_KeyImageSync___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 61, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 69, + .line_info = fun_data_apps_monero_key_image_sync_KeyImageSync___init__ + 4, + .line_info_top = fun_data_apps_monero_key_image_sync_KeyImageSync___init__ + 13, + .opcodes = fun_data_apps_monero_key_image_sync_KeyImageSync___init__ + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_key_image_sync_KeyImageSync[] = { + &raw_code_apps_monero_key_image_sync_KeyImageSync___init__, +}; + +static const mp_raw_code_t raw_code_apps_monero_key_image_sync_KeyImageSync = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_key_image_sync_KeyImageSync, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = (void *)&children_apps_monero_key_image_sync_KeyImageSync, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_monero_key_image_sync_KeyImageSync + 3, + .line_info_top = fun_data_apps_monero_key_image_sync_KeyImageSync + 5, + .opcodes = fun_data_apps_monero_key_image_sync_KeyImageSync + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_key_image_sync__lt_module_gt_ +// frozen bytecode for file apps/monero/key_image_sync.py, scope apps_monero_key_image_sync__init_step +static const byte fun_data_apps_monero_key_image_sync__init_step[168] = { + 0x93,0x50,0x28, // prelude + 0x19,0x4d,0x49,0x4a, // names: _init_step, s, msg, keychain + 0x80,0x48,0x2b,0x4b,0x2b,0x2b,0x4b,0x4d,0x4f,0x4a,0x26,0x26,0x49,0x27,0x23,0x71, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1a, // LOAD_CONST_STRING 'random' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1b, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x1a, // IMPORT_FROM 'random' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1c, // LOAD_CONST_STRING 'MoneroKeyImageExportInitAck' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'trezor.messages' + 0x1c,0x1c, // IMPORT_FROM 'MoneroKeyImageExportInitAck' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1d, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME 'apps.common' + 0x1c,0x1d, // IMPORT_FROM 'paths' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1f, // LOAD_CONST_STRING 'misc' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'apps.monero' + 0x1c,0x1f, // IMPORT_FROM 'misc' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x20, // LOAD_CONST_STRING 'monero' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x21, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x20, // IMPORT_FROM 'monero' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x22, // LOAD_METHOD 'validate_path' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x23, // LOAD_ATTR 'address_n' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x24, // LOAD_METHOD 'get_creds' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x23, // LOAD_ATTR 'address_n' + 0xb1, // LOAD_FAST 1 + 0x13,0x25, // LOAD_ATTR 'network_type' + 0x36,0x03, // CALL_METHOD 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x26, // STORE_ATTR 'creds' + 0x12,0x06, // LOAD_GLOBAL 'layout' + 0x14,0x27, // LOAD_METHOD 'require_confirm_keyimage_sync' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x28, // LOAD_ATTR 'num' + 0xb0, // LOAD_FAST 0 + 0x18,0x14, // STORE_ATTR 'num_outputs' + 0xb1, // LOAD_FAST 1 + 0x13,0x29, // LOAD_ATTR 'hash' + 0xb0, // LOAD_FAST 0 + 0x18,0x17, // STORE_ATTR 'expected_hash' + 0xb3, // LOAD_FAST 3 + 0x14,0x2a, // LOAD_METHOD 'bytes' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x01, // CALL_METHOD 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x18, // STORE_ATTR 'enc_key' + 0xb1, // LOAD_FAST 1 + 0x13,0x2b, // LOAD_ATTR 'subs' + 0x5f, // GET_ITER_STACK + 0x4b,0x15, // FOR_ITER 21 + 0xc8, // STORE_FAST 8 + 0xb7, // LOAD_FAST 7 + 0x14,0x2c, // LOAD_METHOD 'compute_subaddresses' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'creds' + 0xb8, // LOAD_FAST 8 + 0x13,0x2d, // LOAD_ATTR 'account' + 0xb8, // LOAD_FAST 8 + 0x13,0x2e, // LOAD_ATTR 'minor_indices' + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'subaddresses' + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0x42,0x29, // JUMP -23 + 0xb4, // LOAD_FAST 4 + 0x34,0x00, // CALL_FUNCTION 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_key_image_sync__init_step = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_key_image_sync__init_step, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 168, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_apps_monero_key_image_sync__init_step + 7, + .line_info_top = fun_data_apps_monero_key_image_sync__init_step + 23, + .opcodes = fun_data_apps_monero_key_image_sync__init_step + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_key_image_sync__lt_module_gt_ +// frozen bytecode for file apps/monero/key_image_sync.py, scope apps_monero_key_image_sync__sync_step +static const byte fun_data_apps_monero_key_image_sync__sync_step[302] = { + 0xe3,0x10,0x3c, // prelude + 0x30,0x4d,0x4e,0x4f, // names: _sync_step, s, tds, progress + 0x80,0x66,0x2b,0x50,0x55,0x40,0x25,0x47,0x23,0x28,0x46,0x2f,0x53,0x28,0x29,0x29,0x47,0x60,0x20,0x6e,0x70,0x2d,0x33,0x73,0x50,0x54, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x31, // LOAD_CONST_STRING 'log' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x32, // IMPORT_NAME 'trezor' + 0x1c,0x31, // IMPORT_FROM 'log' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x33, // LOAD_CONST_STRING 'MoneroExportedKeyImage' + 0x10,0x34, // LOAD_CONST_STRING 'MoneroKeyImageSyncStepAck' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0e, // IMPORT_NAME 'trezor.messages' + 0x1c,0x33, // IMPORT_FROM 'MoneroExportedKeyImage' + 0xc4, // STORE_FAST 4 + 0x1c,0x34, // IMPORT_FROM 'MoneroKeyImageSyncStepAck' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x35, // LOAD_CONST_STRING 'chacha_poly' + 0x10,0x36, // LOAD_CONST_STRING 'crypto' + 0x10,0x37, // LOAD_CONST_STRING 'key_image' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x21, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x35, // IMPORT_FROM 'chacha_poly' + 0xc6, // STORE_FAST 6 + 0x1c,0x36, // IMPORT_FROM 'crypto' + 0xc7, // STORE_FAST 7 + 0x1c,0x37, // IMPORT_FROM 'key_image' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x38, // LOAD_ATTR 'tdis' + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x02, // LOAD_GLOBAL 'DataError' + 0x10,0x39, // LOAD_CONST_STRING 'Empty' + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x2b,0x00, // BUILD_LIST 0 + 0xc9, // STORE_FAST 9 + 0x12,0x50, // LOAD_GLOBAL 'bytearray' + 0x22,0x80,0x60, // LOAD_CONST_SMALL_INT 96 + 0x34,0x01, // CALL_FUNCTION 1 + 0xca, // STORE_FAST 10 + 0x12,0x51, // LOAD_GLOBAL 'memoryview' + 0xba, // LOAD_FAST 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcb, // STORE_FAST 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'current_output' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'num_outputs' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xb2, // LOAD_FAST 2 + 0x14,0x3a, // LOAD_METHOD 'report' + 0x22,0x87,0x68, // LOAD_CONST_SMALL_INT 1000 + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'current_output' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xf4, // BINARY_OP 29 __mul__ + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'num_outputs' + 0xf6, // BINARY_OP 31 __floordiv__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x38, // LOAD_ATTR 'tdis' + 0x5f, // GET_ITER_STACK + 0x4b,0x8f,0x01, // FOR_ITER 143 + 0xcc, // STORE_FAST 12 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x13, // LOAD_ATTR 'current_output' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x13, // STORE_ATTR 'current_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'current_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'num_outputs' + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'hasher' + 0x14,0x3b, // LOAD_METHOD 'update' + 0xb8, // LOAD_FAST 8 + 0x14,0x3c, // LOAD_METHOD 'compute_hash' + 0xbc, // LOAD_FAST 12 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x3d, // LOAD_METHOD 'export_key_image' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'creds' + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'subaddresses' + 0xbc, // LOAD_FAST 12 + 0x36,0x03, // CALL_METHOD 3 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xcd, // STORE_FAST 13 + 0xce, // STORE_FAST 14 + 0xb7, // LOAD_FAST 7 + 0x14,0x3e, // LOAD_METHOD 'encodepoint_into' + 0xbb, // LOAD_FAST 11 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xbd, // LOAD_FAST 13 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x3f, // LOAD_METHOD 'encodeint_into' + 0xbb, // LOAD_FAST 11 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xbe, // LOAD_FAST 14 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x3f, // LOAD_METHOD 'encodeint_into' + 0xbb, // LOAD_FAST 11 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xbe, // LOAD_FAST 14 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x40, // LOAD_METHOD 'encrypt' + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'enc_key' + 0xba, // LOAD_FAST 10 + 0x36,0x02, // CALL_METHOD 2 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xcf, // STORE_FAST 15 + 0x26,0x10, // STORE_FAST_N 16 + 0x26,0x11, // STORE_FAST_N 17 + 0xb9, // LOAD_FAST 9 + 0x14,0x41, // LOAD_METHOD 'append' + 0xb4, // LOAD_FAST 4 + 0x10,0x42, // LOAD_CONST_STRING 'iv' + 0xbf, // LOAD_FAST 15 + 0x10,0x43, // LOAD_CONST_STRING 'blob' + 0x24,0x10, // LOAD_FAST_N 16 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0xee,0x7e, // JUMP -146 + 0xb5, // LOAD_FAST 5 + 0x10,0x44, // LOAD_CONST_STRING 'kis' + 0xb9, // LOAD_FAST 9 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_key_image_sync__sync_step = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_key_image_sync__sync_step, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 302, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 29, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 48, + .line_info = fun_data_apps_monero_key_image_sync__sync_step + 7, + .line_info_top = fun_data_apps_monero_key_image_sync__sync_step + 33, + .opcodes = fun_data_apps_monero_key_image_sync__sync_step + 33, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_key_image_sync__lt_module_gt_[] = { + &raw_code_apps_monero_key_image_sync_key_image_sync, + &raw_code_apps_monero_key_image_sync_KeyImageSync, + &raw_code_apps_monero_key_image_sync__init_step, + &raw_code_apps_monero_key_image_sync__sync_step, +}; + +static const mp_raw_code_t raw_code_apps_monero_key_image_sync__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_key_image_sync__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 82, + #endif + .children = (void *)&children_apps_monero_key_image_sync__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_key_image_sync__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_key_image_sync__lt_module_gt_ + 15, + .opcodes = fun_data_apps_monero_key_image_sync__lt_module_gt_ + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_key_image_sync[83] = { + MP_QSTR_apps_slash_monero_slash_key_image_sync_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_auto_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_layout, + MP_QSTR_apps_dot_monero, + MP_QSTR_KeyImageSync, + MP_QSTR_key_image_sync, + MP_QSTR_gc, + MP_QSTR_MoneroKeyImageSyncFinalAck, + MP_QSTR_MoneroKeyImageSyncFinalRequest, + MP_QSTR_MoneroKeyImageSyncStepRequest, + MP_QSTR_trezor_dot_messages, + MP_QSTR_call, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_monero_keyimage_sync_progress, + MP_QSTR_collect, + MP_QSTR_current_output, + MP_QSTR_num_outputs, + MP_QSTR_hasher, + MP_QSTR_digest, + MP_QSTR_expected_hash, + MP_QSTR_enc_key, + MP_QSTR__init_step, + MP_QSTR_random, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_MoneroKeyImageExportInitAck, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_misc, + MP_QSTR_monero, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_validate_path, + MP_QSTR_address_n, + MP_QSTR_get_creds, + MP_QSTR_network_type, + MP_QSTR_creds, + MP_QSTR_require_confirm_keyimage_sync, + MP_QSTR_num, + MP_QSTR_hash, + MP_QSTR_bytes, + MP_QSTR_subs, + MP_QSTR_compute_subaddresses, + MP_QSTR_account, + MP_QSTR_minor_indices, + MP_QSTR_subaddresses, + MP_QSTR__sync_step, + MP_QSTR_log, + MP_QSTR_trezor, + MP_QSTR_MoneroExportedKeyImage, + MP_QSTR_MoneroKeyImageSyncStepAck, + MP_QSTR_chacha_poly, + MP_QSTR_crypto, + MP_QSTR_key_image, + MP_QSTR_tdis, + MP_QSTR_Empty, + MP_QSTR_report, + MP_QSTR_update, + MP_QSTR_compute_hash, + MP_QSTR_export_key_image, + MP_QSTR_encodepoint_into, + MP_QSTR_encodeint_into, + MP_QSTR_encrypt, + MP_QSTR_append, + MP_QSTR_iv, + MP_QSTR_blob, + MP_QSTR_kis, + MP_QSTR___init__, + MP_QSTR_crypto_helpers, + MP_QSTR_get_keccak, + MP_QSTR___name__, + MP_QSTR_msg, + MP_QSTR_keychain, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_s, + MP_QSTR_tds, + MP_QSTR_progress, + MP_QSTR_bytearray, + MP_QSTR_memoryview, + MP_QSTR_self, +}; + +// constants +static const mp_obj_str_t const_obj_apps_monero_key_image_sync_0 = {{&mp_type_str}, 49106, 25, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x6f\x75\x74\x70\x75\x74\x73"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_key_image_sync[3] = { + MP_ROM_PTR(&const_obj_apps_monero_key_image_sync_0), + MP_ROM_QSTR(MP_QSTR_Too_space_many_space_outputs), + MP_ROM_PTR(&mp_const_empty_bytes_obj), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_key_image_sync = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_key_image_sync, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_key_image_sync, + }, + .rc = &raw_code_apps_monero_key_image_sync__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_layout +// - original source file: build/firmware/src/apps/monero/layout.mpy +// - frozen file name: apps/monero/layout.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/layout.py, scope apps_monero_layout__lt_module_gt_ +static const byte fun_data_apps_monero_layout__lt_module_gt_[151] = { + 0x18,0x3c, // prelude + 0x01, // names: + 0x40,0x2c,0x32,0x78,0x60,0x64,0x80,0x07,0x66,0x89,0x1d,0x64,0x60,0x84,0x09,0x84,0x09,0x84,0x09,0x88,0x0e,0x84,0x2c,0x84,0x1b,0x84,0x0b,0x84,0x0a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x02, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x02, // STORE_NAME 'ButtonRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'confirm_action' + 0x10,0x05, // LOAD_CONST_STRING 'confirm_metadata' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x06, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x04, // IMPORT_FROM 'confirm_action' + 0x16,0x04, // STORE_NAME 'confirm_action' + 0x1c,0x05, // IMPORT_FROM 'confirm_metadata' + 0x16,0x05, // STORE_NAME 'confirm_metadata' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'monero_keyimage_sync_progress' + 0x10,0x08, // LOAD_CONST_STRING 'monero_live_refresh_progress' + 0x10,0x09, // LOAD_CONST_STRING 'monero_transaction_progress_inner' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x0a, // IMPORT_NAME 'trezor.ui.layouts.progress' + 0x1c,0x07, // IMPORT_FROM 'monero_keyimage_sync_progress' + 0x16,0x07, // STORE_NAME 'monero_keyimage_sync_progress' + 0x1c,0x08, // IMPORT_FROM 'monero_live_refresh_progress' + 0x16,0x08, // STORE_NAME 'monero_live_refresh_progress' + 0x1c,0x09, // IMPORT_FROM 'monero_transaction_progress_inner' + 0x16,0x09, // STORE_NAME 'monero_transaction_progress_inner' + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x43, // STORE_NAME 'DUMMY_PAYMENT_ID' + 0x11,0x02, // LOAD_NAME 'ButtonRequestType' + 0x13,0x0b, // LOAD_ATTR 'SignTx' + 0x16,0x44, // STORE_NAME 'BRT_SignTx' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x0c, // LOAD_CONST_STRING 'MoneroTransactionProgress' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x0c, // STORE_NAME 'MoneroTransactionProgress' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0d, // STORE_NAME '_format_amount' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x13, // STORE_NAME 'require_confirm_watchkey' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x16, // STORE_NAME 'require_confirm_keyimage_sync' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x17, // STORE_NAME 'require_confirm_live_refresh' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x05, // MAKE_FUNCTION_DEFARGS 5 + 0x16,0x18, // STORE_NAME 'require_confirm_tx_key' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x19, // STORE_NAME 'require_confirm_transaction' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x25, // STORE_NAME '_require_confirm_output' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x2e, // STORE_NAME '_require_confirm_payment_id' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x31, // STORE_NAME '_require_confirm_fee' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x34, // STORE_NAME '_require_confirm_unlock_time' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_layout__lt_module_gt_ +// frozen bytecode for file apps/monero/layout.py, scope apps_monero_layout_MoneroTransactionProgress +static const byte fun_data_apps_monero_layout_MoneroTransactionProgress[28] = { + 0x08,0x08, // prelude + 0x0c, // names: MoneroTransactionProgress + 0x88,0x18,0x64, // code info + 0x11,0x45, // LOAD_NAME '__name__' + 0x16,0x46, // STORE_NAME '__module__' + 0x10,0x0c, // LOAD_CONST_STRING 'MoneroTransactionProgress' + 0x16,0x47, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x35, // STORE_NAME '__init__' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x24, // STORE_NAME 'step' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_layout_MoneroTransactionProgress +// frozen bytecode for file apps/monero/layout.py, scope apps_monero_layout_MoneroTransactionProgress___init__ +static const byte fun_data_apps_monero_layout_MoneroTransactionProgress___init__[12] = { + 0x11,0x08, // prelude + 0x35,0x53, // names: __init__, self + 0x80,0x19, // code info + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x36, // STORE_ATTR 'inner' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_layout_MoneroTransactionProgress___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_layout_MoneroTransactionProgress___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 53, + .line_info = fun_data_apps_monero_layout_MoneroTransactionProgress___init__ + 4, + .line_info_top = fun_data_apps_monero_layout_MoneroTransactionProgress___init__ + 6, + .opcodes = fun_data_apps_monero_layout_MoneroTransactionProgress___init__ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_layout_MoneroTransactionProgress +// frozen bytecode for file apps/monero/layout.py, scope apps_monero_layout_MoneroTransactionProgress_step +static const byte fun_data_apps_monero_layout_MoneroTransactionProgress_step[203] = { + 0xc8,0x05,0x32, // prelude + 0x24,0x53,0x4a,0x24,0x54, // names: step, self, state, step, sub_step + 0x80,0x1c,0x2c,0x27,0x26,0x27,0x30,0x27,0x30,0x27,0x25,0x27,0x2f,0x27,0x25,0x27,0x4f,0x43,0x49,0x2c, // code info + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'inner' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x09, // LOAD_GLOBAL 'monero_transaction_progress_inner' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x36, // STORE_ATTR 'inner' + 0x10,0x37, // LOAD_CONST_STRING 'Signing...' + 0xc4, // STORE_FAST 4 + 0x42,0xf5,0x80, // JUMP 117 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x38, // LOAD_ATTR 'STEP_INP' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x14,0x11, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb1, // LOAD_FAST 1 + 0x13,0x39, // LOAD_ATTR 'input_count' + 0x36,0x02, // CALL_METHOD 2 + 0xc4, // STORE_FAST 4 + 0x42,0xde,0x80, // JUMP 94 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x3a, // LOAD_ATTR 'STEP_VINI' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0x14,0x11, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb1, // LOAD_FAST 1 + 0x13,0x39, // LOAD_ATTR 'input_count' + 0x36,0x02, // CALL_METHOD 2 + 0xc4, // STORE_FAST 4 + 0x42,0xc7,0x80, // JUMP 71 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x3b, // LOAD_ATTR 'STEP_ALL_IN' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0xc4, // STORE_FAST 4 + 0x42,0x7b, // JUMP 59 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x3c, // LOAD_ATTR 'STEP_OUT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0x14,0x11, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb1, // LOAD_FAST 1 + 0x13,0x3d, // LOAD_ATTR 'output_count' + 0x36,0x02, // CALL_METHOD 2 + 0xc4, // STORE_FAST 4 + 0x42,0x65, // JUMP 37 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x3e, // LOAD_ATTR 'STEP_ALL_OUT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x17, // LOAD_CONST_OBJ 23 + 0xc4, // STORE_FAST 4 + 0x42,0x59, // JUMP 25 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x3f, // LOAD_ATTR 'STEP_SIGN' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x23,0x18, // LOAD_CONST_OBJ 24 + 0x14,0x11, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb1, // LOAD_FAST 1 + 0x13,0x39, // LOAD_ATTR 'input_count' + 0x36,0x02, // CALL_METHOD 2 + 0xc4, // STORE_FAST 4 + 0x42,0x43, // JUMP 3 + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x57, // DUP_TOP + 0x13,0x40, // LOAD_ATTR 'progress_cur' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x40, // STORE_ATTR 'progress_cur' + 0x22,0x87,0x68, // LOAD_CONST_SMALL_INT 1000 + 0xb1, // LOAD_FAST 1 + 0x13,0x40, // LOAD_ATTR 'progress_cur' + 0xf4, // BINARY_OP 29 __mul__ + 0xb1, // LOAD_FAST 1 + 0x13,0x41, // LOAD_ATTR 'progress_total' + 0xf6, // BINARY_OP 31 __floordiv__ + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'inner' + 0x14,0x42, // LOAD_METHOD 'report' + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_layout_MoneroTransactionProgress_step = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_layout_MoneroTransactionProgress_step, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 203, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_monero_layout_MoneroTransactionProgress_step + 8, + .line_info_top = fun_data_apps_monero_layout_MoneroTransactionProgress_step + 28, + .opcodes = fun_data_apps_monero_layout_MoneroTransactionProgress_step + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_layout_MoneroTransactionProgress[] = { + &raw_code_apps_monero_layout_MoneroTransactionProgress___init__, + &raw_code_apps_monero_layout_MoneroTransactionProgress_step, +}; + +static const mp_raw_code_t raw_code_apps_monero_layout_MoneroTransactionProgress = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_layout_MoneroTransactionProgress, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = (void *)&children_apps_monero_layout_MoneroTransactionProgress, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_monero_layout_MoneroTransactionProgress + 3, + .line_info_top = fun_data_apps_monero_layout_MoneroTransactionProgress + 6, + .opcodes = fun_data_apps_monero_layout_MoneroTransactionProgress + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_layout__lt_module_gt_ +// frozen bytecode for file apps/monero/layout.py, scope apps_monero_layout__format_amount +static const byte fun_data_apps_monero_layout__format_amount[32] = { + 0x39,0x0a, // prelude + 0x0d,0x48, // names: _format_amount, value + 0x80,0x35,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'strings' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'trezor' + 0x1c,0x0e, // IMPORT_FROM 'strings' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x10,0x10, // LOAD_CONST_STRING '{} XMR' + 0x14,0x11, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x14,0x12, // LOAD_METHOD 'format_amount' + 0xb0, // LOAD_FAST 0 + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_layout__format_amount = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_layout__format_amount, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_monero_layout__format_amount + 4, + .line_info_top = fun_data_apps_monero_layout__format_amount + 7, + .opcodes = fun_data_apps_monero_layout__format_amount + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_layout__lt_module_gt_ +// frozen bytecode for file apps/monero/layout.py, scope apps_monero_layout_require_confirm_watchkey +static const byte fun_data_apps_monero_layout_require_confirm_watchkey[32] = { + 0xb0,0x40,0x0c, // prelude + 0x13, // names: require_confirm_watchkey + 0x80,0x3b,0x22,0x22,0x24, // code info + 0x12,0x04, // LOAD_GLOBAL 'confirm_action' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x10,0x14, // LOAD_CONST_STRING 'description' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x10,0x15, // LOAD_CONST_STRING 'br_code' + 0x12,0x44, // LOAD_GLOBAL 'BRT_SignTx' + 0x34,0x84,0x02, // CALL_FUNCTION 514 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_layout_require_confirm_watchkey = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_layout_require_confirm_watchkey, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_monero_layout_require_confirm_watchkey + 4, + .line_info_top = fun_data_apps_monero_layout_require_confirm_watchkey + 9, + .opcodes = fun_data_apps_monero_layout_require_confirm_watchkey + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_layout__lt_module_gt_ +// frozen bytecode for file apps/monero/layout.py, scope apps_monero_layout_require_confirm_keyimage_sync +static const byte fun_data_apps_monero_layout_require_confirm_keyimage_sync[32] = { + 0xb0,0x40,0x0c, // prelude + 0x16, // names: require_confirm_keyimage_sync + 0x80,0x44,0x22,0x22,0x24, // code info + 0x12,0x04, // LOAD_GLOBAL 'confirm_action' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x10,0x14, // LOAD_CONST_STRING 'description' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x10,0x15, // LOAD_CONST_STRING 'br_code' + 0x12,0x44, // LOAD_GLOBAL 'BRT_SignTx' + 0x34,0x84,0x02, // CALL_FUNCTION 514 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_layout_require_confirm_keyimage_sync = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_layout_require_confirm_keyimage_sync, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_apps_monero_layout_require_confirm_keyimage_sync + 4, + .line_info_top = fun_data_apps_monero_layout_require_confirm_keyimage_sync + 9, + .opcodes = fun_data_apps_monero_layout_require_confirm_keyimage_sync + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_layout__lt_module_gt_ +// frozen bytecode for file apps/monero/layout.py, scope apps_monero_layout_require_confirm_live_refresh +static const byte fun_data_apps_monero_layout_require_confirm_live_refresh[32] = { + 0xb0,0x40,0x0c, // prelude + 0x17, // names: require_confirm_live_refresh + 0x80,0x4d,0x22,0x22,0x24, // code info + 0x12,0x04, // LOAD_GLOBAL 'confirm_action' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x10,0x14, // LOAD_CONST_STRING 'description' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x10,0x15, // LOAD_CONST_STRING 'br_code' + 0x12,0x44, // LOAD_GLOBAL 'BRT_SignTx' + 0x34,0x84,0x02, // CALL_FUNCTION 514 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_layout_require_confirm_live_refresh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_layout_require_confirm_live_refresh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_monero_layout_require_confirm_live_refresh + 4, + .line_info_top = fun_data_apps_monero_layout_require_confirm_live_refresh + 9, + .opcodes = fun_data_apps_monero_layout_require_confirm_live_refresh + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_layout__lt_module_gt_ +// frozen bytecode for file apps/monero/layout.py, scope apps_monero_layout_require_confirm_tx_key +static const byte fun_data_apps_monero_layout_require_confirm_tx_key[44] = { + 0xc1,0x41,0x12, // prelude + 0x18,0x49, // names: require_confirm_tx_key, export_key + 0x80,0x56,0x20,0x47,0x43,0x22,0x22, // code info + 0xb0, // LOAD_FAST 0 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x42,0x42, // JUMP 2 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0xc1, // STORE_FAST 1 + 0x12,0x04, // LOAD_GLOBAL 'confirm_action' + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x10,0x14, // LOAD_CONST_STRING 'description' + 0xb1, // LOAD_FAST 1 + 0x10,0x15, // LOAD_CONST_STRING 'br_code' + 0x12,0x44, // LOAD_GLOBAL 'BRT_SignTx' + 0x34,0x84,0x02, // CALL_FUNCTION 514 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_layout_require_confirm_tx_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_layout_require_confirm_tx_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 24, + .line_info = fun_data_apps_monero_layout_require_confirm_tx_key + 5, + .line_info_top = fun_data_apps_monero_layout_require_confirm_tx_key + 12, + .opcodes = fun_data_apps_monero_layout_require_confirm_tx_key + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_layout__lt_module_gt_ +// frozen bytecode for file apps/monero/layout.py, scope apps_monero_layout_require_confirm_transaction +static const byte fun_data_apps_monero_layout_require_confirm_transaction[217] = { + 0xb8,0x54,0x3e, // prelude + 0x19,0x4a,0x4b,0x4c,0x4d, // names: require_confirm_transaction, state, tsx_data, network_type, progress + 0x80,0x69,0x60,0x4b,0x24,0x28,0x44,0x27,0x4b,0x2c,0x2a,0x23,0x22,0x34,0x23,0x22,0x2c,0x44,0x22,0x27,0x71,0x43,0x25,0x46,0x49,0x2b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1a, // LOAD_CONST_STRING 'get_change_addr_idx' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1b, // IMPORT_NAME 'apps.monero.xmr.addresses' + 0x1c,0x1a, // IMPORT_FROM 'get_change_addr_idx' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x1c, // LOAD_ATTR 'outputs' + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x1d, // LOAD_ATTR 'change_dts' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc6, // STORE_FAST 6 + 0xb1, // LOAD_FAST 1 + 0x13,0x1e, // LOAD_ATTR 'payment_id' + 0xc7, // STORE_FAST 7 + 0xb1, // LOAD_FAST 1 + 0x13,0x1f, // LOAD_ATTR 'unlock_time' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x34, // LOAD_GLOBAL '_require_confirm_unlock_time' + 0xb1, // LOAD_FAST 1 + 0x13,0x1f, // LOAD_ATTR 'unlock_time' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x4e, // LOAD_GLOBAL 'enumerate' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x56, // FOR_ITER 86 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc8, // STORE_FAST 8 + 0xc9, // STORE_FAST 9 + 0xb6, // LOAD_FAST 6 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x46,0x03, // JUMP_IF_FALSE_OR_POP 3 + 0xb8, // LOAD_FAST 8 + 0xb6, // LOAD_FAST 6 + 0xd9, // BINARY_OP 2 __eq__ + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x2b, // JUMP -21 + 0xb6, // LOAD_FAST 6 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x46,0x0e, // JUMP_IF_FALSE_OR_POP 14 + 0xb9, // LOAD_FAST 9 + 0x13,0x20, // LOAD_ATTR 'amount' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x07, // JUMP_IF_FALSE_OR_POP 7 + 0x12,0x4f, // LOAD_GLOBAL 'len' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xd9, // BINARY_OP 2 __eq__ + 0xcb, // STORE_FAST 11 + 0xbb, // LOAD_FAST 11 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x12, // JUMP -46 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'integrated_indices' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'integrated_indices' + 0xdd, // BINARY_OP 6 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb7, // LOAD_FAST 7 + 0xcc, // STORE_FAST 12 + 0x42,0x42, // JUMP 2 + 0x51, // LOAD_CONST_NONE + 0xcc, // STORE_FAST 12 + 0x12,0x25, // LOAD_GLOBAL '_require_confirm_output' + 0xb9, // LOAD_FAST 9 + 0xb2, // LOAD_FAST 2 + 0xbc, // LOAD_FAST 12 + 0x10,0x22, // LOAD_CONST_STRING 'chunkify' + 0x12,0x50, // LOAD_GLOBAL 'bool' + 0xb1, // LOAD_FAST 1 + 0x13,0x22, // LOAD_ATTR 'chunkify' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0xa8,0x7f, // JUMP -88 + 0xb7, // LOAD_FAST 7 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'integrated_indices' + 0x43,0x4f, // POP_JUMP_IF_TRUE 15 + 0xb7, // LOAD_FAST 7 + 0x12,0x43, // LOAD_GLOBAL 'DUMMY_PAYMENT_ID' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x2e, // LOAD_GLOBAL '_require_confirm_payment_id' + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x31, // LOAD_GLOBAL '_require_confirm_fee' + 0xb1, // LOAD_FAST 1 + 0x13,0x23, // LOAD_ATTR 'fee' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x24, // LOAD_METHOD 'step' + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_layout_require_confirm_transaction = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_layout_require_confirm_transaction, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 217, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 24, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_apps_monero_layout_require_confirm_transaction + 8, + .line_info_top = fun_data_apps_monero_layout_require_confirm_transaction + 34, + .opcodes = fun_data_apps_monero_layout_require_confirm_transaction + 34, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_layout__lt_module_gt_ +// frozen bytecode for file apps/monero/layout.py, scope apps_monero_layout__require_confirm_output +static const byte fun_data_apps_monero_layout__require_confirm_output[104] = { + 0xf8,0x44,0x1e, // prelude + 0x25,0x51,0x4c,0x1e,0x22, // names: _require_confirm_output, dst, network_type, payment_id, chunkify + 0x80,0x95,0x60,0x4b,0x2b,0x4b,0x2c,0x22,0x6e,0x42, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x26, // LOAD_CONST_STRING 'confirm_output' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x26, // IMPORT_FROM 'confirm_output' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x27, // LOAD_CONST_STRING 'encode_addr' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1b, // IMPORT_NAME 'apps.monero.xmr.addresses' + 0x1c,0x27, // IMPORT_FROM 'encode_addr' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x28, // LOAD_CONST_STRING 'net_version' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x29, // IMPORT_NAME 'apps.monero.xmr.networks' + 0x1c,0x28, // IMPORT_FROM 'net_version' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'is_subaddress' + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc7, // STORE_FAST 7 + 0xb5, // LOAD_FAST 5 + 0xb7, // LOAD_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'addr' + 0x13,0x2c, // LOAD_ATTR 'spend_public_key' + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'addr' + 0x13,0x2d, // LOAD_ATTR 'view_public_key' + 0xb2, // LOAD_FAST 2 + 0x34,0x04, // CALL_FUNCTION 4 + 0xc8, // STORE_FAST 8 + 0xb4, // LOAD_FAST 4 + 0xb8, // LOAD_FAST 8 + 0x12,0x0d, // LOAD_GLOBAL '_format_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'amount' + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x15, // LOAD_CONST_STRING 'br_code' + 0x12,0x44, // LOAD_GLOBAL 'BRT_SignTx' + 0x10,0x22, // LOAD_CONST_STRING 'chunkify' + 0xb3, // LOAD_FAST 3 + 0x34,0x84,0x02, // CALL_FUNCTION 514 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_layout__require_confirm_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_layout__require_confirm_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 104, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_monero_layout__require_confirm_output + 8, + .line_info_top = fun_data_apps_monero_layout__require_confirm_output + 18, + .opcodes = fun_data_apps_monero_layout__require_confirm_output + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_layout__lt_module_gt_ +// frozen bytecode for file apps/monero/layout.py, scope apps_monero_layout__require_confirm_payment_id +static const byte fun_data_apps_monero_layout__require_confirm_payment_id[39] = { + 0xb9,0x40,0x0c, // prelude + 0x2e,0x1e, // names: _require_confirm_payment_id, payment_id + 0x80,0xab,0x4b,0x21, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2f, // LOAD_CONST_STRING 'confirm_blob' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x2f, // IMPORT_FROM 'confirm_blob' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x10,0x30, // LOAD_CONST_STRING 'Payment ID' + 0xb0, // LOAD_FAST 0 + 0x10,0x15, // LOAD_CONST_STRING 'br_code' + 0x12,0x44, // LOAD_GLOBAL 'BRT_SignTx' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_layout__require_confirm_payment_id = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_layout__require_confirm_payment_id, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_monero_layout__require_confirm_payment_id + 5, + .line_info_top = fun_data_apps_monero_layout__require_confirm_payment_id + 9, + .opcodes = fun_data_apps_monero_layout__require_confirm_payment_id + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_layout__lt_module_gt_ +// frozen bytecode for file apps/monero/layout.py, scope apps_monero_layout__require_confirm_fee +static const byte fun_data_apps_monero_layout__require_confirm_fee[35] = { + 0xb9,0x40,0x0e, // prelude + 0x31,0x23, // names: _require_confirm_fee, fee + 0x80,0xb6,0x22,0x22,0x44, // code info + 0x12,0x05, // LOAD_GLOBAL 'confirm_metadata' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x10,0x32, // LOAD_CONST_STRING '{}' + 0x12,0x0d, // LOAD_GLOBAL '_format_amount' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x33, // LOAD_CONST_STRING 'hold' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x04, // CALL_FUNCTION 260 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_layout__require_confirm_fee = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_layout__require_confirm_fee, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 49, + .line_info = fun_data_apps_monero_layout__require_confirm_fee + 5, + .line_info_top = fun_data_apps_monero_layout__require_confirm_fee + 10, + .opcodes = fun_data_apps_monero_layout__require_confirm_fee + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_layout__lt_module_gt_ +// frozen bytecode for file apps/monero/layout.py, scope apps_monero_layout__require_confirm_unlock_time +static const byte fun_data_apps_monero_layout__require_confirm_unlock_time[34] = { + 0xb1,0x40,0x10, // prelude + 0x34,0x1f, // names: _require_confirm_unlock_time, unlock_time + 0x80,0xc0,0x22,0x22,0x22,0x22, // code info + 0x12,0x05, // LOAD_GLOBAL 'confirm_metadata' + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x12,0x52, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x44, // LOAD_GLOBAL 'BRT_SignTx' + 0x34,0x05, // CALL_FUNCTION 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_layout__require_confirm_unlock_time = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_layout__require_confirm_unlock_time, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 52, + .line_info = fun_data_apps_monero_layout__require_confirm_unlock_time + 5, + .line_info_top = fun_data_apps_monero_layout__require_confirm_unlock_time + 11, + .opcodes = fun_data_apps_monero_layout__require_confirm_unlock_time + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_layout__lt_module_gt_[] = { + &raw_code_apps_monero_layout_MoneroTransactionProgress, + &raw_code_apps_monero_layout__format_amount, + &raw_code_apps_monero_layout_require_confirm_watchkey, + &raw_code_apps_monero_layout_require_confirm_keyimage_sync, + &raw_code_apps_monero_layout_require_confirm_live_refresh, + &raw_code_apps_monero_layout_require_confirm_tx_key, + &raw_code_apps_monero_layout_require_confirm_transaction, + &raw_code_apps_monero_layout__require_confirm_output, + &raw_code_apps_monero_layout__require_confirm_payment_id, + &raw_code_apps_monero_layout__require_confirm_fee, + &raw_code_apps_monero_layout__require_confirm_unlock_time, +}; + +static const mp_raw_code_t raw_code_apps_monero_layout__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 151, + #endif + .children = (void *)&children_apps_monero_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 11, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_layout__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_layout__lt_module_gt_ + 32, + .opcodes = fun_data_apps_monero_layout__lt_module_gt_ + 32, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_layout[85] = { + MP_QSTR_apps_slash_monero_slash_layout_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_confirm_action, + MP_QSTR_confirm_metadata, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_monero_keyimage_sync_progress, + MP_QSTR_monero_live_refresh_progress, + MP_QSTR_monero_transaction_progress_inner, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_progress, + MP_QSTR_SignTx, + MP_QSTR_MoneroTransactionProgress, + MP_QSTR__format_amount, + MP_QSTR_strings, + MP_QSTR_trezor, + MP_QSTR__brace_open__brace_close__space_XMR, + MP_QSTR_format, + MP_QSTR_format_amount, + MP_QSTR_require_confirm_watchkey, + MP_QSTR_description, + MP_QSTR_br_code, + MP_QSTR_require_confirm_keyimage_sync, + MP_QSTR_require_confirm_live_refresh, + MP_QSTR_require_confirm_tx_key, + MP_QSTR_require_confirm_transaction, + MP_QSTR_get_change_addr_idx, + MP_QSTR_apps_dot_monero_dot_xmr_dot_addresses, + MP_QSTR_outputs, + MP_QSTR_change_dts, + MP_QSTR_payment_id, + MP_QSTR_unlock_time, + MP_QSTR_amount, + MP_QSTR_integrated_indices, + MP_QSTR_chunkify, + MP_QSTR_fee, + MP_QSTR_step, + MP_QSTR__require_confirm_output, + MP_QSTR_confirm_output, + MP_QSTR_encode_addr, + MP_QSTR_net_version, + MP_QSTR_apps_dot_monero_dot_xmr_dot_networks, + MP_QSTR_is_subaddress, + MP_QSTR_addr, + MP_QSTR_spend_public_key, + MP_QSTR_view_public_key, + MP_QSTR__require_confirm_payment_id, + MP_QSTR_confirm_blob, + MP_QSTR_Payment_space_ID, + MP_QSTR__require_confirm_fee, + MP_QSTR__brace_open__brace_close_, + MP_QSTR_hold, + MP_QSTR__require_confirm_unlock_time, + MP_QSTR___init__, + MP_QSTR_inner, + MP_QSTR_Signing_dot__dot__dot_, + MP_QSTR_STEP_INP, + MP_QSTR_input_count, + MP_QSTR_STEP_VINI, + MP_QSTR_STEP_ALL_IN, + MP_QSTR_STEP_OUT, + MP_QSTR_output_count, + MP_QSTR_STEP_ALL_OUT, + MP_QSTR_STEP_SIGN, + MP_QSTR_progress_cur, + MP_QSTR_progress_total, + MP_QSTR_report, + MP_QSTR_DUMMY_PAYMENT_ID, + MP_QSTR_BRT_SignTx, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_value, + MP_QSTR_export_key, + MP_QSTR_state, + MP_QSTR_tsx_data, + MP_QSTR_network_type, + MP_QSTR_progress, + MP_QSTR_enumerate, + MP_QSTR_len, + MP_QSTR_bool, + MP_QSTR_dst, + MP_QSTR_str, + MP_QSTR_self, + MP_QSTR_sub_step, +}; + +// constants +static const mp_obj_str_t const_obj_apps_monero_layout_0 = {{&mp_type_bytes}, 18949, 8, (const byte*)"\x00\x00\x00\x00\x00\x00\x00\x00"}; +static const mp_obj_str_t const_obj_apps_monero_layout_3 = {{&mp_type_str}, 63494, 52, (const byte*)"\x44\x6f\x20\x79\x6f\x75\x20\x72\x65\x61\x6c\x6c\x79\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x65\x78\x70\x6f\x72\x74\x20\x77\x61\x74\x63\x68\x2d\x6f\x6e\x6c\x79\x20\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x73\x3f"}; +static const mp_obj_str_t const_obj_apps_monero_layout_6 = {{&mp_type_str}, 59780, 38, (const byte*)"\x44\x6f\x20\x79\x6f\x75\x20\x72\x65\x61\x6c\x6c\x79\x20\x77\x61\x6e\x74\x20\x74\x6f\x0a\x73\x79\x6e\x63\x20\x6b\x65\x79\x20\x69\x6d\x61\x67\x65\x73\x3f"}; +static const mp_obj_str_t const_obj_apps_monero_layout_9 = {{&mp_type_str}, 22685, 36, (const byte*)"\x44\x6f\x20\x79\x6f\x75\x20\x72\x65\x61\x6c\x6c\x79\x20\x77\x61\x6e\x74\x20\x74\x6f\x0a\x73\x74\x61\x72\x74\x20\x72\x65\x66\x72\x65\x73\x68\x3f"}; +static const mp_obj_str_t const_obj_apps_monero_layout_10 = {{&mp_type_str}, 38410, 36, (const byte*)"\x44\x6f\x20\x79\x6f\x75\x20\x72\x65\x61\x6c\x6c\x79\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x65\x78\x70\x6f\x72\x74\x20\x74\x78\x5f\x6b\x65\x79\x3f"}; +static const mp_obj_str_t const_obj_apps_monero_layout_11 = {{&mp_type_str}, 42824, 49, (const byte*)"\x44\x6f\x20\x79\x6f\x75\x20\x72\x65\x61\x6c\x6c\x79\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x65\x78\x70\x6f\x72\x74\x20\x74\x78\x5f\x64\x65\x72\x0a\x66\x6f\x72\x20\x74\x78\x5f\x70\x72\x6f\x6f\x66\x3f"}; +static const mp_obj_str_t const_obj_apps_monero_layout_18 = {{&mp_type_str}, 4060, 45, (const byte*)"\x55\x6e\x6c\x6f\x63\x6b\x20\x74\x69\x6d\x65\x20\x66\x6f\x72\x20\x74\x68\x69\x73\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x69\x73\x20\x73\x65\x74\x20\x74\x6f\x20\x7b\x7d"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_layout[25] = { + MP_ROM_PTR(&const_obj_apps_monero_layout_0), + MP_ROM_QSTR(MP_QSTR_get_watchkey), + MP_ROM_QSTR(MP_QSTR_Confirm_space_export), + MP_ROM_PTR(&const_obj_apps_monero_layout_3), + MP_ROM_QSTR(MP_QSTR_key_image_sync), + MP_ROM_QSTR(MP_QSTR_Confirm_space_ki_space_sync), + MP_ROM_PTR(&const_obj_apps_monero_layout_6), + MP_ROM_QSTR(MP_QSTR_live_refresh), + MP_ROM_QSTR(MP_QSTR_Confirm_space_refresh), + MP_ROM_PTR(&const_obj_apps_monero_layout_9), + MP_ROM_PTR(&const_obj_apps_monero_layout_10), + MP_ROM_PTR(&const_obj_apps_monero_layout_11), + MP_ROM_QSTR(MP_QSTR_export_tx_key), + MP_ROM_QSTR(MP_QSTR_confirm_payment_id), + MP_ROM_QSTR(MP_QSTR_confirm_final), + MP_ROM_QSTR(MP_QSTR_Confirm_space_fee), + MP_ROM_QSTR(MP_QSTR_confirm_locktime), + MP_ROM_QSTR(MP_QSTR_Confirm_space_unlock_space_time), + MP_ROM_PTR(&const_obj_apps_monero_layout_18), + MP_ROM_QSTR(MP_QSTR_Processing_space_inputs_0x0a__brace_open__brace_close__slash__brace_open__brace_close_), + MP_ROM_QSTR(MP_QSTR_Hashing_space_inputs_0x0a__brace_open__brace_close__slash__brace_open__brace_close_), + MP_ROM_QSTR(MP_QSTR_Processing_dot__dot__dot_), + MP_ROM_QSTR(MP_QSTR_Processing_space_outputs_0x0a__brace_open__brace_close__slash__brace_open__brace_close_), + MP_ROM_QSTR(MP_QSTR_Postprocessing_dot__dot__dot_), + MP_ROM_QSTR(MP_QSTR_Signing_space_inputs_0x0a__brace_open__brace_close__slash__brace_open__brace_close_), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_layout = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_layout, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_layout, + }, + .rc = &raw_code_apps_monero_layout__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_live_refresh +// - original source file: build/firmware/src/apps/monero/live_refresh.mpy +// - frozen file name: apps/monero/live_refresh.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/live_refresh.py, scope apps_monero_live_refresh__lt_module_gt_ +static const byte fun_data_apps_monero_live_refresh__lt_module_gt_[75] = { + 0x10,0x18, // prelude + 0x01, // names: + 0x40,0x2c,0x52,0x80,0x0f,0x8c,0x1c,0x69,0x60,0x84,0x15, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'auto_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x02, // IMPORT_FROM 'auto_keychain' + 0x16,0x02, // STORE_NAME 'auto_keychain' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'layout' + 0x10,0x05, // LOAD_CONST_STRING 'misc' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x06, // IMPORT_NAME 'apps.monero' + 0x1c,0x04, // IMPORT_FROM 'layout' + 0x16,0x04, // STORE_NAME 'layout' + 0x1c,0x05, // IMPORT_FROM 'misc' + 0x16,0x05, // STORE_NAME 'misc' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'auto_keychain' + 0x11,0x3f, // LOAD_NAME '__name__' + 0x34,0x01, // CALL_FUNCTION 1 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x08, // STORE_NAME 'live_refresh' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x07, // LOAD_CONST_STRING 'LiveRefreshState' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x07, // STORE_NAME 'LiveRefreshState' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x15, // STORE_NAME '_init_step' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x24, // STORE_NAME '_refresh_step' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_live_refresh__lt_module_gt_ +// frozen bytecode for file apps/monero/live_refresh.py, scope apps_monero_live_refresh_live_refresh +static const byte fun_data_apps_monero_live_refresh_live_refresh[137] = { + 0xf2,0x40,0x28, // prelude + 0x08,0x40,0x41, // names: live_refresh, msg, keychain + 0x80,0x18,0x45,0x2b,0x30,0x4b,0x45,0x2b,0x27,0x20,0x42,0x23,0x49,0x22,0x28,0x4a,0x24, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x09, // IMPORT_NAME 'gc' + 0xc2, // STORE_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'MessageType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'trezor.enums' + 0x1c,0x0a, // IMPORT_FROM 'MessageType' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'MoneroLiveRefreshFinalAck' + 0x10,0x0d, // LOAD_CONST_STRING 'MoneroLiveRefreshStepRequest' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0e, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0c, // IMPORT_FROM 'MoneroLiveRefreshFinalAck' + 0xc4, // STORE_FAST 4 + 0x1c,0x0d, // IMPORT_FROM 'MoneroLiveRefreshStepRequest' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0f, // LOAD_CONST_STRING 'call_any' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x0f, // IMPORT_FROM 'call_any' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'LiveRefreshState' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc7, // STORE_FAST 7 + 0x12,0x15, // LOAD_GLOBAL '_init_step' + 0xb7, // LOAD_FAST 7 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc8, // STORE_FAST 8 + 0x12,0x04, // LOAD_GLOBAL 'layout' + 0x14,0x11, // LOAD_METHOD 'monero_live_refresh_progress' + 0x36,0x00, // CALL_METHOD 0 + 0xc9, // STORE_FAST 9 + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0xb3, // LOAD_FAST 3 + 0x13,0x0d, // LOAD_ATTR 'MoneroLiveRefreshStepRequest' + 0xb3, // LOAD_FAST 3 + 0x13,0x12, // LOAD_ATTR 'MoneroLiveRefreshFinalRequest' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xca, // STORE_FAST 10 + 0x28,0x08, // DELETE_FAST 8 + 0xb5, // LOAD_FAST 5 + 0x14,0x13, // LOAD_METHOD 'is_type_of' + 0xba, // LOAD_FAST 10 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x24, // LOAD_GLOBAL '_refresh_step' + 0xb7, // LOAD_FAST 7 + 0xba, // LOAD_FAST 10 + 0xb9, // LOAD_FAST 9 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc8, // STORE_FAST 8 + 0x42,0x44, // JUMP 4 + 0xb4, // LOAD_FAST 4 + 0x34,0x00, // CALL_FUNCTION 0 + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x14,0x14, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0x12, // JUMP -46 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_live_refresh_live_refresh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_live_refresh_live_refresh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 137, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_monero_live_refresh_live_refresh + 6, + .line_info_top = fun_data_apps_monero_live_refresh_live_refresh + 23, + .opcodes = fun_data_apps_monero_live_refresh_live_refresh + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_live_refresh__lt_module_gt_ +// frozen bytecode for file apps/monero/live_refresh.py, scope apps_monero_live_refresh_LiveRefreshState +static const byte fun_data_apps_monero_live_refresh_LiveRefreshState[19] = { + 0x00,0x06, // prelude + 0x07, // names: LiveRefreshState + 0x88,0x31, // code info + 0x11,0x3f, // LOAD_NAME '__name__' + 0x16,0x42, // STORE_NAME '__module__' + 0x10,0x07, // LOAD_CONST_STRING 'LiveRefreshState' + 0x16,0x43, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x3e, // STORE_NAME '__init__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_live_refresh_LiveRefreshState +// frozen bytecode for file apps/monero/live_refresh.py, scope apps_monero_live_refresh_LiveRefreshState___init__ +static const byte fun_data_apps_monero_live_refresh_LiveRefreshState___init__[17] = { + 0x11,0x0a, // prelude + 0x3e,0x49, // names: __init__, self + 0x80,0x32,0x24, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'current_output' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x23, // STORE_ATTR 'creds' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_live_refresh_LiveRefreshState___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_live_refresh_LiveRefreshState___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 62, + .line_info = fun_data_apps_monero_live_refresh_LiveRefreshState___init__ + 4, + .line_info_top = fun_data_apps_monero_live_refresh_LiveRefreshState___init__ + 7, + .opcodes = fun_data_apps_monero_live_refresh_LiveRefreshState___init__ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_live_refresh_LiveRefreshState[] = { + &raw_code_apps_monero_live_refresh_LiveRefreshState___init__, +}; + +static const mp_raw_code_t raw_code_apps_monero_live_refresh_LiveRefreshState = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_live_refresh_LiveRefreshState, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = (void *)&children_apps_monero_live_refresh_LiveRefreshState, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_monero_live_refresh_LiveRefreshState + 3, + .line_info_top = fun_data_apps_monero_live_refresh_LiveRefreshState + 5, + .opcodes = fun_data_apps_monero_live_refresh_LiveRefreshState + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_live_refresh__lt_module_gt_ +// frozen bytecode for file apps/monero/live_refresh.py, scope apps_monero_live_refresh__init_step +static const byte fun_data_apps_monero_live_refresh__init_step[110] = { + 0xd3,0x40,0x1c, // prelude + 0x15,0x44,0x40,0x41, // names: _init_step, s, msg, keychain + 0x80,0x3b,0x27,0x4b,0x4b,0x4d,0x2a,0x2a,0x4b,0x50, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x16, // IMPORT_NAME 'storage.cache' + 0x13,0x17, // LOAD_ATTR 'cache' + 0xc3, // STORE_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x18, // LOAD_CONST_STRING 'MoneroLiveRefreshStartAck' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'trezor.messages' + 0x1c,0x18, // IMPORT_FROM 'MoneroLiveRefreshStartAck' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x19, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1a, // IMPORT_NAME 'apps.common' + 0x1c,0x19, // IMPORT_FROM 'paths' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x1b, // LOAD_METHOD 'validate_path' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x1c, // LOAD_ATTR 'address_n' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x1d, // LOAD_METHOD 'get' + 0xb3, // LOAD_FAST 3 + 0x13,0x1e, // LOAD_ATTR 'APP_MONERO_LIVE_REFRESH' + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x55, // POP_JUMP_IF_TRUE 21 + 0x12,0x04, // LOAD_GLOBAL 'layout' + 0x14,0x1f, // LOAD_METHOD 'require_confirm_live_refresh' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x20, // LOAD_METHOD 'set' + 0xb3, // LOAD_FAST 3 + 0x13,0x1e, // LOAD_ATTR 'APP_MONERO_LIVE_REFRESH' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'misc' + 0x14,0x21, // LOAD_METHOD 'get_creds' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x1c, // LOAD_ATTR 'address_n' + 0xb1, // LOAD_FAST 1 + 0x13,0x22, // LOAD_ATTR 'network_type' + 0x36,0x03, // CALL_METHOD 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x23, // STORE_ATTR 'creds' + 0xb4, // LOAD_FAST 4 + 0x34,0x00, // CALL_FUNCTION 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_live_refresh__init_step = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_live_refresh__init_step, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 110, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_monero_live_refresh__init_step + 7, + .line_info_top = fun_data_apps_monero_live_refresh__init_step + 17, + .opcodes = fun_data_apps_monero_live_refresh__init_step + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_live_refresh__lt_module_gt_ +// frozen bytecode for file apps/monero/live_refresh.py, scope apps_monero_live_refresh__refresh_step +static const byte fun_data_apps_monero_live_refresh__refresh_step[299] = { + 0xeb,0x10,0x3a, // prelude + 0x24,0x44,0x40,0x45, // names: _refresh_step, s, msg, progress + 0x80,0x50,0x2b,0x4b,0x5f,0x40,0x28,0x46,0x3a,0x49,0x80,0x08,0x29,0x29,0x29,0x23,0x70,0x29,0x31,0x62,0x28,0x34,0x74,0x34,0x4a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x25, // LOAD_CONST_STRING 'log' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x26, // IMPORT_NAME 'trezor' + 0x1c,0x25, // IMPORT_FROM 'log' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x27, // LOAD_CONST_STRING 'MoneroLiveRefreshStepAck' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'trezor.messages' + 0x1c,0x27, // IMPORT_FROM 'MoneroLiveRefreshStepAck' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x28, // LOAD_CONST_STRING 'chacha_poly' + 0x10,0x29, // LOAD_CONST_STRING 'crypto' + 0x10,0x2a, // LOAD_CONST_STRING 'crypto_helpers' + 0x10,0x2b, // LOAD_CONST_STRING 'key_image' + 0x10,0x2c, // LOAD_CONST_STRING 'monero' + 0x2a,0x05, // BUILD_TUPLE 5 + 0x1b,0x2d, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x28, // IMPORT_FROM 'chacha_poly' + 0xc5, // STORE_FAST 5 + 0x1c,0x29, // IMPORT_FROM 'crypto' + 0xc6, // STORE_FAST 6 + 0x1c,0x2a, // IMPORT_FROM 'crypto_helpers' + 0xc7, // STORE_FAST 7 + 0x1c,0x2b, // IMPORT_FROM 'key_image' + 0xc8, // STORE_FAST 8 + 0x1c,0x2c, // IMPORT_FROM 'monero' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x12,0x46, // LOAD_GLOBAL 'bytearray' + 0x22,0x80,0x60, // LOAD_CONST_SMALL_INT 96 + 0x34,0x01, // CALL_FUNCTION 1 + 0xca, // STORE_FAST 10 + 0x12,0x47, // LOAD_GLOBAL 'memoryview' + 0xba, // LOAD_FAST 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcb, // STORE_FAST 11 + 0xb2, // LOAD_FAST 2 + 0x14,0x2e, // LOAD_METHOD 'report' + 0x22,0x87,0x68, // LOAD_CONST_SMALL_INT 1000 + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'current_output' + 0xf4, // BINARY_OP 29 __mul__ + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x22,0x87,0x68, // LOAD_CONST_SMALL_INT 1000 + 0xf8, // BINARY_OP 33 __mod__ + 0x12,0x48, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'current_output' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x2f, // LOAD_ATTR 'current_output' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x2f, // STORE_ATTR 'current_output' + 0xb7, // LOAD_FAST 7 + 0x14,0x30, // LOAD_METHOD 'decodepoint' + 0xb1, // LOAD_FAST 1 + 0x13,0x31, // LOAD_ATTR 'out_key' + 0x36,0x01, // CALL_METHOD 1 + 0xcc, // STORE_FAST 12 + 0xb7, // LOAD_FAST 7 + 0x14,0x30, // LOAD_METHOD 'decodepoint' + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'recv_deriv' + 0x36,0x01, // CALL_METHOD 1 + 0xcd, // STORE_FAST 13 + 0xb1, // LOAD_FAST 1 + 0x13,0x33, // LOAD_ATTR 'sub_addr_major' + 0xb1, // LOAD_FAST 1 + 0x13,0x34, // LOAD_ATTR 'sub_addr_minor' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xce, // STORE_FAST 14 + 0xb9, // LOAD_FAST 9 + 0x14,0x35, // LOAD_METHOD 'generate_tx_spend_and_key_image' + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'creds' + 0xbc, // LOAD_FAST 12 + 0xbd, // LOAD_FAST 13 + 0xb1, // LOAD_FAST 1 + 0x13,0x36, // LOAD_ATTR 'real_out_idx' + 0xbe, // LOAD_FAST 14 + 0x36,0x05, // CALL_METHOD 5 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xcf, // STORE_FAST 15 + 0x26,0x10, // STORE_FAST_N 16 + 0xb7, // LOAD_FAST 7 + 0x14,0x37, // LOAD_METHOD 'encodepoint' + 0x24,0x10, // LOAD_FAST_N 16 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x11, // STORE_FAST_N 17 + 0xb8, // LOAD_FAST 8 + 0x14,0x38, // LOAD_METHOD 'generate_ring_signature' + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x10, // LOAD_FAST_N 16 + 0xbc, // LOAD_FAST 12 + 0x2b,0x01, // BUILD_LIST 1 + 0xbf, // LOAD_FAST 15 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x50, // LOAD_CONST_FALSE + 0x36,0x06, // CALL_METHOD 6 + 0x26,0x12, // STORE_FAST_N 18 + 0x28,0x0f, // DELETE_FAST 15 + 0x24,0x11, // LOAD_FAST_N 17 + 0xba, // LOAD_FAST 10 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0xb6, // LOAD_FAST 6 + 0x14,0x39, // LOAD_METHOD 'encodeint_into' + 0xbb, // LOAD_FAST 11 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x24,0x12, // LOAD_FAST_N 18 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x39, // LOAD_METHOD 'encodeint_into' + 0xbb, // LOAD_FAST 11 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x24,0x12, // LOAD_FAST_N 18 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'misc' + 0x14,0x3a, // LOAD_METHOD 'compute_enc_key_host' + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'creds' + 0x13,0x3b, // LOAD_ATTR 'view_key_private' + 0xb1, // LOAD_FAST 1 + 0x13,0x31, // LOAD_ATTR 'out_key' + 0x36,0x02, // CALL_METHOD 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0x26,0x13, // STORE_FAST_N 19 + 0x26,0x14, // STORE_FAST_N 20 + 0xb5, // LOAD_FAST 5 + 0x14,0x3c, // LOAD_METHOD 'encrypt_pack' + 0x24,0x13, // LOAD_FAST_N 19 + 0xba, // LOAD_FAST 10 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x15, // STORE_FAST_N 21 + 0xb4, // LOAD_FAST 4 + 0x10,0x3d, // LOAD_CONST_STRING 'salt' + 0x24,0x14, // LOAD_FAST_N 20 + 0x10,0x2b, // LOAD_CONST_STRING 'key_image' + 0x24,0x15, // LOAD_FAST_N 21 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_live_refresh__refresh_step = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_live_refresh__refresh_step, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 299, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 30, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_monero_live_refresh__refresh_step + 7, + .line_info_top = fun_data_apps_monero_live_refresh__refresh_step + 32, + .opcodes = fun_data_apps_monero_live_refresh__refresh_step + 32, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_live_refresh__lt_module_gt_[] = { + &raw_code_apps_monero_live_refresh_live_refresh, + &raw_code_apps_monero_live_refresh_LiveRefreshState, + &raw_code_apps_monero_live_refresh__init_step, + &raw_code_apps_monero_live_refresh__refresh_step, +}; + +static const mp_raw_code_t raw_code_apps_monero_live_refresh__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_live_refresh__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 75, + #endif + .children = (void *)&children_apps_monero_live_refresh__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_live_refresh__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_live_refresh__lt_module_gt_ + 14, + .opcodes = fun_data_apps_monero_live_refresh__lt_module_gt_ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_live_refresh[74] = { + MP_QSTR_apps_slash_monero_slash_live_refresh_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_auto_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_layout, + MP_QSTR_misc, + MP_QSTR_apps_dot_monero, + MP_QSTR_LiveRefreshState, + MP_QSTR_live_refresh, + MP_QSTR_gc, + MP_QSTR_MessageType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_MoneroLiveRefreshFinalAck, + MP_QSTR_MoneroLiveRefreshStepRequest, + MP_QSTR_trezor_dot_messages, + MP_QSTR_call_any, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_monero_live_refresh_progress, + MP_QSTR_MoneroLiveRefreshFinalRequest, + MP_QSTR_is_type_of, + MP_QSTR_collect, + MP_QSTR__init_step, + MP_QSTR_storage_dot_cache, + MP_QSTR_cache, + MP_QSTR_MoneroLiveRefreshStartAck, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_validate_path, + MP_QSTR_address_n, + MP_QSTR_get, + MP_QSTR_APP_MONERO_LIVE_REFRESH, + MP_QSTR_require_confirm_live_refresh, + MP_QSTR_set, + MP_QSTR_get_creds, + MP_QSTR_network_type, + MP_QSTR_creds, + MP_QSTR__refresh_step, + MP_QSTR_log, + MP_QSTR_trezor, + MP_QSTR_MoneroLiveRefreshStepAck, + MP_QSTR_chacha_poly, + MP_QSTR_crypto, + MP_QSTR_crypto_helpers, + MP_QSTR_key_image, + MP_QSTR_monero, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_report, + MP_QSTR_current_output, + MP_QSTR_decodepoint, + MP_QSTR_out_key, + MP_QSTR_recv_deriv, + MP_QSTR_sub_addr_major, + MP_QSTR_sub_addr_minor, + MP_QSTR_generate_tx_spend_and_key_image, + MP_QSTR_real_out_idx, + MP_QSTR_encodepoint, + MP_QSTR_generate_ring_signature, + MP_QSTR_encodeint_into, + MP_QSTR_compute_enc_key_host, + MP_QSTR_view_key_private, + MP_QSTR_encrypt_pack, + MP_QSTR_salt, + MP_QSTR___init__, + MP_QSTR___name__, + MP_QSTR_msg, + MP_QSTR_keychain, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_s, + MP_QSTR_progress, + MP_QSTR_bytearray, + MP_QSTR_memoryview, + MP_QSTR_str, + MP_QSTR_self, +}; + +// constants +static const mp_obj_str_t const_obj_apps_monero_live_refresh_0 = {{&mp_type_bytes}, 46500, 1, (const byte*)"\x01"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_live_refresh[1] = { + MP_ROM_PTR(&const_obj_apps_monero_live_refresh_0), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_live_refresh = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_live_refresh, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_live_refresh, + }, + .rc = &raw_code_apps_monero_live_refresh__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_misc +// - original source file: build/firmware/src/apps/monero/misc.mpy +// - frozen file name: apps/monero/misc.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/misc.py, scope apps_monero_misc__lt_module_gt_ +static const byte fun_data_apps_monero_misc__lt_module_gt_[24] = { + 0x00,0x10, // prelude + 0x01, // names: + 0x40,0x80,0x0a,0x84,0x0f,0x84,0x10, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'get_creds' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0b, // STORE_NAME 'compute_tx_key' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x12, // STORE_NAME 'compute_enc_key_host' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_misc__lt_module_gt_ +// frozen bytecode for file apps/monero/misc.py, scope apps_monero_misc_get_creds +static const byte fun_data_apps_monero_misc_get_creds[72] = { + 0x7b,0x18, // prelude + 0x02,0x16,0x17,0x18, // names: get_creds, keychain, address_n, network_type + 0x80,0x0f,0x2b,0x4b,0x47,0x26,0x4c,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'monero' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x03, // IMPORT_FROM 'monero' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'AccountCreds' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'apps.monero.xmr.credentials' + 0x1c,0x05, // IMPORT_FROM 'AccountCreds' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x07, // LOAD_METHOD 'derive' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x14,0x08, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0xc6, // STORE_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x14,0x09, // LOAD_METHOD 'generate_monero_keys' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x30,0x04, // UNPACK_SEQUENCE 4 + 0xc7, // STORE_FAST 7 + 0xc8, // STORE_FAST 8 + 0xc9, // STORE_FAST 9 + 0xc8, // STORE_FAST 8 + 0xb4, // LOAD_FAST 4 + 0x14,0x0a, // LOAD_METHOD 'new_wallet' + 0xb9, // LOAD_FAST 9 + 0xb7, // LOAD_FAST 7 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_misc_get_creds = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_misc_get_creds, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_monero_misc_get_creds + 6, + .line_info_top = fun_data_apps_monero_misc_get_creds + 14, + .opcodes = fun_data_apps_monero_misc_get_creds + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_misc__lt_module_gt_ +// frozen bytecode for file apps/monero/misc.py, scope apps_monero_misc_compute_tx_key +static const byte fun_data_apps_monero_misc_compute_tx_key[64] = { + 0xe8,0x04,0x18, // prelude + 0x0b,0x19,0x1a,0x1b,0x1c, // names: compute_tx_key, spend_key_private, tx_prefix_hash, salt, rand_mult_num + 0x80,0x21,0x50,0x29,0x23,0x4b,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'crypto' + 0x10,0x0d, // LOAD_CONST_STRING 'crypto_helpers' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x04, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x0c, // IMPORT_FROM 'crypto' + 0xc4, // STORE_FAST 4 + 0x1c,0x0d, // IMPORT_FROM 'crypto_helpers' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x0e, // LOAD_METHOD 'sc_add_into' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x14,0x0f, // LOAD_METHOD 'keccak_2hash' + 0xb5, // LOAD_FAST 5 + 0x14,0x10, // LOAD_METHOD 'encodeint' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0xb1, // LOAD_FAST 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xc7, // STORE_FAST 7 + 0xb5, // LOAD_FAST 5 + 0x14,0x11, // LOAD_METHOD 'compute_hmac' + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_misc_compute_tx_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_misc_compute_tx_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 64, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_apps_monero_misc_compute_tx_key + 8, + .line_info_top = fun_data_apps_monero_misc_compute_tx_key + 15, + .opcodes = fun_data_apps_monero_misc_compute_tx_key + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_misc__lt_module_gt_ +// frozen bytecode for file apps/monero/misc.py, scope apps_monero_misc_compute_enc_key_host +static const byte fun_data_apps_monero_misc_compute_enc_key_host[69] = { + 0x5a,0x16, // prelude + 0x12,0x1d,0x1a, // names: compute_enc_key_host, view_key_private, tx_prefix_hash + 0x80,0x2e,0x4b,0x4b,0x27,0x23,0x4b,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'random' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x13, // IMPORT_FROM 'random' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'crypto_helpers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x0d, // IMPORT_FROM 'crypto_helpers' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x15, // LOAD_METHOD 'bytes' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x14,0x0f, // LOAD_METHOD 'keccak_2hash' + 0xb3, // LOAD_FAST 3 + 0x14,0x10, // LOAD_METHOD 'encodeint' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xb1, // LOAD_FAST 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x14,0x11, // LOAD_METHOD 'compute_hmac' + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_misc_compute_enc_key_host = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_misc_compute_enc_key_host, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 69, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_monero_misc_compute_enc_key_host + 5, + .line_info_top = fun_data_apps_monero_misc_compute_enc_key_host + 13, + .opcodes = fun_data_apps_monero_misc_compute_enc_key_host + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_misc__lt_module_gt_[] = { + &raw_code_apps_monero_misc_get_creds, + &raw_code_apps_monero_misc_compute_tx_key, + &raw_code_apps_monero_misc_compute_enc_key_host, +}; + +static const mp_raw_code_t raw_code_apps_monero_misc__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_misc__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = (void *)&children_apps_monero_misc__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_misc__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_misc__lt_module_gt_ + 10, + .opcodes = fun_data_apps_monero_misc__lt_module_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_misc[30] = { + MP_QSTR_apps_slash_monero_slash_misc_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_get_creds, + MP_QSTR_monero, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_AccountCreds, + MP_QSTR_apps_dot_monero_dot_xmr_dot_credentials, + MP_QSTR_derive, + MP_QSTR_private_key, + MP_QSTR_generate_monero_keys, + MP_QSTR_new_wallet, + MP_QSTR_compute_tx_key, + MP_QSTR_crypto, + MP_QSTR_crypto_helpers, + MP_QSTR_sc_add_into, + MP_QSTR_keccak_2hash, + MP_QSTR_encodeint, + MP_QSTR_compute_hmac, + MP_QSTR_compute_enc_key_host, + MP_QSTR_random, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_bytes, + MP_QSTR_keychain, + MP_QSTR_address_n, + MP_QSTR_network_type, + MP_QSTR_spend_key_private, + MP_QSTR_tx_prefix_hash, + MP_QSTR_salt, + MP_QSTR_rand_mult_num, + MP_QSTR_view_key_private, +}; + +static const mp_frozen_module_t frozen_module_apps_monero_misc = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_misc, + .obj_table = NULL, + }, + .rc = &raw_code_apps_monero_misc__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_sign_tx +// - original source file: build/firmware/src/apps/monero/sign_tx.mpy +// - frozen file name: apps/monero/sign_tx.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/sign_tx.py, scope apps_monero_sign_tx__lt_module_gt_ +static const byte fun_data_apps_monero_sign_tx__lt_module_gt_[52] = { + 0x08,0x10, // prelude + 0x01, // names: + 0x40,0x2c,0x4c,0x80,0x07,0x8c,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'auto_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x02, // IMPORT_FROM 'auto_keychain' + 0x16,0x02, // STORE_NAME 'auto_keychain' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'MoneroTransactionProgress' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'apps.monero.layout' + 0x1c,0x04, // IMPORT_FROM 'MoneroTransactionProgress' + 0x16,0x04, // STORE_NAME 'MoneroTransactionProgress' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'auto_keychain' + 0x11,0x45, // LOAD_NAME '__name__' + 0x34,0x01, // CALL_FUNCTION 1 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x06, // STORE_NAME 'sign_tx' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x17, // STORE_NAME '_sign_tx_dispatch' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/monero/sign_tx.py, scope apps_monero_sign_tx_sign_tx +static const byte fun_data_apps_monero_sign_tx_sign_tx[181] = { + 0x8a,0x50,0x34, // prelude + 0x06,0x46,0x47, // names: sign_tx, received_msg, keychain + 0x80,0x0e,0x45,0x30,0x4b,0x4b,0x24,0x26,0x65,0x20,0x20,0x40,0x26,0x53,0x6f,0x25,0x42,0x24,0x2a,0x24,0x47,0x4d,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x07, // IMPORT_NAME 'gc' + 0xc2, // STORE_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'log' + 0x10,0x09, // LOAD_CONST_STRING 'utils' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0a, // IMPORT_NAME 'trezor' + 0x1c,0x08, // IMPORT_FROM 'log' + 0xc3, // STORE_FAST 3 + 0x1c,0x09, // IMPORT_FROM 'utils' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'get_context' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x0b, // IMPORT_FROM 'get_context' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'State' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'apps.monero.signing.state' + 0x1c,0x0d, // IMPORT_FROM 'State' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc7, // STORE_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x14,0x0f, // LOAD_METHOD 'unimport_begin' + 0x36,0x00, // CALL_METHOD 0 + 0xc8, // STORE_FAST 8 + 0x12,0x04, // LOAD_GLOBAL 'MoneroTransactionProgress' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc9, // STORE_FAST 9 + 0xb2, // LOAD_FAST 2 + 0x14,0x10, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x11, // LOAD_METHOD 'threshold' + 0xb2, // LOAD_FAST 2 + 0x14,0x12, // LOAD_METHOD 'mem_free' + 0x36,0x00, // CALL_METHOD 0 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xf6, // BINARY_OP 31 __floordiv__ + 0xb2, // LOAD_FAST 2 + 0x14,0x13, // LOAD_METHOD 'mem_alloc' + 0x36,0x00, // CALL_METHOD 0 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x17, // LOAD_GLOBAL '_sign_tx_dispatch' + 0xb7, // LOAD_FAST 7 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb9, // LOAD_FAST 9 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xca, // STORE_FAST 10 + 0xcb, // STORE_FAST 11 + 0xbb, // LOAD_FAST 11 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x66, // JUMP 38 + 0xb5, // LOAD_FAST 5 + 0x34,0x00, // CALL_FUNCTION 0 + 0xcc, // STORE_FAST 12 + 0xbc, // LOAD_FAST 12 + 0x14,0x14, // LOAD_METHOD 'write' + 0xba, // LOAD_FAST 10 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x28,0x0a, // DELETE_FAST 10 + 0x28,0x00, // DELETE_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x14,0x15, // LOAD_METHOD 'unimport_end' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xbc, // LOAD_FAST 12 + 0x14,0x16, // LOAD_METHOD 'read' + 0xbb, // LOAD_FAST 11 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc0, // STORE_FAST 0 + 0x42,0xab,0x7f, // JUMP -85 + 0xb4, // LOAD_FAST 4 + 0x14,0x15, // LOAD_METHOD 'unimport_end' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xba, // LOAD_FAST 10 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_sign_tx_sign_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_sign_tx_sign_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 181, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_monero_sign_tx_sign_tx + 6, + .line_info_top = fun_data_apps_monero_sign_tx_sign_tx + 29, + .opcodes = fun_data_apps_monero_sign_tx_sign_tx + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/monero/sign_tx.py, scope apps_monero_sign_tx__sign_tx_dispatch +static const byte fun_data_apps_monero_sign_tx__sign_tx_dispatch[470] = { + 0xf0,0x54,0x92,0x02, // prelude + 0x17,0x48,0x49,0x47,0x4a, // names: _sign_tx_dispatch, state, msg, keychain, progress + 0x80,0x35,0x2b,0x4b,0x44,0x27,0x4b,0x20,0x24,0x50,0x68,0x27,0x4b,0x20,0x2a,0x20,0x23,0x68,0x20,0x27,0x4b,0x20,0x24,0x4f,0x20,0x23,0x68,0x20,0x27,0x4b,0x20,0x27,0x68,0x27,0x4b,0x28,0x2e,0x42,0x20,0x6b,0x20,0x23,0x68,0x20,0x27,0x4c,0x20,0x28,0x68,0x27,0x4c,0x20,0x45,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x66,0x20,0x23,0x68,0x20,0x27,0x4c,0x6b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x18, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor' + 0x1c,0x18, // IMPORT_FROM 'wire' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x19, // LOAD_CONST_STRING 'MessageType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1a, // IMPORT_NAME 'trezor.enums' + 0x1c,0x19, // IMPORT_FROM 'MessageType' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'MESSAGE_WIRE_TYPE' + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x13,0x1c, // LOAD_ATTR 'MoneroTransactionInitRequest' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x67, // POP_JUMP_IF_FALSE 39 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1d, // LOAD_CONST_STRING 'step_01_init_transaction' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME 'apps.monero.signing' + 0x1c,0x1d, // IMPORT_FROM 'step_01_init_transaction' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x1f, // LOAD_METHOD 'init_transaction' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x20, // LOAD_ATTR 'address_n' + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'network_type' + 0xb1, // LOAD_FAST 1 + 0x13,0x22, // LOAD_ATTR 'tsx_data' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x06, // CALL_METHOD 6 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xb5, // LOAD_FAST 5 + 0x13,0x23, // LOAD_ATTR 'MoneroTransactionSetInputRequest' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x13,0x23, // LOAD_ATTR 'MoneroTransactionSetInputRequest' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x24, // LOAD_CONST_STRING 'step_02_set_input' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME 'apps.monero.signing' + 0x1c,0x24, // IMPORT_FROM 'step_02_set_input' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x25, // LOAD_METHOD 'set_input' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x26, // LOAD_ATTR 'src_entr' + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0xb5, // LOAD_FAST 5 + 0x13,0x23, // LOAD_ATTR 'MoneroTransactionSetInputRequest' + 0xb5, // LOAD_FAST 5 + 0x13,0x27, // LOAD_ATTR 'MoneroTransactionInputViniRequest' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x13,0x27, // LOAD_ATTR 'MoneroTransactionInputViniRequest' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x69, // POP_JUMP_IF_FALSE 41 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x28, // LOAD_CONST_STRING 'step_04_input_vini' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME 'apps.monero.signing' + 0x1c,0x28, // IMPORT_FROM 'step_04_input_vini' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x14,0x29, // LOAD_METHOD 'input_vini' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x26, // LOAD_ATTR 'src_entr' + 0xb1, // LOAD_FAST 1 + 0x13,0x2a, // LOAD_ATTR 'vini' + 0xb1, // LOAD_FAST 1 + 0x13,0x2b, // LOAD_ATTR 'vini_hmac' + 0xb1, // LOAD_FAST 1 + 0x13,0x2c, // LOAD_ATTR 'orig_idx' + 0xb3, // LOAD_FAST 3 + 0x36,0x06, // CALL_METHOD 6 + 0xb5, // LOAD_FAST 5 + 0x13,0x27, // LOAD_ATTR 'MoneroTransactionInputViniRequest' + 0xb5, // LOAD_FAST 5 + 0x13,0x2d, // LOAD_ATTR 'MoneroTransactionAllInputsSetRequest' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x13,0x2d, // LOAD_ATTR 'MoneroTransactionAllInputsSetRequest' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2e, // LOAD_CONST_STRING 'step_05_all_inputs_set' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME 'apps.monero.signing' + 0x1c,0x2e, // IMPORT_FROM 'step_05_all_inputs_set' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0xba, // LOAD_FAST 10 + 0x14,0x2f, // LOAD_METHOD 'all_inputs_set' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0xb5, // LOAD_FAST 5 + 0x13,0x30, // LOAD_ATTR 'MoneroTransactionSetOutputRequest' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x13,0x30, // LOAD_ATTR 'MoneroTransactionSetOutputRequest' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x79, // POP_JUMP_IF_FALSE 57 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x31, // LOAD_CONST_STRING 'step_06_set_output' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME 'apps.monero.signing' + 0x1c,0x31, // IMPORT_FROM 'step_06_set_output' + 0xcb, // STORE_FAST 11 + 0x59, // POP_TOP + 0x12,0x4b, // LOAD_GLOBAL 'bool' + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'is_offloaded_bp' + 0x34,0x01, // CALL_FUNCTION 1 + 0xcc, // STORE_FAST 12 + 0xb1, // LOAD_FAST 1 + 0x13,0x33, // LOAD_ATTR 'dst_entr' + 0xb1, // LOAD_FAST 1 + 0x13,0x34, // LOAD_ATTR 'dst_entr_hmac' + 0xb1, // LOAD_FAST 1 + 0x13,0x35, // LOAD_ATTR 'rsig_data' + 0x5b, // ROT_THREE + 0x5a, // ROT_TWO + 0xcd, // STORE_FAST 13 + 0xce, // STORE_FAST 14 + 0xcf, // STORE_FAST 15 + 0x28,0x01, // DELETE_FAST 1 + 0xbb, // LOAD_FAST 11 + 0x14,0x36, // LOAD_METHOD 'set_output' + 0xb0, // LOAD_FAST 0 + 0xbd, // LOAD_FAST 13 + 0xbe, // LOAD_FAST 14 + 0xbf, // LOAD_FAST 15 + 0xbc, // LOAD_FAST 12 + 0xb3, // LOAD_FAST 3 + 0x36,0x06, // CALL_METHOD 6 + 0xb5, // LOAD_FAST 5 + 0x13,0x30, // LOAD_ATTR 'MoneroTransactionSetOutputRequest' + 0xb5, // LOAD_FAST 5 + 0x13,0x37, // LOAD_ATTR 'MoneroTransactionAllOutSetRequest' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x13,0x37, // LOAD_ATTR 'MoneroTransactionAllOutSetRequest' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x38, // LOAD_CONST_STRING 'step_07_all_outputs_set' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME 'apps.monero.signing' + 0x1c,0x38, // IMPORT_FROM 'step_07_all_outputs_set' + 0x26,0x10, // STORE_FAST_N 16 + 0x59, // POP_TOP + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x39, // LOAD_METHOD 'all_outputs_set' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0xb5, // LOAD_FAST 5 + 0x13,0x3a, // LOAD_ATTR 'MoneroTransactionSignInputRequest' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x13,0x3a, // LOAD_ATTR 'MoneroTransactionSignInputRequest' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x77, // POP_JUMP_IF_FALSE 55 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3b, // LOAD_CONST_STRING 'step_09_sign_input' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME 'apps.monero.signing' + 0x1c,0x3b, // IMPORT_FROM 'step_09_sign_input' + 0x26,0x11, // STORE_FAST_N 17 + 0x59, // POP_TOP + 0x24,0x11, // LOAD_FAST_N 17 + 0x14,0x3c, // LOAD_METHOD 'sign_input' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x26, // LOAD_ATTR 'src_entr' + 0xb1, // LOAD_FAST 1 + 0x13,0x2a, // LOAD_ATTR 'vini' + 0xb1, // LOAD_FAST 1 + 0x13,0x2b, // LOAD_ATTR 'vini_hmac' + 0xb1, // LOAD_FAST 1 + 0x13,0x3d, // LOAD_ATTR 'pseudo_out' + 0xb1, // LOAD_FAST 1 + 0x13,0x3e, // LOAD_ATTR 'pseudo_out_hmac' + 0xb1, // LOAD_FAST 1 + 0x13,0x3f, // LOAD_ATTR 'pseudo_out_alpha' + 0xb1, // LOAD_FAST 1 + 0x13,0x40, // LOAD_ATTR 'spend_key' + 0xb1, // LOAD_FAST 1 + 0x13,0x2c, // LOAD_ATTR 'orig_idx' + 0xb3, // LOAD_FAST 3 + 0x36,0x0a, // CALL_METHOD 10 + 0xb5, // LOAD_FAST 5 + 0x13,0x3a, // LOAD_ATTR 'MoneroTransactionSignInputRequest' + 0xb5, // LOAD_FAST 5 + 0x13,0x41, // LOAD_ATTR 'MoneroTransactionFinalRequest' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x13,0x41, // LOAD_ATTR 'MoneroTransactionFinalRequest' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x42, // LOAD_CONST_STRING 'step_10_sign_final' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME 'apps.monero.signing' + 0x1c,0x42, // IMPORT_FROM 'step_10_sign_final' + 0x26,0x12, // STORE_FAST_N 18 + 0x59, // POP_TOP + 0x24,0x12, // LOAD_FAST_N 18 + 0x14,0x43, // LOAD_METHOD 'final_msg' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0xb4, // LOAD_FAST 4 + 0x14,0x44, // LOAD_METHOD 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_sign_tx__sign_tx_dispatch = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_sign_tx__sign_tx_dispatch, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 470, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 31, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_monero_sign_tx__sign_tx_dispatch + 9, + .line_info_top = fun_data_apps_monero_sign_tx__sign_tx_dispatch + 77, + .opcodes = fun_data_apps_monero_sign_tx__sign_tx_dispatch + 77, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_sign_tx__lt_module_gt_[] = { + &raw_code_apps_monero_sign_tx_sign_tx, + &raw_code_apps_monero_sign_tx__sign_tx_dispatch, +}; + +static const mp_raw_code_t raw_code_apps_monero_sign_tx__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_sign_tx__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 52, + #endif + .children = (void *)&children_apps_monero_sign_tx__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_sign_tx__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_sign_tx__lt_module_gt_ + 10, + .opcodes = fun_data_apps_monero_sign_tx__lt_module_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_sign_tx[76] = { + MP_QSTR_apps_slash_monero_slash_sign_tx_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_auto_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_MoneroTransactionProgress, + MP_QSTR_apps_dot_monero_dot_layout, + MP_QSTR_sign_tx, + MP_QSTR_gc, + MP_QSTR_log, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_get_context, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_State, + MP_QSTR_apps_dot_monero_dot_signing_dot_state, + MP_QSTR_unimport_begin, + MP_QSTR_collect, + MP_QSTR_threshold, + MP_QSTR_mem_free, + MP_QSTR_mem_alloc, + MP_QSTR_write, + MP_QSTR_unimport_end, + MP_QSTR_read, + MP_QSTR__sign_tx_dispatch, + MP_QSTR_wire, + MP_QSTR_MessageType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_MESSAGE_WIRE_TYPE, + MP_QSTR_MoneroTransactionInitRequest, + MP_QSTR_step_01_init_transaction, + MP_QSTR_apps_dot_monero_dot_signing, + MP_QSTR_init_transaction, + MP_QSTR_address_n, + MP_QSTR_network_type, + MP_QSTR_tsx_data, + MP_QSTR_MoneroTransactionSetInputRequest, + MP_QSTR_step_02_set_input, + MP_QSTR_set_input, + MP_QSTR_src_entr, + MP_QSTR_MoneroTransactionInputViniRequest, + MP_QSTR_step_04_input_vini, + MP_QSTR_input_vini, + MP_QSTR_vini, + MP_QSTR_vini_hmac, + MP_QSTR_orig_idx, + MP_QSTR_MoneroTransactionAllInputsSetRequest, + MP_QSTR_step_05_all_inputs_set, + MP_QSTR_all_inputs_set, + MP_QSTR_MoneroTransactionSetOutputRequest, + MP_QSTR_step_06_set_output, + MP_QSTR_is_offloaded_bp, + MP_QSTR_dst_entr, + MP_QSTR_dst_entr_hmac, + MP_QSTR_rsig_data, + MP_QSTR_set_output, + MP_QSTR_MoneroTransactionAllOutSetRequest, + MP_QSTR_step_07_all_outputs_set, + MP_QSTR_all_outputs_set, + MP_QSTR_MoneroTransactionSignInputRequest, + MP_QSTR_step_09_sign_input, + MP_QSTR_sign_input, + MP_QSTR_pseudo_out, + MP_QSTR_pseudo_out_hmac, + MP_QSTR_pseudo_out_alpha, + MP_QSTR_spend_key, + MP_QSTR_MoneroTransactionFinalRequest, + MP_QSTR_step_10_sign_final, + MP_QSTR_final_msg, + MP_QSTR_DataError, + MP_QSTR___name__, + MP_QSTR_received_msg, + MP_QSTR_keychain, + MP_QSTR_state, + MP_QSTR_msg, + MP_QSTR_progress, + MP_QSTR_bool, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_sign_tx[1] = { + MP_ROM_QSTR(MP_QSTR_Unknown_space_message), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_sign_tx = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_sign_tx, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_sign_tx, + }, + .rc = &raw_code_apps_monero_sign_tx__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_signing___init__ +// - original source file: build/firmware/src/apps/monero/signing/__init__.mpy +// - frozen file name: apps/monero/signing/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/signing/__init__.py, scope apps_monero_signing___init____lt_module_gt_ +static const byte fun_data_apps_monero_signing___init____lt_module_gt_[66] = { + 0x18,0x10, // prelude + 0x01, // names: + 0x6c,0x6b,0x20,0x6b,0x20,0x6b,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.wire' + 0x1c,0x02, // IMPORT_FROM 'DataError' + 0x16,0x02, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x04, // LOAD_CONST_STRING 'Error' + 0x11,0x02, // LOAD_NAME 'DataError' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x04, // STORE_NAME 'Error' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x05, // LOAD_CONST_STRING 'ChangeAddressError' + 0x11,0x02, // LOAD_NAME 'DataError' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x05, // STORE_NAME 'ChangeAddressError' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x02, // MAKE_FUNCTION 2 + 0x10,0x06, // LOAD_CONST_STRING 'NotEnoughOutputsError' + 0x11,0x02, // LOAD_NAME 'DataError' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x06, // STORE_NAME 'NotEnoughOutputsError' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x03, // MAKE_FUNCTION 3 + 0x10,0x07, // LOAD_CONST_STRING 'RctType' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x07, // STORE_NAME 'RctType' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_signing___init____lt_module_gt_ +// frozen bytecode for file apps/monero/signing/__init__.py, scope apps_monero_signing___init___Error +static const byte fun_data_apps_monero_signing___init___Error[15] = { + 0x00,0x06, // prelude + 0x04, // names: Error + 0x68,0x20, // code info + 0x11,0x08, // LOAD_NAME '__name__' + 0x16,0x09, // STORE_NAME '__module__' + 0x10,0x04, // LOAD_CONST_STRING 'Error' + 0x16,0x0a, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing___init___Error = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_signing___init___Error, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_monero_signing___init___Error + 3, + .line_info_top = fun_data_apps_monero_signing___init___Error + 5, + .opcodes = fun_data_apps_monero_signing___init___Error + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing___init____lt_module_gt_ +// frozen bytecode for file apps/monero/signing/__init__.py, scope apps_monero_signing___init___ChangeAddressError +static const byte fun_data_apps_monero_signing___init___ChangeAddressError[15] = { + 0x00,0x06, // prelude + 0x05, // names: ChangeAddressError + 0x88,0x08, // code info + 0x11,0x08, // LOAD_NAME '__name__' + 0x16,0x09, // STORE_NAME '__module__' + 0x10,0x05, // LOAD_CONST_STRING 'ChangeAddressError' + 0x16,0x0a, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing___init___ChangeAddressError = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_signing___init___ChangeAddressError, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_monero_signing___init___ChangeAddressError + 3, + .line_info_top = fun_data_apps_monero_signing___init___ChangeAddressError + 5, + .opcodes = fun_data_apps_monero_signing___init___ChangeAddressError + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing___init____lt_module_gt_ +// frozen bytecode for file apps/monero/signing/__init__.py, scope apps_monero_signing___init___NotEnoughOutputsError +static const byte fun_data_apps_monero_signing___init___NotEnoughOutputsError[15] = { + 0x00,0x06, // prelude + 0x06, // names: NotEnoughOutputsError + 0x88,0x0c, // code info + 0x11,0x08, // LOAD_NAME '__name__' + 0x16,0x09, // STORE_NAME '__module__' + 0x10,0x06, // LOAD_CONST_STRING 'NotEnoughOutputsError' + 0x16,0x0a, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing___init___NotEnoughOutputsError = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_signing___init___NotEnoughOutputsError, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_monero_signing___init___NotEnoughOutputsError + 3, + .line_info_top = fun_data_apps_monero_signing___init___NotEnoughOutputsError + 5, + .opcodes = fun_data_apps_monero_signing___init___NotEnoughOutputsError + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing___init____lt_module_gt_ +// frozen bytecode for file apps/monero/signing/__init__.py, scope apps_monero_signing___init___RctType +static const byte fun_data_apps_monero_signing___init___RctType[20] = { + 0x00,0x0a, // prelude + 0x07, // names: RctType + 0x88,0x10,0x60,0x40, // code info + 0x11,0x08, // LOAD_NAME '__name__' + 0x16,0x09, // STORE_NAME '__module__' + 0x10,0x07, // LOAD_CONST_STRING 'RctType' + 0x16,0x0a, // STORE_NAME '__qualname__' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x16,0x0b, // STORE_NAME 'RCTTypeBulletproofPlus' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing___init___RctType = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_signing___init___RctType, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_monero_signing___init___RctType + 3, + .line_info_top = fun_data_apps_monero_signing___init___RctType + 7, + .opcodes = fun_data_apps_monero_signing___init___RctType + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_signing___init____lt_module_gt_[] = { + &raw_code_apps_monero_signing___init___Error, + &raw_code_apps_monero_signing___init___ChangeAddressError, + &raw_code_apps_monero_signing___init___NotEnoughOutputsError, + &raw_code_apps_monero_signing___init___RctType, +}; + +static const mp_raw_code_t raw_code_apps_monero_signing___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_signing___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 66, + #endif + .children = (void *)&children_apps_monero_signing___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_signing___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_signing___init____lt_module_gt_ + 10, + .opcodes = fun_data_apps_monero_signing___init____lt_module_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_signing___init__[12] = { + MP_QSTR_apps_slash_monero_slash_signing_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_Error, + MP_QSTR_ChangeAddressError, + MP_QSTR_NotEnoughOutputsError, + MP_QSTR_RctType, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_RCTTypeBulletproofPlus, +}; + +static const mp_frozen_module_t frozen_module_apps_monero_signing___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_signing___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps_monero_signing___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_signing_offloading_keys +// - original source file: build/firmware/src/apps/monero/signing/offloading_keys.mpy +// - frozen file name: apps/monero/signing/offloading_keys.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/signing/offloading_keys.py, scope apps_monero_signing_offloading_keys__lt_module_gt_ +static const byte fun_data_apps_monero_signing_offloading_keys__lt_module_gt_[121] = { + 0x08,0x38, // prelude + 0x01, // names: + 0x6c,0x4c,0x80,0x0a,0x68,0x89,0x26,0x84,0x07,0x84,0x07,0x84,0x07,0x84,0x07,0x84,0x07,0x84,0x07,0x88,0x07,0x84,0x23,0x84,0x13,0x84,0x12, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'compute_hmac' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'apps.monero.xmr.crypto_helpers' + 0x1c,0x04, // IMPORT_FROM 'compute_hmac' + 0x16,0x04, // STORE_NAME 'compute_hmac' + 0x59, // POP_TOP + 0x11,0x23, // LOAD_NAME 'bytearray' + 0x22,0x30, // LOAD_CONST_SMALL_INT 48 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x24, // STORE_NAME '_BUILD_KEY_BUFFER' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x06, // STORE_NAME '_build_key' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0e, // STORE_NAME 'hmac_key_txin' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0f, // STORE_NAME 'hmac_key_txin_comm' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x10, // STORE_NAME '_hmac_key_txdst' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x11, // STORE_NAME '_hmac_key_txout' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x12, // STORE_NAME 'enc_key_txin_alpha' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x13, // STORE_NAME 'enc_key_spend' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x07, // MAKE_FUNCTION_DEFARGS 7 + 0x16,0x14, // STORE_NAME 'key_signature' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x15, // STORE_NAME 'gen_hmac_vini' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x20, // STORE_NAME 'gen_hmac_vouti' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x21, // STORE_NAME 'gen_hmac_tsxdest' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x22, // STORE_NAME 'get_ki_from_vini' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_signing_offloading_keys__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/offloading_keys.py, scope apps_monero_signing_offloading_keys__build_key +static const byte fun_data_apps_monero_signing_offloading_keys__build_key[189] = { + 0x88,0x94,0x01,0x34, // prelude + 0x06,0x25,0x26,0x27,0x28, // names: _build_key, secret, discriminator, index, out + 0x80,0x18,0x60,0x4b,0x4b,0x23,0x2f,0x4f,0x22,0x4b,0x2a,0x4d,0x2f,0x44,0x46,0x22,0x22,0x24,0x32,0x24,0x45, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor' + 0x1c,0x07, // IMPORT_FROM 'utils' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'crypto_helpers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x09, // IMPORT_FROM 'crypto_helpers' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x12,0x24, // LOAD_GLOBAL '_BUILD_KEY_BUFFER' + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x14,0x0b, // LOAD_METHOD 'ensure' + 0x12,0x29, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xd9, // BINARY_OP 2 __eq__ + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x0b, // LOAD_METHOD 'ensure' + 0x12,0x29, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0xda, // BINARY_OP 3 __le__ + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xc7, // STORE_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x14,0x0c, // LOAD_METHOD 'memcpy' + 0xb6, // LOAD_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x05, // CALL_METHOD 5 + 0x59, // POP_TOP + 0x12,0x29, // LOAD_GLOBAL 'len' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x42,0x48, // JUMP 8 + 0x57, // DUP_TOP + 0xc8, // STORE_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0x56, // STORE_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x33, // POP_JUMP_IF_TRUE -13 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x0c, // LOAD_METHOD 'memcpy' + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x29, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x05, // CALL_METHOD 5 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc7, // STORE_FAST 7 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x63, // POP_JUMP_IF_FALSE 35 + 0x52, // LOAD_CONST_TRUE + 0xc9, // STORE_FAST 9 + 0x42,0x5c, // JUMP 28 + 0xb2, // LOAD_FAST 2 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xf1, // BINARY_OP 26 __rshift__ + 0xc9, // STORE_FAST 9 + 0xb2, // LOAD_FAST 2 + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0xef, // BINARY_OP 24 __and__ + 0xb9, // LOAD_FAST 9 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0x42,0x41, // JUMP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xed, // BINARY_OP 22 __or__ + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x56, // STORE_SUBSCR + 0xb7, // LOAD_FAST 7 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc7, // STORE_FAST 7 + 0xb9, // LOAD_FAST 9 + 0xc2, // STORE_FAST 2 + 0xb9, // LOAD_FAST 9 + 0x43,0x21, // POP_JUMP_IF_TRUE -31 + 0xb5, // LOAD_FAST 5 + 0x14,0x0d, // LOAD_METHOD 'keccak_2hash' + 0xb6, // LOAD_FAST 6 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_offloading_keys__build_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_signing_offloading_keys__build_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 189, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_monero_signing_offloading_keys__build_key + 9, + .line_info_top = fun_data_apps_monero_signing_offloading_keys__build_key + 30, + .opcodes = fun_data_apps_monero_signing_offloading_keys__build_key + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_offloading_keys__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/offloading_keys.py, scope apps_monero_signing_offloading_keys_hmac_key_txin +static const byte fun_data_apps_monero_signing_offloading_keys_hmac_key_txin[17] = { + 0x2a,0x0c, // prelude + 0x0e,0x2a,0x2b, // names: hmac_key_txin, key_hmac, idx + 0x80,0x39,0x60, // code info + 0x12,0x06, // LOAD_GLOBAL '_build_key' + 0xb0, // LOAD_FAST 0 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_offloading_keys_hmac_key_txin = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_offloading_keys_hmac_key_txin, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_monero_signing_offloading_keys_hmac_key_txin + 5, + .line_info_top = fun_data_apps_monero_signing_offloading_keys_hmac_key_txin + 8, + .opcodes = fun_data_apps_monero_signing_offloading_keys_hmac_key_txin + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_offloading_keys__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/offloading_keys.py, scope apps_monero_signing_offloading_keys_hmac_key_txin_comm +static const byte fun_data_apps_monero_signing_offloading_keys_hmac_key_txin_comm[17] = { + 0x2a,0x0c, // prelude + 0x0f,0x2a,0x2b, // names: hmac_key_txin_comm, key_hmac, idx + 0x80,0x40,0x60, // code info + 0x12,0x06, // LOAD_GLOBAL '_build_key' + 0xb0, // LOAD_FAST 0 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_offloading_keys_hmac_key_txin_comm = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_offloading_keys_hmac_key_txin_comm, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_monero_signing_offloading_keys_hmac_key_txin_comm + 5, + .line_info_top = fun_data_apps_monero_signing_offloading_keys_hmac_key_txin_comm + 8, + .opcodes = fun_data_apps_monero_signing_offloading_keys_hmac_key_txin_comm + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_offloading_keys__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/offloading_keys.py, scope apps_monero_signing_offloading_keys__hmac_key_txdst +static const byte fun_data_apps_monero_signing_offloading_keys__hmac_key_txdst[17] = { + 0x2a,0x0c, // prelude + 0x10,0x2a,0x2b, // names: _hmac_key_txdst, key_hmac, idx + 0x80,0x47,0x60, // code info + 0x12,0x06, // LOAD_GLOBAL '_build_key' + 0xb0, // LOAD_FAST 0 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_offloading_keys__hmac_key_txdst = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_offloading_keys__hmac_key_txdst, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_monero_signing_offloading_keys__hmac_key_txdst + 5, + .line_info_top = fun_data_apps_monero_signing_offloading_keys__hmac_key_txdst + 8, + .opcodes = fun_data_apps_monero_signing_offloading_keys__hmac_key_txdst + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_offloading_keys__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/offloading_keys.py, scope apps_monero_signing_offloading_keys__hmac_key_txout +static const byte fun_data_apps_monero_signing_offloading_keys__hmac_key_txout[17] = { + 0x2a,0x0c, // prelude + 0x11,0x2a,0x2b, // names: _hmac_key_txout, key_hmac, idx + 0x80,0x4e,0x60, // code info + 0x12,0x06, // LOAD_GLOBAL '_build_key' + 0xb0, // LOAD_FAST 0 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_offloading_keys__hmac_key_txout = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_offloading_keys__hmac_key_txout, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_apps_monero_signing_offloading_keys__hmac_key_txout + 5, + .line_info_top = fun_data_apps_monero_signing_offloading_keys__hmac_key_txout + 8, + .opcodes = fun_data_apps_monero_signing_offloading_keys__hmac_key_txout + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_offloading_keys__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/offloading_keys.py, scope apps_monero_signing_offloading_keys_enc_key_txin_alpha +static const byte fun_data_apps_monero_signing_offloading_keys_enc_key_txin_alpha[17] = { + 0x2a,0x0c, // prelude + 0x12,0x2c,0x2b, // names: enc_key_txin_alpha, key_enc, idx + 0x80,0x55,0x60, // code info + 0x12,0x06, // LOAD_GLOBAL '_build_key' + 0xb0, // LOAD_FAST 0 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_offloading_keys_enc_key_txin_alpha = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_offloading_keys_enc_key_txin_alpha, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_monero_signing_offloading_keys_enc_key_txin_alpha + 5, + .line_info_top = fun_data_apps_monero_signing_offloading_keys_enc_key_txin_alpha + 8, + .opcodes = fun_data_apps_monero_signing_offloading_keys_enc_key_txin_alpha + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_offloading_keys__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/offloading_keys.py, scope apps_monero_signing_offloading_keys_enc_key_spend +static const byte fun_data_apps_monero_signing_offloading_keys_enc_key_spend[17] = { + 0x2a,0x0c, // prelude + 0x13,0x2c,0x2b, // names: enc_key_spend, key_enc, idx + 0x80,0x5c,0x60, // code info + 0x12,0x06, // LOAD_GLOBAL '_build_key' + 0xb0, // LOAD_FAST 0 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_offloading_keys_enc_key_spend = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_offloading_keys_enc_key_spend, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_monero_signing_offloading_keys_enc_key_spend + 5, + .line_info_top = fun_data_apps_monero_signing_offloading_keys_enc_key_spend + 8, + .opcodes = fun_data_apps_monero_signing_offloading_keys_enc_key_spend + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_offloading_keys__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/offloading_keys.py, scope apps_monero_signing_offloading_keys_key_signature +static const byte fun_data_apps_monero_signing_offloading_keys_key_signature[26] = { + 0xb3,0x01,0x0e, // prelude + 0x14,0x2d,0x2b,0x2e, // names: key_signature, master, idx, is_iv + 0x80,0x63,0x60, // code info + 0x12,0x06, // LOAD_GLOBAL '_build_key' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x42,0x42, // JUMP 2 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_offloading_keys_key_signature = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_signing_offloading_keys_key_signature, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 20, + .line_info = fun_data_apps_monero_signing_offloading_keys_key_signature + 7, + .line_info_top = fun_data_apps_monero_signing_offloading_keys_key_signature + 10, + .opcodes = fun_data_apps_monero_signing_offloading_keys_key_signature + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_offloading_keys__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/offloading_keys.py, scope apps_monero_signing_offloading_keys_gen_hmac_vini +static const byte fun_data_apps_monero_signing_offloading_keys_gen_hmac_vini[144] = { + 0xf8,0x04,0x30, // prelude + 0x15,0x2f,0x30,0x31,0x2b, // names: gen_hmac_vini, key, src_entr, vini_bin, idx + 0x80,0x6c,0x80,0x09,0x4b,0x4b,0x24,0x24,0x24,0x2c,0x2c,0x20,0x6c,0x2c,0x24,0x24,0x47,0x27,0x2b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x16, // LOAD_CONST_STRING 'protobuf' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor' + 0x1c,0x16, // IMPORT_FROM 'protobuf' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING 'get_keccak_writer' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME 'apps.monero.xmr.keccak_hasher' + 0x1c,0x17, // IMPORT_FROM 'get_keccak_writer' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc6, // STORE_FAST 6 + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'outputs' + 0xc7, // STORE_FAST 7 + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'real_out_additional_tx_keys' + 0xc8, // STORE_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'outputs' + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'real_output' + 0x55, // LOAD_SUBSCR + 0x2b,0x01, // BUILD_LIST 1 + 0xb1, // LOAD_FAST 1 + 0x18,0x19, // STORE_ATTR 'outputs' + 0xb8, // LOAD_FAST 8 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x12,0x29, // LOAD_GLOBAL 'len' + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'real_out_additional_tx_keys' + 0xb1, // LOAD_FAST 1 + 0x13,0x1c, // LOAD_ATTR 'real_output_in_tx_index' + 0x55, // LOAD_SUBSCR + 0x2b,0x01, // BUILD_LIST 1 + 0xb1, // LOAD_FAST 1 + 0x18,0x1a, // STORE_ATTR 'real_out_additional_tx_keys' + 0xb6, // LOAD_FAST 6 + 0x14,0x1d, // LOAD_METHOD 'write' + 0xb4, // LOAD_FAST 4 + 0x14,0x1e, // LOAD_METHOD 'dump_message_buffer' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0xb1, // LOAD_FAST 1 + 0x18,0x19, // STORE_ATTR 'outputs' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x18,0x1a, // STORE_ATTR 'real_out_additional_tx_keys' + 0xb6, // LOAD_FAST 6 + 0x14,0x1d, // LOAD_METHOD 'write' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'hmac_key_txin' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc9, // STORE_FAST 9 + 0x12,0x04, // LOAD_GLOBAL 'compute_hmac' + 0xb9, // LOAD_FAST 9 + 0xb6, // LOAD_FAST 6 + 0x14,0x1f, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_offloading_keys_gen_hmac_vini = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_signing_offloading_keys_gen_hmac_vini, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 144, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_monero_signing_offloading_keys_gen_hmac_vini + 8, + .line_info_top = fun_data_apps_monero_signing_offloading_keys_gen_hmac_vini + 27, + .opcodes = fun_data_apps_monero_signing_offloading_keys_gen_hmac_vini + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_offloading_keys__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/offloading_keys.py, scope apps_monero_signing_offloading_keys_gen_hmac_vouti +static const byte fun_data_apps_monero_signing_offloading_keys_gen_hmac_vouti[83] = { + 0xe8,0x04,0x1e, // prelude + 0x20,0x2f,0x32,0x33,0x2b, // names: gen_hmac_vouti, key, dst_entr, tx_out_bin, idx + 0x80,0x8f,0x60,0x4b,0x4b,0x24,0x2c,0x47,0x27,0x2b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x16, // LOAD_CONST_STRING 'protobuf' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor' + 0x1c,0x16, // IMPORT_FROM 'protobuf' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING 'get_keccak_writer' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME 'apps.monero.xmr.keccak_hasher' + 0x1c,0x17, // IMPORT_FROM 'get_keccak_writer' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x14,0x1d, // LOAD_METHOD 'write' + 0xb4, // LOAD_FAST 4 + 0x14,0x1e, // LOAD_METHOD 'dump_message_buffer' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x1d, // LOAD_METHOD 'write' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x11, // LOAD_GLOBAL '_hmac_key_txout' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc7, // STORE_FAST 7 + 0x12,0x04, // LOAD_GLOBAL 'compute_hmac' + 0xb7, // LOAD_FAST 7 + 0xb6, // LOAD_FAST 6 + 0x14,0x1f, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_offloading_keys_gen_hmac_vouti = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_signing_offloading_keys_gen_hmac_vouti, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 83, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_monero_signing_offloading_keys_gen_hmac_vouti + 8, + .line_info_top = fun_data_apps_monero_signing_offloading_keys_gen_hmac_vouti + 18, + .opcodes = fun_data_apps_monero_signing_offloading_keys_gen_hmac_vouti + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_offloading_keys__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/offloading_keys.py, scope apps_monero_signing_offloading_keys_gen_hmac_tsxdest +static const byte fun_data_apps_monero_signing_offloading_keys_gen_hmac_tsxdest[73] = { + 0x63,0x1a, // prelude + 0x21,0x2f,0x32,0x2b, // names: gen_hmac_tsxdest, key, dst_entr, idx + 0x80,0xa2,0x60,0x4b,0x4b,0x24,0x4c,0x27,0x2b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x16, // LOAD_CONST_STRING 'protobuf' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor' + 0x1c,0x16, // IMPORT_FROM 'protobuf' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING 'get_keccak_writer' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME 'apps.monero.xmr.keccak_hasher' + 0x1c,0x17, // IMPORT_FROM 'get_keccak_writer' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x14,0x1d, // LOAD_METHOD 'write' + 0xb3, // LOAD_FAST 3 + 0x14,0x1e, // LOAD_METHOD 'dump_message_buffer' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL '_hmac_key_txdst' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc6, // STORE_FAST 6 + 0x12,0x04, // LOAD_GLOBAL 'compute_hmac' + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x14,0x1f, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_offloading_keys_gen_hmac_tsxdest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_signing_offloading_keys_gen_hmac_tsxdest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 73, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_monero_signing_offloading_keys_gen_hmac_tsxdest + 6, + .line_info_top = fun_data_apps_monero_signing_offloading_keys_gen_hmac_tsxdest + 15, + .opcodes = fun_data_apps_monero_signing_offloading_keys_gen_hmac_tsxdest + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_offloading_keys__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/offloading_keys.py, scope apps_monero_signing_offloading_keys_get_ki_from_vini +static const byte fun_data_apps_monero_signing_offloading_keys_get_ki_from_vini[20] = { + 0x21,0x0c, // prelude + 0x22,0x31, // names: get_ki_from_vini, vini_bin + 0x80,0xb2,0x60,0x20, // code info + 0x12,0x34, // LOAD_GLOBAL 'bytes' + 0xb0, // LOAD_FAST 0 + 0x22,0x60, // LOAD_CONST_SMALL_INT -32 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_offloading_keys_get_ki_from_vini = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_signing_offloading_keys_get_ki_from_vini, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_apps_monero_signing_offloading_keys_get_ki_from_vini + 4, + .line_info_top = fun_data_apps_monero_signing_offloading_keys_get_ki_from_vini + 8, + .opcodes = fun_data_apps_monero_signing_offloading_keys_get_ki_from_vini + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_signing_offloading_keys__lt_module_gt_[] = { + &raw_code_apps_monero_signing_offloading_keys__build_key, + &raw_code_apps_monero_signing_offloading_keys_hmac_key_txin, + &raw_code_apps_monero_signing_offloading_keys_hmac_key_txin_comm, + &raw_code_apps_monero_signing_offloading_keys__hmac_key_txdst, + &raw_code_apps_monero_signing_offloading_keys__hmac_key_txout, + &raw_code_apps_monero_signing_offloading_keys_enc_key_txin_alpha, + &raw_code_apps_monero_signing_offloading_keys_enc_key_spend, + &raw_code_apps_monero_signing_offloading_keys_key_signature, + &raw_code_apps_monero_signing_offloading_keys_gen_hmac_vini, + &raw_code_apps_monero_signing_offloading_keys_gen_hmac_vouti, + &raw_code_apps_monero_signing_offloading_keys_gen_hmac_tsxdest, + &raw_code_apps_monero_signing_offloading_keys_get_ki_from_vini, +}; + +static const mp_raw_code_t raw_code_apps_monero_signing_offloading_keys__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_signing_offloading_keys__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 121, + #endif + .children = (void *)&children_apps_monero_signing_offloading_keys__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 12, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_signing_offloading_keys__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_signing_offloading_keys__lt_module_gt_ + 30, + .opcodes = fun_data_apps_monero_signing_offloading_keys__lt_module_gt_ + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_signing_offloading_keys[53] = { + MP_QSTR_apps_slash_monero_slash_signing_slash_offloading_keys_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_compute_hmac, + MP_QSTR_apps_dot_monero_dot_xmr_dot_crypto_helpers, + MP_QSTR__build_key, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_crypto_helpers, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_ensure, + MP_QSTR_memcpy, + MP_QSTR_keccak_2hash, + MP_QSTR_hmac_key_txin, + MP_QSTR_hmac_key_txin_comm, + MP_QSTR__hmac_key_txdst, + MP_QSTR__hmac_key_txout, + MP_QSTR_enc_key_txin_alpha, + MP_QSTR_enc_key_spend, + MP_QSTR_key_signature, + MP_QSTR_gen_hmac_vini, + MP_QSTR_protobuf, + MP_QSTR_get_keccak_writer, + MP_QSTR_apps_dot_monero_dot_xmr_dot_keccak_hasher, + MP_QSTR_outputs, + MP_QSTR_real_out_additional_tx_keys, + MP_QSTR_real_output, + MP_QSTR_real_output_in_tx_index, + MP_QSTR_write, + MP_QSTR_dump_message_buffer, + MP_QSTR_get_digest, + MP_QSTR_gen_hmac_vouti, + MP_QSTR_gen_hmac_tsxdest, + MP_QSTR_get_ki_from_vini, + MP_QSTR_bytearray, + MP_QSTR__BUILD_KEY_BUFFER, + MP_QSTR_secret, + MP_QSTR_discriminator, + MP_QSTR_index, + MP_QSTR_out, + MP_QSTR_len, + MP_QSTR_key_hmac, + MP_QSTR_idx, + MP_QSTR_key_enc, + MP_QSTR_master, + MP_QSTR_is_iv, + MP_QSTR_key, + MP_QSTR_src_entr, + MP_QSTR_vini_bin, + MP_QSTR_dst_entr, + MP_QSTR_tx_out_bin, + MP_QSTR_bytes, +}; + +// constants +static const mp_obj_str_t const_obj_apps_monero_signing_offloading_keys_2 = {{&mp_type_bytes}, 30894, 4, (const byte*)"\x74\x78\x69\x6e"}; +static const mp_obj_str_t const_obj_apps_monero_signing_offloading_keys_3 = {{&mp_type_bytes}, 41295, 9, (const byte*)"\x74\x78\x69\x6e\x2d\x63\x6f\x6d\x6d"}; +static const mp_obj_str_t const_obj_apps_monero_signing_offloading_keys_4 = {{&mp_type_bytes}, 10927, 6, (const byte*)"\x74\x78\x64\x65\x73\x74"}; +static const mp_obj_str_t const_obj_apps_monero_signing_offloading_keys_5 = {{&mp_type_bytes}, 47143, 5, (const byte*)"\x74\x78\x6f\x75\x74"}; +static const mp_obj_str_t const_obj_apps_monero_signing_offloading_keys_6 = {{&mp_type_bytes}, 63575, 10, (const byte*)"\x74\x78\x69\x6e\x2d\x61\x6c\x70\x68\x61"}; +static const mp_obj_str_t const_obj_apps_monero_signing_offloading_keys_7 = {{&mp_type_bytes}, 32271, 10, (const byte*)"\x74\x78\x69\x6e\x2d\x73\x70\x65\x6e\x64"}; +static const mp_obj_str_t const_obj_apps_monero_signing_offloading_keys_8 = {{&mp_type_bytes}, 58794, 6, (const byte*)"\x73\x69\x67\x2d\x69\x76"}; +static const mp_obj_str_t const_obj_apps_monero_signing_offloading_keys_9 = {{&mp_type_bytes}, 46498, 7, (const byte*)"\x73\x69\x67\x2d\x6b\x65\x79"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_signing_offloading_keys[10] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_key_space_length), + MP_ROM_QSTR(MP_QSTR_Disc_space_too_space_long), + MP_ROM_PTR(&const_obj_apps_monero_signing_offloading_keys_2), + MP_ROM_PTR(&const_obj_apps_monero_signing_offloading_keys_3), + MP_ROM_PTR(&const_obj_apps_monero_signing_offloading_keys_4), + MP_ROM_PTR(&const_obj_apps_monero_signing_offloading_keys_5), + MP_ROM_PTR(&const_obj_apps_monero_signing_offloading_keys_6), + MP_ROM_PTR(&const_obj_apps_monero_signing_offloading_keys_7), + MP_ROM_PTR(&const_obj_apps_monero_signing_offloading_keys_8), + MP_ROM_PTR(&const_obj_apps_monero_signing_offloading_keys_9), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_signing_offloading_keys = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_signing_offloading_keys, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_signing_offloading_keys, + }, + .rc = &raw_code_apps_monero_signing_offloading_keys__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_signing_state +// - original source file: build/firmware/src/apps/monero/signing/state.mpy +// - frozen file name: apps/monero/signing/state.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/signing/state.py, scope apps_monero_signing_state__lt_module_gt_ +static const byte fun_data_apps_monero_signing_state__lt_module_gt_[17] = { + 0x10,0x08, // prelude + 0x01, // names: + 0x40,0x80,0x09, // code info + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x02, // LOAD_CONST_STRING 'State' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x02, // STORE_NAME 'State' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_signing_state__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/state.py, scope apps_monero_signing_state_State +static const byte fun_data_apps_monero_signing_state_State[76] = { + 0x08,0x1c, // prelude + 0x02, // names: State + 0x88,0x0d,0x23,0x25,0x25,0x25,0x25,0x25,0x45,0x84,0x6f,0x89,0x10, // code info + 0x11,0x3b, // LOAD_NAME '__name__' + 0x16,0x3c, // STORE_NAME '__module__' + 0x10,0x02, // LOAD_CONST_STRING 'State' + 0x16,0x3d, // STORE_NAME '__qualname__' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x2e, // STORE_NAME 'STEP_INIT' + 0x22,0x80,0x64, // LOAD_CONST_SMALL_INT 100 + 0x16,0x3e, // STORE_NAME 'STEP_INP' + 0x22,0x82,0x2c, // LOAD_CONST_SMALL_INT 300 + 0x16,0x3f, // STORE_NAME 'STEP_VINI' + 0x22,0x82,0x5e, // LOAD_CONST_SMALL_INT 350 + 0x16,0x40, // STORE_NAME 'STEP_ALL_IN' + 0x22,0x83,0x10, // LOAD_CONST_SMALL_INT 400 + 0x16,0x41, // STORE_NAME 'STEP_OUT' + 0x22,0x83,0x74, // LOAD_CONST_SMALL_INT 500 + 0x16,0x42, // STORE_NAME 'STEP_ALL_OUT' + 0x22,0x84,0x58, // LOAD_CONST_SMALL_INT 600 + 0x16,0x43, // STORE_NAME 'STEP_SIGN' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x03, // STORE_NAME '__init__' + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x34, // STORE_NAME 'mem_trace' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x39, // STORE_NAME 'change_address' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_signing_state_State +// frozen bytecode for file apps/monero/signing/state.py, scope apps_monero_signing_state_State___init__ +static const byte fun_data_apps_monero_signing_state_State___init__[275] = { + 0x31,0x6e, // prelude + 0x03,0x44, // names: __init__, self + 0x80,0x16,0x2b,0x2b,0x8b,0x07,0x64,0x24,0x44,0x80,0x08,0x24,0x44,0x60,0x20,0x64,0x24,0x44,0x24,0x24,0x24,0x44,0x24,0x24,0x64,0x64,0x25,0x65,0x24,0x24,0x64,0x44,0x24,0x64,0x45,0x45,0x65,0x45,0x64,0x49,0x49,0x65,0x64,0x64,0x64,0x46,0x60,0x40,0x26,0x44,0x60,0x40,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'crypto' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x04, // IMPORT_FROM 'crypto' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'KeccakXmrArchive' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'apps.monero.xmr.keccak_hasher' + 0x1c,0x06, // IMPORT_FROM 'KeccakXmrArchive' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'PreMlsagHasher' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'apps.monero.xmr.mlsag_hasher' + 0x1c,0x08, // IMPORT_FROM 'PreMlsagHasher' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x0a, // STORE_ATTR 'creds' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x0b, // STORE_ATTR 'key_hmac' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x0c, // STORE_ATTR 'key_enc' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x0d, // STORE_ATTR 'tx_priv' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x0e, // STORE_ATTR 'tx_pub' + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x0f, // STORE_ATTR 'need_additional_txkeys' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x10, // STORE_ATTR 'client_version' + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0xb0, // LOAD_FAST 0 + 0x18,0x11, // STORE_ATTR 'hard_fork' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x12, // STORE_ATTR 'input_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x13, // STORE_ATTR 'output_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x14, // STORE_ATTR 'progress_total' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x15, // STORE_ATTR 'progress_cur' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x16, // STORE_ATTR 'output_change' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x17, // STORE_ATTR 'fee' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x18, // STORE_ATTR 'tx_type' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x19, // STORE_ATTR 'account_idx' + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x1a, // STORE_ATTR 'additional_tx_private_keys' + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x1b, // STORE_ATTR 'additional_tx_public_keys' + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0xb0, // LOAD_FAST 0 + 0x18,0x1c, // STORE_ATTR 'current_input_index' + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0xb0, // LOAD_FAST 0 + 0x18,0x1d, // STORE_ATTR 'current_output_index' + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x1e, // STORE_ATTR 'is_processing_offloaded' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x1f, // STORE_ATTR 'input_last_amount' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x20, // STORE_ATTR 'summary_inputs_money' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x21, // STORE_ATTR 'summary_outs_money' + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x22, // STORE_ATTR 'output_pk_commitments' + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x23, // STORE_ATTR 'output_amounts' + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x24, // STORE_ATTR 'output_masks' + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x25, // STORE_ATTR 'rsig_grouping' + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x26, // STORE_ATTR 'rsig_offload' + 0xb1, // LOAD_FAST 1 + 0x14,0x27, // LOAD_METHOD 'Scalar' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x28, // STORE_ATTR 'sumpouts_alphas' + 0xb1, // LOAD_FAST 1 + 0x14,0x27, // LOAD_METHOD 'Scalar' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x29, // STORE_ATTR 'sumout' + 0x2c,0x00, // BUILD_MAP 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x2a, // STORE_ATTR 'subaddresses' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x2b, // STORE_ATTR 'extra_nonce' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x2c, // STORE_ATTR 'last_ki' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x2d, // STORE_ATTR 'opening_key' + 0xb0, // LOAD_FAST 0 + 0x13,0x2e, // LOAD_ATTR 'STEP_INIT' + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'last_step' + 0xb2, // LOAD_FAST 2 + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x30, // STORE_ATTR 'tx_prefix_hasher' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x31, // STORE_ATTR 'tx_prefix_hash' + 0xb3, // LOAD_FAST 3 + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x32, // STORE_ATTR 'full_message_hasher' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x33, // STORE_ATTR 'full_message' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_state_State___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_signing_state_State___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 275, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 3, + .line_info = fun_data_apps_monero_signing_state_State___init__ + 4, + .line_info_top = fun_data_apps_monero_signing_state_State___init__ + 57, + .opcodes = fun_data_apps_monero_signing_state_State___init__ + 57, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_state_State +// frozen bytecode for file apps/monero/signing/state.py, scope apps_monero_signing_state_State_mem_trace +static const byte fun_data_apps_monero_signing_state_State_mem_trace[42] = { + 0xb3,0x80,0x01,0x16, // prelude + 0x34,0x44,0x45,0x38, // names: mem_trace, self, x, collect + 0x80,0x85,0x45,0x4b,0x80,0x08,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x35, // IMPORT_NAME 'gc' + 0xc3, // STORE_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x36, // LOAD_CONST_STRING 'log' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x37, // IMPORT_NAME 'trezor' + 0x1c,0x36, // IMPORT_FROM 'log' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x14,0x38, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_state_State_mem_trace = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_signing_state_State_mem_trace, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 52, + .line_info = fun_data_apps_monero_signing_state_State_mem_trace + 8, + .line_info_top = fun_data_apps_monero_signing_state_State_mem_trace + 15, + .opcodes = fun_data_apps_monero_signing_state_State_mem_trace + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_state_State +// frozen bytecode for file apps/monero/signing/state.py, scope apps_monero_signing_state_State_change_address +static const byte fun_data_apps_monero_signing_state_State_change_address[19] = { + 0x09,0x08, // prelude + 0x39,0x44, // names: change_address, self + 0x80,0x95, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'output_change' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'output_change' + 0x13,0x3a, // LOAD_ATTR 'addr' + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_state_State_change_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_signing_state_State_change_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 57, + .line_info = fun_data_apps_monero_signing_state_State_change_address + 4, + .line_info_top = fun_data_apps_monero_signing_state_State_change_address + 6, + .opcodes = fun_data_apps_monero_signing_state_State_change_address + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_signing_state_State[] = { + &raw_code_apps_monero_signing_state_State___init__, + &raw_code_apps_monero_signing_state_State_mem_trace, + &raw_code_apps_monero_signing_state_State_change_address, +}; + +static const mp_raw_code_t raw_code_apps_monero_signing_state_State = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_signing_state_State, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 76, + #endif + .children = (void *)&children_apps_monero_signing_state_State, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_monero_signing_state_State + 3, + .line_info_top = fun_data_apps_monero_signing_state_State + 16, + .opcodes = fun_data_apps_monero_signing_state_State + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_signing_state__lt_module_gt_[] = { + &raw_code_apps_monero_signing_state_State, +}; + +static const mp_raw_code_t raw_code_apps_monero_signing_state__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_signing_state__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = (void *)&children_apps_monero_signing_state__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_signing_state__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_signing_state__lt_module_gt_ + 6, + .opcodes = fun_data_apps_monero_signing_state__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_signing_state[70] = { + MP_QSTR_apps_slash_monero_slash_signing_slash_state_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_State, + MP_QSTR___init__, + MP_QSTR_crypto, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_KeccakXmrArchive, + MP_QSTR_apps_dot_monero_dot_xmr_dot_keccak_hasher, + MP_QSTR_PreMlsagHasher, + MP_QSTR_apps_dot_monero_dot_xmr_dot_mlsag_hasher, + MP_QSTR_creds, + MP_QSTR_key_hmac, + MP_QSTR_key_enc, + MP_QSTR_tx_priv, + MP_QSTR_tx_pub, + MP_QSTR_need_additional_txkeys, + MP_QSTR_client_version, + MP_QSTR_hard_fork, + MP_QSTR_input_count, + MP_QSTR_output_count, + MP_QSTR_progress_total, + MP_QSTR_progress_cur, + MP_QSTR_output_change, + MP_QSTR_fee, + MP_QSTR_tx_type, + MP_QSTR_account_idx, + MP_QSTR_additional_tx_private_keys, + MP_QSTR_additional_tx_public_keys, + MP_QSTR_current_input_index, + MP_QSTR_current_output_index, + MP_QSTR_is_processing_offloaded, + MP_QSTR_input_last_amount, + MP_QSTR_summary_inputs_money, + MP_QSTR_summary_outs_money, + MP_QSTR_output_pk_commitments, + MP_QSTR_output_amounts, + MP_QSTR_output_masks, + MP_QSTR_rsig_grouping, + MP_QSTR_rsig_offload, + MP_QSTR_Scalar, + MP_QSTR_sumpouts_alphas, + MP_QSTR_sumout, + MP_QSTR_subaddresses, + MP_QSTR_extra_nonce, + MP_QSTR_last_ki, + MP_QSTR_opening_key, + MP_QSTR_STEP_INIT, + MP_QSTR_last_step, + MP_QSTR_tx_prefix_hasher, + MP_QSTR_tx_prefix_hash, + MP_QSTR_full_message_hasher, + MP_QSTR_full_message, + MP_QSTR_mem_trace, + MP_QSTR_gc, + MP_QSTR_log, + MP_QSTR_trezor, + MP_QSTR_collect, + MP_QSTR_change_address, + MP_QSTR_addr, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_STEP_INP, + MP_QSTR_STEP_VINI, + MP_QSTR_STEP_ALL_IN, + MP_QSTR_STEP_OUT, + MP_QSTR_STEP_ALL_OUT, + MP_QSTR_STEP_SIGN, + MP_QSTR_self, + MP_QSTR_x, +}; + +static const mp_frozen_module_t frozen_module_apps_monero_signing_state = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_signing_state, + .obj_table = NULL, + }, + .rc = &raw_code_apps_monero_signing_state__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_signing_step_01_init_transaction +// - original source file: build/firmware/src/apps/monero/signing/step_01_init_transaction.mpy +// - frozen file name: apps/monero/signing/step_01_init_transaction.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/signing/step_01_init_transaction.py, scope apps_monero_signing_step_01_init_transaction__lt_module_gt_ +static const byte fun_data_apps_monero_signing_step_01_init_transaction__lt_module_gt_[104] = { + 0x18,0x2e, // prelude + 0x01, // names: + 0x80,0x07,0x2c,0x58,0x80,0x0d,0x84,0x70,0x84,0x31,0x84,0x0f,0x84,0x28,0x84,0x31,0x84,0x13,0x84,0x38,0x89,0x2e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'signing' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.monero' + 0x1c,0x02, // IMPORT_FROM 'signing' + 0x16,0x02, // STORE_NAME 'signing' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'crypto' + 0x10,0x05, // LOAD_CONST_STRING 'crypto_helpers' + 0x10,0x06, // LOAD_CONST_STRING 'monero' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x07, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x04, // IMPORT_FROM 'crypto' + 0x16,0x04, // STORE_NAME 'crypto' + 0x1c,0x05, // IMPORT_FROM 'crypto_helpers' + 0x16,0x05, // STORE_NAME 'crypto_helpers' + 0x1c,0x06, // IMPORT_FROM 'monero' + 0x16,0x06, // STORE_NAME 'monero' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x08, // STORE_NAME 'init_transaction' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x40, // STORE_NAME '_check_subaddresses' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x48, // STORE_NAME '_get_primary_change_address' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x4f, // STORE_NAME '_check_rsig_data' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x56, // STORE_NAME '_check_change' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x5e, // STORE_NAME '_compute_sec_keys' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x69, // STORE_NAME '_process_payment_id' + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x07, // MAKE_FUNCTION_DEFARGS 7 + 0x16,0x6c, // STORE_NAME '_get_key_for_payment_id_encryption' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x6e, // STORE_NAME '_encrypt_payment_id' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_signing_step_01_init_transaction__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_01_init_transaction.py, scope apps_monero_signing_step_01_init_transaction_init_transaction +static const byte fun_data_apps_monero_signing_step_01_init_transaction_init_transaction[590] = { + 0xca,0x54,0x90,0x02, // prelude + 0x08,0x73,0x74,0x21,0x75,0x76,0x77, // names: init_transaction, state, address_n, network_type, tsx_data, keychain, progress + 0x80,0x1f,0x45,0x2b,0x30,0x4b,0x24,0x44,0x4b,0x2b,0x29,0x27,0x47,0x30,0x29,0x2d,0x45,0x26,0x28,0x20,0x2e,0x64,0x65,0x6c,0x26,0x26,0x26,0x65,0x26,0x26,0x26,0x26,0x25,0x26,0x27,0x67,0x67,0x20,0x27,0x49,0x29,0x67,0x27,0x27,0x66,0x29,0x2b,0x2b,0x66,0x28,0x6e,0x6d,0x40,0x24,0x4f,0x66,0x40,0x23,0x28,0x2d,0x27,0x4f,0x45,0x52,0x50, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x09, // IMPORT_NAME 'gc' + 0xc6, // STORE_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'apps.common' + 0x1c,0x0a, // IMPORT_FROM 'paths' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'layout' + 0x10,0x0d, // LOAD_CONST_STRING 'misc' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x03, // IMPORT_NAME 'apps.monero' + 0x1c,0x0c, // IMPORT_FROM 'layout' + 0xc8, // STORE_FAST 8 + 0x1c,0x0d, // IMPORT_FROM 'misc' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'offloading_keys' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'apps.monero.signing' + 0x1c,0x0e, // IMPORT_FROM 'offloading_keys' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'mem_trace' + 0xcb, // STORE_FAST 11 + 0xb3, // LOAD_FAST 3 + 0x13,0x11, // LOAD_ATTR 'outputs' + 0xcc, // STORE_FAST 12 + 0xb7, // LOAD_FAST 7 + 0x14,0x12, // LOAD_METHOD 'validate_path' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x14,0x13, // LOAD_METHOD 'get_creds' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x14, // STORE_ATTR 'creds' + 0xb3, // LOAD_FAST 3 + 0x13,0x15, // LOAD_ATTR 'client_version' + 0x45,0x01, // JUMP_IF_TRUE_OR_POP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x15, // STORE_ATTR 'client_version' + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'client_version' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x78, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'fee' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'fee' + 0x42,0x41, // JUMP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x16, // STORE_ATTR 'fee' + 0x12,0x04, // LOAD_GLOBAL 'crypto' + 0x14,0x17, // LOAD_METHOD 'random_scalar' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x18, // STORE_ATTR 'tx_priv' + 0x12,0x04, // LOAD_GLOBAL 'crypto' + 0x14,0x19, // LOAD_METHOD 'scalarmult_base_into' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'tx_priv' + 0x36,0x02, // CALL_METHOD 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x1a, // STORE_ATTR 'tx_pub' + 0xbb, // LOAD_FAST 11 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x13,0x1b, // LOAD_ATTR 'num_inputs' + 0xb0, // LOAD_FAST 0 + 0x18,0x1c, // STORE_ATTR 'input_count' + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xbc, // LOAD_FAST 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x1d, // STORE_ATTR 'output_count' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'input_count' + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'output_count' + 0xf2, // BINARY_OP 27 __add__ + 0xb0, // LOAD_FAST 0 + 0x18,0x1e, // STORE_ATTR 'progress_total' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x1f, // STORE_ATTR 'progress_cur' + 0xb8, // LOAD_FAST 8 + 0x14,0x20, // LOAD_METHOD 'require_confirm_transaction' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'creds' + 0x13,0x21, // LOAD_ATTR 'network_type' + 0xb5, // LOAD_FAST 5 + 0x36,0x04, // CALL_METHOD 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'creds' + 0x18,0x22, // STORE_ATTR 'address' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'creds' + 0x18,0x21, // STORE_ATTR 'network_type' + 0xb6, // LOAD_FAST 6 + 0x14,0x23, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x13,0x24, // LOAD_ATTR 'change_dts' + 0xb0, // LOAD_FAST 0 + 0x18,0x25, // STORE_ATTR 'output_change' + 0xb3, // LOAD_FAST 3 + 0x13,0x16, // LOAD_ATTR 'fee' + 0xb0, // LOAD_FAST 0 + 0x18,0x16, // STORE_ATTR 'fee' + 0xb3, // LOAD_FAST 3 + 0x13,0x26, // LOAD_ATTR 'account' + 0xb0, // LOAD_FAST 0 + 0x18,0x27, // STORE_ATTR 'account_idx' + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'STEP_INIT' + 0xb0, // LOAD_FAST 0 + 0x18,0x29, // STORE_ATTR 'last_step' + 0xb3, // LOAD_FAST 3 + 0x13,0x2a, // LOAD_ATTR 'hard_fork' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x13,0x2a, // LOAD_ATTR 'hard_fork' + 0xb0, // LOAD_FAST 0 + 0x18,0x2a, // STORE_ATTR 'hard_fork' + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'hard_fork' + 0x8d, // LOAD_CONST_SMALL_INT 13 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x78, // LOAD_GLOBAL 'ValueError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x56, // LOAD_GLOBAL '_check_change' + 0xb0, // LOAD_FAST 0 + 0xbc, // LOAD_FAST 12 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'output_count' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x02, // LOAD_GLOBAL 'signing' + 0x14,0x2b, // LOAD_METHOD 'NotEnoughOutputsError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x12,0x4f, // LOAD_GLOBAL '_check_rsig_data' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x13,0x2c, // LOAD_ATTR 'rsig_data' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x40, // LOAD_GLOBAL '_check_subaddresses' + 0xb0, // LOAD_FAST 0 + 0xbc, // LOAD_FAST 12 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x69, // LOAD_GLOBAL '_process_payment_id' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x5e, // LOAD_GLOBAL '_compute_sec_keys' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x23, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR 'tx_prefix_hasher' + 0x14,0x2e, // LOAD_METHOD 'uvarint' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR 'tx_prefix_hasher' + 0x14,0x2e, // LOAD_METHOD 'uvarint' + 0xb3, // LOAD_FAST 3 + 0x13,0x2f, // LOAD_ATTR 'unlock_time' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x2d, // LOAD_ATTR 'tx_prefix_hasher' + 0x14,0x2e, // LOAD_METHOD 'uvarint' + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'input_count' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'full_message_hasher' + 0x14,0x31, // LOAD_METHOD 'init' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'full_message_hasher' + 0x14,0x32, // LOAD_METHOD 'set_type_fee' + 0xb0, // LOAD_FAST 0 + 0x13,0x33, // LOAD_ATTR 'tx_type' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'fee' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x13,0x26, // LOAD_ATTR 'account' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0xb3, // LOAD_FAST 3 + 0x13,0x34, // LOAD_ATTR 'minor_indices' + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x06, // LOAD_GLOBAL 'monero' + 0x14,0x35, // LOAD_METHOD 'compute_subaddresses' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'creds' + 0xb3, // LOAD_FAST 3 + 0x13,0x26, // LOAD_ATTR 'account' + 0xb3, // LOAD_FAST 3 + 0x13,0x34, // LOAD_ATTR 'minor_indices' + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'subaddresses' + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x2b,0x00, // BUILD_LIST 0 + 0xcd, // STORE_FAST 13 + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'output_count' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x5e, // JUMP 30 + 0x57, // DUP_TOP + 0xce, // STORE_FAST 14 + 0xba, // LOAD_FAST 10 + 0x14,0x37, // LOAD_METHOD 'gen_hmac_tsxdest' + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'key_hmac' + 0xbc, // LOAD_FAST 12 + 0xbe, // LOAD_FAST 14 + 0x55, // LOAD_SUBSCR + 0xbe, // LOAD_FAST 14 + 0x36,0x03, // CALL_METHOD 3 + 0xcf, // STORE_FAST 15 + 0xbd, // LOAD_FAST 13 + 0x14,0x39, // LOAD_METHOD 'append' + 0xbf, // LOAD_FAST 15 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x23, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x1d, // POP_JUMP_IF_TRUE -35 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3a, // LOAD_CONST_STRING 'MoneroTransactionInitAck' + 0x10,0x3b, // LOAD_CONST_STRING 'MoneroTransactionRsigData' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x3c, // IMPORT_NAME 'trezor.messages' + 0x1c,0x3a, // IMPORT_FROM 'MoneroTransactionInitAck' + 0x26,0x10, // STORE_FAST_N 16 + 0x1c,0x3b, // IMPORT_FROM 'MoneroTransactionRsigData' + 0x26,0x11, // STORE_FAST_N 17 + 0x59, // POP_TOP + 0x24,0x11, // LOAD_FAST_N 17 + 0x10,0x3d, // LOAD_CONST_STRING 'offload_type' + 0x12,0x7a, // LOAD_GLOBAL 'int' + 0xb0, // LOAD_FAST 0 + 0x13,0x3e, // LOAD_ATTR 'rsig_offload' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x26,0x12, // STORE_FAST_N 18 + 0x24,0x10, // LOAD_FAST_N 16 + 0x10,0x3f, // LOAD_CONST_STRING 'hmacs' + 0xbd, // LOAD_FAST 13 + 0x10,0x2c, // LOAD_CONST_STRING 'rsig_data' + 0x24,0x12, // LOAD_FAST_N 18 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_01_init_transaction_init_transaction = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 6, + .fun_data = fun_data_apps_monero_signing_step_01_init_transaction_init_transaction, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 590, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 26, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_monero_signing_step_01_init_transaction_init_transaction + 11, + .line_info_top = fun_data_apps_monero_signing_step_01_init_transaction_init_transaction + 76, + .opcodes = fun_data_apps_monero_signing_step_01_init_transaction_init_transaction + 76, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_01_init_transaction__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_01_init_transaction.py, scope apps_monero_signing_step_01_init_transaction__check_subaddresses +static const byte fun_data_apps_monero_signing_step_01_init_transaction__check_subaddresses[103] = { + 0x5a,0x24, // prelude + 0x40,0x73,0x11, // names: _check_subaddresses, state, outputs + 0x80,0x8a,0x80,0x15,0x6b,0x22,0x6c,0x60,0x2a,0x45,0x29,0x68,0x40,0x25,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x41, // LOAD_CONST_STRING 'classify_subaddresses' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x42, // IMPORT_NAME 'apps.monero.xmr.addresses' + 0x1c,0x41, // IMPORT_FROM 'classify_subaddresses' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x14,0x43, // LOAD_METHOD 'change_address' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5b, // POP_JUMP_IF_FALSE 27 + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0x12,0x04, // LOAD_GLOBAL 'crypto' + 0x14,0x44, // LOAD_METHOD 'scalarmult_into' + 0x51, // LOAD_CONST_NONE + 0x12,0x05, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x45, // LOAD_METHOD 'decodepoint' + 0xb5, // LOAD_FAST 5 + 0x13,0x46, // LOAD_ATTR 'spend_public_key' + 0x36,0x01, // CALL_METHOD 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'tx_priv' + 0x36,0x03, // CALL_METHOD 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x1a, // STORE_ATTR 'tx_pub' + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x46,0x08, // JUMP_IF_FALSE_OR_POP 8 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x45,0x03, // JUMP_IF_TRUE_OR_POP 3 + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0xb0, // LOAD_FAST 0 + 0x18,0x47, // STORE_ATTR 'need_additional_txkeys' + 0xb0, // LOAD_FAST 0 + 0x14,0x10, // LOAD_METHOD 'mem_trace' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x52, // LOAD_CONST_TRUE + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_01_init_transaction__check_subaddresses = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_step_01_init_transaction__check_subaddresses, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 103, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_apps_monero_signing_step_01_init_transaction__check_subaddresses + 5, + .line_info_top = fun_data_apps_monero_signing_step_01_init_transaction__check_subaddresses + 20, + .opcodes = fun_data_apps_monero_signing_step_01_init_transaction__check_subaddresses + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_01_init_transaction__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_01_init_transaction.py, scope apps_monero_signing_step_01_init_transaction__get_primary_change_address +static const byte fun_data_apps_monero_signing_step_01_init_transaction__get_primary_change_address[70] = { + 0x51,0x14, // prelude + 0x48,0x73, // names: _get_primary_change_address, state + 0x80,0xb9,0x60,0x4b,0x24,0x54,0x23,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x49, // LOAD_CONST_STRING 'MoneroAccountPublicAddress' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x3c, // IMPORT_NAME 'trezor.messages' + 0x1c,0x49, // IMPORT_FROM 'MoneroAccountPublicAddress' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'monero' + 0x14,0x4a, // LOAD_METHOD 'generate_sub_address_keys' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'creds' + 0x13,0x4b, // LOAD_ATTR 'view_key_private' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'creds' + 0x13,0x4c, // LOAD_ATTR 'spend_key_public' + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'account_idx' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x04, // CALL_METHOD 4 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc2, // STORE_FAST 2 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x10,0x4d, // LOAD_CONST_STRING 'view_public_key' + 0x12,0x05, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x4e, // LOAD_METHOD 'encodepoint' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x46, // LOAD_CONST_STRING 'spend_public_key' + 0x12,0x05, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x4e, // LOAD_METHOD 'encodepoint' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_01_init_transaction__get_primary_change_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_signing_step_01_init_transaction__get_primary_change_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 72, + .line_info = fun_data_apps_monero_signing_step_01_init_transaction__get_primary_change_address + 4, + .line_info_top = fun_data_apps_monero_signing_step_01_init_transaction__get_primary_change_address + 12, + .opcodes = fun_data_apps_monero_signing_step_01_init_transaction__get_primary_change_address + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_01_init_transaction__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_01_init_transaction.py, scope apps_monero_signing_step_01_init_transaction__check_rsig_data +static const byte fun_data_apps_monero_signing_step_01_init_transaction__check_rsig_data[147] = { + 0x4a,0x2e, // prelude + 0x4f,0x73,0x2c, // names: _check_rsig_data, state, rsig_data + 0x80,0xc8,0x80,0x0e,0x46,0x27,0x49,0x29,0x49,0x29,0x27,0x47,0x27,0x64,0x22,0x27,0x2a,0x27,0x26,0x27, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x50, // LOAD_ATTR 'grouping' + 0xb0, // LOAD_FAST 0 + 0x18,0x51, // STORE_ATTR 'rsig_grouping' + 0xb1, // LOAD_FAST 1 + 0x13,0x52, // LOAD_ATTR 'rsig_type' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x78, // LOAD_GLOBAL 'ValueError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x52, // JUMP 18 + 0xb1, // LOAD_FAST 1 + 0x13,0x52, // LOAD_ATTR 'rsig_type' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x78, // LOAD_GLOBAL 'ValueError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x40, // JUMP 0 + 0x12,0x02, // LOAD_GLOBAL 'signing' + 0x13,0x53, // LOAD_ATTR 'RctType' + 0x13,0x54, // LOAD_ATTR 'RCTTypeBulletproofPlus' + 0xb0, // LOAD_FAST 0 + 0x18,0x33, // STORE_ATTR 'tx_type' + 0xb1, // LOAD_FAST 1 + 0x13,0x55, // LOAD_ATTR 'bp_version' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x78, // LOAD_GLOBAL 'ValueError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'output_count' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x3e, // STORE_ATTR 'rsig_offload' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x51, // LOAD_ATTR 'rsig_grouping' + 0x5f, // GET_ITER_STACK + 0x4b,0x18, // FOR_ITER 24 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x78, // LOAD_GLOBAL 'ValueError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0x42,0x26, // JUMP -26 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'output_count' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x78, // LOAD_GLOBAL 'ValueError' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_01_init_transaction__check_rsig_data = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_step_01_init_transaction__check_rsig_data, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 147, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 79, + .line_info = fun_data_apps_monero_signing_step_01_init_transaction__check_rsig_data + 5, + .line_info_top = fun_data_apps_monero_signing_step_01_init_transaction__check_rsig_data + 25, + .opcodes = fun_data_apps_monero_signing_step_01_init_transaction__check_rsig_data + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_01_init_transaction__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_01_init_transaction.py, scope apps_monero_signing_step_01_init_transaction__check_change +static const byte fun_data_apps_monero_signing_step_01_init_transaction__check_change[178] = { + 0x7a,0x34, // prelude + 0x56,0x73,0x11, // names: _check_change, state, outputs + 0x80,0xf2,0x80,0x0e,0x50,0x48,0x46,0x25,0x2d,0x62,0x60,0x37,0x2d,0x42,0x22,0x25,0x29,0x22,0x48,0x23,0x49,0x26,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x57, // LOAD_CONST_STRING 'addr_eq' + 0x10,0x58, // LOAD_CONST_STRING 'get_change_addr_idx' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x42, // IMPORT_NAME 'apps.monero.xmr.addresses' + 0x1c,0x57, // IMPORT_FROM 'addr_eq' + 0xc2, // STORE_FAST 2 + 0x1c,0x58, // IMPORT_FROM 'get_change_addr_idx' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'output_change' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x43, // LOAD_METHOD 'change_address' + 0x36,0x00, // CALL_METHOD 0 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb0, // LOAD_FAST 0 + 0x14,0x10, // LOAD_METHOD 'mem_trace' + 0x42,0x44, // JUMP 4 + 0x10,0x59, // LOAD_CONST_STRING 'No change' + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x61, // POP_JUMP_IF_FALSE 33 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'output_change' + 0x13,0x5a, // LOAD_ATTR 'amount' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb0, // LOAD_FAST 0 + 0x14,0x10, // LOAD_METHOD 'mem_trace' + 0x42,0x44, // JUMP 4 + 0x10,0x5b, // LOAD_CONST_STRING 'Sweep tsx' + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x50, // LOAD_CONST_FALSE + 0xc6, // STORE_FAST 6 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x14, // FOR_ITER 20 + 0xc7, // STORE_FAST 7 + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x13,0x5c, // LOAD_ATTR 'addr' + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x52, // LOAD_CONST_TRUE + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x42,0x42, // JUMP 2 + 0x42,0x2a, // JUMP -22 + 0xb6, // LOAD_FAST 6 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x12,0x02, // LOAD_GLOBAL 'signing' + 0x14,0x5d, // LOAD_METHOD 'ChangeAddressError' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x12,0x48, // LOAD_GLOBAL '_get_primary_change_address' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0xb2, // LOAD_FAST 2 + 0xb8, // LOAD_FAST 8 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x12,0x02, // LOAD_GLOBAL 'signing' + 0x14,0x5d, // LOAD_METHOD 'ChangeAddressError' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_01_init_transaction__check_change = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_step_01_init_transaction__check_change, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 178, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 86, + .line_info = fun_data_apps_monero_signing_step_01_init_transaction__check_change + 5, + .line_info_top = fun_data_apps_monero_signing_step_01_init_transaction__check_change + 28, + .opcodes = fun_data_apps_monero_signing_step_01_init_transaction__check_change + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_01_init_transaction__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_01_init_transaction.py, scope apps_monero_signing_step_01_init_transaction__compute_sec_keys +static const byte fun_data_apps_monero_signing_step_01_init_transaction__compute_sec_keys[122] = { + 0x62,0x1c, // prelude + 0x5e,0x73,0x75, // names: _compute_sec_keys, state, tsx_data + 0x90,0x21,0x60,0x4b,0x4b,0x24,0x2c,0x4f,0x24,0x55,0x2d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x5f, // LOAD_CONST_STRING 'protobuf' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x60, // IMPORT_NAME 'trezor' + 0x1c,0x5f, // IMPORT_FROM 'protobuf' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x61, // LOAD_CONST_STRING 'get_keccak_writer' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x62, // IMPORT_NAME 'apps.monero.xmr.keccak_hasher' + 0x1c,0x61, // IMPORT_FROM 'get_keccak_writer' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x14,0x63, // LOAD_METHOD 'write' + 0xb2, // LOAD_FAST 2 + 0x14,0x64, // LOAD_METHOD 'dump_message_buffer' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x63, // LOAD_METHOD 'write' + 0x12,0x05, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x65, // LOAD_METHOD 'encodeint' + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'tx_priv' + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x66, // LOAD_METHOD 'keccak_2hash' + 0xb4, // LOAD_FAST 4 + 0x14,0x67, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x12,0x05, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x65, // LOAD_METHOD 'encodeint' + 0x12,0x04, // LOAD_GLOBAL 'crypto' + 0x14,0x17, // LOAD_METHOD 'random_scalar' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0x12,0x05, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x66, // LOAD_METHOD 'keccak_2hash' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0xb5, // LOAD_FAST 5 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x38, // STORE_ATTR 'key_hmac' + 0x12,0x05, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x66, // LOAD_METHOD 'keccak_2hash' + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0xb5, // LOAD_FAST 5 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x68, // STORE_ATTR 'key_enc' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_01_init_transaction__compute_sec_keys = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_step_01_init_transaction__compute_sec_keys, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 122, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 94, + .line_info = fun_data_apps_monero_signing_step_01_init_transaction__compute_sec_keys + 5, + .line_info_top = fun_data_apps_monero_signing_step_01_init_transaction__compute_sec_keys + 16, + .opcodes = fun_data_apps_monero_signing_step_01_init_transaction__compute_sec_keys + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_01_init_transaction__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_01_init_transaction.py, scope apps_monero_signing_step_01_init_transaction__process_payment_id +static const byte fun_data_apps_monero_signing_step_01_init_transaction__process_payment_id[178] = { + 0x6a,0x3e, // prelude + 0x69,0x73,0x75, // names: _process_payment_id, state, tsx_data + 0x90,0x34,0x80,0x0e,0x64,0x42,0x2c,0x23,0x69,0x23,0x42,0x29,0x28,0x4a,0x22,0x64,0x29,0x22,0x64,0x47,0x26,0x27,0x67,0x28,0x24,0x26,0x24,0x27, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x6a, // LOAD_ATTR 'payment_id' + 0xc2, // STORE_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x6c, // LOAD_GLOBAL '_get_key_for_payment_id_encryption' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x14,0x43, // LOAD_METHOD 'change_address' + 0x36,0x00, // CALL_METHOD 0 + 0x52, // LOAD_CONST_TRUE + 0x34,0x03, // CALL_FUNCTION 3 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0x12,0x05, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x45, // LOAD_METHOD 'decodepoint' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0x12,0x6e, // LOAD_GLOBAL '_encrypt_payment_id' + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'tx_priv' + 0x34,0x03, // CALL_FUNCTION 3 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0xc6, // STORE_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xc7, // STORE_FAST 7 + 0x42,0x56, // JUMP 22 + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb2, // LOAD_FAST 2 + 0xc6, // STORE_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc7, // STORE_FAST 7 + 0x42,0x47, // JUMP 7 + 0x12,0x78, // LOAD_GLOBAL 'ValueError' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x79, // LOAD_GLOBAL 'len' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x78, // LOAD_GLOBAL 'ValueError' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x7b, // LOAD_GLOBAL 'bytearray' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xb8, // LOAD_FAST 8 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xb9, // LOAD_FAST 9 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x56, // STORE_SUBSCR + 0xb8, // LOAD_FAST 8 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb9, // LOAD_FAST 9 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x56, // STORE_SUBSCR + 0xb7, // LOAD_FAST 7 + 0xb9, // LOAD_FAST 9 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x56, // STORE_SUBSCR + 0xb6, // LOAD_FAST 6 + 0xb9, // LOAD_FAST 9 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0xb9, // LOAD_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x18,0x6b, // STORE_ATTR 'extra_nonce' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_01_init_transaction__process_payment_id = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_step_01_init_transaction__process_payment_id, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 178, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 105, + .line_info = fun_data_apps_monero_signing_step_01_init_transaction__process_payment_id + 5, + .line_info_top = fun_data_apps_monero_signing_step_01_init_transaction__process_payment_id + 33, + .opcodes = fun_data_apps_monero_signing_step_01_init_transaction__process_payment_id + 33, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_01_init_transaction__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_01_init_transaction.py, scope apps_monero_signing_step_01_init_transaction__get_key_for_payment_id_encryption +static const byte fun_data_apps_monero_signing_step_01_init_transaction__get_key_for_payment_id_encryption[199] = { + 0xf3,0x80,0x01,0x40, // prelude + 0x6c,0x75,0x7c,0x7d, // names: _get_key_for_payment_id_encryption, tsx_data, change_addr, add_dummy_payment_id + 0x90,0x70,0x60,0x40,0x4b,0x4b,0x23,0x26,0x48,0x22,0x27,0x27,0x22,0x2c,0x22,0x29,0x22,0x2a,0x22,0x45,0x24,0x66,0x2d,0x48,0x28,0x44,0x2a,0x47, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x49, // LOAD_CONST_STRING 'MoneroAccountPublicAddress' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x3c, // IMPORT_NAME 'trezor.messages' + 0x1c,0x49, // IMPORT_FROM 'MoneroAccountPublicAddress' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x57, // LOAD_CONST_STRING 'addr_eq' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x42, // IMPORT_NAME 'apps.monero.xmr.addresses' + 0x1c,0x57, // IMPORT_FROM 'addr_eq' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x46, // LOAD_CONST_STRING 'spend_public_key' + 0x12,0x05, // LOAD_GLOBAL 'crypto_helpers' + 0x13,0x6d, // LOAD_ATTR 'NULL_KEY_ENC' + 0x10,0x4d, // LOAD_CONST_STRING 'view_public_key' + 0x12,0x05, // LOAD_GLOBAL 'crypto_helpers' + 0x13,0x6d, // LOAD_ATTR 'NULL_KEY_ENC' + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0xc5, // STORE_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'outputs' + 0x5f, // GET_ITER_STACK + 0x4b,0x3e, // FOR_ITER 62 + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x13,0x5a, // LOAD_ATTR 'amount' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x34, // JUMP -12 + 0xb1, // LOAD_FAST 1 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb4, // LOAD_FAST 4 + 0xb7, // LOAD_FAST 7 + 0x13,0x5c, // LOAD_ATTR 'addr' + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x26, // JUMP -26 + 0xb4, // LOAD_FAST 4 + 0xb7, // LOAD_FAST 7 + 0x13,0x5c, // LOAD_ATTR 'addr' + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x1b, // JUMP -37 + 0xb6, // LOAD_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb0, // LOAD_FAST 0 + 0x13,0x6a, // LOAD_ATTR 'payment_id' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x78, // LOAD_GLOBAL 'ValueError' + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb7, // LOAD_FAST 7 + 0x13,0x5c, // LOAD_ATTR 'addr' + 0xc5, // STORE_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc6, // STORE_FAST 6 + 0x42,0x00, // JUMP -64 + 0xb0, // LOAD_FAST 0 + 0x13,0x6a, // LOAD_ATTR 'payment_id' + 0x43,0x50, // POP_JUMP_IF_TRUE 16 + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb2, // LOAD_FAST 2 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x7b, // LOAD_GLOBAL 'bytearray' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x6a, // STORE_ATTR 'payment_id' + 0xb6, // LOAD_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb1, // LOAD_FAST 1 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x4d, // LOAD_ATTR 'view_public_key' + 0x63, // RETURN_VALUE + 0xb5, // LOAD_FAST 5 + 0x13,0x4d, // LOAD_ATTR 'view_public_key' + 0x12,0x05, // LOAD_GLOBAL 'crypto_helpers' + 0x13,0x6d, // LOAD_ATTR 'NULL_KEY_ENC' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x78, // LOAD_GLOBAL 'ValueError' + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0x13,0x4d, // LOAD_ATTR 'view_public_key' + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_01_init_transaction__get_key_for_payment_id_encryption = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_signing_step_01_init_transaction__get_key_for_payment_id_encryption, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 199, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 108, + .line_info = fun_data_apps_monero_signing_step_01_init_transaction__get_key_for_payment_id_encryption + 8, + .line_info_top = fun_data_apps_monero_signing_step_01_init_transaction__get_key_for_payment_id_encryption + 36, + .opcodes = fun_data_apps_monero_signing_step_01_init_transaction__get_key_for_payment_id_encryption + 36, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_01_init_transaction__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_01_init_transaction.py, scope apps_monero_signing_step_01_init_transaction__encrypt_payment_id +static const byte fun_data_apps_monero_signing_step_01_init_transaction__encrypt_payment_id[70] = { + 0x53,0x1c, // prelude + 0x6e,0x6a,0x7e,0x7f, // names: _encrypt_payment_id, payment_id, public_key, secret_key + 0x90,0x9c,0x60,0x20,0x29,0x26,0x29,0x26,0x29,0x26, // code info + 0x12,0x05, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x6f, // LOAD_METHOD 'generate_key_derivation' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0xc3, // STORE_FAST 3 + 0x12,0x7b, // LOAD_GLOBAL 'bytearray' + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0x12,0x04, // LOAD_GLOBAL 'crypto' + 0x14,0x70, // LOAD_METHOD 'encodepoint_into' + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0xc4, // STORE_FAST 4 + 0x22,0x81,0x0d, // LOAD_CONST_SMALL_INT 141 + 0xb4, // LOAD_FAST 4 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x56, // STORE_SUBSCR + 0x12,0x04, // LOAD_GLOBAL 'crypto' + 0x14,0x71, // LOAD_METHOD 'fast_hash_into' + 0x51, // LOAD_CONST_NONE + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0xc5, // STORE_FAST 5 + 0x12,0x7b, // LOAD_GLOBAL 'bytearray' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc6, // STORE_FAST 6 + 0x12,0x05, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x72, // LOAD_METHOD 'xor8' + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_01_init_transaction__encrypt_payment_id = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_signing_step_01_init_transaction__encrypt_payment_id, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 110, + .line_info = fun_data_apps_monero_signing_step_01_init_transaction__encrypt_payment_id + 6, + .line_info_top = fun_data_apps_monero_signing_step_01_init_transaction__encrypt_payment_id + 16, + .opcodes = fun_data_apps_monero_signing_step_01_init_transaction__encrypt_payment_id + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_signing_step_01_init_transaction__lt_module_gt_[] = { + &raw_code_apps_monero_signing_step_01_init_transaction_init_transaction, + &raw_code_apps_monero_signing_step_01_init_transaction__check_subaddresses, + &raw_code_apps_monero_signing_step_01_init_transaction__get_primary_change_address, + &raw_code_apps_monero_signing_step_01_init_transaction__check_rsig_data, + &raw_code_apps_monero_signing_step_01_init_transaction__check_change, + &raw_code_apps_monero_signing_step_01_init_transaction__compute_sec_keys, + &raw_code_apps_monero_signing_step_01_init_transaction__process_payment_id, + &raw_code_apps_monero_signing_step_01_init_transaction__get_key_for_payment_id_encryption, + &raw_code_apps_monero_signing_step_01_init_transaction__encrypt_payment_id, +}; + +static const mp_raw_code_t raw_code_apps_monero_signing_step_01_init_transaction__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_signing_step_01_init_transaction__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 104, + #endif + .children = (void *)&children_apps_monero_signing_step_01_init_transaction__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 9, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_signing_step_01_init_transaction__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_signing_step_01_init_transaction__lt_module_gt_ + 25, + .opcodes = fun_data_apps_monero_signing_step_01_init_transaction__lt_module_gt_ + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_signing_step_01_init_transaction[128] = { + MP_QSTR_apps_slash_monero_slash_signing_slash_step_01_init_transaction_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_signing, + MP_QSTR_apps_dot_monero, + MP_QSTR_crypto, + MP_QSTR_crypto_helpers, + MP_QSTR_monero, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_init_transaction, + MP_QSTR_gc, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_layout, + MP_QSTR_misc, + MP_QSTR_offloading_keys, + MP_QSTR_apps_dot_monero_dot_signing, + MP_QSTR_mem_trace, + MP_QSTR_outputs, + MP_QSTR_validate_path, + MP_QSTR_get_creds, + MP_QSTR_creds, + MP_QSTR_client_version, + MP_QSTR_fee, + MP_QSTR_random_scalar, + MP_QSTR_tx_priv, + MP_QSTR_scalarmult_base_into, + MP_QSTR_tx_pub, + MP_QSTR_num_inputs, + MP_QSTR_input_count, + MP_QSTR_output_count, + MP_QSTR_progress_total, + MP_QSTR_progress_cur, + MP_QSTR_require_confirm_transaction, + MP_QSTR_network_type, + MP_QSTR_address, + MP_QSTR_collect, + MP_QSTR_change_dts, + MP_QSTR_output_change, + MP_QSTR_account, + MP_QSTR_account_idx, + MP_QSTR_STEP_INIT, + MP_QSTR_last_step, + MP_QSTR_hard_fork, + MP_QSTR_NotEnoughOutputsError, + MP_QSTR_rsig_data, + MP_QSTR_tx_prefix_hasher, + MP_QSTR_uvarint, + MP_QSTR_unlock_time, + MP_QSTR_full_message_hasher, + MP_QSTR_init, + MP_QSTR_set_type_fee, + MP_QSTR_tx_type, + MP_QSTR_minor_indices, + MP_QSTR_compute_subaddresses, + MP_QSTR_subaddresses, + MP_QSTR_gen_hmac_tsxdest, + MP_QSTR_key_hmac, + MP_QSTR_append, + MP_QSTR_MoneroTransactionInitAck, + MP_QSTR_MoneroTransactionRsigData, + MP_QSTR_trezor_dot_messages, + MP_QSTR_offload_type, + MP_QSTR_rsig_offload, + MP_QSTR_hmacs, + MP_QSTR__check_subaddresses, + MP_QSTR_classify_subaddresses, + MP_QSTR_apps_dot_monero_dot_xmr_dot_addresses, + MP_QSTR_change_address, + MP_QSTR_scalarmult_into, + MP_QSTR_decodepoint, + MP_QSTR_spend_public_key, + MP_QSTR_need_additional_txkeys, + MP_QSTR__get_primary_change_address, + MP_QSTR_MoneroAccountPublicAddress, + MP_QSTR_generate_sub_address_keys, + MP_QSTR_view_key_private, + MP_QSTR_spend_key_public, + MP_QSTR_view_public_key, + MP_QSTR_encodepoint, + MP_QSTR__check_rsig_data, + MP_QSTR_grouping, + MP_QSTR_rsig_grouping, + MP_QSTR_rsig_type, + MP_QSTR_RctType, + MP_QSTR_RCTTypeBulletproofPlus, + MP_QSTR_bp_version, + MP_QSTR__check_change, + MP_QSTR_addr_eq, + MP_QSTR_get_change_addr_idx, + MP_QSTR_No_space_change, + MP_QSTR_amount, + MP_QSTR_Sweep_space_tsx, + MP_QSTR_addr, + MP_QSTR_ChangeAddressError, + MP_QSTR__compute_sec_keys, + MP_QSTR_protobuf, + MP_QSTR_trezor, + MP_QSTR_get_keccak_writer, + MP_QSTR_apps_dot_monero_dot_xmr_dot_keccak_hasher, + MP_QSTR_write, + MP_QSTR_dump_message_buffer, + MP_QSTR_encodeint, + MP_QSTR_keccak_2hash, + MP_QSTR_get_digest, + MP_QSTR_key_enc, + MP_QSTR__process_payment_id, + MP_QSTR_payment_id, + MP_QSTR_extra_nonce, + MP_QSTR__get_key_for_payment_id_encryption, + MP_QSTR_NULL_KEY_ENC, + MP_QSTR__encrypt_payment_id, + MP_QSTR_generate_key_derivation, + MP_QSTR_encodepoint_into, + MP_QSTR_fast_hash_into, + MP_QSTR_xor8, + MP_QSTR_state, + MP_QSTR_address_n, + MP_QSTR_tsx_data, + MP_QSTR_keychain, + MP_QSTR_progress, + MP_QSTR_ValueError, + MP_QSTR_len, + MP_QSTR_int, + MP_QSTR_bytearray, + MP_QSTR_change_addr, + MP_QSTR_add_dummy_payment_id, + MP_QSTR_public_key, + MP_QSTR_secret_key, +}; + +// constants +static const mp_obj_str_t const_obj_apps_monero_signing_step_01_init_transaction_0 = {{&mp_type_str}, 15613, 28, (const byte*)"\x43\x6c\x69\x65\x6e\x74\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64"}; +static const mp_obj_str_t const_obj_apps_monero_signing_step_01_init_transaction_1 = {{&mp_type_str}, 37864, 29, (const byte*)"\x55\x6e\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x68\x61\x72\x64\x2d\x66\x6f\x72\x6b\x20\x76\x65\x72\x73\x69\x6f\x6e"}; +static const mp_obj_str_t const_obj_apps_monero_signing_step_01_init_transaction_2 = {{&mp_type_str}, 28192, 33, (const byte*)"\x41\x74\x20\x6c\x65\x61\x73\x74\x20\x74\x77\x6f\x20\x6f\x75\x74\x70\x75\x74\x73\x20\x61\x72\x65\x20\x72\x65\x71\x75\x69\x72\x65\x64"}; +static const mp_obj_str_t const_obj_apps_monero_signing_step_01_init_transaction_3 = {{&mp_type_str}, 15769, 33, (const byte*)"\x42\x6f\x72\x72\x6f\x6d\x65\x61\x6e\x20\x72\x61\x6e\x67\x65\x20\x73\x69\x67\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64"}; +static const mp_rom_obj_tuple_t const_obj_apps_monero_signing_step_01_init_transaction_4 = {{&mp_type_tuple}, 3, { + MP_ROM_INT(1), + MP_ROM_INT(2), + MP_ROM_INT(3), +}}; +static const mp_obj_str_t const_obj_apps_monero_signing_step_01_init_transaction_9 = {{&mp_type_str}, 23005, 35, (const byte*)"\x43\x68\x61\x6e\x67\x65\x20\x61\x64\x64\x72\x65\x73\x73\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64\x20\x69\x6e\x20\x6f\x75\x74\x70\x75\x74\x73"}; +static const mp_obj_str_t const_obj_apps_monero_signing_step_01_init_transaction_10 = {{&mp_type_str}, 30481, 32, (const byte*)"\x43\x68\x61\x6e\x67\x65\x20\x61\x64\x64\x72\x65\x73\x73\x20\x64\x69\x66\x66\x65\x72\x73\x20\x66\x72\x6f\x6d\x20\x6f\x75\x72\x73"}; +static const mp_obj_str_t const_obj_apps_monero_signing_step_01_init_transaction_11 = {{&mp_type_bytes}, 15330, 4, (const byte*)"\x68\x6d\x61\x63"}; +static const mp_obj_str_t const_obj_apps_monero_signing_step_01_init_transaction_12 = {{&mp_type_bytes}, 8973, 3, (const byte*)"\x65\x6e\x63"}; +static const mp_obj_str_t const_obj_apps_monero_signing_step_01_init_transaction_14 = {{&mp_type_str}, 14981, 28, (const byte*)"\x4e\x6f\x6e\x63\x65\x20\x63\x6f\x75\x6c\x64\x20\x62\x65\x20\x32\x35\x35\x20\x62\x79\x74\x65\x73\x20\x6d\x61\x78"}; +static const mp_obj_str_t const_obj_apps_monero_signing_step_01_init_transaction_15 = {{&mp_type_str}, 35682, 77, (const byte*)"\x44\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x73\x20\x68\x61\x76\x65\x20\x74\x6f\x20\x68\x61\x76\x65\x20\x65\x78\x61\x63\x74\x6c\x79\x20\x6f\x6e\x65\x20\x6f\x75\x74\x70\x75\x74\x20\x74\x6f\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x65\x6e\x63\x72\x79\x70\x74\x65\x64\x20\x70\x61\x79\x6d\x65\x6e\x74\x20\x69\x64\x73"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_signing_step_01_init_transaction[17] = { + MP_ROM_PTR(&const_obj_apps_monero_signing_step_01_init_transaction_0), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_01_init_transaction_1), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_01_init_transaction_2), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_01_init_transaction_3), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_01_init_transaction_4), + MP_ROM_QSTR(MP_QSTR_Unknown_space_rsig_space_type), + MP_ROM_QSTR(MP_QSTR_Unknown_space_BP_space_version), + MP_ROM_QSTR(MP_QSTR_Invalid_space_grouping_space_batch), + MP_ROM_QSTR(MP_QSTR_Invalid_space_grouping), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_01_init_transaction_9), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_01_init_transaction_10), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_01_init_transaction_11), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_01_init_transaction_12), + MP_ROM_QSTR(MP_QSTR_Payment_space_ID_space_size_space_invalid), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_01_init_transaction_14), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_01_init_transaction_15), + MP_ROM_QSTR(MP_QSTR_Invalid_space_key), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_signing_step_01_init_transaction = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_signing_step_01_init_transaction, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_signing_step_01_init_transaction, + }, + .rc = &raw_code_apps_monero_signing_step_01_init_transaction__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_signing_step_02_set_input +// - original source file: build/firmware/src/apps/monero/signing/step_02_set_input.mpy +// - frozen file name: apps/monero/signing/step_02_set_input.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/signing/step_02_set_input.py, scope apps_monero_signing_step_02_set_input__lt_module_gt_ +static const byte fun_data_apps_monero_signing_step_02_set_input__lt_module_gt_[44] = { + 0x08,0x18, // prelude + 0x01, // names: + 0x80,0x0f,0x4c,0x80,0x0c,0x84,0x6d,0x84,0x12,0x84,0x10, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'crypto_helpers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x02, // IMPORT_FROM 'crypto_helpers' + 0x16,0x02, // STORE_NAME 'crypto_helpers' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x04, // STORE_NAME 'set_input' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x3a, // STORE_NAME '_gen_commitment' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x40, // STORE_NAME '_absolute_output_offsets_to_relative' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x42, // STORE_NAME '_get_additional_public_key' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_signing_step_02_set_input__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_02_set_input.py, scope apps_monero_signing_step_02_set_input_set_input +static const byte fun_data_apps_monero_signing_step_02_set_input_set_input[526] = { + 0xb3,0x20,0x80,0x02, // prelude + 0x04,0x46,0x47,0x48, // names: set_input, state, src_entr, progress + 0x80,0x22,0x4b,0x2b,0x35,0x4b,0x29,0x24,0x24,0x44,0x4b,0x29,0x27,0x27,0x47,0x2b,0x22,0x24,0x2d,0x69,0x20,0x24,0x6e,0x2a,0x66,0x20,0x23,0x23,0x66,0x20,0x23,0x23,0x4c,0x68,0x20,0x33,0x4d,0x25,0x65,0x40,0x33,0x68,0x23,0x4b,0x68,0x2c,0x6a,0x24,0x6f,0x20,0x23,0x29,0x6c,0x23,0x29,0x6b,0x26,0x69,0x24,0x44, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'MoneroTransactionSetInputAck' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.messages' + 0x1c,0x05, // IMPORT_FROM 'MoneroTransactionSetInputAck' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'offloading_keys' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'apps.monero.signing' + 0x1c,0x07, // IMPORT_FROM 'offloading_keys' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'chacha_poly' + 0x10,0x0a, // LOAD_CONST_STRING 'monero' + 0x10,0x0b, // LOAD_CONST_STRING 'serialize' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x03, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x09, // IMPORT_FROM 'chacha_poly' + 0xc5, // STORE_FAST 5 + 0x1c,0x0a, // IMPORT_FROM 'monero' + 0xc6, // STORE_FAST 6 + 0x1c,0x0b, // IMPORT_FROM 'serialize' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'TxinToKey' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'apps.monero.xmr.serialize_messages.tx_prefix' + 0x1c,0x0c, // IMPORT_FROM 'TxinToKey' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0e, // LOAD_ATTR 'current_input_index' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x0e, // STORE_ATTR 'current_input_index' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'current_input_index' + 0xc9, // STORE_FAST 9 + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'amount' + 0xca, // STORE_FAST 10 + 0xb1, // LOAD_FAST 1 + 0x13,0x10, // LOAD_ATTR 'outputs' + 0xcb, // STORE_FAST 11 + 0xb2, // LOAD_FAST 2 + 0x14,0x11, // LOAD_METHOD 'step' + 0xb0, // LOAD_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'STEP_INP' + 0xb9, // LOAD_FAST 9 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'last_step' + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'STEP_INP' + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x49, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb9, // LOAD_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'input_count' + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x49, // LOAD_GLOBAL 'ValueError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x13,0x15, // LOAD_ATTR 'real_output' + 0x12,0x4a, // LOAD_GLOBAL 'len' + 0xbb, // LOAD_FAST 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x49, // LOAD_GLOBAL 'ValueError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x14,0x16, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x13,0x15, // LOAD_ATTR 'real_output' + 0x12,0x4a, // LOAD_GLOBAL 'len' + 0xbb, // LOAD_FAST 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x17, // LOAD_ATTR 'summary_inputs_money' + 0xba, // LOAD_FAST 10 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x17, // STORE_ATTR 'summary_inputs_money' + 0x12,0x02, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x18, // LOAD_METHOD 'decodepoint' + 0xb1, // LOAD_FAST 1 + 0x13,0x10, // LOAD_ATTR 'outputs' + 0xb1, // LOAD_FAST 1 + 0x13,0x15, // LOAD_ATTR 'real_output' + 0x55, // LOAD_SUBSCR + 0x13,0x19, // LOAD_ATTR 'key' + 0x13,0x1a, // LOAD_ATTR 'dest' + 0x36,0x01, // CALL_METHOD 1 + 0xcc, // STORE_FAST 12 + 0x12,0x02, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x18, // LOAD_METHOD 'decodepoint' + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'real_out_tx_key' + 0x36,0x01, // CALL_METHOD 1 + 0xcd, // STORE_FAST 13 + 0x12,0x42, // LOAD_GLOBAL '_get_additional_public_key' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xce, // STORE_FAST 14 + 0xb6, // LOAD_FAST 6 + 0x14,0x1c, // LOAD_METHOD 'generate_tx_spend_and_key_image_and_derivation' + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'creds' + 0xb0, // LOAD_FAST 0 + 0x13,0x1e, // LOAD_ATTR 'subaddresses' + 0xbc, // LOAD_FAST 12 + 0xbd, // LOAD_FAST 13 + 0xbe, // LOAD_FAST 14 + 0xb1, // LOAD_FAST 1 + 0x13,0x1f, // LOAD_ATTR 'real_output_in_tx_index' + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'account_idx' + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'subaddr_minor' + 0x36,0x08, // CALL_METHOD 8 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xcf, // STORE_FAST 15 + 0x26,0x10, // STORE_FAST_N 16 + 0x26,0x11, // STORE_FAST_N 17 + 0xb0, // LOAD_FAST 0 + 0x14,0x22, // LOAD_METHOD 'mem_trace' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x52, // LOAD_CONST_TRUE + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x10,0x0f, // LOAD_CONST_STRING 'amount' + 0xba, // LOAD_FAST 10 + 0x10,0x23, // LOAD_CONST_STRING 'k_image' + 0x12,0x02, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x24, // LOAD_METHOD 'encodepoint' + 0x24,0x10, // LOAD_FAST_N 16 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x26,0x12, // STORE_FAST_N 18 + 0x12,0x40, // LOAD_GLOBAL '_absolute_output_offsets_to_relative' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xbb, // LOAD_FAST 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x24,0x12, // LOAD_FAST_N 18 + 0x18,0x25, // STORE_ATTR 'key_offsets' + 0xb1, // LOAD_FAST 1 + 0x13,0x26, // LOAD_ATTR 'rct' + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x24,0x12, // LOAD_FAST_N 18 + 0x18,0x0f, // STORE_ATTR 'amount' + 0xb7, // LOAD_FAST 7 + 0x14,0x27, // LOAD_METHOD 'dump_msg' + 0x24,0x12, // LOAD_FAST_N 18 + 0x10,0x28, // LOAD_CONST_STRING 'preallocate' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x10,0x29, // LOAD_CONST_STRING 'prefix' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x36,0x84,0x01, // CALL_METHOD 513 + 0x26,0x13, // STORE_FAST_N 19 + 0xb0, // LOAD_FAST 0 + 0x14,0x22, // LOAD_METHOD 'mem_trace' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x52, // LOAD_CONST_TRUE + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x2a, // LOAD_METHOD 'gen_hmac_vini' + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'key_hmac' + 0xb1, // LOAD_FAST 1 + 0x24,0x13, // LOAD_FAST_N 19 + 0xb9, // LOAD_FAST 9 + 0x36,0x04, // CALL_METHOD 4 + 0x26,0x14, // STORE_FAST_N 20 + 0xb0, // LOAD_FAST 0 + 0x14,0x22, // LOAD_METHOD 'mem_trace' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x52, // LOAD_CONST_TRUE + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x3a, // LOAD_GLOBAL '_gen_commitment' + 0xb0, // LOAD_FAST 0 + 0xba, // LOAD_FAST 10 + 0x34,0x02, // CALL_FUNCTION 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0x26,0x15, // STORE_FAST_N 21 + 0x26,0x16, // STORE_FAST_N 22 + 0x12,0x02, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x24, // LOAD_METHOD 'encodepoint' + 0x24,0x16, // LOAD_FAST_N 22 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x16, // STORE_FAST_N 22 + 0x12,0x02, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x2c, // LOAD_METHOD 'compute_hmac' + 0xb4, // LOAD_FAST 4 + 0x14,0x2d, // LOAD_METHOD 'hmac_key_txin_comm' + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'key_hmac' + 0xb9, // LOAD_FAST 9 + 0x36,0x02, // CALL_METHOD 2 + 0x24,0x16, // LOAD_FAST_N 22 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x17, // STORE_FAST_N 23 + 0xb5, // LOAD_FAST 5 + 0x14,0x2e, // LOAD_METHOD 'encrypt_pack' + 0xb4, // LOAD_FAST 4 + 0x14,0x2f, // LOAD_METHOD 'enc_key_txin_alpha' + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'key_enc' + 0xb9, // LOAD_FAST 9 + 0x36,0x02, // CALL_METHOD 2 + 0x12,0x02, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x31, // LOAD_METHOD 'encodeint' + 0x24,0x15, // LOAD_FAST_N 21 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x18, // STORE_FAST_N 24 + 0xb5, // LOAD_FAST 5 + 0x14,0x2e, // LOAD_METHOD 'encrypt_pack' + 0xb4, // LOAD_FAST 4 + 0x14,0x32, // LOAD_METHOD 'enc_key_spend' + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'key_enc' + 0xb9, // LOAD_FAST 9 + 0x36,0x02, // CALL_METHOD 2 + 0x12,0x02, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x31, // LOAD_METHOD 'encodeint' + 0xbf, // LOAD_FAST 15 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x19, // STORE_FAST_N 25 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'STEP_INP' + 0xb0, // LOAD_FAST 0 + 0x18,0x13, // STORE_ATTR 'last_step' + 0xb9, // LOAD_FAST 9 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'input_count' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x1e, // STORE_ATTR 'subaddresses' + 0xba, // LOAD_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x18,0x33, // STORE_ATTR 'input_last_amount' + 0xb3, // LOAD_FAST 3 + 0x10,0x34, // LOAD_CONST_STRING 'vini' + 0x24,0x13, // LOAD_FAST_N 19 + 0x10,0x35, // LOAD_CONST_STRING 'vini_hmac' + 0x24,0x14, // LOAD_FAST_N 20 + 0x10,0x36, // LOAD_CONST_STRING 'pseudo_out' + 0x24,0x16, // LOAD_FAST_N 22 + 0x10,0x37, // LOAD_CONST_STRING 'pseudo_out_hmac' + 0x24,0x17, // LOAD_FAST_N 23 + 0x10,0x38, // LOAD_CONST_STRING 'pseudo_out_alpha' + 0x24,0x18, // LOAD_FAST_N 24 + 0x10,0x39, // LOAD_CONST_STRING 'spend_key' + 0x24,0x19, // LOAD_FAST_N 25 + 0x34,0x8c,0x00, // CALL_FUNCTION 1536 + 0x63, // RETURN_VALUE +}; +// child of apps_monero_signing_step_02_set_input_set_input +// frozen bytecode for file apps/monero/signing/step_02_set_input.py, scope apps_monero_signing_step_02_set_input_set_input__lt_listcomp_gt_ +static const byte fun_data_apps_monero_signing_step_02_set_input_set_input__lt_listcomp_gt_[21] = { + 0x39,0x08, // prelude + 0x44,0x4d, // names: , * + 0x80,0x54, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x08, // FOR_ITER 8 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x45, // LOAD_ATTR 'idx' + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x36, // JUMP -10 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_02_set_input_set_input__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_signing_step_02_set_input_set_input__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 68, + .line_info = fun_data_apps_monero_signing_step_02_set_input_set_input__lt_listcomp_gt_ + 4, + .line_info_top = fun_data_apps_monero_signing_step_02_set_input_set_input__lt_listcomp_gt_ + 6, + .opcodes = fun_data_apps_monero_signing_step_02_set_input_set_input__lt_listcomp_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_signing_step_02_set_input_set_input[] = { + &raw_code_apps_monero_signing_step_02_set_input_set_input__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_apps_monero_signing_step_02_set_input_set_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_signing_step_02_set_input_set_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 526, + #endif + .children = (void *)&children_apps_monero_signing_step_02_set_input_set_input, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 39, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_monero_signing_step_02_set_input_set_input + 8, + .line_info_top = fun_data_apps_monero_signing_step_02_set_input_set_input + 68, + .opcodes = fun_data_apps_monero_signing_step_02_set_input_set_input + 68, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_02_set_input__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_02_set_input.py, scope apps_monero_signing_step_02_set_input__gen_commitment +static const byte fun_data_apps_monero_signing_step_02_set_input__gen_commitment[54] = { + 0x4a,0x14, // prelude + 0x3a,0x46,0x4b, // names: _gen_commitment, state, in_amount + 0x80,0x8b,0x80,0x0a,0x4b,0x26,0x2d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3b, // LOAD_CONST_STRING 'crypto' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x3b, // IMPORT_FROM 'crypto' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x3c, // LOAD_METHOD 'random_scalar' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x14,0x3d, // LOAD_METHOD 'sc_add_into' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x13,0x3e, // LOAD_ATTR 'sumpouts_alphas' + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x3e, // STORE_ATTR 'sumpouts_alphas' + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x14,0x3f, // LOAD_METHOD 'gen_commitment_into' + 0x51, // LOAD_CONST_NONE + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x36,0x03, // CALL_METHOD 3 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_02_set_input__gen_commitment = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_step_02_set_input__gen_commitment, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 54, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 58, + .line_info = fun_data_apps_monero_signing_step_02_set_input__gen_commitment + 5, + .line_info_top = fun_data_apps_monero_signing_step_02_set_input__gen_commitment + 12, + .opcodes = fun_data_apps_monero_signing_step_02_set_input__gen_commitment + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_02_set_input__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_02_set_input.py, scope apps_monero_signing_step_02_set_input__absolute_output_offsets_to_relative +static const byte fun_data_apps_monero_signing_step_02_set_input__absolute_output_offsets_to_relative[63] = { + 0x41,0x16, // prelude + 0x40,0x4c, // names: _absolute_output_offsets_to_relative, off + 0x80,0x9d,0x80,0x07,0x29,0x22,0x26,0x2b,0x34, // code info + 0x12,0x4a, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x14,0x41, // LOAD_METHOD 'sort' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x4a, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x42,0x50, // JUMP 16 + 0x57, // DUP_TOP + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x58, // DUP_TOP_TWO + 0x55, // LOAD_SUBSCR + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x55, // LOAD_SUBSCR + 0xe6, // BINARY_OP 15 __isub__ + 0x5b, // ROT_THREE + 0x56, // STORE_SUBSCR + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x57, // DUP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x2b, // POP_JUMP_IF_TRUE -21 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_02_set_input__absolute_output_offsets_to_relative = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_signing_step_02_set_input__absolute_output_offsets_to_relative, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 63, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_apps_monero_signing_step_02_set_input__absolute_output_offsets_to_relative + 4, + .line_info_top = fun_data_apps_monero_signing_step_02_set_input__absolute_output_offsets_to_relative + 13, + .opcodes = fun_data_apps_monero_signing_step_02_set_input__absolute_output_offsets_to_relative + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_02_set_input__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_02_set_input.py, scope apps_monero_signing_step_02_set_input__get_additional_public_key +static const byte fun_data_apps_monero_signing_step_02_set_input__get_additional_public_key[78] = { + 0x31,0x18, // prelude + 0x42,0x47, // names: _get_additional_public_key, src_entr + 0x80,0xaf,0x44,0x22,0x29,0x4f,0x2b,0x27,0x24,0x4a, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x43, // LOAD_ATTR 'real_out_additional_tx_keys' + 0xc1, // STORE_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xc2, // STORE_FAST 2 + 0x12,0x4a, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x18, // LOAD_METHOD 'decodepoint' + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0x42,0x63, // JUMP 35 + 0xb1, // LOAD_FAST 1 + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0xb0, // LOAD_FAST 0 + 0x13,0x1f, // LOAD_ATTR 'real_output_in_tx_index' + 0x12,0x4a, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x49, // LOAD_GLOBAL 'ValueError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x02, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x18, // LOAD_METHOD 'decodepoint' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x1f, // LOAD_ATTR 'real_output_in_tx_index' + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0x42,0x40, // JUMP 0 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_02_set_input__get_additional_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_signing_step_02_set_input__get_additional_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 78, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 66, + .line_info = fun_data_apps_monero_signing_step_02_set_input__get_additional_public_key + 4, + .line_info_top = fun_data_apps_monero_signing_step_02_set_input__get_additional_public_key + 14, + .opcodes = fun_data_apps_monero_signing_step_02_set_input__get_additional_public_key + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_signing_step_02_set_input__lt_module_gt_[] = { + &raw_code_apps_monero_signing_step_02_set_input_set_input, + &raw_code_apps_monero_signing_step_02_set_input__gen_commitment, + &raw_code_apps_monero_signing_step_02_set_input__absolute_output_offsets_to_relative, + &raw_code_apps_monero_signing_step_02_set_input__get_additional_public_key, +}; + +static const mp_raw_code_t raw_code_apps_monero_signing_step_02_set_input__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_signing_step_02_set_input__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = (void *)&children_apps_monero_signing_step_02_set_input__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_signing_step_02_set_input__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_signing_step_02_set_input__lt_module_gt_ + 14, + .opcodes = fun_data_apps_monero_signing_step_02_set_input__lt_module_gt_ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_signing_step_02_set_input[78] = { + MP_QSTR_apps_slash_monero_slash_signing_slash_step_02_set_input_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_crypto_helpers, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_set_input, + MP_QSTR_MoneroTransactionSetInputAck, + MP_QSTR_trezor_dot_messages, + MP_QSTR_offloading_keys, + MP_QSTR_apps_dot_monero_dot_signing, + MP_QSTR_chacha_poly, + MP_QSTR_monero, + MP_QSTR_serialize, + MP_QSTR_TxinToKey, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_messages_dot_tx_prefix, + MP_QSTR_current_input_index, + MP_QSTR_amount, + MP_QSTR_outputs, + MP_QSTR_step, + MP_QSTR_STEP_INP, + MP_QSTR_last_step, + MP_QSTR_input_count, + MP_QSTR_real_output, + MP_QSTR_format, + MP_QSTR_summary_inputs_money, + MP_QSTR_decodepoint, + MP_QSTR_key, + MP_QSTR_dest, + MP_QSTR_real_out_tx_key, + MP_QSTR_generate_tx_spend_and_key_image_and_derivation, + MP_QSTR_creds, + MP_QSTR_subaddresses, + MP_QSTR_real_output_in_tx_index, + MP_QSTR_account_idx, + MP_QSTR_subaddr_minor, + MP_QSTR_mem_trace, + MP_QSTR_k_image, + MP_QSTR_encodepoint, + MP_QSTR_key_offsets, + MP_QSTR_rct, + MP_QSTR_dump_msg, + MP_QSTR_preallocate, + MP_QSTR_prefix, + MP_QSTR_gen_hmac_vini, + MP_QSTR_key_hmac, + MP_QSTR_compute_hmac, + MP_QSTR_hmac_key_txin_comm, + MP_QSTR_encrypt_pack, + MP_QSTR_enc_key_txin_alpha, + MP_QSTR_key_enc, + MP_QSTR_encodeint, + MP_QSTR_enc_key_spend, + MP_QSTR_input_last_amount, + MP_QSTR_vini, + MP_QSTR_vini_hmac, + MP_QSTR_pseudo_out, + MP_QSTR_pseudo_out_hmac, + MP_QSTR_pseudo_out_alpha, + MP_QSTR_spend_key, + MP_QSTR__gen_commitment, + MP_QSTR_crypto, + MP_QSTR_random_scalar, + MP_QSTR_sc_add_into, + MP_QSTR_sumpouts_alphas, + MP_QSTR_gen_commitment_into, + MP_QSTR__absolute_output_offsets_to_relative, + MP_QSTR_sort, + MP_QSTR__get_additional_public_key, + MP_QSTR_real_out_additional_tx_keys, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_idx, + MP_QSTR_state, + MP_QSTR_src_entr, + MP_QSTR_progress, + MP_QSTR_ValueError, + MP_QSTR_len, + MP_QSTR_in_amount, + MP_QSTR_off, + MP_QSTR__star_, +}; + +// constants +static const mp_obj_str_t const_obj_apps_monero_signing_step_02_set_input_2 = {{&mp_type_str}, 39584, 54, (const byte*)"\x72\x65\x61\x6c\x5f\x6f\x75\x74\x70\x75\x74\x20\x69\x6e\x64\x65\x78\x20\x7b\x7d\x20\x62\x69\x67\x67\x65\x72\x20\x74\x68\x61\x6e\x20\x6f\x75\x74\x70\x75\x74\x5f\x6b\x65\x79\x73\x2e\x73\x69\x7a\x65\x28\x29\x20\x7b\x7d"}; +static const mp_obj_str_t const_obj_apps_monero_signing_step_02_set_input_3 = {{&mp_type_bytes}, 46503, 1, (const byte*)"\x02"}; +static const mp_obj_str_t const_obj_apps_monero_signing_step_02_set_input_4 = {{&mp_type_str}, 54711, 38, (const byte*)"\x57\x72\x6f\x6e\x67\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x20\x64\x65\x72\x69\x76\x61\x74\x69\x6f\x6e\x73"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_signing_step_02_set_input[5] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_state_space_transition), + MP_ROM_QSTR(MP_QSTR_Too_space_many_space_inputs), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_02_set_input_2), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_02_set_input_3), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_02_set_input_4), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_signing_step_02_set_input = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_signing_step_02_set_input, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_signing_step_02_set_input, + }, + .rc = &raw_code_apps_monero_signing_step_02_set_input__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_signing_step_04_input_vini +// - original source file: build/firmware/src/apps/monero/signing/step_04_input_vini.mpy +// - frozen file name: apps/monero/signing/step_04_input_vini.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/signing/step_04_input_vini.py, scope apps_monero_signing_step_04_input_vini__lt_module_gt_ +static const byte fun_data_apps_monero_signing_step_04_input_vini__lt_module_gt_[13] = { + 0x00,0x0a, // prelude + 0x01, // names: + 0x80,0x07,0x80,0x0b, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'input_vini' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_signing_step_04_input_vini__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_04_input_vini.py, scope apps_monero_signing_step_04_input_vini_input_vini +static const byte fun_data_apps_monero_signing_step_04_input_vini_input_vini[235] = { + 0x8a,0x14,0x42, // prelude + 0x02,0x16,0x17,0x18,0x19,0x1a,0x1b, // names: input_vini, state, src_entr, vini_bin, vini_hmac, orig_idx, progress + 0x80,0x1a,0x4b,0x2b,0x4b,0x44,0x2d,0x2d,0x27,0x29,0x47,0x27,0x24,0x44,0x69,0x23,0x69,0x40,0x29,0x67,0x27,0x2e,0x67,0x29,0x24,0x30, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'MoneroTransactionInputViniAck' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor.messages' + 0x1c,0x03, // IMPORT_FROM 'MoneroTransactionInputViniAck' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'offloading_keys' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'apps.monero.signing' + 0x1c,0x05, // IMPORT_FROM 'offloading_keys' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'crypto' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x07, // IMPORT_FROM 'crypto' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'STEP_VINI' + 0xc9, // STORE_FAST 9 + 0xb5, // LOAD_FAST 5 + 0x14,0x0a, // LOAD_METHOD 'step' + 0xb0, // LOAD_FAST 0 + 0xb9, // LOAD_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'current_input_index' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'last_step' + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'STEP_INP' + 0xb9, // LOAD_FAST 9 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x1c, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'current_input_index' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'input_count' + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x1c, // LOAD_GLOBAL 'ValueError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'last_step' + 0xb9, // LOAD_FAST 9 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0xb0, // LOAD_FAST 0 + 0x18,0x0b, // STORE_ATTR 'current_input_index' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x0f, // STORE_ATTR 'last_ki' + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0b, // LOAD_ATTR 'current_input_index' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x0b, // STORE_ATTR 'current_input_index' + 0xb7, // LOAD_FAST 7 + 0x14,0x10, // LOAD_METHOD 'gen_hmac_vini' + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'key_hmac' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x36,0x04, // CALL_METHOD 4 + 0xca, // STORE_FAST 10 + 0xb8, // LOAD_FAST 8 + 0x14,0x12, // LOAD_METHOD 'ct_equals' + 0xba, // LOAD_FAST 10 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x1c, // LOAD_GLOBAL 'ValueError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb7, // LOAD_FAST 7 + 0x14,0x13, // LOAD_METHOD 'get_ki_from_vini' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xcb, // STORE_FAST 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'current_input_index' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'last_ki' + 0xbb, // LOAD_FAST 11 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x1c, // LOAD_GLOBAL 'ValueError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'tx_prefix_hasher' + 0x14,0x15, // LOAD_METHOD 'buffer' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x18,0x0c, // STORE_ATTR 'last_step' + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'current_input_index' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'input_count' + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0xbb, // LOAD_FAST 11 + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x0f, // STORE_ATTR 'last_ki' + 0xb6, // LOAD_FAST 6 + 0x34,0x00, // CALL_FUNCTION 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_04_input_vini_input_vini = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 6, + .fun_data = fun_data_apps_monero_signing_step_04_input_vini_input_vini, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 235, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_monero_signing_step_04_input_vini_input_vini + 10, + .line_info_top = fun_data_apps_monero_signing_step_04_input_vini_input_vini + 36, + .opcodes = fun_data_apps_monero_signing_step_04_input_vini_input_vini + 36, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_signing_step_04_input_vini__lt_module_gt_[] = { + &raw_code_apps_monero_signing_step_04_input_vini_input_vini, +}; + +static const mp_raw_code_t raw_code_apps_monero_signing_step_04_input_vini__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_signing_step_04_input_vini__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = (void *)&children_apps_monero_signing_step_04_input_vini__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_signing_step_04_input_vini__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_signing_step_04_input_vini__lt_module_gt_ + 7, + .opcodes = fun_data_apps_monero_signing_step_04_input_vini__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_signing_step_04_input_vini[29] = { + MP_QSTR_apps_slash_monero_slash_signing_slash_step_04_input_vini_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_input_vini, + MP_QSTR_MoneroTransactionInputViniAck, + MP_QSTR_trezor_dot_messages, + MP_QSTR_offloading_keys, + MP_QSTR_apps_dot_monero_dot_signing, + MP_QSTR_crypto, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_STEP_VINI, + MP_QSTR_step, + MP_QSTR_current_input_index, + MP_QSTR_last_step, + MP_QSTR_STEP_INP, + MP_QSTR_input_count, + MP_QSTR_last_ki, + MP_QSTR_gen_hmac_vini, + MP_QSTR_key_hmac, + MP_QSTR_ct_equals, + MP_QSTR_get_ki_from_vini, + MP_QSTR_tx_prefix_hasher, + MP_QSTR_buffer, + MP_QSTR_state, + MP_QSTR_src_entr, + MP_QSTR_vini_bin, + MP_QSTR_vini_hmac, + MP_QSTR_orig_idx, + MP_QSTR_progress, + MP_QSTR_ValueError, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_signing_step_04_input_vini[4] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_state_space_transition), + MP_ROM_QSTR(MP_QSTR_Too_space_many_space_inputs), + MP_ROM_QSTR(MP_QSTR_HMAC_space_is_space_not_space_correct), + MP_ROM_QSTR(MP_QSTR_Key_space_image_space_order_space_invalid), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_signing_step_04_input_vini = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_signing_step_04_input_vini, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_signing_step_04_input_vini, + }, + .rc = &raw_code_apps_monero_signing_step_04_input_vini__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_signing_step_05_all_inputs_set +// - original source file: build/firmware/src/apps/monero/signing/step_05_all_inputs_set.mpy +// - frozen file name: apps/monero/signing/step_05_all_inputs_set.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/signing/step_05_all_inputs_set.py, scope apps_monero_signing_step_05_all_inputs_set__lt_module_gt_ +static const byte fun_data_apps_monero_signing_step_05_all_inputs_set__lt_module_gt_[13] = { + 0x00,0x0a, // prelude + 0x01, // names: + 0x80,0x07,0x80,0x08, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'all_inputs_set' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_signing_step_05_all_inputs_set__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_05_all_inputs_set.py, scope apps_monero_signing_step_05_all_inputs_set_all_inputs_set +static const byte fun_data_apps_monero_signing_step_05_all_inputs_set_all_inputs_set[111] = { + 0x42,0x20, // prelude + 0x02,0x10,0x11, // names: all_inputs_set, state, progress + 0x80,0x12,0x4b,0x4b,0x47,0x4a,0x29,0x27,0x2b,0x67,0x28,0x26,0x24, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'MoneroTransactionAllInputsSetAck' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor.messages' + 0x1c,0x03, // IMPORT_FROM 'MoneroTransactionAllInputsSetAck' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'crypto' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x05, // IMPORT_FROM 'crypto' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x07, // LOAD_METHOD 'mem_trace' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x08, // LOAD_METHOD 'step' + 0xb0, // LOAD_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'STEP_ALL_IN' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0a, // LOAD_ATTR 'last_step' + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'STEP_VINI' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x12, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'current_input_index' + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'input_count' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x12, // LOAD_GLOBAL 'ValueError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x14,0x0e, // LOAD_METHOD 'Scalar' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x0f, // STORE_ATTR 'sumout' + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'STEP_ALL_IN' + 0xb0, // LOAD_FAST 0 + 0x18,0x0a, // STORE_ATTR 'last_step' + 0xb2, // LOAD_FAST 2 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_05_all_inputs_set_all_inputs_set = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_step_05_all_inputs_set_all_inputs_set, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 111, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_monero_signing_step_05_all_inputs_set_all_inputs_set + 5, + .line_info_top = fun_data_apps_monero_signing_step_05_all_inputs_set_all_inputs_set + 18, + .opcodes = fun_data_apps_monero_signing_step_05_all_inputs_set_all_inputs_set + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_signing_step_05_all_inputs_set__lt_module_gt_[] = { + &raw_code_apps_monero_signing_step_05_all_inputs_set_all_inputs_set, +}; + +static const mp_raw_code_t raw_code_apps_monero_signing_step_05_all_inputs_set__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_signing_step_05_all_inputs_set__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = (void *)&children_apps_monero_signing_step_05_all_inputs_set__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_signing_step_05_all_inputs_set__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_signing_step_05_all_inputs_set__lt_module_gt_ + 7, + .opcodes = fun_data_apps_monero_signing_step_05_all_inputs_set__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_signing_step_05_all_inputs_set[19] = { + MP_QSTR_apps_slash_monero_slash_signing_slash_step_05_all_inputs_set_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_all_inputs_set, + MP_QSTR_MoneroTransactionAllInputsSetAck, + MP_QSTR_trezor_dot_messages, + MP_QSTR_crypto, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_mem_trace, + MP_QSTR_step, + MP_QSTR_STEP_ALL_IN, + MP_QSTR_last_step, + MP_QSTR_STEP_VINI, + MP_QSTR_current_input_index, + MP_QSTR_input_count, + MP_QSTR_Scalar, + MP_QSTR_sumout, + MP_QSTR_state, + MP_QSTR_progress, + MP_QSTR_ValueError, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_signing_step_05_all_inputs_set[2] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_state_space_transition), + MP_ROM_QSTR(MP_QSTR_Invalid_space_input_space_count), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_signing_step_05_all_inputs_set = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_signing_step_05_all_inputs_set, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_signing_step_05_all_inputs_set, + }, + .rc = &raw_code_apps_monero_signing_step_05_all_inputs_set__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_signing_step_06_set_output +// - original source file: build/firmware/src/apps/monero/signing/step_06_set_output.mpy +// - frozen file name: apps/monero/signing/step_06_set_output.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/signing/step_06_set_output.py, scope apps_monero_signing_step_06_set_output__lt_module_gt_ +static const byte fun_data_apps_monero_signing_step_06_set_output__lt_module_gt_[161] = { + 0x10,0x50, // prelude + 0x01, // names: + 0x60,0x60,0x4c,0x2c,0x52,0x80,0x0e,0x84,0x61,0x84,0x32,0x84,0x1f,0x84,0x22,0x84,0x4c,0x84,0x1b,0x84,0x15,0x84,0x1d,0x84,0x11,0x89,0x13,0x84,0x20,0x84,0x15,0x84,0x1b,0x84,0x23,0x84,0x16,0x85,0x08, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor' + 0x1c,0x02, // IMPORT_FROM 'utils' + 0x16,0x02, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'offloading_keys' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'apps.monero.signing' + 0x1c,0x04, // IMPORT_FROM 'offloading_keys' + 0x16,0x04, // STORE_NAME 'offloading_keys' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'crypto' + 0x10,0x07, // LOAD_CONST_STRING 'crypto_helpers' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x08, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x06, // IMPORT_FROM 'crypto' + 0x16,0x06, // STORE_NAME 'crypto' + 0x1c,0x07, // IMPORT_FROM 'crypto_helpers' + 0x16,0x07, // STORE_NAME 'crypto_helpers' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x09, // STORE_NAME 'set_output' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x24, // STORE_NAME '_validate' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x2d, // STORE_NAME '_compute_tx_keys' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x37, // STORE_NAME '_set_out_tx_out' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x3c, // STORE_NAME '_range_proof' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x43, // STORE_NAME '_rsig_bp' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x4a, // STORE_NAME '_rsig_process_bp' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x50, // STORE_NAME '_dump_rsig_bp_plus' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x59, // STORE_NAME '_dump_rsig_lr' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x09, // MAKE_FUNCTION_DEFARGS 9 + 0x16,0x5b, // STORE_NAME '_return_rsig_data' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x5d, // STORE_NAME '_get_ecdh_info_and_out_pk' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x63, // STORE_NAME '_ecdh_encode' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x6b, // STORE_NAME '_set_out_additional_keys' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x73, // STORE_NAME '_set_out_derivation' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x16,0x7d, // STORE_NAME '_derive_view_tags' + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x16,0x81,0x01, // STORE_NAME '_is_last_in_batch' + 0x32,0x10, // MAKE_FUNCTION 16 + 0x16,0x81,0x03, // STORE_NAME '_get_rsig_batch' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_signing_step_06_set_output__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_06_set_output.py, scope apps_monero_signing_step_06_set_output_set_output +static const byte fun_data_apps_monero_signing_step_06_set_output_set_output[414] = { + 0xf2,0x14,0x76, // prelude + 0x09,0x81,0x04,0x81,0x05,0x81,0x06,0x21,0x81,0x07,0x81,0x08, // names: set_output, state, dst_entr, dst_entr_hmac, rsig_data, is_offloaded_bp, progress + 0x80,0x21,0x44,0x26,0x67,0x23,0x4f,0x46,0x29,0x46,0x45,0x27,0x4b,0x26,0x2b,0x4b,0x28,0x66,0x2b,0x28,0x66,0x2a,0x28,0x66,0x25,0x4b,0x64,0x6c,0x60,0x22,0x46,0x64,0x6f,0x20,0x28,0x66,0x40,0x2a,0x66,0x20,0x2a,0x26,0x46,0x4b,0x2a,0x2e,0x4e, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x0a, // LOAD_ATTR 'mem_trace' + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x0b, // LOAD_METHOD 'unimport_begin' + 0x36,0x00, // CALL_METHOD 0 + 0xc7, // STORE_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x43,0x4f, // POP_JUMP_IF_TRUE 15 + 0xb5, // LOAD_FAST 5 + 0x14,0x0c, // LOAD_METHOD 'step' + 0xb0, // LOAD_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'STEP_OUT' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'current_output_index' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x24, // LOAD_GLOBAL '_validate' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x34,0x04, // CALL_FUNCTION 4 + 0xc1, // STORE_FAST 1 + 0xb6, // LOAD_FAST 6 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'is_processing_offloaded' + 0x43,0x6e, // POP_JUMP_IF_TRUE 46 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'current_output_index' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'tx_prefix_hasher' + 0x14,0x11, // LOAD_METHOD 'uvarint' + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'output_count' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'output_amounts' + 0x14,0x14, // LOAD_METHOD 'append' + 0xb1, // LOAD_FAST 1 + 0x13,0x15, // LOAD_ATTR 'amount' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x16, // LOAD_ATTR 'summary_outs_money' + 0xb1, // LOAD_FAST 1 + 0x13,0x15, // LOAD_ATTR 'amount' + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x16, // STORE_ATTR 'summary_outs_money' + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x17, // LOAD_METHOD 'unimport_end' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x2d, // LOAD_GLOBAL '_compute_tx_keys' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc8, // STORE_FAST 8 + 0xc9, // STORE_FAST 9 + 0xca, // STORE_FAST 10 + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x17, // LOAD_METHOD 'unimport_end' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x3c, // LOAD_GLOBAL '_range_proof' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xcb, // STORE_FAST 11 + 0xcc, // STORE_FAST 12 + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x17, // LOAD_METHOD 'unimport_end' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'is_processing_offloaded' + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x18, // LOAD_CONST_STRING 'MoneroTransactionSetOutputAck' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x19, // IMPORT_NAME 'trezor.messages' + 0x1c,0x18, // IMPORT_FROM 'MoneroTransactionSetOutputAck' + 0xcd, // STORE_FAST 13 + 0x59, // POP_TOP + 0xbd, // LOAD_FAST 13 + 0x34,0x00, // CALL_FUNCTION 0 + 0x63, // RETURN_VALUE + 0x12,0x37, // LOAD_GLOBAL '_set_out_tx_out' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb8, // LOAD_FAST 8 + 0xba, // LOAD_FAST 10 + 0x34,0x04, // CALL_FUNCTION 4 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xce, // STORE_FAST 14 + 0xcf, // STORE_FAST 15 + 0x28,0x0a, // DELETE_FAST 10 + 0xb6, // LOAD_FAST 6 + 0x8b, // LOAD_CONST_SMALL_INT 11 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x5d, // LOAD_GLOBAL '_get_ecdh_info_and_out_pk' + 0xb0, // LOAD_FAST 0 + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x15, // LOAD_ATTR 'amount' + 0xbc, // LOAD_FAST 12 + 0xb9, // LOAD_FAST 9 + 0x34,0x05, // CALL_FUNCTION 5 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0x26,0x10, // STORE_FAST_N 16 + 0x26,0x11, // STORE_FAST_N 17 + 0x26,0x12, // STORE_FAST_N 18 + 0x28,0x01, // DELETE_FAST 1 + 0x28,0x0c, // DELETE_FAST 12 + 0x28,0x09, // DELETE_FAST 9 + 0x28,0x08, // DELETE_FAST 8 + 0xb6, // LOAD_FAST 6 + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'full_message_hasher' + 0x14,0x1b, // LOAD_METHOD 'set_ecdh' + 0x24,0x12, // LOAD_FAST_N 18 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x8d, // LOAD_CONST_SMALL_INT 13 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'output_pk_commitments' + 0x14,0x14, // LOAD_METHOD 'append' + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'STEP_OUT' + 0xb0, // LOAD_FAST 0 + 0x18,0x1d, // STORE_ATTR 'last_step' + 0xb6, // LOAD_FAST 6 + 0x8e, // LOAD_CONST_SMALL_INT 14 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x18, // LOAD_CONST_STRING 'MoneroTransactionSetOutputAck' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x19, // IMPORT_NAME 'trezor.messages' + 0x1c,0x18, // IMPORT_FROM 'MoneroTransactionSetOutputAck' + 0xcd, // STORE_FAST 13 + 0x59, // POP_TOP + 0x12,0x81,0x09, // LOAD_GLOBAL 'bytearray' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x13, // STORE_FAST_N 19 + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x1e, // LOAD_METHOD 'memcpy' + 0x24,0x13, // LOAD_FAST_N 19 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x24,0x10, // LOAD_FAST_N 16 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x05, // CALL_METHOD 5 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x1e, // LOAD_METHOD 'memcpy' + 0x24,0x13, // LOAD_FAST_N 19 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x24,0x11, // LOAD_FAST_N 17 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x05, // CALL_METHOD 5 + 0x59, // POP_TOP + 0xbd, // LOAD_FAST 13 + 0x10,0x1f, // LOAD_CONST_STRING 'tx_out' + 0xbe, // LOAD_FAST 14 + 0x10,0x20, // LOAD_CONST_STRING 'vouti_hmac' + 0xbf, // LOAD_FAST 15 + 0x10,0x21, // LOAD_CONST_STRING 'rsig_data' + 0xbb, // LOAD_FAST 11 + 0x10,0x22, // LOAD_CONST_STRING 'out_pk' + 0x24,0x13, // LOAD_FAST_N 19 + 0x10,0x23, // LOAD_CONST_STRING 'ecdh_info' + 0x24,0x12, // LOAD_FAST_N 18 + 0x34,0x8a,0x00, // CALL_FUNCTION 1280 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_06_set_output_set_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 6, + .fun_data = fun_data_apps_monero_signing_step_06_set_output_set_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 414, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 31, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_monero_signing_step_06_set_output_set_output + 15, + .line_info_top = fun_data_apps_monero_signing_step_06_set_output_set_output + 62, + .opcodes = fun_data_apps_monero_signing_step_06_set_output_set_output + 62, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_06_set_output__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_06_set_output.py, scope apps_monero_signing_step_06_set_output__validate +static const byte fun_data_apps_monero_signing_step_06_set_output__validate[237] = { + 0xe0,0x04,0x4a, // prelude + 0x24,0x81,0x04,0x81,0x05,0x81,0x06,0x81,0x07, // names: _validate, state, dst_entr, dst_entr_hmac, is_offloaded_bp + 0x80,0x80,0x45,0x2f,0x28,0x28,0x48,0x25,0x2a,0x4b,0x21,0x29,0x45,0x44,0x25,0x49,0x2f,0x21,0x4e,0x4d,0x45,0x24,0x6a,0x2e,0x64,0x42,0x22,0x48, // code info + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x13,0x25, // LOAD_ATTR 'ensure' + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'last_step' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'STEP_ALL_IN' + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'STEP_OUT' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x81,0x0a, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'rsig_offload' + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0x12,0x81,0x0a, // LOAD_GLOBAL 'ValueError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'rsig_offload' + 0x44,0x68, // POP_JUMP_IF_FALSE 40 + 0x12,0x81,0x03, // LOAD_GLOBAL '_get_rsig_batch' + 0xb0, // LOAD_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'current_output_index' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0x12,0x81,0x01, // LOAD_GLOBAL '_is_last_in_batch' + 0xb0, // LOAD_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'current_output_index' + 0xb5, // LOAD_FAST 5 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0xd3, // UNARY_OP 3 + 0x45,0x05, // JUMP_IF_TRUE_OR_POP 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'is_processing_offloaded' + 0xb3, // LOAD_FAST 3 + 0xdc, // BINARY_OP 5 __ne__ + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x0f, // STORE_ATTR 'is_processing_offloaded' + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'is_processing_offloaded' + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0e, // LOAD_ATTR 'current_output_index' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x0e, // STORE_ATTR 'current_output_index' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0xd3, // UNARY_OP 3 + 0x45,0x05, // JUMP_IF_TRUE_OR_POP 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x15, // LOAD_ATTR 'amount' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdb, // BINARY_OP 4 __ge__ + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'current_input_index' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'input_count' + 0xd9, // BINARY_OP 2 __eq__ + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'current_output_index' + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'output_count' + 0xd7, // BINARY_OP 0 __lt__ + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'is_processing_offloaded' + 0x43,0x60, // POP_JUMP_IF_TRUE 32 + 0x12,0x04, // LOAD_GLOBAL 'offloading_keys' + 0x14,0x2a, // LOAD_METHOD 'gen_hmac_tsxdest' + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'key_hmac' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'current_output_index' + 0x36,0x03, // CALL_METHOD 3 + 0xc7, // STORE_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x12,0x06, // LOAD_GLOBAL 'crypto' + 0x14,0x2c, // LOAD_METHOD 'ct_equals' + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x28,0x07, // DELETE_FAST 7 + 0x42,0x42, // JUMP 2 + 0x51, // LOAD_CONST_NONE + 0xc1, // STORE_FAST 1 + 0x28,0x02, // DELETE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD 'mem_trace' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x52, // LOAD_CONST_TRUE + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_06_set_output__validate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_signing_step_06_set_output__validate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 237, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_monero_signing_step_06_set_output__validate + 12, + .line_info_top = fun_data_apps_monero_signing_step_06_set_output__validate + 40, + .opcodes = fun_data_apps_monero_signing_step_06_set_output__validate + 40, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_06_set_output__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_06_set_output.py, scope apps_monero_signing_step_06_set_output__compute_tx_keys +static const byte fun_data_apps_monero_signing_step_06_set_output__compute_tx_keys[120] = { + 0x72,0x2a, // prelude + 0x2d,0x81,0x04,0x81,0x05, // names: _compute_tx_keys, state, dst_entr + 0x80,0xaf,0x40,0x25,0x63,0x47,0x48,0x25,0x66,0x45,0x23,0x4e,0x42,0x4b,0x2d,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'is_processing_offloaded' + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x63, // RETURN_VALUE + 0x12,0x6b, // LOAD_GLOBAL '_set_out_additional_keys' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc2, // STORE_FAST 2 + 0x12,0x73, // LOAD_GLOBAL '_set_out_derivation' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc3, // STORE_FAST 3 + 0x12,0x07, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x2e, // LOAD_METHOD 'derivation_to_scalar' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'current_output_index' + 0x36,0x02, // CALL_METHOD 2 + 0xc4, // STORE_FAST 4 + 0x12,0x07, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x2f, // LOAD_METHOD 'derive_public_key' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'current_output_index' + 0x12,0x07, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x30, // LOAD_METHOD 'decodepoint' + 0xb1, // LOAD_FAST 1 + 0x13,0x31, // LOAD_ATTR 'addr' + 0x13,0x32, // LOAD_ATTR 'spend_public_key' + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x03, // CALL_METHOD 3 + 0xc5, // STORE_FAST 5 + 0x28,0x02, // DELETE_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x33, // LOAD_CONST_STRING 'monero' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x33, // IMPORT_FROM 'monero' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x34, // LOAD_METHOD 'commitment_mask' + 0x12,0x07, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x35, // LOAD_METHOD 'encodeint' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc7, // STORE_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'output_masks' + 0x14,0x14, // LOAD_METHOD 'append' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_06_set_output__compute_tx_keys = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_step_06_set_output__compute_tx_keys, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 120, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_monero_signing_step_06_set_output__compute_tx_keys + 7, + .line_info_top = fun_data_apps_monero_signing_step_06_set_output__compute_tx_keys + 23, + .opcodes = fun_data_apps_monero_signing_step_06_set_output__compute_tx_keys + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_06_set_output__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_06_set_output.py, scope apps_monero_signing_step_06_set_output__set_out_tx_out +static const byte fun_data_apps_monero_signing_step_06_set_output__set_out_tx_out[144] = { + 0xe8,0x04,0x36, // prelude + 0x37,0x81,0x04,0x81,0x05,0x81,0x0b,0x81,0x0c, // names: _set_out_tx_out, state, dst_entr, tx_out_key, derivation + 0x80,0xd1,0x60,0x26,0x2d,0x24,0x20,0x4a,0x2a,0x23,0x29,0x46,0x68,0x29,0x68,0x24,0x4b,0x28, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'hard_fork' + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0xdb, // BINARY_OP 4 __ge__ + 0xc4, // STORE_FAST 4 + 0x12,0x81,0x09, // LOAD_GLOBAL 'bytearray' + 0xb4, // LOAD_FAST 4 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0xa3, // LOAD_CONST_SMALL_INT 35 + 0x42,0x41, // JUMP 1 + 0xa2, // LOAD_CONST_SMALL_INT 34 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x56, // STORE_SUBSCR + 0xb4, // LOAD_FAST 4 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x42,0x41, // JUMP 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xb5, // LOAD_FAST 5 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x56, // STORE_SUBSCR + 0x12,0x06, // LOAD_GLOBAL 'crypto' + 0x14,0x39, // LOAD_METHOD 'encodepoint_into' + 0xb5, // LOAD_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x12,0x7d, // LOAD_GLOBAL '_derive_view_tags' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'current_output_index' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb5, // LOAD_FAST 5 + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x56, // STORE_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD 'mem_trace' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x52, // LOAD_CONST_TRUE + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'tx_prefix_hasher' + 0x14,0x3a, // LOAD_METHOD 'buffer' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD 'mem_trace' + 0x89, // LOAD_CONST_SMALL_INT 9 + 0x52, // LOAD_CONST_TRUE + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'offloading_keys' + 0x14,0x3b, // LOAD_METHOD 'gen_hmac_vouti' + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'key_hmac' + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'current_output_index' + 0x36,0x04, // CALL_METHOD 4 + 0xc7, // STORE_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD 'mem_trace' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x52, // LOAD_CONST_TRUE + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0xb7, // LOAD_FAST 7 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_06_set_output__set_out_tx_out = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_signing_step_06_set_output__set_out_tx_out, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 144, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 55, + .line_info = fun_data_apps_monero_signing_step_06_set_output__set_out_tx_out + 12, + .line_info_top = fun_data_apps_monero_signing_step_06_set_output__set_out_tx_out + 30, + .opcodes = fun_data_apps_monero_signing_step_06_set_output__set_out_tx_out + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_06_set_output__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_06_set_output.py, scope apps_monero_signing_step_06_set_output__range_proof +static const byte fun_data_apps_monero_signing_step_06_set_output__range_proof[313] = { + 0x82,0x10,0x5a, // prelude + 0x3c,0x81,0x04,0x21, // names: _range_proof, state, rsig_data + 0x80,0xf0,0x60,0x60,0x4b,0x24,0x44,0x22,0x34,0x24,0x26,0x66,0x2a,0x2b,0x29,0x46,0x2c,0x66,0x2c,0x65,0x23,0x20,0x75,0x20,0x65,0x20,0x42,0x31,0x43,0x6b,0x20,0x62,0x20,0x47,0x71,0x23,0x70,0x71,0x20,0x24,0x44, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3d, // LOAD_CONST_STRING 'Error' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'apps.monero.signing' + 0x1c,0x3d, // IMPORT_FROM 'Error' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'rsig_offload' + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'is_processing_offloaded' + 0xc4, // STORE_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb1, // LOAD_FAST 1 + 0x13,0x3e, // LOAD_ATTR 'rsig' + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x12,0x81,0x0d, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x3e, // LOAD_ATTR 'rsig' + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x3e, // LOAD_ATTR 'rsig' + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb5, // LOAD_FAST 5 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb2, // LOAD_FAST 2 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x81,0x03, // LOAD_GLOBAL '_get_rsig_batch' + 0xb0, // LOAD_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'current_output_index' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc6, // STORE_FAST 6 + 0x12,0x81,0x01, // LOAD_GLOBAL '_is_last_in_batch' + 0xb0, // LOAD_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'current_output_index' + 0xb6, // LOAD_FAST 6 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc7, // STORE_FAST 7 + 0xb3, // LOAD_FAST 3 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb5, // LOAD_FAST 5 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb7, // LOAD_FAST 7 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb2, // LOAD_FAST 2 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb7, // LOAD_FAST 7 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb5, // LOAD_FAST 5 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb4, // LOAD_FAST 4 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb2, // LOAD_FAST 2 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'output_masks' + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x55, // LOAD_SUBSCR + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x46,0x01, // JUMP_IF_FALSE_OR_POP 1 + 0xb3, // LOAD_FAST 3 + 0xc9, // STORE_FAST 9 + 0xb7, // LOAD_FAST 7 + 0x43,0x5a, // POP_JUMP_IF_TRUE 26 + 0xb9, // LOAD_FAST 9 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x12,0x5b, // LOAD_GLOBAL '_return_rsig_data' + 0x10,0x3f, // LOAD_CONST_STRING 'mask' + 0x12,0x07, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x35, // LOAD_METHOD 'encodeint' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0xb8, // LOAD_FAST 8 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0xcb, // STORE_FAST 11 + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD 'mem_trace' + 0x42,0x44, // JUMP 4 + 0x10,0x40, // LOAD_CONST_STRING 'pre-rproof' + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0x10,0x41, // LOAD_CONST_STRING 'collect' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x01, // CALL_METHOD 257 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0x12,0x43, // LOAD_GLOBAL '_rsig_bp' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcb, // STORE_FAST 11 + 0x42,0x4c, // JUMP 12 + 0xb4, // LOAD_FAST 4 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x42,0x47, // JUMP 7 + 0x12,0x4a, // LOAD_GLOBAL '_rsig_process_bp' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD 'mem_trace' + 0x42,0x44, // JUMP 4 + 0x10,0x42, // LOAD_CONST_STRING 'rproof' + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0x10,0x41, // LOAD_CONST_STRING 'collect' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x01, // CALL_METHOD 257 + 0x59, // POP_TOP + 0x12,0x5b, // LOAD_GLOBAL '_return_rsig_data' + 0xbb, // LOAD_FAST 11 + 0xb9, // LOAD_FAST 9 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x07, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x35, // LOAD_METHOD 'encodeint' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0x34,0x02, // CALL_FUNCTION 2 + 0xca, // STORE_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'current_output_index' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'output_count' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb3, // LOAD_FAST 3 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0xb4, // LOAD_FAST 4 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x13, // STORE_ATTR 'output_amounts' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x36, // STORE_ATTR 'output_masks' + 0xba, // LOAD_FAST 10 + 0xb8, // LOAD_FAST 8 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_06_set_output__range_proof = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_step_06_set_output__range_proof, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 313, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 60, + .line_info = fun_data_apps_monero_signing_step_06_set_output__range_proof + 7, + .line_info_top = fun_data_apps_monero_signing_step_06_set_output__range_proof + 48, + .opcodes = fun_data_apps_monero_signing_step_06_set_output__range_proof + 48, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_06_set_output__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_06_set_output.py, scope apps_monero_signing_step_06_set_output__rsig_bp +static const byte fun_data_apps_monero_signing_step_06_set_output__rsig_bp[136] = { + 0x41,0x26, // prelude + 0x43,0x81,0x04, // names: _rsig_bp, state + 0x90,0x3a,0x20,0x4b,0x23,0x49,0x71,0x60,0x2d,0x51,0x26,0x23,0x78,0x20,0x25,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x44, // LOAD_CONST_STRING 'range_signatures' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x44, // IMPORT_FROM 'range_signatures' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x45, // LOAD_METHOD 'prove_range_bp_batch' + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'output_amounts' + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'output_masks' + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD 'mem_trace' + 0x42,0x44, // JUMP 4 + 0x10,0x46, // LOAD_CONST_STRING 'post-bp' + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0x10,0x41, // LOAD_CONST_STRING 'collect' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x01, // CALL_METHOD 257 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'full_message_hasher' + 0x14,0x47, // LOAD_METHOD 'rsig_val' + 0xb2, // LOAD_FAST 2 + 0x10,0x48, // LOAD_CONST_STRING 'raw' + 0x50, // LOAD_CONST_FALSE + 0x36,0x82,0x01, // CALL_METHOD 257 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD 'mem_trace' + 0x42,0x44, // JUMP 4 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0x10,0x41, // LOAD_CONST_STRING 'collect' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x01, // CALL_METHOD 257 + 0x59, // POP_TOP + 0x12,0x50, // LOAD_GLOBAL '_dump_rsig_bp_plus' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD 'mem_trace' + 0x42,0x4e, // JUMP 14 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x14,0x49, // LOAD_METHOD 'format' + 0x12,0x81,0x0d, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0x10,0x41, // LOAD_CONST_STRING 'collect' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x01, // CALL_METHOD 257 + 0x59, // POP_TOP + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x36, // STORE_ATTR 'output_masks' + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x13, // STORE_ATTR 'output_amounts' + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_06_set_output__rsig_bp = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_signing_step_06_set_output__rsig_bp, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 136, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 67, + .line_info = fun_data_apps_monero_signing_step_06_set_output__rsig_bp + 5, + .line_info_top = fun_data_apps_monero_signing_step_06_set_output__rsig_bp + 21, + .opcodes = fun_data_apps_monero_signing_step_06_set_output__rsig_bp + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_06_set_output__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_06_set_output.py, scope apps_monero_signing_step_06_set_output__rsig_process_bp +static const byte fun_data_apps_monero_signing_step_06_set_output__rsig_process_bp[129] = { + 0x5a,0x22, // prelude + 0x4a,0x81,0x04,0x21, // names: _rsig_process_bp, state, rsig_data + 0x90,0x55,0x30,0x4b,0x2a,0x64,0x40,0x2d,0x2d,0x2a,0x31,0x64,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x44, // LOAD_CONST_STRING 'range_signatures' + 0x10,0x4b, // LOAD_CONST_STRING 'serialize' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x08, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x44, // IMPORT_FROM 'range_signatures' + 0xc2, // STORE_FAST 2 + 0x1c,0x4b, // IMPORT_FROM 'serialize' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x4c, // LOAD_CONST_STRING 'BulletproofPlus' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x4d, // IMPORT_NAME 'apps.monero.xmr.serialize_messages.tx_rsig_bulletproof' + 0x1c,0x4c, // IMPORT_FROM 'BulletproofPlus' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x4e, // LOAD_METHOD 'parse_msg' + 0xb1, // LOAD_FAST 1 + 0x13,0x3e, // LOAD_ATTR 'rsig' + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0xc5, // STORE_FAST 5 + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x18,0x3e, // STORE_ATTR 'rsig' + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'full_message_hasher' + 0x14,0x47, // LOAD_METHOD 'rsig_val' + 0xb5, // LOAD_FAST 5 + 0x10,0x48, // LOAD_CONST_STRING 'raw' + 0x50, // LOAD_CONST_FALSE + 0x36,0x82,0x01, // CALL_METHOD 257 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x4f, // LOAD_METHOD 'verify_bp' + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'output_amounts' + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'output_masks' + 0x36,0x03, // CALL_METHOD 3 + 0xc6, // STORE_FAST 6 + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x25, // LOAD_METHOD 'ensure' + 0xb6, // LOAD_FAST 6 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x0a, // LOAD_METHOD 'mem_trace' + 0x42,0x44, // JUMP 4 + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0x10,0x41, // LOAD_CONST_STRING 'collect' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x01, // CALL_METHOD 257 + 0x59, // POP_TOP + 0x28,0x05, // DELETE_FAST 5 + 0x28,0x02, // DELETE_FAST 2 + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x13, // STORE_ATTR 'output_amounts' + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x36, // STORE_ATTR 'output_masks' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_06_set_output__rsig_process_bp = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_step_06_set_output__rsig_process_bp, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 129, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 74, + .line_info = fun_data_apps_monero_signing_step_06_set_output__rsig_process_bp + 6, + .line_info_top = fun_data_apps_monero_signing_step_06_set_output__rsig_process_bp + 19, + .opcodes = fun_data_apps_monero_signing_step_06_set_output__rsig_process_bp + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_06_set_output__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_06_set_output.py, scope apps_monero_signing_step_06_set_output__dump_rsig_bp_plus +static const byte fun_data_apps_monero_signing_step_06_set_output__dump_rsig_bp_plus[127] = { + 0x79,0x26, // prelude + 0x50,0x3e, // names: _dump_rsig_bp_plus, rsig + 0x90,0x6a,0x2e,0x88,0x08,0x31,0x47,0x23,0x20,0x23,0x23,0x23,0x23,0x23,0x6e,0x50,0x2a, // code info + 0x12,0x81,0x0d, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x51, // LOAD_ATTR 'L' + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x81,0x0a, // LOAD_GLOBAL 'ValueError' + 0x10,0x52, // LOAD_CONST_STRING 'Too large' + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x12,0x81,0x0d, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x51, // LOAD_ATTR 'L' + 0x34,0x01, // CALL_FUNCTION 1 + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0xf4, // BINARY_OP 29 __mul__ + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf2, // BINARY_OP 27 __add__ + 0xc1, // STORE_FAST 1 + 0x12,0x81,0x09, // LOAD_GLOBAL 'bytearray' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x12,0x81,0x0e, // LOAD_GLOBAL 'enumerate' + 0xb0, // LOAD_FAST 0 + 0x13,0x53, // LOAD_ATTR 'A' + 0xb0, // LOAD_FAST 0 + 0x13,0x54, // LOAD_ATTR 'A1' + 0xb0, // LOAD_FAST 0 + 0x13,0x55, // LOAD_ATTR 'B' + 0xb0, // LOAD_FAST 0 + 0x13,0x56, // LOAD_ATTR 'r1' + 0xb0, // LOAD_FAST 0 + 0x13,0x57, // LOAD_ATTR 's1' + 0xb0, // LOAD_FAST 0 + 0x13,0x58, // LOAD_ATTR 'd1' + 0x2a,0x06, // BUILD_TUPLE 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x14, // FOR_ITER 20 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x1e, // LOAD_METHOD 'memcpy' + 0xb2, // LOAD_FAST 2 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xb3, // LOAD_FAST 3 + 0xf4, // BINARY_OP 29 __mul__ + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x05, // CALL_METHOD 5 + 0x59, // POP_TOP + 0x42,0x2a, // JUMP -22 + 0x12,0x59, // LOAD_GLOBAL '_dump_rsig_lr' + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x40, // LOAD_CONST_SMALL_INT 192 + 0xb0, // LOAD_FAST 0 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_06_set_output__dump_rsig_bp_plus = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_signing_step_06_set_output__dump_rsig_bp_plus, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 127, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 80, + .line_info = fun_data_apps_monero_signing_step_06_set_output__dump_rsig_bp_plus + 4, + .line_info_top = fun_data_apps_monero_signing_step_06_set_output__dump_rsig_bp_plus + 21, + .opcodes = fun_data_apps_monero_signing_step_06_set_output__dump_rsig_bp_plus + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_06_set_output__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_06_set_output.py, scope apps_monero_signing_step_06_set_output__dump_rsig_lr +static const byte fun_data_apps_monero_signing_step_06_set_output__dump_rsig_lr[102] = { + 0x73,0x24, // prelude + 0x59,0x81,0x0f,0x81,0x10,0x3e, // names: _dump_rsig_lr, buff, offset, rsig + 0x90,0x87,0x2b,0x44,0x27,0x2c,0x46,0x2b,0x44,0x27,0x2c,0x26, // code info + 0x12,0x81,0x0d, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x13,0x51, // LOAD_ATTR 'L' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x56, // STORE_SUBSCR + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc1, // STORE_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x51, // LOAD_ATTR 'L' + 0x5f, // GET_ITER_STACK + 0x4b,0x13, // FOR_ITER 19 + 0xc3, // STORE_FAST 3 + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x1e, // LOAD_METHOD 'memcpy' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x05, // CALL_METHOD 5 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc1, // STORE_FAST 1 + 0x42,0x2b, // JUMP -21 + 0x12,0x81,0x0d, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x13,0x5a, // LOAD_ATTR 'R' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x56, // STORE_SUBSCR + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc1, // STORE_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x5a, // LOAD_ATTR 'R' + 0x5f, // GET_ITER_STACK + 0x4b,0x13, // FOR_ITER 19 + 0xc3, // STORE_FAST 3 + 0x12,0x02, // LOAD_GLOBAL 'utils' + 0x14,0x1e, // LOAD_METHOD 'memcpy' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x05, // CALL_METHOD 5 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc1, // STORE_FAST 1 + 0x42,0x2b, // JUMP -21 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_06_set_output__dump_rsig_lr = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_signing_step_06_set_output__dump_rsig_lr, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 102, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 89, + .line_info = fun_data_apps_monero_signing_step_06_set_output__dump_rsig_lr + 8, + .line_info_top = fun_data_apps_monero_signing_step_06_set_output__dump_rsig_lr + 20, + .opcodes = fun_data_apps_monero_signing_step_06_set_output__dump_rsig_lr + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_06_set_output__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_06_set_output.py, scope apps_monero_signing_step_06_set_output__return_rsig_data +static const byte fun_data_apps_monero_signing_step_06_set_output__return_rsig_data[60] = { + 0xaa,0x80,0x01,0x1a, // prelude + 0x5b,0x3e,0x3f, // names: _return_rsig_data, rsig, mask + 0x90,0x9a,0x2a,0x42,0x4b,0x44,0x23,0x44,0x23,0x44, // code info + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x5c, // LOAD_CONST_STRING 'MoneroTransactionRsigData' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x19, // IMPORT_NAME 'trezor.messages' + 0x1c,0x5c, // IMPORT_FROM 'MoneroTransactionRsigData' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x18,0x3f, // STORE_ATTR 'mask' + 0xb0, // LOAD_FAST 0 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x18,0x3e, // STORE_ATTR 'rsig' + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_06_set_output__return_rsig_data = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_step_06_set_output__return_rsig_data, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 60, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 91, + .line_info = fun_data_apps_monero_signing_step_06_set_output__return_rsig_data + 7, + .line_info_top = fun_data_apps_monero_signing_step_06_set_output__return_rsig_data + 17, + .opcodes = fun_data_apps_monero_signing_step_06_set_output__return_rsig_data + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_06_set_output__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_06_set_output.py, scope apps_monero_signing_step_06_set_output__get_ecdh_info_and_out_pk +static const byte fun_data_apps_monero_signing_step_06_set_output__get_ecdh_info_and_out_pk[117] = { + 0xf1,0x04,0x2e, // prelude + 0x5d,0x81,0x04,0x81,0x0b,0x15,0x3f,0x81,0x11, // names: _get_ecdh_info_and_out_pk, state, tx_out_key, amount, mask, amount_key + 0x90,0xb1,0x60,0x40,0x45,0x28,0x4a,0x28,0x2e,0x6d,0x60,0x27,0x2e,0x46, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x5e, // IMPORT_NAME 'gc' + 0xc5, // STORE_FAST 5 + 0x12,0x07, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x5f, // LOAD_METHOD 'encodepoint' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0x12,0x06, // LOAD_GLOBAL 'crypto' + 0x14,0x60, // LOAD_METHOD 'gen_commitment_into' + 0x51, // LOAD_CONST_NONE + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0xc7, // STORE_FAST 7 + 0x12,0x07, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x5f, // LOAD_METHOD 'encodepoint' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0xc7, // STORE_FAST 7 + 0x12,0x06, // LOAD_GLOBAL 'crypto' + 0x14,0x61, // LOAD_METHOD 'sc_add_into' + 0xb0, // LOAD_FAST 0 + 0x13,0x62, // LOAD_ATTR 'sumout' + 0xb0, // LOAD_FAST 0 + 0x13,0x62, // LOAD_ATTR 'sumout' + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x63, // LOAD_GLOBAL '_ecdh_encode' + 0xb2, // LOAD_FAST 2 + 0x12,0x07, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x35, // LOAD_METHOD 'encodeint' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc8, // STORE_FAST 8 + 0x12,0x81,0x09, // LOAD_GLOBAL 'bytearray' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0xb8, // LOAD_FAST 8 + 0x13,0x15, // LOAD_ATTR 'amount' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb9, // LOAD_FAST 9 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0xb5, // LOAD_FAST 5 + 0x14,0x41, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0xb9, // LOAD_FAST 9 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_06_set_output__get_ecdh_info_and_out_pk = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_monero_signing_step_06_set_output__get_ecdh_info_and_out_pk, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 117, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 93, + .line_info = fun_data_apps_monero_signing_step_06_set_output__get_ecdh_info_and_out_pk + 12, + .line_info_top = fun_data_apps_monero_signing_step_06_set_output__get_ecdh_info_and_out_pk + 26, + .opcodes = fun_data_apps_monero_signing_step_06_set_output__get_ecdh_info_and_out_pk + 26, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_06_set_output__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_06_set_output.py, scope apps_monero_signing_step_06_set_output__ecdh_encode +static const byte fun_data_apps_monero_signing_step_06_set_output__ecdh_encode[112] = { + 0x62,0x22, // prelude + 0x63,0x15,0x81,0x11, // names: _ecdh_encode, amount, amount_key + 0x90,0xcb,0x60,0x4b,0x33,0x28,0x6b,0x20,0x27,0x28,0x27,0x49,0x2b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x64, // LOAD_CONST_STRING 'EcdhTuple' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x65, // IMPORT_NAME 'apps.monero.xmr.serialize_messages.tx_ecdh' + 0x1c,0x64, // IMPORT_FROM 'EcdhTuple' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x10,0x3f, // LOAD_CONST_STRING 'mask' + 0x12,0x07, // LOAD_GLOBAL 'crypto_helpers' + 0x13,0x66, // LOAD_ATTR 'NULL_KEY_ENC' + 0x10,0x15, // LOAD_CONST_STRING 'amount' + 0x12,0x81,0x09, // LOAD_GLOBAL 'bytearray' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0xc3, // STORE_FAST 3 + 0x12,0x06, // LOAD_GLOBAL 'crypto' + 0x14,0x67, // LOAD_METHOD 'Scalar' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0x12,0x06, // LOAD_GLOBAL 'crypto' + 0x14,0x68, // LOAD_METHOD 'encodeint_into' + 0xb3, // LOAD_FAST 3 + 0x13,0x15, // LOAD_ATTR 'amount' + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x81,0x09, // LOAD_GLOBAL 'bytearray' + 0xa6, // LOAD_CONST_SMALL_INT 38 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0x12,0x06, // LOAD_GLOBAL 'crypto' + 0x14,0x69, // LOAD_METHOD 'fast_hash_into' + 0x51, // LOAD_CONST_NONE + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0xc6, // STORE_FAST 6 + 0x12,0x07, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x6a, // LOAD_METHOD 'xor8' + 0xb3, // LOAD_FAST 3 + 0x13,0x15, // LOAD_ATTR 'amount' + 0xb6, // LOAD_FAST 6 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_06_set_output__ecdh_encode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_step_06_set_output__ecdh_encode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 112, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 99, + .line_info = fun_data_apps_monero_signing_step_06_set_output__ecdh_encode + 6, + .line_info_top = fun_data_apps_monero_signing_step_06_set_output__ecdh_encode + 19, + .opcodes = fun_data_apps_monero_signing_step_06_set_output__ecdh_encode + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_06_set_output__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_06_set_output.py, scope apps_monero_signing_step_06_set_output__set_out_additional_keys +static const byte fun_data_apps_monero_signing_step_06_set_output__set_out_additional_keys[99] = { + 0x42,0x26, // prelude + 0x6b,0x81,0x04,0x81,0x05, // names: _set_out_additional_keys, state, dst_entr + 0x90,0xe2,0x60,0x20,0x25,0x42,0x47,0x45,0x2c,0x6c,0x40,0x49,0x2f,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x6c, // LOAD_ATTR 'need_additional_txkeys' + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x06, // LOAD_GLOBAL 'crypto' + 0x14,0x6d, // LOAD_METHOD 'random_scalar' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x6e, // LOAD_ATTR 'is_subaddress' + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0x12,0x07, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x30, // LOAD_METHOD 'decodepoint' + 0xb1, // LOAD_FAST 1 + 0x13,0x31, // LOAD_ATTR 'addr' + 0x13,0x32, // LOAD_ATTR 'spend_public_key' + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x12,0x06, // LOAD_GLOBAL 'crypto' + 0x14,0x6f, // LOAD_METHOD 'scalarmult_into' + 0xb3, // LOAD_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x42,0x49, // JUMP 9 + 0x12,0x06, // LOAD_GLOBAL 'crypto' + 0x14,0x70, // LOAD_METHOD 'scalarmult_base_into' + 0x51, // LOAD_CONST_NONE + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x71, // LOAD_ATTR 'additional_tx_public_keys' + 0x14,0x14, // LOAD_METHOD 'append' + 0x12,0x07, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x5f, // LOAD_METHOD 'encodepoint' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x72, // LOAD_ATTR 'additional_tx_private_keys' + 0x14,0x14, // LOAD_METHOD 'append' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_06_set_output__set_out_additional_keys = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_step_06_set_output__set_out_additional_keys, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 99, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 107, + .line_info = fun_data_apps_monero_signing_step_06_set_output__set_out_additional_keys + 7, + .line_info_top = fun_data_apps_monero_signing_step_06_set_output__set_out_additional_keys + 21, + .opcodes = fun_data_apps_monero_signing_step_06_set_output__set_out_additional_keys + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_06_set_output__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_06_set_output.py, scope apps_monero_signing_step_06_set_output__set_out_derivation +static const byte fun_data_apps_monero_signing_step_06_set_output__set_out_derivation[109] = { + 0x5b,0x2c, // prelude + 0x73,0x81,0x04,0x81,0x05,0x81,0x12, // names: _set_out_derivation, state, dst_entr, additional_txkey_priv + 0x90,0xff,0x80,0x09,0x4b,0x26,0x4c,0x24,0x6d,0x40,0x2a,0x44,0x24,0x24,0x4f, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x74, // LOAD_CONST_STRING 'addr_eq' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x75, // IMPORT_NAME 'apps.monero.xmr.addresses' + 0x1c,0x74, // IMPORT_FROM 'addr_eq' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x76, // LOAD_METHOD 'change_address' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x31, // LOAD_ATTR 'addr' + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x12,0x07, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x77, // LOAD_METHOD 'generate_key_derivation' + 0xb0, // LOAD_FAST 0 + 0x13,0x78, // LOAD_ATTR 'tx_pub' + 0xb0, // LOAD_FAST 0 + 0x13,0x79, // LOAD_ATTR 'creds' + 0x13,0x7a, // LOAD_ATTR 'view_key_private' + 0x36,0x02, // CALL_METHOD 2 + 0xc5, // STORE_FAST 5 + 0x42,0x65, // JUMP 37 + 0xb1, // LOAD_FAST 1 + 0x13,0x6e, // LOAD_ATTR 'is_subaddress' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x6c, // LOAD_ATTR 'need_additional_txkeys' + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb2, // LOAD_FAST 2 + 0xc6, // STORE_FAST 6 + 0x42,0x44, // JUMP 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x7b, // LOAD_ATTR 'tx_priv' + 0xc6, // STORE_FAST 6 + 0x12,0x07, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x77, // LOAD_METHOD 'generate_key_derivation' + 0x12,0x07, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x30, // LOAD_METHOD 'decodepoint' + 0xb1, // LOAD_FAST 1 + 0x13,0x31, // LOAD_ATTR 'addr' + 0x13,0x7c, // LOAD_ATTR 'view_public_key' + 0x36,0x01, // CALL_METHOD 1 + 0xb6, // LOAD_FAST 6 + 0x36,0x02, // CALL_METHOD 2 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_06_set_output__set_out_derivation = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_signing_step_06_set_output__set_out_derivation, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 109, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 115, + .line_info = fun_data_apps_monero_signing_step_06_set_output__set_out_derivation + 9, + .line_info_top = fun_data_apps_monero_signing_step_06_set_output__set_out_derivation + 24, + .opcodes = fun_data_apps_monero_signing_step_06_set_output__set_out_derivation + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_06_set_output__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_06_set_output.py, scope apps_monero_signing_step_06_set_output__derive_view_tags +static const byte fun_data_apps_monero_signing_step_06_set_output__derive_view_tags[105] = { + 0x4a,0x28, // prelude + 0x7d,0x81,0x0c,0x81,0x13, // names: _derive_view_tags, derivation, output_index + 0xa0,0x1e,0x60,0x20,0x27,0x27,0x28,0x29,0x67,0x20,0x27,0x48,0x24,0x2c,0x27, // code info + 0x12,0x81,0x09, // LOAD_GLOBAL 'bytearray' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x12,0x07, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x7e, // LOAD_METHOD 'get_keccak' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x14,0x7f, // LOAD_METHOD 'update' + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'crypto' + 0x14,0x39, // LOAD_METHOD 'encodepoint_into' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x7f, // LOAD_METHOD 'update' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x81,0x0a, // LOAD_GLOBAL 'ValueError' + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x56, // STORE_SUBSCR + 0xb3, // LOAD_FAST 3 + 0x14,0x7f, // LOAD_METHOD 'update' + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x81,0x00, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_06_set_output__derive_view_tags = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_step_06_set_output__derive_view_tags, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 105, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 125, + .line_info = fun_data_apps_monero_signing_step_06_set_output__derive_view_tags + 7, + .line_info_top = fun_data_apps_monero_signing_step_06_set_output__derive_view_tags + 22, + .opcodes = fun_data_apps_monero_signing_step_06_set_output__derive_view_tags + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_06_set_output__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_06_set_output.py, scope apps_monero_signing_step_06_set_output__is_last_in_batch +static const byte fun_data_apps_monero_signing_step_06_set_output__is_last_in_batch[42] = { + 0x43,0x18, // prelude + 0x81,0x01,0x81,0x04,0x81,0x14,0x81,0x15, // names: _is_last_in_batch, state, idx, bidx + 0xa0,0x34,0x60,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x02, // LOAD_ATTR 'rsig_grouping' + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x12,0x81,0x16, // LOAD_GLOBAL 'sum' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x02, // LOAD_ATTR 'rsig_grouping' + 0x51, // LOAD_CONST_NONE + 0xb2, // LOAD_FAST 2 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb3, // LOAD_FAST 3 + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_06_set_output__is_last_in_batch = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_signing_step_06_set_output__is_last_in_batch, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 129, + .line_info = fun_data_apps_monero_signing_step_06_set_output__is_last_in_batch + 10, + .line_info_top = fun_data_apps_monero_signing_step_06_set_output__is_last_in_batch + 14, + .opcodes = fun_data_apps_monero_signing_step_06_set_output__is_last_in_batch + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_06_set_output__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_06_set_output.py, scope apps_monero_signing_step_06_set_output__get_rsig_batch +static const byte fun_data_apps_monero_signing_step_06_set_output__get_rsig_batch[46] = { + 0x32,0x1c, // prelude + 0x81,0x03,0x81,0x04,0x81,0x14, // names: _get_rsig_batch, state, idx + 0xa0,0x3c,0x60,0x22,0x22,0x22,0x29,0x2b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc2, // STORE_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc3, // STORE_FAST 3 + 0x42,0x4d, // JUMP 13 + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x02, // LOAD_ATTR 'rsig_grouping' + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2c, // POP_JUMP_IF_TRUE -20 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_06_set_output__get_rsig_batch = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_step_06_set_output__get_rsig_batch, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 131, + .line_info = fun_data_apps_monero_signing_step_06_set_output__get_rsig_batch + 8, + .line_info_top = fun_data_apps_monero_signing_step_06_set_output__get_rsig_batch + 16, + .opcodes = fun_data_apps_monero_signing_step_06_set_output__get_rsig_batch + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_signing_step_06_set_output__lt_module_gt_[] = { + &raw_code_apps_monero_signing_step_06_set_output_set_output, + &raw_code_apps_monero_signing_step_06_set_output__validate, + &raw_code_apps_monero_signing_step_06_set_output__compute_tx_keys, + &raw_code_apps_monero_signing_step_06_set_output__set_out_tx_out, + &raw_code_apps_monero_signing_step_06_set_output__range_proof, + &raw_code_apps_monero_signing_step_06_set_output__rsig_bp, + &raw_code_apps_monero_signing_step_06_set_output__rsig_process_bp, + &raw_code_apps_monero_signing_step_06_set_output__dump_rsig_bp_plus, + &raw_code_apps_monero_signing_step_06_set_output__dump_rsig_lr, + &raw_code_apps_monero_signing_step_06_set_output__return_rsig_data, + &raw_code_apps_monero_signing_step_06_set_output__get_ecdh_info_and_out_pk, + &raw_code_apps_monero_signing_step_06_set_output__ecdh_encode, + &raw_code_apps_monero_signing_step_06_set_output__set_out_additional_keys, + &raw_code_apps_monero_signing_step_06_set_output__set_out_derivation, + &raw_code_apps_monero_signing_step_06_set_output__derive_view_tags, + &raw_code_apps_monero_signing_step_06_set_output__is_last_in_batch, + &raw_code_apps_monero_signing_step_06_set_output__get_rsig_batch, +}; + +static const mp_raw_code_t raw_code_apps_monero_signing_step_06_set_output__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_signing_step_06_set_output__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 161, + #endif + .children = (void *)&children_apps_monero_signing_step_06_set_output__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 17, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_signing_step_06_set_output__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_signing_step_06_set_output__lt_module_gt_ + 42, + .opcodes = fun_data_apps_monero_signing_step_06_set_output__lt_module_gt_ + 42, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_signing_step_06_set_output[151] = { + MP_QSTR_apps_slash_monero_slash_signing_slash_step_06_set_output_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_offloading_keys, + MP_QSTR_apps_dot_monero_dot_signing, + MP_QSTR_crypto, + MP_QSTR_crypto_helpers, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_set_output, + MP_QSTR_mem_trace, + MP_QSTR_unimport_begin, + MP_QSTR_step, + MP_QSTR_STEP_OUT, + MP_QSTR_current_output_index, + MP_QSTR_is_processing_offloaded, + MP_QSTR_tx_prefix_hasher, + MP_QSTR_uvarint, + MP_QSTR_output_count, + MP_QSTR_output_amounts, + MP_QSTR_append, + MP_QSTR_amount, + MP_QSTR_summary_outs_money, + MP_QSTR_unimport_end, + MP_QSTR_MoneroTransactionSetOutputAck, + MP_QSTR_trezor_dot_messages, + MP_QSTR_full_message_hasher, + MP_QSTR_set_ecdh, + MP_QSTR_output_pk_commitments, + MP_QSTR_last_step, + MP_QSTR_memcpy, + MP_QSTR_tx_out, + MP_QSTR_vouti_hmac, + MP_QSTR_rsig_data, + MP_QSTR_out_pk, + MP_QSTR_ecdh_info, + MP_QSTR__validate, + MP_QSTR_ensure, + MP_QSTR_STEP_ALL_IN, + MP_QSTR_rsig_offload, + MP_QSTR_current_input_index, + MP_QSTR_input_count, + MP_QSTR_gen_hmac_tsxdest, + MP_QSTR_key_hmac, + MP_QSTR_ct_equals, + MP_QSTR__compute_tx_keys, + MP_QSTR_derivation_to_scalar, + MP_QSTR_derive_public_key, + MP_QSTR_decodepoint, + MP_QSTR_addr, + MP_QSTR_spend_public_key, + MP_QSTR_monero, + MP_QSTR_commitment_mask, + MP_QSTR_encodeint, + MP_QSTR_output_masks, + MP_QSTR__set_out_tx_out, + MP_QSTR_hard_fork, + MP_QSTR_encodepoint_into, + MP_QSTR_buffer, + MP_QSTR_gen_hmac_vouti, + MP_QSTR__range_proof, + MP_QSTR_Error, + MP_QSTR_rsig, + MP_QSTR_mask, + MP_QSTR_pre_hyphen_rproof, + MP_QSTR_collect, + MP_QSTR_rproof, + MP_QSTR__rsig_bp, + MP_QSTR_range_signatures, + MP_QSTR_prove_range_bp_batch, + MP_QSTR_post_hyphen_bp, + MP_QSTR_rsig_val, + MP_QSTR_raw, + MP_QSTR_format, + MP_QSTR__rsig_process_bp, + MP_QSTR_serialize, + MP_QSTR_BulletproofPlus, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_messages_dot_tx_rsig_bulletproof, + MP_QSTR_parse_msg, + MP_QSTR_verify_bp, + MP_QSTR__dump_rsig_bp_plus, + MP_QSTR_L, + MP_QSTR_Too_space_large, + MP_QSTR_A, + MP_QSTR_A1, + MP_QSTR_B, + MP_QSTR_r1, + MP_QSTR_s1, + MP_QSTR_d1, + MP_QSTR__dump_rsig_lr, + MP_QSTR_R, + MP_QSTR__return_rsig_data, + MP_QSTR_MoneroTransactionRsigData, + MP_QSTR__get_ecdh_info_and_out_pk, + MP_QSTR_gc, + MP_QSTR_encodepoint, + MP_QSTR_gen_commitment_into, + MP_QSTR_sc_add_into, + MP_QSTR_sumout, + MP_QSTR__ecdh_encode, + MP_QSTR_EcdhTuple, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_messages_dot_tx_ecdh, + MP_QSTR_NULL_KEY_ENC, + MP_QSTR_Scalar, + MP_QSTR_encodeint_into, + MP_QSTR_fast_hash_into, + MP_QSTR_xor8, + MP_QSTR__set_out_additional_keys, + MP_QSTR_need_additional_txkeys, + MP_QSTR_random_scalar, + MP_QSTR_is_subaddress, + MP_QSTR_scalarmult_into, + MP_QSTR_scalarmult_base_into, + MP_QSTR_additional_tx_public_keys, + MP_QSTR_additional_tx_private_keys, + MP_QSTR__set_out_derivation, + MP_QSTR_addr_eq, + MP_QSTR_apps_dot_monero_dot_xmr_dot_addresses, + MP_QSTR_change_address, + MP_QSTR_generate_key_derivation, + MP_QSTR_tx_pub, + MP_QSTR_creds, + MP_QSTR_view_key_private, + MP_QSTR_tx_priv, + MP_QSTR_view_public_key, + MP_QSTR__derive_view_tags, + MP_QSTR_get_keccak, + MP_QSTR_update, + MP_QSTR_digest, + MP_QSTR__is_last_in_batch, + MP_QSTR_rsig_grouping, + MP_QSTR__get_rsig_batch, + MP_QSTR_state, + MP_QSTR_dst_entr, + MP_QSTR_dst_entr_hmac, + MP_QSTR_is_offloaded_bp, + MP_QSTR_progress, + MP_QSTR_bytearray, + MP_QSTR_ValueError, + MP_QSTR_tx_out_key, + MP_QSTR_derivation, + MP_QSTR_len, + MP_QSTR_enumerate, + MP_QSTR_buff, + MP_QSTR_offset, + MP_QSTR_amount_key, + MP_QSTR_additional_txkey_priv, + MP_QSTR_output_index, + MP_QSTR_idx, + MP_QSTR_bidx, + MP_QSTR_sum, +}; + +// constants +static const mp_obj_str_t const_obj_apps_monero_signing_step_06_set_output_2 = {{&mp_type_str}, 56726, 25, (const byte*)"\x4f\x66\x66\x6c\x6f\x61\x64\x65\x64\x20\x42\x50\x20\x6f\x75\x74\x20\x6f\x66\x20\x6f\x72\x64\x65\x72"}; +static const mp_obj_str_t const_obj_apps_monero_signing_step_06_set_output_3 = {{&mp_type_str}, 8340, 32, (const byte*)"\x44\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x20\x77\x69\x74\x68\x20\x6e\x65\x67\x61\x74\x69\x76\x65\x20\x61\x6d\x6f\x75\x6e\x74"}; +static const mp_rom_obj_tuple_t const_obj_apps_monero_signing_step_06_set_output_7 = {{&mp_type_tuple}, 3, { + MP_ROM_NONE, + MP_ROM_NONE, + MP_ROM_NONE, +}}; +static const mp_obj_str_t const_obj_apps_monero_signing_step_06_set_output_10 = {{&mp_type_str}, 43642, 27, (const byte*)"\x52\x73\x69\x67\x20\x65\x78\x70\x65\x63\x74\x65\x64\x2c\x20\x6e\x6f\x74\x20\x70\x72\x6f\x76\x69\x64\x65\x64"}; +static const mp_obj_str_t const_obj_apps_monero_signing_step_06_set_output_15 = {{&mp_type_bytes}, 48457, 6, (const byte*)"\x61\x6d\x6f\x75\x6e\x74"}; +static const mp_obj_str_t const_obj_apps_monero_signing_step_06_set_output_16 = {{&mp_type_bytes}, 4293, 8, (const byte*)"\x76\x69\x65\x77\x5f\x74\x61\x67"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_signing_step_06_set_output[18] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_state_space_transition), + MP_ROM_QSTR(MP_QSTR_Extraneous_space_offloaded_space_msg), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_06_set_output_2), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_06_set_output_3), + MP_ROM_QSTR(MP_QSTR_Invalid_space_number_space_of_space_inputs), + MP_ROM_QSTR(MP_QSTR_Invalid_space_output_space_index), + MP_ROM_QSTR(MP_QSTR_HMAC_space_failed), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_06_set_output_7), + MP_ROM_QSTR(MP_QSTR_Provided_space_unexpected_space_rsig), + MP_ROM_QSTR(MP_QSTR_Provided_space_rsig_space_too_space_early), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_06_set_output_10), + MP_ROM_QSTR(MP_QSTR_post_hyphen_bp_hyphen_hash), + MP_ROM_QSTR(MP_QSTR_post_hyphen_bp_hyphen_ser_comma__space_size_colon__space__brace_open__brace_close_), + MP_ROM_QSTR(MP_QSTR_BP_space_verification_space_fail), + MP_ROM_QSTR(MP_QSTR_BP_space_verified), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_06_set_output_15), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_06_set_output_16), + MP_ROM_QSTR(MP_QSTR_Output_space_index_space_too_space_big), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_signing_step_06_set_output = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_signing_step_06_set_output, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_signing_step_06_set_output, + }, + .rc = &raw_code_apps_monero_signing_step_06_set_output__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_signing_step_07_all_outputs_set +// - original source file: build/firmware/src/apps/monero/signing/step_07_all_outputs_set.mpy +// - frozen file name: apps/monero/signing/step_07_all_outputs_set.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/signing/step_07_all_outputs_set.py, scope apps_monero_signing_step_07_all_outputs_set__lt_module_gt_ +static const byte fun_data_apps_monero_signing_step_07_all_outputs_set__lt_module_gt_[25] = { + 0x00,0x12, // prelude + 0x01, // names: + 0x80,0x08,0x80,0x08,0x84,0x54,0x84,0x15, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'all_outputs_set' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x2b, // STORE_NAME '_validate' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x2e, // STORE_NAME '_set_tx_extra' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_signing_step_07_all_outputs_set__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_07_all_outputs_set.py, scope apps_monero_signing_step_07_all_outputs_set_all_outputs_set +static const byte fun_data_apps_monero_signing_step_07_all_outputs_set_all_outputs_set[349] = { + 0x8a,0x10,0x6c, // prelude + 0x02,0x3b,0x3c, // names: all_outputs_set, state, progress + 0x80,0x13,0x45,0x44,0x45,0x2a,0x47,0x26,0x24,0x45,0x46,0x24,0x24,0x24,0x24,0x26,0x85,0x09,0x2d,0x29,0x2a,0x24,0x4b,0x24,0x26,0x65,0x60,0x70,0x23,0x25,0x25,0x67,0x40,0x2d,0x27,0x27,0x4b,0x28,0x24,0x44,0x20,0x2a,0x24,0x24,0x24,0x24,0x24,0x24,0x46,0x46,0x48, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'gc' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x04, // LOAD_ATTR 'mem_trace' + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x05, // LOAD_METHOD 'step' + 0xb0, // LOAD_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x06, // LOAD_ATTR 'STEP_ALL_OUT' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x04, // LOAD_METHOD 'mem_trace' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x2b, // LOAD_GLOBAL '_validate' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x07, // STORE_ATTR 'is_processing_offloaded' + 0xb3, // LOAD_FAST 3 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x2e, // LOAD_GLOBAL '_set_tx_extra' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x08, // STORE_ATTR 'additional_tx_public_keys' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x09, // STORE_ATTR 'tx_pub' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x0a, // STORE_ATTR 'rsig_grouping' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x0b, // STORE_ATTR 'rsig_offload' + 0xb2, // LOAD_FAST 2 + 0x14,0x0c, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'tx_prefix_hasher' + 0x14,0x0e, // LOAD_METHOD 'uvarint' + 0x12,0x3d, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'tx_prefix_hasher' + 0x14,0x0f, // LOAD_METHOD 'buffer' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'tx_prefix_hasher' + 0x14,0x10, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x11, // STORE_ATTR 'tx_prefix_hash' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x0d, // STORE_ATTR 'tx_prefix_hasher' + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'full_message_hasher' + 0x14,0x13, // LOAD_METHOD 'set_message' + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'tx_prefix_hash' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x14, // STORE_ATTR 'output_change' + 0xb2, // LOAD_FAST 2 + 0x14,0x0c, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x15, // LOAD_CONST_STRING 'MoneroRingCtSig' + 0x10,0x16, // LOAD_CONST_STRING 'MoneroTransactionAllOutSetAck' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x17, // IMPORT_NAME 'trezor.messages' + 0x1c,0x15, // IMPORT_FROM 'MoneroRingCtSig' + 0xc5, // STORE_FAST 5 + 0x1c,0x16, // IMPORT_FROM 'MoneroTransactionAllOutSetAck' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x10,0x18, // LOAD_CONST_STRING 'txn_fee' + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'fee' + 0x10,0x1a, // LOAD_CONST_STRING 'message' + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'tx_prefix_hash' + 0x10,0x1b, // LOAD_CONST_STRING 'rv_type' + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'tx_type' + 0x34,0x86,0x00, // CALL_FUNCTION 768 + 0xc7, // STORE_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'output_count' + 0x12,0x3d, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x1e, // LOAD_ATTR 'output_pk_commitments' + 0x34,0x01, // CALL_FUNCTION 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x3e, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x1e, // LOAD_ATTR 'output_pk_commitments' + 0x5f, // GET_ITER_STACK + 0x4b,0x0c, // FOR_ITER 12 + 0xc8, // STORE_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'full_message_hasher' + 0x14,0x1f, // LOAD_METHOD 'set_out_pk_commitment' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x32, // JUMP -14 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'full_message_hasher' + 0x14,0x20, // LOAD_METHOD 'rctsig_base_done' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x21, // STORE_ATTR 'current_output_index' + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0xb0, // LOAD_FAST 0 + 0x18,0x22, // STORE_ATTR 'current_input_index' + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'full_message_hasher' + 0x14,0x10, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x23, // STORE_ATTR 'full_message' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x12, // STORE_ATTR 'full_message_hasher' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x1e, // STORE_ATTR 'output_pk_commitments' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x24, // STORE_ATTR 'summary_outs_money' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x25, // STORE_ATTR 'summary_inputs_money' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x19, // STORE_ATTR 'fee' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x26, // STORE_ATTR 'last_ki' + 0xb0, // LOAD_FAST 0 + 0x13,0x06, // LOAD_ATTR 'STEP_ALL_OUT' + 0xb0, // LOAD_FAST 0 + 0x18,0x27, // STORE_ATTR 'last_step' + 0xb6, // LOAD_FAST 6 + 0x10,0x28, // LOAD_CONST_STRING 'extra' + 0xb4, // LOAD_FAST 4 + 0x10,0x11, // LOAD_CONST_STRING 'tx_prefix_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'tx_prefix_hash' + 0x10,0x29, // LOAD_CONST_STRING 'rv' + 0xb7, // LOAD_FAST 7 + 0x10,0x2a, // LOAD_CONST_STRING 'full_message_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'full_message' + 0x34,0x88,0x00, // CALL_FUNCTION 1024 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_07_all_outputs_set_all_outputs_set = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_step_07_all_outputs_set_all_outputs_set, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 349, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_monero_signing_step_07_all_outputs_set_all_outputs_set + 6, + .line_info_top = fun_data_apps_monero_signing_step_07_all_outputs_set_all_outputs_set + 57, + .opcodes = fun_data_apps_monero_signing_step_07_all_outputs_set_all_outputs_set + 57, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_07_all_outputs_set__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_07_all_outputs_set.py, scope apps_monero_signing_step_07_all_outputs_set__validate +static const byte fun_data_apps_monero_signing_step_07_all_outputs_set__validate[107] = { + 0x41,0x20, // prelude + 0x2b,0x3b, // names: _validate, state + 0x80,0x65,0x24,0x44,0x29,0x27,0x2b,0x67,0x29,0x22,0x24,0x4c,0x25,0x22, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'summary_outs_money' + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'summary_inputs_money' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'last_step' + 0xb0, // LOAD_FAST 0 + 0x13,0x2c, // LOAD_ATTR 'STEP_OUT' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x3e, // LOAD_GLOBAL 'ValueError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'current_output_index' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'output_count' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x3e, // LOAD_GLOBAL 'ValueError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'fee' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x3e, // LOAD_GLOBAL 'ValueError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x14,0x2d, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'fee' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xb1, // LOAD_FAST 1 + 0x36,0x03, // CALL_METHOD 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x3e, // LOAD_GLOBAL 'ValueError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x14,0x2d, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_07_all_outputs_set__validate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_signing_step_07_all_outputs_set__validate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 107, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_apps_monero_signing_step_07_all_outputs_set__validate + 4, + .line_info_top = fun_data_apps_monero_signing_step_07_all_outputs_set__validate + 18, + .opcodes = fun_data_apps_monero_signing_step_07_all_outputs_set__validate + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_07_all_outputs_set__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_07_all_outputs_set.py, scope apps_monero_signing_step_07_all_outputs_set__set_tx_extra +static const byte fun_data_apps_monero_signing_step_07_all_outputs_set__set_tx_extra[239] = { + 0x91,0x10,0x46, // prelude + 0x2e,0x3b, // names: _set_tx_extra, state + 0x80,0x7a,0x60,0x40,0x4b,0x2b,0x4b,0x64,0x20,0x22,0x22,0x22,0x42,0x25,0x28,0x67,0x4a,0x23,0x48,0x26,0x24,0x33,0x44,0x25,0x24,0x2b,0x46,0x26,0x2d,0x4d,0x23,0x2f,0x44, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2f, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x30, // IMPORT_NAME 'trezor' + 0x1c,0x2f, // IMPORT_FROM 'utils' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x31, // LOAD_CONST_STRING 'crypto' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x32, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x31, // IMPORT_FROM 'crypto' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x33, // LOAD_CONST_STRING 'int_serialize' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x34, // IMPORT_NAME 'apps.monero.xmr.serialize' + 0x1c,0x33, // IMPORT_FROM 'int_serialize' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'extra_nonce' + 0xc4, // STORE_FAST 4 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0xc5, // STORE_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc6, // STORE_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc7, // STORE_FAST 7 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc8, // STORE_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'need_additional_txkeys' + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0x12,0x3d, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'additional_tx_public_keys' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0xb3, // LOAD_FAST 3 + 0x14,0x37, // LOAD_METHOD 'uvarint_size' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0xc8, // STORE_FAST 8 + 0xb5, // LOAD_FAST 5 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb8, // LOAD_FAST 8 + 0xf2, // BINARY_OP 27 __add__ + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xb7, // LOAD_FAST 7 + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb5, // LOAD_FAST 5 + 0x12,0x3d, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc5, // STORE_FAST 5 + 0x12,0x3f, // LOAD_GLOBAL 'bytearray' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb9, // LOAD_FAST 9 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x56, // STORE_SUBSCR + 0xb2, // LOAD_FAST 2 + 0x14,0x38, // LOAD_METHOD 'encodepoint_into' + 0x12,0x40, // LOAD_GLOBAL 'memoryview' + 0xb9, // LOAD_FAST 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'tx_pub' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'need_additional_txkeys' + 0x44,0x75, // POP_JUMP_IF_FALSE 53 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xb9, // LOAD_FAST 9 + 0xb6, // LOAD_FAST 6 + 0x56, // STORE_SUBSCR + 0xb3, // LOAD_FAST 3 + 0x14,0x39, // LOAD_METHOD 'dump_uvarint_b_into' + 0xb7, // LOAD_FAST 7 + 0xb9, // LOAD_FAST 9 + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb8, // LOAD_FAST 8 + 0xf2, // BINARY_OP 27 __add__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc6, // STORE_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x55, // JUMP 21 + 0x57, // DUP_TOP + 0xca, // STORE_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'additional_tx_public_keys' + 0xba, // LOAD_FAST 10 + 0x55, // LOAD_SUBSCR + 0xb9, // LOAD_FAST 9 + 0xb6, // LOAD_FAST 6 + 0xb6, // LOAD_FAST 6 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf2, // BINARY_OP 27 __add__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0xb6, // LOAD_FAST 6 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc6, // STORE_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x26, // POP_JUMP_IF_TRUE -26 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xb1, // LOAD_FAST 1 + 0x14,0x3a, // LOAD_METHOD 'memcpy' + 0xb9, // LOAD_FAST 9 + 0xb6, // LOAD_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x3d, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x05, // CALL_METHOD 5 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x35, // STORE_ATTR 'extra_nonce' + 0xb9, // LOAD_FAST 9 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_07_all_outputs_set__set_tx_extra = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_signing_step_07_all_outputs_set__set_tx_extra, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 239, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_monero_signing_step_07_all_outputs_set__set_tx_extra + 5, + .line_info_top = fun_data_apps_monero_signing_step_07_all_outputs_set__set_tx_extra + 38, + .opcodes = fun_data_apps_monero_signing_step_07_all_outputs_set__set_tx_extra + 38, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_signing_step_07_all_outputs_set__lt_module_gt_[] = { + &raw_code_apps_monero_signing_step_07_all_outputs_set_all_outputs_set, + &raw_code_apps_monero_signing_step_07_all_outputs_set__validate, + &raw_code_apps_monero_signing_step_07_all_outputs_set__set_tx_extra, +}; + +static const mp_raw_code_t raw_code_apps_monero_signing_step_07_all_outputs_set__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_signing_step_07_all_outputs_set__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = (void *)&children_apps_monero_signing_step_07_all_outputs_set__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_signing_step_07_all_outputs_set__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_signing_step_07_all_outputs_set__lt_module_gt_ + 11, + .opcodes = fun_data_apps_monero_signing_step_07_all_outputs_set__lt_module_gt_ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_signing_step_07_all_outputs_set[65] = { + MP_QSTR_apps_slash_monero_slash_signing_slash_step_07_all_outputs_set_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_all_outputs_set, + MP_QSTR_gc, + MP_QSTR_mem_trace, + MP_QSTR_step, + MP_QSTR_STEP_ALL_OUT, + MP_QSTR_is_processing_offloaded, + MP_QSTR_additional_tx_public_keys, + MP_QSTR_tx_pub, + MP_QSTR_rsig_grouping, + MP_QSTR_rsig_offload, + MP_QSTR_collect, + MP_QSTR_tx_prefix_hasher, + MP_QSTR_uvarint, + MP_QSTR_buffer, + MP_QSTR_get_digest, + MP_QSTR_tx_prefix_hash, + MP_QSTR_full_message_hasher, + MP_QSTR_set_message, + MP_QSTR_output_change, + MP_QSTR_MoneroRingCtSig, + MP_QSTR_MoneroTransactionAllOutSetAck, + MP_QSTR_trezor_dot_messages, + MP_QSTR_txn_fee, + MP_QSTR_fee, + MP_QSTR_message, + MP_QSTR_rv_type, + MP_QSTR_tx_type, + MP_QSTR_output_count, + MP_QSTR_output_pk_commitments, + MP_QSTR_set_out_pk_commitment, + MP_QSTR_rctsig_base_done, + MP_QSTR_current_output_index, + MP_QSTR_current_input_index, + MP_QSTR_full_message, + MP_QSTR_summary_outs_money, + MP_QSTR_summary_inputs_money, + MP_QSTR_last_ki, + MP_QSTR_last_step, + MP_QSTR_extra, + MP_QSTR_rv, + MP_QSTR_full_message_hash, + MP_QSTR__validate, + MP_QSTR_STEP_OUT, + MP_QSTR_format, + MP_QSTR__set_tx_extra, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_crypto, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_int_serialize, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize, + MP_QSTR_extra_nonce, + MP_QSTR_need_additional_txkeys, + MP_QSTR_uvarint_size, + MP_QSTR_encodepoint_into, + MP_QSTR_dump_uvarint_b_into, + MP_QSTR_memcpy, + MP_QSTR_state, + MP_QSTR_progress, + MP_QSTR_len, + MP_QSTR_ValueError, + MP_QSTR_bytearray, + MP_QSTR_memoryview, +}; + +// constants +static const mp_obj_str_t const_obj_apps_monero_signing_step_07_all_outputs_set_3 = {{&mp_type_str}, 21001, 29, (const byte*)"\x46\x65\x65\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x7b\x7d\x20\x76\x73\x20\x7b\x7d\x2c\x20\x6f\x75\x74\x3a\x20\x7b\x7d"}; +static const mp_obj_str_t const_obj_apps_monero_signing_step_07_all_outputs_set_4 = {{&mp_type_str}, 45746, 58, (const byte*)"\x54\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x69\x6e\x70\x75\x74\x73\x20\x6d\x6f\x6e\x65\x79\x20\x28\x7b\x7d\x29\x20\x6c\x65\x73\x73\x20\x74\x68\x61\x6e\x20\x6f\x75\x74\x70\x75\x74\x73\x20\x6d\x6f\x6e\x65\x79\x20\x28\x7b\x7d\x29"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_signing_step_07_all_outputs_set[5] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_number_space_of_space_ecdh), + MP_ROM_QSTR(MP_QSTR_Invalid_space_state_space_transition), + MP_ROM_QSTR(MP_QSTR_Invalid_space_out_space_num), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_07_all_outputs_set_3), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_07_all_outputs_set_4), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_signing_step_07_all_outputs_set = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_signing_step_07_all_outputs_set, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_signing_step_07_all_outputs_set, + }, + .rc = &raw_code_apps_monero_signing_step_07_all_outputs_set__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_signing_step_09_sign_input +// - original source file: build/firmware/src/apps/monero/signing/step_09_sign_input.mpy +// - frozen file name: apps/monero/signing/step_09_sign_input.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/signing/step_09_sign_input.py, scope apps_monero_signing_step_09_sign_input__lt_module_gt_ +static const byte fun_data_apps_monero_signing_step_09_sign_input__lt_module_gt_[26] = { + 0x08,0x10, // prelude + 0x01, // names: + 0x80,0x0c,0x66,0x80,0x0b,0x84,0xbe, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'gc' + 0x16,0x02, // STORE_NAME 'gc' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x03, // STORE_NAME 'sign_input' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x3f, // STORE_NAME '_protect_signature' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_signing_step_09_sign_input__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_09_sign_input.py, scope apps_monero_signing_step_09_sign_input_sign_input +static const byte fun_data_apps_monero_signing_step_09_sign_input_sign_input[873] = { + 0xda,0xa0,0x04,0xe2,0x02, // prelude + 0x03,0x49,0x4a,0x4b,0x4c,0x3d,0x4d,0x4e,0x4f,0x50,0x51, // names: sign_input, state, src_entr, vini_bin, vini_hmac, pseudo_out, pseudo_out_hmac, pseudo_out_alpha_enc, spend_enc, orig_idx, progress + 0x80,0x26,0x80,0x0d,0x4b,0x50,0x24,0x24,0x24,0x45,0x4f,0x29,0x2f,0x27,0x27,0x27,0x25,0x27,0x25,0x47,0x23,0x67,0x4c,0x24,0x4b,0x2a,0x67,0x29,0x2f,0x47,0x2f,0x48,0x27,0x46,0x4c,0x23,0x24,0x2b,0x6b,0x40,0x48,0x26,0x2e,0x2c,0x26,0x6a,0x20,0x28,0x21,0x72,0x40,0x23,0x70,0x2a,0x47,0x48,0x66,0x23,0x24,0x2b,0x6b,0x20,0x8c,0x08,0x28,0x66,0x4c,0x25,0x70,0x21,0x23,0x30,0x4c,0x45,0x21,0x23,0x23,0x4d,0x4f,0x65,0x46,0x4c,0x24,0x28,0x33,0x42,0x46,0x20,0x26,0x24,0x72,0x60,0x60,0x2a,0x46,0x6c,0x28,0x26,0x49,0x26,0x26,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor' + 0x1c,0x04, // IMPORT_FROM 'utils' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'crypto' + 0x10,0x07, // LOAD_CONST_STRING 'crypto_helpers' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x08, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x06, // IMPORT_FROM 'crypto' + 0xcb, // STORE_FAST 11 + 0x1c,0x07, // IMPORT_FROM 'crypto_helpers' + 0xcc, // STORE_FAST 12 + 0x59, // POP_TOP + 0xba, // LOAD_FAST 10 + 0x13,0x09, // LOAD_ATTR 'ensure' + 0xcd, // STORE_FAST 13 + 0xb0, // LOAD_FAST 0 + 0x13,0x0a, // LOAD_ATTR 'mem_trace' + 0xce, // STORE_FAST 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'input_count' + 0xcf, // STORE_FAST 15 + 0xb1, // LOAD_FAST 1 + 0x13,0x0c, // LOAD_ATTR 'outputs' + 0x26,0x10, // STORE_FAST_N 16 + 0xb9, // LOAD_FAST 9 + 0x14,0x0d, // LOAD_METHOD 'step' + 0xb0, // LOAD_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'STEP_SIGN' + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'current_input_index' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x0f, // LOAD_ATTR 'current_input_index' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x0f, // STORE_ATTR 'current_input_index' + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'last_step' + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'STEP_ALL_OUT' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'STEP_SIGN' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x52, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'current_input_index' + 0xbf, // LOAD_FAST 15 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x52, // LOAD_GLOBAL 'ValueError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x52, // LOAD_GLOBAL 'ValueError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb6, // LOAD_FAST 6 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x52, // LOAD_GLOBAL 'ValueError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb8, // LOAD_FAST 8 + 0x26,0x11, // STORE_FAST_N 17 + 0xba, // LOAD_FAST 10 + 0x14,0x12, // LOAD_METHOD 'unimport_begin' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x12, // STORE_FAST_N 18 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'offloading_keys' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'apps.monero.signing' + 0x1c,0x13, // IMPORT_FROM 'offloading_keys' + 0x26,0x13, // STORE_FAST_N 19 + 0x59, // POP_TOP + 0x24,0x13, // LOAD_FAST_N 19 + 0x14,0x15, // LOAD_METHOD 'gen_hmac_vini' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'key_hmac' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x04, // CALL_METHOD 4 + 0x26,0x14, // STORE_FAST_N 20 + 0xbb, // LOAD_FAST 11 + 0x14,0x17, // LOAD_METHOD 'ct_equals' + 0x24,0x14, // LOAD_FAST_N 20 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x52, // LOAD_GLOBAL 'ValueError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x13, // LOAD_FAST_N 19 + 0x14,0x18, // LOAD_METHOD 'get_ki_from_vini' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x15, // STORE_FAST_N 21 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'current_input_index' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'last_ki' + 0x24,0x15, // LOAD_FAST_N 21 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x52, // LOAD_GLOBAL 'ValueError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'current_input_index' + 0xbf, // LOAD_FAST 15 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x24,0x15, // LOAD_FAST_N 21 + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x19, // STORE_ATTR 'last_ki' + 0x28,0x15, // DELETE_FAST 21 + 0x28,0x02, // DELETE_FAST 2 + 0x28,0x03, // DELETE_FAST 3 + 0x28,0x14, // DELETE_FAST 20 + 0x12,0x02, // LOAD_GLOBAL 'gc' + 0x14,0x1a, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1b, // LOAD_CONST_STRING 'chacha_poly' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x1b, // IMPORT_FROM 'chacha_poly' + 0x26,0x16, // STORE_FAST_N 22 + 0x59, // POP_TOP + 0xbc, // LOAD_FAST 12 + 0x14,0x1c, // LOAD_METHOD 'decodeint' + 0x24,0x16, // LOAD_FAST_N 22 + 0x14,0x1d, // LOAD_METHOD 'decrypt_pack' + 0x24,0x13, // LOAD_FAST_N 19 + 0x14,0x1e, // LOAD_METHOD 'enc_key_txin_alpha' + 0xb0, // LOAD_FAST 0 + 0x13,0x1f, // LOAD_ATTR 'key_enc' + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x02, // CALL_METHOD 2 + 0x12,0x43, // LOAD_GLOBAL 'bytes' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x17, // STORE_FAST_N 23 + 0x24,0x11, // LOAD_FAST_N 17 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xbf, // LOAD_FAST 15 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x70, // POP_JUMP_IF_FALSE 48 + 0xbe, // LOAD_FAST 14 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0x14,0x20, // LOAD_METHOD 'sc_sub_into' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'sumout' + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'sumpouts_alphas' + 0x36,0x03, // CALL_METHOD 3 + 0x26,0x18, // STORE_FAST_N 24 + 0xbb, // LOAD_FAST 11 + 0x14,0x23, // LOAD_METHOD 'sc_add_into' + 0x24,0x17, // LOAD_FAST_N 23 + 0x24,0x17, // LOAD_FAST_N 23 + 0x24,0x18, // LOAD_FAST_N 24 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0x14,0x24, // LOAD_METHOD 'gen_commitment_into' + 0x51, // LOAD_CONST_NONE + 0x24,0x17, // LOAD_FAST_N 23 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'input_last_amount' + 0x36,0x03, // CALL_METHOD 3 + 0x26,0x19, // STORE_FAST_N 25 + 0x42,0xc7,0x80, // JUMP 71 + 0x24,0x11, // LOAD_FAST_N 17 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xbf, // LOAD_FAST 15 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xbd, // LOAD_FAST 13 + 0xbb, // LOAD_FAST 11 + 0x14,0x26, // LOAD_METHOD 'sc_eq' + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'sumpouts_alphas' + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'sumout' + 0x36,0x02, // CALL_METHOD 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbc, // LOAD_FAST 12 + 0x14,0x27, // LOAD_METHOD 'compute_hmac' + 0x24,0x13, // LOAD_FAST_N 19 + 0x14,0x28, // LOAD_METHOD 'hmac_key_txin_comm' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'key_hmac' + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x02, // CALL_METHOD 2 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x1a, // STORE_FAST_N 26 + 0xbb, // LOAD_FAST 11 + 0x14,0x17, // LOAD_METHOD 'ct_equals' + 0x24,0x1a, // LOAD_FAST_N 26 + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x52, // LOAD_GLOBAL 'ValueError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbc, // LOAD_FAST 12 + 0x14,0x29, // LOAD_METHOD 'decodepoint' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x19, // STORE_FAST_N 25 + 0xbe, // LOAD_FAST 14 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbc, // LOAD_FAST 12 + 0x14,0x1c, // LOAD_METHOD 'decodeint' + 0x24,0x16, // LOAD_FAST_N 22 + 0x14,0x1d, // LOAD_METHOD 'decrypt_pack' + 0x24,0x13, // LOAD_FAST_N 19 + 0x14,0x2a, // LOAD_METHOD 'enc_key_spend' + 0xb0, // LOAD_FAST 0 + 0x13,0x1f, // LOAD_ATTR 'key_enc' + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x02, // CALL_METHOD 2 + 0x12,0x43, // LOAD_GLOBAL 'bytes' + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x1b, // STORE_FAST_N 27 + 0x28,0x13, // DELETE_FAST 19 + 0x28,0x16, // DELETE_FAST 22 + 0x28,0x04, // DELETE_FAST 4 + 0x28,0x05, // DELETE_FAST 5 + 0x28,0x06, // DELETE_FAST 6 + 0x28,0x07, // DELETE_FAST 7 + 0xba, // LOAD_FAST 10 + 0x14,0x2b, // LOAD_METHOD 'unimport_end' + 0x24,0x12, // LOAD_FAST_N 18 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2c, // LOAD_CONST_STRING 'CtKey' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2d, // IMPORT_NAME 'apps.monero.xmr.serialize_messages.tx_ct_key' + 0x1c,0x2c, // IMPORT_FROM 'CtKey' + 0x26,0x1c, // STORE_FAST_N 28 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x2e, // LOAD_ATTR 'real_output' + 0x26,0x1d, // STORE_FAST_N 29 + 0x24,0x1c, // LOAD_FAST_N 28 + 0x24,0x1b, // LOAD_FAST_N 27 + 0xbc, // LOAD_FAST 12 + 0x14,0x1c, // LOAD_METHOD 'decodeint' + 0xb1, // LOAD_FAST 1 + 0x13,0x2f, // LOAD_ATTR 'mask' + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x1e, // STORE_FAST_N 30 + 0xbd, // LOAD_FAST 13 + 0xbb, // LOAD_FAST 11 + 0x14,0x30, // LOAD_METHOD 'point_eq' + 0xbc, // LOAD_FAST 12 + 0x14,0x29, // LOAD_METHOD 'decodepoint' + 0xb1, // LOAD_FAST 1 + 0x13,0x0c, // LOAD_ATTR 'outputs' + 0xb1, // LOAD_FAST 1 + 0x13,0x2e, // LOAD_ATTR 'real_output' + 0x55, // LOAD_SUBSCR + 0x13,0x31, // LOAD_ATTR 'key' + 0x13,0x32, // LOAD_ATTR 'dest' + 0x36,0x01, // CALL_METHOD 1 + 0xbb, // LOAD_FAST 11 + 0x14,0x33, // LOAD_METHOD 'scalarmult_base_into' + 0x51, // LOAD_CONST_NONE + 0x24,0x1e, // LOAD_FAST_N 30 + 0x13,0x32, // LOAD_ATTR 'dest' + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x02, // CALL_METHOD 2 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbd, // LOAD_FAST 13 + 0xbb, // LOAD_FAST 11 + 0x14,0x30, // LOAD_METHOD 'point_eq' + 0xbc, // LOAD_FAST 12 + 0x14,0x29, // LOAD_METHOD 'decodepoint' + 0xb1, // LOAD_FAST 1 + 0x13,0x0c, // LOAD_ATTR 'outputs' + 0xb1, // LOAD_FAST 1 + 0x13,0x2e, // LOAD_ATTR 'real_output' + 0x55, // LOAD_SUBSCR + 0x13,0x31, // LOAD_ATTR 'key' + 0x13,0x34, // LOAD_ATTR 'commitment' + 0x36,0x01, // CALL_METHOD 1 + 0xbb, // LOAD_FAST 11 + 0x14,0x24, // LOAD_METHOD 'gen_commitment_into' + 0x51, // LOAD_CONST_NONE + 0x24,0x1e, // LOAD_FAST_N 30 + 0x13,0x2f, // LOAD_ATTR 'mask' + 0xb1, // LOAD_FAST 1 + 0x13,0x35, // LOAD_ATTR 'amount' + 0x36,0x03, // CALL_METHOD 3 + 0x36,0x02, // CALL_METHOD 2 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x36, // LOAD_CONST_STRING 'clsag' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x36, // IMPORT_FROM 'clsag' + 0x26,0x1f, // STORE_FAST_N 31 + 0x59, // POP_TOP + 0x2b,0x00, // BUILD_LIST 0 + 0x26,0x20, // STORE_FAST_N 32 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x24,0x10, // LOAD_FAST_N 16 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x21, // STORE_FAST_N 33 + 0xbd, // LOAD_FAST 13 + 0x12,0x53, // LOAD_GLOBAL 'len' + 0x24,0x21, // LOAD_FAST_N 33 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x53, // LOAD_GLOBAL 'len' + 0x24,0x10, // LOAD_FAST_N 16 + 0x34,0x01, // CALL_FUNCTION 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x28,0x01, // DELETE_FAST 1 + 0xbe, // LOAD_FAST 14 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x10,0x37, // LOAD_CONST_STRING 'CLSAG' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x24,0x1f, // LOAD_FAST_N 31 + 0x14,0x38, // LOAD_METHOD 'generate_clsag_simple' + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'full_message' + 0x24,0x21, // LOAD_FAST_N 33 + 0x24,0x1e, // LOAD_FAST_N 30 + 0x24,0x17, // LOAD_FAST_N 23 + 0x24,0x19, // LOAD_FAST_N 25 + 0x24,0x1d, // LOAD_FAST_N 29 + 0x24,0x20, // LOAD_FAST_N 32 + 0x36,0x07, // CALL_METHOD 7 + 0x59, // POP_TOP + 0x28,0x1c, // DELETE_FAST 28 + 0x28,0x1e, // DELETE_FAST 30 + 0x28,0x17, // DELETE_FAST 23 + 0x28,0x1f, // DELETE_FAST 31 + 0x28,0x21, // DELETE_FAST 33 + 0xbe, // LOAD_FAST 14 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x3a, // LOAD_CONST_STRING 'MoneroTransactionSignInputAck' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x3b, // IMPORT_NAME 'trezor.messages' + 0x1c,0x3a, // IMPORT_FROM 'MoneroTransactionSignInputAck' + 0x26,0x22, // STORE_FAST_N 34 + 0x59, // POP_TOP + 0xba, // LOAD_FAST 10 + 0x14,0x2b, // LOAD_METHOD 'unimport_end' + 0x24,0x12, // LOAD_FAST_N 18 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x3f, // LOAD_GLOBAL '_protect_signature' + 0xb0, // LOAD_FAST 0 + 0x24,0x20, // LOAD_FAST_N 32 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x20, // STORE_FAST_N 32 + 0xbe, // LOAD_FAST 14 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'STEP_SIGN' + 0xb0, // LOAD_FAST 0 + 0x18,0x10, // STORE_ATTR 'last_step' + 0x24,0x22, // LOAD_FAST_N 34 + 0x10,0x3c, // LOAD_CONST_STRING 'signature' + 0x24,0x20, // LOAD_FAST_N 32 + 0x10,0x3d, // LOAD_CONST_STRING 'pseudo_out' + 0xbc, // LOAD_FAST 12 + 0x14,0x3e, // LOAD_METHOD 'encodepoint' + 0x24,0x19, // LOAD_FAST_N 25 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +// child of apps_monero_signing_step_09_sign_input_sign_input +// frozen bytecode for file apps/monero/signing/step_09_sign_input.py, scope apps_monero_signing_step_09_sign_input_sign_input__lt_listcomp_gt_ +static const byte fun_data_apps_monero_signing_step_09_sign_input_sign_input__lt_listcomp_gt_[24] = { + 0x39,0x08, // prelude + 0x48,0x58, // names: , * + 0x80,0xb5, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0b, // FOR_ITER 11 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x44,0x3a, // POP_JUMP_IF_FALSE -6 + 0xb1, // LOAD_FAST 1 + 0x13,0x31, // LOAD_ATTR 'key' + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x33, // JUMP -13 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_09_sign_input_sign_input__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_signing_step_09_sign_input_sign_input__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 72, + .line_info = fun_data_apps_monero_signing_step_09_sign_input_sign_input__lt_listcomp_gt_ + 4, + .line_info_top = fun_data_apps_monero_signing_step_09_sign_input_sign_input__lt_listcomp_gt_ + 6, + .opcodes = fun_data_apps_monero_signing_step_09_sign_input_sign_input__lt_listcomp_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_signing_step_09_sign_input_sign_input[] = { + &raw_code_apps_monero_signing_step_09_sign_input_sign_input__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_apps_monero_signing_step_09_sign_input_sign_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 10, + .fun_data = fun_data_apps_monero_signing_step_09_sign_input_sign_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 873, + #endif + .children = (void *)&children_apps_monero_signing_step_09_sign_input_sign_input, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 44, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 10, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 3, + .line_info = fun_data_apps_monero_signing_step_09_sign_input_sign_input + 16, + .line_info_top = fun_data_apps_monero_signing_step_09_sign_input_sign_input + 118, + .opcodes = fun_data_apps_monero_signing_step_09_sign_input_sign_input + 118, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_signing_step_09_sign_input__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_09_sign_input.py, scope apps_monero_signing_step_09_sign_input__protect_signature +static const byte fun_data_apps_monero_signing_step_09_sign_input__protect_signature[359] = { + 0xda,0x10,0x62, // prelude + 0x3f,0x49,0x54, // names: _protect_signature, state, mg_buffer + 0x80,0xd9,0x60,0x40,0x50,0x4b,0x29,0x49,0x23,0x29,0x46,0x23,0x6a,0x66,0x40,0x24,0x26,0x42,0x22,0x25,0x6a,0x2e,0x22,0x2d,0x27,0x23,0x23,0x2b,0x24,0x34,0x27,0x25,0x47,0x2e,0x47,0x25,0x29,0x24,0x49,0x24,0x27,0x6a,0x23,0x2e,0x44,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x40, // LOAD_CONST_STRING 'chacha20poly1305' + 0x10,0x41, // LOAD_CONST_STRING 'random' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x42, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x40, // IMPORT_FROM 'chacha20poly1305' + 0xc2, // STORE_FAST 2 + 0x1c,0x41, // IMPORT_FROM 'random' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'offloading_keys' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'apps.monero.signing' + 0x1c,0x13, // IMPORT_FROM 'offloading_keys' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'last_step' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'STEP_SIGN' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb3, // LOAD_FAST 3 + 0x14,0x43, // LOAD_METHOD 'bytes' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x01, // CALL_METHOD 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x44, // STORE_ATTR 'opening_key' + 0xb4, // LOAD_FAST 4 + 0x14,0x45, // LOAD_METHOD 'key_signature' + 0xb0, // LOAD_FAST 0 + 0x13,0x44, // LOAD_ATTR 'opening_key' + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'current_input_index' + 0x52, // LOAD_CONST_TRUE + 0x36,0x03, // CALL_METHOD 3 + 0x51, // LOAD_CONST_NONE + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x14,0x45, // LOAD_METHOD 'key_signature' + 0xb0, // LOAD_FAST 0 + 0x13,0x44, // LOAD_ATTR 'opening_key' + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'current_input_index' + 0x50, // LOAD_CONST_FALSE + 0x36,0x03, // CALL_METHOD 3 + 0xc6, // STORE_FAST 6 + 0xb2, // LOAD_FAST 2 + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc7, // STORE_FAST 7 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xc8, // STORE_FAST 8 + 0x12,0x55, // LOAD_GLOBAL 'bytearray' + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xca, // STORE_FAST 10 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xcb, // STORE_FAST 11 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x0b, // FOR_ITER 11 + 0xcc, // STORE_FAST 12 + 0xbb, // LOAD_FAST 11 + 0x12,0x53, // LOAD_GLOBAL 'len' + 0xbc, // LOAD_FAST 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xcb, // STORE_FAST 11 + 0x42,0x33, // JUMP -13 + 0x51, // LOAD_CONST_NONE + 0x2b,0x01, // BUILD_LIST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xbb, // LOAD_FAST 11 + 0xb8, // LOAD_FAST 8 + 0xf2, // BINARY_OP 27 __add__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xb8, // LOAD_FAST 8 + 0xf6, // BINARY_OP 31 __floordiv__ + 0xf2, // BINARY_OP 27 __add__ + 0xf4, // BINARY_OP 29 __mul__ + 0xcd, // STORE_FAST 13 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xce, // STORE_FAST 14 + 0x12,0x56, // LOAD_GLOBAL 'enumerate' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x8c,0x01, // FOR_ITER 140 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xcf, // STORE_FAST 15 + 0xcc, // STORE_FAST 12 + 0x12,0x53, // LOAD_GLOBAL 'len' + 0xbc, // LOAD_FAST 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x10, // STORE_FAST_N 16 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x26,0x11, // STORE_FAST_N 17 + 0x42,0xdf,0x80, // JUMP 95 + 0x12,0x57, // LOAD_GLOBAL 'min' + 0xb8, // LOAD_FAST 8 + 0xba, // LOAD_FAST 10 + 0xf3, // BINARY_OP 28 __sub__ + 0x24,0x10, // LOAD_FAST_N 16 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x12, // STORE_FAST_N 18 + 0x24,0x12, // LOAD_FAST_N 18 + 0x44,0x67, // POP_JUMP_IF_FALSE 39 + 0xbc, // LOAD_FAST 12 + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x12, // LOAD_FAST_N 18 + 0xf2, // BINARY_OP 27 __add__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb9, // LOAD_FAST 9 + 0xba, // LOAD_FAST 10 + 0xba, // LOAD_FAST 10 + 0x24,0x12, // LOAD_FAST_N 18 + 0xf2, // BINARY_OP 27 __add__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0x24,0x10, // LOAD_FAST_N 16 + 0x24,0x12, // LOAD_FAST_N 18 + 0xe6, // BINARY_OP 15 __isub__ + 0x26,0x10, // STORE_FAST_N 16 + 0xba, // LOAD_FAST 10 + 0x24,0x12, // LOAD_FAST_N 18 + 0xe5, // BINARY_OP 14 __iadd__ + 0xca, // STORE_FAST 10 + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x12, // LOAD_FAST_N 18 + 0xe5, // BINARY_OP 14 __iadd__ + 0x26,0x11, // STORE_FAST_N 17 + 0x12,0x53, // LOAD_GLOBAL 'len' + 0xb9, // LOAD_FAST 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb8, // LOAD_FAST 8 + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0xba, // LOAD_FAST 10 + 0xb8, // LOAD_FAST 8 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x52, // LOAD_GLOBAL 'ValueError' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xba, // LOAD_FAST 10 + 0xb8, // LOAD_FAST 8 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb7, // LOAD_FAST 7 + 0x14,0x46, // LOAD_METHOD 'encrypt' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0xbd, // LOAD_FAST 13 + 0xbe, // LOAD_FAST 14 + 0x56, // STORE_SUBSCR + 0xbe, // LOAD_FAST 14 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xce, // STORE_FAST 14 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xca, // STORE_FAST 10 + 0x24,0x10, // LOAD_FAST_N 16 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x9a,0x7f, // POP_JUMP_IF_TRUE -102 + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0xbf, // LOAD_FAST 15 + 0x56, // STORE_SUBSCR + 0xbf, // LOAD_FAST 15 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xef, // BINARY_OP 24 __and__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'gc' + 0x14,0x1a, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0xf1,0x7e, // JUMP -143 + 0xba, // LOAD_FAST 10 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb7, // LOAD_FAST 7 + 0x14,0x46, // LOAD_METHOD 'encrypt' + 0xb9, // LOAD_FAST 9 + 0x51, // LOAD_CONST_NONE + 0xba, // LOAD_FAST 10 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0xbd, // LOAD_FAST 13 + 0xbe, // LOAD_FAST 14 + 0x56, // STORE_SUBSCR + 0xbe, // LOAD_FAST 14 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xce, // STORE_FAST 14 + 0xb7, // LOAD_FAST 7 + 0x14,0x47, // LOAD_METHOD 'finish' + 0x36,0x00, // CALL_METHOD 0 + 0xbd, // LOAD_FAST 13 + 0xbe, // LOAD_FAST 14 + 0x56, // STORE_SUBSCR + 0xbd, // LOAD_FAST 13 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_09_sign_input__protect_signature = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_step_09_sign_input__protect_signature, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 359, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 28, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 63, + .line_info = fun_data_apps_monero_signing_step_09_sign_input__protect_signature + 6, + .line_info_top = fun_data_apps_monero_signing_step_09_sign_input__protect_signature + 52, + .opcodes = fun_data_apps_monero_signing_step_09_sign_input__protect_signature + 52, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_signing_step_09_sign_input__lt_module_gt_[] = { + &raw_code_apps_monero_signing_step_09_sign_input_sign_input, + &raw_code_apps_monero_signing_step_09_sign_input__protect_signature, +}; + +static const mp_raw_code_t raw_code_apps_monero_signing_step_09_sign_input__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_signing_step_09_sign_input__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = (void *)&children_apps_monero_signing_step_09_sign_input__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_signing_step_09_sign_input__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_signing_step_09_sign_input__lt_module_gt_ + 10, + .opcodes = fun_data_apps_monero_signing_step_09_sign_input__lt_module_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_signing_step_09_sign_input[89] = { + MP_QSTR_apps_slash_monero_slash_signing_slash_step_09_sign_input_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_gc, + MP_QSTR_sign_input, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_crypto, + MP_QSTR_crypto_helpers, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_ensure, + MP_QSTR_mem_trace, + MP_QSTR_input_count, + MP_QSTR_outputs, + MP_QSTR_step, + MP_QSTR_STEP_SIGN, + MP_QSTR_current_input_index, + MP_QSTR_last_step, + MP_QSTR_STEP_ALL_OUT, + MP_QSTR_unimport_begin, + MP_QSTR_offloading_keys, + MP_QSTR_apps_dot_monero_dot_signing, + MP_QSTR_gen_hmac_vini, + MP_QSTR_key_hmac, + MP_QSTR_ct_equals, + MP_QSTR_get_ki_from_vini, + MP_QSTR_last_ki, + MP_QSTR_collect, + MP_QSTR_chacha_poly, + MP_QSTR_decodeint, + MP_QSTR_decrypt_pack, + MP_QSTR_enc_key_txin_alpha, + MP_QSTR_key_enc, + MP_QSTR_sc_sub_into, + MP_QSTR_sumout, + MP_QSTR_sumpouts_alphas, + MP_QSTR_sc_add_into, + MP_QSTR_gen_commitment_into, + MP_QSTR_input_last_amount, + MP_QSTR_sc_eq, + MP_QSTR_compute_hmac, + MP_QSTR_hmac_key_txin_comm, + MP_QSTR_decodepoint, + MP_QSTR_enc_key_spend, + MP_QSTR_unimport_end, + MP_QSTR_CtKey, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_messages_dot_tx_ct_key, + MP_QSTR_real_output, + MP_QSTR_mask, + MP_QSTR_point_eq, + MP_QSTR_key, + MP_QSTR_dest, + MP_QSTR_scalarmult_base_into, + MP_QSTR_commitment, + MP_QSTR_amount, + MP_QSTR_clsag, + MP_QSTR_CLSAG, + MP_QSTR_generate_clsag_simple, + MP_QSTR_full_message, + MP_QSTR_MoneroTransactionSignInputAck, + MP_QSTR_trezor_dot_messages, + MP_QSTR_signature, + MP_QSTR_pseudo_out, + MP_QSTR_encodepoint, + MP_QSTR__protect_signature, + MP_QSTR_chacha20poly1305, + MP_QSTR_random, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_bytes, + MP_QSTR_opening_key, + MP_QSTR_key_signature, + MP_QSTR_encrypt, + MP_QSTR_finish, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_state, + MP_QSTR_src_entr, + MP_QSTR_vini_bin, + MP_QSTR_vini_hmac, + MP_QSTR_pseudo_out_hmac, + MP_QSTR_pseudo_out_alpha_enc, + MP_QSTR_spend_enc, + MP_QSTR_orig_idx, + MP_QSTR_progress, + MP_QSTR_ValueError, + MP_QSTR_len, + MP_QSTR_mg_buffer, + MP_QSTR_bytearray, + MP_QSTR_enumerate, + MP_QSTR_min, + MP_QSTR__star_, +}; + +// constants +static const mp_obj_str_t const_obj_apps_monero_signing_step_09_sign_input_2 = {{&mp_type_str}, 30727, 47, (const byte*)"\x53\x69\x6d\x70\x6c\x65\x52\x43\x54\x20\x72\x65\x71\x75\x69\x72\x65\x73\x20\x70\x73\x65\x75\x64\x6f\x5f\x6f\x75\x74\x20\x62\x75\x74\x20\x6e\x6f\x6e\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x64"}; +static const mp_obj_str_t const_obj_apps_monero_signing_step_09_sign_input_3 = {{&mp_type_str}, 29799, 54, (const byte*)"\x53\x69\x6d\x70\x6c\x65\x52\x43\x54\x20\x72\x65\x71\x75\x69\x72\x65\x73\x20\x70\x73\x65\x75\x64\x6f\x5f\x6f\x75\x74\x27\x73\x20\x6d\x61\x73\x6b\x20\x62\x75\x74\x20\x6e\x6f\x6e\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x64"}; +static const mp_obj_str_t const_obj_apps_monero_signing_step_09_sign_input_8 = {{&mp_type_str}, 52725, 58, (const byte*)"\x52\x65\x61\x6c\x20\x73\x6f\x75\x72\x63\x65\x20\x65\x6e\x74\x72\x79\x27\x73\x20\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x65\x71\x75\x61\x6c\x20\x73\x70\x65\x6e\x64\x20\x6b\x65\x79\x27\x73"}; +static const mp_obj_str_t const_obj_apps_monero_signing_step_09_sign_input_9 = {{&mp_type_str}, 16221, 51, (const byte*)"\x52\x65\x61\x6c\x20\x73\x6f\x75\x72\x63\x65\x20\x65\x6e\x74\x72\x79\x27\x73\x20\x6d\x61\x73\x6b\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x65\x71\x75\x61\x6c\x20\x73\x70\x65\x6e\x64\x20\x6b\x65\x79\x27\x73"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_signing_step_09_sign_input[12] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_state_space_transition), + MP_ROM_QSTR(MP_QSTR_Invalid_space_inputs_space_count), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_09_sign_input_2), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_09_sign_input_3), + MP_ROM_QSTR(MP_QSTR_HMAC_space_is_space_not_space_correct), + MP_ROM_QSTR(MP_QSTR_Key_space_image_space_order_space_invalid), + MP_ROM_QSTR(MP_QSTR_Correcting_space_alpha), + MP_ROM_QSTR(MP_QSTR_Sum_space_eq_space_error), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_09_sign_input_8), + MP_ROM_PTR(&const_obj_apps_monero_signing_step_09_sign_input_9), + MP_ROM_QSTR(MP_QSTR_Invalid_space_ring), + MP_ROM_QSTR(MP_QSTR_Invariant_space_error), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_signing_step_09_sign_input = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_signing_step_09_sign_input, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_signing_step_09_sign_input, + }, + .rc = &raw_code_apps_monero_signing_step_09_sign_input__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_signing_step_10_sign_final +// - original source file: build/firmware/src/apps/monero/signing/step_10_sign_final.mpy +// - frozen file name: apps/monero/signing/step_10_sign_final.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/signing/step_10_sign_final.py, scope apps_monero_signing_step_10_sign_final__lt_module_gt_ +static const byte fun_data_apps_monero_signing_step_10_sign_final__lt_module_gt_[13] = { + 0x00,0x0a, // prelude + 0x01, // names: + 0x80,0x0c,0x60,0x60, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'final_msg' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_signing_step_10_sign_final__lt_module_gt_ +// frozen bytecode for file apps/monero/signing/step_10_sign_final.py, scope apps_monero_signing_step_10_sign_final_final_msg +static const byte fun_data_apps_monero_signing_step_10_sign_final_final_msg[213] = { + 0xb9,0x10,0x2f, // prelude + 0x02,0x22, // names: final_msg, state + 0x80,0x13,0x2b,0x4b,0x2b,0x56,0x29,0x27,0x2b,0x67,0x27,0x26,0x28,0x23,0x6d,0x2d,0x4d,0x28,0x44,0x6f,0x40,0x0c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'random' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x03, // IMPORT_FROM 'random' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'MoneroTransactionFinalAck' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.messages' + 0x1c,0x05, // IMPORT_FROM 'MoneroTransactionFinalAck' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'misc' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'apps.monero' + 0x1c,0x07, // IMPORT_FROM 'misc' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'chacha_poly' + 0x10,0x0a, // LOAD_CONST_STRING 'crypto' + 0x10,0x0b, // LOAD_CONST_STRING 'crypto_helpers' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x0c, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x09, // IMPORT_FROM 'chacha_poly' + 0xc4, // STORE_FAST 4 + 0x1c,0x0a, // IMPORT_FROM 'crypto' + 0xc5, // STORE_FAST 5 + 0x1c,0x0b, // IMPORT_FROM 'crypto_helpers' + 0x27,0x0c, // STORE_DEREF 12 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'last_step' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'STEP_SIGN' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x23, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'current_input_index' + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'input_count' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x23, // LOAD_GLOBAL 'ValueError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x14,0x11, // LOAD_METHOD 'bytes' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x14,0x12, // LOAD_METHOD 'random_scalar' + 0x36,0x00, // CALL_METHOD 0 + 0xc7, // STORE_FAST 7 + 0x25,0x0c, // LOAD_DEREF 12 + 0x14,0x13, // LOAD_METHOD 'encodeint' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0xc8, // STORE_FAST 8 + 0xb3, // LOAD_FAST 3 + 0x14,0x14, // LOAD_METHOD 'compute_tx_key' + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'creds' + 0x13,0x16, // LOAD_ATTR 'spend_key_private' + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'tx_prefix_hash' + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x36,0x04, // CALL_METHOD 4 + 0xc9, // STORE_FAST 9 + 0x25,0x0c, // LOAD_DEREF 12 + 0x14,0x13, // LOAD_METHOD 'encodeint' + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'tx_priv' + 0x36,0x01, // CALL_METHOD 1 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x14,0x19, // LOAD_METHOD 'join' + 0xbc, // LOAD_FAST 12 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'additional_tx_private_keys' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0xf2, // BINARY_OP 27 __add__ + 0xca, // STORE_FAST 10 + 0xb4, // LOAD_FAST 4 + 0x14,0x1b, // LOAD_METHOD 'encrypt_pack' + 0xb9, // LOAD_FAST 9 + 0xba, // LOAD_FAST 10 + 0x36,0x02, // CALL_METHOD 2 + 0xcb, // STORE_FAST 11 + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x0d, // STORE_ATTR 'last_step' + 0xb2, // LOAD_FAST 2 + 0x10,0x1c, // LOAD_CONST_STRING 'cout_key' + 0x51, // LOAD_CONST_NONE + 0x10,0x1d, // LOAD_CONST_STRING 'salt' + 0xb6, // LOAD_FAST 6 + 0x10,0x1e, // LOAD_CONST_STRING 'rand_mult' + 0xb8, // LOAD_FAST 8 + 0x10,0x1f, // LOAD_CONST_STRING 'tx_enc_keys' + 0xbb, // LOAD_FAST 11 + 0x10,0x20, // LOAD_CONST_STRING 'opening_key' + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'opening_key' + 0x34,0x8a,0x00, // CALL_FUNCTION 1280 + 0x63, // RETURN_VALUE +}; +// child of apps_monero_signing_step_10_sign_final_final_msg +// frozen bytecode for file apps/monero/signing/step_10_sign_final.py, scope apps_monero_signing_step_10_sign_final_final_msg__lt_listcomp_gt_ +static const byte fun_data_apps_monero_signing_step_10_sign_final_final_msg__lt_listcomp_gt_[26] = { + 0x52,0x0a, // prelude + 0x21,0x24,0x24, // names: , *, * + 0x80,0x27, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x0c, // FOR_ITER 12 + 0xc2, // STORE_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0x14,0x13, // LOAD_METHOD 'encodeint' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x32, // JUMP -14 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_signing_step_10_sign_final_final_msg__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_signing_step_10_sign_final_final_msg__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_monero_signing_step_10_sign_final_final_msg__lt_listcomp_gt_ + 5, + .line_info_top = fun_data_apps_monero_signing_step_10_sign_final_final_msg__lt_listcomp_gt_ + 7, + .opcodes = fun_data_apps_monero_signing_step_10_sign_final_final_msg__lt_listcomp_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_signing_step_10_sign_final_final_msg[] = { + &raw_code_apps_monero_signing_step_10_sign_final_final_msg__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_apps_monero_signing_step_10_sign_final_final_msg = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_signing_step_10_sign_final_final_msg, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 213, + #endif + .children = (void *)&children_apps_monero_signing_step_10_sign_final_final_msg, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 24, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_monero_signing_step_10_sign_final_final_msg + 5, + .line_info_top = fun_data_apps_monero_signing_step_10_sign_final_final_msg + 26, + .opcodes = fun_data_apps_monero_signing_step_10_sign_final_final_msg + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_signing_step_10_sign_final__lt_module_gt_[] = { + &raw_code_apps_monero_signing_step_10_sign_final_final_msg, +}; + +static const mp_raw_code_t raw_code_apps_monero_signing_step_10_sign_final__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_signing_step_10_sign_final__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = (void *)&children_apps_monero_signing_step_10_sign_final__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_signing_step_10_sign_final__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_signing_step_10_sign_final__lt_module_gt_ + 7, + .opcodes = fun_data_apps_monero_signing_step_10_sign_final__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_signing_step_10_sign_final[37] = { + MP_QSTR_apps_slash_monero_slash_signing_slash_step_10_sign_final_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_final_msg, + MP_QSTR_random, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_MoneroTransactionFinalAck, + MP_QSTR_trezor_dot_messages, + MP_QSTR_misc, + MP_QSTR_apps_dot_monero, + MP_QSTR_chacha_poly, + MP_QSTR_crypto, + MP_QSTR_crypto_helpers, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_last_step, + MP_QSTR_STEP_SIGN, + MP_QSTR_current_input_index, + MP_QSTR_input_count, + MP_QSTR_bytes, + MP_QSTR_random_scalar, + MP_QSTR_encodeint, + MP_QSTR_compute_tx_key, + MP_QSTR_creds, + MP_QSTR_spend_key_private, + MP_QSTR_tx_prefix_hash, + MP_QSTR_tx_priv, + MP_QSTR_join, + MP_QSTR_additional_tx_private_keys, + MP_QSTR_encrypt_pack, + MP_QSTR_cout_key, + MP_QSTR_salt, + MP_QSTR_rand_mult, + MP_QSTR_tx_enc_keys, + MP_QSTR_opening_key, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_state, + MP_QSTR_ValueError, + MP_QSTR__star_, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_signing_step_10_sign_final[3] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_state_space_transition), + MP_ROM_QSTR(MP_QSTR_Invalid_space_input_space_count), + MP_ROM_PTR(&mp_const_empty_bytes_obj), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_signing_step_10_sign_final = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_signing_step_10_sign_final, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_signing_step_10_sign_final, + }, + .rc = &raw_code_apps_monero_signing_step_10_sign_final__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr___init__ +// - original source file: build/firmware/src/apps/monero/xmr/__init__.mpy +// - frozen file name: apps/monero/xmr/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/__init__.py, scope apps_monero_xmr___init____lt_module_gt_ +static const byte fun_data_apps_monero_xmr___init____lt_module_gt_[17] = { + 0x08,0x02, // prelude + 0x01, // names: + // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'monero' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x02, // IMPORT_FROM 'monero' + 0x16,0x04, // STORE_NAME 'crypto' + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr___init____lt_module_gt_ + 3, + .opcodes = fun_data_apps_monero_xmr___init____lt_module_gt_ + 3, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr___init__[5] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_monero, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_crypto, +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps_monero_xmr___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_addresses +// - original source file: build/firmware/src/apps/monero/xmr/addresses.mpy +// - frozen file name: apps/monero/xmr/addresses.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/addresses.py, scope apps_monero_xmr_addresses__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_addresses__lt_module_gt_[34] = { + 0x08,0x14, // prelude + 0x01, // names: + 0x40,0x80,0x07,0x88,0x0e,0x84,0x1d,0x84,0x07, // code info + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x02, // STORE_NAME 'encode_addr' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x06, // STORE_NAME 'classify_subaddresses' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0c, // STORE_NAME 'addr_eq' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x0d, // STORE_NAME 'get_change_addr_idx' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_addresses__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/addresses.py, scope apps_monero_xmr_addresses_encode_addr +static const byte fun_data_apps_monero_xmr_addresses_encode_addr[57] = { + 0xd0,0x05,0x18, // prelude + 0x02,0x0f,0x10,0x11,0x12, // names: encode_addr, version, spend_pub, view_pub, payment_id + 0x80,0x0c,0x60,0x4b,0x24,0x23,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'monero' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x03, // IMPORT_FROM 'monero' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xf2, // BINARY_OP 27 __add__ + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb5, // LOAD_FAST 5 + 0x12,0x13, // LOAD_GLOBAL 'bytes' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x14,0x05, // LOAD_METHOD 'xmr_base58_addr_encode_check' + 0x12,0x14, // LOAD_GLOBAL 'ord' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x13, // LOAD_GLOBAL 'bytes' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_addresses_encode_addr = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_addresses_encode_addr, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_monero_xmr_addresses_encode_addr + 8, + .line_info_top = fun_data_apps_monero_xmr_addresses_encode_addr + 15, + .opcodes = fun_data_apps_monero_xmr_addresses_encode_addr + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_addresses__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/addresses.py, scope apps_monero_xmr_addresses_classify_subaddresses +static const byte fun_data_apps_monero_xmr_addresses_classify_subaddresses[109] = { + 0x7a,0x2c, // prelude + 0x06,0x15,0x16, // names: classify_subaddresses, tx_dests, change_addr + 0x80,0x1b,0x60,0x22,0x22,0x22,0x25,0x25,0x24,0x2b,0x62,0x2c,0x25,0x22,0x27,0x25,0x24,0x44,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc2, // STORE_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc3, // STORE_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xc4, // STORE_FAST 4 + 0x12,0x17, // LOAD_GLOBAL 'set' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x40, // FOR_ITER 64 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x13,0x07, // LOAD_ATTR 'addr' + 0xc7, // STORE_FAST 7 + 0xb1, // LOAD_FAST 1 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x0c, // LOAD_GLOBAL 'addr_eq' + 0xb1, // LOAD_FAST 1 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x2c, // JUMP -20 + 0x12,0x13, // LOAD_GLOBAL 'bytes' + 0xb7, // LOAD_FAST 7 + 0x13,0x08, // LOAD_ATTR 'spend_public_key' + 0xb7, // LOAD_FAST 7 + 0x13,0x09, // LOAD_ATTR 'view_public_key' + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0xb5, // LOAD_FAST 5 + 0xdd, // BINARY_OP 6 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x19, // JUMP -39 + 0xb5, // LOAD_FAST 5 + 0x14,0x0a, // LOAD_METHOD 'add' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x13,0x0b, // LOAD_ATTR 'is_subaddress' + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0xb7, // LOAD_FAST 7 + 0xc4, // STORE_FAST 4 + 0x42,0x44, // JUMP 4 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0x42,0xbe,0x7f, // JUMP -66 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_addresses_classify_subaddresses = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_addresses_classify_subaddresses, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 109, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_monero_xmr_addresses_classify_subaddresses + 5, + .line_info_top = fun_data_apps_monero_xmr_addresses_classify_subaddresses + 24, + .opcodes = fun_data_apps_monero_xmr_addresses_classify_subaddresses + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_addresses__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/addresses.py, scope apps_monero_xmr_addresses_addr_eq +static const byte fun_data_apps_monero_xmr_addresses_addr_eq[26] = { + 0x1a,0x0e, // prelude + 0x0c,0x18,0x19, // names: addr_eq, a, b + 0x80,0x35,0x20,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'spend_public_key' + 0xb1, // LOAD_FAST 1 + 0x13,0x08, // LOAD_ATTR 'spend_public_key' + 0xd9, // BINARY_OP 2 __eq__ + 0x46,0x07, // JUMP_IF_FALSE_OR_POP 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'view_public_key' + 0xb1, // LOAD_FAST 1 + 0x13,0x09, // LOAD_ATTR 'view_public_key' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_addresses_addr_eq = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_addresses_addr_eq, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_monero_xmr_addresses_addr_eq + 5, + .line_info_top = fun_data_apps_monero_xmr_addresses_addr_eq + 9, + .opcodes = fun_data_apps_monero_xmr_addresses_addr_eq + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_addresses__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/addresses.py, scope apps_monero_xmr_addresses_get_change_addr_idx +static const byte fun_data_apps_monero_xmr_addresses_get_change_addr_idx[70] = { + 0x5a,0x1e, // prelude + 0x0d,0x1a,0x1b, // names: get_change_addr_idx, outputs, change_dts + 0x80,0x3f,0x60,0x25,0x42,0x22,0x2c,0x20,0x25,0x29,0x4c,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0xc2, // STORE_FAST 2 + 0x12,0x1c, // LOAD_GLOBAL 'enumerate' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x22, // FOR_ITER 34 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x0e, // LOAD_ATTR 'amount' + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0xb1, // LOAD_FAST 1 + 0x13,0x0e, // LOAD_ATTR 'amount' + 0xb4, // LOAD_FAST 4 + 0x13,0x0e, // LOAD_ATTR 'amount' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x0c, // LOAD_GLOBAL 'addr_eq' + 0xb1, // LOAD_FAST 1 + 0x13,0x07, // LOAD_ATTR 'addr' + 0xb4, // LOAD_FAST 4 + 0x13,0x07, // LOAD_ATTR 'addr' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb3, // LOAD_FAST 3 + 0xc2, // STORE_FAST 2 + 0x42,0x1c, // JUMP -36 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_addresses_get_change_addr_idx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_addresses_get_change_addr_idx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_monero_xmr_addresses_get_change_addr_idx + 5, + .line_info_top = fun_data_apps_monero_xmr_addresses_get_change_addr_idx + 17, + .opcodes = fun_data_apps_monero_xmr_addresses_get_change_addr_idx + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_addresses__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_addresses_encode_addr, + &raw_code_apps_monero_xmr_addresses_classify_subaddresses, + &raw_code_apps_monero_xmr_addresses_addr_eq, + &raw_code_apps_monero_xmr_addresses_get_change_addr_idx, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_addresses__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_addresses__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = (void *)&children_apps_monero_xmr_addresses__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_addresses__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_addresses__lt_module_gt_ + 12, + .opcodes = fun_data_apps_monero_xmr_addresses__lt_module_gt_ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_addresses[29] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_addresses_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_encode_addr, + MP_QSTR_monero, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_xmr_base58_addr_encode_check, + MP_QSTR_classify_subaddresses, + MP_QSTR_addr, + MP_QSTR_spend_public_key, + MP_QSTR_view_public_key, + MP_QSTR_add, + MP_QSTR_is_subaddress, + MP_QSTR_addr_eq, + MP_QSTR_get_change_addr_idx, + MP_QSTR_amount, + MP_QSTR_version, + MP_QSTR_spend_pub, + MP_QSTR_view_pub, + MP_QSTR_payment_id, + MP_QSTR_bytes, + MP_QSTR_ord, + MP_QSTR_tx_dests, + MP_QSTR_change_addr, + MP_QSTR_set, + MP_QSTR_a, + MP_QSTR_b, + MP_QSTR_outputs, + MP_QSTR_change_dts, + MP_QSTR_enumerate, +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_addresses = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_addresses, + .obj_table = NULL, + }, + .rc = &raw_code_apps_monero_xmr_addresses__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_bulletproof +// - original source file: build/firmware/src/apps/monero/xmr/bulletproof.mpy +// - frozen file name: apps/monero/xmr/bulletproof.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_bulletproof__lt_module_gt_[847] = { + 0x20,0xa4,0x04, // prelude + 0x01, // names: + 0x26,0x6c,0x4c,0x32,0x4c,0x80,0x09,0x28,0x44,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x67,0x6e,0x40,0x27,0x2a,0x2a,0x2a,0x27,0x65,0x25,0x29,0x45,0x25,0x85,0x08,0x29,0x29,0x4a,0x27,0x27,0x27,0x47,0x27,0x27,0x27,0x27,0x67,0x68,0x60,0x84,0x0a,0x84,0x07,0x64,0x20,0x64,0x40,0x84,0x08,0x8b,0x15,0x8a,0x08,0x84,0x08,0x88,0x07,0x84,0x09,0x84,0x12,0x84,0x0c,0x84,0x1a,0x84,0x09,0x84,0x0a,0x84,0x07,0x84,0x0c,0x64,0x20,0x84,0x0f,0x84,0x0f,0x84,0x15,0x84,0x14,0x84,0x26,0x70,0x80,0x32,0x60,0x67,0x70,0x80,0xa2,0x8b,0x23,0x8b,0x20,0x8b,0x1c,0x8b,0x5b,0x8b,0x6a,0x8b,0x2e,0x8b,0x32,0x8b,0x33,0x89,0x09,0x8a,0x1c,0x84,0x19,0x8b,0x18,0x84,0x11,0x64,0x20,0x89,0x34,0x69,0x20,0x6c,0x20,0x8a,0x27,0x89,0x0a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'gc' + 0x16,0x02, // STORE_NAME 'gc' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'micropython' + 0x1c,0x03, // IMPORT_FROM 'const' + 0x16,0x03, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x05, // IMPORT_FROM 'utils' + 0x16,0x05, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'crypto' + 0x10,0x08, // LOAD_CONST_STRING 'crypto_helpers' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x09, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x07, // IMPORT_FROM 'crypto' + 0x16,0x07, // STORE_NAME 'crypto' + 0x1c,0x08, // IMPORT_FROM 'crypto_helpers' + 0x16,0x08, // STORE_NAME 'crypto_helpers' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'dump_uvarint_b_into' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'apps.monero.xmr.serialize.int_serialize' + 0x1c,0x0a, // IMPORT_FROM 'dump_uvarint_b_into' + 0x16,0x0a, // STORE_NAME 'dump_uvarint_b_into' + 0x59, // POP_TOP + 0x11,0x81,0x50, // LOAD_NAME 'object' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x16,0x81,0x51, // STORE_NAME 'Generic' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x81,0x52, // STORE_NAME 'T' + 0x11,0x07, // LOAD_NAME 'crypto' + 0x13,0x0c, // LOAD_ATTR 'decodeint_into_noreduce' + 0x16,0x0c, // STORE_NAME 'decodeint_into_noreduce' + 0x11,0x07, // LOAD_NAME 'crypto' + 0x13,0x0d, // LOAD_ATTR 'decodeint_into' + 0x16,0x0d, // STORE_NAME 'decodeint_into' + 0x11,0x07, // LOAD_NAME 'crypto' + 0x13,0x0e, // LOAD_ATTR 'encodeint_into' + 0x16,0x0e, // STORE_NAME 'encodeint_into' + 0x11,0x07, // LOAD_NAME 'crypto' + 0x13,0x0f, // LOAD_ATTR 'decodepoint_into' + 0x16,0x0f, // STORE_NAME 'decodepoint_into' + 0x11,0x07, // LOAD_NAME 'crypto' + 0x13,0x10, // LOAD_ATTR 'encodepoint_into' + 0x16,0x10, // STORE_NAME 'encodepoint_into' + 0x11,0x07, // LOAD_NAME 'crypto' + 0x13,0x11, // LOAD_ATTR 'Scalar' + 0x16,0x11, // STORE_NAME 'Scalar' + 0x11,0x07, // LOAD_NAME 'crypto' + 0x13,0x12, // LOAD_ATTR 'Point' + 0x16,0x12, // STORE_NAME 'Point' + 0x11,0x07, // LOAD_NAME 'crypto' + 0x13,0x13, // LOAD_ATTR 'sc_copy' + 0x16,0x13, // STORE_NAME 'sc_copy' + 0x11,0x07, // LOAD_NAME 'crypto' + 0x13,0x14, // LOAD_ATTR 'sc_mul_into' + 0x16,0x14, // STORE_NAME 'sc_mul_into' + 0x11,0x07, // LOAD_NAME 'crypto' + 0x13,0x15, // LOAD_ATTR 'sc_inv_into' + 0x16,0x15, // STORE_NAME 'sc_inv_into' + 0x11,0x07, // LOAD_NAME 'crypto' + 0x13,0x16, // LOAD_ATTR 'sc_muladd_into' + 0x16,0x16, // STORE_NAME 'sc_muladd_into' + 0x11,0x07, // LOAD_NAME 'crypto' + 0x13,0x17, // LOAD_ATTR 'scalarmult_into' + 0x16,0x17, // STORE_NAME 'scalarmult_into' + 0x11,0x07, // LOAD_NAME 'crypto' + 0x13,0x18, // LOAD_ATTR 'random_scalar' + 0x16,0x18, // STORE_NAME 'random_scalar' + 0x11,0x08, // LOAD_NAME 'crypto_helpers' + 0x13,0x19, // LOAD_ATTR 'encodeint' + 0x16,0x19, // STORE_NAME 'encodeint' + 0x11,0x05, // LOAD_NAME 'utils' + 0x13,0x1a, // LOAD_ATTR 'ensure' + 0x16,0x1a, // STORE_NAME 'ensure' + 0x11,0x02, // LOAD_NAME 'gc' + 0x13,0x1b, // LOAD_ATTR 'collect' + 0x16,0x81,0x53, // STORE_NAME 'gc_collect' + 0x11,0x81,0x54, // LOAD_NAME 'bytes' + 0x11,0x81,0x55, // LOAD_NAME 'bytearray' + 0x11,0x81,0x56, // LOAD_NAME 'memoryview' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x16,0x81,0x57, // STORE_NAME 'TBYTES' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf4, // BINARY_OP 29 __mul__ + 0x16,0x81,0x58, // STORE_NAME '_ZERO' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0x16,0x81,0x59, // STORE_NAME '_ONE' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0x16,0x81,0x5a, // STORE_NAME '_TWO' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0x16,0x81,0x5b, // STORE_NAME '_EIGHT' + 0x11,0x08, // LOAD_NAME 'crypto_helpers' + 0x13,0x1c, // LOAD_ATTR 'INV_EIGHT' + 0x16,0x81,0x5c, // STORE_NAME '_INV_EIGHT' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x16,0x81,0x5d, // STORE_NAME '_MINUS_ONE' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x16,0x81,0x5e, // STORE_NAME '_XMR_H' + 0x11,0x07, // LOAD_NAME 'crypto' + 0x14,0x1d, // LOAD_METHOD 'xmr_H' + 0x36,0x00, // CALL_METHOD 0 + 0x16,0x81,0x5f, // STORE_NAME '_XMR_HP' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x16,0x81,0x60, // STORE_NAME '_XMR_G' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x16,0x81,0x61, // STORE_NAME '_INITIAL_TRANSCRIPT' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x16,0x81,0x62, // STORE_NAME '_TWO_SIXTY_FOUR_MINUS_ONE' + 0x11,0x81,0x55, // LOAD_NAME 'bytearray' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x81,0x63, // STORE_NAME '_tmp_bf_0' + 0x11,0x81,0x55, // LOAD_NAME 'bytearray' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x81,0x64, // STORE_NAME '_tmp_bf_1' + 0x11,0x81,0x55, // LOAD_NAME 'bytearray' + 0x22,0x34, // LOAD_CONST_SMALL_INT 52 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x81,0x65, // STORE_NAME '_tmp_bf_exp' + 0x11,0x12, // LOAD_NAME 'Point' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x81,0x66, // STORE_NAME '_tmp_pt_1' + 0x11,0x12, // LOAD_NAME 'Point' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x81,0x67, // STORE_NAME '_tmp_pt_2' + 0x11,0x12, // LOAD_NAME 'Point' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x81,0x68, // STORE_NAME '_tmp_pt_3' + 0x11,0x12, // LOAD_NAME 'Point' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x81,0x69, // STORE_NAME '_tmp_pt_4' + 0x11,0x11, // LOAD_NAME 'Scalar' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x81,0x6a, // STORE_NAME '_tmp_sc_1' + 0x11,0x11, // LOAD_NAME 'Scalar' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x81,0x6b, // STORE_NAME '_tmp_sc_2' + 0x11,0x11, // LOAD_NAME 'Scalar' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x81,0x6c, // STORE_NAME '_tmp_sc_3' + 0x11,0x11, // LOAD_NAME 'Scalar' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x81,0x6d, // STORE_NAME '_tmp_sc_4' + 0x11,0x11, // LOAD_NAME 'Scalar' + 0x34,0x00, // CALL_FUNCTION 0 + 0x16,0x81,0x6e, // STORE_NAME '_tmp_sc_5' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x2c, // STORE_NAME '_ensure_dst_key' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x2d, // STORE_NAME 'memcpy' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x2f, // STORE_NAME '_copy_key' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x30, // STORE_NAME '_load_scalar' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x31, // STORE_NAME '_gc_iter' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x32, // STORE_NAME '_invert' + 0x51, // LOAD_CONST_NONE + 0x11,0x81,0x66, // LOAD_NAME '_tmp_pt_1' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x06, // MAKE_FUNCTION_DEFARGS 6 + 0x16,0x33, // STORE_NAME '_scalarmult_key' + 0x11,0x81,0x66, // LOAD_NAME '_tmp_pt_1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x07, // MAKE_FUNCTION_DEFARGS 7 + 0x16,0x34, // STORE_NAME '_scalarmult8' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x36, // STORE_NAME '_scalarmult_base' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x09, // MAKE_FUNCTION_DEFARGS 9 + 0x16,0x38, // STORE_NAME '_sc_gen' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x39, // STORE_NAME '_sc_add' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x3b, // STORE_NAME '_sc_sub' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x3d, // STORE_NAME '_sc_mul' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x3e, // STORE_NAME '_sc_muladd' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x16,0x3f, // STORE_NAME '_add_keys' + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x16,0x41, // STORE_NAME '_add_keys2' + 0x32,0x10, // MAKE_FUNCTION 16 + 0x16,0x43, // STORE_NAME '_hash_to_scalar' + 0x32,0x11, // MAKE_FUNCTION 17 + 0x16,0x45, // STORE_NAME '_hash_vct_to_scalar' + 0x32,0x12, // MAKE_FUNCTION 18 + 0x16,0x49, // STORE_NAME '_get_exponent_plus' + 0x32,0x13, // MAKE_FUNCTION 19 + 0x16,0x4a, // STORE_NAME '_get_exponent_univ' + 0x32,0x14, // MAKE_FUNCTION 20 + 0x16,0x4e, // STORE_NAME '_sc_square_mult' + 0x32,0x15, // MAKE_FUNCTION 21 + 0x16,0x51, // STORE_NAME '_invert_batch' + 0x32,0x16, // MAKE_FUNCTION 22 + 0x16,0x52, // STORE_NAME '_sum_of_even_powers' + 0x32,0x17, // MAKE_FUNCTION 23 + 0x16,0x54, // STORE_NAME '_sum_of_scalar_powers' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x18, // MAKE_FUNCTION 24 + 0x10,0x1e, // LOAD_CONST_STRING 'KeyVBase' + 0x11,0x81,0x51, // LOAD_NAME 'Generic' + 0x11,0x81,0x52, // LOAD_NAME 'T' + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x1e, // STORE_NAME 'KeyVBase' + 0x11,0x1e, // LOAD_NAME 'KeyVBase' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x16,0x81,0x6f, // STORE_NAME 'KeyVBaseType' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x19, // MAKE_FUNCTION 25 + 0x10,0x1f, // LOAD_CONST_STRING 'KeyV' + 0x11,0x81,0x6f, // LOAD_NAME 'KeyVBaseType' + 0x11,0x81,0x52, // LOAD_NAME 'T' + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x1f, // STORE_NAME 'KeyV' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x1a, // MAKE_FUNCTION 26 + 0x10,0x20, // LOAD_CONST_STRING 'KeyVEval' + 0x11,0x1e, // LOAD_NAME 'KeyVBase' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x20, // STORE_NAME 'KeyVEval' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x1b, // MAKE_FUNCTION 27 + 0x10,0x21, // LOAD_CONST_STRING 'KeyVPrecomp' + 0x11,0x1e, // LOAD_NAME 'KeyVBase' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x21, // STORE_NAME 'KeyVPrecomp' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x1c, // MAKE_FUNCTION 28 + 0x10,0x22, // LOAD_CONST_STRING 'KeyVSliced' + 0x11,0x1e, // LOAD_NAME 'KeyVBase' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x22, // STORE_NAME 'KeyVSliced' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x1d, // MAKE_FUNCTION 29 + 0x10,0x23, // LOAD_CONST_STRING 'KeyVPowersBackwards' + 0x11,0x1e, // LOAD_NAME 'KeyVBase' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x23, // STORE_NAME 'KeyVPowersBackwards' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x1e, // MAKE_FUNCTION 30 + 0x10,0x24, // LOAD_CONST_STRING 'VctD' + 0x11,0x1e, // LOAD_NAME 'KeyVBase' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x24, // STORE_NAME 'VctD' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x1f, // MAKE_FUNCTION 31 + 0x10,0x25, // LOAD_CONST_STRING 'KeyHadamardFoldedVct' + 0x11,0x1e, // LOAD_NAME 'KeyVBase' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x25, // STORE_NAME 'KeyHadamardFoldedVct' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x20, // MAKE_FUNCTION 32 + 0x10,0x26, // LOAD_CONST_STRING 'KeyScalarFoldedVct' + 0x11,0x1e, // LOAD_NAME 'KeyVBase' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x26, // STORE_NAME 'KeyScalarFoldedVct' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x21, // MAKE_FUNCTION 33 + 0x10,0x27, // LOAD_CONST_STRING 'KeyChallengeCacheVct' + 0x11,0x1e, // LOAD_NAME 'KeyVBase' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x27, // STORE_NAME 'KeyChallengeCacheVct' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x22, // MAKE_FUNCTION_DEFARGS 34 + 0x16,0x55, // STORE_NAME '_ensure_dst_keyvect' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2a,0x03, // BUILD_TUPLE 3 + 0x53, // LOAD_NULL + 0x33,0x23, // MAKE_FUNCTION_DEFARGS 35 + 0x16,0x58, // STORE_NAME '_vector_exponent_custom' + 0x32,0x24, // MAKE_FUNCTION 36 + 0x16,0x5c, // STORE_NAME '_weighted_inner_product' + 0x51, // LOAD_CONST_NONE + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2a,0x04, // BUILD_TUPLE 4 + 0x53, // LOAD_NULL + 0x33,0x25, // MAKE_FUNCTION_DEFARGS 37 + 0x16,0x5d, // STORE_NAME '_hadamard_fold' + 0x32,0x26, // MAKE_FUNCTION 38 + 0x16,0x5f, // STORE_NAME '_hash_cache_mash' + 0x32,0x27, // MAKE_FUNCTION 39 + 0x16,0x60, // STORE_NAME '_is_reduced' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x28, // MAKE_FUNCTION 40 + 0x10,0x28, // LOAD_CONST_STRING 'MultiExpSequential' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x28, // STORE_NAME 'MultiExpSequential' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x29, // MAKE_FUNCTION_DEFARGS 41 + 0x16,0x61, // STORE_NAME '_multiexp' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x2a, // MAKE_FUNCTION 42 + 0x10,0x29, // LOAD_CONST_STRING 'BulletProofGenException' + 0x11,0x81,0x70, // LOAD_NAME 'Exception' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x29, // STORE_NAME 'BulletProofGenException' + 0x11,0x81,0x63, // LOAD_NAME '_tmp_bf_0' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x2b, // MAKE_FUNCTION_DEFARGS 43 + 0x16,0x63, // STORE_NAME '_compute_LR' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x2c, // MAKE_FUNCTION 44 + 0x10,0x2a, // LOAD_CONST_STRING 'BulletProofPlusData' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x2a, // STORE_NAME 'BulletProofPlusData' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x2d, // MAKE_FUNCTION 45 + 0x10,0x2b, // LOAD_CONST_STRING 'BulletProofPlusBuilder' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x2b, // STORE_NAME 'BulletProofPlusBuilder' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__ensure_dst_key +static const byte fun_data_apps_monero_xmr_bulletproof__ensure_dst_key[24] = { + 0x91,0x01,0x0e, // prelude + 0x2c,0x81,0x71, // names: _ensure_dst_key, dst + 0x80,0x52,0x25,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x81,0x55, // LOAD_GLOBAL 'bytearray' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__ensure_dst_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_bulletproof__ensure_dst_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 44, + .line_info = fun_data_apps_monero_xmr_bulletproof__ensure_dst_key + 6, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__ensure_dst_key + 10, + .opcodes = fun_data_apps_monero_xmr_bulletproof__ensure_dst_key + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_memcpy +static const byte fun_data_apps_monero_xmr_bulletproof_memcpy[47] = { + 0xd9,0x04,0x20, // prelude + 0x2d,0x81,0x71,0x81,0x72,0x81,0x0f,0x81,0x73,0x81,0x74, // names: memcpy, dst, dst_off, src, src_off, len + 0x80,0x5a,0x4b,0x26,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2d, // LOAD_CONST_STRING 'memcpy' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2e, // IMPORT_NAME 'trezor.utils' + 0x1c,0x2d, // IMPORT_FROM 'memcpy' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_memcpy = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_monero_xmr_bulletproof_memcpy, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_monero_xmr_bulletproof_memcpy + 14, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_memcpy + 19, + .opcodes = fun_data_apps_monero_xmr_bulletproof_memcpy + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__copy_key +static const byte fun_data_apps_monero_xmr_bulletproof__copy_key[39] = { + 0x32,0x14, // prelude + 0x2f,0x81,0x71,0x81,0x0f, // names: _copy_key, dst, src + 0x80,0x62,0x26,0x25,0x2e, // code info + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x4a, // JUMP 10 + 0x57, // DUP_TOP + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x56, // STORE_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x57, // DUP_TOP + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x31, // POP_JUMP_IF_TRUE -15 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__copy_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof__copy_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_apps_monero_xmr_bulletproof__copy_key + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__copy_key + 12, + .opcodes = fun_data_apps_monero_xmr_bulletproof__copy_key + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__load_scalar +static const byte fun_data_apps_monero_xmr_bulletproof__load_scalar[33] = { + 0x22,0x0e, // prelude + 0x30,0x81,0x71,0x81,0x11, // names: _load_scalar, dst, a + 0x80,0x69, // code info + 0x12,0x81,0x75, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x13, // LOAD_GLOBAL 'sc_copy' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__load_scalar = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof__load_scalar, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 48, + .line_info = fun_data_apps_monero_xmr_bulletproof__load_scalar + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__load_scalar + 9, + .opcodes = fun_data_apps_monero_xmr_bulletproof__load_scalar + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__gc_iter +static const byte fun_data_apps_monero_xmr_bulletproof__gc_iter[25] = { + 0x11,0x0c, // prelude + 0x31,0x81,0x76, // names: _gc_iter, i + 0x80,0x6d,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0xef, // BINARY_OP 24 __and__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x12,0x81,0x53, // LOAD_GLOBAL 'gc_collect' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__gc_iter = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_bulletproof__gc_iter, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 49, + .line_info = fun_data_apps_monero_xmr_bulletproof__gc_iter + 5, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__gc_iter + 8, + .opcodes = fun_data_apps_monero_xmr_bulletproof__gc_iter + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__invert +static const byte fun_data_apps_monero_xmr_bulletproof__invert[50] = { + 0x22,0x16, // prelude + 0x32,0x81,0x71,0x81,0x03, // names: _invert, dst, x + 0x80,0x72,0x26,0x29,0x2b,0x29, // code info + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x15, // LOAD_GLOBAL 'sc_inv_into' + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0xb0, // LOAD_FAST 0 + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__invert = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof__invert, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 50, + .line_info = fun_data_apps_monero_xmr_bulletproof__invert + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__invert + 13, + .opcodes = fun_data_apps_monero_xmr_bulletproof__invert + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__scalarmult_key +static const byte fun_data_apps_monero_xmr_bulletproof__scalarmult_key[79] = { + 0xc1,0x84,0x01,0x2a, // prelude + 0x33,0x81,0x71,0x81,0x77,0x81,0x78,0x81,0x79,0x81,0x14, // names: _scalarmult_key, dst, P, s, s_raw, tmp_pt + 0x80,0x82,0x26,0x27,0x23,0x29,0x4c,0x20,0x28,0x27, // code info + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x0f, // LOAD_GLOBAL 'decodepoint_into' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x17, // LOAD_GLOBAL 'scalarmult_into' + 0xb4, // LOAD_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x48, // JUMP 8 + 0x12,0x17, // LOAD_GLOBAL 'scalarmult_into' + 0xb4, // LOAD_FAST 4 + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'encodepoint_into' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__scalarmult_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_monero_xmr_bulletproof__scalarmult_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 79, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 51, + .line_info = fun_data_apps_monero_xmr_bulletproof__scalarmult_key + 15, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__scalarmult_key + 25, + .opcodes = fun_data_apps_monero_xmr_bulletproof__scalarmult_key + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__scalarmult8 +static const byte fun_data_apps_monero_xmr_bulletproof__scalarmult8[47] = { + 0xb3,0x01,0x1a, // prelude + 0x34,0x81,0x71,0x81,0x77,0x81,0x14, // names: _scalarmult8, dst, P, tmp_pt + 0x80,0x8f,0x26,0x27,0x29,0x27, // code info + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x0f, // LOAD_GLOBAL 'decodepoint_into' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'crypto' + 0x14,0x35, // LOAD_METHOD 'ge25519_mul8' + 0xb2, // LOAD_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'encodepoint_into' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__scalarmult8 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof__scalarmult8, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 52, + .line_info = fun_data_apps_monero_xmr_bulletproof__scalarmult8 + 10, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__scalarmult8 + 16, + .opcodes = fun_data_apps_monero_xmr_bulletproof__scalarmult8 + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__scalarmult_base +static const byte fun_data_apps_monero_xmr_bulletproof__scalarmult_base[52] = { + 0x2a,0x16, // prelude + 0x36,0x81,0x71,0x81,0x03, // names: _scalarmult_base, dst, x + 0x80,0x97,0x26,0x29,0x2d,0x29, // code info + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'crypto' + 0x14,0x37, // LOAD_METHOD 'scalarmult_base_into' + 0x12,0x81,0x66, // LOAD_GLOBAL '_tmp_pt_1' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'encodepoint_into' + 0xb0, // LOAD_FAST 0 + 0x12,0x81,0x66, // LOAD_GLOBAL '_tmp_pt_1' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__scalarmult_base = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof__scalarmult_base, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 52, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 54, + .line_info = fun_data_apps_monero_xmr_bulletproof__scalarmult_base + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__scalarmult_base + 13, + .opcodes = fun_data_apps_monero_xmr_bulletproof__scalarmult_base + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__sc_gen +static const byte fun_data_apps_monero_xmr_bulletproof__sc_gen[36] = { + 0x99,0x01,0x10, // prelude + 0x38,0x81,0x71, // names: _sc_gen, dst + 0x80,0x9f,0x26,0x28,0x29, // code info + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x18, // LOAD_GLOBAL 'random_scalar' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0xb0, // LOAD_FAST 0 + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__sc_gen = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_bulletproof__sc_gen, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 56, + .line_info = fun_data_apps_monero_xmr_bulletproof__sc_gen + 6, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__sc_gen + 11, + .opcodes = fun_data_apps_monero_xmr_bulletproof__sc_gen + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__sc_add +static const byte fun_data_apps_monero_xmr_bulletproof__sc_add[67] = { + 0x3b,0x1c, // prelude + 0x39,0x81,0x71,0x81,0x11,0x81,0x12, // names: _sc_add, dst, a, b + 0x80,0xa6,0x26,0x29,0x29,0x30,0x29, // code info + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'crypto' + 0x14,0x3a, // LOAD_METHOD 'sc_add_into' + 0x12,0x81,0x6c, // LOAD_GLOBAL '_tmp_sc_3' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0xb0, // LOAD_FAST 0 + 0x12,0x81,0x6c, // LOAD_GLOBAL '_tmp_sc_3' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__sc_add = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof__sc_add, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 67, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 57, + .line_info = fun_data_apps_monero_xmr_bulletproof__sc_add + 9, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__sc_add + 16, + .opcodes = fun_data_apps_monero_xmr_bulletproof__sc_add + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__sc_sub +static const byte fun_data_apps_monero_xmr_bulletproof__sc_sub[95] = { + 0x3b,0x24, // prelude + 0x3b,0x81,0x71,0x81,0x11,0x81,0x12, // names: _sc_sub, dst, a, b + 0x80,0xb4,0x26,0x2a,0x29,0x24,0x2a,0x29,0x24,0x2c,0x29, // code info + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x81,0x75, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x4d, // POP_JUMP_IF_TRUE 13 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0xc1, // STORE_FAST 1 + 0x12,0x81,0x75, // LOAD_GLOBAL 'isinstance' + 0xb2, // LOAD_FAST 2 + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x4d, // POP_JUMP_IF_TRUE 13 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0xc2, // STORE_FAST 2 + 0x12,0x07, // LOAD_GLOBAL 'crypto' + 0x14,0x3c, // LOAD_METHOD 'sc_sub_into' + 0x12,0x81,0x6c, // LOAD_GLOBAL '_tmp_sc_3' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0xb0, // LOAD_FAST 0 + 0x12,0x81,0x6c, // LOAD_GLOBAL '_tmp_sc_3' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__sc_sub = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof__sc_sub, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 95, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 59, + .line_info = fun_data_apps_monero_xmr_bulletproof__sc_sub + 9, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__sc_sub + 20, + .opcodes = fun_data_apps_monero_xmr_bulletproof__sc_sub + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__sc_mul +static const byte fun_data_apps_monero_xmr_bulletproof__sc_mul[79] = { + 0x33,0x20, // prelude + 0x3d,0x81,0x71,0x81,0x11,0x81,0x12, // names: _sc_mul, dst, a, b + 0x80,0xc2,0x26,0x29,0x2a,0x29,0x24,0x2c,0x29, // code info + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x81,0x75, // LOAD_GLOBAL 'isinstance' + 0xb2, // LOAD_FAST 2 + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x4d, // POP_JUMP_IF_TRUE 13 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0xc2, // STORE_FAST 2 + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0x12,0x81,0x6c, // LOAD_GLOBAL '_tmp_sc_3' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0xb0, // LOAD_FAST 0 + 0x12,0x81,0x6c, // LOAD_GLOBAL '_tmp_sc_3' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__sc_mul = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof__sc_mul, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 79, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 61, + .line_info = fun_data_apps_monero_xmr_bulletproof__sc_mul + 9, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__sc_mul + 18, + .opcodes = fun_data_apps_monero_xmr_bulletproof__sc_mul + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__sc_muladd +static const byte fun_data_apps_monero_xmr_bulletproof__sc_muladd[151] = { + 0xc8,0x04,0x36, // prelude + 0x3e,0x81,0x71,0x81,0x11,0x81,0x12,0x81,0x7a, // names: _sc_muladd, dst, a, b, c + 0x80,0xd2,0x2a,0x44,0x24,0x2a,0x29,0x24,0x2a,0x29,0x24,0x2a,0x29,0x24,0x29,0x2a,0x26,0x27, // code info + 0x12,0x81,0x75, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb0, // LOAD_FAST 0 + 0xc4, // STORE_FAST 4 + 0x42,0x44, // JUMP 4 + 0x12,0x81,0x6d, // LOAD_GLOBAL '_tmp_sc_4' + 0xc4, // STORE_FAST 4 + 0x12,0x81,0x75, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x4d, // POP_JUMP_IF_TRUE 13 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0xc1, // STORE_FAST 1 + 0x12,0x81,0x75, // LOAD_GLOBAL 'isinstance' + 0xb2, // LOAD_FAST 2 + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x4d, // POP_JUMP_IF_TRUE 13 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0xc2, // STORE_FAST 2 + 0x12,0x81,0x75, // LOAD_GLOBAL 'isinstance' + 0xb3, // LOAD_FAST 3 + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x4d, // POP_JUMP_IF_TRUE 13 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6c, // LOAD_GLOBAL '_tmp_sc_3' + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x81,0x6c, // LOAD_GLOBAL '_tmp_sc_3' + 0xc3, // STORE_FAST 3 + 0x12,0x16, // LOAD_GLOBAL 'sc_muladd_into' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x12,0x81,0x75, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x4d, // POP_JUMP_IF_TRUE 13 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__sc_muladd = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_bulletproof__sc_muladd, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 151, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 62, + .line_info = fun_data_apps_monero_xmr_bulletproof__sc_muladd + 12, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__sc_muladd + 30, + .opcodes = fun_data_apps_monero_xmr_bulletproof__sc_muladd + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__add_keys +static const byte fun_data_apps_monero_xmr_bulletproof__add_keys[67] = { + 0x3b,0x1c, // prelude + 0x3f,0x81,0x71,0x81,0x3d,0x81,0x3f, // names: _add_keys, dst, A, B + 0x80,0xe7,0x26,0x29,0x29,0x30,0x29, // code info + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x0f, // LOAD_GLOBAL 'decodepoint_into' + 0x12,0x81,0x66, // LOAD_GLOBAL '_tmp_pt_1' + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'decodepoint_into' + 0x12,0x81,0x67, // LOAD_GLOBAL '_tmp_pt_2' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'crypto' + 0x14,0x40, // LOAD_METHOD 'point_add_into' + 0x12,0x81,0x68, // LOAD_GLOBAL '_tmp_pt_3' + 0x12,0x81,0x66, // LOAD_GLOBAL '_tmp_pt_1' + 0x12,0x81,0x67, // LOAD_GLOBAL '_tmp_pt_2' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'encodepoint_into' + 0xb0, // LOAD_FAST 0 + 0x12,0x81,0x68, // LOAD_GLOBAL '_tmp_pt_3' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__add_keys = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof__add_keys, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 67, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 63, + .line_info = fun_data_apps_monero_xmr_bulletproof__add_keys + 9, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__add_keys + 16, + .opcodes = fun_data_apps_monero_xmr_bulletproof__add_keys + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__add_keys2 +static const byte fun_data_apps_monero_xmr_bulletproof__add_keys2[83] = { + 0xc8,0x04,0x22, // prelude + 0x41,0x81,0x71,0x81,0x11,0x81,0x12,0x81,0x3f, // names: _add_keys2, dst, a, b, B + 0x80,0xf0,0x26,0x29,0x29,0x29,0x33,0x29, // code info + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'decodepoint_into' + 0x12,0x81,0x66, // LOAD_GLOBAL '_tmp_pt_1' + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'crypto' + 0x14,0x42, // LOAD_METHOD 'add_keys2_into' + 0x12,0x81,0x67, // LOAD_GLOBAL '_tmp_pt_2' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0x12,0x81,0x66, // LOAD_GLOBAL '_tmp_pt_1' + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'encodepoint_into' + 0xb0, // LOAD_FAST 0 + 0x12,0x81,0x67, // LOAD_GLOBAL '_tmp_pt_2' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__add_keys2 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_bulletproof__add_keys2, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 83, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 65, + .line_info = fun_data_apps_monero_xmr_bulletproof__add_keys2 + 12, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__add_keys2 + 20, + .opcodes = fun_data_apps_monero_xmr_bulletproof__add_keys2 + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__hash_to_scalar +static const byte fun_data_apps_monero_xmr_bulletproof__hash_to_scalar[40] = { + 0x2a,0x14, // prelude + 0x43,0x81,0x71,0x81,0x7b, // names: _hash_to_scalar, dst, data + 0x80,0xfa,0x26,0x2b,0x29, // code info + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x07, // LOAD_GLOBAL 'crypto' + 0x14,0x44, // LOAD_METHOD 'hash_to_scalar_into' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0xb0, // LOAD_FAST 0 + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__hash_to_scalar = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof__hash_to_scalar, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 40, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 67, + .line_info = fun_data_apps_monero_xmr_bulletproof__hash_to_scalar + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__hash_to_scalar + 12, + .opcodes = fun_data_apps_monero_xmr_bulletproof__hash_to_scalar + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__hash_vct_to_scalar +static const byte fun_data_apps_monero_xmr_bulletproof__hash_vct_to_scalar[69] = { + 0x5a,0x1c, // prelude + 0x45,0x81,0x71,0x81,0x7b, // names: _hash_vct_to_scalar, dst, data + 0x90,0x01,0x26,0x27,0x25,0x29,0x46,0x29,0x29, // code info + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x08, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x46, // LOAD_METHOD 'get_keccak' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x14,0x47, // LOAD_METHOD 'update' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0xb2, // LOAD_FAST 2 + 0x14,0x48, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0x12,0x0d, // LOAD_GLOBAL 'decodeint_into' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0xb0, // LOAD_FAST 0 + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__hash_vct_to_scalar = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof__hash_vct_to_scalar, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 69, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 69, + .line_info = fun_data_apps_monero_xmr_bulletproof__hash_vct_to_scalar + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__hash_vct_to_scalar + 16, + .opcodes = fun_data_apps_monero_xmr_bulletproof__hash_vct_to_scalar + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__get_exponent_plus +static const byte fun_data_apps_monero_xmr_bulletproof__get_exponent_plus[21] = { + 0x3b,0x12, // prelude + 0x49,0x81,0x71,0x81,0x7c,0x81,0x7d, // names: _get_exponent_plus, dst, base, idx + 0x90,0x0d, // code info + 0x12,0x4a, // LOAD_GLOBAL '_get_exponent_univ' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x04, // CALL_FUNCTION 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__get_exponent_plus = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof__get_exponent_plus, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 73, + .line_info = fun_data_apps_monero_xmr_bulletproof__get_exponent_plus + 9, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__get_exponent_plus + 11, + .opcodes = fun_data_apps_monero_xmr_bulletproof__get_exponent_plus + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__get_exponent_univ +static const byte fun_data_apps_monero_xmr_bulletproof__get_exponent_univ[131] = { + 0xe0,0x04,0x2a, // prelude + 0x4a,0x81,0x71,0x81,0x7c,0x81,0x7d,0x81,0x7e, // names: _get_exponent_univ, dst, base, idx, salt + 0x90,0x11,0x4b,0x26,0x27,0x29,0x2c,0x2c,0x2c,0x2e,0x2d,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x4b, // LOAD_CONST_STRING 'uvarint_size' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'apps.monero.xmr.serialize.int_serialize' + 0x1c,0x4b, // IMPORT_FROM 'uvarint_size' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf2, // BINARY_OP 27 __add__ + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc6, // STORE_FAST 6 + 0x12,0x2d, // LOAD_GLOBAL 'memcpy' + 0x12,0x81,0x65, // LOAD_GLOBAL '_tmp_bf_exp' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0x12,0x2d, // LOAD_GLOBAL 'memcpy' + 0x12,0x81,0x65, // LOAD_GLOBAL '_tmp_bf_exp' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb5, // LOAD_FAST 5 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'dump_uvarint_b_into' + 0xb2, // LOAD_FAST 2 + 0x12,0x81,0x65, // LOAD_GLOBAL '_tmp_bf_exp' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xb5, // LOAD_FAST 5 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'crypto' + 0x14,0x4c, // LOAD_METHOD 'fast_hash_into' + 0x12,0x81,0x64, // LOAD_GLOBAL '_tmp_bf_1' + 0x12,0x81,0x65, // LOAD_GLOBAL '_tmp_bf_exp' + 0xb6, // LOAD_FAST 6 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'crypto' + 0x14,0x4d, // LOAD_METHOD 'hash_to_point_into' + 0x12,0x81,0x69, // LOAD_GLOBAL '_tmp_pt_4' + 0x12,0x81,0x64, // LOAD_GLOBAL '_tmp_bf_1' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'encodepoint_into' + 0xb0, // LOAD_FAST 0 + 0x12,0x81,0x69, // LOAD_GLOBAL '_tmp_pt_4' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__get_exponent_univ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_bulletproof__get_exponent_univ, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 131, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 74, + .line_info = fun_data_apps_monero_xmr_bulletproof__get_exponent_univ + 12, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__get_exponent_univ + 24, + .opcodes = fun_data_apps_monero_xmr_bulletproof__get_exponent_univ + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__sc_square_mult +static const byte fun_data_apps_monero_xmr_bulletproof__sc_square_mult[105] = { + 0x5b,0x24, // prelude + 0x4e,0x81,0x71,0x81,0x03,0x81,0x7f, // names: _sc_square_mult, dst, x, n + 0x90,0x20,0x45,0x25,0x49,0x2d,0x27,0x28,0x28,0x2b,0x31, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x4f, // IMPORT_NAME 'math' + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0xb0, // LOAD_FAST 0 + 0x12,0x81,0x59, // LOAD_GLOBAL '_ONE' + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x12,0x82,0x00, // LOAD_GLOBAL 'int' + 0xb3, // LOAD_FAST 3 + 0x14,0x50, // LOAD_METHOD 'log' + 0xb2, // LOAD_FAST 2 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0x12,0x13, // LOAD_GLOBAL 'sc_copy' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc0, // STORE_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x42,0x5f, // JUMP 31 + 0x57, // DUP_TOP + 0xc5, // STORE_FAST 5 + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0xb0, // LOAD_FAST 0 + 0xb0, // LOAD_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xf3, // BINARY_OP 28 __sub__ + 0xf0, // BINARY_OP 25 __lshift__ + 0xef, // BINARY_OP 24 __and__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0xb0, // LOAD_FAST 0 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x1c, // POP_JUMP_IF_TRUE -36 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__sc_square_mult = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof__sc_square_mult, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 105, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 78, + .line_info = fun_data_apps_monero_xmr_bulletproof__sc_square_mult + 9, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__sc_square_mult + 20, + .opcodes = fun_data_apps_monero_xmr_bulletproof__sc_square_mult + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__invert_batch +static const byte fun_data_apps_monero_xmr_bulletproof__invert_batch[178] = { + 0x69,0x26, // prelude + 0x51,0x81,0x03, // names: _invert_batch, x + 0x90,0x2f,0x2c,0x29,0x2b,0x2e,0x24,0x25,0x4e,0x53,0x27,0x46,0x2c,0x2a,0x2e,0x32, // code info + 0x12,0x55, // LOAD_GLOBAL '_ensure_dst_keyvect' + 0x51, // LOAD_CONST_NONE + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc1, // STORE_FAST 1 + 0x12,0x81,0x55, // LOAD_GLOBAL 'bytearray' + 0x12,0x81,0x59, // LOAD_GLOBAL '_ONE' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x73, // JUMP 51 + 0x57, // DUP_TOP + 0xc3, // STORE_FAST 3 + 0x12,0x1a, // LOAD_GLOBAL 'ensure' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x55, // LOAD_SUBSCR + 0x12,0x81,0x58, // LOAD_GLOBAL '_ZERO' + 0xdc, // BINARY_OP 5 __ne__ + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x56, // STORE_SUBSCR + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x2d, // LOAD_GLOBAL 'memcpy' + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0x42,0x4a, // JUMP 10 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb2, // LOAD_FAST 2 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x08, // POP_JUMP_IF_TRUE -56 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x32, // LOAD_GLOBAL '_invert' + 0xb2, // LOAD_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x51, // LOAD_CONST_NONE + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x42,0x66, // JUMP 38 + 0x57, // DUP_TOP + 0xc5, // STORE_FAST 5 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0x55, // LOAD_SUBSCR + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0x56, // STORE_SUBSCR + 0x12,0x2d, // LOAD_GLOBAL 'memcpy' + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x57, // DUP_TOP + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x15, // POP_JUMP_IF_TRUE -43 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__invert_batch = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_bulletproof__invert_batch, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 178, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 81, + .line_info = fun_data_apps_monero_xmr_bulletproof__invert_batch + 5, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__invert_batch + 21, + .opcodes = fun_data_apps_monero_xmr_bulletproof__invert_batch + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__sum_of_even_powers +static const byte fun_data_apps_monero_xmr_bulletproof__sum_of_even_powers[113] = { + 0x53,0x2a, // prelude + 0x52,0x82,0x01,0x81,0x03,0x81,0x7f, // names: _sum_of_even_powers, res, x, n + 0x90,0x44,0x60,0x20,0x2e,0x4a,0x27,0x48,0x26,0x2f,0x22,0x29,0x28,0x29, // code info + 0x12,0x1a, // LOAD_GLOBAL 'ensure' + 0xb2, // LOAD_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xef, // BINARY_OP 24 __and__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x1a, // LOAD_GLOBAL 'ensure' + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x10,0x53, // LOAD_CONST_STRING 'n == 0' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x81,0x55, // LOAD_GLOBAL 'bytearray' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb3, // LOAD_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x2d, // LOAD_GLOBAL 'memcpy' + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0x42,0x55, // JUMP 21 + 0x12,0x3e, // LOAD_GLOBAL '_sc_muladd' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb3, // LOAD_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xea, // BINARY_OP 19 __itruediv__ + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x26, // POP_JUMP_IF_TRUE -26 + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__sum_of_even_powers = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof__sum_of_even_powers, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 113, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 82, + .line_info = fun_data_apps_monero_xmr_bulletproof__sum_of_even_powers + 9, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__sum_of_even_powers + 23, + .opcodes = fun_data_apps_monero_xmr_bulletproof__sum_of_even_powers + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__sum_of_scalar_powers +static const byte fun_data_apps_monero_xmr_bulletproof__sum_of_scalar_powers[206] = { + 0x6b,0x40, // prelude + 0x54,0x82,0x01,0x81,0x03,0x81,0x7f, // names: _sum_of_scalar_powers, res, x, n + 0x90,0x58,0x60,0x20,0x2a,0x26,0x53,0x25,0x2f,0x42,0x24,0x27,0x28,0x23,0x28,0x22,0x28,0x29,0x4b,0x27,0x26,0x25,0x28,0x51,0x2a, // code info + 0x12,0x1a, // LOAD_GLOBAL 'ensure' + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x10,0x53, // LOAD_CONST_STRING 'n == 0' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x2d, // LOAD_GLOBAL 'memcpy' + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x81,0x59, // LOAD_GLOBAL '_ONE' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0x12,0x81,0x59, // LOAD_GLOBAL '_ONE' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x12,0x2d, // LOAD_GLOBAL 'memcpy' + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0x12,0x81,0x55, // LOAD_GLOBAL 'bytearray' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xef, // BINARY_OP 24 __and__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x44,0x66, // POP_JUMP_IF_FALSE 38 + 0x12,0x39, // LOAD_GLOBAL '_sc_add' + 0xb0, // LOAD_FAST 0 + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x55, // JUMP 21 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb3, // LOAD_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3e, // LOAD_GLOBAL '_sc_muladd' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xea, // BINARY_OP 19 __itruediv__ + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x26, // POP_JUMP_IF_TRUE -26 + 0x42,0x6b, // JUMP 43 + 0x12,0x81,0x55, // LOAD_GLOBAL 'bytearray' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x42,0x59, // JUMP 25 + 0x57, // DUP_TOP + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb5, // LOAD_FAST 5 + 0xb5, // LOAD_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x39, // LOAD_GLOBAL '_sc_add' + 0xb0, // LOAD_FAST 0 + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x22, // POP_JUMP_IF_TRUE -30 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x3b, // LOAD_GLOBAL '_sc_sub' + 0xb0, // LOAD_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x12,0x81,0x59, // LOAD_GLOBAL '_ONE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__sum_of_scalar_powers = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof__sum_of_scalar_powers, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 206, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 84, + .line_info = fun_data_apps_monero_xmr_bulletproof__sum_of_scalar_powers + 9, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__sum_of_scalar_powers + 34, + .opcodes = fun_data_apps_monero_xmr_bulletproof__sum_of_scalar_powers + 34, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVBase +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVBase[95] = { + 0x08,0x28, // prelude + 0x1e, // names: KeyVBase + 0x9b,0x7e,0x60,0x20,0x45,0x6a,0x20,0x84,0x07,0x64,0x64,0x64,0x20,0x84,0x07,0x64,0x69,0x20,0x68, // code info + 0x11,0x82,0x02, // LOAD_NAME '__name__' + 0x16,0x82,0x03, // STORE_NAME '__module__' + 0x10,0x1e, // LOAD_CONST_STRING 'KeyVBase' + 0x16,0x82,0x04, // STORE_NAME '__qualname__' + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x16,0x82,0x05, // STORE_NAME '__slots__' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x65, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x68, // STORE_NAME 'idxize' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x6a, // STORE_NAME '__getitem__' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x6b, // STORE_NAME '__setitem__' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x6c, // STORE_NAME '__iter__' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x6d, // STORE_NAME '__next__' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x6e, // STORE_NAME '__len__' + 0x51, // LOAD_CONST_NONE + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x07, // MAKE_FUNCTION_DEFARGS 7 + 0x16,0x5a, // STORE_NAME 'to' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x08, // MAKE_FUNCTION_DEFARGS 8 + 0x16,0x5e, // STORE_NAME 'read' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x6f, // STORE_NAME 'slice_view' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_KeyVBase +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVBase___init__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVBase___init__[20] = { + 0x9a,0x01,0x0e, // prelude + 0x65,0x82,0x15,0x56, // names: __init__, self, elems + 0x90,0x85,0x24, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x66, // STORE_ATTR 'current_idx' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x67, // STORE_ATTR 'size' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVBase___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVBase___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 101, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVBase___init__ + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVBase___init__ + 10, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVBase___init__ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVBase +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVBase_idxize +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVBase_idxize[49] = { + 0x32,0x16, // prelude + 0x68,0x82,0x15,0x81,0x7d, // names: idxize, self, idx + 0x90,0x89,0x25,0x26,0x27,0x30, // code info + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x67, // LOAD_ATTR 'size' + 0xb1, // LOAD_FAST 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x67, // LOAD_ATTR 'size' + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x12,0x82,0x16, // LOAD_GLOBAL 'IndexError' + 0x23,0x17, // LOAD_CONST_OBJ 23 + 0x14,0x69, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x67, // LOAD_ATTR 'size' + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVBase_idxize = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVBase_idxize, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 104, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVBase_idxize + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVBase_idxize + 13, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVBase_idxize + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVBase +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVBase___getitem__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVBase___getitem__[15] = { + 0x12,0x0e, // prelude + 0x6a,0x82,0x15,0x82,0x17, // names: __getitem__, self, item + 0x90,0x90, // code info + 0x12,0x82,0x18, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVBase___getitem__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVBase___getitem__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 106, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVBase___getitem__ + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVBase___getitem__ + 9, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVBase___getitem__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVBase +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVBase___setitem__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVBase___setitem__[17] = { + 0x1b,0x12, // prelude + 0x6b,0x82,0x15,0x82,0x19,0x82,0x1a, // names: __setitem__, self, key, value + 0x90,0x93, // code info + 0x12,0x82,0x18, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVBase___setitem__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVBase___setitem__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 107, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVBase___setitem__ + 9, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVBase___setitem__ + 11, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVBase___setitem__ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVBase +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVBase___iter__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVBase___iter__[14] = { + 0x11,0x0c, // prelude + 0x6c,0x82,0x15, // names: __iter__, self + 0x90,0x96,0x24, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x66, // STORE_ATTR 'current_idx' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVBase___iter__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVBase___iter__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 108, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVBase___iter__ + 5, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVBase___iter__ + 8, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVBase___iter__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVBase +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVBase___next__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVBase___next__[44] = { + 0x19,0x10, // prelude + 0x6d,0x82,0x15, // names: __next__, self + 0x90,0x9a,0x29,0x46,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x66, // LOAD_ATTR 'current_idx' + 0xb0, // LOAD_FAST 0 + 0x13,0x67, // LOAD_ATTR 'size' + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x12,0x82,0x1b, // LOAD_GLOBAL 'StopIteration' + 0x65, // RAISE_OBJ + 0x42,0x51, // JUMP 17 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x66, // LOAD_ATTR 'current_idx' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x66, // STORE_ATTR 'current_idx' + 0xb0, // LOAD_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x66, // LOAD_ATTR 'current_idx' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVBase___next__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVBase___next__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 109, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVBase___next__ + 5, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVBase___next__ + 10, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVBase___next__ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVBase +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVBase___len__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVBase___len__[11] = { + 0x09,0x0a, // prelude + 0x6e,0x82,0x15, // names: __len__, self + 0x90,0xa1, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x67, // LOAD_ATTR 'size' + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVBase___len__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVBase___len__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 11, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 110, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVBase___len__ + 5, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVBase___len__ + 7, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVBase___len__ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVBase +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVBase_to +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVBase_to[41] = { + 0xd8,0x84,0x01,0x16, // prelude + 0x5a,0x82,0x15,0x81,0x7d,0x7c,0x81,0x00, // names: to, self, idx, buff, offset + 0x90,0xa4,0x26, // code info + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x12,0x2d, // LOAD_GLOBAL 'memcpy' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x14,0x6a, // LOAD_METHOD '__getitem__' + 0xb0, // LOAD_FAST 0 + 0x14,0x68, // LOAD_METHOD 'idxize' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVBase_to = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVBase_to, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 90, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVBase_to + 12, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVBase_to + 15, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVBase_to + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVBase +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVBase_read +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVBase_read[19] = { + 0xa0,0x05,0x14, // prelude + 0x5e,0x82,0x15,0x81,0x7d,0x7c,0x81,0x00, // names: read, self, idx, buff, offset + 0x90,0xa8, // code info + 0x12,0x82,0x18, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVBase_read = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVBase_read, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 94, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVBase_read + 11, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVBase_read + 13, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVBase_read + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVBase +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVBase_slice_view +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVBase_slice_view[19] = { + 0x33,0x12, // prelude + 0x6f,0x82,0x15,0x82,0x1c,0x82,0x1d, // names: slice_view, self, start, stop + 0x90,0xab, // code info + 0x12,0x22, // LOAD_GLOBAL 'KeyVSliced' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVBase_slice_view = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVBase_slice_view, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 111, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVBase_slice_view + 9, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVBase_slice_view + 11, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVBase_slice_view + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_KeyVBase[] = { + &raw_code_apps_monero_xmr_bulletproof_KeyVBase___init__, + &raw_code_apps_monero_xmr_bulletproof_KeyVBase_idxize, + &raw_code_apps_monero_xmr_bulletproof_KeyVBase___getitem__, + &raw_code_apps_monero_xmr_bulletproof_KeyVBase___setitem__, + &raw_code_apps_monero_xmr_bulletproof_KeyVBase___iter__, + &raw_code_apps_monero_xmr_bulletproof_KeyVBase___next__, + &raw_code_apps_monero_xmr_bulletproof_KeyVBase___len__, + &raw_code_apps_monero_xmr_bulletproof_KeyVBase_to, + &raw_code_apps_monero_xmr_bulletproof_KeyVBase_read, + &raw_code_apps_monero_xmr_bulletproof_KeyVBase_slice_view, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVBase = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVBase, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 95, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_KeyVBase, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 10, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVBase + 3, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVBase + 22, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVBase + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyV +static const byte fun_data_apps_monero_xmr_bulletproof_KeyV[108] = { + 0x20,0x2d, // prelude + 0x1f, // names: KeyV + 0x9b,0xb9,0x80,0x0d,0x45,0x8f,0x18,0x84,0x0b,0x64,0x40,0x84,0x0b,0x84,0x09,0x89,0x12,0x88,0x0b,0x89,0x31,0x00, // code info + 0x11,0x82,0x02, // LOAD_NAME '__name__' + 0x16,0x82,0x03, // STORE_NAME '__module__' + 0x10,0x1f, // LOAD_CONST_STRING 'KeyV' + 0x16,0x82,0x04, // STORE_NAME '__qualname__' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x16,0x82,0x05, // STORE_NAME '__slots__' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x2a,0x04, // BUILD_TUPLE 4 + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x21,0x00,0x01, // MAKE_CLOSURE_DEFARGS 0 + 0x16,0x65, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x74, // STORE_NAME '_set_d' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x75, // STORE_NAME '_set_mv' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x6a, // STORE_NAME '__getitem__' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x6b, // STORE_NAME '__setitem__' + 0x51, // LOAD_CONST_NONE + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x05, // MAKE_FUNCTION_DEFARGS 5 + 0x16,0x5a, // STORE_NAME 'to' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x06, // MAKE_FUNCTION_DEFARGS 6 + 0x16,0x5e, // STORE_NAME 'read' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x07, // MAKE_FUNCTION_DEFARGS 7 + 0x16,0x57, // STORE_NAME 'resize' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x08, // MAKE_FUNCTION_DEFARGS 8 + 0x16,0x78, // STORE_NAME 'realloc' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_KeyV +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyV___init__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyV___init__[108] = { + 0xc2,0x84,0x80,0x01,0x32, // prelude + 0x65,0x82,0x1e,0x82,0x15,0x56,0x81,0x28,0x03,0x82,0x1f, // names: __init__, *, self, elems, buffer, const, no_init + 0x90,0xcf,0x2c,0x24,0x24,0x24,0x27,0x24,0x23,0x45,0x24,0x4d,0x47,0x23, // code info + 0x12,0x82,0x20, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x65, // LOAD_SUPER_METHOD '__init__' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x18,0x70, // STORE_ATTR 'd' + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x18,0x71, // STORE_ATTR 'mv' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x18,0x03, // STORE_ATTR 'const' + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x72, // STORE_ATTR 'cur' + 0x50, // LOAD_CONST_FALSE + 0xb1, // LOAD_FAST 1 + 0x18,0x73, // STORE_ATTR 'chunked' + 0xb5, // LOAD_FAST 5 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x5b, // JUMP 27 + 0xb3, // LOAD_FAST 3 + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x18,0x70, // STORE_ATTR 'd' + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf6, // BINARY_OP 31 __floordiv__ + 0xb1, // LOAD_FAST 1 + 0x18,0x67, // STORE_ATTR 'size' + 0x42,0x47, // JUMP 7 + 0xb1, // LOAD_FAST 1 + 0x14,0x74, // LOAD_METHOD '_set_d' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb1, // LOAD_FAST 1 + 0x14,0x75, // LOAD_METHOD '_set_mv' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyV___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 6, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyV___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 108, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 4, + .qstr_block_name_idx = 101, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyV___init__ + 16, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyV___init__ + 30, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyV___init__ + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyV +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyV__set_d +static const byte fun_data_apps_monero_xmr_bulletproof_KeyV__set_d[76] = { + 0x2a,0x18, // prelude + 0x74,0x82,0x15,0x56, // names: _set_d, self, elems + 0x90,0xe1,0x2c,0x24,0x26,0x71,0x24,0x26, // code info + 0xb1, // LOAD_FAST 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x62, // POP_JUMP_IF_FALSE 34 + 0xb1, // LOAD_FAST 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf8, // BINARY_OP 33 __mod__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5b, // POP_JUMP_IF_FALSE 27 + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x73, // STORE_ATTR 'chunked' + 0x12,0x81,0x53, // LOAD_GLOBAL 'gc_collect' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x12,0x82,0x21, // LOAD_GLOBAL 'range' + 0xb1, // LOAD_FAST 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x70, // STORE_ATTR 'd' + 0x42,0x55, // JUMP 21 + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x73, // STORE_ATTR 'chunked' + 0x12,0x81,0x53, // LOAD_GLOBAL 'gc_collect' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x81,0x55, // LOAD_GLOBAL 'bytearray' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xb1, // LOAD_FAST 1 + 0xf4, // BINARY_OP 29 __mul__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x70, // STORE_ATTR 'd' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_KeyV__set_d +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyV__set_d__lt_listcomp_gt_ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyV__set_d__lt_listcomp_gt_[28] = { + 0x41,0x0c, // prelude + 0x81,0x4a,0x82,0x1e, // names: , * + 0x90,0xe4, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0d, // FOR_ITER 13 + 0xc1, // STORE_FAST 1 + 0x12,0x81,0x55, // LOAD_GLOBAL 'bytearray' + 0x22,0x88,0x00, // LOAD_CONST_SMALL_INT 1024 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x31, // JUMP -15 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyV__set_d__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyV__set_d__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 202, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyV__set_d__lt_listcomp_gt_ + 6, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyV__set_d__lt_listcomp_gt_ + 8, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyV__set_d__lt_listcomp_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_KeyV__set_d[] = { + &raw_code_apps_monero_xmr_bulletproof_KeyV__set_d__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyV__set_d = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyV__set_d, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 76, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_KeyV__set_d, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 116, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyV__set_d + 6, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyV__set_d + 14, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyV__set_d + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyV +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyV__set_mv +static const byte fun_data_apps_monero_xmr_bulletproof_KeyV__set_mv[27] = { + 0x11,0x0e, // prelude + 0x75,0x82,0x15, // names: _set_mv, self + 0x90,0xec,0x25,0x20, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x73, // LOAD_ATTR 'chunked' + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0x12,0x81,0x56, // LOAD_GLOBAL 'memoryview' + 0xb0, // LOAD_FAST 0 + 0x13,0x70, // LOAD_ATTR 'd' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x71, // STORE_ATTR 'mv' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyV__set_mv = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyV__set_mv, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 117, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyV__set_mv + 5, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyV__set_mv + 9, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyV__set_mv + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyV +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyV___getitem__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyV___getitem__[49] = { + 0x2a,0x1a, // prelude + 0x6a,0x82,0x15,0x82,0x17, // names: __getitem__, self, item + 0x90,0xf1,0x60,0x20,0x25,0x27,0x27,0x20, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x73, // LOAD_ATTR 'chunked' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb0, // LOAD_FAST 0 + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x14,0x68, // LOAD_METHOD 'idxize' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x71, // LOAD_ATTR 'mv' + 0xb1, // LOAD_FAST 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf4, // BINARY_OP 29 __mul__ + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf4, // BINARY_OP 29 __mul__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyV___getitem__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyV___getitem__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 106, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyV___getitem__ + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyV___getitem__ + 15, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyV___getitem__ + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyV +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyV___setitem__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyV___setitem__[68] = { + 0x43,0x1e, // prelude + 0x6b,0x82,0x15,0x82,0x19,0x82,0x1a, // names: __setitem__, self, key, value + 0x90,0xfc,0x25,0x28,0x25,0x28,0x24,0x25, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x73, // LOAD_ATTR 'chunked' + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb0, // LOAD_FAST 0 + 0x14,0x5e, // LOAD_METHOD 'read' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x03, // LOAD_ATTR 'const' + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x82,0x08, // LOAD_GLOBAL 'ValueError' + 0x23,0x18, // LOAD_CONST_OBJ 24 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0xc3, // STORE_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x4a, // JUMP 10 + 0x57, // DUP_TOP + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x55, // LOAD_SUBSCR + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x56, // STORE_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x57, // DUP_TOP + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x31, // POP_JUMP_IF_TRUE -15 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyV___setitem__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyV___setitem__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 68, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 107, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyV___setitem__ + 9, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyV___setitem__ + 17, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyV___setitem__ + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyV +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyV_to +static const byte fun_data_apps_monero_xmr_bulletproof_KeyV_to[98] = { + 0xd0,0x84,0x01,0x2a, // prelude + 0x5a,0x82,0x15,0x81,0x7d,0x7c,0x81,0x00, // names: to, self, idx, buff, offset + 0xa0,0x05,0x44,0x27,0x25,0x20,0x22,0x4a,0x25,0x6b,0x20,0x20,0x34, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x70, // LOAD_ATTR 'd' + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x68, // LOAD_METHOD 'idxize' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x73, // LOAD_ATTR 'chunked' + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0x12,0x2d, // LOAD_GLOBAL 'memcpy' + 0xb2, // LOAD_FAST 2 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0xb2, // LOAD_FAST 2 + 0x42,0x43, // JUMP 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x72, // LOAD_ATTR 'cur' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf1, // BINARY_OP 26 __rshift__ + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xef, // BINARY_OP 24 __and__ + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf0, // BINARY_OP 25 __lshift__ + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0x42,0x54, // JUMP 20 + 0x12,0x2d, // LOAD_GLOBAL 'memcpy' + 0xb2, // LOAD_FAST 2 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0xb2, // LOAD_FAST 2 + 0x42,0x43, // JUMP 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x72, // LOAD_ATTR 'cur' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf0, // BINARY_OP 25 __lshift__ + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x72, // LOAD_ATTR 'cur' + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyV_to = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyV_to, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 98, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 90, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyV_to + 12, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyV_to + 25, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyV_to + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyV +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyV_read +static const byte fun_data_apps_monero_xmr_bulletproof_KeyV_read[69] = { + 0xd0,0x05,0x20, // prelude + 0x5e,0x82,0x15,0x81,0x7d,0x7c,0x81,0x00, // names: read, self, idx, buff, offset + 0xa0,0x17,0x44,0x27,0x25,0x20,0x54,0x20, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x70, // LOAD_ATTR 'd' + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x68, // LOAD_METHOD 'idxize' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x73, // LOAD_ATTR 'chunked' + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x2d, // LOAD_GLOBAL 'memcpy' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf1, // BINARY_OP 26 __rshift__ + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0xef, // BINARY_OP 24 __and__ + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf0, // BINARY_OP 25 __lshift__ + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0x42,0x4c, // JUMP 12 + 0x12,0x2d, // LOAD_GLOBAL 'memcpy' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf0, // BINARY_OP 25 __lshift__ + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyV_read = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyV_read, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 69, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 94, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyV_read + 11, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyV_read + 19, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyV_read + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyV +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyV_resize +static const byte fun_data_apps_monero_xmr_bulletproof_KeyV_resize[426] = { + 0xd0,0x84,0x01,0x60, // prelude + 0x57,0x82,0x15,0x82,0x22,0x82,0x23,0x78, // names: resize, self, nsize, chop, realloc + 0xa0,0x22,0x27,0x42,0x2c,0x20,0x24,0x2a,0x26,0x36,0x2a,0x26,0x51,0x26,0x4e,0x2d,0x20,0x2d,0x28,0x2c,0x5c,0x26,0x20,0x27,0x28,0x2c,0x31,0x23,0x28,0x7b,0x20,0x2a,0x26,0x34,0x2a,0x26,0x4f,0x26,0x4b,0x24, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x67, // LOAD_ATTR 'size' + 0xb1, // LOAD_FAST 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x73, // LOAD_ATTR 'chunked' + 0x44,0xe5,0x80, // POP_JUMP_IF_FALSE 101 + 0xb1, // LOAD_FAST 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xda, // BINARY_OP 3 __le__ + 0x44,0xdf,0x80, // POP_JUMP_IF_FALSE 95 + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x73, // STORE_ATTR 'chunked' + 0xb0, // LOAD_FAST 0 + 0x13,0x67, // LOAD_ATTR 'size' + 0xb1, // LOAD_FAST 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x5f, // POP_JUMP_IF_FALSE 31 + 0xb3, // LOAD_FAST 3 + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0x12,0x81,0x53, // LOAD_GLOBAL 'gc_collect' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x81,0x55, // LOAD_GLOBAL 'bytearray' + 0xb0, // LOAD_FAST 0 + 0x13,0x70, // LOAD_ATTR 'd' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf0, // BINARY_OP 25 __lshift__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x70, // STORE_ATTR 'd' + 0x42,0x72, // JUMP 50 + 0xb0, // LOAD_FAST 0 + 0x13,0x67, // LOAD_ATTR 'size' + 0xb1, // LOAD_FAST 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0xb2, // LOAD_FAST 2 + 0x43,0x57, // POP_JUMP_IF_TRUE 23 + 0x12,0x81,0x53, // LOAD_GLOBAL 'gc_collect' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x70, // LOAD_ATTR 'd' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf0, // BINARY_OP 25 __lshift__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x18,0x70, // STORE_ATTR 'd' + 0x42,0x51, // JUMP 17 + 0x12,0x81,0x53, // LOAD_GLOBAL 'gc_collect' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x81,0x55, // LOAD_GLOBAL 'bytearray' + 0xb1, // LOAD_FAST 1 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf0, // BINARY_OP 25 __lshift__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x70, // STORE_ATTR 'd' + 0x42,0xf6,0x81, // JUMP 246 + 0xb0, // LOAD_FAST 0 + 0x13,0x73, // LOAD_ATTR 'chunked' + 0x44,0xc4,0x80, // POP_JUMP_IF_FALSE 68 + 0xb0, // LOAD_FAST 0 + 0x13,0x67, // LOAD_ATTR 'size' + 0xb1, // LOAD_FAST 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x7d, // POP_JUMP_IF_FALSE 61 + 0xb1, // LOAD_FAST 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf8, // BINARY_OP 33 __mod__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb3, // LOAD_FAST 3 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0xb2, // LOAD_FAST 2 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x82,0x08, // LOAD_GLOBAL 'ValueError' + 0x23,0x19, // LOAD_CONST_OBJ 25 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x67, // LOAD_ATTR 'size' + 0xf3, // BINARY_OP 28 __sub__ + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x54, // JUMP 20 + 0x57, // DUP_TOP + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x70, // LOAD_ATTR 'd' + 0x14,0x76, // LOAD_METHOD 'append' + 0x12,0x81,0x55, // LOAD_GLOBAL 'bytearray' + 0x22,0x88,0x00, // LOAD_CONST_SMALL_INT 1024 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x27, // POP_JUMP_IF_TRUE -25 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x42,0xac,0x81, // JUMP 172 + 0xb0, // LOAD_FAST 0 + 0x13,0x73, // LOAD_ATTR 'chunked' + 0x44,0xd2,0x80, // POP_JUMP_IF_FALSE 82 + 0xb1, // LOAD_FAST 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf8, // BINARY_OP 33 __mod__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x82,0x08, // LOAD_GLOBAL 'ValueError' + 0x23,0x19, // LOAD_CONST_OBJ 25 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x67, // LOAD_ATTR 'size' + 0xb1, // LOAD_FAST 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x4c, // JUMP 12 + 0x57, // DUP_TOP + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x70, // LOAD_ATTR 'd' + 0x14,0x77, // LOAD_METHOD 'pop' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2f, // POP_JUMP_IF_TRUE -17 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0xb1, // LOAD_FAST 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x53, // JUMP 19 + 0x57, // DUP_TOP + 0xc4, // STORE_FAST 4 + 0x12,0x81,0x55, // LOAD_GLOBAL 'bytearray' + 0xb0, // LOAD_FAST 0 + 0x13,0x70, // LOAD_ATTR 'd' + 0xb4, // LOAD_FAST 4 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x70, // LOAD_ATTR 'd' + 0xb4, // LOAD_FAST 4 + 0x56, // STORE_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x28, // POP_JUMP_IF_TRUE -24 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x42,0xd4,0x80, // JUMP 84 + 0xb0, // LOAD_FAST 0 + 0x13,0x67, // LOAD_ATTR 'size' + 0xb1, // LOAD_FAST 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x5d, // POP_JUMP_IF_FALSE 29 + 0xb3, // LOAD_FAST 3 + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0x12,0x81,0x53, // LOAD_GLOBAL 'gc_collect' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x81,0x55, // LOAD_GLOBAL 'bytearray' + 0xb0, // LOAD_FAST 0 + 0x13,0x70, // LOAD_ATTR 'd' + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf0, // BINARY_OP 25 __lshift__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x70, // STORE_ATTR 'd' + 0x42,0x70, // JUMP 48 + 0xb0, // LOAD_FAST 0 + 0x13,0x67, // LOAD_ATTR 'size' + 0xb1, // LOAD_FAST 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0xb2, // LOAD_FAST 2 + 0x43,0x55, // POP_JUMP_IF_TRUE 21 + 0x12,0x81,0x53, // LOAD_GLOBAL 'gc_collect' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x70, // LOAD_ATTR 'd' + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf0, // BINARY_OP 25 __lshift__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x18,0x70, // STORE_ATTR 'd' + 0x42,0x51, // JUMP 17 + 0x12,0x81,0x53, // LOAD_GLOBAL 'gc_collect' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x12,0x81,0x55, // LOAD_GLOBAL 'bytearray' + 0xb1, // LOAD_FAST 1 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf0, // BINARY_OP 25 __lshift__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x70, // STORE_ATTR 'd' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x67, // STORE_ATTR 'size' + 0xb0, // LOAD_FAST 0 + 0x14,0x75, // LOAD_METHOD '_set_mv' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyV_resize = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyV_resize, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 426, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 87, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyV_resize + 12, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyV_resize + 52, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyV_resize + 52, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyV +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyV_realloc +static const byte fun_data_apps_monero_xmr_bulletproof_KeyV_realloc[53] = { + 0xab,0x01,0x1c, // prelude + 0x78,0x82,0x15,0x82,0x22,0x1b, // names: realloc, self, nsize, collect + 0xa0,0x53,0x24,0x24,0x23,0x46,0x27,0x24, // code info + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x70, // STORE_ATTR 'd' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x71, // STORE_ATTR 'mv' + 0xb2, // LOAD_FAST 2 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x12,0x81,0x53, // LOAD_GLOBAL 'gc_collect' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x74, // LOAD_METHOD '_set_d' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x67, // STORE_ATTR 'size' + 0xb0, // LOAD_FAST 0 + 0x14,0x75, // LOAD_METHOD '_set_mv' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyV_realloc = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyV_realloc, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 53, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 120, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyV_realloc + 9, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyV_realloc + 17, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyV_realloc + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_KeyV[] = { + &raw_code_apps_monero_xmr_bulletproof_KeyV___init__, + &raw_code_apps_monero_xmr_bulletproof_KeyV__set_d, + &raw_code_apps_monero_xmr_bulletproof_KeyV__set_mv, + &raw_code_apps_monero_xmr_bulletproof_KeyV___getitem__, + &raw_code_apps_monero_xmr_bulletproof_KeyV___setitem__, + &raw_code_apps_monero_xmr_bulletproof_KeyV_to, + &raw_code_apps_monero_xmr_bulletproof_KeyV_read, + &raw_code_apps_monero_xmr_bulletproof_KeyV_resize, + &raw_code_apps_monero_xmr_bulletproof_KeyV_realloc, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyV = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyV, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 108, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_KeyV, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 9, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyV + 3, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyV + 24, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyV + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVEval +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVEval[58] = { + 0x20,0x13, // prelude + 0x20, // names: KeyVEval + 0xab,0x5e,0x60,0x20,0x45,0x8f,0x07,0x64,0x00, // code info + 0x11,0x82,0x02, // LOAD_NAME '__name__' + 0x16,0x82,0x03, // STORE_NAME '__module__' + 0x10,0x20, // LOAD_CONST_STRING 'KeyVEval' + 0x16,0x82,0x04, // STORE_NAME '__qualname__' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x16,0x82,0x05, // STORE_NAME '__slots__' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x52, // LOAD_CONST_TRUE + 0x2a,0x04, // BUILD_TUPLE 4 + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x21,0x00,0x01, // MAKE_CLOSURE_DEFARGS 0 + 0x16,0x65, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x6a, // STORE_NAME '__getitem__' + 0x51, // LOAD_CONST_NONE + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x5a, // STORE_NAME 'to' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_KeyVEval +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVEval___init__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVEval___init__[72] = { + 0xc2,0x84,0x80,0x01,0x20, // prelude + 0x65,0x82,0x1e,0x82,0x15,0x56,0x81,0x0f,0x7a,0x7b, // names: __init__, *, self, elems, src, raw, scalar + 0xa0,0x65,0x2c,0x24,0x24,0x24, // code info + 0x12,0x82,0x20, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x65, // LOAD_SUPER_METHOD '__init__' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x18,0x79, // STORE_ATTR 'fnc' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x18,0x7a, // STORE_ATTR 'raw' + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x18,0x7b, // STORE_ATTR 'scalar' + 0xb4, // LOAD_FAST 4 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0x42,0x4d, // JUMP 13 + 0xb5, // LOAD_FAST 5 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x00, // CALL_FUNCTION 0 + 0x42,0x44, // JUMP 4 + 0x12,0x12, // LOAD_GLOBAL 'Point' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x7c, // STORE_ATTR 'buff' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVEval___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 6, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVEval___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 4, + .qstr_block_name_idx = 101, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVEval___init__ + 15, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVEval___init__ + 21, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVEval___init__ + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVEval +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVEval___getitem__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVEval___getitem__[24] = { + 0x32,0x0e, // prelude + 0x6a,0x82,0x15,0x82,0x17, // names: __getitem__, self, item + 0xa0,0x6c, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x79, // LOAD_METHOD 'fnc' + 0xb0, // LOAD_FAST 0 + 0x14,0x68, // LOAD_METHOD 'idxize' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x7c, // LOAD_ATTR 'buff' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVEval___getitem__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVEval___getitem__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 106, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVEval___getitem__ + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVEval___getitem__ + 9, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVEval___getitem__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVEval +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVEval_to +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVEval_to[109] = { + 0xd0,0x84,0x01,0x2a, // prelude + 0x5a,0x82,0x15,0x81,0x7d,0x7c,0x81,0x00, // names: to, self, idx, buff, offset + 0xa0,0x6f,0x44,0x2d,0x25,0x25,0x28,0x28,0x27,0x25,0x42,0x4a,0x2a, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x7c, // LOAD_ATTR 'buff' + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x79, // LOAD_METHOD 'fnc' + 0xb0, // LOAD_FAST 0 + 0x14,0x68, // LOAD_METHOD 'idxize' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x7a, // LOAD_ATTR 'raw' + 0x44,0x6d, // POP_JUMP_IF_FALSE 45 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x82,0x08, // LOAD_GLOBAL 'ValueError' + 0x23,0x1a, // LOAD_CONST_OBJ 26 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x7b, // LOAD_ATTR 'scalar' + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb2, // LOAD_FAST 2 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x13, // LOAD_GLOBAL 'sc_copy' + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x7b, // LOAD_ATTR 'scalar' + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE + 0x12,0x82,0x08, // LOAD_GLOBAL 'ValueError' + 0x23,0x1a, // LOAD_CONST_OBJ 26 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x4a, // JUMP 10 + 0x12,0x2d, // LOAD_GLOBAL 'memcpy' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVEval_to = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVEval_to, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 109, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 90, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVEval_to + 12, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVEval_to + 25, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVEval_to + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_KeyVEval[] = { + &raw_code_apps_monero_xmr_bulletproof_KeyVEval___init__, + &raw_code_apps_monero_xmr_bulletproof_KeyVEval___getitem__, + &raw_code_apps_monero_xmr_bulletproof_KeyVEval_to, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVEval = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVEval, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 58, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_KeyVEval, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVEval + 3, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVEval + 11, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVEval + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVPrecomp +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp[50] = { + 0x10,0x15, // prelude + 0x21, // names: KeyVPrecomp + 0xab,0x81,0x60,0x60,0x45,0x66,0x60,0x64,0x60,0x00, // code info + 0x11,0x82,0x02, // LOAD_NAME '__name__' + 0x16,0x82,0x03, // STORE_NAME '__module__' + 0x10,0x21, // LOAD_CONST_STRING 'KeyVPrecomp' + 0x16,0x82,0x04, // STORE_NAME '__qualname__' + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x16,0x82,0x05, // STORE_NAME '__slots__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x65, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x6a, // STORE_NAME '__getitem__' + 0x51, // LOAD_CONST_NONE + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x5a, // STORE_NAME 'to' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_KeyVPrecomp +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVPrecomp___init__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp___init__[45] = { + 0xb9,0x04,0x1a, // prelude + 0x65,0x82,0x1e,0x82,0x15,0x67,0x7d,0x7e, // names: __init__, *, self, size, precomp_prefix, aux_comp_fnc + 0xa0,0x8a,0x2c,0x24,0x24, // code info + 0x12,0x82,0x20, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x65, // LOAD_SUPER_METHOD '__init__' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x18,0x7d, // STORE_ATTR 'precomp_prefix' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x18,0x7e, // STORE_ATTR 'aux_comp_fnc' + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x7c, // STORE_ATTR 'buff' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVPrecomp___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 101, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp___init__ + 11, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp___init__ + 16, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp___init__ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVPrecomp +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVPrecomp___getitem__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp___getitem__[47] = { + 0x2a,0x14, // prelude + 0x6a,0x82,0x15,0x82,0x17, // names: __getitem__, self, item + 0xa0,0x90,0x27,0x2c,0x26, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x68, // LOAD_METHOD 'idxize' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x7d, // LOAD_ATTR 'precomp_prefix' + 0x34,0x01, // CALL_FUNCTION 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x7d, // LOAD_ATTR 'precomp_prefix' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x14,0x7e, // LOAD_METHOD 'aux_comp_fnc' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x7c, // LOAD_ATTR 'buff' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVPrecomp___getitem__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp___getitem__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 106, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp___getitem__ + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp___getitem__ + 12, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp___getitem__ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVPrecomp +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVPrecomp_to +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp_to[85] = { + 0xd8,0x84,0x01,0x20, // prelude + 0x5a,0x82,0x15,0x81,0x7d,0x7c,0x81,0x00, // names: to, self, idx, buff, offset + 0xa0,0x96,0x44,0x27,0x2c,0x31,0x28,0x2a, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x7c, // LOAD_ATTR 'buff' + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x68, // LOAD_METHOD 'idxize' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x7d, // LOAD_ATTR 'precomp_prefix' + 0x34,0x01, // CALL_FUNCTION 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb0, // LOAD_FAST 0 + 0x13,0x7d, // LOAD_ATTR 'precomp_prefix' + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb5, // LOAD_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0xb2, // LOAD_FAST 2 + 0x42,0x41, // JUMP 1 + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x14,0x7e, // LOAD_METHOD 'aux_comp_fnc' + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x2d, // LOAD_GLOBAL 'memcpy' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVPrecomp_to = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp_to, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 85, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 90, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp_to + 12, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp_to + 20, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp_to + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_KeyVPrecomp[] = { + &raw_code_apps_monero_xmr_bulletproof_KeyVPrecomp___init__, + &raw_code_apps_monero_xmr_bulletproof_KeyVPrecomp___getitem__, + &raw_code_apps_monero_xmr_bulletproof_KeyVPrecomp_to, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVPrecomp = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_KeyVPrecomp, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp + 3, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp + 12, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVPrecomp + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVSliced +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVSliced[72] = { + 0x10,0x19, // prelude + 0x22, // names: KeyVSliced + 0xab,0xa1,0x60,0x20,0x45,0x66,0x40,0x64,0x64,0x68,0x69,0x00, // code info + 0x11,0x82,0x02, // LOAD_NAME '__name__' + 0x16,0x82,0x03, // STORE_NAME '__module__' + 0x10,0x22, // LOAD_CONST_STRING 'KeyVSliced' + 0x16,0x82,0x04, // STORE_NAME '__qualname__' + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x16,0x82,0x05, // STORE_NAME '__slots__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x65, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x6a, // STORE_NAME '__getitem__' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x6b, // STORE_NAME '__setitem__' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x03, // MAKE_FUNCTION_DEFARGS 3 + 0x16,0x57, // STORE_NAME 'resize' + 0x51, // LOAD_CONST_NONE + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x04, // MAKE_FUNCTION_DEFARGS 4 + 0x16,0x5a, // STORE_NAME 'to' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x05, // MAKE_FUNCTION_DEFARGS 5 + 0x16,0x5e, // STORE_NAME 'read' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_KeyVSliced +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVSliced___init__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVSliced___init__[43] = { + 0xc1,0x04,0x1e, // prelude + 0x65,0x82,0x1e,0x82,0x15,0x81,0x0f,0x82,0x1c,0x82,0x1d, // names: __init__, *, self, src, start, stop + 0xa0,0xa8,0x2e,0x24, // code info + 0x12,0x82,0x20, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x65, // LOAD_SUPER_METHOD '__init__' + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0xf3, // BINARY_OP 28 __sub__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x18,0x7f, // STORE_ATTR 'wrapped' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x00, // STORE_ATTR 'offset' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVSliced___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVSliced___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 101, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVSliced___init__ + 14, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVSliced___init__ + 18, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVSliced___init__ + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVSliced +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVSliced___getitem__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVSliced___getitem__[25] = { + 0x32,0x0e, // prelude + 0x6a,0x82,0x15,0x82,0x17, // names: __getitem__, self, item + 0xa0,0xad, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x7f, // LOAD_ATTR 'wrapped' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x00, // LOAD_ATTR 'offset' + 0xb0, // LOAD_FAST 0 + 0x14,0x68, // LOAD_METHOD 'idxize' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xf2, // BINARY_OP 27 __add__ + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVSliced___getitem__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVSliced___getitem__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 106, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVSliced___getitem__ + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVSliced___getitem__ + 9, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVSliced___getitem__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVSliced +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVSliced___setitem__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVSliced___setitem__[29] = { + 0x43,0x12, // prelude + 0x6b,0x82,0x15,0x82,0x19,0x82,0x1a, // names: __setitem__, self, key, value + 0xa0,0xb0, // code info + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x7f, // LOAD_ATTR 'wrapped' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x00, // LOAD_ATTR 'offset' + 0xb0, // LOAD_FAST 0 + 0x14,0x68, // LOAD_METHOD 'idxize' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xf2, // BINARY_OP 27 __add__ + 0x56, // STORE_SUBSCR + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVSliced___setitem__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVSliced___setitem__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 107, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVSliced___setitem__ + 9, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVSliced___setitem__ + 11, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVSliced___setitem__ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVSliced +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVSliced_resize +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVSliced_resize[22] = { + 0xa3,0x01,0x12, // prelude + 0x57,0x82,0x15,0x82,0x22,0x82,0x23, // names: resize, self, nsize, chop + 0xa0,0xb3, // code info + 0x12,0x82,0x08, // LOAD_GLOBAL 'ValueError' + 0x23,0x1a, // LOAD_CONST_OBJ 26 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVSliced_resize = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVSliced_resize, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 87, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVSliced_resize + 10, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVSliced_resize + 12, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVSliced_resize + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVSliced +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVSliced_to +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVSliced_to[35] = { + 0xc8,0x84,0x01,0x14, // prelude + 0x5a,0x82,0x15,0x81,0x7d,0x7c,0x81,0x00, // names: to, self, idx, buff, offset + 0xa0,0xb6, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x7f, // LOAD_ATTR 'wrapped' + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x00, // LOAD_ATTR 'offset' + 0xb0, // LOAD_FAST 0 + 0x14,0x68, // LOAD_METHOD 'idxize' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVSliced_to = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVSliced_to, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 90, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVSliced_to + 12, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVSliced_to + 14, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVSliced_to + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVSliced +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVSliced_read +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVSliced_read[34] = { + 0xc8,0x05,0x14, // prelude + 0x5e,0x82,0x15,0x81,0x7d,0x7c,0x81,0x00, // names: read, self, idx, buff, offset + 0xa0,0xb9, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x7f, // LOAD_ATTR 'wrapped' + 0x14,0x5e, // LOAD_METHOD 'read' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x00, // LOAD_ATTR 'offset' + 0xb0, // LOAD_FAST 0 + 0x14,0x68, // LOAD_METHOD 'idxize' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVSliced_read = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVSliced_read, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 94, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVSliced_read + 11, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVSliced_read + 13, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVSliced_read + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_KeyVSliced[] = { + &raw_code_apps_monero_xmr_bulletproof_KeyVSliced___init__, + &raw_code_apps_monero_xmr_bulletproof_KeyVSliced___getitem__, + &raw_code_apps_monero_xmr_bulletproof_KeyVSliced___setitem__, + &raw_code_apps_monero_xmr_bulletproof_KeyVSliced_resize, + &raw_code_apps_monero_xmr_bulletproof_KeyVSliced_to, + &raw_code_apps_monero_xmr_bulletproof_KeyVSliced_read, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVSliced = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVSliced, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_KeyVSliced, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVSliced + 3, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVSliced + 14, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVSliced + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVPowersBackwards +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards[61] = { + 0x18,0x1d, // prelude + 0x23, // names: KeyVPowersBackwards + 0xab,0xbd,0x80,0x07,0x40,0x85,0x0b,0x8c,0x1e,0x65,0x20,0x85,0x08,0x00, // code info + 0x11,0x82,0x02, // LOAD_NAME '__name__' + 0x16,0x82,0x03, // STORE_NAME '__module__' + 0x10,0x23, // LOAD_CONST_STRING 'KeyVPowersBackwards' + 0x16,0x82,0x04, // STORE_NAME '__qualname__' + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x16,0x82,0x05, // STORE_NAME '__slots__' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x2a,0x03, // BUILD_TUPLE 3 + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x21,0x00,0x01, // MAKE_CLOSURE_DEFARGS 0 + 0x16,0x65, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x81,0x07, // STORE_NAME 'reset' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x81,0x08, // STORE_NAME 'move_more' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x6a, // STORE_NAME '__getitem__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_KeyVPowersBackwards +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVPowersBackwards___init__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards___init__[183] = { + 0xdb,0x85,0x01,0x3c, // prelude + 0x65,0x82,0x1e,0x82,0x15,0x67,0x81,0x03,0x81,0x04,0x81,0x05,0x7a, // names: __init__, *, self, size, x, x_inv, x_max, raw + 0xa0,0xd9,0x2c,0x24,0x32,0x28,0x45,0x2a,0x28,0x28,0x28,0x23,0x4c,0x4d,0x23,0x4c,0x50, // code info + 0x12,0x82,0x20, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x65, // LOAD_SUPER_METHOD '__init__' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0xb1, // LOAD_FAST 1 + 0x18,0x7a, // STORE_ATTR 'raw' + 0xb6, // LOAD_FAST 6 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0x12,0x81,0x55, // LOAD_GLOBAL 'bytearray' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x01, // CALL_FUNCTION 1 + 0x42,0x44, // JUMP 4 + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x72, // STORE_ATTR 'cur' + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x01, // STORE_ATTR 'cur_sc' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x02, // STORE_ATTR 'last_idx' + 0x12,0x30, // LOAD_GLOBAL '_load_scalar' + 0x51, // LOAD_CONST_NONE + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x03, // STORE_ATTR 'x' + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x04, // STORE_ATTR 'x_inv' + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x05, // STORE_ATTR 'x_max' + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x06, // STORE_ATTR 'tmp_sc' + 0xb4, // LOAD_FAST 4 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x30, // LOAD_GLOBAL '_load_scalar' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x04, // LOAD_ATTR 'x_inv' + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x4d, // JUMP 13 + 0x12,0x15, // LOAD_GLOBAL 'sc_inv_into' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x04, // LOAD_ATTR 'x_inv' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x03, // LOAD_ATTR 'x' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x30, // LOAD_GLOBAL '_load_scalar' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x05, // LOAD_ATTR 'x_max' + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x50, // JUMP 16 + 0x12,0x4e, // LOAD_GLOBAL '_sc_square_mult' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x05, // LOAD_ATTR 'x_max' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x03, // LOAD_ATTR 'x' + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x07, // LOAD_METHOD 'reset' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVPowersBackwards___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 7, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 183, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 3, + .qstr_block_name_idx = 101, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards___init__ + 17, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards___init__ + 34, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards___init__ + 34, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVPowersBackwards +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVPowersBackwards_reset +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards_reset[33] = { + 0x19,0x0e, // prelude + 0x81,0x07,0x82,0x15, // names: reset, self + 0xa0,0xf0,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x67, // LOAD_ATTR 'size' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x02, // STORE_ATTR 'last_idx' + 0x12,0x13, // LOAD_GLOBAL 'sc_copy' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x01, // LOAD_ATTR 'cur_sc' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x05, // LOAD_ATTR 'x_max' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVPowersBackwards_reset = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards_reset, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 135, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards_reset + 6, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards_reset + 9, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards_reset + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVPowersBackwards +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVPowersBackwards_move_more +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards_move_more[66] = { + 0x3b,0x1c, // prelude + 0x81,0x08,0x82,0x15,0x82,0x17,0x82,0x24, // names: move_more, self, item, prev + 0xa0,0xf4,0x24,0x25,0x48,0x2e, // code info + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x82,0x08, // LOAD_GLOBAL 'ValueError' + 0x23,0x1a, // LOAD_CONST_OBJ 26 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x4e, // LOAD_GLOBAL '_sc_square_mult' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x06, // LOAD_ATTR 'tmp_sc' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x04, // LOAD_ATTR 'x_inv' + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x01, // LOAD_ATTR 'cur_sc' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x01, // LOAD_ATTR 'cur_sc' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x06, // LOAD_ATTR 'tmp_sc' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVPowersBackwards_move_more = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards_move_more, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 66, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 136, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards_move_more + 10, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards_move_more + 16, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards_move_more + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyVPowersBackwards +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyVPowersBackwards___getitem__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards___getitem__[193] = { + 0x3a,0x34, // prelude + 0x6a,0x82,0x15,0x82,0x17, // names: __getitem__, self, item + 0xa0,0xfc,0x25,0x27,0x25,0x45,0x25,0x32,0x25,0x2d,0x29,0x2a,0x25,0x42,0x47,0x2d,0x25,0x4b,0x27,0x2c,0x45, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x02, // LOAD_ATTR 'last_idx' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x68, // LOAD_METHOD 'idxize' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x02, // STORE_ATTR 'last_idx' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x01, // LOAD_ATTR 'cur_sc' + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0xb0, // LOAD_FAST 0 + 0x13,0x7a, // LOAD_ATTR 'raw' + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE + 0x12,0x2f, // LOAD_GLOBAL '_copy_key' + 0xb0, // LOAD_FAST 0 + 0x13,0x72, // LOAD_ATTR 'cur' + 0x12,0x81,0x59, // LOAD_GLOBAL '_ONE' + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x13, // LOAD_GLOBAL 'sc_copy' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x03, // LOAD_ATTR 'x' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0xd6,0x80, // JUMP 86 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x67, // LOAD_ATTR 'size' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x07, // LOAD_METHOD 'reset' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0xc3,0x80, // JUMP 67 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x7c, // JUMP 60 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0xb3, // LOAD_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x04, // LOAD_ATTR 'x_inv' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x68, // JUMP 40 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x08, // LOAD_METHOD 'move_more' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x58, // JUMP 24 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x07, // LOAD_METHOD 'reset' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x08, // LOAD_METHOD 'move_more' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x02, // LOAD_ATTR 'last_idx' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x02, // STORE_ATTR 'last_idx' + 0xb0, // LOAD_FAST 0 + 0x13,0x7a, // LOAD_ATTR 'raw' + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0xb0, // LOAD_FAST 0 + 0x13,0x72, // LOAD_ATTR 'cur' + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVPowersBackwards___getitem__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards___getitem__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 193, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 106, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards___getitem__ + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards___getitem__ + 28, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards___getitem__ + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_KeyVPowersBackwards[] = { + &raw_code_apps_monero_xmr_bulletproof_KeyVPowersBackwards___init__, + &raw_code_apps_monero_xmr_bulletproof_KeyVPowersBackwards_reset, + &raw_code_apps_monero_xmr_bulletproof_KeyVPowersBackwards_move_more, + &raw_code_apps_monero_xmr_bulletproof_KeyVPowersBackwards___getitem__, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyVPowersBackwards = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 61, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_KeyVPowersBackwards, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards + 3, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards + 16, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyVPowersBackwards + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_VctD +static const byte fun_data_apps_monero_xmr_bulletproof_VctD[66] = { + 0x18,0x21, // prelude + 0x24, // names: VctD + 0xbb,0x18,0x80,0x07,0x40,0x85,0x0d,0x8a,0x0e,0x85,0x08,0x85,0x0e,0x85,0x1c,0x00, // code info + 0x11,0x82,0x02, // LOAD_NAME '__name__' + 0x16,0x82,0x03, // STORE_NAME '__module__' + 0x10,0x24, // LOAD_CONST_STRING 'VctD' + 0x16,0x82,0x04, // STORE_NAME '__qualname__' + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x16,0x82,0x05, // STORE_NAME '__slots__' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x21,0x00,0x01, // MAKE_CLOSURE_DEFARGS 0 + 0x16,0x65, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x81,0x07, // STORE_NAME 'reset' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x81,0x0e, // STORE_NAME 'move_one' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x81,0x08, // STORE_NAME 'move_more' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x6a, // STORE_NAME '__getitem__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_VctD +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_VctD___init__ +static const byte fun_data_apps_monero_xmr_bulletproof_VctD___init__[131] = { + 0xca,0x05,0x32, // prelude + 0x65,0x82,0x1e,0x82,0x15,0x81,0x09,0x82,0x25,0x81,0x0a,0x7a, // names: __init__, *, self, N, M, z_sq, raw + 0xb0,0x2f,0x2e,0x25,0x24,0x2a,0x28,0x2c,0x28,0x28,0x2f,0x25,0x25, // code info + 0x12,0x82,0x20, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x65, // LOAD_SUPER_METHOD '__init__' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xf4, // BINARY_OP 29 __mul__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x09, // STORE_ATTR 'N' + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x18,0x7a, // STORE_ATTR 'raw' + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x51, // LOAD_CONST_NONE + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x0a, // STORE_ATTR 'z_sq' + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x0b, // STORE_ATTR 'z_last' + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x51, // LOAD_CONST_NONE + 0x12,0x81,0x5a, // LOAD_GLOBAL '_TWO' + 0x34,0x02, // CALL_FUNCTION 2 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x0c, // STORE_ATTR 'two' + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x01, // STORE_ATTR 'cur_sc' + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x06, // STORE_ATTR 'tmp_sc' + 0xb1, // LOAD_FAST 1 + 0x13,0x7a, // LOAD_ATTR 'raw' + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x18,0x72, // STORE_ATTR 'cur' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x02, // STORE_ATTR 'last_idx' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x0d, // STORE_ATTR 'current_n' + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x07, // LOAD_METHOD 'reset' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_VctD___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 6, + .fun_data = fun_data_apps_monero_xmr_bulletproof_VctD___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 131, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 101, + .line_info = fun_data_apps_monero_xmr_bulletproof_VctD___init__ + 15, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_VctD___init__ + 28, + .opcodes = fun_data_apps_monero_xmr_bulletproof_VctD___init__ + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_VctD +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_VctD_reset +static const byte fun_data_apps_monero_xmr_bulletproof_VctD_reset[67] = { + 0x19,0x16, // prelude + 0x81,0x07,0x82,0x15, // names: reset, self + 0xb0,0x3d,0x24,0x25,0x2d,0x2d,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x66, // STORE_ATTR 'current_idx' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x0d, // STORE_ATTR 'current_n' + 0x12,0x13, // LOAD_GLOBAL 'sc_copy' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0b, // LOAD_ATTR 'z_last' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0a, // LOAD_ATTR 'z_sq' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x13, // LOAD_GLOBAL 'sc_copy' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x01, // LOAD_ATTR 'cur_sc' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0a, // LOAD_ATTR 'z_sq' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x7a, // LOAD_ATTR 'raw' + 0x43,0x4c, // POP_JUMP_IF_TRUE 12 + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0xb0, // LOAD_FAST 0 + 0x13,0x72, // LOAD_ATTR 'cur' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x01, // LOAD_ATTR 'cur_sc' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_VctD_reset = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_bulletproof_VctD_reset, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 67, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 135, + .line_info = fun_data_apps_monero_xmr_bulletproof_VctD_reset + 6, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_VctD_reset + 13, + .opcodes = fun_data_apps_monero_xmr_bulletproof_VctD_reset + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_VctD +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_VctD_move_one +static const byte fun_data_apps_monero_xmr_bulletproof_VctD_move_one[112] = { + 0x32,0x22, // prelude + 0x81,0x0e,0x82,0x15,0x82,0x17, // names: move_one, self, item + 0xb0,0x45,0x20,0x45,0x2b,0x30,0x25,0x31,0x4c,0x2b,0x25, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x01, // LOAD_ATTR 'cur_sc' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x81,0x0d, // LOAD_ATTR 'current_n' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x81,0x0d, // STORE_ATTR 'current_n' + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x6d, // POP_JUMP_IF_FALSE 45 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0d, // LOAD_ATTR 'current_n' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x09, // LOAD_ATTR 'N' + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x62, // POP_JUMP_IF_FALSE 34 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x0d, // STORE_ATTR 'current_n' + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0b, // LOAD_ATTR 'z_last' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0b, // LOAD_ATTR 'z_last' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0a, // LOAD_ATTR 'z_sq' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x13, // LOAD_GLOBAL 'sc_copy' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0b, // LOAD_ATTR 'z_last' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x4b, // JUMP 11 + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0xb2, // LOAD_FAST 2 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0c, // LOAD_ATTR 'two' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x7a, // LOAD_ATTR 'raw' + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0xb0, // LOAD_FAST 0 + 0x13,0x72, // LOAD_ATTR 'cur' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_VctD_move_one = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_VctD_move_one, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 112, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 142, + .line_info = fun_data_apps_monero_xmr_bulletproof_VctD_move_one + 8, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_VctD_move_one + 19, + .opcodes = fun_data_apps_monero_xmr_bulletproof_VctD_move_one + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_VctD +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_VctD_move_more +static const byte fun_data_apps_monero_xmr_bulletproof_VctD_move_more[164] = { + 0x6b,0x3c, // prelude + 0x81,0x08,0x82,0x15,0x82,0x17,0x82,0x24, // names: move_more, self, item, prev + 0xb0,0x53,0x20,0x24,0x25,0x28,0x25,0x25,0x45,0x27,0x26,0x68,0x25,0x2b,0x2e,0x23,0x28,0x62,0x20,0x23,0x2a,0x2d, // code info + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xf3, // BINARY_OP 28 __sub__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x82,0x08, // LOAD_GLOBAL 'ValueError' + 0x23,0x1a, // LOAD_CONST_OBJ 26 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x01, // LOAD_ATTR 'cur_sc' + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x06, // LOAD_ATTR 'tmp_sc' + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x09, // LOAD_ATTR 'N' + 0xc6, // STORE_FAST 6 + 0xb1, // LOAD_FAST 1 + 0xb6, // LOAD_FAST 6 + 0xf8, // BINARY_OP 33 __mod__ + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x0d, // STORE_ATTR 'current_n' + 0xb3, // LOAD_FAST 3 + 0xb6, // LOAD_FAST 6 + 0xf8, // BINARY_OP 33 __mod__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0xc7, // STORE_FAST 7 + 0xb1, // LOAD_FAST 1 + 0xb6, // LOAD_FAST 6 + 0xf6, // BINARY_OP 31 __floordiv__ + 0xb2, // LOAD_FAST 2 + 0xb6, // LOAD_FAST 6 + 0xf6, // BINARY_OP 31 __floordiv__ + 0xf3, // BINARY_OP 28 __sub__ + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x66, // POP_JUMP_IF_FALSE 38 + 0x12,0x4e, // LOAD_GLOBAL '_sc_square_mult' + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0a, // LOAD_ATTR 'z_sq' + 0xb8, // LOAD_FAST 8 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0b, // LOAD_ATTR 'z_last' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0b, // LOAD_ATTR 'z_last' + 0xb5, // LOAD_FAST 5 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0xb4, // LOAD_FAST 4 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb7, // LOAD_FAST 7 + 0x43,0x5f, // POP_JUMP_IF_TRUE 31 + 0x12,0x13, // LOAD_GLOBAL 'sc_copy' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0b, // LOAD_ATTR 'z_last' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x4e, // LOAD_GLOBAL '_sc_square_mult' + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0c, // LOAD_ATTR 'two' + 0xb1, // LOAD_FAST 1 + 0xb6, // LOAD_FAST 6 + 0xf8, // BINARY_OP 33 __mod__ + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0xb4, // LOAD_FAST 4 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_VctD_move_more = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof_VctD_move_more, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 164, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 136, + .line_info = fun_data_apps_monero_xmr_bulletproof_VctD_move_more + 10, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_VctD_move_more + 32, + .opcodes = fun_data_apps_monero_xmr_bulletproof_VctD_move_more + 32, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_VctD +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_VctD___getitem__ +static const byte fun_data_apps_monero_xmr_bulletproof_VctD___getitem__[123] = { + 0x32,0x28, // prelude + 0x6a,0x82,0x15,0x82,0x17, // names: __getitem__, self, item + 0xb0,0x6f,0x25,0x27,0x45,0x25,0x29,0x25,0x22,0x27,0x2a,0x25,0x4b,0x27,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x02, // LOAD_ATTR 'last_idx' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x68, // LOAD_METHOD 'idxize' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x02, // STORE_ATTR 'last_idx' + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x07, // LOAD_METHOD 'reset' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0x78, // JUMP 56 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x71, // JUMP 49 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0e, // LOAD_METHOD 'move_one' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x60, // JUMP 32 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x08, // LOAD_METHOD 'move_more' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x50, // JUMP 16 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x07, // LOAD_METHOD 'reset' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x08, // LOAD_METHOD 'move_more' + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x7a, // LOAD_ATTR 'raw' + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x72, // LOAD_ATTR 'cur' + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x01, // LOAD_ATTR 'cur_sc' + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_VctD___getitem__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_VctD___getitem__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 123, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 106, + .line_info = fun_data_apps_monero_xmr_bulletproof_VctD___getitem__ + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_VctD___getitem__ + 22, + .opcodes = fun_data_apps_monero_xmr_bulletproof_VctD___getitem__ + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_VctD[] = { + &raw_code_apps_monero_xmr_bulletproof_VctD___init__, + &raw_code_apps_monero_xmr_bulletproof_VctD_reset, + &raw_code_apps_monero_xmr_bulletproof_VctD_move_one, + &raw_code_apps_monero_xmr_bulletproof_VctD_move_more, + &raw_code_apps_monero_xmr_bulletproof_VctD___getitem__, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_VctD = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_bulletproof_VctD, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 66, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_VctD, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_monero_xmr_bulletproof_VctD + 3, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_VctD + 18, + .opcodes = fun_data_apps_monero_xmr_bulletproof_VctD + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyHadamardFoldedVct +static const byte fun_data_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct[46] = { + 0x18,0x15, // prelude + 0x25, // names: KeyHadamardFoldedVct + 0xbb,0x82,0x60,0x20,0x40,0x85,0x0b,0x8b,0x0d,0x00, // code info + 0x11,0x82,0x02, // LOAD_NAME '__name__' + 0x16,0x82,0x03, // STORE_NAME '__module__' + 0x10,0x25, // LOAD_CONST_STRING 'KeyHadamardFoldedVct' + 0x16,0x82,0x04, // STORE_NAME '__qualname__' + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x16,0x82,0x05, // STORE_NAME '__slots__' + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x21,0x00,0x01, // MAKE_CLOSURE_DEFARGS 0 + 0x16,0x65, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x6a, // STORE_NAME '__getitem__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_KeyHadamardFoldedVct +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyHadamardFoldedVct___init__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct___init__[114] = { + 0xd3,0x84,0x01,0x30, // prelude + 0x65,0x82,0x1e,0x82,0x15,0x81,0x0f,0x81,0x11,0x81,0x12,0x7a,0x81,0x10, // names: __init__, *, self, src, a, b, raw, gc_fnc + 0xb0,0x96,0x33,0x25,0x24,0x25,0x2a,0x2a,0x28,0x28, // code info + 0x12,0x82,0x20, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x65, // LOAD_SUPER_METHOD '__init__' + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf1, // BINARY_OP 26 __rshift__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x0f, // STORE_ATTR 'src' + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x18,0x7a, // STORE_ATTR 'raw' + 0xb6, // LOAD_FAST 6 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x10, // STORE_ATTR 'gc_fnc' + 0x12,0x30, // LOAD_GLOBAL '_load_scalar' + 0x51, // LOAD_CONST_NONE + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x11, // STORE_ATTR 'a' + 0x12,0x30, // LOAD_GLOBAL '_load_scalar' + 0x51, // LOAD_CONST_NONE + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x12, // STORE_ATTR 'b' + 0x12,0x12, // LOAD_GLOBAL 'Point' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x13, // STORE_ATTR 'cur_pt' + 0x12,0x12, // LOAD_GLOBAL 'Point' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x14, // STORE_ATTR 'tmp_pt' + 0xb1, // LOAD_FAST 1 + 0x13,0x7a, // LOAD_ATTR 'raw' + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x18,0x72, // STORE_ATTR 'cur' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 7, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 114, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 101, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct___init__ + 18, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct___init__ + 28, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct___init__ + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyHadamardFoldedVct +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyHadamardFoldedVct___getitem__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct___getitem__[120] = { + 0x52,0x20, // prelude + 0x6a,0x82,0x15,0x82,0x17, // names: __getitem__, self, item + 0xb0,0xa1,0x45,0x27,0x2f,0x36,0x35,0x26,0x28,0x25,0x49, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x13, // LOAD_ATTR 'cur_pt' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x68, // LOAD_METHOD 'idxize' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x12,0x0f, // LOAD_GLOBAL 'decodepoint_into' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0f, // LOAD_ATTR 'src' + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'decodepoint_into' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x14, // LOAD_ATTR 'tmp_pt' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0f, // LOAD_ATTR 'src' + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb0, // LOAD_FAST 0 + 0x13,0x67, // LOAD_ATTR 'size' + 0xb3, // LOAD_FAST 3 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'crypto' + 0x14,0x5b, // LOAD_METHOD 'add_keys3_into' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x11, // LOAD_ATTR 'a' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x12, // LOAD_ATTR 'b' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x14, // LOAD_ATTR 'tmp_pt' + 0x36,0x05, // CALL_METHOD 5 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'gc_fnc' + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x10, // LOAD_METHOD 'gc_fnc' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x7a, // LOAD_ATTR 'raw' + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x12,0x10, // LOAD_GLOBAL 'encodepoint_into' + 0xb0, // LOAD_FAST 0 + 0x13,0x72, // LOAD_ATTR 'cur' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct___getitem__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct___getitem__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 120, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 106, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct___getitem__ + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct___getitem__ + 18, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct___getitem__ + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct[] = { + &raw_code_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct___init__, + &raw_code_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct___getitem__, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct + 3, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct + 12, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyScalarFoldedVct +static const byte fun_data_apps_monero_xmr_bulletproof_KeyScalarFoldedVct[46] = { + 0x18,0x15, // prelude + 0x26, // names: KeyScalarFoldedVct + 0xbb,0xb0,0x60,0x20,0x40,0x85,0x0b,0x8b,0x0d,0x00, // code info + 0x11,0x82,0x02, // LOAD_NAME '__name__' + 0x16,0x82,0x03, // STORE_NAME '__module__' + 0x10,0x26, // LOAD_CONST_STRING 'KeyScalarFoldedVct' + 0x16,0x82,0x04, // STORE_NAME '__qualname__' + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0x16,0x82,0x05, // STORE_NAME '__slots__' + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x21,0x00,0x01, // MAKE_CLOSURE_DEFARGS 0 + 0x16,0x65, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x6a, // STORE_NAME '__getitem__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_KeyScalarFoldedVct +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyScalarFoldedVct___init__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyScalarFoldedVct___init__[114] = { + 0xd3,0x84,0x01,0x30, // prelude + 0x65,0x82,0x1e,0x82,0x15,0x81,0x0f,0x81,0x11,0x81,0x12,0x7a,0x81,0x10, // names: __init__, *, self, src, a, b, raw, gc_fnc + 0xb0,0xc4,0x33,0x25,0x24,0x25,0x2a,0x2a,0x28,0x28, // code info + 0x12,0x82,0x20, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x65, // LOAD_SUPER_METHOD '__init__' + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf1, // BINARY_OP 26 __rshift__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x0f, // STORE_ATTR 'src' + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x18,0x7a, // STORE_ATTR 'raw' + 0xb6, // LOAD_FAST 6 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x10, // STORE_ATTR 'gc_fnc' + 0x12,0x30, // LOAD_GLOBAL '_load_scalar' + 0x51, // LOAD_CONST_NONE + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x11, // STORE_ATTR 'a' + 0x12,0x30, // LOAD_GLOBAL '_load_scalar' + 0x51, // LOAD_CONST_NONE + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x12, // STORE_ATTR 'b' + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x01, // STORE_ATTR 'cur_sc' + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x06, // STORE_ATTR 'tmp_sc' + 0xb1, // LOAD_FAST 1 + 0x13,0x7a, // LOAD_ATTR 'raw' + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x18,0x72, // STORE_ATTR 'cur' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyScalarFoldedVct___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 7, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyScalarFoldedVct___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 114, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 101, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyScalarFoldedVct___init__ + 18, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyScalarFoldedVct___init__ + 28, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyScalarFoldedVct___init__ + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyScalarFoldedVct +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyScalarFoldedVct___getitem__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyScalarFoldedVct___getitem__[126] = { + 0x52,0x24, // prelude + 0x6a,0x82,0x15,0x82,0x17, // names: __getitem__, self, item + 0xb0,0xcf,0x25,0x45,0x47,0x2f,0x2b,0x33,0x4c,0x26,0x28,0x25,0x49, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x01, // LOAD_ATTR 'cur_sc' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x06, // LOAD_ATTR 'tmp_sc' + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x14,0x68, // LOAD_METHOD 'idxize' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0f, // LOAD_ATTR 'src' + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0xb3, // LOAD_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x11, // LOAD_ATTR 'a' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x0f, // LOAD_ATTR 'src' + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb0, // LOAD_FAST 0 + 0x13,0x67, // LOAD_ATTR 'size' + 0xb4, // LOAD_FAST 4 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'sc_muladd_into' + 0xb2, // LOAD_FAST 2 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x12, // LOAD_ATTR 'b' + 0xb3, // LOAD_FAST 3 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'gc_fnc' + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x10, // LOAD_METHOD 'gc_fnc' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x7a, // LOAD_ATTR 'raw' + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0xb0, // LOAD_FAST 0 + 0x13,0x72, // LOAD_ATTR 'cur' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyScalarFoldedVct___getitem__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyScalarFoldedVct___getitem__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 126, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 106, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyScalarFoldedVct___getitem__ + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyScalarFoldedVct___getitem__ + 20, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyScalarFoldedVct___getitem__ + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_KeyScalarFoldedVct[] = { + &raw_code_apps_monero_xmr_bulletproof_KeyScalarFoldedVct___init__, + &raw_code_apps_monero_xmr_bulletproof_KeyScalarFoldedVct___getitem__, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyScalarFoldedVct = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyScalarFoldedVct, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_KeyScalarFoldedVct, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 38, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyScalarFoldedVct + 3, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyScalarFoldedVct + 12, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyScalarFoldedVct + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyChallengeCacheVct +static const byte fun_data_apps_monero_xmr_bulletproof_KeyChallengeCacheVct[41] = { + 0x08,0x15, // prelude + 0x27, // names: KeyChallengeCacheVct + 0xbb,0xe2,0x60,0x40,0x40,0x85,0x07,0x86,0x10,0x00, // code info + 0x11,0x82,0x02, // LOAD_NAME '__name__' + 0x16,0x82,0x03, // STORE_NAME '__module__' + 0x10,0x27, // LOAD_CONST_STRING 'KeyChallengeCacheVct' + 0x16,0x82,0x04, // STORE_NAME '__qualname__' + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0x16,0x82,0x05, // STORE_NAME '__slots__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x65, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x6a, // STORE_NAME '__getitem__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_KeyChallengeCacheVct +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyChallengeCacheVct___init__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyChallengeCacheVct___init__[109] = { + 0xca,0x04,0x32, // prelude + 0x65,0x82,0x1e,0x82,0x15,0x81,0x15,0x81,0x16,0x81,0x17,0x82,0x26, // names: __init__, *, self, nbits, ch_, chi, precomputed + 0xb0,0xf3,0x2e,0x25,0x25,0x25,0x25,0x25,0x27,0x23,0x42,0x22, // code info + 0x12,0x82,0x20, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x65, // LOAD_SUPER_METHOD '__init__' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb2, // LOAD_FAST 2 + 0xf0, // BINARY_OP 25 __lshift__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x15, // STORE_ATTR 'nbits' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x16, // STORE_ATTR 'ch_' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x17, // STORE_ATTR 'chi' + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x18, // STORE_ATTR 'precomp' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x19, // STORE_ATTR 'precomp_depth' + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x72, // STORE_ATTR 'cur' + 0xb5, // LOAD_FAST 5 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x42,0x4b, // JUMP 11 + 0xb1, // LOAD_FAST 1 + 0x57, // DUP_TOP + 0x13,0x81,0x19, // LOAD_ATTR 'precomp_depth' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x81,0x19, // STORE_ATTR 'precomp_depth' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x19, // LOAD_ATTR 'precomp_depth' + 0xf0, // BINARY_OP 25 __lshift__ + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x26, // POP_JUMP_IF_TRUE -26 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyChallengeCacheVct___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 6, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyChallengeCacheVct___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 109, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 101, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyChallengeCacheVct___init__ + 16, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyChallengeCacheVct___init__ + 28, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyChallengeCacheVct___init__ + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_KeyChallengeCacheVct +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_KeyChallengeCacheVct___getitem__ +static const byte fun_data_apps_monero_xmr_bulletproof_KeyChallengeCacheVct___getitem__[147] = { + 0x62,0x24, // prelude + 0x6a,0x82,0x15,0x82,0x17, // names: __getitem__, self, item + 0xc0,0x01,0x44,0x27,0x42,0x26,0x36,0x49,0x49,0x2d,0x30,0x4f,0x36, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x72, // LOAD_ATTR 'cur' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x68, // LOAD_METHOD 'idxize' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x18, // LOAD_ATTR 'precomp' + 0x44,0x5f, // POP_JUMP_IF_FALSE 31 + 0x12,0x2f, // LOAD_GLOBAL '_copy_key' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x18, // LOAD_ATTR 'precomp' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x15, // LOAD_ATTR 'nbits' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x19, // LOAD_ATTR 'precomp_depth' + 0xf3, // BINARY_OP 28 __sub__ + 0xf1, // BINARY_OP 26 __rshift__ + 0x55, // LOAD_SUBSCR + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x19, // LOAD_ATTR 'precomp_depth' + 0xe5, // BINARY_OP 14 __iadd__ + 0xc4, // STORE_FAST 4 + 0x42,0x49, // JUMP 9 + 0x12,0x2f, // LOAD_GLOBAL '_copy_key' + 0xb2, // LOAD_FAST 2 + 0x12,0x81,0x59, // LOAD_GLOBAL '_ONE' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x15, // LOAD_ATTR 'nbits' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x42,0x70, // JUMP 48 + 0x57, // DUP_TOP + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x15, // LOAD_ATTR 'nbits' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xb5, // LOAD_FAST 5 + 0xf3, // BINARY_OP 28 __sub__ + 0xf0, // BINARY_OP 25 __lshift__ + 0xef, // BINARY_OP 24 __and__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb2, // LOAD_FAST 2 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x16, // LOAD_ATTR 'ch_' + 0xb5, // LOAD_FAST 5 + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x4d, // JUMP 13 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb2, // LOAD_FAST 2 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x17, // LOAD_ATTR 'chi' + 0xb5, // LOAD_FAST 5 + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x0b, // POP_JUMP_IF_TRUE -53 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyChallengeCacheVct___getitem__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyChallengeCacheVct___getitem__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 147, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 106, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyChallengeCacheVct___getitem__ + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyChallengeCacheVct___getitem__ + 20, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyChallengeCacheVct___getitem__ + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_KeyChallengeCacheVct[] = { + &raw_code_apps_monero_xmr_bulletproof_KeyChallengeCacheVct___init__, + &raw_code_apps_monero_xmr_bulletproof_KeyChallengeCacheVct___getitem__, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_KeyChallengeCacheVct = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_bulletproof_KeyChallengeCacheVct, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_KeyChallengeCacheVct, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_monero_xmr_bulletproof_KeyChallengeCacheVct + 3, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_KeyChallengeCacheVct + 12, + .opcodes = fun_data_apps_monero_xmr_bulletproof_KeyChallengeCacheVct + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__ensure_dst_keyvect +static const byte fun_data_apps_monero_xmr_bulletproof__ensure_dst_keyvect[56] = { + 0xa2,0x80,0x01,0x16, // prelude + 0x55,0x81,0x71,0x67, // names: _ensure_dst_keyvect, dst, size + 0xc0,0x15,0x25,0x29,0x22,0x30,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x1f, // LOAD_GLOBAL 'KeyV' + 0x10,0x56, // LOAD_CONST_STRING 'elems' + 0xb1, // LOAD_FAST 1 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0xc0, // STORE_FAST 0 + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb1, // LOAD_FAST 1 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb0, // LOAD_FAST 0 + 0x14,0x57, // LOAD_METHOD 'resize' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__ensure_dst_keyvect = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof__ensure_dst_keyvect, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 85, + .line_info = fun_data_apps_monero_xmr_bulletproof__ensure_dst_keyvect + 8, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__ensure_dst_keyvect + 15, + .opcodes = fun_data_apps_monero_xmr_bulletproof__ensure_dst_keyvect + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__vector_exponent_custom +static const byte fun_data_apps_monero_xmr_bulletproof__vector_exponent_custom[218] = { + 0x8b,0x95,0x01,0x44, // prelude + 0x58,0x81,0x3d,0x81,0x3f,0x81,0x11,0x81,0x12,0x81,0x71,0x82,0x06,0x82,0x07, // names: _vector_exponent_custom, A, B, a, b, dst, a_raw, b_raw + 0xc0,0x1e,0x60,0x20,0x26,0x4a,0x2f,0x23,0x2e,0x2e,0x23,0x2e,0x2e,0x47,0x51,0x74,0x30,0x30,0x29, // code info + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0x12,0x07, // LOAD_GLOBAL 'crypto' + 0x14,0x59, // LOAD_METHOD 'identity_into' + 0x12,0x81,0x67, // LOAD_GLOBAL '_tmp_pt_2' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x45,0x01, // JUMP_IF_TRUE_OR_POP 1 + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x84,0x81, // JUMP 132 + 0x57, // DUP_TOP + 0xc7, // STORE_FAST 7 + 0xb2, // LOAD_FAST 2 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0xb2, // LOAD_FAST 2 + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'decodepoint_into' + 0x12,0x81,0x68, // LOAD_GLOBAL '_tmp_pt_3' + 0xb0, // LOAD_FAST 0 + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0xb3, // LOAD_FAST 3 + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'decodepoint_into' + 0x12,0x81,0x69, // LOAD_GLOBAL '_tmp_pt_4' + 0xb1, // LOAD_FAST 1 + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'crypto' + 0x14,0x5b, // LOAD_METHOD 'add_keys3_into' + 0x12,0x81,0x66, // LOAD_GLOBAL '_tmp_pt_1' + 0xb2, // LOAD_FAST 2 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x42,0x46, // JUMP 6 + 0xb5, // LOAD_FAST 5 + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x12,0x81,0x68, // LOAD_GLOBAL '_tmp_pt_3' + 0xb3, // LOAD_FAST 3 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0x42,0x46, // JUMP 6 + 0xb6, // LOAD_FAST 6 + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x12,0x81,0x69, // LOAD_GLOBAL '_tmp_pt_4' + 0x36,0x05, // CALL_METHOD 5 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'crypto' + 0x14,0x40, // LOAD_METHOD 'point_add_into' + 0x12,0x81,0x67, // LOAD_GLOBAL '_tmp_pt_2' + 0x12,0x81,0x67, // LOAD_GLOBAL '_tmp_pt_2' + 0x12,0x81,0x66, // LOAD_GLOBAL '_tmp_pt_1' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x31, // LOAD_GLOBAL '_gc_iter' + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xf6,0x7e, // POP_JUMP_IF_TRUE -138 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'encodepoint_into' + 0xb4, // LOAD_FAST 4 + 0x12,0x81,0x67, // LOAD_GLOBAL '_tmp_pt_2' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__vector_exponent_custom = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 7, + .fun_data = fun_data_apps_monero_xmr_bulletproof__vector_exponent_custom, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 218, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 3, + .qstr_block_name_idx = 88, + .line_info = fun_data_apps_monero_xmr_bulletproof__vector_exponent_custom + 19, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__vector_exponent_custom + 38, + .opcodes = fun_data_apps_monero_xmr_bulletproof__vector_exponent_custom + 38, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__weighted_inner_product +static const byte fun_data_apps_monero_xmr_bulletproof__weighted_inner_product[193] = { + 0xe8,0x04,0x34, // prelude + 0x5c,0x81,0x71,0x81,0x11,0x81,0x12,0x81,0x21, // names: _weighted_inner_product, dst, a, b, y + 0xc0,0x3c,0x60,0x2f,0x28,0x26,0x29,0x2b,0x4b,0x2c,0x2e,0x2e,0x2e,0x2f,0x28,0x50,0x29, // code info + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x82,0x08, // LOAD_GLOBAL 'ValueError' + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6d, // LOAD_GLOBAL '_tmp_sc_4' + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc4, // STORE_FAST 4 + 0x12,0x13, // LOAD_GLOBAL 'sc_copy' + 0x12,0x81,0x6e, // LOAD_GLOBAL '_tmp_sc_5' + 0x12,0x81,0x6d, // LOAD_GLOBAL '_tmp_sc_4' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x12,0x81,0x58, // LOAD_GLOBAL '_ZERO' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xcb,0x80, // JUMP 75 + 0x57, // DUP_TOP + 0xc6, // STORE_FAST 6 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0xb1, // LOAD_FAST 1 + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6c, // LOAD_GLOBAL '_tmp_sc_3' + 0xb2, // LOAD_FAST 2 + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0x12,0x81,0x6c, // LOAD_GLOBAL '_tmp_sc_3' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'sc_muladd_into' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0xb5, // LOAD_FAST 5 + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0xb5, // LOAD_FAST 5 + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x31, // LOAD_GLOBAL '_gc_iter' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xaf,0x7f, // POP_JUMP_IF_TRUE -81 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0xb0, // LOAD_FAST 0 + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__weighted_inner_product = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_bulletproof__weighted_inner_product, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 193, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 92, + .line_info = fun_data_apps_monero_xmr_bulletproof__weighted_inner_product + 12, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__weighted_inner_product + 29, + .opcodes = fun_data_apps_monero_xmr_bulletproof__weighted_inner_product + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__hadamard_fold +static const byte fun_data_apps_monero_xmr_bulletproof__hadamard_fold[183] = { + 0x8b,0x94,0x80,0x01,0x3c, // prelude + 0x5d,0x82,0x09,0x81,0x11,0x81,0x12,0x81,0x39,0x82,0x0a,0x82,0x0b,0x82,0x0c, // names: _hadamard_fold, v, a, b, into, into_offset, vR, vRoff + 0xc0,0x53,0x80,0x07,0x29,0x29,0x29,0x48,0x27,0x2e,0x3d,0x36,0x2b,0x2c,0x50, // code info + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf6, // BINARY_OP 31 __floordiv__ + 0xc7, // STORE_FAST 7 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0xb3, // LOAD_FAST 3 + 0x42,0x41, // JUMP 1 + 0xb0, // LOAD_FAST 0 + 0xc3, // STORE_FAST 3 + 0xb7, // LOAD_FAST 7 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xe2,0x80, // JUMP 98 + 0x57, // DUP_TOP + 0xc8, // STORE_FAST 8 + 0x12,0x0f, // LOAD_GLOBAL 'decodepoint_into' + 0x12,0x81,0x66, // LOAD_GLOBAL '_tmp_pt_1' + 0xb0, // LOAD_FAST 0 + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'decodepoint_into' + 0x12,0x81,0x67, // LOAD_GLOBAL '_tmp_pt_2' + 0xb5, // LOAD_FAST 5 + 0x43,0x4a, // POP_JUMP_IF_TRUE 10 + 0xb0, // LOAD_FAST 0 + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x42,0x48, // JUMP 8 + 0xb5, // LOAD_FAST 5 + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb8, // LOAD_FAST 8 + 0xb6, // LOAD_FAST 6 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'crypto' + 0x14,0x5b, // LOAD_METHOD 'add_keys3_into' + 0x12,0x81,0x68, // LOAD_GLOBAL '_tmp_pt_3' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x12,0x81,0x66, // LOAD_GLOBAL '_tmp_pt_1' + 0x12,0x81,0x6b, // LOAD_GLOBAL '_tmp_sc_2' + 0x12,0x81,0x67, // LOAD_GLOBAL '_tmp_pt_2' + 0x36,0x05, // CALL_METHOD 5 + 0x59, // POP_TOP + 0x12,0x10, // LOAD_GLOBAL 'encodepoint_into' + 0x12,0x81,0x63, // LOAD_GLOBAL '_tmp_bf_0' + 0x12,0x81,0x68, // LOAD_GLOBAL '_tmp_pt_3' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x5e, // LOAD_METHOD 'read' + 0xb8, // LOAD_FAST 8 + 0xb4, // LOAD_FAST 4 + 0xf2, // BINARY_OP 27 __add__ + 0x12,0x81,0x63, // LOAD_GLOBAL '_tmp_bf_0' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x31, // LOAD_GLOBAL '_gc_iter' + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x98,0x7f, // POP_JUMP_IF_TRUE -104 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__hadamard_fold = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 7, + .fun_data = fun_data_apps_monero_xmr_bulletproof__hadamard_fold, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 183, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 4, + .qstr_block_name_idx = 93, + .line_info = fun_data_apps_monero_xmr_bulletproof__hadamard_fold + 20, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__hadamard_fold + 35, + .opcodes = fun_data_apps_monero_xmr_bulletproof__hadamard_fold + 35, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__hash_cache_mash +static const byte fun_data_apps_monero_xmr_bulletproof__hash_cache_mash[101] = { + 0xe2,0x80,0x80,0x40,0x24, // prelude + 0x5f,0x81,0x71,0x82,0x0d, // names: _hash_cache_mash, dst, hash_cache + 0xc0,0x6b,0x26,0x27,0x47,0x25,0x25,0x26,0x29,0x46,0x29,0x29,0x27, // code info + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x08, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x46, // LOAD_METHOD 'get_keccak' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x14,0x47, // LOAD_METHOD 'update' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x5f, // GET_ITER_STACK + 0x4b,0x15, // FOR_ITER 21 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x42,0x49, // JUMP 9 + 0xb3, // LOAD_FAST 3 + 0x14,0x47, // LOAD_METHOD 'update' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x29, // JUMP -23 + 0xb3, // LOAD_FAST 3 + 0x14,0x48, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc5, // STORE_FAST 5 + 0x12,0x0d, // LOAD_GLOBAL 'decodeint_into' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0xb1, // LOAD_FAST 1 + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x2f, // LOAD_GLOBAL '_copy_key' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__hash_cache_mash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x04, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof__hash_cache_mash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 101, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 4, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 95, + .line_info = fun_data_apps_monero_xmr_bulletproof__hash_cache_mash + 10, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__hash_cache_mash + 23, + .opcodes = fun_data_apps_monero_xmr_bulletproof__hash_cache_mash + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__is_reduced +static const byte fun_data_apps_monero_xmr_bulletproof__is_reduced[25] = { + 0x29,0x0a, // prelude + 0x60,0x82,0x0e, // names: _is_reduced, sc + 0xc0,0x7c, // code info + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0x12,0x81,0x63, // LOAD_GLOBAL '_tmp_bf_0' + 0x12,0x0d, // LOAD_GLOBAL 'decodeint_into' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb0, // LOAD_FAST 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__is_reduced = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_bulletproof__is_reduced, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 96, + .line_info = fun_data_apps_monero_xmr_bulletproof__is_reduced + 5, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__is_reduced + 7, + .opcodes = fun_data_apps_monero_xmr_bulletproof__is_reduced + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_MultiExpSequential +static const byte fun_data_apps_monero_xmr_bulletproof_MultiExpSequential[61] = { + 0x10,0x1a, // prelude + 0x28, // names: MultiExpSequential + 0xcb,0x80,0x80,0x0c,0x8a,0x0f,0x65,0x40,0x64,0x65,0x85,0x08, // code info + 0x11,0x82,0x02, // LOAD_NAME '__name__' + 0x16,0x82,0x03, // STORE_NAME '__module__' + 0x10,0x28, // LOAD_CONST_STRING 'MultiExpSequential' + 0x16,0x82,0x04, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2a,0x03, // BUILD_TUPLE 3 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x65, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x81,0x1e, // STORE_NAME 'get_point' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x64, // STORE_NAME 'add_pair' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x81,0x20, // STORE_NAME 'add_scalar_idx' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x81,0x1f, // STORE_NAME '_acc' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x62, // STORE_NAME 'eval' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_MultiExpSequential +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_MultiExpSequential___init__ +static const byte fun_data_apps_monero_xmr_bulletproof_MultiExpSequential___init__[100] = { + 0xa8,0x85,0x01,0x24, // prelude + 0x65,0x82,0x15,0x67,0x81,0x1a,0x81,0x1b, // names: __init__, self, size, points, point_fnc + 0xc0,0x8f,0x24,0x2a,0x2c,0x25,0x28,0x51,0x44,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x66, // STORE_ATTR 'current_idx' + 0xb1, // LOAD_FAST 1 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0xb1, // LOAD_FAST 1 + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x67, // STORE_ATTR 'size' + 0xb2, // LOAD_FAST 2 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0xb2, // LOAD_FAST 2 + 0x42,0x42, // JUMP 2 + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x1a, // STORE_ATTR 'points' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x1b, // STORE_ATTR 'point_fnc' + 0xb2, // LOAD_FAST 2 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb2, // LOAD_FAST 2 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x42,0x41, // JUMP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x67, // STORE_ATTR 'size' + 0x42,0x44, // JUMP 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x67, // STORE_ATTR 'size' + 0x12,0x12, // LOAD_GLOBAL 'Point' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x1c, // STORE_ATTR 'acc' + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x1d, // STORE_ATTR 'tmp' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_MultiExpSequential___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 100, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 3, + .qstr_block_name_idx = 101, + .line_info = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential___init__ + 12, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential___init__ + 22, + .opcodes = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential___init__ + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_MultiExpSequential +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_MultiExpSequential_get_point +static const byte fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_get_point[40] = { + 0x2a,0x12, // prelude + 0x81,0x1e,0x82,0x15,0x81,0x7d, // names: get_point, self, idx + 0xc0,0x9c,0x20, // code info + 0xb1, // LOAD_FAST 1 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x1a, // LOAD_ATTR 'points' + 0x34,0x01, // CALL_FUNCTION 1 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x1b, // LOAD_METHOD 'point_fnc' + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x1a, // LOAD_ATTR 'points' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_MultiExpSequential_get_point = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_get_point, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 40, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 158, + .line_info = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_get_point + 8, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_get_point + 11, + .opcodes = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_get_point + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_MultiExpSequential +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_MultiExpSequential_add_pair +static const byte fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_add_pair[21] = { + 0x33,0x10, // prelude + 0x64,0x82,0x15,0x7b,0x82,0x27, // names: add_pair, self, scalar, point + 0xc0,0xa1, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x1f, // LOAD_METHOD '_acc' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_MultiExpSequential_add_pair = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_add_pair, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 100, + .line_info = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_add_pair + 8, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_add_pair + 10, + .opcodes = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_add_pair + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_MultiExpSequential +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_MultiExpSequential_add_scalar_idx +static const byte fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_add_scalar_idx[28] = { + 0x43,0x12, // prelude + 0x81,0x20,0x82,0x15,0x7b,0x81,0x7d, // names: add_scalar_idx, self, scalar, idx + 0xc0,0xa4, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x1f, // LOAD_METHOD '_acc' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x1e, // LOAD_METHOD 'get_point' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_MultiExpSequential_add_scalar_idx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_add_scalar_idx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 160, + .line_info = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_add_scalar_idx + 9, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_add_scalar_idx + 11, + .opcodes = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_add_scalar_idx + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_MultiExpSequential +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_MultiExpSequential__acc +static const byte fun_data_apps_monero_xmr_bulletproof_MultiExpSequential__acc[86] = { + 0x3b,0x1c, // prelude + 0x81,0x1f,0x82,0x15,0x7b,0x82,0x27, // names: _acc, self, scalar, point + 0xc0,0xa7,0x29,0x29,0x2e,0x32,0x29, // code info + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'decodepoint_into' + 0x12,0x81,0x67, // LOAD_GLOBAL '_tmp_pt_2' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x17, // LOAD_GLOBAL 'scalarmult_into' + 0x12,0x81,0x68, // LOAD_GLOBAL '_tmp_pt_3' + 0x12,0x81,0x67, // LOAD_GLOBAL '_tmp_pt_2' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'crypto' + 0x14,0x40, // LOAD_METHOD 'point_add_into' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x1c, // LOAD_ATTR 'acc' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x1c, // LOAD_ATTR 'acc' + 0x12,0x81,0x68, // LOAD_GLOBAL '_tmp_pt_3' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x66, // LOAD_ATTR 'current_idx' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x66, // STORE_ATTR 'current_idx' + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x67, // LOAD_ATTR 'size' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x67, // STORE_ATTR 'size' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_MultiExpSequential__acc = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential__acc, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 86, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 159, + .line_info = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential__acc + 9, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential__acc + 16, + .opcodes = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential__acc + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_MultiExpSequential +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_MultiExpSequential_eval +static const byte fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_eval[26] = { + 0x22,0x10, // prelude + 0x62,0x82,0x15,0x81,0x71, // names: eval, self, dst + 0xc0,0xaf,0x26, // code info + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0x12,0x10, // LOAD_GLOBAL 'encodepoint_into' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x1c, // LOAD_ATTR 'acc' + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_MultiExpSequential_eval = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_eval, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 98, + .line_info = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_eval + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_eval + 10, + .opcodes = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential_eval + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_MultiExpSequential[] = { + &raw_code_apps_monero_xmr_bulletproof_MultiExpSequential___init__, + &raw_code_apps_monero_xmr_bulletproof_MultiExpSequential_get_point, + &raw_code_apps_monero_xmr_bulletproof_MultiExpSequential_add_pair, + &raw_code_apps_monero_xmr_bulletproof_MultiExpSequential_add_scalar_idx, + &raw_code_apps_monero_xmr_bulletproof_MultiExpSequential__acc, + &raw_code_apps_monero_xmr_bulletproof_MultiExpSequential_eval, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_MultiExpSequential = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 61, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_MultiExpSequential, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential + 3, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential + 15, + .opcodes = fun_data_apps_monero_xmr_bulletproof_MultiExpSequential + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__multiexp +static const byte fun_data_apps_monero_xmr_bulletproof__multiexp[18] = { + 0xa2,0x80,0x01,0x0e, // prelude + 0x61,0x81,0x71,0x81,0x7b, // names: _multiexp, dst, data + 0xc0,0xb4, // code info + 0xb1, // LOAD_FAST 1 + 0x14,0x62, // LOAD_METHOD 'eval' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__multiexp = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof__multiexp, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 97, + .line_info = fun_data_apps_monero_xmr_bulletproof__multiexp + 9, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__multiexp + 11, + .opcodes = fun_data_apps_monero_xmr_bulletproof__multiexp + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofGenException +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofGenException[18] = { + 0x00,0x06, // prelude + 0x29, // names: BulletProofGenException + 0xcb,0xb8, // code info + 0x11,0x82,0x02, // LOAD_NAME '__name__' + 0x16,0x82,0x03, // STORE_NAME '__module__' + 0x10,0x29, // LOAD_CONST_STRING 'BulletProofGenException' + 0x16,0x82,0x04, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofGenException = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofGenException, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofGenException + 3, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofGenException + 5, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofGenException + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof__compute_LR +static const byte fun_data_apps_monero_xmr_bulletproof__compute_LR[176] = { + 0xb9,0x95,0x04,0x4e, // prelude + 0x63,0x67,0x81,0x21,0x82,0x0f,0x82,0x10,0x82,0x11,0x82,0x12,0x81,0x11,0x82,0x13,0x81,0x12,0x82,0x14,0x81,0x7a,0x70,0x81,0x1d, // names: _compute_LR, size, y, G, G0, H, H0, a, a0, b, b0, c, d, tmp + 0xc0,0xca,0x80,0x08,0x25,0x44,0x27,0x2f,0x2a,0x4d,0x31,0x57,0x30,0x30, // code info + 0x12,0x28, // LOAD_GLOBAL 'MultiExpSequential' + 0x34,0x00, // CALL_FUNCTION 0 + 0xcd, // STORE_FAST 13 + 0xbd, // LOAD_FAST 13 + 0x13,0x64, // LOAD_ATTR 'add_pair' + 0xce, // STORE_FAST 14 + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xc8,0x80, // JUMP 72 + 0x57, // DUP_TOP + 0xcf, // STORE_FAST 15 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbc, // LOAD_FAST 12 + 0xb6, // LOAD_FAST 6 + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb7, // LOAD_FAST 7 + 0xbf, // LOAD_FAST 15 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbc, // LOAD_FAST 12 + 0xbc, // LOAD_FAST 12 + 0x12,0x81,0x5c, // LOAD_GLOBAL '_INV_EIGHT' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0xbc, // LOAD_FAST 12 + 0xb2, // LOAD_FAST 2 + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb3, // LOAD_FAST 3 + 0xbf, // LOAD_FAST 15 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbc, // LOAD_FAST 12 + 0xb8, // LOAD_FAST 8 + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb9, // LOAD_FAST 9 + 0xbf, // LOAD_FAST 15 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x12,0x81,0x5c, // LOAD_GLOBAL '_INV_EIGHT' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0xbc, // LOAD_FAST 12 + 0xb4, // LOAD_FAST 4 + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb5, // LOAD_FAST 5 + 0xbf, // LOAD_FAST 15 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xb2,0x7f, // POP_JUMP_IF_TRUE -78 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbc, // LOAD_FAST 12 + 0xba, // LOAD_FAST 10 + 0x12,0x81,0x5c, // LOAD_GLOBAL '_INV_EIGHT' + 0x34,0x03, // CALL_FUNCTION 3 + 0x12,0x81,0x5e, // LOAD_GLOBAL '_XMR_H' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbc, // LOAD_FAST 12 + 0xbb, // LOAD_FAST 11 + 0x12,0x81,0x5c, // LOAD_GLOBAL '_INV_EIGHT' + 0x34,0x03, // CALL_FUNCTION 3 + 0x12,0x81,0x60, // LOAD_GLOBAL '_XMR_G' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x61, // LOAD_GLOBAL '_multiexp' + 0xbc, // LOAD_FAST 12 + 0xbd, // LOAD_FAST 13 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__compute_LR = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 13, + .fun_data = fun_data_apps_monero_xmr_bulletproof__compute_LR, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 176, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 24, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 13, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 99, + .line_info = fun_data_apps_monero_xmr_bulletproof__compute_LR + 29, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__compute_LR + 43, + .opcodes = fun_data_apps_monero_xmr_bulletproof__compute_LR + 43, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusData +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusData[22] = { + 0x00,0x06, // prelude + 0x2a, // names: BulletProofPlusData + 0xcb,0xe3, // code info + 0x11,0x82,0x02, // LOAD_NAME '__name__' + 0x16,0x82,0x03, // STORE_NAME '__module__' + 0x10,0x2a, // LOAD_CONST_STRING 'BulletProofPlusData' + 0x16,0x82,0x04, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x65, // STORE_NAME '__init__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_BulletProofPlusData +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusData___init__ +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusData___init__[44] = { + 0x11,0x14, // prelude + 0x65,0x82,0x15, // names: __init__, self + 0xc0,0xe4,0x25,0x25,0x25,0x25,0x25, // code info + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x21, // STORE_ATTR 'y' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x22, // STORE_ATTR 'z' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x23, // STORE_ATTR 'e' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x24, // STORE_ATTR 'challenges' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x25, // STORE_ATTR 'logM' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x26, // STORE_ATTR 'inv_offset' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusData___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusData___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 101, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusData___init__ + 5, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusData___init__ + 12, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusData___init__ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_BulletProofPlusData[] = { + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusData___init__, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusData = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusData, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_BulletProofPlusData, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusData + 3, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusData + 5, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusData + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder[106] = { + 0x08,0x32, // prelude + 0x2b, // names: BulletProofPlusBuilder + 0xcb,0xed,0x60,0x60,0x88,0x10,0x64,0x60,0x85,0x15,0x65,0x40,0x65,0x40,0x65,0x85,0x17,0x69,0x20,0x85,0x0d,0x95,0x57,0x65, // code info + 0x11,0x82,0x02, // LOAD_NAME '__name__' + 0x16,0x82,0x03, // STORE_NAME '__module__' + 0x10,0x2b, // LOAD_CONST_STRING 'BulletProofPlusBuilder' + 0x16,0x82,0x04, // STORE_NAME '__qualname__' + 0x52, // LOAD_CONST_TRUE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x65, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x02, // STORE_NAME 'gc' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x81,0x30, // STORE_NAME 'aX_vcts' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x81,0x31, // STORE_NAME '_gprec_aux' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x81,0x32, // STORE_NAME '_hprec_aux' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x81,0x33, // STORE_NAME 'prove' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x81,0x35, // STORE_NAME 'prove_setup' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x07, // MAKE_FUNCTION_DEFARGS 7 + 0x16,0x81,0x37, // STORE_NAME 'prove_setup_aLaR' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x81,0x34, // STORE_NAME 'prove_batch' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x81,0x38, // STORE_NAME '_prove_batch_main' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x81,0x45, // STORE_NAME 'verify' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x81,0x46, // STORE_NAME 'verify_batch' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder___init__ +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder___init__[85] = { + 0xb2,0x01,0x1a, // prelude + 0x65,0x82,0x15,0x81,0x27, // names: __init__, self, save_mem + 0xc0,0xf4,0x65,0x74,0x74,0x25,0x45,0x27, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x27, // STORE_ATTR 'save_mem' + 0x12,0x1f, // LOAD_GLOBAL 'KeyV' + 0x10,0x81,0x28, // LOAD_CONST_STRING 'buffer' + 0x12,0x07, // LOAD_GLOBAL 'crypto' + 0x13,0x81,0x29, // LOAD_ATTR 'BP_PLUS_GI_PRE' + 0x10,0x03, // LOAD_CONST_STRING 'const' + 0x52, // LOAD_CONST_TRUE + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x2a, // STORE_ATTR 'Gprec' + 0x12,0x1f, // LOAD_GLOBAL 'KeyV' + 0x10,0x81,0x28, // LOAD_CONST_STRING 'buffer' + 0x12,0x07, // LOAD_GLOBAL 'crypto' + 0x13,0x81,0x2b, // LOAD_ATTR 'BP_PLUS_HI_PRE' + 0x10,0x03, // LOAD_CONST_STRING 'const' + 0x52, // LOAD_CONST_TRUE + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x2c, // STORE_ATTR 'Hprec' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x2d, // STORE_ATTR 'aL' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x2e, // STORE_ATTR 'aR' + 0x12,0x81,0x53, // LOAD_GLOBAL 'gc_collect' + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x10, // STORE_ATTR 'gc_fnc' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x2f, // STORE_ATTR 'gc_trace' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 85, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 101, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder___init__ + 8, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder___init__ + 16, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder___init__ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder_gc +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_gc[43] = { + 0xa9,0x80,0x80,0x40,0x10, // prelude + 0x02,0x82,0x15, // names: gc, self + 0xd0,0x04,0x26,0x29,0x26, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x2f, // LOAD_ATTR 'gc_trace' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x2f, // LOAD_METHOD 'gc_trace' + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x37,0x01, // CALL_METHOD_VAR_KW 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'gc_fnc' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x10, // LOAD_METHOD 'gc_fnc' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_gc = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x04, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_gc, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 4, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_gc + 8, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_gc + 13, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_gc + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts[116] = { + 0x83,0x10,0xa4,0x81,0x01, // prelude + 0x81,0x30,0x82,0x15,0x82,0x28,0x82,0x29, // names: aX_vcts, self, sv, MN + 0xd0,0x0a,0x29,0x2a,0x2a,0x4a,0x8f,0x0b,0x2e,0x2e,0x01,0x05,0x06,0x07,0x08,0x09, // code info + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0x25,0x01, // LOAD_DEREF 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x27,0x05, // STORE_DEREF 5 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x51, // LOAD_CONST_NONE + 0x12,0x81,0x58, // LOAD_GLOBAL '_ZERO' + 0x34,0x02, // CALL_FUNCTION 2 + 0x27,0x06, // STORE_DEREF 6 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x51, // LOAD_CONST_NONE + 0x12,0x81,0x59, // LOAD_GLOBAL '_ONE' + 0x34,0x02, // CALL_FUNCTION 2 + 0x27,0x07, // STORE_DEREF 7 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x51, // LOAD_CONST_NONE + 0x12,0x81,0x5d, // LOAD_GLOBAL '_MINUS_ONE' + 0x34,0x02, // CALL_FUNCTION 2 + 0x27,0x08, // STORE_DEREF 8 + 0x51, // LOAD_CONST_NONE + 0x52, // LOAD_CONST_TRUE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0x21,0x00,0x05, // MAKE_CLOSURE_DEFARGS 0 + 0x27,0x09, // STORE_DEREF 9 + 0x12,0x20, // LOAD_GLOBAL 'KeyVEval' + 0xb2, // LOAD_FAST 2 + 0xb9, // LOAD_FAST 9 + 0x20,0x01,0x01, // MAKE_CLOSURE 1 + 0x10,0x7a, // LOAD_CONST_STRING 'raw' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0xc3, // STORE_FAST 3 + 0x12,0x20, // LOAD_GLOBAL 'KeyVEval' + 0xb2, // LOAD_FAST 2 + 0xb9, // LOAD_FAST 9 + 0x20,0x02,0x01, // MAKE_CLOSURE 2 + 0x10,0x7a, // LOAD_CONST_STRING 'raw' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts_e_xL +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts_e_xL[101] = { + 0xf0,0x80,0x05,0x34, // prelude + 0x81,0x4b,0x82,0x1e,0x82,0x1e,0x82,0x1e,0x82,0x1e,0x82,0x1e,0x81,0x7d,0x70,0x82,0x31, // names: e_xL, *, *, *, *, *, idx, d, is_a + 0xd0,0x10,0x2d,0x22,0x36,0x4c,0x2a,0x23,0x27, // code info + 0xb5, // LOAD_FAST 5 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xf6, // BINARY_OP 31 __floordiv__ + 0xb5, // LOAD_FAST 5 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xf8, // BINARY_OP 33 __mod__ + 0x5a, // ROT_TWO + 0xc8, // STORE_FAST 8 + 0xc9, // STORE_FAST 9 + 0x51, // LOAD_CONST_NONE + 0xca, // STORE_FAST 10 + 0xb8, // LOAD_FAST 8 + 0x25,0x01, // LOAD_DEREF 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0x25,0x00, // LOAD_DEREF 0 + 0xb8, // LOAD_FAST 8 + 0x55, // LOAD_SUBSCR + 0xb9, // LOAD_FAST 9 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x55, // LOAD_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb9, // LOAD_FAST 9 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf8, // BINARY_OP 33 __mod__ + 0xf0, // BINARY_OP 25 __lshift__ + 0xef, // BINARY_OP 24 __and__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb7, // LOAD_FAST 7 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x25,0x03, // LOAD_DEREF 3 + 0x42,0x42, // JUMP 2 + 0x25,0x02, // LOAD_DEREF 2 + 0xca, // STORE_FAST 10 + 0x42,0x4a, // JUMP 10 + 0xb7, // LOAD_FAST 7 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x25,0x02, // LOAD_DEREF 2 + 0x42,0x42, // JUMP 2 + 0x25,0x04, // LOAD_DEREF 4 + 0xca, // STORE_FAST 10 + 0xb6, // LOAD_FAST 6 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x13, // LOAD_GLOBAL 'sc_copy' + 0xb6, // LOAD_FAST 6 + 0xba, // LOAD_FAST 10 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xba, // LOAD_FAST 10 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts_e_xL = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 8, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts_e_xL, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 101, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 8, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 203, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts_e_xL + 21, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts_e_xL + 30, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts_e_xL + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts__lt_lambda_gt_ +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts__lt_lambda_gt_[19] = { + 0x33,0x12, // prelude + 0x81,0x4c,0x82,0x1e,0x81,0x76,0x70, // names: , *, i, d + 0xd0,0x1a, // code info + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x52, // LOAD_CONST_TRUE + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts__lt_lambda_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts__lt_lambda_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 204, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts__lt_lambda_gt_ + 9, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts__lt_lambda_gt_ + 11, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts__lt_lambda_gt_ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts__lt_lambda_gt_2 +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts__lt_lambda_gt_2[19] = { + 0x33,0x12, // prelude + 0x81,0x4c,0x82,0x1e,0x81,0x76,0x70, // names: , *, i, d + 0xd0,0x1b, // code info + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x50, // LOAD_CONST_FALSE + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts__lt_lambda_gt_2 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts__lt_lambda_gt_2, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 204, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts__lt_lambda_gt_2 + 9, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts__lt_lambda_gt_2 + 11, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts__lt_lambda_gt_2 + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts[] = { + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts_e_xL, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts__lt_lambda_gt_, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts__lt_lambda_gt_2, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 116, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 176, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts + 13, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts + 23, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder__gprec_aux +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__gprec_aux[22] = { + 0x2a,0x10, // prelude + 0x81,0x31,0x82,0x15,0x67, // names: _gprec_aux, self, size + 0xd0,0x1f,0x23, // code info + 0x12,0x21, // LOAD_GLOBAL 'KeyVPrecomp' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x2a, // LOAD_ATTR 'Gprec' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder__gprec_aux +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder__gprec_aux__lt_lambda_gt_ +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__gprec_aux__lt_lambda_gt_[23] = { + 0x32,0x0e, // prelude + 0x81,0x4c,0x81,0x76,0x70, // names: , i, d + 0xd0,0x20, // code info + 0x12,0x49, // LOAD_GLOBAL '_get_exponent_plus' + 0xb1, // LOAD_FAST 1 + 0x12,0x81,0x5e, // LOAD_GLOBAL '_XMR_H' + 0xb0, // LOAD_FAST 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf4, // BINARY_OP 29 __mul__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__gprec_aux__lt_lambda_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__gprec_aux__lt_lambda_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 204, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__gprec_aux__lt_lambda_gt_ + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__gprec_aux__lt_lambda_gt_ + 9, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__gprec_aux__lt_lambda_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__gprec_aux[] = { + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__gprec_aux__lt_lambda_gt_, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__gprec_aux = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__gprec_aux, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__gprec_aux, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 177, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__gprec_aux + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__gprec_aux + 10, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__gprec_aux + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder__hprec_aux +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__hprec_aux[22] = { + 0x2a,0x10, // prelude + 0x81,0x32,0x82,0x15,0x67, // names: _hprec_aux, self, size + 0xd0,0x24,0x23, // code info + 0x12,0x21, // LOAD_GLOBAL 'KeyVPrecomp' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x2c, // LOAD_ATTR 'Hprec' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder__hprec_aux +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder__hprec_aux__lt_lambda_gt_ +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__hprec_aux__lt_lambda_gt_[21] = { + 0x32,0x0e, // prelude + 0x81,0x4c,0x81,0x76,0x70, // names: , i, d + 0xd0,0x25, // code info + 0x12,0x49, // LOAD_GLOBAL '_get_exponent_plus' + 0xb1, // LOAD_FAST 1 + 0x12,0x81,0x5e, // LOAD_GLOBAL '_XMR_H' + 0xb0, // LOAD_FAST 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf4, // BINARY_OP 29 __mul__ + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__hprec_aux__lt_lambda_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__hprec_aux__lt_lambda_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 204, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__hprec_aux__lt_lambda_gt_ + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__hprec_aux__lt_lambda_gt_ + 9, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__hprec_aux__lt_lambda_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__hprec_aux[] = { + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__hprec_aux__lt_lambda_gt_, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__hprec_aux = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__hprec_aux, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__hprec_aux, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 178, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__hprec_aux + 7, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__hprec_aux + 10, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__hprec_aux + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove[25] = { + 0x33,0x14, // prelude + 0x81,0x33,0x82,0x15,0x82,0x28,0x82,0x2a, // names: prove, self, sv, gamma + 0xd0,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x34, // LOAD_METHOD 'prove_batch' + 0xb1, // LOAD_FAST 1 + 0x2b,0x01, // BUILD_LIST 1 + 0xb2, // LOAD_FAST 2 + 0x2b,0x01, // BUILD_LIST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 179, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove + 10, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove + 12, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup[209] = { + 0x73,0x34, // prelude + 0x81,0x35,0x82,0x15,0x82,0x28,0x82,0x2a, // names: prove_setup, self, sv, gamma + 0xd0,0x2c,0x34,0x50,0x26,0x26,0x46,0x26,0x22,0x24,0x33,0x46,0x2c,0x2b,0x31,0x2e,0x53,0x2a, // code info + 0x12,0x1a, // LOAD_GLOBAL 'ensure' + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x23,0x1b, // LOAD_CONST_OBJ 27 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x1a, // LOAD_GLOBAL 'ensure' + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x10,0x81,0x36, // LOAD_CONST_STRING 'sv empty' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x81,0x53, // LOAD_GLOBAL 'gc_collect' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0x32,0x01, // MAKE_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x23,0x1c, // LOAD_CONST_OBJ 28 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0x42,0x48, // JUMP 8 + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc4, // STORE_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb4, // LOAD_FAST 4 + 0xf0, // BINARY_OP 25 __lshift__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb3, // LOAD_FAST 3 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x29, // POP_JUMP_IF_TRUE -23 + 0xb3, // LOAD_FAST 3 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xf4, // BINARY_OP 29 __mul__ + 0xc5, // STORE_FAST 5 + 0x12,0x55, // LOAD_GLOBAL '_ensure_dst_keyvect' + 0x51, // LOAD_CONST_NONE + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc6, // STORE_FAST 6 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x6d, // JUMP 45 + 0x57, // DUP_TOP + 0xc7, // STORE_FAST 7 + 0x12,0x41, // LOAD_GLOBAL '_add_keys2' + 0x12,0x81,0x63, // LOAD_GLOBAL '_tmp_bf_0' + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0xb7, // LOAD_FAST 7 + 0x55, // LOAD_SUBSCR + 0x12,0x81,0x5e, // LOAD_GLOBAL '_XMR_H' + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x12,0x33, // LOAD_GLOBAL '_scalarmult_key' + 0x12,0x81,0x63, // LOAD_GLOBAL '_tmp_bf_0' + 0x12,0x81,0x63, // LOAD_GLOBAL '_tmp_bf_0' + 0x12,0x81,0x5c, // LOAD_GLOBAL '_INV_EIGHT' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x5e, // LOAD_METHOD 'read' + 0xb7, // LOAD_FAST 7 + 0x12,0x81,0x63, // LOAD_GLOBAL '_tmp_bf_0' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x0e, // POP_JUMP_IF_TRUE -50 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x37, // LOAD_METHOD 'prove_setup_aLaR' + 0xb5, // LOAD_FAST 5 + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0xb2, // LOAD_FAST 2 + 0x2a,0x04, // BUILD_TUPLE 4 + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup__lt_listcomp_gt_ +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup__lt_listcomp_gt_[25] = { + 0x41,0x0c, // prelude + 0x81,0x4a,0x82,0x1e, // names: , * + 0xd0,0x30, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc1, // STORE_FAST 1 + 0x12,0x19, // LOAD_GLOBAL 'encodeint' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x34, // JUMP -12 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 202, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup__lt_listcomp_gt_ + 6, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup__lt_listcomp_gt_ + 8, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup__lt_listcomp_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup__lt_listcomp_gt_2 +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup__lt_listcomp_gt_2[25] = { + 0x41,0x0c, // prelude + 0x81,0x4a,0x82,0x1e, // names: , * + 0xd0,0x31, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc1, // STORE_FAST 1 + 0x12,0x19, // LOAD_GLOBAL 'encodeint' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x34, // JUMP -12 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup__lt_listcomp_gt_2 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup__lt_listcomp_gt_2, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 202, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup__lt_listcomp_gt_2 + 6, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup__lt_listcomp_gt_2 + 8, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup__lt_listcomp_gt_2 + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup[] = { + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup__lt_listcomp_gt_, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup__lt_listcomp_gt_2, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 209, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 181, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup + 10, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup + 28, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup_aLaR +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup_aLaR[48] = { + 0xb8,0x05,0x1a, // prelude + 0x81,0x37,0x82,0x15,0x82,0x29,0x82,0x28,0x82,0x2b, // names: prove_setup_aLaR, self, MN, sv, sv_vct + 0xd0,0x43,0x2c, // code info + 0xb3, // LOAD_FAST 3 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0xb3, // LOAD_FAST 3 + 0x42,0x45, // JUMP 5 + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x30, // LOAD_METHOD 'aX_vcts' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x2d, // STORE_ATTR 'aL' + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x2e, // STORE_ATTR 'aR' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup_aLaR +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup_aLaR__lt_listcomp_gt_ +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup_aLaR__lt_listcomp_gt_[25] = { + 0x41,0x0c, // prelude + 0x81,0x4a,0x82,0x1e, // names: , * + 0xd0,0x43, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc1, // STORE_FAST 1 + 0x12,0x19, // LOAD_GLOBAL 'encodeint' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x34, // JUMP -12 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup_aLaR__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup_aLaR__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 202, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup_aLaR__lt_listcomp_gt_ + 6, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup_aLaR__lt_listcomp_gt_ + 8, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup_aLaR__lt_listcomp_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup_aLaR[] = { + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup_aLaR__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup_aLaR = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup_aLaR, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup_aLaR, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 183, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup_aLaR + 13, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup_aLaR + 16, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup_aLaR + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_batch +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_batch[96] = { + 0x7f,0x24, // prelude + 0x81,0x34,0x82,0x15,0x82,0x28,0x82,0x2a, // names: prove_batch, self, sv, gamma + 0xd0,0x47,0x2e,0x25,0x20,0x27,0x22,0x79,0x20,0x2d, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x35, // LOAD_METHOD 'prove_setup' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x30,0x04, // UNPACK_SEQUENCE 4 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0xc2, // STORE_FAST 2 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x14,0x02, // LOAD_METHOD 'gc' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x48,0x12, // SETUP_EXCEPT 18 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x38, // LOAD_METHOD '_prove_batch_main' + 0xb5, // LOAD_FAST 5 + 0xb2, // LOAD_FAST 2 + 0xb6, // LOAD_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0xb3, // LOAD_FAST 3 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x36,0x07, // CALL_METHOD 7 + 0x63, // RETURN_VALUE + 0x4a,0x1a, // POP_EXCEPT_JUMP 26 + 0x57, // DUP_TOP + 0x12,0x29, // LOAD_GLOBAL 'BulletProofGenException' + 0xdf, // BINARY_OP 8 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x37, // LOAD_METHOD 'prove_setup_aLaR' + 0xb3, // LOAD_FAST 3 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xf4, // BINARY_OP 29 __mul__ + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x40,0x44,0x01, // UNWIND_JUMP 4 + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x42,0x09, // JUMP -55 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_batch = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_batch, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 96, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 180, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_batch + 10, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_batch + 20, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_batch + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main[2289] = { + 0xf8,0x90,0x14,0xcb,0x86,0x81,0x01, // prelude + 0x81,0x38,0x82,0x15,0x81,0x3c,0x82,0x2a,0x82,0x0d,0x81,0x25,0x82,0x2c,0x82,0x25,0x81,0x09, // names: _prove_batch_main, self, V, gamma, hash_cache, logM, logN, M, N + 0xd0,0x5d,0x25,0x44,0x47,0x25,0x44,0x25,0x25,0x33,0x6d,0x26,0x26,0x2a,0x22,0x27,0x6e,0x22,0x27,0x6e,0x45,0x26,0x2a,0x2a,0x2f,0x2a,0x31,0x26,0x65,0x2a,0x28,0x25,0x29,0x28,0x25,0x28,0x45,0x29,0x32,0x2e,0x62,0x46,0x6b,0x6e,0x29,0x29,0x2e,0x4d,0x22,0x59,0x46,0x71,0x40,0x4e,0x25,0x29,0x28,0x2f,0x2b,0x2c,0x29,0x2a,0x77,0x2d,0x2d,0x64,0x26,0x26,0x23,0x24,0x24,0x24,0x28,0x28,0x26,0x22,0x23,0x44,0x26,0x26,0x26,0x26,0x23,0x24,0x26,0x65,0x40,0x24,0x78,0x6d,0x40,0x2a,0x26,0x4e,0x22,0x45,0x27,0x87,0x0a,0x7c,0x80,0x0c,0x4a,0x7c,0x80,0x0c,0x2a,0x45,0x32,0x28,0x45,0x29,0x31,0x85,0x07,0x24,0x29,0x76,0x2f,0x4a,0x29,0x31,0x29,0x22,0x45,0x24,0x29,0x77,0x2f,0x4a,0x29,0x72,0x29,0x22,0x65,0x60,0x4a,0x24,0x29,0x3c,0x2f,0x4a,0x2a,0x28,0x30,0x26,0x1f,0x61,0x24,0x49,0x32,0x60,0x45,0x32,0x47,0x28,0x3e,0x28,0x35,0x53,0x25,0x2a,0x68,0x28,0x30,0x26,0x1f,0x62,0x24,0x29,0x45,0x34,0x74,0x26,0x26,0x34,0x54,0x26,0x6d,0x28,0x46,0x26,0x26,0x26,0x46,0x26,0x46,0x36,0x36,0x52,0x2a,0x2b,0x2a,0x2b,0x28,0x31,0x49,0x2a,0x29,0x2a,0x2b,0x4c,0x2c,0x28,0x45,0x2b,0x2f,0x2f,0x2d,0x4d,0x4f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x27, // LOAD_ATTR 'save_mem' + 0xc8, // STORE_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x02, // LOAD_ATTR 'gc' + 0xc9, // STORE_FAST 9 + 0x12,0x45, // LOAD_GLOBAL '_hash_vct_to_scalar' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0xf4, // BINARY_OP 29 __mul__ + 0x27,0x40, // STORE_DEREF 64 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xf2, // BINARY_OP 27 __add__ + 0xca, // STORE_FAST 10 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0xcb, // STORE_FAST 11 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0xcc, // STORE_FAST 12 + 0x12,0x2d, // LOAD_GLOBAL 'memcpy' + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x81,0x61, // LOAD_GLOBAL '_INITIAL_TRANSCRIPT' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0x12,0x81,0x61, // LOAD_GLOBAL '_INITIAL_TRANSCRIPT' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0x12,0x5f, // LOAD_GLOBAL '_hash_cache_mash' + 0xb3, // LOAD_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x12,0x45, // LOAD_GLOBAL '_hash_vct_to_scalar' + 0xbb, // LOAD_FAST 11 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x2d, // LOAD_ATTR 'aL' + 0x27,0x41, // STORE_DEREF 65 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x2e, // LOAD_ATTR 'aR' + 0x27,0x42, // STORE_DEREF 66 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x51, // LOAD_CONST_NONE + 0x12,0x81,0x5c, // LOAD_GLOBAL '_INV_EIGHT' + 0x34,0x02, // CALL_FUNCTION 2 + 0x27,0x43, // STORE_DEREF 67 + 0x12,0x20, // LOAD_GLOBAL 'KeyVEval' + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0x25,0x41, // LOAD_DEREF 65 + 0x34,0x01, // CALL_FUNCTION 1 + 0x24,0x41, // LOAD_FAST_N 65 + 0x24,0x43, // LOAD_FAST_N 67 + 0x20,0x00,0x02, // MAKE_CLOSURE 0 + 0x10,0x7a, // LOAD_CONST_STRING 'raw' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0xcd, // STORE_FAST 13 + 0x12,0x20, // LOAD_GLOBAL 'KeyVEval' + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0x25,0x41, // LOAD_DEREF 65 + 0x34,0x01, // CALL_FUNCTION 1 + 0x24,0x42, // LOAD_FAST_N 66 + 0x24,0x43, // LOAD_FAST_N 67 + 0x20,0x01,0x02, // MAKE_CLOSURE 1 + 0x10,0x7a, // LOAD_CONST_STRING 'raw' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0xce, // STORE_FAST 14 + 0x12,0x38, // LOAD_GLOBAL '_sc_gen' + 0x34,0x00, // CALL_FUNCTION 0 + 0xcf, // STORE_FAST 15 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x10, // STORE_FAST_N 16 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x31, // LOAD_METHOD '_gprec_aux' + 0x25,0x40, // LOAD_DEREF 64 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x11, // STORE_FAST_N 17 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x32, // LOAD_METHOD '_hprec_aux' + 0x25,0x40, // LOAD_DEREF 64 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x12, // STORE_FAST_N 18 + 0x12,0x58, // LOAD_GLOBAL '_vector_exponent_custom' + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x12, // LOAD_FAST_N 18 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x24,0x10, // LOAD_FAST_N 16 + 0xbd, // LOAD_FAST 13 + 0xbe, // LOAD_FAST 14 + 0x34,0x07, // CALL_FUNCTION 7 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbb, // LOAD_FAST 11 + 0xbf, // LOAD_FAST 15 + 0x12,0x81,0x5c, // LOAD_GLOBAL '_INV_EIGHT' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3f, // LOAD_GLOBAL '_add_keys' + 0x24,0x10, // LOAD_FAST_N 16 + 0x24,0x10, // LOAD_FAST_N 16 + 0x12,0x36, // LOAD_GLOBAL '_scalarmult_base' + 0x12,0x81,0x64, // LOAD_GLOBAL '_tmp_bf_1' + 0xbb, // LOAD_FAST 11 + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x28,0x0d, // DELETE_FAST 13 + 0x28,0x0e, // DELETE_FAST 14 + 0x29,0x43, // DELETE_DEREF 67 + 0xb9, // LOAD_FAST 9 + 0x8b, // LOAD_CONST_SMALL_INT 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x5f, // LOAD_GLOBAL '_hash_cache_mash' + 0x51, // LOAD_CONST_NONE + 0xb3, // LOAD_FAST 3 + 0x24,0x10, // LOAD_FAST_N 16 + 0x34,0x03, // CALL_FUNCTION 3 + 0x26,0x13, // STORE_FAST_N 19 + 0x24,0x13, // LOAD_FAST_N 19 + 0x12,0x81,0x58, // LOAD_GLOBAL '_ZERO' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x29, // LOAD_GLOBAL 'BulletProofGenException' + 0x34,0x00, // CALL_FUNCTION 0 + 0x65, // RAISE_OBJ + 0x12,0x43, // LOAD_GLOBAL '_hash_to_scalar' + 0x51, // LOAD_CONST_NONE + 0x24,0x13, // LOAD_FAST_N 19 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x14, // STORE_FAST_N 20 + 0x24,0x14, // LOAD_FAST_N 20 + 0x12,0x81,0x58, // LOAD_GLOBAL '_ZERO' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x29, // LOAD_GLOBAL 'BulletProofGenException' + 0x34,0x00, // CALL_FUNCTION 0 + 0x65, // RAISE_OBJ + 0x12,0x2f, // LOAD_GLOBAL '_copy_key' + 0xb3, // LOAD_FAST 3 + 0x24,0x14, // LOAD_FAST_N 20 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x51, // LOAD_CONST_NONE + 0x24,0x14, // LOAD_FAST_N 20 + 0x34,0x02, // CALL_FUNCTION 2 + 0x27,0x44, // STORE_DEREF 68 + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0x51, // LOAD_CONST_NONE + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x25,0x44, // LOAD_DEREF 68 + 0x25,0x44, // LOAD_DEREF 68 + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x15, // STORE_FAST_N 21 + 0x12,0x24, // LOAD_GLOBAL 'VctD' + 0xb7, // LOAD_FAST 7 + 0xb6, // LOAD_FAST 6 + 0x24,0x15, // LOAD_FAST_N 21 + 0x10,0x7a, // LOAD_CONST_STRING 'raw' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x27,0x45, // STORE_DEREF 69 + 0x28,0x14, // DELETE_FAST 20 + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x00, // CALL_FUNCTION 0 + 0x27,0x46, // STORE_DEREF 70 + 0x24,0x41, // LOAD_FAST_N 65 + 0x24,0x44, // LOAD_FAST_N 68 + 0x24,0x46, // LOAD_FAST_N 70 + 0x20,0x02,0x03, // MAKE_CLOSURE 2 + 0x26,0x16, // STORE_FAST_N 22 + 0x12,0x20, // LOAD_GLOBAL 'KeyVEval' + 0x25,0x40, // LOAD_DEREF 64 + 0x24,0x16, // LOAD_FAST_N 22 + 0x10,0x7a, // LOAD_CONST_STRING 'raw' + 0x50, // LOAD_CONST_FALSE + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x27,0x47, // STORE_DEREF 71 + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x51, // LOAD_CONST_NONE + 0x24,0x13, // LOAD_FAST_N 19 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x17, // STORE_FAST_N 23 + 0x12,0x15, // LOAD_GLOBAL 'sc_inv_into' + 0x51, // LOAD_CONST_NONE + 0x24,0x17, // LOAD_FAST_N 23 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x18, // STORE_FAST_N 24 + 0x12,0x4e, // LOAD_GLOBAL '_sc_square_mult' + 0x12,0x81,0x6e, // LOAD_GLOBAL '_tmp_sc_5' + 0x24,0x17, // LOAD_FAST_N 23 + 0x25,0x40, // LOAD_DEREF 64 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0x12,0x81,0x6e, // LOAD_GLOBAL '_tmp_sc_5' + 0x12,0x81,0x6e, // LOAD_GLOBAL '_tmp_sc_5' + 0x24,0x17, // LOAD_FAST_N 23 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x23, // LOAD_GLOBAL 'KeyVPowersBackwards' + 0x25,0x40, // LOAD_DEREF 64 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x24,0x13, // LOAD_FAST_N 19 + 0x10,0x81,0x04, // LOAD_CONST_STRING 'x_inv' + 0x24,0x18, // LOAD_FAST_N 24 + 0x10,0x81,0x05, // LOAD_CONST_STRING 'x_max' + 0x12,0x81,0x6e, // LOAD_GLOBAL '_tmp_sc_5' + 0x10,0x7a, // LOAD_CONST_STRING 'raw' + 0x52, // LOAD_CONST_TRUE + 0x34,0x86,0x02, // CALL_FUNCTION 770 + 0x27,0x48, // STORE_DEREF 72 + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x00, // CALL_FUNCTION 0 + 0x27,0x49, // STORE_DEREF 73 + 0x24,0x40, // LOAD_FAST_N 64 + 0x24,0x42, // LOAD_FAST_N 66 + 0x24,0x44, // LOAD_FAST_N 68 + 0x24,0x45, // LOAD_FAST_N 69 + 0x24,0x48, // LOAD_FAST_N 72 + 0x24,0x49, // LOAD_FAST_N 73 + 0x20,0x03,0x06, // MAKE_CLOSURE 3 + 0x26,0x19, // STORE_FAST_N 25 + 0x12,0x20, // LOAD_GLOBAL 'KeyVEval' + 0x25,0x40, // LOAD_DEREF 64 + 0x24,0x19, // LOAD_FAST_N 25 + 0x10,0x7a, // LOAD_CONST_STRING 'raw' + 0x50, // LOAD_CONST_FALSE + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x26,0x1a, // STORE_FAST_N 26 + 0xb9, // LOAD_FAST 9 + 0x8d, // LOAD_CONST_SMALL_INT 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x2f, // LOAD_GLOBAL '_copy_key' + 0xbb, // LOAD_FAST 11 + 0x12,0x81,0x59, // LOAD_GLOBAL '_ONE' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x2f, // LOAD_GLOBAL '_copy_key' + 0x51, // LOAD_CONST_NONE + 0xbf, // LOAD_FAST 15 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x1b, // STORE_FAST_N 27 + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0x12,0x81,0x6d, // LOAD_GLOBAL '_tmp_sc_4' + 0x25,0x48, // LOAD_DEREF 72 + 0x13,0x81,0x05, // LOAD_ATTR 'x_max' + 0x24,0x17, // LOAD_FAST_N 23 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0x12,0x81,0x63, // LOAD_GLOBAL '_tmp_bf_0' + 0x12,0x81,0x6d, // LOAD_GLOBAL '_tmp_sc_4' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x66, // JUMP 38 + 0x57, // DUP_TOP + 0x26,0x1c, // STORE_FAST_N 28 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbb, // LOAD_FAST 11 + 0xbb, // LOAD_FAST 11 + 0x24,0x15, // LOAD_FAST_N 21 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbc, // LOAD_FAST 12 + 0x12,0x81,0x63, // LOAD_GLOBAL '_tmp_bf_0' + 0xbb, // LOAD_FAST 11 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3e, // LOAD_GLOBAL '_sc_muladd' + 0x24,0x1b, // LOAD_FAST_N 27 + 0xbc, // LOAD_FAST 12 + 0xb2, // LOAD_FAST 2 + 0x24,0x1c, // LOAD_FAST_N 28 + 0x55, // LOAD_SUBSCR + 0x24,0x1b, // LOAD_FAST_N 27 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x15, // POP_JUMP_IF_TRUE -43 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x4e, // LOAD_GLOBAL '_sc_square_mult' + 0x51, // LOAD_CONST_NONE + 0x24,0x17, // LOAD_FAST_N 23 + 0x25,0x40, // LOAD_DEREF 64 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf1, // BINARY_OP 26 __rshift__ + 0x34,0x03, // CALL_FUNCTION 3 + 0x27,0x4a, // STORE_DEREF 74 + 0x12,0x4e, // LOAD_GLOBAL '_sc_square_mult' + 0x51, // LOAD_CONST_NONE + 0x24,0x18, // LOAD_FAST_N 24 + 0x25,0x40, // LOAD_DEREF 64 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf1, // BINARY_OP 26 __rshift__ + 0x34,0x03, // CALL_FUNCTION 3 + 0x26,0x1d, // STORE_FAST_N 29 + 0x28,0x15, // DELETE_FAST 21 + 0x28,0x0f, // DELETE_FAST 15 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x1e, // STORE_FAST_N 30 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x1f, // STORE_FAST_N 31 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x26,0x20, // STORE_FAST_N 32 + 0x25,0x40, // LOAD_DEREF 64 + 0x27,0x4b, // STORE_DEREF 75 + 0x24,0x11, // LOAD_FAST_N 17 + 0x26,0x21, // STORE_FAST_N 33 + 0x24,0x12, // LOAD_FAST_N 18 + 0x26,0x22, // STORE_FAST_N 34 + 0x12,0x55, // LOAD_GLOBAL '_ensure_dst_keyvect' + 0x51, // LOAD_CONST_NONE + 0xba, // LOAD_FAST 10 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x23, // STORE_FAST_N 35 + 0x12,0x55, // LOAD_GLOBAL '_ensure_dst_keyvect' + 0x51, // LOAD_CONST_NONE + 0xba, // LOAD_FAST 10 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x24, // STORE_FAST_N 36 + 0x12,0x11, // LOAD_GLOBAL 'Scalar' + 0x34,0x00, // CALL_FUNCTION 0 + 0x27,0x4c, // STORE_DEREF 76 + 0x28,0x0a, // DELETE_FAST 10 + 0xb8, // LOAD_FAST 8 + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0x28,0x11, // DELETE_FAST 17 + 0x28,0x12, // DELETE_FAST 18 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x25, // STORE_FAST_N 37 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x26, // STORE_FAST_N 38 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x27, // STORE_FAST_N 39 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x28, // STORE_FAST_N 40 + 0x42,0xbf,0x87, // JUMP 959 + 0x25,0x4b, // LOAD_DEREF 75 + 0x26,0x29, // STORE_FAST_N 41 + 0x25,0x4b, // LOAD_DEREF 75 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe4, // BINARY_OP 13 __irshift__ + 0x27,0x4b, // STORE_DEREF 75 + 0xb9, // LOAD_FAST 9 + 0x96, // LOAD_CONST_SMALL_INT 22 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x5c, // LOAD_GLOBAL '_weighted_inner_product' + 0x24,0x27, // LOAD_FAST_N 39 + 0x25,0x47, // LOAD_DEREF 71 + 0x14,0x6f, // LOAD_METHOD 'slice_view' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x25,0x4b, // LOAD_DEREF 75 + 0x36,0x02, // CALL_METHOD 2 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x14,0x6f, // LOAD_METHOD 'slice_view' + 0x25,0x4b, // LOAD_DEREF 75 + 0x24,0x29, // LOAD_FAST_N 41 + 0x36,0x02, // CALL_METHOD 2 + 0x24,0x13, // LOAD_FAST_N 19 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x24,0x47, // LOAD_FAST_N 71 + 0x24,0x4a, // LOAD_FAST_N 74 + 0x24,0x4b, // LOAD_FAST_N 75 + 0x24,0x4c, // LOAD_FAST_N 76 + 0x20,0x04,0x04, // MAKE_CLOSURE 4 + 0x26,0x2a, // STORE_FAST_N 42 + 0x12,0x20, // LOAD_GLOBAL 'KeyVEval' + 0x25,0x4b, // LOAD_DEREF 75 + 0x24,0x2a, // LOAD_FAST_N 42 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x2b, // STORE_FAST_N 43 + 0x12,0x5c, // LOAD_GLOBAL '_weighted_inner_product' + 0x24,0x28, // LOAD_FAST_N 40 + 0x24,0x2b, // LOAD_FAST_N 43 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x14,0x6f, // LOAD_METHOD 'slice_view' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x25,0x4b, // LOAD_DEREF 75 + 0x36,0x02, // CALL_METHOD 2 + 0x24,0x13, // LOAD_FAST_N 19 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x28,0x2b, // DELETE_FAST 43 + 0xb9, // LOAD_FAST 9 + 0x99, // LOAD_CONST_SMALL_INT 25 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x38, // LOAD_GLOBAL '_sc_gen' + 0x24,0x25, // LOAD_FAST_N 37 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x38, // LOAD_GLOBAL '_sc_gen' + 0x24,0x26, // LOAD_FAST_N 38 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x63, // LOAD_GLOBAL '_compute_LR' + 0x25,0x4b, // LOAD_DEREF 75 + 0x24,0x1d, // LOAD_FAST_N 29 + 0x24,0x21, // LOAD_FAST_N 33 + 0x25,0x4b, // LOAD_DEREF 75 + 0x24,0x22, // LOAD_FAST_N 34 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x25,0x47, // LOAD_DEREF 71 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x25,0x4b, // LOAD_DEREF 75 + 0x24,0x27, // LOAD_FAST_N 39 + 0x24,0x25, // LOAD_FAST_N 37 + 0xbb, // LOAD_FAST 11 + 0x34,0x0d, // CALL_FUNCTION 13 + 0x59, // POP_TOP + 0x24,0x23, // LOAD_FAST_N 35 + 0x14,0x5e, // LOAD_METHOD 'read' + 0x24,0x20, // LOAD_FAST_N 32 + 0xbb, // LOAD_FAST 11 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x63, // LOAD_GLOBAL '_compute_LR' + 0x25,0x4b, // LOAD_DEREF 75 + 0x25,0x4a, // LOAD_DEREF 74 + 0x24,0x21, // LOAD_FAST_N 33 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x24,0x22, // LOAD_FAST_N 34 + 0x25,0x4b, // LOAD_DEREF 75 + 0x25,0x47, // LOAD_DEREF 71 + 0x25,0x4b, // LOAD_DEREF 75 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x24,0x28, // LOAD_FAST_N 40 + 0x24,0x26, // LOAD_FAST_N 38 + 0xbb, // LOAD_FAST 11 + 0x34,0x0d, // CALL_FUNCTION 13 + 0x59, // POP_TOP + 0x24,0x24, // LOAD_FAST_N 36 + 0x14,0x5e, // LOAD_METHOD 'read' + 0x24,0x20, // LOAD_FAST_N 32 + 0xbb, // LOAD_FAST 11 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x9a, // LOAD_CONST_SMALL_INT 26 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x5f, // LOAD_GLOBAL '_hash_cache_mash' + 0x24,0x1e, // LOAD_FAST_N 30 + 0xb3, // LOAD_FAST 3 + 0x24,0x23, // LOAD_FAST_N 35 + 0x24,0x20, // LOAD_FAST_N 32 + 0x55, // LOAD_SUBSCR + 0x24,0x24, // LOAD_FAST_N 36 + 0x24,0x20, // LOAD_FAST_N 32 + 0x55, // LOAD_SUBSCR + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x24,0x1e, // LOAD_FAST_N 30 + 0x12,0x81,0x58, // LOAD_GLOBAL '_ZERO' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x29, // LOAD_GLOBAL 'BulletProofGenException' + 0x34,0x00, // CALL_FUNCTION 0 + 0x65, // RAISE_OBJ + 0x12,0x32, // LOAD_GLOBAL '_invert' + 0x24,0x1f, // LOAD_FAST_N 31 + 0x24,0x1e, // LOAD_FAST_N 30 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbb, // LOAD_FAST 11 + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0x12,0x81,0x63, // LOAD_GLOBAL '_tmp_bf_0' + 0x24,0x1d, // LOAD_FAST_N 29 + 0x34,0x02, // CALL_FUNCTION 2 + 0x24,0x1e, // LOAD_FAST_N 30 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x9b, // LOAD_CONST_SMALL_INT 27 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x24,0x21, // LOAD_FAST_N 33 + 0x26,0x2c, // STORE_FAST_N 44 + 0xb8, // LOAD_FAST 8 + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0x24,0x20, // LOAD_FAST_N 32 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x25, // LOAD_GLOBAL 'KeyHadamardFoldedVct' + 0x24,0x21, // LOAD_FAST_N 33 + 0x24,0x1f, // LOAD_FAST_N 31 + 0xbb, // LOAD_FAST 11 + 0x10,0x81,0x10, // LOAD_CONST_STRING 'gc_fnc' + 0x12,0x31, // LOAD_GLOBAL '_gc_iter' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x26,0x21, // STORE_FAST_N 33 + 0x42,0x5c, // JUMP 28 + 0xb8, // LOAD_FAST 8 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x24,0x20, // LOAD_FAST_N 32 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb8, // LOAD_FAST 8 + 0x43,0x50, // POP_JUMP_IF_TRUE 16 + 0x24,0x20, // LOAD_FAST_N 32 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x1f, // LOAD_GLOBAL 'KeyV' + 0x25,0x4b, // LOAD_DEREF 75 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x2c, // STORE_FAST_N 44 + 0x42,0x40, // JUMP 0 + 0xb8, // LOAD_FAST 8 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x24,0x20, // LOAD_FAST_N 32 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0x12,0x5d, // LOAD_GLOBAL '_hadamard_fold' + 0x24,0x21, // LOAD_FAST_N 33 + 0x24,0x1f, // LOAD_FAST_N 31 + 0xbb, // LOAD_FAST 11 + 0x10,0x81,0x39, // LOAD_CONST_STRING 'into' + 0x24,0x2c, // LOAD_FAST_N 44 + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x26,0x21, // STORE_FAST_N 33 + 0x24,0x21, // LOAD_FAST_N 33 + 0x14,0x57, // LOAD_METHOD 'resize' + 0x25,0x4b, // LOAD_DEREF 75 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x28,0x2c, // DELETE_FAST 44 + 0xb9, // LOAD_FAST 9 + 0x9e, // LOAD_CONST_SMALL_INT 30 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x24,0x22, // LOAD_FAST_N 34 + 0x26,0x2d, // STORE_FAST_N 45 + 0xb8, // LOAD_FAST 8 + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0x24,0x20, // LOAD_FAST_N 32 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x25, // LOAD_GLOBAL 'KeyHadamardFoldedVct' + 0x24,0x22, // LOAD_FAST_N 34 + 0x24,0x1e, // LOAD_FAST_N 30 + 0x24,0x1f, // LOAD_FAST_N 31 + 0x10,0x81,0x10, // LOAD_CONST_STRING 'gc_fnc' + 0x12,0x31, // LOAD_GLOBAL '_gc_iter' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x26,0x22, // STORE_FAST_N 34 + 0x42,0x5c, // JUMP 28 + 0xb8, // LOAD_FAST 8 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x24,0x20, // LOAD_FAST_N 32 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb8, // LOAD_FAST 8 + 0x43,0x50, // POP_JUMP_IF_TRUE 16 + 0x24,0x20, // LOAD_FAST_N 32 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x1f, // LOAD_GLOBAL 'KeyV' + 0x25,0x4b, // LOAD_DEREF 75 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x2d, // STORE_FAST_N 45 + 0x42,0x40, // JUMP 0 + 0xb8, // LOAD_FAST 8 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x24,0x20, // LOAD_FAST_N 32 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x5b, // POP_JUMP_IF_FALSE 27 + 0x12,0x5d, // LOAD_GLOBAL '_hadamard_fold' + 0x24,0x22, // LOAD_FAST_N 34 + 0x24,0x1e, // LOAD_FAST_N 30 + 0x24,0x1f, // LOAD_FAST_N 31 + 0x10,0x81,0x39, // LOAD_CONST_STRING 'into' + 0x24,0x2d, // LOAD_FAST_N 45 + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x26,0x22, // STORE_FAST_N 34 + 0x24,0x22, // LOAD_FAST_N 34 + 0x14,0x57, // LOAD_METHOD 'resize' + 0x25,0x4b, // LOAD_DEREF 75 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x28,0x2d, // DELETE_FAST 45 + 0xb9, // LOAD_FAST 9 + 0x9e, // LOAD_CONST_SMALL_INT 30 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbb, // LOAD_FAST 11 + 0x24,0x1f, // LOAD_FAST_N 31 + 0x25,0x4a, // LOAD_DEREF 74 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x25,0x47, // LOAD_DEREF 71 + 0x26,0x2e, // STORE_FAST_N 46 + 0xb8, // LOAD_FAST 8 + 0x44,0x5f, // POP_JUMP_IF_FALSE 31 + 0x24,0x20, // LOAD_FAST_N 32 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0x12,0x26, // LOAD_GLOBAL 'KeyScalarFoldedVct' + 0x25,0x47, // LOAD_DEREF 71 + 0x10,0x81,0x11, // LOAD_CONST_STRING 'a' + 0x24,0x1e, // LOAD_FAST_N 30 + 0x10,0x81,0x12, // LOAD_CONST_STRING 'b' + 0xbb, // LOAD_FAST 11 + 0x10,0x81,0x10, // LOAD_CONST_STRING 'gc_fnc' + 0x12,0x31, // LOAD_GLOBAL '_gc_iter' + 0x34,0x86,0x01, // CALL_FUNCTION 769 + 0x27,0x47, // STORE_DEREF 71 + 0x42,0x5c, // JUMP 28 + 0xb8, // LOAD_FAST 8 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x24,0x20, // LOAD_FAST_N 32 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb8, // LOAD_FAST 8 + 0x43,0x50, // POP_JUMP_IF_TRUE 16 + 0x24,0x20, // LOAD_FAST_N 32 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x1f, // LOAD_GLOBAL 'KeyV' + 0x25,0x4b, // LOAD_DEREF 75 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x2e, // STORE_FAST_N 46 + 0x42,0x40, // JUMP 0 + 0xb8, // LOAD_FAST 8 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x24,0x20, // LOAD_FAST_N 32 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0xcb,0x80, // POP_JUMP_IF_FALSE 75 + 0x25,0x4b, // LOAD_DEREF 75 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x72, // JUMP 50 + 0x57, // DUP_TOP + 0x26,0x2f, // STORE_FAST_N 47 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbc, // LOAD_FAST 12 + 0x25,0x47, // LOAD_DEREF 71 + 0x14,0x5a, // LOAD_METHOD 'to' + 0x24,0x2f, // LOAD_FAST_N 47 + 0x36,0x01, // CALL_METHOD 1 + 0x24,0x1e, // LOAD_FAST_N 30 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x24,0x2e, // LOAD_FAST_N 46 + 0x14,0x5e, // LOAD_METHOD 'read' + 0x24,0x2f, // LOAD_FAST_N 47 + 0x12,0x3e, // LOAD_GLOBAL '_sc_muladd' + 0x12,0x81,0x63, // LOAD_GLOBAL '_tmp_bf_0' + 0x25,0x47, // LOAD_DEREF 71 + 0x14,0x5a, // LOAD_METHOD 'to' + 0x24,0x2f, // LOAD_FAST_N 47 + 0x25,0x4b, // LOAD_DEREF 75 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0xbb, // LOAD_FAST 11 + 0xbc, // LOAD_FAST 12 + 0x34,0x04, // CALL_FUNCTION 4 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x09, // POP_JUMP_IF_TRUE -55 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x24,0x2e, // LOAD_FAST_N 46 + 0x27,0x47, // STORE_DEREF 71 + 0x25,0x47, // LOAD_DEREF 71 + 0x14,0x57, // LOAD_METHOD 'resize' + 0x25,0x4b, // LOAD_DEREF 75 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x24,0x20, // LOAD_FAST_N 32 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb8, // LOAD_FAST 8 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0x24,0x20, // LOAD_FAST_N 32 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x40, // POP_JUMP_IF_FALSE 0 + 0xb9, // LOAD_FAST 9 + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x24,0x20, // LOAD_FAST_N 32 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x1f, // LOAD_GLOBAL 'KeyV' + 0x25,0x4b, // LOAD_DEREF 75 + 0x34,0x01, // CALL_FUNCTION 1 + 0x42,0x42, // JUMP 2 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x26,0x30, // STORE_FAST_N 48 + 0x24,0x20, // LOAD_FAST_N 32 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xed,0x80, // POP_JUMP_IF_FALSE 109 + 0x25,0x4b, // LOAD_DEREF 75 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x5a, // JUMP 26 + 0x57, // DUP_TOP + 0x26,0x2f, // STORE_FAST_N 47 + 0x24,0x30, // LOAD_FAST_N 48 + 0x14,0x5e, // LOAD_METHOD 'read' + 0x24,0x2f, // LOAD_FAST_N 47 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbb, // LOAD_FAST 11 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x24,0x2f, // LOAD_FAST_N 47 + 0x55, // LOAD_SUBSCR + 0x24,0x1f, // LOAD_FAST_N 31 + 0x34,0x03, // CALL_FUNCTION 3 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x21, // POP_JUMP_IF_TRUE -31 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x25,0x4b, // LOAD_DEREF 75 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x64, // JUMP 36 + 0x57, // DUP_TOP + 0x26,0x2f, // STORE_FAST_N 47 + 0x12,0x3e, // LOAD_GLOBAL '_sc_muladd' + 0xbb, // LOAD_FAST 11 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x24,0x2f, // LOAD_FAST_N 47 + 0x25,0x4b, // LOAD_DEREF 75 + 0xf2, // BINARY_OP 27 __add__ + 0x55, // LOAD_SUBSCR + 0x24,0x1e, // LOAD_FAST_N 30 + 0x24,0x30, // LOAD_FAST_N 48 + 0x24,0x2f, // LOAD_FAST_N 47 + 0x55, // LOAD_SUBSCR + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x24,0x30, // LOAD_FAST_N 48 + 0x14,0x5e, // LOAD_METHOD 'read' + 0x24,0x2f, // LOAD_FAST_N 47 + 0xbb, // LOAD_FAST 11 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x17, // POP_JUMP_IF_TRUE -41 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x2e, // STORE_ATTR 'aR' + 0x28,0x19, // DELETE_FAST 25 + 0x29,0x49, // DELETE_DEREF 73 + 0x29,0x42, // DELETE_DEREF 66 + 0x29,0x45, // DELETE_DEREF 69 + 0x29,0x48, // DELETE_DEREF 72 + 0xb9, // LOAD_FAST 9 + 0x9f, // LOAD_CONST_SMALL_INT 31 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0xbf,0x80, // JUMP 63 + 0x25,0x4b, // LOAD_DEREF 75 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x73, // JUMP 51 + 0x57, // DUP_TOP + 0x26,0x2f, // STORE_FAST_N 47 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbc, // LOAD_FAST 12 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x14,0x5a, // LOAD_METHOD 'to' + 0x24,0x2f, // LOAD_FAST_N 47 + 0x36,0x01, // CALL_METHOD 1 + 0x24,0x1f, // LOAD_FAST_N 31 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x24,0x30, // LOAD_FAST_N 48 + 0x14,0x5e, // LOAD_METHOD 'read' + 0x24,0x2f, // LOAD_FAST_N 47 + 0x12,0x3e, // LOAD_GLOBAL '_sc_muladd' + 0x12,0x81,0x63, // LOAD_GLOBAL '_tmp_bf_0' + 0x24,0x1a, // LOAD_FAST_N 26 + 0x14,0x5a, // LOAD_METHOD 'to' + 0x24,0x2f, // LOAD_FAST_N 47 + 0x25,0x4b, // LOAD_DEREF 75 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x24,0x1e, // LOAD_FAST_N 30 + 0xbc, // LOAD_FAST 12 + 0x34,0x04, // CALL_FUNCTION 4 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x08, // POP_JUMP_IF_TRUE -56 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x24,0x30, // LOAD_FAST_N 48 + 0x26,0x1a, // STORE_FAST_N 26 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x14,0x57, // LOAD_METHOD 'resize' + 0x25,0x4b, // LOAD_DEREF 75 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x3e, // LOAD_GLOBAL '_sc_muladd' + 0x24,0x1b, // LOAD_FAST_N 27 + 0x24,0x25, // LOAD_FAST_N 37 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbb, // LOAD_FAST 11 + 0x24,0x1e, // LOAD_FAST_N 30 + 0x24,0x1e, // LOAD_FAST_N 30 + 0x34,0x03, // CALL_FUNCTION 3 + 0x24,0x1b, // LOAD_FAST_N 27 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x12,0x3e, // LOAD_GLOBAL '_sc_muladd' + 0x24,0x1b, // LOAD_FAST_N 27 + 0x24,0x26, // LOAD_FAST_N 38 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbb, // LOAD_FAST 11 + 0x24,0x1f, // LOAD_FAST_N 31 + 0x24,0x1f, // LOAD_FAST_N 31 + 0x34,0x03, // CALL_FUNCTION 3 + 0x24,0x1b, // LOAD_FAST_N 27 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x25,0x4b, // LOAD_DEREF 75 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf1, // BINARY_OP 26 __rshift__ + 0x26,0x31, // STORE_FAST_N 49 + 0x24,0x31, // LOAD_FAST_N 49 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x68, // POP_JUMP_IF_FALSE 40 + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0x25,0x4a, // LOAD_DEREF 74 + 0x25,0x4a, // LOAD_DEREF 74 + 0x12,0x4e, // LOAD_GLOBAL '_sc_square_mult' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x24,0x18, // LOAD_FAST_N 24 + 0x24,0x31, // LOAD_FAST_N 49 + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0x24,0x1d, // LOAD_FAST_N 29 + 0x24,0x1d, // LOAD_FAST_N 29 + 0x12,0x4e, // LOAD_GLOBAL '_sc_square_mult' + 0x12,0x81,0x6a, // LOAD_GLOBAL '_tmp_sc_1' + 0x24,0x17, // LOAD_FAST_N 23 + 0x24,0x31, // LOAD_FAST_N 49 + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x22,0x31, // LOAD_CONST_SMALL_INT 49 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x24,0x20, // LOAD_FAST_N 32 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x26,0x20, // STORE_FAST_N 32 + 0x25,0x4b, // LOAD_DEREF 75 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0xba,0x78, // POP_JUMP_IF_TRUE -966 + 0x28,0x27, // DELETE_FAST 39 + 0x28,0x28, // DELETE_FAST 40 + 0x28,0x25, // DELETE_FAST 37 + 0x28,0x26, // DELETE_FAST 38 + 0xb9, // LOAD_FAST 9 + 0x22,0x32, // LOAD_CONST_SMALL_INT 50 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x38, // LOAD_GLOBAL '_sc_gen' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x32, // STORE_FAST_N 50 + 0x12,0x38, // LOAD_GLOBAL '_sc_gen' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x33, // STORE_FAST_N 51 + 0x12,0x38, // LOAD_GLOBAL '_sc_gen' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x34, // STORE_FAST_N 52 + 0x12,0x38, // LOAD_GLOBAL '_sc_gen' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x35, // STORE_FAST_N 53 + 0x12,0x28, // LOAD_GLOBAL 'MultiExpSequential' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x36, // STORE_FAST_N 54 + 0x24,0x36, // LOAD_FAST_N 54 + 0x13,0x64, // LOAD_ATTR 'add_pair' + 0x26,0x37, // STORE_FAST_N 55 + 0x24,0x37, // LOAD_FAST_N 55 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbb, // LOAD_FAST 11 + 0x24,0x32, // LOAD_FAST_N 50 + 0x12,0x81,0x5c, // LOAD_GLOBAL '_INV_EIGHT' + 0x34,0x03, // CALL_FUNCTION 3 + 0x24,0x21, // LOAD_FAST_N 33 + 0x14,0x5a, // LOAD_METHOD 'to' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x24,0x37, // LOAD_FAST_N 55 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbb, // LOAD_FAST 11 + 0x24,0x33, // LOAD_FAST_N 51 + 0x12,0x81,0x5c, // LOAD_GLOBAL '_INV_EIGHT' + 0x34,0x03, // CALL_FUNCTION 3 + 0x24,0x22, // LOAD_FAST_N 34 + 0x14,0x5a, // LOAD_METHOD 'to' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x24,0x37, // LOAD_FAST_N 55 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbb, // LOAD_FAST 11 + 0x24,0x34, // LOAD_FAST_N 52 + 0x12,0x81,0x5c, // LOAD_GLOBAL '_INV_EIGHT' + 0x34,0x03, // CALL_FUNCTION 3 + 0x12,0x81,0x60, // LOAD_GLOBAL '_XMR_G' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbb, // LOAD_FAST 11 + 0x24,0x32, // LOAD_FAST_N 50 + 0x24,0x13, // LOAD_FAST_N 19 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbb, // LOAD_FAST 11 + 0xbb, // LOAD_FAST 11 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbc, // LOAD_FAST 12 + 0x24,0x33, // LOAD_FAST_N 51 + 0x24,0x13, // LOAD_FAST_N 19 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbc, // LOAD_FAST 12 + 0xbc, // LOAD_FAST 12 + 0x25,0x47, // LOAD_DEREF 71 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x39, // LOAD_GLOBAL '_sc_add' + 0xbb, // LOAD_FAST 11 + 0xbb, // LOAD_FAST 11 + 0xbc, // LOAD_FAST 12 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x24,0x37, // LOAD_FAST_N 55 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbc, // LOAD_FAST 12 + 0xbb, // LOAD_FAST 11 + 0x12,0x81,0x5c, // LOAD_GLOBAL '_INV_EIGHT' + 0x34,0x03, // CALL_FUNCTION 3 + 0x12,0x81,0x5e, // LOAD_GLOBAL '_XMR_H' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x61, // LOAD_GLOBAL '_multiexp' + 0x51, // LOAD_CONST_NONE + 0x24,0x36, // LOAD_FAST_N 54 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x38, // STORE_FAST_N 56 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbb, // LOAD_FAST 11 + 0x24,0x32, // LOAD_FAST_N 50 + 0x24,0x13, // LOAD_FAST_N 19 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbb, // LOAD_FAST 11 + 0xbb, // LOAD_FAST 11 + 0x24,0x33, // LOAD_FAST_N 51 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbb, // LOAD_FAST 11 + 0xbb, // LOAD_FAST 11 + 0x12,0x81,0x5c, // LOAD_GLOBAL '_INV_EIGHT' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xbc, // LOAD_FAST 12 + 0x24,0x35, // LOAD_FAST_N 53 + 0x12,0x81,0x5c, // LOAD_GLOBAL '_INV_EIGHT' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x41, // LOAD_GLOBAL '_add_keys2' + 0x51, // LOAD_CONST_NONE + 0xbc, // LOAD_FAST 12 + 0xbb, // LOAD_FAST 11 + 0x12,0x81,0x5e, // LOAD_GLOBAL '_XMR_H' + 0x34,0x04, // CALL_FUNCTION 4 + 0x26,0x39, // STORE_FAST_N 57 + 0x12,0x5f, // LOAD_GLOBAL '_hash_cache_mash' + 0x51, // LOAD_CONST_NONE + 0xb3, // LOAD_FAST 3 + 0x24,0x38, // LOAD_FAST_N 56 + 0x24,0x39, // LOAD_FAST_N 57 + 0x34,0x04, // CALL_FUNCTION 4 + 0x26,0x3a, // STORE_FAST_N 58 + 0x24,0x3a, // LOAD_FAST_N 58 + 0x12,0x81,0x58, // LOAD_GLOBAL '_ZERO' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x29, // LOAD_GLOBAL 'BulletProofGenException' + 0x34,0x00, // CALL_FUNCTION 0 + 0x65, // RAISE_OBJ + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x51, // LOAD_CONST_NONE + 0x24,0x3a, // LOAD_FAST_N 58 + 0x24,0x3a, // LOAD_FAST_N 58 + 0x34,0x03, // CALL_FUNCTION 3 + 0x26,0x3b, // STORE_FAST_N 59 + 0x12,0x3e, // LOAD_GLOBAL '_sc_muladd' + 0x51, // LOAD_CONST_NONE + 0x25,0x47, // LOAD_DEREF 71 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x24,0x3a, // LOAD_FAST_N 58 + 0x24,0x32, // LOAD_FAST_N 50 + 0x34,0x04, // CALL_FUNCTION 4 + 0x26,0x3c, // STORE_FAST_N 60 + 0x12,0x3e, // LOAD_GLOBAL '_sc_muladd' + 0x51, // LOAD_CONST_NONE + 0x24,0x1a, // LOAD_FAST_N 26 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x24,0x3a, // LOAD_FAST_N 58 + 0x24,0x33, // LOAD_FAST_N 51 + 0x34,0x04, // CALL_FUNCTION 4 + 0x26,0x3d, // STORE_FAST_N 61 + 0x12,0x3e, // LOAD_GLOBAL '_sc_muladd' + 0x51, // LOAD_CONST_NONE + 0x24,0x34, // LOAD_FAST_N 52 + 0x24,0x3a, // LOAD_FAST_N 58 + 0x24,0x35, // LOAD_FAST_N 53 + 0x34,0x04, // CALL_FUNCTION 4 + 0x26,0x3e, // STORE_FAST_N 62 + 0x12,0x3e, // LOAD_GLOBAL '_sc_muladd' + 0x24,0x3e, // LOAD_FAST_N 62 + 0x24,0x1b, // LOAD_FAST_N 27 + 0x24,0x3b, // LOAD_FAST_N 59 + 0x24,0x3e, // LOAD_FAST_N 62 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x81,0x3a, // LOAD_CONST_STRING 'BulletproofPlus' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x81,0x3b, // IMPORT_NAME 'serialize_messages.tx_rsig_bulletproof' + 0x1c,0x81,0x3a, // IMPORT_FROM 'BulletproofPlus' + 0x26,0x3f, // STORE_FAST_N 63 + 0x59, // POP_TOP + 0x24,0x3f, // LOAD_FAST_N 63 + 0x10,0x81,0x3c, // LOAD_CONST_STRING 'V' + 0xb1, // LOAD_FAST 1 + 0x10,0x81,0x3d, // LOAD_CONST_STRING 'A' + 0x24,0x10, // LOAD_FAST_N 16 + 0x10,0x81,0x3e, // LOAD_CONST_STRING 'A1' + 0x24,0x38, // LOAD_FAST_N 56 + 0x10,0x81,0x3f, // LOAD_CONST_STRING 'B' + 0x24,0x39, // LOAD_FAST_N 57 + 0x10,0x81,0x40, // LOAD_CONST_STRING 'r1' + 0x24,0x3c, // LOAD_FAST_N 60 + 0x10,0x81,0x41, // LOAD_CONST_STRING 's1' + 0x24,0x3d, // LOAD_FAST_N 61 + 0x10,0x81,0x42, // LOAD_CONST_STRING 'd1' + 0x24,0x3e, // LOAD_FAST_N 62 + 0x10,0x81,0x43, // LOAD_CONST_STRING 'L' + 0x24,0x23, // LOAD_FAST_N 35 + 0x10,0x81,0x44, // LOAD_CONST_STRING 'R' + 0x24,0x24, // LOAD_FAST_N 36 + 0x34,0x92,0x00, // CALL_FUNCTION 2304 + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main__lt_lambda_gt_ +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main__lt_lambda_gt_[26] = { + 0xb8,0x04,0x16, // prelude + 0x81,0x4c,0x82,0x1e,0x82,0x1e,0x81,0x76,0x70, // names: , *, *, i, d + 0xd0,0x70, // code info + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0xb3, // LOAD_FAST 3 + 0x25,0x00, // LOAD_DEREF 0 + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0x25,0x01, // LOAD_DEREF 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main__lt_lambda_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main__lt_lambda_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 204, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main__lt_lambda_gt_ + 12, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main__lt_lambda_gt_ + 14, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main__lt_lambda_gt_ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main__lt_lambda_gt_2 +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main__lt_lambda_gt_2[26] = { + 0xb8,0x04,0x16, // prelude + 0x81,0x4c,0x82,0x1e,0x82,0x1e,0x81,0x76,0x70, // names: , *, *, i, d + 0xd0,0x75, // code info + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0xb3, // LOAD_FAST 3 + 0x25,0x00, // LOAD_DEREF 0 + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0x25,0x01, // LOAD_DEREF 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main__lt_lambda_gt_2 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main__lt_lambda_gt_2, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 204, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main__lt_lambda_gt_2 + 12, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main__lt_lambda_gt_2 + 14, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main__lt_lambda_gt_2 + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_aL1_fnc +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_aL1_fnc[39] = { + 0xe1,0x04,0x1a, // prelude + 0x81,0x4d,0x82,0x1e,0x82,0x1e,0x82,0x1e,0x81,0x76,0x70, // names: aL1_fnc, *, *, *, i, d + 0xd0,0x96, // code info + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0xb4, // LOAD_FAST 4 + 0x12,0x07, // LOAD_GLOBAL 'crypto' + 0x14,0x3c, // LOAD_METHOD 'sc_sub_into' + 0x25,0x02, // LOAD_DEREF 2 + 0x25,0x00, // LOAD_DEREF 0 + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x25,0x01, // LOAD_DEREF 1 + 0x36,0x03, // CALL_METHOD 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_aL1_fnc = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_aL1_fnc, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 205, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_aL1_fnc + 14, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_aL1_fnc + 16, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_aL1_fnc + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_aR1_fnc +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_aR1_fnc[71] = { + 0xe8,0x80,0x04,0x2a, // prelude + 0x81,0x4e,0x82,0x1e,0x82,0x1e,0x82,0x1e,0x82,0x1e,0x82,0x1e,0x82,0x1e,0x81,0x76,0x70, // names: aR1_fnc, *, *, *, *, *, *, i, d + 0xd0,0xa6,0x32,0x34, // code info + 0x12,0x07, // LOAD_GLOBAL 'crypto' + 0x14,0x3a, // LOAD_METHOD 'sc_add_into' + 0x25,0x05, // LOAD_DEREF 5 + 0x25,0x01, // LOAD_DEREF 1 + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x25,0x02, // LOAD_DEREF 2 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'sc_muladd_into' + 0x25,0x05, // LOAD_DEREF 5 + 0x25,0x03, // LOAD_DEREF 3 + 0xb6, // LOAD_FAST 6 + 0x55, // LOAD_SUBSCR + 0x25,0x04, // LOAD_DEREF 4 + 0x25,0x00, // LOAD_DEREF 0 + 0xb6, // LOAD_FAST 6 + 0xf3, // BINARY_OP 28 __sub__ + 0x55, // LOAD_SUBSCR + 0x25,0x05, // LOAD_DEREF 5 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0xb7, // LOAD_FAST 7 + 0x25,0x05, // LOAD_DEREF 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_aR1_fnc = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 8, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_aR1_fnc, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 71, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 8, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 206, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_aR1_fnc + 21, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_aR1_fnc + 25, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_aR1_fnc + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_vec_sc_fnc +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_vec_sc_fnc[58] = { + 0xda,0x04,0x22, // prelude + 0x81,0x4f,0x82,0x1e,0x82,0x1e,0x82,0x1e,0x82,0x1e,0x81,0x76,0x70, // names: vec_sc_fnc, *, *, *, *, i, d + 0xd0,0xda,0x31,0x2b, // code info + 0x12,0x0c, // LOAD_GLOBAL 'decodeint_into_noreduce' + 0x25,0x03, // LOAD_DEREF 3 + 0x25,0x00, // LOAD_DEREF 0 + 0x14,0x5a, // LOAD_METHOD 'to' + 0xb4, // LOAD_FAST 4 + 0x25,0x02, // LOAD_DEREF 2 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x14, // LOAD_GLOBAL 'sc_mul_into' + 0x25,0x03, // LOAD_DEREF 3 + 0x25,0x03, // LOAD_DEREF 3 + 0x25,0x01, // LOAD_DEREF 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'encodeint_into' + 0xb5, // LOAD_FAST 5 + 0x25,0x03, // LOAD_DEREF 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_vec_sc_fnc = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 6, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_vec_sc_fnc, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 58, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 207, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_vec_sc_fnc + 16, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_vec_sc_fnc + 20, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_vec_sc_fnc + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main[] = { + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main__lt_lambda_gt_, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main__lt_lambda_gt_2, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_aL1_fnc, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_aR1_fnc, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main_vec_sc_fnc, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 8, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 2289, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 96, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 8, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 184, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main + 25, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main + 236, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main + 249, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify[20] = { + 0x22,0x10, // prelude + 0x81,0x45,0x82,0x15,0x82,0x2d, // names: verify, self, proof + 0xe0,0xab, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x46, // LOAD_METHOD 'verify_batch' + 0xb1, // LOAD_FAST 1 + 0x2b,0x01, // BUILD_LIST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 197, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify + 8, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify + 10, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify_batch +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify_batch[2225] = { + 0x8a,0x90,0x10,0xca,0x07, // prelude + 0x81,0x46,0x82,0x15,0x82,0x2e, // names: verify_batch, self, proofs + 0xe0,0xae,0x60,0x44,0x22,0x26,0x20,0x2c,0x2c,0x2c,0x2f,0x38,0x58,0x29,0x53,0x2a,0x45,0x22,0x24,0x45,0x22,0x22,0x22,0x42,0x23,0x22,0x2e,0x26,0x30,0x2c,0x26,0x68,0x2a,0x52,0x30,0x27,0x2f,0x2c,0x27,0x69,0x26,0x20,0x29,0x34,0x22,0x2e,0x27,0x29,0x26,0x6b,0x2c,0x28,0x22,0x1f,0x43,0x3d,0x67,0x34,0x27,0x6e,0x26,0x27,0x28,0x2c,0x4d,0x29,0x24,0x27,0x48,0x27,0x45,0x2a,0x25,0x66,0x2a,0x2a,0x26,0x26,0x25,0x6c,0x27,0x22,0x85,0x10,0x2a,0x6a,0x20,0x23,0x26,0x25,0x26,0x46,0x35,0x26,0x26,0x2a,0x22,0x6f,0x40,0x29,0x27,0x24,0x22,0x2b,0x4c,0x6b,0x27,0x4b,0x27,0x4b,0x2b,0x29,0x49,0x2f,0x49,0x7c,0x2b,0x70,0x29,0x70,0x2a,0x71,0x2f,0x65,0x60,0x6b,0x27,0x27,0x6e,0x20,0x2b,0x2a,0x49,0x2b,0x2b,0x29,0x29,0x2d,0x2d,0x29,0x6c,0x26,0x6b,0x2a,0x85,0x10,0x23,0x2b,0x4b,0x29,0x48,0x29,0x28,0x2a,0x46,0x45,0x27,0x6a,0x24,0x24,0x45,0x27,0x1f,0x61,0x20,0x27,0x66,0x75,0x40,0x25,0x26,0x2d,0x2b,0x26,0x2d,0x2b,0x26,0x2b,0x2b,0x26,0x2c,0x26,0x2c,0x2b,0x4b,0x26,0x26,0x29,0x28,0x25,0x69,0x30,0x66,0x70,0x40,0x70,0x20,0x2e,0x70,0x2b,0x35,0x24,0x65,0x20,0x29,0x30,0x29,0x53,0x36,0x29,0x3d,0x27,0x25,0x22,0x65,0x2a,0x6a,0x40,0x29,0x2a,0x4b,0x28,0x48,0x40,0x41, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x02, // LOAD_ATTR 'gc' + 0xc2, // STORE_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x80,0x01, // FOR_ITER 128 + 0xc4, // STORE_FAST 4 + 0x12,0x60, // LOAD_GLOBAL '_is_reduced' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x40, // LOAD_ATTR 'r1' + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x1d, // LOAD_CONST_OBJ 29 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x12,0x60, // LOAD_GLOBAL '_is_reduced' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x41, // LOAD_ATTR 's1' + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x1d, // LOAD_CONST_OBJ 29 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x12,0x60, // LOAD_GLOBAL '_is_reduced' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x42, // LOAD_ATTR 'd1' + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x1d, // LOAD_CONST_OBJ 29 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x3c, // LOAD_ATTR 'V' + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xdb, // BINARY_OP 4 __ge__ + 0x23,0x1e, // LOAD_CONST_OBJ 30 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x43, // LOAD_ATTR 'L' + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x44, // LOAD_ATTR 'R' + 0x34,0x01, // CALL_FUNCTION 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x10,0x81,0x47, // LOAD_CONST_STRING '|L| != |R|' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x43, // LOAD_ATTR 'L' + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x23,0x1f, // LOAD_CONST_OBJ 31 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x06, // BUILD_TUPLE 6 + 0x5f, // GET_ITER_STACK + 0x4b,0x0d, // FOR_ITER 13 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc5, // STORE_FAST 5 + 0xc6, // STORE_FAST 6 + 0x12,0x1a, // LOAD_GLOBAL 'ensure' + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x31, // JUMP -15 + 0x12,0x82,0x2f, // LOAD_GLOBAL 'max' + 0xb3, // LOAD_FAST 3 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x43, // LOAD_ATTR 'L' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc3, // STORE_FAST 3 + 0x42,0xfd,0x7e, // JUMP -131 + 0x12,0x1a, // LOAD_GLOBAL 'ensure' + 0xb3, // LOAD_FAST 3 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xd7, // BINARY_OP 0 __lt__ + 0x23,0x20, // LOAD_CONST_OBJ 32 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x86, // LOAD_CONST_SMALL_INT 6 + 0xc7, // STORE_FAST 7 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb7, // LOAD_FAST 7 + 0xf0, // BINARY_OP 25 __lshift__ + 0xc8, // STORE_FAST 8 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc9, // STORE_FAST 9 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc3, // STORE_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xca, // STORE_FAST 10 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xcb, // STORE_FAST 11 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xcc, // STORE_FAST 12 + 0x2b,0x00, // BUILD_LIST 0 + 0xcd, // STORE_FAST 13 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xce, // STORE_FAST 14 + 0x12,0x55, // LOAD_GLOBAL '_ensure_dst_keyvect' + 0x51, // LOAD_CONST_NONE + 0x8b, // LOAD_CONST_SMALL_INT 11 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf4, // BINARY_OP 29 __mul__ + 0x34,0x02, // CALL_FUNCTION 2 + 0xcf, // STORE_FAST 15 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0xac,0x03, // FOR_ITER 428 + 0xc4, // STORE_FAST 4 + 0x12,0x82,0x2f, // LOAD_GLOBAL 'max' + 0xb3, // LOAD_FAST 3 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x43, // LOAD_ATTR 'L' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc3, // STORE_FAST 3 + 0xba, // LOAD_FAST 10 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x3c, // LOAD_ATTR 'V' + 0x34,0x01, // CALL_FUNCTION 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xca, // STORE_FAST 10 + 0x12,0x2a, // LOAD_GLOBAL 'BulletProofPlusData' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x10, // STORE_FAST_N 16 + 0xbd, // LOAD_FAST 13 + 0x14,0x76, // LOAD_METHOD 'append' + 0x24,0x10, // LOAD_FAST_N 16 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x81,0x55, // LOAD_GLOBAL 'bytearray' + 0x12,0x81,0x61, // LOAD_GLOBAL '_INITIAL_TRANSCRIPT' + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x11, // STORE_FAST_N 17 + 0x12,0x5f, // LOAD_GLOBAL '_hash_cache_mash' + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x11, // LOAD_FAST_N 17 + 0x12,0x45, // LOAD_GLOBAL '_hash_vct_to_scalar' + 0xb9, // LOAD_FAST 9 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x3c, // LOAD_ATTR 'V' + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x5f, // LOAD_GLOBAL '_hash_cache_mash' + 0x51, // LOAD_CONST_NONE + 0x24,0x11, // LOAD_FAST_N 17 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x3d, // LOAD_ATTR 'A' + 0x34,0x03, // CALL_FUNCTION 3 + 0x24,0x10, // LOAD_FAST_N 16 + 0x18,0x81,0x21, // STORE_ATTR 'y' + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x81,0x21, // LOAD_ATTR 'y' + 0x26,0x12, // STORE_FAST_N 18 + 0x12,0x1a, // LOAD_GLOBAL 'ensure' + 0x24,0x12, // LOAD_FAST_N 18 + 0x12,0x81,0x58, // LOAD_GLOBAL '_ZERO' + 0xd9, // BINARY_OP 2 __eq__ + 0xd3, // UNARY_OP 3 + 0x10,0x81,0x48, // LOAD_CONST_STRING 'y == 0' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x43, // LOAD_GLOBAL '_hash_to_scalar' + 0x51, // LOAD_CONST_NONE + 0x24,0x12, // LOAD_FAST_N 18 + 0x34,0x02, // CALL_FUNCTION 2 + 0x24,0x10, // LOAD_FAST_N 16 + 0x18,0x81,0x22, // STORE_ATTR 'z' + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x81,0x22, // LOAD_ATTR 'z' + 0x26,0x13, // STORE_FAST_N 19 + 0x12,0x2f, // LOAD_GLOBAL '_copy_key' + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x13, // LOAD_FAST_N 19 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x24,0x10, // LOAD_FAST_N 16 + 0x18,0x81,0x25, // STORE_ATTR 'logM' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x81,0x25, // LOAD_ATTR 'logM' + 0xf0, // BINARY_OP 25 __lshift__ + 0x26,0x14, // STORE_FAST_N 20 + 0x24,0x14, // LOAD_FAST_N 20 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x4e, // POP_JUMP_IF_TRUE 14 + 0x24,0x14, // LOAD_FAST_N 20 + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x3c, // LOAD_ATTR 'V' + 0x34,0x01, // CALL_FUNCTION 1 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x4e, // JUMP 14 + 0x24,0x10, // LOAD_FAST_N 16 + 0x57, // DUP_TOP + 0x13,0x81,0x25, // LOAD_ATTR 'logM' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x81,0x25, // STORE_ATTR 'logM' + 0x42,0x13, // JUMP -45 + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x81,0x25, // LOAD_ATTR 'logM' + 0x26,0x15, // STORE_FAST_N 21 + 0x12,0x82,0x2f, // LOAD_GLOBAL 'max' + 0xbc, // LOAD_FAST 12 + 0x24,0x15, // LOAD_FAST_N 21 + 0x34,0x02, // CALL_FUNCTION 2 + 0xcc, // STORE_FAST 12 + 0x24,0x15, // LOAD_FAST_N 21 + 0xb7, // LOAD_FAST 7 + 0xf2, // BINARY_OP 27 __add__ + 0x26,0x16, // STORE_FAST_N 22 + 0x12,0x1a, // LOAD_GLOBAL 'ensure' + 0x24,0x16, // LOAD_FAST_N 22 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x23,0x21, // LOAD_CONST_OBJ 33 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x55, // LOAD_GLOBAL '_ensure_dst_keyvect' + 0x51, // LOAD_CONST_NONE + 0x24,0x16, // LOAD_FAST_N 22 + 0x34,0x02, // CALL_FUNCTION 2 + 0x24,0x10, // LOAD_FAST_N 16 + 0x18,0x81,0x24, // STORE_ATTR 'challenges' + 0x24,0x16, // LOAD_FAST_N 22 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x7c, // JUMP 60 + 0x57, // DUP_TOP + 0x26,0x17, // STORE_FAST_N 23 + 0x12,0x5f, // LOAD_GLOBAL '_hash_cache_mash' + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x81,0x24, // LOAD_ATTR 'challenges' + 0x24,0x17, // LOAD_FAST_N 23 + 0x55, // LOAD_SUBSCR + 0x24,0x11, // LOAD_FAST_N 17 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x43, // LOAD_ATTR 'L' + 0x24,0x17, // LOAD_FAST_N 23 + 0x55, // LOAD_SUBSCR + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x44, // LOAD_ATTR 'R' + 0x24,0x17, // LOAD_FAST_N 23 + 0x55, // LOAD_SUBSCR + 0x34,0x04, // CALL_FUNCTION 4 + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x81,0x24, // LOAD_ATTR 'challenges' + 0x24,0x17, // LOAD_FAST_N 23 + 0x56, // STORE_SUBSCR + 0x12,0x1a, // LOAD_GLOBAL 'ensure' + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x81,0x24, // LOAD_ATTR 'challenges' + 0x24,0x17, // LOAD_FAST_N 23 + 0x55, // LOAD_SUBSCR + 0x12,0x81,0x58, // LOAD_GLOBAL '_ZERO' + 0xdc, // BINARY_OP 5 __ne__ + 0x23,0x22, // LOAD_CONST_OBJ 34 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xbe,0x7f, // POP_JUMP_IF_TRUE -66 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x81,0x24, // LOAD_ATTR 'challenges' + 0x26,0x18, // STORE_FAST_N 24 + 0x12,0x5f, // LOAD_GLOBAL '_hash_cache_mash' + 0x51, // LOAD_CONST_NONE + 0x24,0x11, // LOAD_FAST_N 17 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x3e, // LOAD_ATTR 'A1' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x3f, // LOAD_ATTR 'B' + 0x34,0x04, // CALL_FUNCTION 4 + 0x24,0x10, // LOAD_FAST_N 16 + 0x18,0x81,0x23, // STORE_ATTR 'e' + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x81,0x23, // LOAD_ATTR 'e' + 0x26,0x19, // STORE_FAST_N 25 + 0x12,0x1a, // LOAD_GLOBAL 'ensure' + 0x24,0x19, // LOAD_FAST_N 25 + 0x12,0x81,0x58, // LOAD_GLOBAL '_ZERO' + 0xdc, // BINARY_OP 5 __ne__ + 0x10,0x81,0x49, // LOAD_CONST_STRING 'e == 0' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0x24,0x10, // LOAD_FAST_N 16 + 0x18,0x81,0x26, // STORE_ATTR 'inv_offset' + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x81,0x26, // LOAD_ATTR 'inv_offset' + 0x26,0x1a, // STORE_FAST_N 26 + 0x24,0x16, // LOAD_FAST_N 22 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x55, // JUMP 21 + 0x57, // DUP_TOP + 0x26,0x17, // STORE_FAST_N 23 + 0xbf, // LOAD_FAST 15 + 0x14,0x5e, // LOAD_METHOD 'read' + 0xbe, // LOAD_FAST 14 + 0x24,0x18, // LOAD_FAST_N 24 + 0x24,0x17, // LOAD_FAST_N 23 + 0x55, // LOAD_SUBSCR + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xce, // STORE_FAST 14 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x26, // POP_JUMP_IF_TRUE -26 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xbf, // LOAD_FAST 15 + 0x14,0x5e, // LOAD_METHOD 'read' + 0xbe, // LOAD_FAST 14 + 0x24,0x12, // LOAD_FAST_N 18 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xce, // STORE_FAST 14 + 0xbb, // LOAD_FAST 11 + 0x24,0x16, // LOAD_FAST_N 22 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xcb, // STORE_FAST 11 + 0xb2, // LOAD_FAST 2 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0xd1,0x7c, // JUMP -431 + 0xbf, // LOAD_FAST 15 + 0x14,0x57, // LOAD_METHOD 'resize' + 0xbb, // LOAD_FAST 11 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x1a, // LOAD_GLOBAL 'ensure' + 0xb3, // LOAD_FAST 3 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xd7, // BINARY_OP 0 __lt__ + 0x23,0x20, // LOAD_CONST_OBJ 32 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb3, // LOAD_FAST 3 + 0xf0, // BINARY_OP 25 __lshift__ + 0x26,0x1b, // STORE_FAST_N 27 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x1c, // STORE_FAST_N 28 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x31, // LOAD_METHOD '_gprec_aux' + 0x24,0x1b, // LOAD_FAST_N 27 + 0x36,0x01, // CALL_METHOD 1 + 0x27,0x40, // STORE_DEREF 64 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x32, // LOAD_METHOD '_hprec_aux' + 0x24,0x1b, // LOAD_FAST_N 27 + 0x36,0x01, // CALL_METHOD 1 + 0x27,0x41, // STORE_DEREF 65 + 0x12,0x28, // LOAD_GLOBAL 'MultiExpSequential' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x1d, // STORE_FAST_N 29 + 0x24,0x1d, // LOAD_FAST_N 29 + 0x13,0x64, // LOAD_ATTR 'add_pair' + 0x26,0x1e, // STORE_FAST_N 30 + 0x12,0x28, // LOAD_GLOBAL 'MultiExpSequential' + 0x10,0x81,0x1b, // LOAD_CONST_STRING 'point_fnc' + 0x24,0x40, // LOAD_FAST_N 64 + 0x24,0x41, // LOAD_FAST_N 65 + 0x20,0x00,0x02, // MAKE_CLOSURE 0 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x26,0x1f, // STORE_FAST_N 31 + 0x12,0x51, // LOAD_GLOBAL '_invert_batch' + 0xbf, // LOAD_FAST 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x20, // STORE_FAST_N 32 + 0x28,0x0f, // DELETE_FAST 15 + 0xb2, // LOAD_FAST 2 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x81,0x55, // LOAD_GLOBAL 'bytearray' + 0x12,0x81,0x58, // LOAD_GLOBAL '_ZERO' + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x21, // STORE_FAST_N 33 + 0x12,0x81,0x55, // LOAD_GLOBAL 'bytearray' + 0x12,0x81,0x58, // LOAD_GLOBAL '_ZERO' + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x22, // STORE_FAST_N 34 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x26,0x23, // STORE_FAST_N 35 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x8d,0x09, // FOR_ITER 1165 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xbd, // LOAD_FAST 13 + 0x24,0x23, // LOAD_FAST_N 35 + 0x55, // LOAD_SUBSCR + 0x26,0x10, // STORE_FAST_N 16 + 0x24,0x23, // LOAD_FAST_N 35 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x26,0x23, // STORE_FAST_N 35 + 0x12,0x1a, // LOAD_GLOBAL 'ensure' + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x43, // LOAD_ATTR 'L' + 0x34,0x01, // CALL_FUNCTION 1 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x24,0x15, // LOAD_FAST_N 21 + 0xf2, // BINARY_OP 27 __add__ + 0xd9, // BINARY_OP 2 __eq__ + 0x23,0x23, // LOAD_CONST_OBJ 35 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x24,0x15, // LOAD_FAST_N 21 + 0xf0, // BINARY_OP 25 __lshift__ + 0x26,0x14, // STORE_FAST_N 20 + 0x24,0x14, // LOAD_FAST_N 20 + 0xb8, // LOAD_FAST 8 + 0xf4, // BINARY_OP 29 __mul__ + 0x26,0x24, // STORE_FAST_N 36 + 0x12,0x81,0x55, // LOAD_GLOBAL 'bytearray' + 0x12,0x81,0x58, // LOAD_GLOBAL '_ZERO' + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x25, // STORE_FAST_N 37 + 0x42,0x47, // JUMP 7 + 0x12,0x38, // LOAD_GLOBAL '_sc_gen' + 0x24,0x25, // LOAD_FAST_N 37 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x24,0x25, // LOAD_FAST_N 37 + 0x12,0x81,0x58, // LOAD_GLOBAL '_ZERO' + 0xd9, // BINARY_OP 2 __eq__ + 0x43,0x31, // POP_JUMP_IF_TRUE -15 + 0x12,0x81,0x55, // LOAD_GLOBAL 'bytearray' + 0x24,0x12, // LOAD_FAST_N 18 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x26, // STORE_FAST_N 38 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x51, // LOAD_CONST_NONE + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x27, // STORE_FAST_N 39 + 0x24,0x24, // LOAD_FAST_N 36 + 0x26,0x28, // STORE_FAST_N 40 + 0x42,0x51, // JUMP 17 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x24,0x26, // LOAD_FAST_N 38 + 0x24,0x26, // LOAD_FAST_N 38 + 0x24,0x26, // LOAD_FAST_N 38 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x24,0x28, // LOAD_FAST_N 40 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xea, // BINARY_OP 19 __itruediv__ + 0x26,0x28, // STORE_FAST_N 40 + 0x24,0x28, // LOAD_FAST_N 40 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x29, // POP_JUMP_IF_TRUE -23 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x24,0x27, // LOAD_FAST_N 39 + 0x24,0x26, // LOAD_FAST_N 38 + 0x24,0x12, // LOAD_FAST_N 18 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x51, // LOAD_CONST_NONE + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x29, // STORE_FAST_N 41 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x24,0x29, // LOAD_FAST_N 41 + 0x24,0x19, // LOAD_FAST_N 25 + 0x24,0x19, // LOAD_FAST_N 25 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x51, // LOAD_CONST_NONE + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x2a, // STORE_FAST_N 42 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x24,0x2a, // LOAD_FAST_N 42 + 0x24,0x13, // LOAD_FAST_N 19 + 0x24,0x13, // LOAD_FAST_N 19 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3b, // LOAD_GLOBAL '_sc_sub' + 0xb9, // LOAD_FAST 9 + 0x12,0x81,0x58, // LOAD_GLOBAL '_ZERO' + 0x24,0x29, // LOAD_FAST_N 41 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb9, // LOAD_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x24,0x27, // LOAD_FAST_N 39 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb9, // LOAD_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x24,0x25, // LOAD_FAST_N 37 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x81,0x74, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x3c, // LOAD_ATTR 'V' + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x61, // JUMP 33 + 0x57, // DUP_TOP + 0x26,0x17, // STORE_FAST_N 23 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb9, // LOAD_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x24,0x2a, // LOAD_FAST_N 42 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x24,0x1e, // LOAD_FAST_N 30 + 0xb9, // LOAD_FAST 9 + 0x12,0x34, // LOAD_GLOBAL '_scalarmult8' + 0x24,0x1c, // LOAD_FAST_N 28 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x3c, // LOAD_ATTR 'V' + 0x24,0x17, // LOAD_FAST_N 23 + 0x55, // LOAD_SUBSCR + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x1a, // POP_JUMP_IF_TRUE -38 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb9, // LOAD_FAST 9 + 0x12,0x81,0x5d, // LOAD_GLOBAL '_MINUS_ONE' + 0x24,0x25, // LOAD_FAST_N 37 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x24,0x1e, // LOAD_FAST_N 30 + 0xb9, // LOAD_FAST 9 + 0x12,0x34, // LOAD_GLOBAL '_scalarmult8' + 0x24,0x1c, // LOAD_FAST_N 28 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x3f, // LOAD_ATTR 'B' + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb9, // LOAD_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x24,0x19, // LOAD_FAST_N 25 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x24,0x1e, // LOAD_FAST_N 30 + 0xb9, // LOAD_FAST 9 + 0x12,0x34, // LOAD_GLOBAL '_scalarmult8' + 0x24,0x1c, // LOAD_FAST_N 28 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x3e, // LOAD_ATTR 'A1' + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x51, // LOAD_CONST_NONE + 0xb9, // LOAD_FAST 9 + 0x24,0x19, // LOAD_FAST_N 25 + 0x34,0x03, // CALL_FUNCTION 3 + 0x26,0x2b, // STORE_FAST_N 43 + 0x24,0x1e, // LOAD_FAST_N 30 + 0x24,0x2b, // LOAD_FAST_N 43 + 0x12,0x34, // LOAD_GLOBAL '_scalarmult8' + 0x24,0x1c, // LOAD_FAST_N 28 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x3d, // LOAD_ATTR 'A' + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x3e, // LOAD_GLOBAL '_sc_muladd' + 0x24,0x21, // LOAD_FAST_N 33 + 0x24,0x25, // LOAD_FAST_N 37 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x42, // LOAD_ATTR 'd1' + 0x24,0x21, // LOAD_FAST_N 33 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x24, // LOAD_GLOBAL 'VctD' + 0xb8, // LOAD_FAST 8 + 0x24,0x14, // LOAD_FAST_N 20 + 0x24,0x2a, // LOAD_FAST_N 42 + 0x34,0x03, // CALL_FUNCTION 3 + 0x26,0x2c, // STORE_FAST_N 44 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x51, // LOAD_CONST_NONE + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x2d, // STORE_FAST_N 45 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x24,0x2d, // LOAD_FAST_N 45 + 0x12,0x81,0x62, // LOAD_GLOBAL '_TWO_SIXTY_FOUR_MINUS_ONE' + 0x12,0x52, // LOAD_GLOBAL '_sum_of_even_powers' + 0x51, // LOAD_CONST_NONE + 0x24,0x13, // LOAD_FAST_N 19 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x24,0x14, // LOAD_FAST_N 20 + 0xf4, // BINARY_OP 29 __mul__ + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x54, // LOAD_GLOBAL '_sum_of_scalar_powers' + 0x51, // LOAD_CONST_NONE + 0x24,0x12, // LOAD_FAST_N 18 + 0x24,0x24, // LOAD_FAST_N 36 + 0x34,0x03, // CALL_FUNCTION 3 + 0x26,0x2e, // STORE_FAST_N 46 + 0x12,0x3b, // LOAD_GLOBAL '_sc_sub' + 0xb9, // LOAD_FAST 9 + 0x24,0x2a, // LOAD_FAST_N 42 + 0x24,0x13, // LOAD_FAST_N 19 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb9, // LOAD_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x24,0x2e, // LOAD_FAST_N 46 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x24,0x1c, // LOAD_FAST_N 28 + 0x24,0x27, // LOAD_FAST_N 39 + 0x24,0x13, // LOAD_FAST_N 19 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x24,0x1c, // LOAD_FAST_N 28 + 0x24,0x1c, // LOAD_FAST_N 28 + 0x24,0x2d, // LOAD_FAST_N 45 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x39, // LOAD_GLOBAL '_sc_add' + 0xb9, // LOAD_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x24,0x1c, // LOAD_FAST_N 28 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb9, // LOAD_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x24,0x29, // LOAD_FAST_N 41 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x24,0x1c, // LOAD_FAST_N 28 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x40, // LOAD_ATTR 'r1' + 0x24,0x12, // LOAD_FAST_N 18 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x24,0x1c, // LOAD_FAST_N 28 + 0x24,0x1c, // LOAD_FAST_N 28 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x41, // LOAD_ATTR 's1' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x39, // LOAD_GLOBAL '_sc_add' + 0xb9, // LOAD_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x24,0x1c, // LOAD_FAST_N 28 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3e, // LOAD_GLOBAL '_sc_muladd' + 0x24,0x22, // LOAD_FAST_N 34 + 0xb9, // LOAD_FAST 9 + 0x24,0x25, // LOAD_FAST_N 37 + 0x24,0x22, // LOAD_FAST_N 34 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x24,0x15, // LOAD_FAST_N 21 + 0xb7, // LOAD_FAST 7 + 0xf2, // BINARY_OP 27 __add__ + 0x26,0x16, // STORE_FAST_N 22 + 0x12,0x1a, // LOAD_GLOBAL 'ensure' + 0x24,0x16, // LOAD_FAST_N 22 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x23,0x21, // LOAD_CONST_OBJ 33 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x24,0x20, // LOAD_FAST_N 32 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x24,0x16, // LOAD_FAST_N 22 + 0xf2, // BINARY_OP 27 __add__ + 0x55, // LOAD_SUBSCR + 0x26,0x2f, // STORE_FAST_N 47 + 0xb2, // LOAD_FAST 2 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x26,0x30, // STORE_FAST_N 48 + 0x12,0x82,0x30, // LOAD_GLOBAL 'min' + 0x24,0x16, // LOAD_FAST_N 22 + 0x24,0x30, // LOAD_FAST_N 48 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x31, // STORE_FAST_N 49 + 0x12,0x55, // LOAD_GLOBAL '_ensure_dst_keyvect' + 0x51, // LOAD_CONST_NONE + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x24,0x31, // LOAD_FAST_N 49 + 0xf0, // BINARY_OP 25 __lshift__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x32, // STORE_FAST_N 50 + 0x24,0x20, // LOAD_FAST_N 32 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x55, // LOAD_SUBSCR + 0x24,0x32, // LOAD_FAST_N 50 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x56, // STORE_SUBSCR + 0x24,0x18, // LOAD_FAST_N 24 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x24,0x32, // LOAD_FAST_N 50 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x56, // STORE_SUBSCR + 0x24,0x31, // LOAD_FAST_N 49 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x42,0xdd,0x80, // JUMP 93 + 0x57, // DUP_TOP + 0x26,0x17, // STORE_FAST_N 23 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x24,0x17, // LOAD_FAST_N 23 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xf0, // BINARY_OP 25 __lshift__ + 0x26,0x33, // STORE_FAST_N 51 + 0x24,0x33, // LOAD_FAST_N 51 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x42,0xc2,0x80, // JUMP 66 + 0x57, // DUP_TOP + 0x26,0x34, // STORE_FAST_N 52 + 0x24,0x32, // LOAD_FAST_N 50 + 0x14,0x5e, // LOAD_METHOD 'read' + 0x24,0x34, // LOAD_FAST_N 52 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x12,0x81,0x63, // LOAD_GLOBAL '_tmp_bf_0' + 0x24,0x32, // LOAD_FAST_N 50 + 0x24,0x34, // LOAD_FAST_N 52 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x55, // LOAD_SUBSCR + 0x24,0x18, // LOAD_FAST_N 24 + 0x24,0x17, // LOAD_FAST_N 23 + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x24,0x32, // LOAD_FAST_N 50 + 0x14,0x5e, // LOAD_METHOD 'read' + 0x24,0x34, // LOAD_FAST_N 52 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x12,0x81,0x63, // LOAD_GLOBAL '_tmp_bf_0' + 0x24,0x32, // LOAD_FAST_N 50 + 0x24,0x34, // LOAD_FAST_N 52 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x55, // LOAD_SUBSCR + 0x24,0x20, // LOAD_FAST_N 32 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x24,0x17, // LOAD_FAST_N 23 + 0xf2, // BINARY_OP 27 __add__ + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x7e, // LOAD_CONST_SMALL_INT -2 + 0xe5, // BINARY_OP 14 __iadd__ + 0x57, // DUP_TOP + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0xb8,0x7f, // POP_JUMP_IF_TRUE -72 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x9d,0x7f, // POP_JUMP_IF_TRUE -99 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x24,0x16, // LOAD_FAST_N 22 + 0x24,0x31, // LOAD_FAST_N 49 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x5b, // POP_JUMP_IF_FALSE 27 + 0x12,0x27, // LOAD_GLOBAL 'KeyChallengeCacheVct' + 0x24,0x16, // LOAD_FAST_N 22 + 0x24,0x18, // LOAD_FAST_N 24 + 0x24,0x20, // LOAD_FAST_N 32 + 0x14,0x6f, // LOAD_METHOD 'slice_view' + 0x24,0x1a, // LOAD_FAST_N 26 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x24,0x16, // LOAD_FAST_N 22 + 0xf2, // BINARY_OP 27 __add__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x02, // CALL_METHOD 2 + 0x24,0x32, // LOAD_FAST_N 50 + 0x34,0x04, // CALL_FUNCTION 4 + 0x26,0x32, // STORE_FAST_N 50 + 0xb2, // LOAD_FAST 2 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x35, // STORE_FAST_N 53 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x24,0x35, // LOAD_FAST_N 53 + 0x24,0x19, // LOAD_FAST_N 25 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x40, // LOAD_ATTR 'r1' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x24,0x35, // LOAD_FAST_N 53 + 0x24,0x35, // LOAD_FAST_N 53 + 0x24,0x25, // LOAD_FAST_N 37 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x36, // STORE_FAST_N 54 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x24,0x36, // LOAD_FAST_N 54 + 0x24,0x19, // LOAD_FAST_N 25 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x41, // LOAD_ATTR 's1' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x24,0x36, // LOAD_FAST_N 54 + 0x24,0x36, // LOAD_FAST_N 54 + 0x24,0x25, // LOAD_FAST_N 37 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x37, // STORE_FAST_N 55 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x24,0x37, // LOAD_FAST_N 55 + 0x24,0x29, // LOAD_FAST_N 41 + 0x24,0x13, // LOAD_FAST_N 19 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x24,0x37, // LOAD_FAST_N 55 + 0x24,0x37, // LOAD_FAST_N 55 + 0x24,0x25, // LOAD_FAST_N 37 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x38, // STORE_FAST_N 56 + 0x12,0x3b, // LOAD_GLOBAL '_sc_sub' + 0x24,0x38, // LOAD_FAST_N 56 + 0x12,0x81,0x58, // LOAD_GLOBAL '_ZERO' + 0x24,0x37, // LOAD_FAST_N 55 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x39, // STORE_FAST_N 57 + 0x12,0x3b, // LOAD_GLOBAL '_sc_sub' + 0x24,0x39, // LOAD_FAST_N 57 + 0x12,0x81,0x58, // LOAD_GLOBAL '_ZERO' + 0x24,0x29, // LOAD_FAST_N 41 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x24,0x39, // LOAD_FAST_N 57 + 0x24,0x39, // LOAD_FAST_N 57 + 0x24,0x25, // LOAD_FAST_N 37 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x24,0x39, // LOAD_FAST_N 57 + 0x24,0x39, // LOAD_FAST_N 57 + 0x24,0x26, // LOAD_FAST_N 38 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x3a, // STORE_FAST_N 58 + 0x12,0x2c, // LOAD_GLOBAL '_ensure_dst_key' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x3b, // STORE_FAST_N 59 + 0x24,0x24, // LOAD_FAST_N 36 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x85,0x81, // JUMP 133 + 0x57, // DUP_TOP + 0x26,0x3c, // STORE_FAST_N 60 + 0x24,0x3c, // LOAD_FAST_N 60 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf8, // BINARY_OP 33 __mod__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb2, // LOAD_FAST 2 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x2f, // LOAD_GLOBAL '_copy_key' + 0x24,0x3a, // LOAD_FAST_N 58 + 0x24,0x35, // LOAD_FAST_N 53 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x3e, // LOAD_GLOBAL '_sc_muladd' + 0x24,0x3a, // LOAD_FAST_N 58 + 0x24,0x3a, // LOAD_FAST_N 58 + 0x24,0x32, // LOAD_FAST_N 50 + 0x24,0x3c, // LOAD_FAST_N 60 + 0x55, // LOAD_SUBSCR + 0x24,0x37, // LOAD_FAST_N 55 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x12,0x3e, // LOAD_GLOBAL '_sc_muladd' + 0x24,0x3b, // LOAD_FAST_N 59 + 0x24,0x36, // LOAD_FAST_N 54 + 0x24,0x32, // LOAD_FAST_N 50 + 0x24,0x3c, // LOAD_FAST_N 60 + 0xd2, // UNARY_OP 2 __invert__ + 0x24,0x24, // LOAD_FAST_N 36 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xef, // BINARY_OP 24 __and__ + 0x55, // LOAD_SUBSCR + 0x24,0x38, // LOAD_FAST_N 56 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x12,0x3e, // LOAD_GLOBAL '_sc_muladd' + 0x24,0x3b, // LOAD_FAST_N 59 + 0x24,0x39, // LOAD_FAST_N 57 + 0x24,0x2c, // LOAD_FAST_N 44 + 0x24,0x3c, // LOAD_FAST_N 60 + 0x55, // LOAD_SUBSCR + 0x24,0x3b, // LOAD_FAST_N 59 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x24,0x1f, // LOAD_FAST_N 31 + 0x14,0x81,0x20, // LOAD_METHOD 'add_scalar_idx' + 0x24,0x3a, // LOAD_FAST_N 58 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x24,0x3c, // LOAD_FAST_N 60 + 0xf4, // BINARY_OP 29 __mul__ + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x24,0x1f, // LOAD_FAST_N 31 + 0x14,0x81,0x20, // LOAD_METHOD 'add_scalar_idx' + 0x24,0x3b, // LOAD_FAST_N 59 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x24,0x3c, // LOAD_FAST_N 60 + 0xf4, // BINARY_OP 29 __mul__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x24,0x35, // LOAD_FAST_N 53 + 0x24,0x35, // LOAD_FAST_N 53 + 0x24,0x2f, // LOAD_FAST_N 47 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0x24,0x39, // LOAD_FAST_N 57 + 0x24,0x39, // LOAD_FAST_N 57 + 0x24,0x2f, // LOAD_FAST_N 47 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xf5,0x7e, // POP_JUMP_IF_TRUE -139 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x28,0x32, // DELETE_FAST 50 + 0x28,0x2c, // DELETE_FAST 44 + 0xb2, // LOAD_FAST 2 + 0x89, // LOAD_CONST_SMALL_INT 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x24,0x16, // LOAD_FAST_N 22 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xe3,0x80, // JUMP 99 + 0x57, // DUP_TOP + 0x26,0x17, // STORE_FAST_N 23 + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb9, // LOAD_FAST 9 + 0x24,0x18, // LOAD_FAST_N 24 + 0x24,0x17, // LOAD_FAST_N 23 + 0x55, // LOAD_SUBSCR + 0x24,0x18, // LOAD_FAST_N 24 + 0x24,0x17, // LOAD_FAST_N 23 + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb9, // LOAD_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x24,0x2b, // LOAD_FAST_N 43 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x24,0x1e, // LOAD_FAST_N 30 + 0xb9, // LOAD_FAST 9 + 0x12,0x34, // LOAD_GLOBAL '_scalarmult8' + 0x24,0x1c, // LOAD_FAST_N 28 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x43, // LOAD_ATTR 'L' + 0x24,0x17, // LOAD_FAST_N 23 + 0x55, // LOAD_SUBSCR + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb9, // LOAD_FAST 9 + 0x24,0x20, // LOAD_FAST_N 32 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x24,0x17, // LOAD_FAST_N 23 + 0xf2, // BINARY_OP 27 __add__ + 0x55, // LOAD_SUBSCR + 0x24,0x20, // LOAD_FAST_N 32 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x24,0x17, // LOAD_FAST_N 23 + 0xf2, // BINARY_OP 27 __add__ + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x3d, // LOAD_GLOBAL '_sc_mul' + 0xb9, // LOAD_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x24,0x2b, // LOAD_FAST_N 43 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x24,0x1e, // LOAD_FAST_N 30 + 0xb9, // LOAD_FAST 9 + 0x12,0x34, // LOAD_GLOBAL '_scalarmult8' + 0x24,0x1c, // LOAD_FAST_N 28 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x44, // LOAD_ATTR 'R' + 0x24,0x17, // LOAD_FAST_N 23 + 0x55, // LOAD_SUBSCR + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x97,0x7f, // POP_JUMP_IF_TRUE -105 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xbd, // LOAD_FAST 13 + 0x24,0x23, // LOAD_FAST_N 35 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x56, // STORE_SUBSCR + 0x28,0x10, // DELETE_FAST 16 + 0x42,0xf0,0x76, // JUMP -1168 + 0x28,0x20, // DELETE_FAST 32 + 0xb2, // LOAD_FAST 2 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x24,0x1e, // LOAD_FAST_N 30 + 0x24,0x21, // LOAD_FAST_N 33 + 0x12,0x81,0x60, // LOAD_GLOBAL '_XMR_G' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x24,0x1e, // LOAD_FAST_N 30 + 0x24,0x22, // LOAD_FAST_N 34 + 0x12,0x81,0x5e, // LOAD_GLOBAL '_XMR_H' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x61, // LOAD_GLOBAL '_multiexp' + 0xb9, // LOAD_FAST 9 + 0x24,0x1f, // LOAD_FAST_N 31 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x3d, // STORE_FAST_N 61 + 0x12,0x61, // LOAD_GLOBAL '_multiexp' + 0x24,0x1c, // LOAD_FAST_N 28 + 0x24,0x1d, // LOAD_FAST_N 29 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x3e, // STORE_FAST_N 62 + 0x12,0x3f, // LOAD_GLOBAL '_add_keys' + 0xb9, // LOAD_FAST 9 + 0x24,0x3d, // LOAD_FAST_N 61 + 0x24,0x3e, // LOAD_FAST_N 62 + 0x34,0x03, // CALL_FUNCTION 3 + 0x26,0x3f, // STORE_FAST_N 63 + 0x24,0x3f, // LOAD_FAST_N 63 + 0x12,0x81,0x59, // LOAD_GLOBAL '_ONE' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x82,0x08, // LOAD_GLOBAL 'ValueError' + 0x23,0x24, // LOAD_CONST_OBJ 36 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify_batch +// frozen bytecode for file apps/monero/xmr/bulletproof.py, scope apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify_batch__lt_lambda_gt_ +static const byte fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify_batch__lt_lambda_gt_[36] = { + 0xb0,0x04,0x16, // prelude + 0x81,0x4c,0x82,0x1e,0x82,0x1e,0x81,0x76,0x70, // names: , *, *, i, d + 0xf0,0x13, // code info + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xef, // BINARY_OP 24 __and__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x25,0x00, // LOAD_DEREF 0 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf1, // BINARY_OP 26 __rshift__ + 0x55, // LOAD_SUBSCR + 0x42,0x46, // JUMP 6 + 0x25,0x01, // LOAD_DEREF 1 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf1, // BINARY_OP 26 __rshift__ + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify_batch__lt_lambda_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify_batch__lt_lambda_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 204, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify_batch__lt_lambda_gt_ + 12, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify_batch__lt_lambda_gt_ + 14, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify_batch__lt_lambda_gt_ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify_batch[] = { + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify_batch__lt_lambda_gt_, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify_batch = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify_batch, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 2225, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify_batch, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 82, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 198, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify_batch + 11, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify_batch + 234, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify_batch + 236, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof_BulletProofPlusBuilder[] = { + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder___init__, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_gc, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_aX_vcts, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__gprec_aux, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__hprec_aux, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_setup_aLaR, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_prove_batch, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder__prove_batch_main, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder_verify_batch, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 106, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof_BulletProofPlusBuilder, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 12, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder + 3, + .line_info_top = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder + 27, + .opcodes = fun_data_apps_monero_xmr_bulletproof_BulletProofPlusBuilder + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_bulletproof__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_bulletproof__ensure_dst_key, + &raw_code_apps_monero_xmr_bulletproof_memcpy, + &raw_code_apps_monero_xmr_bulletproof__copy_key, + &raw_code_apps_monero_xmr_bulletproof__load_scalar, + &raw_code_apps_monero_xmr_bulletproof__gc_iter, + &raw_code_apps_monero_xmr_bulletproof__invert, + &raw_code_apps_monero_xmr_bulletproof__scalarmult_key, + &raw_code_apps_monero_xmr_bulletproof__scalarmult8, + &raw_code_apps_monero_xmr_bulletproof__scalarmult_base, + &raw_code_apps_monero_xmr_bulletproof__sc_gen, + &raw_code_apps_monero_xmr_bulletproof__sc_add, + &raw_code_apps_monero_xmr_bulletproof__sc_sub, + &raw_code_apps_monero_xmr_bulletproof__sc_mul, + &raw_code_apps_monero_xmr_bulletproof__sc_muladd, + &raw_code_apps_monero_xmr_bulletproof__add_keys, + &raw_code_apps_monero_xmr_bulletproof__add_keys2, + &raw_code_apps_monero_xmr_bulletproof__hash_to_scalar, + &raw_code_apps_monero_xmr_bulletproof__hash_vct_to_scalar, + &raw_code_apps_monero_xmr_bulletproof__get_exponent_plus, + &raw_code_apps_monero_xmr_bulletproof__get_exponent_univ, + &raw_code_apps_monero_xmr_bulletproof__sc_square_mult, + &raw_code_apps_monero_xmr_bulletproof__invert_batch, + &raw_code_apps_monero_xmr_bulletproof__sum_of_even_powers, + &raw_code_apps_monero_xmr_bulletproof__sum_of_scalar_powers, + &raw_code_apps_monero_xmr_bulletproof_KeyVBase, + &raw_code_apps_monero_xmr_bulletproof_KeyV, + &raw_code_apps_monero_xmr_bulletproof_KeyVEval, + &raw_code_apps_monero_xmr_bulletproof_KeyVPrecomp, + &raw_code_apps_monero_xmr_bulletproof_KeyVSliced, + &raw_code_apps_monero_xmr_bulletproof_KeyVPowersBackwards, + &raw_code_apps_monero_xmr_bulletproof_VctD, + &raw_code_apps_monero_xmr_bulletproof_KeyHadamardFoldedVct, + &raw_code_apps_monero_xmr_bulletproof_KeyScalarFoldedVct, + &raw_code_apps_monero_xmr_bulletproof_KeyChallengeCacheVct, + &raw_code_apps_monero_xmr_bulletproof__ensure_dst_keyvect, + &raw_code_apps_monero_xmr_bulletproof__vector_exponent_custom, + &raw_code_apps_monero_xmr_bulletproof__weighted_inner_product, + &raw_code_apps_monero_xmr_bulletproof__hadamard_fold, + &raw_code_apps_monero_xmr_bulletproof__hash_cache_mash, + &raw_code_apps_monero_xmr_bulletproof__is_reduced, + &raw_code_apps_monero_xmr_bulletproof_MultiExpSequential, + &raw_code_apps_monero_xmr_bulletproof__multiexp, + &raw_code_apps_monero_xmr_bulletproof_BulletProofGenException, + &raw_code_apps_monero_xmr_bulletproof__compute_LR, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusData, + &raw_code_apps_monero_xmr_bulletproof_BulletProofPlusBuilder, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_bulletproof__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_bulletproof__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 847, + #endif + .children = (void *)&children_apps_monero_xmr_bulletproof__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 46, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_bulletproof__lt_module_gt_ + 4, + .line_info_top = fun_data_apps_monero_xmr_bulletproof__lt_module_gt_ + 149, + .opcodes = fun_data_apps_monero_xmr_bulletproof__lt_module_gt_ + 149, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_bulletproof[306] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_bulletproof_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_gc, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_crypto, + MP_QSTR_crypto_helpers, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_dump_uvarint_b_into, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_dot_int_serialize, + MP_QSTR_decodeint_into_noreduce, + MP_QSTR_decodeint_into, + MP_QSTR_encodeint_into, + MP_QSTR_decodepoint_into, + MP_QSTR_encodepoint_into, + MP_QSTR_Scalar, + MP_QSTR_Point, + MP_QSTR_sc_copy, + MP_QSTR_sc_mul_into, + MP_QSTR_sc_inv_into, + MP_QSTR_sc_muladd_into, + MP_QSTR_scalarmult_into, + MP_QSTR_random_scalar, + MP_QSTR_encodeint, + MP_QSTR_ensure, + MP_QSTR_collect, + MP_QSTR_INV_EIGHT, + MP_QSTR_xmr_H, + MP_QSTR_KeyVBase, + MP_QSTR_KeyV, + MP_QSTR_KeyVEval, + MP_QSTR_KeyVPrecomp, + MP_QSTR_KeyVSliced, + MP_QSTR_KeyVPowersBackwards, + MP_QSTR_VctD, + MP_QSTR_KeyHadamardFoldedVct, + MP_QSTR_KeyScalarFoldedVct, + MP_QSTR_KeyChallengeCacheVct, + MP_QSTR_MultiExpSequential, + MP_QSTR_BulletProofGenException, + MP_QSTR_BulletProofPlusData, + MP_QSTR_BulletProofPlusBuilder, + MP_QSTR__ensure_dst_key, + MP_QSTR_memcpy, + MP_QSTR_trezor_dot_utils, + MP_QSTR__copy_key, + MP_QSTR__load_scalar, + MP_QSTR__gc_iter, + MP_QSTR__invert, + MP_QSTR__scalarmult_key, + MP_QSTR__scalarmult8, + MP_QSTR_ge25519_mul8, + MP_QSTR__scalarmult_base, + MP_QSTR_scalarmult_base_into, + MP_QSTR__sc_gen, + MP_QSTR__sc_add, + MP_QSTR_sc_add_into, + MP_QSTR__sc_sub, + MP_QSTR_sc_sub_into, + MP_QSTR__sc_mul, + MP_QSTR__sc_muladd, + MP_QSTR__add_keys, + MP_QSTR_point_add_into, + MP_QSTR__add_keys2, + MP_QSTR_add_keys2_into, + MP_QSTR__hash_to_scalar, + MP_QSTR_hash_to_scalar_into, + MP_QSTR__hash_vct_to_scalar, + MP_QSTR_get_keccak, + MP_QSTR_update, + MP_QSTR_digest, + MP_QSTR__get_exponent_plus, + MP_QSTR__get_exponent_univ, + MP_QSTR_uvarint_size, + MP_QSTR_fast_hash_into, + MP_QSTR_hash_to_point_into, + MP_QSTR__sc_square_mult, + MP_QSTR_math, + MP_QSTR_log, + MP_QSTR__invert_batch, + MP_QSTR__sum_of_even_powers, + MP_QSTR_n_space__equals__equals__space_0, + MP_QSTR__sum_of_scalar_powers, + MP_QSTR__ensure_dst_keyvect, + MP_QSTR_elems, + MP_QSTR_resize, + MP_QSTR__vector_exponent_custom, + MP_QSTR_identity_into, + MP_QSTR_to, + MP_QSTR_add_keys3_into, + MP_QSTR__weighted_inner_product, + MP_QSTR__hadamard_fold, + MP_QSTR_read, + MP_QSTR__hash_cache_mash, + MP_QSTR__is_reduced, + MP_QSTR__multiexp, + MP_QSTR_eval, + MP_QSTR__compute_LR, + MP_QSTR_add_pair, + MP_QSTR___init__, + MP_QSTR_current_idx, + MP_QSTR_size, + MP_QSTR_idxize, + MP_QSTR_format, + MP_QSTR___getitem__, + MP_QSTR___setitem__, + MP_QSTR___iter__, + MP_QSTR___next__, + MP_QSTR___len__, + MP_QSTR_slice_view, + MP_QSTR_d, + MP_QSTR_mv, + MP_QSTR_cur, + MP_QSTR_chunked, + MP_QSTR__set_d, + MP_QSTR__set_mv, + MP_QSTR_append, + MP_QSTR_pop, + MP_QSTR_realloc, + MP_QSTR_fnc, + MP_QSTR_raw, + MP_QSTR_scalar, + MP_QSTR_buff, + MP_QSTR_precomp_prefix, + MP_QSTR_aux_comp_fnc, + MP_QSTR_wrapped, + MP_QSTR_offset, + MP_QSTR_cur_sc, + MP_QSTR_last_idx, + MP_QSTR_x, + MP_QSTR_x_inv, + MP_QSTR_x_max, + MP_QSTR_tmp_sc, + MP_QSTR_reset, + MP_QSTR_move_more, + MP_QSTR_N, + MP_QSTR_z_sq, + MP_QSTR_z_last, + MP_QSTR_two, + MP_QSTR_current_n, + MP_QSTR_move_one, + MP_QSTR_src, + MP_QSTR_gc_fnc, + MP_QSTR_a, + MP_QSTR_b, + MP_QSTR_cur_pt, + MP_QSTR_tmp_pt, + MP_QSTR_nbits, + MP_QSTR_ch_, + MP_QSTR_chi, + MP_QSTR_precomp, + MP_QSTR_precomp_depth, + MP_QSTR_points, + MP_QSTR_point_fnc, + MP_QSTR_acc, + MP_QSTR_tmp, + MP_QSTR_get_point, + MP_QSTR__acc, + MP_QSTR_add_scalar_idx, + MP_QSTR_y, + MP_QSTR_z, + MP_QSTR_e, + MP_QSTR_challenges, + MP_QSTR_logM, + MP_QSTR_inv_offset, + MP_QSTR_save_mem, + MP_QSTR_buffer, + MP_QSTR_BP_PLUS_GI_PRE, + MP_QSTR_Gprec, + MP_QSTR_BP_PLUS_HI_PRE, + MP_QSTR_Hprec, + MP_QSTR_aL, + MP_QSTR_aR, + MP_QSTR_gc_trace, + MP_QSTR_aX_vcts, + MP_QSTR__gprec_aux, + MP_QSTR__hprec_aux, + MP_QSTR_prove, + MP_QSTR_prove_batch, + MP_QSTR_prove_setup, + MP_QSTR_sv_space_empty, + MP_QSTR_prove_setup_aLaR, + MP_QSTR__prove_batch_main, + MP_QSTR_into, + MP_QSTR_BulletproofPlus, + MP_QSTR_serialize_messages_dot_tx_rsig_bulletproof, + MP_QSTR_V, + MP_QSTR_A, + MP_QSTR_A1, + MP_QSTR_B, + MP_QSTR_r1, + MP_QSTR_s1, + MP_QSTR_d1, + MP_QSTR_L, + MP_QSTR_R, + MP_QSTR_verify, + MP_QSTR_verify_batch, + MP_QSTR__pipe_L_pipe__space__bang__equals__space__pipe_R_pipe_, + MP_QSTR_y_space__equals__equals__space_0, + MP_QSTR_e_space__equals__equals__space_0, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_e_xL, + MP_QSTR__lt_lambda_gt_, + MP_QSTR_aL1_fnc, + MP_QSTR_aR1_fnc, + MP_QSTR_vec_sc_fnc, + MP_QSTR_object, + MP_QSTR_Generic, + MP_QSTR_T, + MP_QSTR_gc_collect, + MP_QSTR_bytes, + MP_QSTR_bytearray, + MP_QSTR_memoryview, + MP_QSTR_TBYTES, + MP_QSTR__ZERO, + MP_QSTR__ONE, + MP_QSTR__TWO, + MP_QSTR__EIGHT, + MP_QSTR__INV_EIGHT, + MP_QSTR__MINUS_ONE, + MP_QSTR__XMR_H, + MP_QSTR__XMR_HP, + MP_QSTR__XMR_G, + MP_QSTR__INITIAL_TRANSCRIPT, + MP_QSTR__TWO_SIXTY_FOUR_MINUS_ONE, + MP_QSTR__tmp_bf_0, + MP_QSTR__tmp_bf_1, + MP_QSTR__tmp_bf_exp, + MP_QSTR__tmp_pt_1, + MP_QSTR__tmp_pt_2, + MP_QSTR__tmp_pt_3, + MP_QSTR__tmp_pt_4, + MP_QSTR__tmp_sc_1, + MP_QSTR__tmp_sc_2, + MP_QSTR__tmp_sc_3, + MP_QSTR__tmp_sc_4, + MP_QSTR__tmp_sc_5, + MP_QSTR_KeyVBaseType, + MP_QSTR_Exception, + MP_QSTR_dst, + MP_QSTR_dst_off, + MP_QSTR_src_off, + MP_QSTR_len, + MP_QSTR_isinstance, + MP_QSTR_i, + MP_QSTR_P, + MP_QSTR_s, + MP_QSTR_s_raw, + MP_QSTR_c, + MP_QSTR_data, + MP_QSTR_base, + MP_QSTR_idx, + MP_QSTR_salt, + MP_QSTR_n, + MP_QSTR_int, + MP_QSTR_res, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR___slots__, + MP_QSTR_a_raw, + MP_QSTR_b_raw, + MP_QSTR_ValueError, + MP_QSTR_v, + MP_QSTR_into_offset, + MP_QSTR_vR, + MP_QSTR_vRoff, + MP_QSTR_hash_cache, + MP_QSTR_sc, + MP_QSTR_G, + MP_QSTR_G0, + MP_QSTR_H, + MP_QSTR_H0, + MP_QSTR_a0, + MP_QSTR_b0, + MP_QSTR_self, + MP_QSTR_IndexError, + MP_QSTR_item, + MP_QSTR_NotImplementedError, + MP_QSTR_key, + MP_QSTR_value, + MP_QSTR_StopIteration, + MP_QSTR_start, + MP_QSTR_stop, + MP_QSTR__star_, + MP_QSTR_no_init, + MP_QSTR_super, + MP_QSTR_range, + MP_QSTR_nsize, + MP_QSTR_chop, + MP_QSTR_prev, + MP_QSTR_M, + MP_QSTR_precomputed, + MP_QSTR_point, + MP_QSTR_sv, + MP_QSTR_MN, + MP_QSTR_gamma, + MP_QSTR_sv_vct, + MP_QSTR_logN, + MP_QSTR_proof, + MP_QSTR_proofs, + MP_QSTR_max, + MP_QSTR_min, + MP_QSTR_is_a, +}; + +// constants +static const mp_obj_str_t const_obj_apps_monero_xmr_bulletproof_0 = {{&mp_type_bytes}, 46501, 1, (const byte*)"\x00"}; +static const mp_obj_str_t const_obj_apps_monero_xmr_bulletproof_1 = {{&mp_type_bytes}, 46500, 1, (const byte*)"\x01"}; +static const mp_obj_str_t const_obj_apps_monero_xmr_bulletproof_2 = {{&mp_type_bytes}, 46503, 1, (const byte*)"\x02"}; +static const mp_obj_str_t const_obj_apps_monero_xmr_bulletproof_3 = {{&mp_type_bytes}, 46509, 1, (const byte*)"\x08"}; +static const mp_obj_str_t const_obj_apps_monero_xmr_bulletproof_4 = {{&mp_type_bytes}, 56578, 32, (const byte*)"\xec\xd3\xf5\x5c\x1a\x63\x12\x58\xd6\x9c\xf7\xa2\xde\xf9\xde\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10"}; +static const mp_obj_str_t const_obj_apps_monero_xmr_bulletproof_5 = {{&mp_type_bytes}, 36050, 32, (const byte*)"\x8b\x65\x59\x70\x15\x37\x99\xaf\x2a\xea\xdc\x9f\xf1\xad\xd0\xea\x6c\x72\x51\xd5\x41\x54\xcf\xa9\x2c\x17\x3a\x0d\xd3\x9c\x1f\x94"}; +static const mp_obj_str_t const_obj_apps_monero_xmr_bulletproof_6 = {{&mp_type_bytes}, 25147, 32, (const byte*)"\x58\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66"}; +static const mp_obj_str_t const_obj_apps_monero_xmr_bulletproof_7 = {{&mp_type_bytes}, 63618, 32, (const byte*)"\x4a\x67\x7c\x90\xeb\x73\x05\x1e\x79\x0d\xa4\x55\x91\x10\x7f\x6e\xe1\x05\x90\x4d\x91\x87\xc5\xd3\x54\x71\x09\x6c\x44\x5a\x22\x75"}; +static const mp_obj_str_t const_obj_apps_monero_xmr_bulletproof_8 = {{&mp_type_bytes}, 41861, 32, (const byte*)"\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}; +static const mp_obj_str_t const_obj_apps_monero_xmr_bulletproof_9 = {{&mp_type_bytes}, 42690, 16, (const byte*)"\x62\x75\x6c\x6c\x65\x74\x70\x72\x6f\x6f\x66\x5f\x70\x6c\x75\x73"}; +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_bulletproof_12 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_current_idx), + MP_ROM_QSTR(MP_QSTR_size), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_bulletproof_13 = {{&mp_type_tuple}, 7, { + MP_ROM_QSTR(MP_QSTR_current_idx), + MP_ROM_QSTR(MP_QSTR_size), + MP_ROM_QSTR(MP_QSTR_d), + MP_ROM_QSTR(MP_QSTR_mv), + MP_ROM_QSTR(MP_QSTR_const), + MP_ROM_QSTR(MP_QSTR_cur), + MP_ROM_QSTR(MP_QSTR_chunked), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_bulletproof_14 = {{&mp_type_tuple}, 6, { + MP_ROM_QSTR(MP_QSTR_current_idx), + MP_ROM_QSTR(MP_QSTR_size), + MP_ROM_QSTR(MP_QSTR_fnc), + MP_ROM_QSTR(MP_QSTR_raw), + MP_ROM_QSTR(MP_QSTR_scalar), + MP_ROM_QSTR(MP_QSTR_buff), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_bulletproof_15 = {{&mp_type_tuple}, 5, { + MP_ROM_QSTR(MP_QSTR_current_idx), + MP_ROM_QSTR(MP_QSTR_size), + MP_ROM_QSTR(MP_QSTR_precomp_prefix), + MP_ROM_QSTR(MP_QSTR_aux_comp_fnc), + MP_ROM_QSTR(MP_QSTR_buff), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_bulletproof_16 = {{&mp_type_tuple}, 4, { + MP_ROM_QSTR(MP_QSTR_current_idx), + MP_ROM_QSTR(MP_QSTR_size), + MP_ROM_QSTR(MP_QSTR_wrapped), + MP_ROM_QSTR(MP_QSTR_offset), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_bulletproof_17 = {{&mp_type_tuple}, 10, { + MP_ROM_QSTR(MP_QSTR_current_idx), + MP_ROM_QSTR(MP_QSTR_size), + MP_ROM_QSTR(MP_QSTR_x), + MP_ROM_QSTR(MP_QSTR_x_inv), + MP_ROM_QSTR(MP_QSTR_x_max), + MP_ROM_QSTR(MP_QSTR_cur_sc), + MP_ROM_QSTR(MP_QSTR_tmp_sc), + MP_ROM_QSTR(MP_QSTR_raw), + MP_ROM_QSTR(MP_QSTR_cur), + MP_ROM_QSTR(MP_QSTR_last_idx), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_bulletproof_18 = {{&mp_type_tuple}, 12, { + MP_ROM_QSTR(MP_QSTR_current_idx), + MP_ROM_QSTR(MP_QSTR_size), + MP_ROM_QSTR(MP_QSTR_N), + MP_ROM_QSTR(MP_QSTR_z_sq), + MP_ROM_QSTR(MP_QSTR_z_last), + MP_ROM_QSTR(MP_QSTR_two), + MP_ROM_QSTR(MP_QSTR_cur_sc), + MP_ROM_QSTR(MP_QSTR_tmp_sc), + MP_ROM_QSTR(MP_QSTR_cur), + MP_ROM_QSTR(MP_QSTR_last_idx), + MP_ROM_QSTR(MP_QSTR_current_n), + MP_ROM_QSTR(MP_QSTR_raw), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_bulletproof_19 = {{&mp_type_tuple}, 10, { + MP_ROM_QSTR(MP_QSTR_current_idx), + MP_ROM_QSTR(MP_QSTR_size), + MP_ROM_QSTR(MP_QSTR_src), + MP_ROM_QSTR(MP_QSTR_a), + MP_ROM_QSTR(MP_QSTR_b), + MP_ROM_QSTR(MP_QSTR_raw), + MP_ROM_QSTR(MP_QSTR_gc_fnc), + MP_ROM_QSTR(MP_QSTR_cur_pt), + MP_ROM_QSTR(MP_QSTR_tmp_pt), + MP_ROM_QSTR(MP_QSTR_cur), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_bulletproof_20 = {{&mp_type_tuple}, 10, { + MP_ROM_QSTR(MP_QSTR_current_idx), + MP_ROM_QSTR(MP_QSTR_size), + MP_ROM_QSTR(MP_QSTR_src), + MP_ROM_QSTR(MP_QSTR_a), + MP_ROM_QSTR(MP_QSTR_b), + MP_ROM_QSTR(MP_QSTR_raw), + MP_ROM_QSTR(MP_QSTR_gc_fnc), + MP_ROM_QSTR(MP_QSTR_cur_sc), + MP_ROM_QSTR(MP_QSTR_tmp_sc), + MP_ROM_QSTR(MP_QSTR_cur), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_bulletproof_21 = {{&mp_type_tuple}, 6, { + MP_ROM_QSTR(MP_QSTR_nbits), + MP_ROM_QSTR(MP_QSTR_ch_), + MP_ROM_QSTR(MP_QSTR_chi), + MP_ROM_QSTR(MP_QSTR_precomp), + MP_ROM_QSTR(MP_QSTR_precomp_depth), + MP_ROM_QSTR(MP_QSTR_cur), +}}; +static const mp_obj_str_t const_obj_apps_monero_xmr_bulletproof_22 = {{&mp_type_str}, 34771, 29, (const byte*)"\x49\x6e\x63\x6f\x6d\x70\x61\x74\x69\x62\x6c\x65\x20\x73\x69\x7a\x65\x73\x20\x6f\x66\x20\x61\x20\x61\x6e\x64\x20\x62"}; +static const mp_obj_str_t const_obj_apps_monero_xmr_bulletproof_23 = {{&mp_type_str}, 30392, 28, (const byte*)"\x49\x6e\x64\x65\x78\x20\x6f\x75\x74\x20\x6f\x66\x20\x62\x6f\x75\x6e\x64\x73\x20\x7b\x7d\x20\x76\x73\x20\x7b\x7d"}; +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_bulletproof_28 = {{&mp_type_tuple}, 2, { + MP_ROM_INT(1), + MP_ROM_INT(0), +}}; +static const mp_obj_str_t const_obj_apps_monero_xmr_bulletproof_29 = {{&mp_type_str}, 60880, 25, (const byte*)"\x49\x6e\x70\x75\x74\x20\x73\x63\x61\x6c\x61\x72\x20\x6e\x6f\x74\x20\x69\x6e\x20\x72\x61\x6e\x67\x65"}; +static const mp_obj_str_t const_obj_apps_monero_xmr_bulletproof_30 = {{&mp_type_str}, 13729, 36, (const byte*)"\x56\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x68\x61\x76\x65\x20\x61\x74\x20\x6c\x65\x61\x73\x74\x20\x6f\x6e\x65\x20\x65\x6c\x65\x6d\x65\x6e\x74"}; +static const mp_obj_str_t const_obj_apps_monero_xmr_bulletproof_32 = {{&mp_type_str}, 35628, 31, (const byte*)"\x41\x74\x20\x6c\x65\x61\x73\x74\x20\x6f\x6e\x65\x20\x70\x72\x6f\x6f\x66\x20\x69\x73\x20\x74\x6f\x6f\x20\x6c\x61\x72\x67\x65"}; +static const mp_obj_str_t const_obj_apps_monero_xmr_bulletproof_35 = {{&mp_type_str}, 33100, 30, (const byte*)"\x50\x72\x6f\x6f\x66\x20\x69\x73\x20\x6e\x6f\x74\x20\x74\x68\x65\x20\x65\x78\x70\x65\x63\x74\x65\x64\x20\x73\x69\x7a\x65"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_xmr_bulletproof[37] = { + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_0), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_1), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_2), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_3), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_4), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_5), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_6), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_7), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_8), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_9), + MP_ROM_QSTR(MP_QSTR_cannot_space_invert_space_zero), + MP_ROM_QSTR(MP_QSTR_n_space_is_space_not_space_2_caret_x), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_12), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_13), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_14), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_15), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_16), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_17), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_18), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_19), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_20), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_21), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_22), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_23), + MP_ROM_QSTR(MP_QSTR_Constant_space_KeyV), + MP_ROM_QSTR(MP_QSTR_Unsupported), + MP_ROM_QSTR(MP_QSTR_Not_space_supported), + MP_ROM_QSTR(MP_QSTR__pipe_sv_pipe__space__bang__equals__space__pipe_gamma_pipe_), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_28), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_29), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_30), + MP_ROM_QSTR(MP_QSTR_Empty_space_proof), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_32), + MP_ROM_QSTR(MP_QSTR_zero_space_rounds), + MP_ROM_QSTR(MP_QSTR_challenges_bracket_open_j_bracket_close__space__equals__equals__space_0), + MP_ROM_PTR(&const_obj_apps_monero_xmr_bulletproof_35), + MP_ROM_QSTR(MP_QSTR_Verification_space_error), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_bulletproof = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_bulletproof, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_xmr_bulletproof, + }, + .rc = &raw_code_apps_monero_xmr_bulletproof__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_chacha_poly +// - original source file: build/firmware/src/apps/monero/xmr/chacha_poly.mpy +// - frozen file name: apps/monero/xmr/chacha_poly.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/chacha_poly.py, scope apps_monero_xmr_chacha_poly__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_chacha_poly__lt_module_gt_[53] = { + 0x08,0x10, // prelude + 0x01, // names: + 0x6c,0x88,0x0f,0x89,0x18,0x68,0x40, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'chacha20poly1305' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x02, // IMPORT_FROM 'chacha20poly1305' + 0x16,0x0f, // STORE_NAME 'ChaCha20Poly1305' + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x04, // STORE_NAME 'encrypt' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x09, // STORE_NAME '_decrypt' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x0d, // STORE_NAME 'encrypt_pack' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x0e, // STORE_NAME 'decrypt_pack' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_chacha_poly__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/chacha_poly.py, scope apps_monero_xmr_chacha_poly_encrypt +static const byte fun_data_apps_monero_xmr_chacha_poly_encrypt[74] = { + 0xd3,0x01,0x1c, // prelude + 0x04,0x10,0x11,0x12, // names: encrypt, key, plaintext, associated_data + 0x60,0x20,0x60,0x4b,0x27,0x27,0x23,0x27,0x27,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'random' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x05, // IMPORT_FROM 'random' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x06, // LOAD_METHOD 'bytes' + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0x12,0x0f, // LOAD_GLOBAL 'ChaCha20Poly1305' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb5, // LOAD_FAST 5 + 0x14,0x07, // LOAD_METHOD 'auth' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x14,0x04, // LOAD_METHOD 'encrypt' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x14,0x08, // LOAD_METHOD 'finish' + 0x36,0x00, // CALL_METHOD 0 + 0xc7, // STORE_FAST 7 + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0xf2, // BINARY_OP 27 __add__ + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_chacha_poly_encrypt = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_chacha_poly_encrypt, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 74, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_monero_xmr_chacha_poly_encrypt + 7, + .line_info_top = fun_data_apps_monero_xmr_chacha_poly_encrypt + 17, + .opcodes = fun_data_apps_monero_xmr_chacha_poly_encrypt + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_chacha_poly__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/chacha_poly.py, scope apps_monero_xmr_chacha_poly__decrypt +static const byte fun_data_apps_monero_xmr_chacha_poly__decrypt[96] = { + 0xe1,0x84,0x01,0x24, // prelude + 0x09,0x10,0x13,0x14,0x15,0x12, // names: _decrypt, key, iv, ciphertext, tag, associated_data + 0x80,0x19,0x60,0x4b,0x27,0x23,0x27,0x2f,0x27,0x26,0x29,0x47, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'monero' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x0a, // IMPORT_FROM 'monero' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'ChaCha20Poly1305' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb6, // LOAD_FAST 6 + 0x14,0x07, // LOAD_METHOD 'auth' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x70, // LOAD_CONST_SMALL_INT -16 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0x70, // LOAD_CONST_SMALL_INT -16 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x5a, // ROT_TWO + 0xc7, // STORE_FAST 7 + 0xc2, // STORE_FAST 2 + 0xb6, // LOAD_FAST 6 + 0x14,0x0b, // LOAD_METHOD 'decrypt' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc8, // STORE_FAST 8 + 0xb6, // LOAD_FAST 6 + 0x14,0x08, // LOAD_METHOD 'finish' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0xb5, // LOAD_FAST 5 + 0x14,0x0c, // LOAD_METHOD 'ct_equals' + 0xb3, // LOAD_FAST 3 + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x16, // LOAD_GLOBAL 'ValueError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb8, // LOAD_FAST 8 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_chacha_poly__decrypt = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_monero_xmr_chacha_poly__decrypt, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 96, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_monero_xmr_chacha_poly__decrypt + 10, + .line_info_top = fun_data_apps_monero_xmr_chacha_poly__decrypt + 22, + .opcodes = fun_data_apps_monero_xmr_chacha_poly__decrypt + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_chacha_poly__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/chacha_poly.py, scope apps_monero_xmr_chacha_poly_encrypt_pack +static const byte fun_data_apps_monero_xmr_chacha_poly_encrypt_pack[26] = { + 0xbb,0x01,0x0e, // prelude + 0x0d,0x10,0x11,0x12, // names: encrypt_pack, key, plaintext, associated_data + 0x80,0x2b,0x28, // code info + 0x12,0x04, // LOAD_GLOBAL 'encrypt' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_chacha_poly_encrypt_pack = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_chacha_poly_encrypt_pack, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_monero_xmr_chacha_poly_encrypt_pack + 7, + .line_info_top = fun_data_apps_monero_xmr_chacha_poly_encrypt_pack + 10, + .opcodes = fun_data_apps_monero_xmr_chacha_poly_encrypt_pack + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_chacha_poly__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/chacha_poly.py, scope apps_monero_xmr_chacha_poly_decrypt_pack +static const byte fun_data_apps_monero_xmr_chacha_poly_decrypt_pack[33] = { + 0x42,0x0c, // prelude + 0x0e,0x10,0x14, // names: decrypt_pack, key, ciphertext + 0x80,0x30,0x26, // code info + 0x12,0x17, // LOAD_GLOBAL 'memoryview' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x12,0x09, // LOAD_GLOBAL '_decrypt' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb2, // LOAD_FAST 2 + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x51, // LOAD_CONST_NONE + 0x34,0x04, // CALL_FUNCTION 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_chacha_poly_decrypt_pack = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_chacha_poly_decrypt_pack, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_monero_xmr_chacha_poly_decrypt_pack + 5, + .line_info_top = fun_data_apps_monero_xmr_chacha_poly_decrypt_pack + 8, + .opcodes = fun_data_apps_monero_xmr_chacha_poly_decrypt_pack + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_chacha_poly__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_chacha_poly_encrypt, + &raw_code_apps_monero_xmr_chacha_poly__decrypt, + &raw_code_apps_monero_xmr_chacha_poly_encrypt_pack, + &raw_code_apps_monero_xmr_chacha_poly_decrypt_pack, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_chacha_poly__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_chacha_poly__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 53, + #endif + .children = (void *)&children_apps_monero_xmr_chacha_poly__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_chacha_poly__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_chacha_poly__lt_module_gt_ + 10, + .opcodes = fun_data_apps_monero_xmr_chacha_poly__lt_module_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_chacha_poly[24] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_chacha_poly_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_chacha20poly1305, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_encrypt, + MP_QSTR_random, + MP_QSTR_bytes, + MP_QSTR_auth, + MP_QSTR_finish, + MP_QSTR__decrypt, + MP_QSTR_monero, + MP_QSTR_decrypt, + MP_QSTR_ct_equals, + MP_QSTR_encrypt_pack, + MP_QSTR_decrypt_pack, + MP_QSTR_ChaCha20Poly1305, + MP_QSTR_key, + MP_QSTR_plaintext, + MP_QSTR_associated_data, + MP_QSTR_iv, + MP_QSTR_ciphertext, + MP_QSTR_tag, + MP_QSTR_ValueError, + MP_QSTR_memoryview, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_xmr_chacha_poly[2] = { + MP_ROM_PTR(&mp_const_empty_bytes_obj), + MP_ROM_QSTR(MP_QSTR_tag_space_invalid), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_chacha_poly = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_chacha_poly, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_xmr_chacha_poly, + }, + .rc = &raw_code_apps_monero_xmr_chacha_poly__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_clsag +// - original source file: build/firmware/src/apps/monero/xmr/clsag.mpy +// - frozen file name: apps/monero/xmr/clsag.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/clsag.py, scope apps_monero_xmr_clsag__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_clsag__lt_module_gt_[47] = { + 0x08,0x1a, // prelude + 0x01, // names: + 0x80,0x2c,0x66,0x80,0x0f,0x24,0x24,0x64,0x84,0x2d,0x84,0x8b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'gc' + 0x16,0x02, // STORE_NAME 'gc' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x2e, // STORE_NAME '_HASH_KEY_CLSAG_ROUND' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x16,0x2f, // STORE_NAME '_HASH_KEY_CLSAG_AGG_0' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x16,0x30, // STORE_NAME '_HASH_KEY_CLSAG_AGG_1' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x03, // STORE_NAME 'generate_clsag_simple' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0c, // STORE_NAME '_generate_clsag' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x2c, // STORE_NAME '_key_vector' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_clsag__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/clsag.py, scope apps_monero_xmr_clsag_generate_clsag_simple +static const byte fun_data_apps_monero_xmr_clsag_generate_clsag_simple[142] = { + 0xb3,0x14,0x34, // prelude + 0x03,0x31,0x32,0x33,0x34,0x35,0x36,0x37, // names: generate_clsag_simple, message, pubs, in_sk, a, cout, index, mg_buff + 0x80,0x4c,0x80,0x0e,0x4b,0x26,0x25,0x47,0x26,0x26,0x24,0x4b,0x26,0x28,0x28,0x4d,0x22,0x47, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'crypto' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x04, // IMPORT_FROM 'crypto' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x12,0x38, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x39, // LOAD_GLOBAL 'ValueError' + 0x10,0x06, // LOAD_CONST_STRING 'Empty pubs' + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x2c, // LOAD_GLOBAL '_key_vector' + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0x12,0x2c, // LOAD_GLOBAL '_key_vector' + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0xca, // STORE_FAST 10 + 0xb2, // LOAD_FAST 2 + 0x13,0x07, // LOAD_ATTR 'dest' + 0xcb, // STORE_FAST 11 + 0xb7, // LOAD_FAST 7 + 0x14,0x08, // LOAD_METHOD 'sc_sub_into' + 0x51, // LOAD_CONST_NONE + 0xb2, // LOAD_FAST 2 + 0x13,0x09, // LOAD_ATTR 'mask' + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0xcc, // STORE_FAST 12 + 0xb8, // LOAD_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x58, // JUMP 24 + 0x57, // DUP_TOP + 0xcd, // STORE_FAST 13 + 0xb1, // LOAD_FAST 1 + 0xbd, // LOAD_FAST 13 + 0x55, // LOAD_SUBSCR + 0x13,0x07, // LOAD_ATTR 'dest' + 0xb9, // LOAD_FAST 9 + 0xbd, // LOAD_FAST 13 + 0x56, // STORE_SUBSCR + 0xb1, // LOAD_FAST 1 + 0xbd, // LOAD_FAST 13 + 0x55, // LOAD_SUBSCR + 0x13,0x0a, // LOAD_ATTR 'commitment' + 0xba, // LOAD_FAST 10 + 0xbd, // LOAD_FAST 13 + 0x56, // STORE_SUBSCR + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0xbd, // LOAD_FAST 13 + 0x56, // STORE_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x23, // POP_JUMP_IF_TRUE -29 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x28,0x01, // DELETE_FAST 1 + 0x12,0x02, // LOAD_GLOBAL 'gc' + 0x14,0x0b, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL '_generate_clsag' + 0xb0, // LOAD_FAST 0 + 0xb9, // LOAD_FAST 9 + 0xbb, // LOAD_FAST 11 + 0xba, // LOAD_FAST 10 + 0xbc, // LOAD_FAST 12 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x34,0x08, // CALL_FUNCTION 8 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_clsag_generate_clsag_simple = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 7, + .fun_data = fun_data_apps_monero_xmr_clsag_generate_clsag_simple, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 142, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 23, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 3, + .line_info = fun_data_apps_monero_xmr_clsag_generate_clsag_simple + 11, + .line_info_top = fun_data_apps_monero_xmr_clsag_generate_clsag_simple + 29, + .opcodes = fun_data_apps_monero_xmr_clsag_generate_clsag_simple + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_clsag__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/clsag.py, scope apps_monero_xmr_clsag__generate_clsag +static const byte fun_data_apps_monero_xmr_clsag__generate_clsag[1005] = { + 0x98,0xb0,0x04,0xd6,0x03, // prelude + 0x0c,0x31,0x3a,0x3b,0x3c,0x3d,0x3e,0x36,0x37, // names: _generate_clsag, message, P, p, C_nonzero, z, Cout, index, mg_buff + 0x80,0x7a,0x30,0x4b,0x24,0x24,0x24,0x24,0x44,0x25,0x25,0x25,0x27,0x25,0x25,0x48,0x25,0x25,0x47,0x2b,0x29,0x29,0x2a,0x2a,0x49,0x27,0x27,0x29,0x49,0x69,0x40,0x26,0x49,0x26,0x49,0x2c,0x27,0x27,0x2d,0x4d,0x26,0x27,0x26,0x27,0x2b,0x32,0x2b,0x32,0x27,0x46,0x28,0x2a,0x2e,0x2a,0x2e,0x2d,0x44,0x25,0x25,0x25,0x25,0x2b,0x26,0x4a,0x30,0x2b,0x54,0x23,0x28,0x4e,0x2a,0x6a,0x37,0x2c,0x2b,0x2a,0x6c,0x2c,0x30,0x53,0x28,0x2e,0x2e,0x4e,0x25,0x45,0x2c,0x26,0x4a,0x28,0x6e,0x29,0x2d,0x2e,0x4d,0x60,0x2d,0x28,0x28,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'crypto' + 0x10,0x0d, // LOAD_CONST_STRING 'crypto_helpers' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x05, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x04, // IMPORT_FROM 'crypto' + 0xc8, // STORE_FAST 8 + 0x1c,0x0d, // IMPORT_FROM 'crypto_helpers' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'int_serialize' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'apps.monero.xmr.serialize' + 0x1c,0x0e, // IMPORT_FROM 'int_serialize' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x13,0x10, // LOAD_ATTR 'Point' + 0xcb, // STORE_FAST 11 + 0xb8, // LOAD_FAST 8 + 0x13,0x11, // LOAD_ATTR 'Scalar' + 0xcc, // STORE_FAST 12 + 0xb8, // LOAD_FAST 8 + 0x13,0x12, // LOAD_ATTR 'encodepoint_into' + 0xcd, // STORE_FAST 13 + 0xb8, // LOAD_FAST 8 + 0x13,0x13, // LOAD_ATTR 'sc_mul_into' + 0xce, // STORE_FAST 14 + 0xb8, // LOAD_FAST 8 + 0x13,0x14, // LOAD_ATTR 'scalarmult_into' + 0xcf, // STORE_FAST 15 + 0xbb, // LOAD_FAST 11 + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x10, // STORE_FAST_N 16 + 0xbb, // LOAD_FAST 11 + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x11, // STORE_FAST_N 17 + 0xbc, // LOAD_FAST 12 + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x12, // STORE_FAST_N 18 + 0xb8, // LOAD_FAST 8 + 0x14,0x15, // LOAD_METHOD 'random_scalar' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x13, // STORE_FAST_N 19 + 0xbb, // LOAD_FAST 11 + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x14, // STORE_FAST_N 20 + 0xbb, // LOAD_FAST 11 + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x15, // STORE_FAST_N 21 + 0xb9, // LOAD_FAST 9 + 0x14,0x16, // LOAD_METHOD 'encodepoint' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x16, // STORE_FAST_N 22 + 0xbc, // LOAD_FAST 12 + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x17, // STORE_FAST_N 23 + 0xbb, // LOAD_FAST 11 + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x18, // STORE_FAST_N 24 + 0x12,0x3f, // LOAD_GLOBAL 'bytearray' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x19, // STORE_FAST_N 25 + 0xb8, // LOAD_FAST 8 + 0x14,0x17, // LOAD_METHOD 'hash_to_point_into' + 0x24,0x14, // LOAD_FAST_N 20 + 0xb1, // LOAD_FAST 1 + 0xb6, // LOAD_FAST 6 + 0x55, // LOAD_SUBSCR + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xbf, // LOAD_FAST 15 + 0x24,0x10, // LOAD_FAST_N 16 + 0x24,0x14, // LOAD_FAST_N 20 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xbf, // LOAD_FAST 15 + 0x24,0x15, // LOAD_FAST_N 21 + 0x24,0x14, // LOAD_FAST_N 20 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x24,0x17, // LOAD_FAST_N 23 + 0xb4, // LOAD_FAST 4 + 0xb9, // LOAD_FAST 9 + 0x13,0x18, // LOAD_ATTR 'INV_EIGHT_SC' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xbf, // LOAD_FAST 15 + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x14, // LOAD_FAST_N 20 + 0x24,0x17, // LOAD_FAST_N 23 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x14,0x16, // LOAD_METHOD 'encodepoint' + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x11, // STORE_FAST_N 17 + 0xb9, // LOAD_FAST 9 + 0x14,0x19, // LOAD_METHOD 'get_keccak' + 0x36,0x00, // CALL_METHOD 0 + 0x27,0x28, // STORE_DEREF 40 + 0xb9, // LOAD_FAST 9 + 0x14,0x19, // LOAD_METHOD 'get_keccak' + 0x36,0x00, // CALL_METHOD 0 + 0x27,0x29, // STORE_DEREF 41 + 0x25,0x28, // LOAD_DEREF 40 + 0x14,0x1a, // LOAD_METHOD 'update' + 0x12,0x2f, // LOAD_GLOBAL '_HASH_KEY_CLSAG_AGG_0' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x25,0x29, // LOAD_DEREF 41 + 0x14,0x1a, // LOAD_METHOD 'update' + 0x12,0x30, // LOAD_GLOBAL '_HASH_KEY_CLSAG_AGG_1' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x24,0x28, // LOAD_FAST_N 40 + 0x24,0x29, // LOAD_FAST_N 41 + 0x20,0x00,0x02, // MAKE_CLOSURE 0 + 0x26,0x1a, // STORE_FAST_N 26 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x0b, // FOR_ITER 11 + 0x26,0x1b, // STORE_FAST_N 27 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x24,0x1b, // LOAD_FAST_N 27 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x33, // JUMP -13 + 0xb3, // LOAD_FAST 3 + 0x5f, // GET_ITER_STACK + 0x4b,0x0b, // FOR_ITER 11 + 0x26,0x1b, // STORE_FAST_N 27 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x24,0x1b, // LOAD_FAST_N 27 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x33, // JUMP -13 + 0x24,0x1a, // LOAD_FAST_N 26 + 0xbd, // LOAD_FAST 13 + 0x24,0x19, // LOAD_FAST_N 25 + 0x24,0x10, // LOAD_FAST_N 16 + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x24,0x1a, // LOAD_FAST_N 26 + 0x24,0x11, // LOAD_FAST_N 17 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x24,0x1a, // LOAD_FAST_N 26 + 0x24,0x16, // LOAD_FAST_N 22 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x14,0x1b, // LOAD_METHOD 'decodeint' + 0x25,0x28, // LOAD_DEREF 40 + 0x14,0x1c, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x1c, // STORE_FAST_N 28 + 0xb9, // LOAD_FAST 9 + 0x14,0x1b, // LOAD_METHOD 'decodeint' + 0x25,0x29, // LOAD_DEREF 41 + 0x14,0x1c, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x1d, // STORE_FAST_N 29 + 0x28,0x1a, // DELETE_FAST 26 + 0x29,0x28, // DELETE_DEREF 40 + 0x29,0x29, // DELETE_DEREF 41 + 0xb9, // LOAD_FAST 9 + 0x14,0x19, // LOAD_METHOD 'get_keccak' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x1e, // STORE_FAST_N 30 + 0x24,0x1e, // LOAD_FAST_N 30 + 0x13,0x1a, // LOAD_ATTR 'update' + 0x26,0x1f, // STORE_FAST_N 31 + 0x24,0x1f, // LOAD_FAST_N 31 + 0x12,0x2e, // LOAD_GLOBAL '_HASH_KEY_CLSAG_ROUND' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x38, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x4e, // JUMP 14 + 0x57, // DUP_TOP + 0x26,0x20, // STORE_FAST_N 32 + 0x24,0x1f, // LOAD_FAST_N 31 + 0xb1, // LOAD_FAST 1 + 0x24,0x20, // LOAD_FAST_N 32 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2d, // POP_JUMP_IF_TRUE -19 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x38, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x4e, // JUMP 14 + 0x57, // DUP_TOP + 0x26,0x20, // STORE_FAST_N 32 + 0x24,0x1f, // LOAD_FAST_N 31 + 0xb3, // LOAD_FAST 3 + 0x24,0x20, // LOAD_FAST_N 32 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2d, // POP_JUMP_IF_TRUE -19 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x24,0x1f, // LOAD_FAST_N 31 + 0x24,0x16, // LOAD_FAST_N 22 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x24,0x1f, // LOAD_FAST_N 31 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x24,0x1e, // LOAD_FAST_N 30 + 0x14,0x1d, // LOAD_METHOD 'copy' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x21, // STORE_FAST_N 33 + 0xb8, // LOAD_FAST 8 + 0x14,0x1e, // LOAD_METHOD 'scalarmult_base_into' + 0x24,0x18, // LOAD_FAST_N 24 + 0x24,0x13, // LOAD_FAST_N 19 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x24,0x21, // LOAD_FAST_N 33 + 0x14,0x1a, // LOAD_METHOD 'update' + 0xbd, // LOAD_FAST 13 + 0x24,0x19, // LOAD_FAST_N 25 + 0x24,0x18, // LOAD_FAST_N 24 + 0x34,0x02, // CALL_FUNCTION 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xbf, // LOAD_FAST 15 + 0x24,0x18, // LOAD_FAST_N 24 + 0x24,0x14, // LOAD_FAST_N 20 + 0x24,0x13, // LOAD_FAST_N 19 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x24,0x21, // LOAD_FAST_N 33 + 0x14,0x1a, // LOAD_METHOD 'update' + 0xbd, // LOAD_FAST 13 + 0x24,0x19, // LOAD_FAST_N 25 + 0x24,0x18, // LOAD_FAST_N 24 + 0x34,0x02, // CALL_FUNCTION 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x14,0x1b, // LOAD_METHOD 'decodeint' + 0x24,0x21, // LOAD_FAST_N 33 + 0x14,0x1c, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x22, // STORE_FAST_N 34 + 0x28,0x21, // DELETE_FAST 33 + 0x28,0x14, // DELETE_FAST 20 + 0xbb, // LOAD_FAST 11 + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x23, // STORE_FAST_N 35 + 0xbb, // LOAD_FAST 11 + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x24, // STORE_FAST_N 36 + 0xbc, // LOAD_FAST 12 + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x25, // STORE_FAST_N 37 + 0xbc, // LOAD_FAST 12 + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x26, // STORE_FAST_N 38 + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x12,0x38, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf8, // BINARY_OP 33 __mod__ + 0x26,0x20, // STORE_FAST_N 32 + 0x24,0x20, // LOAD_FAST_N 32 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb8, // LOAD_FAST 8 + 0x14,0x1f, // LOAD_METHOD 'sc_copy' + 0x24,0x12, // LOAD_FAST_N 18 + 0x24,0x22, // LOAD_FAST_N 34 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x20, // LOAD_METHOD 'append' + 0xba, // LOAD_FAST 10 + 0x14,0x21, // LOAD_METHOD 'dump_uvarint_b' + 0x12,0x38, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x38, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x50, // JUMP 16 + 0x57, // DUP_TOP + 0x26,0x27, // STORE_FAST_N 39 + 0xb7, // LOAD_FAST 7 + 0x14,0x20, // LOAD_METHOD 'append' + 0x12,0x3f, // LOAD_GLOBAL 'bytearray' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2b, // POP_JUMP_IF_TRUE -21 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x42,0x84,0x82, // JUMP 260 + 0xb8, // LOAD_FAST 8 + 0x14,0x15, // LOAD_METHOD 'random_scalar' + 0x24,0x17, // LOAD_FAST_N 23 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x22, // LOAD_METHOD 'encodeint_into' + 0xb7, // LOAD_FAST 7 + 0x24,0x20, // LOAD_FAST_N 32 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x55, // LOAD_SUBSCR + 0x24,0x17, // LOAD_FAST_N 23 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x24,0x25, // LOAD_FAST_N 37 + 0x24,0x1c, // LOAD_FAST_N 28 + 0x24,0x22, // LOAD_FAST_N 34 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x24,0x26, // LOAD_FAST_N 38 + 0x24,0x1d, // LOAD_FAST_N 29 + 0x24,0x22, // LOAD_FAST_N 34 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x23, // LOAD_METHOD 'add_keys2_into' + 0x24,0x23, // LOAD_FAST_N 35 + 0x24,0x17, // LOAD_FAST_N 23 + 0x24,0x25, // LOAD_FAST_N 37 + 0xb8, // LOAD_FAST 8 + 0x14,0x24, // LOAD_METHOD 'decodepoint_into' + 0x24,0x18, // LOAD_FAST_N 24 + 0xb1, // LOAD_FAST 1 + 0x24,0x20, // LOAD_FAST_N 32 + 0x55, // LOAD_SUBSCR + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x24, // LOAD_METHOD 'decodepoint_into' + 0x24,0x18, // LOAD_FAST_N 24 + 0xb3, // LOAD_FAST 3 + 0x24,0x20, // LOAD_FAST_N 32 + 0x55, // LOAD_SUBSCR + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x25, // LOAD_METHOD 'point_sub_into' + 0x24,0x18, // LOAD_FAST_N 24 + 0x24,0x18, // LOAD_FAST_N 24 + 0xb5, // LOAD_FAST 5 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xbf, // LOAD_FAST 15 + 0x24,0x18, // LOAD_FAST_N 24 + 0x24,0x18, // LOAD_FAST_N 24 + 0x24,0x26, // LOAD_FAST_N 38 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x26, // LOAD_METHOD 'point_add_into' + 0x24,0x23, // LOAD_FAST_N 35 + 0x24,0x23, // LOAD_FAST_N 35 + 0x24,0x18, // LOAD_FAST_N 24 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x17, // LOAD_METHOD 'hash_to_point_into' + 0x24,0x18, // LOAD_FAST_N 24 + 0xb1, // LOAD_FAST 1 + 0x24,0x20, // LOAD_FAST_N 32 + 0x55, // LOAD_SUBSCR + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x27, // LOAD_METHOD 'add_keys3_into' + 0x24,0x24, // LOAD_FAST_N 36 + 0x24,0x17, // LOAD_FAST_N 23 + 0x24,0x18, // LOAD_FAST_N 24 + 0x24,0x25, // LOAD_FAST_N 37 + 0x24,0x10, // LOAD_FAST_N 16 + 0x36,0x05, // CALL_METHOD 5 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x26, // LOAD_METHOD 'point_add_into' + 0x24,0x24, // LOAD_FAST_N 36 + 0x24,0x24, // LOAD_FAST_N 36 + 0xbf, // LOAD_FAST 15 + 0x24,0x18, // LOAD_FAST_N 24 + 0x24,0x15, // LOAD_FAST_N 21 + 0x24,0x26, // LOAD_FAST_N 38 + 0x34,0x03, // CALL_FUNCTION 3 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x24,0x1e, // LOAD_FAST_N 30 + 0x14,0x1d, // LOAD_METHOD 'copy' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x21, // STORE_FAST_N 33 + 0x24,0x21, // LOAD_FAST_N 33 + 0x14,0x1a, // LOAD_METHOD 'update' + 0xbd, // LOAD_FAST 13 + 0x24,0x19, // LOAD_FAST_N 25 + 0x24,0x23, // LOAD_FAST_N 35 + 0x34,0x02, // CALL_FUNCTION 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x24,0x21, // LOAD_FAST_N 33 + 0x14,0x1a, // LOAD_METHOD 'update' + 0xbd, // LOAD_FAST 13 + 0x24,0x19, // LOAD_FAST_N 25 + 0x24,0x24, // LOAD_FAST_N 36 + 0x34,0x02, // CALL_FUNCTION 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x28, // LOAD_METHOD 'decodeint_into' + 0x24,0x22, // LOAD_FAST_N 34 + 0x24,0x21, // LOAD_FAST_N 33 + 0x14,0x1c, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x24,0x20, // LOAD_FAST_N 32 + 0x56, // STORE_SUBSCR + 0x51, // LOAD_CONST_NONE + 0xb3, // LOAD_FAST 3 + 0x24,0x20, // LOAD_FAST_N 32 + 0x56, // STORE_SUBSCR + 0x24,0x20, // LOAD_FAST_N 32 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x12,0x38, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf8, // BINARY_OP 33 __mod__ + 0x26,0x20, // STORE_FAST_N 32 + 0x24,0x20, // LOAD_FAST_N 32 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb8, // LOAD_FAST 8 + 0x14,0x1f, // LOAD_METHOD 'sc_copy' + 0x24,0x12, // LOAD_FAST_N 18 + 0x24,0x22, // LOAD_FAST_N 34 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x24,0x20, // LOAD_FAST_N 32 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xef, // BINARY_OP 24 __and__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'gc' + 0x14,0x0b, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x24,0x20, // LOAD_FAST_N 32 + 0xb6, // LOAD_FAST 6 + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0xf5,0x7d, // POP_JUMP_IF_TRUE -267 + 0xbe, // LOAD_FAST 14 + 0x24,0x17, // LOAD_FAST_N 23 + 0x24,0x1c, // LOAD_FAST_N 28 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x29, // LOAD_METHOD 'sc_muladd_into' + 0x24,0x17, // LOAD_FAST_N 23 + 0x24,0x1d, // LOAD_FAST_N 29 + 0xb4, // LOAD_FAST 4 + 0x24,0x17, // LOAD_FAST_N 23 + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x2a, // LOAD_METHOD 'sc_mulsub_into' + 0x24,0x17, // LOAD_FAST_N 23 + 0x24,0x22, // LOAD_FAST_N 34 + 0x24,0x17, // LOAD_FAST_N 23 + 0x24,0x13, // LOAD_FAST_N 19 + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x14,0x22, // LOAD_METHOD 'encodeint_into' + 0xb7, // LOAD_FAST 7 + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x55, // LOAD_SUBSCR + 0x24,0x17, // LOAD_FAST_N 23 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x20, // LOAD_METHOD 'append' + 0xb9, // LOAD_FAST 9 + 0x14,0x2b, // LOAD_METHOD 'encodeint' + 0x24,0x12, // LOAD_FAST_N 18 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x20, // LOAD_METHOD 'append' + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_clsag__generate_clsag +// frozen bytecode for file apps/monero/xmr/clsag.py, scope apps_monero_xmr_clsag__generate_clsag_hsh_PC +static const byte fun_data_apps_monero_xmr_clsag__generate_clsag_hsh_PC[28] = { + 0x2b,0x10, // prelude + 0x2d,0x41,0x41,0x42, // names: hsh_PC, *, *, x + 0x80,0x9c,0x20,0x28, // code info + 0x25,0x00, // LOAD_DEREF 0 + 0x14,0x1a, // LOAD_METHOD 'update' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x25,0x01, // LOAD_DEREF 1 + 0x14,0x1a, // LOAD_METHOD 'update' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_clsag__generate_clsag_hsh_PC = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_clsag__generate_clsag_hsh_PC, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_monero_xmr_clsag__generate_clsag_hsh_PC + 6, + .line_info_top = fun_data_apps_monero_xmr_clsag__generate_clsag_hsh_PC + 10, + .opcodes = fun_data_apps_monero_xmr_clsag__generate_clsag_hsh_PC + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_clsag__generate_clsag[] = { + &raw_code_apps_monero_xmr_clsag__generate_clsag_hsh_PC, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_clsag__generate_clsag = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 8, + .fun_data = fun_data_apps_monero_xmr_clsag__generate_clsag, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 1005, + #endif + .children = (void *)&children_apps_monero_xmr_clsag__generate_clsag, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 52, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 8, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_monero_xmr_clsag__generate_clsag + 14, + .line_info_top = fun_data_apps_monero_xmr_clsag__generate_clsag + 112, + .opcodes = fun_data_apps_monero_xmr_clsag__generate_clsag + 114, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_clsag__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/clsag.py, scope apps_monero_xmr_clsag__key_vector +static const byte fun_data_apps_monero_xmr_clsag__key_vector[12] = { + 0x11,0x08, // prelude + 0x2c,0x40, // names: _key_vector, rows + 0x80,0xfc, // code info + 0x51, // LOAD_CONST_NONE + 0x2b,0x01, // BUILD_LIST 1 + 0xb0, // LOAD_FAST 0 + 0xf4, // BINARY_OP 29 __mul__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_clsag__key_vector = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_clsag__key_vector, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 44, + .line_info = fun_data_apps_monero_xmr_clsag__key_vector + 4, + .line_info_top = fun_data_apps_monero_xmr_clsag__key_vector + 6, + .opcodes = fun_data_apps_monero_xmr_clsag__key_vector + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_clsag__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_clsag_generate_clsag_simple, + &raw_code_apps_monero_xmr_clsag__generate_clsag, + &raw_code_apps_monero_xmr_clsag__key_vector, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_clsag__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_clsag__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = (void *)&children_apps_monero_xmr_clsag__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_clsag__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_clsag__lt_module_gt_ + 15, + .opcodes = fun_data_apps_monero_xmr_clsag__lt_module_gt_ + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_clsag[67] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_clsag_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_gc, + MP_QSTR_generate_clsag_simple, + MP_QSTR_crypto, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_Empty_space_pubs, + MP_QSTR_dest, + MP_QSTR_sc_sub_into, + MP_QSTR_mask, + MP_QSTR_commitment, + MP_QSTR_collect, + MP_QSTR__generate_clsag, + MP_QSTR_crypto_helpers, + MP_QSTR_int_serialize, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize, + MP_QSTR_Point, + MP_QSTR_Scalar, + MP_QSTR_encodepoint_into, + MP_QSTR_sc_mul_into, + MP_QSTR_scalarmult_into, + MP_QSTR_random_scalar, + MP_QSTR_encodepoint, + MP_QSTR_hash_to_point_into, + MP_QSTR_INV_EIGHT_SC, + MP_QSTR_get_keccak, + MP_QSTR_update, + MP_QSTR_decodeint, + MP_QSTR_digest, + MP_QSTR_copy, + MP_QSTR_scalarmult_base_into, + MP_QSTR_sc_copy, + MP_QSTR_append, + MP_QSTR_dump_uvarint_b, + MP_QSTR_encodeint_into, + MP_QSTR_add_keys2_into, + MP_QSTR_decodepoint_into, + MP_QSTR_point_sub_into, + MP_QSTR_point_add_into, + MP_QSTR_add_keys3_into, + MP_QSTR_decodeint_into, + MP_QSTR_sc_muladd_into, + MP_QSTR_sc_mulsub_into, + MP_QSTR_encodeint, + MP_QSTR__key_vector, + MP_QSTR_hsh_PC, + MP_QSTR__HASH_KEY_CLSAG_ROUND, + MP_QSTR__HASH_KEY_CLSAG_AGG_0, + MP_QSTR__HASH_KEY_CLSAG_AGG_1, + MP_QSTR_message, + MP_QSTR_pubs, + MP_QSTR_in_sk, + MP_QSTR_a, + MP_QSTR_cout, + MP_QSTR_index, + MP_QSTR_mg_buff, + MP_QSTR_len, + MP_QSTR_ValueError, + MP_QSTR_P, + MP_QSTR_p, + MP_QSTR_C_nonzero, + MP_QSTR_z, + MP_QSTR_Cout, + MP_QSTR_bytearray, + MP_QSTR_rows, + MP_QSTR__star_, + MP_QSTR_x, +}; + +// constants +static const mp_obj_str_t const_obj_apps_monero_xmr_clsag_0 = {{&mp_type_bytes}, 54114, 32, (const byte*)"\x43\x4c\x53\x41\x47\x5f\x72\x6f\x75\x6e\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}; +static const mp_obj_str_t const_obj_apps_monero_xmr_clsag_1 = {{&mp_type_bytes}, 62254, 32, (const byte*)"\x43\x4c\x53\x41\x47\x5f\x61\x67\x67\x5f\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}; +static const mp_obj_str_t const_obj_apps_monero_xmr_clsag_2 = {{&mp_type_bytes}, 15823, 32, (const byte*)"\x43\x4c\x53\x41\x47\x5f\x61\x67\x67\x5f\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_xmr_clsag[3] = { + MP_ROM_PTR(&const_obj_apps_monero_xmr_clsag_0), + MP_ROM_PTR(&const_obj_apps_monero_xmr_clsag_1), + MP_ROM_PTR(&const_obj_apps_monero_xmr_clsag_2), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_clsag = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_clsag, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_xmr_clsag, + }, + .rc = &raw_code_apps_monero_xmr_clsag__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_credentials +// - original source file: build/firmware/src/apps/monero/xmr/credentials.mpy +// - frozen file name: apps/monero/xmr/credentials.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/credentials.py, scope apps_monero_xmr_credentials__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_credentials__lt_module_gt_[17] = { + 0x10,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x60, // code info + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x02, // LOAD_CONST_STRING 'AccountCreds' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x02, // STORE_NAME 'AccountCreds' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_credentials__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/credentials.py, scope apps_monero_xmr_credentials_AccountCreds +static const byte fun_data_apps_monero_xmr_credentials_AccountCreds[35] = { + 0x10,0x0e, // prelude + 0x02, // names: AccountCreds + 0x88,0x09,0x60,0x20,0x84,0x10, // code info + 0x11,0x17, // LOAD_NAME '__name__' + 0x16,0x18, // STORE_NAME '__module__' + 0x10,0x02, // LOAD_CONST_STRING 'AccountCreds' + 0x16,0x19, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x03, // STORE_NAME '__init__' + 0x11,0x1a, // LOAD_NAME 'classmethod' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x0a, // STORE_NAME 'new_wallet' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_credentials_AccountCreds +// frozen bytecode for file apps/monero/xmr/credentials.py, scope apps_monero_xmr_credentials_AccountCreds___init__ +static const byte fun_data_apps_monero_xmr_credentials_AccountCreds___init__[44] = { + 0xc3,0x04,0x1e, // prelude + 0x03,0x1b,0x04,0x06,0x05,0x07,0x08,0x09, // names: __init__, self, view_key_private, spend_key_private, view_key_public, spend_key_public, address, network_type + 0x80,0x16,0x24,0x24,0x24,0x24,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x04, // STORE_ATTR 'view_key_private' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x05, // STORE_ATTR 'view_key_public' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x06, // STORE_ATTR 'spend_key_private' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x07, // STORE_ATTR 'spend_key_public' + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x18,0x08, // STORE_ATTR 'address' + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x18,0x09, // STORE_ATTR 'network_type' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_credentials_AccountCreds___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 7, + .fun_data = fun_data_apps_monero_xmr_credentials_AccountCreds___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 3, + .line_info = fun_data_apps_monero_xmr_credentials_AccountCreds___init__ + 11, + .line_info_top = fun_data_apps_monero_xmr_credentials_AccountCreds___init__ + 18, + .opcodes = fun_data_apps_monero_xmr_credentials_AccountCreds___init__ + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_credentials_AccountCreds +// frozen bytecode for file apps/monero/xmr/credentials.py, scope apps_monero_xmr_credentials_AccountCreds_new_wallet +static const byte fun_data_apps_monero_xmr_credentials_AccountCreds_new_wallet[126] = { + 0x90,0x15,0x26, // prelude + 0x0a,0x1c,0x1d,0x1e,0x09, // names: new_wallet, cls, priv_view_key, priv_spend_key, network_type + 0x80,0x24,0x4b,0x30,0x2b,0x4b,0x25,0x44,0x28,0x28,0x21,0x24,0x26,0x49, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'MoneroNetworkType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.enums' + 0x1c,0x0b, // IMPORT_FROM 'MoneroNetworkType' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'crypto' + 0x10,0x0e, // LOAD_CONST_STRING 'crypto_helpers' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0f, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x0d, // IMPORT_FROM 'crypto' + 0xc5, // STORE_FAST 5 + 0x1c,0x0e, // IMPORT_FROM 'crypto_helpers' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'encode_addr' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'apps.monero.xmr.addresses' + 0x1c,0x10, // IMPORT_FROM 'encode_addr' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x12, // LOAD_CONST_STRING 'net_version' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME 'apps.monero.xmr.networks' + 0x1c,0x12, // IMPORT_FROM 'net_version' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb4, // LOAD_FAST 4 + 0x13,0x14, // LOAD_ATTR 'MAINNET' + 0xc3, // STORE_FAST 3 + 0xb5, // LOAD_FAST 5 + 0x14,0x15, // LOAD_METHOD 'scalarmult_base_into' + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0xc9, // STORE_FAST 9 + 0xb5, // LOAD_FAST 5 + 0x14,0x15, // LOAD_METHOD 'scalarmult_base_into' + 0x51, // LOAD_CONST_NONE + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0xca, // STORE_FAST 10 + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb6, // LOAD_FAST 6 + 0x14,0x16, // LOAD_METHOD 'encodepoint' + 0xba, // LOAD_FAST 10 + 0x36,0x01, // CALL_METHOD 1 + 0xb6, // LOAD_FAST 6 + 0x14,0x16, // LOAD_METHOD 'encodepoint' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0xcb, // STORE_FAST 11 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb9, // LOAD_FAST 9 + 0xba, // LOAD_FAST 10 + 0xbb, // LOAD_FAST 11 + 0xb3, // LOAD_FAST 3 + 0x34,0x06, // CALL_FUNCTION 6 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_credentials_AccountCreds_new_wallet = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_credentials_AccountCreds_new_wallet, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 126, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_monero_xmr_credentials_AccountCreds_new_wallet + 8, + .line_info_top = fun_data_apps_monero_xmr_credentials_AccountCreds_new_wallet + 22, + .opcodes = fun_data_apps_monero_xmr_credentials_AccountCreds_new_wallet + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_credentials_AccountCreds[] = { + &raw_code_apps_monero_xmr_credentials_AccountCreds___init__, + &raw_code_apps_monero_xmr_credentials_AccountCreds_new_wallet, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_credentials_AccountCreds = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_credentials_AccountCreds, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = (void *)&children_apps_monero_xmr_credentials_AccountCreds, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_monero_xmr_credentials_AccountCreds + 3, + .line_info_top = fun_data_apps_monero_xmr_credentials_AccountCreds + 9, + .opcodes = fun_data_apps_monero_xmr_credentials_AccountCreds + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_credentials__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_credentials_AccountCreds, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_credentials__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_credentials__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = (void *)&children_apps_monero_xmr_credentials__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_credentials__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_credentials__lt_module_gt_ + 6, + .opcodes = fun_data_apps_monero_xmr_credentials__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_credentials[31] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_credentials_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_AccountCreds, + MP_QSTR___init__, + MP_QSTR_view_key_private, + MP_QSTR_view_key_public, + MP_QSTR_spend_key_private, + MP_QSTR_spend_key_public, + MP_QSTR_address, + MP_QSTR_network_type, + MP_QSTR_new_wallet, + MP_QSTR_MoneroNetworkType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_crypto, + MP_QSTR_crypto_helpers, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_encode_addr, + MP_QSTR_apps_dot_monero_dot_xmr_dot_addresses, + MP_QSTR_net_version, + MP_QSTR_apps_dot_monero_dot_xmr_dot_networks, + MP_QSTR_MAINNET, + MP_QSTR_scalarmult_base_into, + MP_QSTR_encodepoint, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_classmethod, + MP_QSTR_self, + MP_QSTR_cls, + MP_QSTR_priv_view_key, + MP_QSTR_priv_spend_key, +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_credentials = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_credentials, + .obj_table = NULL, + }, + .rc = &raw_code_apps_monero_xmr_credentials__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_crypto_helpers +// - original source file: build/firmware/src/apps/monero/xmr/crypto_helpers.mpy +// - frozen file name: apps/monero/xmr/crypto_helpers.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/crypto_helpers.py, scope apps_monero_xmr_crypto_helpers__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_crypto_helpers__lt_module_gt_[140] = { + 0x08,0x42, // prelude + 0x01, // names: + 0x80,0x0b,0x4c,0x60,0x20,0x66,0x68,0x60,0x88,0x07,0x84,0x1c,0x64,0x20,0x68,0x20,0x68,0x20,0x64,0x20,0x24,0x68,0x84,0x09,0x84,0x08,0x84,0x0a,0x84,0x0a,0x89,0x0a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'monero' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x02, // IMPORT_FROM 'monero' + 0x16,0x24, // STORE_NAME 'tcry' + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf4, // BINARY_OP 29 __mul__ + 0x16,0x25, // STORE_NAME 'NULL_KEY_ENC' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x04, // STORE_NAME 'get_keccak' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x09, // STORE_NAME 'keccak_2hash' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0b, // STORE_NAME 'compute_hmac' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x0f, // STORE_NAME 'decodepoint' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x04, // MAKE_FUNCTION_DEFARGS 4 + 0x16,0x11, // STORE_NAME 'encodepoint' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x05, // MAKE_FUNCTION_DEFARGS 5 + 0x16,0x13, // STORE_NAME 'encodeint' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x15, // STORE_NAME 'decodeint' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x16,0x26, // STORE_NAME 'INV_EIGHT' + 0x11,0x15, // LOAD_NAME 'decodeint' + 0x11,0x26, // LOAD_NAME 'INV_EIGHT' + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x27, // STORE_NAME 'INV_EIGHT_SC' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x17, // STORE_NAME 'generate_key_derivation' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x1b, // STORE_NAME 'derivation_to_scalar' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x1d, // STORE_NAME 'derive_public_key' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x1f, // STORE_NAME 'derive_secret_key' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x0b, // MAKE_FUNCTION_DEFARGS 11 + 0x16,0x21, // STORE_NAME 'get_subaddress_secret_key' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x23, // STORE_NAME 'xor8' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_crypto_helpers__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/crypto_helpers.py, scope apps_monero_xmr_crypto_helpers_get_keccak +static const byte fun_data_apps_monero_xmr_crypto_helpers_get_keccak[30] = { + 0xb1,0x01,0x0a, // prelude + 0x04,0x07, // names: get_keccak, data + 0x80,0x15,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'sha3_256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x05, // IMPORT_FROM 'sha3_256' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x10,0x07, // LOAD_CONST_STRING 'data' + 0xb0, // LOAD_FAST 0 + 0x10,0x08, // LOAD_CONST_STRING 'keccak' + 0x52, // LOAD_CONST_TRUE + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_crypto_helpers_get_keccak = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_crypto_helpers_get_keccak, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_monero_xmr_crypto_helpers_get_keccak + 5, + .line_info_top = fun_data_apps_monero_xmr_crypto_helpers_get_keccak + 8, + .opcodes = fun_data_apps_monero_xmr_crypto_helpers_get_keccak + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_crypto_helpers__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/crypto_helpers.py, scope apps_monero_xmr_crypto_helpers_keccak_2hash +static const byte fun_data_apps_monero_xmr_crypto_helpers_keccak_2hash[43] = { + 0xaa,0x01,0x10, // prelude + 0x09,0x28,0x29, // names: keccak_2hash, inp, buff + 0x80,0x1b,0x2c,0x29,0x29, // code info + 0xb1, // LOAD_FAST 1 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0xb1, // LOAD_FAST 1 + 0x42,0x45, // JUMP 5 + 0x12,0x2a, // LOAD_GLOBAL 'bytearray' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0x12,0x24, // LOAD_GLOBAL 'tcry' + 0x14,0x0a, // LOAD_METHOD 'fast_hash_into' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x24, // LOAD_GLOBAL 'tcry' + 0x14,0x0a, // LOAD_METHOD 'fast_hash_into' + 0xb1, // LOAD_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_crypto_helpers_keccak_2hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_crypto_helpers_keccak_2hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_monero_xmr_crypto_helpers_keccak_2hash + 6, + .line_info_top = fun_data_apps_monero_xmr_crypto_helpers_keccak_2hash + 11, + .opcodes = fun_data_apps_monero_xmr_crypto_helpers_keccak_2hash + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_crypto_helpers__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/crypto_helpers.py, scope apps_monero_xmr_crypto_helpers_compute_hmac +static const byte fun_data_apps_monero_xmr_crypto_helpers_compute_hmac[202] = { + 0x72,0x30, // prelude + 0x0b,0x2b,0x2c, // names: compute_hmac, key, msg + 0x80,0x22,0x23,0x24,0x24,0x29,0x29,0x26,0x26,0x2e,0x2a,0x33,0x27,0x27,0x24,0x26,0x2f,0x2a,0x33,0x27,0x2b, // code info + 0x12,0x04, // LOAD_GLOBAL 'get_keccak' + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x13,0x0c, // LOAD_ATTR 'block_size' + 0xc4, // STORE_FAST 4 + 0x12,0x2d, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb4, // LOAD_FAST 4 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x0d, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc0, // STORE_FAST 0 + 0x12,0x2a, // LOAD_GLOBAL 'bytearray' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x49, // JUMP 9 + 0x57, // DUP_TOP + 0xc6, // STORE_FAST 6 + 0x22,0x36, // LOAD_CONST_SMALL_INT 54 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x56, // STORE_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x32, // POP_JUMP_IF_TRUE -14 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x2d, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x4e, // JUMP 14 + 0x57, // DUP_TOP + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x58, // DUP_TOP_TWO + 0x55, // LOAD_SUBSCR + 0xb0, // LOAD_FAST 0 + 0xb6, // LOAD_FAST 6 + 0x55, // LOAD_SUBSCR + 0xe1, // BINARY_OP 10 __ixor__ + 0x5b, // ROT_THREE + 0x56, // STORE_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2d, // POP_JUMP_IF_TRUE -19 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x0e, // LOAD_METHOD 'update' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x0e, // LOAD_METHOD 'update' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc7, // STORE_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x4a, // JUMP 10 + 0x57, // DUP_TOP + 0xc6, // STORE_FAST 6 + 0x22,0x80,0x5c, // LOAD_CONST_SMALL_INT 92 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x56, // STORE_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x31, // POP_JUMP_IF_TRUE -15 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x2d, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x4e, // JUMP 14 + 0x57, // DUP_TOP + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x58, // DUP_TOP_TWO + 0x55, // LOAD_SUBSCR + 0xb0, // LOAD_FAST 0 + 0xb6, // LOAD_FAST 6 + 0x55, // LOAD_SUBSCR + 0xe1, // BINARY_OP 10 __ixor__ + 0x5b, // ROT_THREE + 0x56, // STORE_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2d, // POP_JUMP_IF_TRUE -19 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x0e, // LOAD_METHOD 'update' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x0e, // LOAD_METHOD 'update' + 0xb3, // LOAD_FAST 3 + 0x14,0x0d, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x0d, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_crypto_helpers_compute_hmac = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_crypto_helpers_compute_hmac, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 202, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_apps_monero_xmr_crypto_helpers_compute_hmac + 5, + .line_info_top = fun_data_apps_monero_xmr_crypto_helpers_compute_hmac + 26, + .opcodes = fun_data_apps_monero_xmr_crypto_helpers_compute_hmac + 26, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_crypto_helpers__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/crypto_helpers.py, scope apps_monero_xmr_crypto_helpers_decodepoint +static const byte fun_data_apps_monero_xmr_crypto_helpers_decodepoint[15] = { + 0x21,0x08, // prelude + 0x0f,0x2e, // names: decodepoint, x + 0x80,0x3e, // code info + 0x12,0x24, // LOAD_GLOBAL 'tcry' + 0x14,0x10, // LOAD_METHOD 'decodepoint_into' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_crypto_helpers_decodepoint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_crypto_helpers_decodepoint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_monero_xmr_crypto_helpers_decodepoint + 4, + .line_info_top = fun_data_apps_monero_xmr_crypto_helpers_decodepoint + 6, + .opcodes = fun_data_apps_monero_xmr_crypto_helpers_decodepoint + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_crypto_helpers__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/crypto_helpers.py, scope apps_monero_xmr_crypto_helpers_encodepoint +static const byte fun_data_apps_monero_xmr_crypto_helpers_encodepoint[18] = { + 0xb2,0x01,0x0a, // prelude + 0x11,0x2e,0x2f, // names: encodepoint, x, offset + 0x80,0x42, // code info + 0x12,0x24, // LOAD_GLOBAL 'tcry' + 0x14,0x12, // LOAD_METHOD 'encodepoint_into' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_crypto_helpers_encodepoint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_crypto_helpers_encodepoint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 17, + .line_info = fun_data_apps_monero_xmr_crypto_helpers_encodepoint + 6, + .line_info_top = fun_data_apps_monero_xmr_crypto_helpers_encodepoint + 8, + .opcodes = fun_data_apps_monero_xmr_crypto_helpers_encodepoint + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_crypto_helpers__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/crypto_helpers.py, scope apps_monero_xmr_crypto_helpers_encodeint +static const byte fun_data_apps_monero_xmr_crypto_helpers_encodeint[18] = { + 0xb2,0x01,0x0a, // prelude + 0x13,0x2e,0x2f, // names: encodeint, x, offset + 0x80,0x46, // code info + 0x12,0x24, // LOAD_GLOBAL 'tcry' + 0x14,0x14, // LOAD_METHOD 'encodeint_into' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_crypto_helpers_encodeint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_crypto_helpers_encodeint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_monero_xmr_crypto_helpers_encodeint + 6, + .line_info_top = fun_data_apps_monero_xmr_crypto_helpers_encodeint + 8, + .opcodes = fun_data_apps_monero_xmr_crypto_helpers_encodeint + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_crypto_helpers__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/crypto_helpers.py, scope apps_monero_xmr_crypto_helpers_decodeint +static const byte fun_data_apps_monero_xmr_crypto_helpers_decodeint[15] = { + 0x21,0x08, // prelude + 0x15,0x2e, // names: decodeint, x + 0x80,0x4a, // code info + 0x12,0x24, // LOAD_GLOBAL 'tcry' + 0x14,0x16, // LOAD_METHOD 'decodeint_into' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_crypto_helpers_decodeint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_crypto_helpers_decodeint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_monero_xmr_crypto_helpers_decodeint + 4, + .line_info_top = fun_data_apps_monero_xmr_crypto_helpers_decodeint + 6, + .opcodes = fun_data_apps_monero_xmr_crypto_helpers_decodeint + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_crypto_helpers__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/crypto_helpers.py, scope apps_monero_xmr_crypto_helpers_generate_key_derivation +static const byte fun_data_apps_monero_xmr_crypto_helpers_generate_key_derivation[36] = { + 0x32,0x10, // prelude + 0x17,0x30,0x31, // names: generate_key_derivation, pub, sec + 0x80,0x52,0x60,0x28,0x28, // code info + 0x12,0x24, // LOAD_GLOBAL 'tcry' + 0x14,0x18, // LOAD_METHOD 'sc_check' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x24, // LOAD_GLOBAL 'tcry' + 0x14,0x19, // LOAD_METHOD 'ge25519_check' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x24, // LOAD_GLOBAL 'tcry' + 0x14,0x1a, // LOAD_METHOD 'xmr_generate_key_derivation' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_crypto_helpers_generate_key_derivation = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_crypto_helpers_generate_key_derivation, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_monero_xmr_crypto_helpers_generate_key_derivation + 5, + .line_info_top = fun_data_apps_monero_xmr_crypto_helpers_generate_key_derivation + 10, + .opcodes = fun_data_apps_monero_xmr_crypto_helpers_generate_key_derivation + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_crypto_helpers__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/crypto_helpers.py, scope apps_monero_xmr_crypto_helpers_derivation_to_scalar +static const byte fun_data_apps_monero_xmr_crypto_helpers_derivation_to_scalar[27] = { + 0x32,0x0e, // prelude + 0x1b,0x32,0x33, // names: derivation_to_scalar, derivation, output_index + 0x80,0x5b,0x60,0x28, // code info + 0x12,0x24, // LOAD_GLOBAL 'tcry' + 0x14,0x19, // LOAD_METHOD 'ge25519_check' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x24, // LOAD_GLOBAL 'tcry' + 0x14,0x1c, // LOAD_METHOD 'xmr_derivation_to_scalar' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_crypto_helpers_derivation_to_scalar = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_crypto_helpers_derivation_to_scalar, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 27, + .line_info = fun_data_apps_monero_xmr_crypto_helpers_derivation_to_scalar + 5, + .line_info_top = fun_data_apps_monero_xmr_crypto_helpers_derivation_to_scalar + 9, + .opcodes = fun_data_apps_monero_xmr_crypto_helpers_derivation_to_scalar + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_crypto_helpers__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/crypto_helpers.py, scope apps_monero_xmr_crypto_helpers_derive_public_key +static const byte fun_data_apps_monero_xmr_crypto_helpers_derive_public_key[29] = { + 0x43,0x10, // prelude + 0x1d,0x32,0x33,0x34, // names: derive_public_key, derivation, output_index, B + 0x80,0x65,0x60,0x28, // code info + 0x12,0x24, // LOAD_GLOBAL 'tcry' + 0x14,0x19, // LOAD_METHOD 'ge25519_check' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x24, // LOAD_GLOBAL 'tcry' + 0x14,0x1e, // LOAD_METHOD 'xmr_derive_public_key' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x04, // CALL_METHOD 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_crypto_helpers_derive_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_crypto_helpers_derive_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_apps_monero_xmr_crypto_helpers_derive_public_key + 6, + .line_info_top = fun_data_apps_monero_xmr_crypto_helpers_derive_public_key + 10, + .opcodes = fun_data_apps_monero_xmr_crypto_helpers_derive_public_key + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_crypto_helpers__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/crypto_helpers.py, scope apps_monero_xmr_crypto_helpers_derive_secret_key +static const byte fun_data_apps_monero_xmr_crypto_helpers_derive_secret_key[29] = { + 0x43,0x10, // prelude + 0x1f,0x32,0x33,0x35, // names: derive_secret_key, derivation, output_index, base + 0x80,0x6f,0x60,0x28, // code info + 0x12,0x24, // LOAD_GLOBAL 'tcry' + 0x14,0x18, // LOAD_METHOD 'sc_check' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x24, // LOAD_GLOBAL 'tcry' + 0x14,0x20, // LOAD_METHOD 'xmr_derive_private_key' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x04, // CALL_METHOD 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_crypto_helpers_derive_secret_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_crypto_helpers_derive_secret_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_monero_xmr_crypto_helpers_derive_secret_key + 6, + .line_info_top = fun_data_apps_monero_xmr_crypto_helpers_derive_secret_key + 10, + .opcodes = fun_data_apps_monero_xmr_crypto_helpers_derive_secret_key + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_crypto_helpers__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/crypto_helpers.py, scope apps_monero_xmr_crypto_helpers_get_subaddress_secret_key +static const byte fun_data_apps_monero_xmr_crypto_helpers_get_subaddress_secret_key[23] = { + 0xc3,0x80,0x01,0x10, // prelude + 0x21,0x36,0x37,0x38, // names: get_subaddress_secret_key, secret_key, major, minor + 0x80,0x79,0x60,0x20, // code info + 0x12,0x24, // LOAD_GLOBAL 'tcry' + 0x14,0x22, // LOAD_METHOD 'xmr_get_subaddress_secret_key' + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x36,0x04, // CALL_METHOD 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_crypto_helpers_get_subaddress_secret_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_crypto_helpers_get_subaddress_secret_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_monero_xmr_crypto_helpers_get_subaddress_secret_key + 8, + .line_info_top = fun_data_apps_monero_xmr_crypto_helpers_get_subaddress_secret_key + 12, + .opcodes = fun_data_apps_monero_xmr_crypto_helpers_get_subaddress_secret_key + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_crypto_helpers__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/crypto_helpers.py, scope apps_monero_xmr_crypto_helpers_xor8 +static const byte fun_data_apps_monero_xmr_crypto_helpers_xor8[34] = { + 0x42,0x0e, // prelude + 0x23,0x29,0x2b, // names: xor8, buff, key + 0x80,0x81,0x25,0x32, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x4e, // JUMP 14 + 0x57, // DUP_TOP + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x58, // DUP_TOP_TWO + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0xe1, // BINARY_OP 10 __ixor__ + 0x5b, // ROT_THREE + 0x56, // STORE_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x57, // DUP_TOP + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2d, // POP_JUMP_IF_TRUE -19 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_crypto_helpers_xor8 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_crypto_helpers_xor8, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_monero_xmr_crypto_helpers_xor8 + 5, + .line_info_top = fun_data_apps_monero_xmr_crypto_helpers_xor8 + 9, + .opcodes = fun_data_apps_monero_xmr_crypto_helpers_xor8 + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_crypto_helpers__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_crypto_helpers_get_keccak, + &raw_code_apps_monero_xmr_crypto_helpers_keccak_2hash, + &raw_code_apps_monero_xmr_crypto_helpers_compute_hmac, + &raw_code_apps_monero_xmr_crypto_helpers_decodepoint, + &raw_code_apps_monero_xmr_crypto_helpers_encodepoint, + &raw_code_apps_monero_xmr_crypto_helpers_encodeint, + &raw_code_apps_monero_xmr_crypto_helpers_decodeint, + &raw_code_apps_monero_xmr_crypto_helpers_generate_key_derivation, + &raw_code_apps_monero_xmr_crypto_helpers_derivation_to_scalar, + &raw_code_apps_monero_xmr_crypto_helpers_derive_public_key, + &raw_code_apps_monero_xmr_crypto_helpers_derive_secret_key, + &raw_code_apps_monero_xmr_crypto_helpers_get_subaddress_secret_key, + &raw_code_apps_monero_xmr_crypto_helpers_xor8, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_crypto_helpers__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_crypto_helpers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 140, + #endif + .children = (void *)&children_apps_monero_xmr_crypto_helpers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 13, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_crypto_helpers__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_crypto_helpers__lt_module_gt_ + 35, + .opcodes = fun_data_apps_monero_xmr_crypto_helpers__lt_module_gt_ + 35, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_crypto_helpers[57] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_crypto_helpers_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_monero, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_get_keccak, + MP_QSTR_sha3_256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_data, + MP_QSTR_keccak, + MP_QSTR_keccak_2hash, + MP_QSTR_fast_hash_into, + MP_QSTR_compute_hmac, + MP_QSTR_block_size, + MP_QSTR_digest, + MP_QSTR_update, + MP_QSTR_decodepoint, + MP_QSTR_decodepoint_into, + MP_QSTR_encodepoint, + MP_QSTR_encodepoint_into, + MP_QSTR_encodeint, + MP_QSTR_encodeint_into, + MP_QSTR_decodeint, + MP_QSTR_decodeint_into, + MP_QSTR_generate_key_derivation, + MP_QSTR_sc_check, + MP_QSTR_ge25519_check, + MP_QSTR_xmr_generate_key_derivation, + MP_QSTR_derivation_to_scalar, + MP_QSTR_xmr_derivation_to_scalar, + MP_QSTR_derive_public_key, + MP_QSTR_xmr_derive_public_key, + MP_QSTR_derive_secret_key, + MP_QSTR_xmr_derive_private_key, + MP_QSTR_get_subaddress_secret_key, + MP_QSTR_xmr_get_subaddress_secret_key, + MP_QSTR_xor8, + MP_QSTR_tcry, + MP_QSTR_NULL_KEY_ENC, + MP_QSTR_INV_EIGHT, + MP_QSTR_INV_EIGHT_SC, + MP_QSTR_inp, + MP_QSTR_buff, + MP_QSTR_bytearray, + MP_QSTR_key, + MP_QSTR_msg, + MP_QSTR_len, + MP_QSTR_x, + MP_QSTR_offset, + MP_QSTR_pub, + MP_QSTR_sec, + MP_QSTR_derivation, + MP_QSTR_output_index, + MP_QSTR_B, + MP_QSTR_base, + MP_QSTR_secret_key, + MP_QSTR_major, + MP_QSTR_minor, +}; + +// constants +static const mp_obj_str_t const_obj_apps_monero_xmr_crypto_helpers_0 = {{&mp_type_bytes}, 46501, 1, (const byte*)"\x00"}; +static const mp_obj_str_t const_obj_apps_monero_xmr_crypto_helpers_1 = {{&mp_type_bytes}, 2705, 32, (const byte*)"\x79\x2f\xdc\xe2\x29\xe5\x06\x61\xd0\xda\x1c\x7d\xb3\x9d\xd3\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_xmr_crypto_helpers[2] = { + MP_ROM_PTR(&const_obj_apps_monero_xmr_crypto_helpers_0), + MP_ROM_PTR(&const_obj_apps_monero_xmr_crypto_helpers_1), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_crypto_helpers = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_crypto_helpers, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_xmr_crypto_helpers, + }, + .rc = &raw_code_apps_monero_xmr_crypto_helpers__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_keccak_hasher +// - original source file: build/firmware/src/apps/monero/xmr/keccak_hasher.mpy +// - frozen file name: apps/monero/xmr/keccak_hasher.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/keccak_hasher.py, scope apps_monero_xmr_keccak_hasher__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_keccak_hasher__lt_module_gt_[40] = { + 0x10,0x0e, // prelude + 0x01, // names: + 0x40,0x4c,0x60,0x20,0x89,0x11, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'int_serialize' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.monero.xmr.serialize' + 0x1c,0x02, // IMPORT_FROM 'int_serialize' + 0x16,0x02, // STORE_NAME 'int_serialize' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x04, // LOAD_CONST_STRING 'KeccakXmrArchive' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x04, // STORE_NAME 'KeccakXmrArchive' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x05, // STORE_NAME 'get_keccak_writer' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_keccak_hasher__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/keccak_hasher.py, scope apps_monero_xmr_keccak_hasher_KeccakXmrArchive +static const byte fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive[43] = { + 0x08,0x0e, // prelude + 0x04, // names: KeccakXmrArchive + 0x88,0x09,0x68,0x64,0x64,0x64, // code info + 0x11,0x14, // LOAD_NAME '__name__' + 0x16,0x15, // STORE_NAME '__module__' + 0x10,0x04, // LOAD_CONST_STRING 'KeccakXmrArchive' + 0x16,0x16, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x0b, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0d, // STORE_NAME 'get_digest' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0e, // STORE_NAME 'buffer' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x10, // STORE_NAME 'uvarint' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x12, // STORE_NAME 'uint' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_keccak_hasher_KeccakXmrArchive +// frozen bytecode for file apps/monero/xmr/keccak_hasher.py, scope apps_monero_xmr_keccak_hasher_KeccakXmrArchive___init__ +static const byte fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive___init__[18] = { + 0x9a,0x01,0x0a, // prelude + 0x0b,0x18,0x17, // names: __init__, self, ctx + 0x80,0x0a, // code info + 0x12,0x05, // LOAD_GLOBAL 'get_keccak_writer' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x0c, // STORE_ATTR 'kwriter' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_keccak_hasher_KeccakXmrArchive___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 11, + .line_info = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive___init__ + 6, + .line_info_top = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive___init__ + 8, + .opcodes = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive___init__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_keccak_hasher_KeccakXmrArchive +// frozen bytecode for file apps/monero/xmr/keccak_hasher.py, scope apps_monero_xmr_keccak_hasher_KeccakXmrArchive_get_digest +static const byte fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_get_digest[14] = { + 0x11,0x08, // prelude + 0x0d,0x18, // names: get_digest, self + 0x80,0x0d, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'kwriter' + 0x14,0x0d, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_get_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_get_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_get_digest + 4, + .line_info_top = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_get_digest + 6, + .opcodes = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_get_digest + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_keccak_hasher_KeccakXmrArchive +// frozen bytecode for file apps/monero/xmr/keccak_hasher.py, scope apps_monero_xmr_keccak_hasher_KeccakXmrArchive_buffer +static const byte fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_buffer[16] = { + 0x22,0x0a, // prelude + 0x0e,0x18,0x19, // names: buffer, self, buf + 0x80,0x10, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'kwriter' + 0x14,0x0f, // LOAD_METHOD 'write' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_buffer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_buffer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_buffer + 5, + .line_info_top = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_buffer + 7, + .opcodes = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_buffer + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_keccak_hasher_KeccakXmrArchive +// frozen bytecode for file apps/monero/xmr/keccak_hasher.py, scope apps_monero_xmr_keccak_hasher_KeccakXmrArchive_uvarint +static const byte fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_uvarint[20] = { + 0x2a,0x0a, // prelude + 0x10,0x18,0x1a, // names: uvarint, self, i + 0x80,0x13, // code info + 0x12,0x02, // LOAD_GLOBAL 'int_serialize' + 0x14,0x11, // LOAD_METHOD 'dump_uvarint' + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'kwriter' + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_uvarint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_uvarint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_uvarint + 5, + .line_info_top = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_uvarint + 7, + .opcodes = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_uvarint + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_keccak_hasher_KeccakXmrArchive +// frozen bytecode for file apps/monero/xmr/keccak_hasher.py, scope apps_monero_xmr_keccak_hasher_KeccakXmrArchive_uint +static const byte fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_uint[22] = { + 0x3b,0x0c, // prelude + 0x12,0x18,0x1a,0x1b, // names: uint, self, i, width + 0x80,0x16, // code info + 0x12,0x02, // LOAD_GLOBAL 'int_serialize' + 0x14,0x13, // LOAD_METHOD 'dump_uint' + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'kwriter' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_uint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_uint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_uint + 6, + .line_info_top = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_uint + 8, + .opcodes = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_uint + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_keccak_hasher_KeccakXmrArchive[] = { + &raw_code_apps_monero_xmr_keccak_hasher_KeccakXmrArchive___init__, + &raw_code_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_get_digest, + &raw_code_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_buffer, + &raw_code_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_uvarint, + &raw_code_apps_monero_xmr_keccak_hasher_KeccakXmrArchive_uint, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_keccak_hasher_KeccakXmrArchive = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = (void *)&children_apps_monero_xmr_keccak_hasher_KeccakXmrArchive, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive + 3, + .line_info_top = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive + 9, + .opcodes = fun_data_apps_monero_xmr_keccak_hasher_KeccakXmrArchive + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_keccak_hasher__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/keccak_hasher.py, scope apps_monero_xmr_keccak_hasher_get_keccak_writer +static const byte fun_data_apps_monero_xmr_keccak_hasher_get_keccak_writer[49] = { + 0xa1,0x01,0x10, // prelude + 0x05,0x17, // names: get_keccak_writer, ctx + 0x80,0x1a,0x4b,0x4b,0x25,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'HashWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.utils' + 0x1c,0x06, // IMPORT_FROM 'HashWriter' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'crypto_helpers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x08, // IMPORT_FROM 'crypto_helpers' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb2, // LOAD_FAST 2 + 0x14,0x0a, // LOAD_METHOD 'get_keccak' + 0x36,0x00, // CALL_METHOD 0 + 0xc0, // STORE_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_keccak_hasher_get_keccak_writer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_keccak_hasher_get_keccak_writer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_monero_xmr_keccak_hasher_get_keccak_writer + 5, + .line_info_top = fun_data_apps_monero_xmr_keccak_hasher_get_keccak_writer + 11, + .opcodes = fun_data_apps_monero_xmr_keccak_hasher_get_keccak_writer + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_keccak_hasher__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_keccak_hasher_KeccakXmrArchive, + &raw_code_apps_monero_xmr_keccak_hasher_get_keccak_writer, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_keccak_hasher__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_keccak_hasher__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 40, + #endif + .children = (void *)&children_apps_monero_xmr_keccak_hasher__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_keccak_hasher__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_keccak_hasher__lt_module_gt_ + 9, + .opcodes = fun_data_apps_monero_xmr_keccak_hasher__lt_module_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_keccak_hasher[28] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_keccak_hasher_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_int_serialize, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize, + MP_QSTR_KeccakXmrArchive, + MP_QSTR_get_keccak_writer, + MP_QSTR_HashWriter, + MP_QSTR_trezor_dot_utils, + MP_QSTR_crypto_helpers, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_get_keccak, + MP_QSTR___init__, + MP_QSTR_kwriter, + MP_QSTR_get_digest, + MP_QSTR_buffer, + MP_QSTR_write, + MP_QSTR_uvarint, + MP_QSTR_dump_uvarint, + MP_QSTR_uint, + MP_QSTR_dump_uint, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_ctx, + MP_QSTR_self, + MP_QSTR_buf, + MP_QSTR_i, + MP_QSTR_width, +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_keccak_hasher = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_keccak_hasher, + .obj_table = NULL, + }, + .rc = &raw_code_apps_monero_xmr_keccak_hasher__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_key_image +// - original source file: build/firmware/src/apps/monero/xmr/key_image.mpy +// - frozen file name: apps/monero/xmr/key_image.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/key_image.py, scope apps_monero_xmr_key_image__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_key_image__lt_module_gt_[47] = { + 0x10,0x12, // prelude + 0x01, // names: + 0x40,0x52,0x80,0x0a,0x84,0x0f,0x84,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'crypto_helpers' + 0x10,0x03, // LOAD_CONST_STRING 'monero' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x04, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x02, // IMPORT_FROM 'crypto_helpers' + 0x16,0x02, // STORE_NAME 'crypto_helpers' + 0x1c,0x03, // IMPORT_FROM 'monero' + 0x16,0x03, // STORE_NAME 'monero' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x05, // STORE_NAME 'compute_hash' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0f, // STORE_NAME 'export_key_image' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x15, // STORE_NAME 'generate_ring_signature' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_key_image__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/key_image.py, scope apps_monero_xmr_key_image_compute_hash +static const byte fun_data_apps_monero_xmr_key_image_compute_hash[86] = { + 0x51,0x1a, // prelude + 0x05,0x29, // names: compute_hash, rr + 0x80,0x0f,0x4b,0x27,0x44,0x27,0x27,0x25,0x27,0x27,0x2a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'dump_uvarint_b' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'apps.monero.xmr.serialize.int_serialize' + 0x1c,0x06, // IMPORT_FROM 'dump_uvarint_b' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x08, // LOAD_METHOD 'get_keccak' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x13,0x09, // LOAD_ATTR 'update' + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x0a, // LOAD_ATTR 'out_key' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'tx_pub_key' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'additional_tx_pub_keys' + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'additional_tx_pub_keys' + 0x5f, // GET_ITER_STACK + 0x4b,0x08, // FOR_ITER 8 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x36, // JUMP -10 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'internal_output_index' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x0e, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_key_image_compute_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_key_image_compute_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 86, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_monero_xmr_key_image_compute_hash + 4, + .line_info_top = fun_data_apps_monero_xmr_key_image_compute_hash + 15, + .opcodes = fun_data_apps_monero_xmr_key_image_compute_hash + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_key_image__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/key_image.py, scope apps_monero_xmr_key_image_export_key_image +static const byte fun_data_apps_monero_xmr_key_image_export_key_image[162] = { + 0xbb,0x10,0x34, // prelude + 0x0f,0x2a,0x2b,0x2c, // names: export_key_image, creds, subaddresses, td + 0x80,0x20,0x45,0x27,0x27,0x44,0x22,0x29,0x4c,0x2b,0x27,0x21,0x6a,0x40,0x69,0x60,0x23,0x23,0x46,0x4b,0x28,0x4d, // code info + 0x12,0x02, // LOAD_GLOBAL 'crypto_helpers' + 0x13,0x10, // LOAD_ATTR 'decodepoint' + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x0a, // LOAD_ATTR 'out_key' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x13,0x0b, // LOAD_ATTR 'tx_pub_key' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x13,0x0c, // LOAD_ATTR 'additional_tx_pub_keys' + 0xc6, // STORE_FAST 6 + 0x51, // LOAD_CONST_NONE + 0xc7, // STORE_FAST 7 + 0x12,0x2d, // LOAD_GLOBAL 'len' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb3, // LOAD_FAST 3 + 0xb6, // LOAD_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0x42,0x60, // JUMP 32 + 0xb6, // LOAD_FAST 6 + 0x44,0x5d, // POP_JUMP_IF_FALSE 29 + 0xb2, // LOAD_FAST 2 + 0x13,0x0d, // LOAD_ATTR 'internal_output_index' + 0x12,0x2d, // LOAD_GLOBAL 'len' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x2e, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0xb6, // LOAD_FAST 6 + 0xb2, // LOAD_FAST 2 + 0x13,0x0d, // LOAD_ATTR 'internal_output_index' + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0x42,0x40, // JUMP 0 + 0x12,0x03, // LOAD_GLOBAL 'monero' + 0x14,0x11, // LOAD_METHOD 'generate_tx_spend_and_key_image_and_derivation' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xb7, // LOAD_FAST 7 + 0xb2, // LOAD_FAST 2 + 0x13,0x0d, // LOAD_ATTR 'internal_output_index' + 0xb2, // LOAD_FAST 2 + 0x13,0x12, // LOAD_ATTR 'sub_addr_major' + 0xb2, // LOAD_FAST 2 + 0x13,0x13, // LOAD_ATTR 'sub_addr_minor' + 0x36,0x08, // CALL_METHOD 8 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x51, // LOAD_CONST_NONE + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc9, // STORE_FAST 9 + 0xca, // STORE_FAST 10 + 0xcb, // STORE_FAST 11 + 0x12,0x02, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x14, // LOAD_METHOD 'encodepoint' + 0xba, // LOAD_FAST 10 + 0x36,0x01, // CALL_METHOD 1 + 0xcc, // STORE_FAST 12 + 0x12,0x15, // LOAD_GLOBAL 'generate_ring_signature' + 0xbc, // LOAD_FAST 12 + 0xba, // LOAD_FAST 10 + 0xb4, // LOAD_FAST 4 + 0x2b,0x01, // BUILD_LIST 1 + 0xb9, // LOAD_FAST 9 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x52, // LOAD_CONST_TRUE + 0x34,0x06, // CALL_FUNCTION 6 + 0xcd, // STORE_FAST 13 + 0xba, // LOAD_FAST 10 + 0xbd, // LOAD_FAST 13 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_key_image_export_key_image = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_key_image_export_key_image, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 162, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 24, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_monero_xmr_key_image_export_key_image + 7, + .line_info_top = fun_data_apps_monero_xmr_key_image_export_key_image + 29, + .opcodes = fun_data_apps_monero_xmr_key_image_export_key_image + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_key_image__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/key_image.py, scope apps_monero_xmr_key_image_generate_ring_signature +static const byte fun_data_apps_monero_xmr_key_image_generate_ring_signature[557] = { + 0xfa,0x15,0x72, // prelude + 0x15,0x2f,0x30,0x31,0x32,0x33,0x34, // names: generate_ring_signature, prefix_hash, image, pubs, sec, sec_idx, test + 0x80,0x4c,0x60,0x20,0x4b,0x4b,0x24,0x44,0x24,0x28,0x2b,0x47,0x31,0x29,0x27,0x25,0x49,0x26,0x30,0x29,0x46,0x26,0x25,0x44,0x2b,0x5a,0x2c,0x27,0x26,0x29,0x2e,0x44,0x32,0x2b,0x2e,0x67,0x31,0x26,0x26,0x52,0x2e,0x44,0x30,0x39,0x2e,0x44,0x5b,0x29,0x30,0x34, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x16, // LOAD_CONST_STRING 'memcpy' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x17, // IMPORT_NAME 'trezor.utils' + 0x1c,0x16, // IMPORT_FROM 'memcpy' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x18, // LOAD_CONST_STRING 'crypto' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x18, // IMPORT_FROM 'crypto' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x13,0x19, // LOAD_ATTR 'Scalar' + 0xc8, // STORE_FAST 8 + 0xb7, // LOAD_FAST 7 + 0x13,0x1a, // LOAD_ATTR 'encodepoint_into' + 0xc9, // STORE_FAST 9 + 0xb5, // LOAD_FAST 5 + 0x44,0xc9,0x80, // POP_JUMP_IF_FALSE 73 + 0xb7, // LOAD_FAST 7 + 0x14,0x1b, // LOAD_METHOD 'scalarmult_base_into' + 0x51, // LOAD_CONST_NONE + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0xca, // STORE_FAST 10 + 0xb7, // LOAD_FAST 7 + 0x14,0x1c, // LOAD_METHOD 'point_eq' + 0xba, // LOAD_FAST 10 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x55, // LOAD_SUBSCR + 0x36,0x02, // CALL_METHOD 2 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x2e, // LOAD_GLOBAL 'ValueError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x03, // LOAD_GLOBAL 'monero' + 0x14,0x1d, // LOAD_METHOD 'generate_key_image' + 0x12,0x02, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x14, // LOAD_METHOD 'encodepoint' + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0xcb, // STORE_FAST 11 + 0xb7, // LOAD_FAST 7 + 0x14,0x1c, // LOAD_METHOD 'point_eq' + 0xbb, // LOAD_FAST 11 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x2e, // LOAD_GLOBAL 'ValueError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xcc, // STORE_FAST 12 + 0xb7, // LOAD_FAST 7 + 0x14,0x1e, // LOAD_METHOD 'ge25519_check' + 0xbc, // LOAD_FAST 12 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x12,0x2d, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcd, // STORE_FAST 13 + 0x12,0x35, // LOAD_GLOBAL 'bytearray' + 0xbd, // LOAD_FAST 13 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf4, // BINARY_OP 29 __mul__ + 0x12,0x2d, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf4, // BINARY_OP 29 __mul__ + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xce, // STORE_FAST 14 + 0xb6, // LOAD_FAST 6 + 0xbe, // LOAD_FAST 14 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xbd, // LOAD_FAST 13 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0x12,0x36, // LOAD_GLOBAL 'memoryview' + 0xbe, // LOAD_FAST 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcf, // STORE_FAST 15 + 0xb8, // LOAD_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x10, // STORE_FAST_N 16 + 0xb8, // LOAD_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcc, // STORE_FAST 12 + 0x2b,0x00, // BUILD_LIST 0 + 0x26,0x11, // STORE_FAST_N 17 + 0x12,0x2d, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x56, // JUMP 22 + 0x57, // DUP_TOP + 0x26,0x12, // STORE_FAST_N 18 + 0x24,0x11, // LOAD_FAST_N 17 + 0x14,0x1f, // LOAD_METHOD 'append' + 0xb8, // LOAD_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb8, // LOAD_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2b,0x02, // BUILD_LIST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x25, // POP_JUMP_IF_TRUE -27 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x2d, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xec,0x81, // JUMP 236 + 0x57, // DUP_TOP + 0x26,0x13, // STORE_FAST_N 19 + 0x24,0x13, // LOAD_FAST_N 19 + 0xb4, // LOAD_FAST 4 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xd3,0x80, // POP_JUMP_IF_FALSE 83 + 0xb7, // LOAD_FAST 7 + 0x14,0x20, // LOAD_METHOD 'random_scalar' + 0x36,0x00, // CALL_METHOD 0 + 0xcc, // STORE_FAST 12 + 0xb7, // LOAD_FAST 7 + 0x14,0x1b, // LOAD_METHOD 'scalarmult_base_into' + 0x51, // LOAD_CONST_NONE + 0xbc, // LOAD_FAST 12 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x14, // STORE_FAST_N 20 + 0xb9, // LOAD_FAST 9 + 0xbf, // LOAD_FAST 15 + 0xbd, // LOAD_FAST 13 + 0xbd, // LOAD_FAST 13 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf2, // BINARY_OP 27 __add__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x24,0x14, // LOAD_FAST_N 20 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbd, // LOAD_FAST 13 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xe5, // BINARY_OP 14 __iadd__ + 0xcd, // STORE_FAST 13 + 0xb7, // LOAD_FAST 7 + 0x14,0x21, // LOAD_METHOD 'hash_to_point_into' + 0x51, // LOAD_CONST_NONE + 0x12,0x02, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x14, // LOAD_METHOD 'encodepoint' + 0xb2, // LOAD_FAST 2 + 0x24,0x13, // LOAD_FAST_N 19 + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x14, // STORE_FAST_N 20 + 0xb7, // LOAD_FAST 7 + 0x14,0x22, // LOAD_METHOD 'scalarmult_into' + 0x51, // LOAD_CONST_NONE + 0x24,0x14, // LOAD_FAST_N 20 + 0xbc, // LOAD_FAST 12 + 0x36,0x03, // CALL_METHOD 3 + 0x26,0x15, // STORE_FAST_N 21 + 0xb9, // LOAD_FAST 9 + 0xbf, // LOAD_FAST 15 + 0xbd, // LOAD_FAST 13 + 0xbd, // LOAD_FAST 13 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf2, // BINARY_OP 27 __add__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x24,0x15, // LOAD_FAST_N 21 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbd, // LOAD_FAST 13 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xe5, // BINARY_OP 14 __iadd__ + 0xcd, // STORE_FAST 13 + 0x42,0x8d,0x81, // JUMP 141 + 0xb7, // LOAD_FAST 7 + 0x14,0x20, // LOAD_METHOD 'random_scalar' + 0x36,0x00, // CALL_METHOD 0 + 0xb7, // LOAD_FAST 7 + 0x14,0x20, // LOAD_METHOD 'random_scalar' + 0x36,0x00, // CALL_METHOD 0 + 0x2b,0x02, // BUILD_LIST 2 + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x13, // LOAD_FAST_N 19 + 0x56, // STORE_SUBSCR + 0xb2, // LOAD_FAST 2 + 0x24,0x13, // LOAD_FAST_N 19 + 0x55, // LOAD_SUBSCR + 0x26,0x14, // STORE_FAST_N 20 + 0xb7, // LOAD_FAST 7 + 0x14,0x23, // LOAD_METHOD 'ge25519_double_scalarmult_vartime_into' + 0x51, // LOAD_CONST_NONE + 0x24,0x14, // LOAD_FAST_N 20 + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x13, // LOAD_FAST_N 19 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x13, // LOAD_FAST_N 19 + 0x55, // LOAD_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x36,0x04, // CALL_METHOD 4 + 0x26,0x15, // STORE_FAST_N 21 + 0xb9, // LOAD_FAST 9 + 0xbf, // LOAD_FAST 15 + 0xbd, // LOAD_FAST 13 + 0xbd, // LOAD_FAST 13 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf2, // BINARY_OP 27 __add__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x24,0x15, // LOAD_FAST_N 21 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbd, // LOAD_FAST 13 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xe5, // BINARY_OP 14 __iadd__ + 0xcd, // STORE_FAST 13 + 0xb7, // LOAD_FAST 7 + 0x14,0x21, // LOAD_METHOD 'hash_to_point_into' + 0x51, // LOAD_CONST_NONE + 0x12,0x02, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x14, // LOAD_METHOD 'encodepoint' + 0x24,0x14, // LOAD_FAST_N 20 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x14, // STORE_FAST_N 20 + 0xb7, // LOAD_FAST 7 + 0x14,0x24, // LOAD_METHOD 'add_keys3_into' + 0x51, // LOAD_CONST_NONE + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x13, // LOAD_FAST_N 19 + 0x55, // LOAD_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x24,0x14, // LOAD_FAST_N 20 + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x13, // LOAD_FAST_N 19 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0x36,0x05, // CALL_METHOD 5 + 0x26,0x15, // STORE_FAST_N 21 + 0xb9, // LOAD_FAST 9 + 0xbf, // LOAD_FAST 15 + 0xbd, // LOAD_FAST 13 + 0xbd, // LOAD_FAST 13 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf2, // BINARY_OP 27 __add__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x24,0x15, // LOAD_FAST_N 21 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbd, // LOAD_FAST 13 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xe5, // BINARY_OP 14 __iadd__ + 0xcd, // STORE_FAST 13 + 0xb7, // LOAD_FAST 7 + 0x14,0x25, // LOAD_METHOD 'sc_add_into' + 0x24,0x10, // LOAD_FAST_N 16 + 0x24,0x10, // LOAD_FAST_N 16 + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x13, // LOAD_FAST_N 19 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x8e,0x7e, // POP_JUMP_IF_TRUE -242 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x26, // LOAD_METHOD 'hash_to_scalar_into' + 0x51, // LOAD_CONST_NONE + 0xbe, // LOAD_FAST 14 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x16, // STORE_FAST_N 22 + 0xb7, // LOAD_FAST 7 + 0x14,0x27, // LOAD_METHOD 'sc_sub_into' + 0x51, // LOAD_CONST_NONE + 0x24,0x16, // LOAD_FAST_N 22 + 0x24,0x10, // LOAD_FAST_N 16 + 0x36,0x03, // CALL_METHOD 3 + 0x24,0x11, // LOAD_FAST_N 17 + 0xb4, // LOAD_FAST 4 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x56, // STORE_SUBSCR + 0xb7, // LOAD_FAST 7 + 0x14,0x28, // LOAD_METHOD 'sc_mulsub_into' + 0x51, // LOAD_CONST_NONE + 0x24,0x11, // LOAD_FAST_N 17 + 0xb4, // LOAD_FAST 4 + 0x55, // LOAD_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb3, // LOAD_FAST 3 + 0xbc, // LOAD_FAST 12 + 0x36,0x04, // CALL_METHOD 4 + 0x24,0x11, // LOAD_FAST_N 17 + 0xb4, // LOAD_FAST 4 + 0x55, // LOAD_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x56, // STORE_SUBSCR + 0x24,0x11, // LOAD_FAST_N 17 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_key_image_generate_ring_signature = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 6, + .fun_data = fun_data_apps_monero_xmr_key_image_generate_ring_signature, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 557, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 32, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_monero_xmr_key_image_generate_ring_signature + 10, + .line_info_top = fun_data_apps_monero_xmr_key_image_generate_ring_signature + 60, + .opcodes = fun_data_apps_monero_xmr_key_image_generate_ring_signature + 60, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_key_image__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_key_image_compute_hash, + &raw_code_apps_monero_xmr_key_image_export_key_image, + &raw_code_apps_monero_xmr_key_image_generate_ring_signature, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_key_image__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_key_image__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = (void *)&children_apps_monero_xmr_key_image__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_key_image__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_key_image__lt_module_gt_ + 11, + .opcodes = fun_data_apps_monero_xmr_key_image__lt_module_gt_ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_key_image[55] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_key_image_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_crypto_helpers, + MP_QSTR_monero, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_compute_hash, + MP_QSTR_dump_uvarint_b, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_dot_int_serialize, + MP_QSTR_get_keccak, + MP_QSTR_update, + MP_QSTR_out_key, + MP_QSTR_tx_pub_key, + MP_QSTR_additional_tx_pub_keys, + MP_QSTR_internal_output_index, + MP_QSTR_digest, + MP_QSTR_export_key_image, + MP_QSTR_decodepoint, + MP_QSTR_generate_tx_spend_and_key_image_and_derivation, + MP_QSTR_sub_addr_major, + MP_QSTR_sub_addr_minor, + MP_QSTR_encodepoint, + MP_QSTR_generate_ring_signature, + MP_QSTR_memcpy, + MP_QSTR_trezor_dot_utils, + MP_QSTR_crypto, + MP_QSTR_Scalar, + MP_QSTR_encodepoint_into, + MP_QSTR_scalarmult_base_into, + MP_QSTR_point_eq, + MP_QSTR_generate_key_image, + MP_QSTR_ge25519_check, + MP_QSTR_append, + MP_QSTR_random_scalar, + MP_QSTR_hash_to_point_into, + MP_QSTR_scalarmult_into, + MP_QSTR_ge25519_double_scalarmult_vartime_into, + MP_QSTR_add_keys3_into, + MP_QSTR_sc_add_into, + MP_QSTR_hash_to_scalar_into, + MP_QSTR_sc_sub_into, + MP_QSTR_sc_mulsub_into, + MP_QSTR_rr, + MP_QSTR_creds, + MP_QSTR_subaddresses, + MP_QSTR_td, + MP_QSTR_len, + MP_QSTR_ValueError, + MP_QSTR_prefix_hash, + MP_QSTR_image, + MP_QSTR_pubs, + MP_QSTR_sec, + MP_QSTR_sec_idx, + MP_QSTR_test, + MP_QSTR_bytearray, + MP_QSTR_memoryview, +}; + +// constants +static const mp_obj_str_t const_obj_apps_monero_xmr_key_image_0 = {{&mp_type_str}, 54711, 38, (const byte*)"\x57\x72\x6f\x6e\x67\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x20\x64\x65\x72\x69\x76\x61\x74\x69\x6f\x6e\x73"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_xmr_key_image[3] = { + MP_ROM_PTR(&const_obj_apps_monero_xmr_key_image_0), + MP_ROM_QSTR(MP_QSTR_Invalid_space_sec_space_key), + MP_ROM_QSTR(MP_QSTR_Key_space_image_space_invalid), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_key_image = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_key_image, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_xmr_key_image, + }, + .rc = &raw_code_apps_monero_xmr_key_image__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_mlsag_hasher +// - original source file: build/firmware/src/apps/monero/xmr/mlsag_hasher.mpy +// - frozen file name: apps/monero/xmr/mlsag_hasher.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/mlsag_hasher.py, scope apps_monero_xmr_mlsag_hasher__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_mlsag_hasher__lt_module_gt_[17] = { + 0x10,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x60, // code info + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x02, // LOAD_CONST_STRING 'PreMlsagHasher' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x02, // STORE_NAME 'PreMlsagHasher' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_mlsag_hasher__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/mlsag_hasher.py, scope apps_monero_xmr_mlsag_hasher_PreMlsagHasher +static const byte fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher[72] = { + 0x08,0x28, // prelude + 0x02, // names: PreMlsagHasher + 0x88,0x09,0x60,0x20,0x84,0x09,0x64,0x60,0x64,0x84,0x07,0x64,0x60,0x64,0x60,0x84,0x09,0x88,0x1f, // code info + 0x11,0x22, // LOAD_NAME '__name__' + 0x16,0x23, // STORE_NAME '__module__' + 0x10,0x02, // LOAD_CONST_STRING 'PreMlsagHasher' + 0x16,0x24, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x03, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0d, // STORE_NAME 'init' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0e, // STORE_NAME 'set_message' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x10, // STORE_NAME 'set_type_fee' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x13, // STORE_NAME 'set_ecdh' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x15, // STORE_NAME 'set_out_pk_commitment' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x16, // STORE_NAME 'rctsig_base_done' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x07, // MAKE_FUNCTION_DEFARGS 7 + 0x16,0x18, // STORE_NAME 'rsig_val' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x17, // STORE_NAME 'get_digest' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_mlsag_hasher_PreMlsagHasher +// frozen bytecode for file apps/monero/xmr/mlsag_hasher.py, scope apps_monero_xmr_mlsag_hasher_PreMlsagHasher___init__ +static const byte fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher___init__[61] = { + 0x21,0x12, // prelude + 0x03,0x25, // names: __init__, self + 0x80,0x0e,0x2b,0x4b,0x24,0x28,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'crypto_helpers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x04, // IMPORT_FROM 'crypto_helpers' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'KeccakXmrArchive' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'apps.monero.xmr.keccak_hasher' + 0x1c,0x06, // IMPORT_FROM 'KeccakXmrArchive' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x08, // STORE_ATTR 'state' + 0xb1, // LOAD_FAST 1 + 0x14,0x09, // LOAD_METHOD 'get_keccak' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x0a, // STORE_ATTR 'kc_master' + 0xb1, // LOAD_FAST 1 + 0x14,0x09, // LOAD_METHOD 'get_keccak' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x0b, // STORE_ATTR 'rsig_hasher' + 0xb2, // LOAD_FAST 2 + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x0c, // STORE_ATTR 'rtcsig_hasher' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 61, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 3, + .line_info = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher___init__ + 4, + .line_info_top = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher___init__ + 11, + .opcodes = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher___init__ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_mlsag_hasher_PreMlsagHasher +// frozen bytecode for file apps/monero/xmr/mlsag_hasher.py, scope apps_monero_xmr_mlsag_hasher_PreMlsagHasher_init +static const byte fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_init[28] = { + 0x11,0x0c, // prelude + 0x0d,0x25, // names: init, self + 0x80,0x17,0x27,0x47, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'state' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x26, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x08, // STORE_ATTR 'state' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_init = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_init, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_init + 4, + .line_info_top = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_init + 8, + .opcodes = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_init + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_mlsag_hasher_PreMlsagHasher +// frozen bytecode for file apps/monero/xmr/mlsag_hasher.py, scope apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_message +static const byte fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_message[18] = { + 0x22,0x0a, // prelude + 0x0e,0x25,0x27, // names: set_message, self, message + 0x80,0x1d, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x0a, // LOAD_ATTR 'kc_master' + 0x14,0x0f, // LOAD_METHOD 'update' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_message = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_message, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_message + 5, + .line_info_top = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_message + 7, + .opcodes = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_message + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_mlsag_hasher_PreMlsagHasher +// frozen bytecode for file apps/monero/xmr/mlsag_hasher.py, scope apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_type_fee +static const byte fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_type_fee[51] = { + 0x33,0x14, // prelude + 0x10,0x25,0x28,0x29, // names: set_type_fee, self, rv_type, fee + 0x80,0x20,0x27,0x27,0x24,0x2a, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'state' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x26, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x08, // STORE_ATTR 'state' + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'rtcsig_hasher' + 0x14,0x11, // LOAD_METHOD 'uint' + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'rtcsig_hasher' + 0x14,0x12, // LOAD_METHOD 'uvarint' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_type_fee = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_type_fee, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_type_fee + 6, + .line_info_top = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_type_fee + 12, + .opcodes = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_type_fee + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_mlsag_hasher_PreMlsagHasher +// frozen bytecode for file apps/monero/xmr/mlsag_hasher.py, scope apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_ecdh +static const byte fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_ecdh[41] = { + 0x22,0x10, // prelude + 0x13,0x25,0x2a, // names: set_ecdh, self, ecdh + 0x80,0x27,0x29,0x27,0x24, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'state' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x26, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x08, // STORE_ATTR 'state' + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'rtcsig_hasher' + 0x14,0x14, // LOAD_METHOD 'buffer' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_ecdh = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_ecdh, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_ecdh + 5, + .line_info_top = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_ecdh + 10, + .opcodes = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_ecdh + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_mlsag_hasher_PreMlsagHasher +// frozen bytecode for file apps/monero/xmr/mlsag_hasher.py, scope apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_out_pk_commitment +static const byte fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_out_pk_commitment[41] = { + 0x22,0x10, // prelude + 0x15,0x25,0x2b, // names: set_out_pk_commitment, self, out_pk_commitment + 0x80,0x2d,0x29,0x27,0x24, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'state' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x26, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xb0, // LOAD_FAST 0 + 0x18,0x08, // STORE_ATTR 'state' + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'rtcsig_hasher' + 0x14,0x14, // LOAD_METHOD 'buffer' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_out_pk_commitment = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_out_pk_commitment, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_out_pk_commitment + 5, + .line_info_top = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_out_pk_commitment + 10, + .opcodes = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_out_pk_commitment + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_mlsag_hasher_PreMlsagHasher +// frozen bytecode for file apps/monero/xmr/mlsag_hasher.py, scope apps_monero_xmr_mlsag_hasher_PreMlsagHasher_rctsig_base_done +static const byte fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_rctsig_base_done[52] = { + 0x21,0x12, // prelude + 0x16,0x25, // names: rctsig_base_done, self + 0x80,0x33,0x27,0x27,0x44,0x28,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'state' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x26, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x86, // LOAD_CONST_SMALL_INT 6 + 0xb0, // LOAD_FAST 0 + 0x18,0x08, // STORE_ATTR 'state' + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'rtcsig_hasher' + 0x14,0x17, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x0a, // LOAD_ATTR 'kc_master' + 0x14,0x0f, // LOAD_METHOD 'update' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x0c, // STORE_ATTR 'rtcsig_hasher' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_rctsig_base_done = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_rctsig_base_done, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 52, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_rctsig_base_done + 4, + .line_info_top = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_rctsig_base_done + 11, + .opcodes = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_rctsig_base_done + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_mlsag_hasher_PreMlsagHasher +// frozen bytecode for file apps/monero/xmr/mlsag_hasher.py, scope apps_monero_xmr_mlsag_hasher_PreMlsagHasher_rsig_val +static const byte fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_rsig_val[177] = { + 0xeb,0x01,0x30, // prelude + 0x18,0x25,0x2c,0x2d, // names: rsig_val, self, p, raw + 0x80,0x3e,0x27,0x27,0x46,0x63,0x40,0x29,0x25,0x49,0x20,0x25,0x62,0x35,0x25,0x47,0x22,0x2c,0x32,0x2c, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'state' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x26, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'rsig_hasher' + 0x13,0x0f, // LOAD_ATTR 'update' + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x44,0x5e, // POP_JUMP_IF_FALSE 30 + 0x12,0x2e, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x2f, // LOAD_GLOBAL 'list' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x08, // FOR_ITER 8 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x36, // JUMP -10 + 0x42,0x45, // JUMP 5 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'A' + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'A1' + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'B' + 0xb1, // LOAD_FAST 1 + 0x13,0x1c, // LOAD_ATTR 'r1' + 0xb1, // LOAD_FAST 1 + 0x13,0x1d, // LOAD_ATTR 's1' + 0xb1, // LOAD_FAST 1 + 0x13,0x1e, // LOAD_ATTR 'd1' + 0x2a,0x06, // BUILD_TUPLE 6 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x5f, // GET_ITER_STACK + 0x4b,0x08, // FOR_ITER 8 + 0xc6, // STORE_FAST 6 + 0xb3, // LOAD_FAST 3 + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x36, // JUMP -10 + 0x28,0x05, // DELETE_FAST 5 + 0x12,0x30, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x1f, // LOAD_ATTR 'L' + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x4d, // JUMP 13 + 0x57, // DUP_TOP + 0xc7, // STORE_FAST 7 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x1f, // LOAD_ATTR 'L' + 0xb7, // LOAD_FAST 7 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2e, // POP_JUMP_IF_TRUE -18 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x30, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x20, // LOAD_ATTR 'R' + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x4d, // JUMP 13 + 0x57, // DUP_TOP + 0xc7, // STORE_FAST 7 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x20, // LOAD_ATTR 'R' + 0xb7, // LOAD_FAST 7 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2e, // POP_JUMP_IF_TRUE -18 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_rsig_val = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_rsig_val, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 177, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 24, + .line_info = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_rsig_val + 7, + .line_info_top = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_rsig_val + 27, + .opcodes = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_rsig_val + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_mlsag_hasher_PreMlsagHasher +// frozen bytecode for file apps/monero/xmr/mlsag_hasher.py, scope apps_monero_xmr_mlsag_hasher_PreMlsagHasher_get_digest +static const byte fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_get_digest[59] = { + 0x21,0x14, // prelude + 0x17,0x25, // names: get_digest, self + 0x80,0x5b,0x27,0x27,0x44,0x28,0x44,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'state' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x26, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xb0, // LOAD_FAST 0 + 0x18,0x08, // STORE_ATTR 'state' + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'rsig_hasher' + 0x14,0x21, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc1, // STORE_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x0b, // STORE_ATTR 'rsig_hasher' + 0xb0, // LOAD_FAST 0 + 0x13,0x0a, // LOAD_ATTR 'kc_master' + 0x14,0x0f, // LOAD_METHOD 'update' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0a, // LOAD_ATTR 'kc_master' + 0x14,0x21, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_get_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_get_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_get_digest + 4, + .line_info_top = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_get_digest + 12, + .opcodes = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_get_digest + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_mlsag_hasher_PreMlsagHasher[] = { + &raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher___init__, + &raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_init, + &raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_message, + &raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_type_fee, + &raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_ecdh, + &raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_set_out_pk_commitment, + &raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_rctsig_base_done, + &raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_rsig_val, + &raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher_get_digest, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = (void *)&children_apps_monero_xmr_mlsag_hasher_PreMlsagHasher, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 9, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher + 3, + .line_info_top = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher + 22, + .opcodes = fun_data_apps_monero_xmr_mlsag_hasher_PreMlsagHasher + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_mlsag_hasher__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_mlsag_hasher_PreMlsagHasher, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_mlsag_hasher__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_mlsag_hasher__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = (void *)&children_apps_monero_xmr_mlsag_hasher__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_mlsag_hasher__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_mlsag_hasher__lt_module_gt_ + 6, + .opcodes = fun_data_apps_monero_xmr_mlsag_hasher__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_mlsag_hasher[49] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_mlsag_hasher_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_PreMlsagHasher, + MP_QSTR___init__, + MP_QSTR_crypto_helpers, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_KeccakXmrArchive, + MP_QSTR_apps_dot_monero_dot_xmr_dot_keccak_hasher, + MP_QSTR_state, + MP_QSTR_get_keccak, + MP_QSTR_kc_master, + MP_QSTR_rsig_hasher, + MP_QSTR_rtcsig_hasher, + MP_QSTR_init, + MP_QSTR_set_message, + MP_QSTR_update, + MP_QSTR_set_type_fee, + MP_QSTR_uint, + MP_QSTR_uvarint, + MP_QSTR_set_ecdh, + MP_QSTR_buffer, + MP_QSTR_set_out_pk_commitment, + MP_QSTR_rctsig_base_done, + MP_QSTR_get_digest, + MP_QSTR_rsig_val, + MP_QSTR_A, + MP_QSTR_A1, + MP_QSTR_B, + MP_QSTR_r1, + MP_QSTR_s1, + MP_QSTR_d1, + MP_QSTR_L, + MP_QSTR_R, + MP_QSTR_digest, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_self, + MP_QSTR_ValueError, + MP_QSTR_message, + MP_QSTR_rv_type, + MP_QSTR_fee, + MP_QSTR_ecdh, + MP_QSTR_out_pk_commitment, + MP_QSTR_p, + MP_QSTR_raw, + MP_QSTR_isinstance, + MP_QSTR_list, + MP_QSTR_len, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_mlsag_hasher_1 = {{&mp_type_tuple}, 3, { + MP_ROM_INT(2), + MP_ROM_INT(3), + MP_ROM_INT(4), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_mlsag_hasher_2 = {{&mp_type_tuple}, 2, { + MP_ROM_INT(4), + MP_ROM_INT(5), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_xmr_mlsag_hasher[3] = { + MP_ROM_QSTR(MP_QSTR_State_space_error), + MP_ROM_PTR(&const_obj_apps_monero_xmr_mlsag_hasher_1), + MP_ROM_PTR(&const_obj_apps_monero_xmr_mlsag_hasher_2), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_mlsag_hasher = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_mlsag_hasher, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_xmr_mlsag_hasher, + }, + .rc = &raw_code_apps_monero_xmr_mlsag_hasher__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_monero +// - original source file: build/firmware/src/apps/monero/xmr/monero.mpy +// - frozen file name: apps/monero/xmr/monero.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/monero.py, scope apps_monero_xmr_monero__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_monero__lt_module_gt_[136] = { + 0x18,0x3e, // prelude + 0x01, // names: + 0x40,0x52,0x60,0x60,0x6b,0x20,0x6b,0x20,0x89,0x0d,0x84,0x0f,0x84,0x0d,0x84,0x09,0x84,0x3a,0x84,0x3e,0x84,0x38,0x88,0x1f,0x64,0x40,0x84,0x0f,0x84,0x0d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'crypto' + 0x10,0x03, // LOAD_CONST_STRING 'crypto_helpers' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x04, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x02, // IMPORT_FROM 'crypto' + 0x16,0x02, // STORE_NAME 'crypto' + 0x1c,0x03, // IMPORT_FROM 'crypto_helpers' + 0x16,0x03, // STORE_NAME 'crypto_helpers' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x05, // LOAD_CONST_STRING 'XmrException' + 0x11,0x27, // LOAD_NAME 'Exception' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x05, // STORE_NAME 'XmrException' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x06, // LOAD_CONST_STRING 'XmrNoSuchAddressException' + 0x11,0x05, // LOAD_NAME 'XmrException' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x06, // STORE_NAME 'XmrNoSuchAddressException' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x07, // STORE_NAME 'get_subaddress_secret_key' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x08, // STORE_NAME 'get_subaddress_spend_public_key' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x0b, // STORE_NAME 'derive_subaddress_public_key' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x0f, // STORE_NAME 'generate_key_image' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x12, // STORE_NAME '_is_out_to_account' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x17, // STORE_NAME 'generate_tx_spend_and_key_image' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x1c, // STORE_NAME 'generate_tx_spend_and_key_image_and_derivation' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x09, // MAKE_FUNCTION_DEFARGS 9 + 0x16,0x1e, // STORE_NAME 'compute_subaddresses' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x1f, // STORE_NAME 'generate_keys' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x20, // STORE_NAME 'generate_monero_keys' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x24, // STORE_NAME 'generate_sub_address_keys' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x0d, // MAKE_FUNCTION_DEFARGS 13 + 0x16,0x25, // STORE_NAME 'commitment_mask' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_monero__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/monero.py, scope apps_monero_xmr_monero_XmrException +static const byte fun_data_apps_monero_xmr_monero_XmrException[15] = { + 0x00,0x06, // prelude + 0x05, // names: XmrException + 0x88,0x0b, // code info + 0x11,0x28, // LOAD_NAME '__name__' + 0x16,0x29, // STORE_NAME '__module__' + 0x10,0x05, // LOAD_CONST_STRING 'XmrException' + 0x16,0x2a, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_monero_XmrException = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_monero_XmrException, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_monero_xmr_monero_XmrException + 3, + .line_info_top = fun_data_apps_monero_xmr_monero_XmrException + 5, + .opcodes = fun_data_apps_monero_xmr_monero_XmrException + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_monero__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/monero.py, scope apps_monero_xmr_monero_XmrNoSuchAddressException +static const byte fun_data_apps_monero_xmr_monero_XmrNoSuchAddressException[15] = { + 0x00,0x06, // prelude + 0x06, // names: XmrNoSuchAddressException + 0x88,0x0f, // code info + 0x11,0x28, // LOAD_NAME '__name__' + 0x16,0x29, // STORE_NAME '__module__' + 0x10,0x06, // LOAD_CONST_STRING 'XmrNoSuchAddressException' + 0x16,0x2a, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_monero_XmrNoSuchAddressException = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_monero_XmrNoSuchAddressException, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_monero_xmr_monero_XmrNoSuchAddressException + 3, + .line_info_top = fun_data_apps_monero_xmr_monero_XmrNoSuchAddressException + 5, + .opcodes = fun_data_apps_monero_xmr_monero_XmrNoSuchAddressException + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_monero__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/monero.py, scope apps_monero_xmr_monero_get_subaddress_secret_key +static const byte fun_data_apps_monero_xmr_monero_get_subaddress_secret_key[36] = { + 0xbb,0x80,0x01,0x14, // prelude + 0x07,0x2b,0x2c,0x2d, // names: get_subaddress_secret_key, secret_key, major, minor + 0x80,0x15,0x60,0x20,0x2a,0x42, // code info + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE + 0x12,0x03, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x07, // LOAD_METHOD 'get_subaddress_secret_key' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_monero_get_subaddress_secret_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_monero_get_subaddress_secret_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_monero_xmr_monero_get_subaddress_secret_key + 8, + .line_info_top = fun_data_apps_monero_xmr_monero_get_subaddress_secret_key + 14, + .opcodes = fun_data_apps_monero_xmr_monero_get_subaddress_secret_key + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_monero__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/monero.py, scope apps_monero_xmr_monero_get_subaddress_spend_public_key +static const byte fun_data_apps_monero_xmr_monero_get_subaddress_spend_public_key[57] = { + 0xd8,0x04,0x1a, // prelude + 0x08,0x2e,0x2f,0x2c,0x2d, // names: get_subaddress_spend_public_key, view_private, spend_public, major, minor + 0x80,0x22,0x60,0x2a,0x42,0x28,0x29,0x2a, // code info + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE + 0x12,0x07, // LOAD_GLOBAL 'get_subaddress_secret_key' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc4, // STORE_FAST 4 + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x09, // LOAD_METHOD 'scalarmult_base_into' + 0x51, // LOAD_CONST_NONE + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0xc5, // STORE_FAST 5 + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x0a, // LOAD_METHOD 'point_add_into' + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0x36,0x03, // CALL_METHOD 3 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_monero_get_subaddress_spend_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_monero_get_subaddress_spend_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_monero_xmr_monero_get_subaddress_spend_public_key + 8, + .line_info_top = fun_data_apps_monero_xmr_monero_get_subaddress_spend_public_key + 16, + .opcodes = fun_data_apps_monero_xmr_monero_get_subaddress_spend_public_key + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_monero__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/monero.py, scope apps_monero_xmr_monero_derive_subaddress_public_key +static const byte fun_data_apps_monero_xmr_monero_derive_subaddress_public_key[51] = { + 0x53,0x16, // prelude + 0x0b,0x30,0x31,0x32, // names: derive_subaddress_public_key, out_key, derivation, output_index + 0x80,0x31,0x60,0x28,0x29,0x29,0x2a, // code info + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x0c, // LOAD_METHOD 'ge25519_check' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x0d, // LOAD_METHOD 'derivation_to_scalar' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0xc3, // STORE_FAST 3 + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x09, // LOAD_METHOD 'scalarmult_base_into' + 0x51, // LOAD_CONST_NONE + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0xc4, // STORE_FAST 4 + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x0e, // LOAD_METHOD 'point_sub_into' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x36,0x03, // CALL_METHOD 3 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_monero_derive_subaddress_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_monero_derive_subaddress_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_apps_monero_xmr_monero_derive_subaddress_public_key + 6, + .line_info_top = fun_data_apps_monero_xmr_monero_derive_subaddress_public_key + 13, + .opcodes = fun_data_apps_monero_xmr_monero_derive_subaddress_public_key + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_monero__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/monero.py, scope apps_monero_xmr_monero_generate_key_image +static const byte fun_data_apps_monero_xmr_monero_generate_key_image[31] = { + 0x42,0x10, // prelude + 0x0f,0x33,0x2b, // names: generate_key_image, public_key, secret_key + 0x80,0x3c,0x60,0x29,0x2a, // code info + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x10, // LOAD_METHOD 'hash_to_point_into' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x11, // LOAD_METHOD 'scalarmult_into' + 0x51, // LOAD_CONST_NONE + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x36,0x03, // CALL_METHOD 3 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_monero_generate_key_image = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_monero_generate_key_image, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_monero_xmr_monero_generate_key_image + 5, + .line_info_top = fun_data_apps_monero_xmr_monero_generate_key_image + 10, + .opcodes = fun_data_apps_monero_xmr_monero_generate_key_image + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_monero__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/monero.py, scope apps_monero_xmr_monero__is_out_to_account +static const byte fun_data_apps_monero_xmr_monero__is_out_to_account[177] = { + 0xf8,0x80,0x04,0x4a, // prelude + 0x12,0x34,0x30,0x31,0x35,0x32,0x36,0x37,0x38, // names: _is_out_to_account, subaddresses, out_key, derivation, additional_derivation, output_index, creds, sub_addr_major, sub_addr_minor + 0x80,0x4e,0x80,0x09,0x68,0x20,0x22,0x2f,0x22,0x23,0x68,0x40,0x2a,0x48,0x23,0x28,0x25,0x47,0x23,0x68,0x20,0x4d,0x20,0x48,0x23,0x28,0x25,0x47, // code info + 0x12,0x0b, // LOAD_GLOBAL 'derive_subaddress_public_key' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc8, // STORE_FAST 8 + 0x51, // LOAD_CONST_NONE + 0xc9, // STORE_FAST 9 + 0xb5, // LOAD_FAST 5 + 0x44,0x6b, // POP_JUMP_IF_FALSE 43 + 0xb6, // LOAD_FAST 6 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x65, // POP_JUMP_IF_FALSE 37 + 0xb7, // LOAD_FAST 7 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x5f, // POP_JUMP_IF_FALSE 31 + 0x12,0x08, // LOAD_GLOBAL 'get_subaddress_spend_public_key' + 0xb5, // LOAD_FAST 5 + 0x13,0x13, // LOAD_ATTR 'view_key_private' + 0xb5, // LOAD_FAST 5 + 0x13,0x14, // LOAD_ATTR 'spend_key_public' + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x34,0x04, // CALL_FUNCTION 4 + 0xc9, // STORE_FAST 9 + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x15, // LOAD_METHOD 'point_eq' + 0xb8, // LOAD_FAST 8 + 0xb9, // LOAD_FAST 9 + 0x36,0x02, // CALL_METHOD 2 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x03, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x16, // LOAD_METHOD 'encodepoint' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0xb0, // LOAD_FAST 0 + 0xdd, // BINARY_OP 6 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb0, // LOAD_FAST 0 + 0xba, // LOAD_FAST 10 + 0x55, // LOAD_SUBSCR + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0xb3, // LOAD_FAST 3 + 0x44,0x74, // POP_JUMP_IF_FALSE 52 + 0x12,0x0b, // LOAD_GLOBAL 'derive_subaddress_public_key' + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc8, // STORE_FAST 8 + 0xb9, // LOAD_FAST 9 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x15, // LOAD_METHOD 'point_eq' + 0xb8, // LOAD_FAST 8 + 0xb9, // LOAD_FAST 9 + 0x36,0x02, // CALL_METHOD 2 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xb3, // LOAD_FAST 3 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x03, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x16, // LOAD_METHOD 'encodepoint' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0xb0, // LOAD_FAST 0 + 0xdd, // BINARY_OP 6 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb0, // LOAD_FAST 0 + 0xba, // LOAD_FAST 10 + 0x55, // LOAD_SUBSCR + 0xb3, // LOAD_FAST 3 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_monero__is_out_to_account = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 8, + .fun_data = fun_data_apps_monero_xmr_monero__is_out_to_account, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 177, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 8, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_monero_xmr_monero__is_out_to_account + 13, + .line_info_top = fun_data_apps_monero_xmr_monero__is_out_to_account + 41, + .opcodes = fun_data_apps_monero_xmr_monero__is_out_to_account + 41, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_monero__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/monero.py, scope apps_monero_xmr_monero_generate_tx_spend_and_key_image +static const byte fun_data_apps_monero_xmr_monero_generate_tx_spend_and_key_image[140] = { + 0xf1,0x04,0x36, // prelude + 0x17,0x39,0x30,0x3a,0x3b,0x3c, // names: generate_tx_spend_and_key_image, ack, out_key, recv_derivation, real_output_index, received_index + 0x80,0x85,0x80,0x0c,0x2b,0x67,0x26,0x66,0x20,0x22,0x26,0x44,0x22,0x4c,0x6a,0x89,0x0f,0x2a,0x22,0x65,0x2d, // code info + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x18, // LOAD_METHOD 'sc_iszero' + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'spend_key_private' + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x3d, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x03, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x1a, // LOAD_METHOD 'derive_secret_key' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'spend_key_private' + 0x36,0x03, // CALL_METHOD 3 + 0xc5, // STORE_FAST 5 + 0x51, // LOAD_CONST_NONE + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb5, // LOAD_FAST 5 + 0xc7, // STORE_FAST 7 + 0x42,0x58, // JUMP 24 + 0x12,0x07, // LOAD_GLOBAL 'get_subaddress_secret_key' + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'view_key_private' + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0xc6, // STORE_FAST 6 + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x1b, // LOAD_METHOD 'sc_add_into' + 0x51, // LOAD_CONST_NONE + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x36,0x03, // CALL_METHOD 3 + 0xc7, // STORE_FAST 7 + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x09, // LOAD_METHOD 'scalarmult_base_into' + 0x51, // LOAD_CONST_NONE + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0xc8, // STORE_FAST 8 + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x15, // LOAD_METHOD 'point_eq' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x3d, // LOAD_GLOBAL 'ValueError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x0f, // LOAD_GLOBAL 'generate_key_image' + 0x12,0x03, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x16, // LOAD_METHOD 'encodepoint' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc9, // STORE_FAST 9 + 0xb7, // LOAD_FAST 7 + 0xb9, // LOAD_FAST 9 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_monero_generate_tx_spend_and_key_image = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_monero_xmr_monero_generate_tx_spend_and_key_image, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 140, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_monero_xmr_monero_generate_tx_spend_and_key_image + 9, + .line_info_top = fun_data_apps_monero_xmr_monero_generate_tx_spend_and_key_image + 30, + .opcodes = fun_data_apps_monero_xmr_monero_generate_tx_spend_and_key_image + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_monero__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/monero.py, scope apps_monero_xmr_monero_generate_tx_spend_and_key_image_and_derivation +static const byte fun_data_apps_monero_xmr_monero_generate_tx_spend_and_key_image_and_derivation[105] = { + 0xa8,0x90,0x04,0x32, // prelude + 0x1c,0x36,0x34,0x30,0x3e,0x3f,0x3b,0x37,0x38, // names: generate_tx_spend_and_key_image_and_derivation, creds, subaddresses, out_key, tx_public_key, additional_tx_public_key, real_output_index, sub_addr_major, sub_addr_minor + 0x80,0xc6,0x80,0x0f,0x25,0x66,0x20,0x28,0x69,0x60,0x8d,0x0a,0x25,0x47,0x24,0x4d, // code info + 0x12,0x03, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x1d, // LOAD_METHOD 'generate_key_derivation' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'view_key_private' + 0x36,0x02, // CALL_METHOD 2 + 0xc8, // STORE_FAST 8 + 0xb4, // LOAD_FAST 4 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x03, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x1d, // LOAD_METHOD 'generate_key_derivation' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'view_key_private' + 0x36,0x02, // CALL_METHOD 2 + 0x42,0x41, // JUMP 1 + 0x51, // LOAD_CONST_NONE + 0xc9, // STORE_FAST 9 + 0x12,0x12, // LOAD_GLOBAL '_is_out_to_account' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb8, // LOAD_FAST 8 + 0xb9, // LOAD_FAST 9 + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x34,0x08, // CALL_FUNCTION 8 + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x06, // LOAD_GLOBAL 'XmrNoSuchAddressException' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x17, // LOAD_GLOBAL 'generate_tx_spend_and_key_image' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xba, // LOAD_FAST 10 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0xb5, // LOAD_FAST 5 + 0xba, // LOAD_FAST 10 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x34,0x05, // CALL_FUNCTION 5 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xcb, // STORE_FAST 11 + 0xcc, // STORE_FAST 12 + 0xbb, // LOAD_FAST 11 + 0xbc, // LOAD_FAST 12 + 0xb8, // LOAD_FAST 8 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_monero_generate_tx_spend_and_key_image_and_derivation = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 8, + .fun_data = fun_data_apps_monero_xmr_monero_generate_tx_spend_and_key_image_and_derivation, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 105, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 22, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 8, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_apps_monero_xmr_monero_generate_tx_spend_and_key_image_and_derivation + 13, + .line_info_top = fun_data_apps_monero_xmr_monero_generate_tx_spend_and_key_image_and_derivation + 29, + .opcodes = fun_data_apps_monero_xmr_monero_generate_tx_spend_and_key_image_and_derivation + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_monero__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/monero.py, scope apps_monero_xmr_monero_compute_subaddresses +static const byte fun_data_apps_monero_xmr_monero_compute_subaddresses[92] = { + 0xf0,0x05,0x26, // prelude + 0x1e,0x36,0x40,0x41,0x34, // names: compute_subaddresses, creds, account, indices, subaddresses + 0x80,0xfa,0x80,0x09,0x25,0x43,0x25,0x2a,0x2d,0x42,0x22,0x4b,0x28,0x29, // code info + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x2c,0x00, // BUILD_MAP 0 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x5f, // GET_ITER_STACK + 0x4b,0x38, // FOR_ITER 56 + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xb3, // LOAD_FAST 3 + 0x12,0x03, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x16, // LOAD_METHOD 'encodepoint' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'spend_key_public' + 0x36,0x01, // CALL_METHOD 1 + 0x56, // STORE_SUBSCR + 0x42,0x24, // JUMP -28 + 0x12,0x08, // LOAD_GLOBAL 'get_subaddress_spend_public_key' + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'view_key_private' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'spend_key_public' + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x34,0x04, // CALL_FUNCTION 4 + 0xc5, // STORE_FAST 5 + 0x12,0x03, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x16, // LOAD_METHOD 'encodepoint' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0x56, // STORE_SUBSCR + 0x42,0x06, // JUMP -58 + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_monero_compute_subaddresses = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_monero_compute_subaddresses, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 92, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 30, + .line_info = fun_data_apps_monero_xmr_monero_compute_subaddresses + 8, + .line_info_top = fun_data_apps_monero_xmr_monero_compute_subaddresses + 22, + .opcodes = fun_data_apps_monero_xmr_monero_compute_subaddresses + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_monero__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/monero.py, scope apps_monero_xmr_monero_generate_keys +static const byte fun_data_apps_monero_xmr_monero_generate_keys[21] = { + 0x29,0x0a, // prelude + 0x1f,0x42, // names: generate_keys, recovery_key + 0x90,0x14,0x29, // code info + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x09, // LOAD_METHOD 'scalarmult_base_into' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_monero_generate_keys = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_monero_generate_keys, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_monero_xmr_monero_generate_keys + 4, + .line_info_top = fun_data_apps_monero_xmr_monero_generate_keys + 7, + .opcodes = fun_data_apps_monero_xmr_monero_generate_keys + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_monero__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/monero.py, scope apps_monero_xmr_monero_generate_monero_keys +static const byte fun_data_apps_monero_xmr_monero_generate_monero_keys[63] = { + 0x59,0x12, // prelude + 0x20,0x43, // names: generate_monero_keys, seed + 0x90,0x1b,0x60,0x60,0x2f,0x2f,0x2f, // code info + 0x12,0x1f, // LOAD_GLOBAL 'generate_keys' + 0x12,0x03, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x21, // LOAD_METHOD 'decodeint' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc1, // STORE_FAST 1 + 0xc2, // STORE_FAST 2 + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x22, // LOAD_METHOD 'fast_hash_into' + 0x51, // LOAD_CONST_NONE + 0x12,0x03, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x23, // LOAD_METHOD 'encodeint' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x02, // CALL_METHOD 2 + 0xc3, // STORE_FAST 3 + 0x12,0x1f, // LOAD_GLOBAL 'generate_keys' + 0x12,0x03, // LOAD_GLOBAL 'crypto_helpers' + 0x14,0x21, // LOAD_METHOD 'decodeint' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x2a,0x04, // BUILD_TUPLE 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_monero_generate_monero_keys = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_monero_generate_monero_keys, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 63, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_monero_xmr_monero_generate_monero_keys + 4, + .line_info_top = fun_data_apps_monero_xmr_monero_generate_monero_keys + 11, + .opcodes = fun_data_apps_monero_xmr_monero_generate_monero_keys + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_monero__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/monero.py, scope apps_monero_xmr_monero_generate_sub_address_keys +static const byte fun_data_apps_monero_xmr_monero_generate_sub_address_keys[80] = { + 0xe0,0x04,0x1a, // prelude + 0x24,0x44,0x45,0x2c,0x2d, // names: generate_sub_address_keys, view_sec, spend_pub, major, minor + 0x90,0x2a,0x2a,0x4c,0x28,0x29,0x2a,0x2a, // code info + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb1, // LOAD_FAST 1 + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x09, // LOAD_METHOD 'scalarmult_base_into' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0x12,0x07, // LOAD_GLOBAL 'get_subaddress_secret_key' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc4, // STORE_FAST 4 + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x09, // LOAD_METHOD 'scalarmult_base_into' + 0x51, // LOAD_CONST_NONE + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0xc5, // STORE_FAST 5 + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x0a, // LOAD_METHOD 'point_add_into' + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0x36,0x03, // CALL_METHOD 3 + 0xc6, // STORE_FAST 6 + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x11, // LOAD_METHOD 'scalarmult_into' + 0x51, // LOAD_CONST_NONE + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0xc7, // STORE_FAST 7 + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_monero_generate_sub_address_keys = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_monero_generate_sub_address_keys, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 80, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_monero_xmr_monero_generate_sub_address_keys + 8, + .line_info_top = fun_data_apps_monero_xmr_monero_generate_sub_address_keys + 16, + .opcodes = fun_data_apps_monero_xmr_monero_generate_sub_address_keys + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_monero__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/monero.py, scope apps_monero_xmr_monero_commitment_mask +static const byte fun_data_apps_monero_xmr_monero_commitment_mask[42] = { + 0xb2,0x01,0x12, // prelude + 0x25,0x46,0x47, // names: commitment_mask, key, buff + 0x90,0x35,0x60,0x26,0x28,0x27, // code info + 0x12,0x48, // LOAD_GLOBAL 'bytearray' + 0xaf, // LOAD_CONST_SMALL_INT 47 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0x12,0x02, // LOAD_GLOBAL 'crypto' + 0x14,0x26, // LOAD_METHOD 'hash_to_scalar_into' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_monero_commitment_mask = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_monero_commitment_mask, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_monero_xmr_monero_commitment_mask + 6, + .line_info_top = fun_data_apps_monero_xmr_monero_commitment_mask + 12, + .opcodes = fun_data_apps_monero_xmr_monero_commitment_mask + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_monero__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_monero_XmrException, + &raw_code_apps_monero_xmr_monero_XmrNoSuchAddressException, + &raw_code_apps_monero_xmr_monero_get_subaddress_secret_key, + &raw_code_apps_monero_xmr_monero_get_subaddress_spend_public_key, + &raw_code_apps_monero_xmr_monero_derive_subaddress_public_key, + &raw_code_apps_monero_xmr_monero_generate_key_image, + &raw_code_apps_monero_xmr_monero__is_out_to_account, + &raw_code_apps_monero_xmr_monero_generate_tx_spend_and_key_image, + &raw_code_apps_monero_xmr_monero_generate_tx_spend_and_key_image_and_derivation, + &raw_code_apps_monero_xmr_monero_compute_subaddresses, + &raw_code_apps_monero_xmr_monero_generate_keys, + &raw_code_apps_monero_xmr_monero_generate_monero_keys, + &raw_code_apps_monero_xmr_monero_generate_sub_address_keys, + &raw_code_apps_monero_xmr_monero_commitment_mask, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_monero__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_monero__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 136, + #endif + .children = (void *)&children_apps_monero_xmr_monero__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 14, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_monero__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_monero__lt_module_gt_ + 33, + .opcodes = fun_data_apps_monero_xmr_monero__lt_module_gt_ + 33, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_monero[73] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_monero_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_crypto, + MP_QSTR_crypto_helpers, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_XmrException, + MP_QSTR_XmrNoSuchAddressException, + MP_QSTR_get_subaddress_secret_key, + MP_QSTR_get_subaddress_spend_public_key, + MP_QSTR_scalarmult_base_into, + MP_QSTR_point_add_into, + MP_QSTR_derive_subaddress_public_key, + MP_QSTR_ge25519_check, + MP_QSTR_derivation_to_scalar, + MP_QSTR_point_sub_into, + MP_QSTR_generate_key_image, + MP_QSTR_hash_to_point_into, + MP_QSTR_scalarmult_into, + MP_QSTR__is_out_to_account, + MP_QSTR_view_key_private, + MP_QSTR_spend_key_public, + MP_QSTR_point_eq, + MP_QSTR_encodepoint, + MP_QSTR_generate_tx_spend_and_key_image, + MP_QSTR_sc_iszero, + MP_QSTR_spend_key_private, + MP_QSTR_derive_secret_key, + MP_QSTR_sc_add_into, + MP_QSTR_generate_tx_spend_and_key_image_and_derivation, + MP_QSTR_generate_key_derivation, + MP_QSTR_compute_subaddresses, + MP_QSTR_generate_keys, + MP_QSTR_generate_monero_keys, + MP_QSTR_decodeint, + MP_QSTR_fast_hash_into, + MP_QSTR_encodeint, + MP_QSTR_generate_sub_address_keys, + MP_QSTR_commitment_mask, + MP_QSTR_hash_to_scalar_into, + MP_QSTR_Exception, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_secret_key, + MP_QSTR_major, + MP_QSTR_minor, + MP_QSTR_view_private, + MP_QSTR_spend_public, + MP_QSTR_out_key, + MP_QSTR_derivation, + MP_QSTR_output_index, + MP_QSTR_public_key, + MP_QSTR_subaddresses, + MP_QSTR_additional_derivation, + MP_QSTR_creds, + MP_QSTR_sub_addr_major, + MP_QSTR_sub_addr_minor, + MP_QSTR_ack, + MP_QSTR_recv_derivation, + MP_QSTR_real_output_index, + MP_QSTR_received_index, + MP_QSTR_ValueError, + MP_QSTR_tx_public_key, + MP_QSTR_additional_tx_public_key, + MP_QSTR_account, + MP_QSTR_indices, + MP_QSTR_recovery_key, + MP_QSTR_seed, + MP_QSTR_view_sec, + MP_QSTR_spend_pub, + MP_QSTR_key, + MP_QSTR_buff, + MP_QSTR_bytearray, +}; + +// constants +static const mp_obj_str_t const_obj_apps_monero_xmr_monero_0 = {{&mp_type_str}, 29769, 31, (const byte*)"\x57\x61\x74\x63\x68\x2d\x6f\x6e\x6c\x79\x20\x77\x61\x6c\x6c\x65\x74\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64"}; +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_monero_1 = {{&mp_type_tuple}, 2, { + MP_ROM_INT(0), + MP_ROM_INT(0), +}}; +static const mp_obj_str_t const_obj_apps_monero_xmr_monero_2 = {{&mp_type_str}, 37696, 75, (const byte*)"\x6b\x65\x79\x20\x69\x6d\x61\x67\x65\x20\x68\x65\x6c\x70\x65\x72\x20\x70\x72\x65\x63\x6f\x6d\x70\x3a\x20\x67\x69\x76\x65\x6e\x20\x6f\x75\x74\x70\x75\x74\x20\x70\x75\x62\x6b\x65\x79\x20\x64\x6f\x65\x73\x6e\x27\x74\x20\x6d\x61\x74\x63\x68\x20\x74\x68\x65\x20\x64\x65\x72\x69\x76\x65\x64\x20\x6f\x6e\x65"}; +static const mp_obj_str_t const_obj_apps_monero_xmr_monero_4 = {{&mp_type_bytes}, 6093, 15, (const byte*)"\x63\x6f\x6d\x6d\x69\x74\x6d\x65\x6e\x74\x5f\x6d\x61\x73\x6b"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_xmr_monero[5] = { + MP_ROM_PTR(&const_obj_apps_monero_xmr_monero_0), + MP_ROM_PTR(&const_obj_apps_monero_xmr_monero_1), + MP_ROM_PTR(&const_obj_apps_monero_xmr_monero_2), + MP_ROM_QSTR(MP_QSTR_No_space_such_space_addr), + MP_ROM_PTR(&const_obj_apps_monero_xmr_monero_4), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_monero = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_monero, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_xmr_monero, + }, + .rc = &raw_code_apps_monero_xmr_monero__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_networks +// - original source file: build/firmware/src/apps/monero/xmr/networks.mpy +// - frozen file name: apps/monero/xmr/networks.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/networks.py, scope apps_monero_xmr_networks__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_networks__lt_module_gt_[51] = { + 0x10,0x14, // prelude + 0x01, // names: + 0x40,0x60,0x20,0x69,0x60,0x69,0x60,0x69,0x60, // code info + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x02, // LOAD_CONST_STRING 'MainNet' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x02, // STORE_NAME 'MainNet' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x03, // LOAD_CONST_STRING 'TestNet' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x03, // STORE_NAME 'TestNet' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x02, // MAKE_FUNCTION 2 + 0x10,0x04, // LOAD_CONST_STRING 'StageNet' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x04, // STORE_NAME 'StageNet' + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x2a,0x03, // BUILD_TUPLE 3 + 0x53, // LOAD_NULL + 0x33,0x03, // MAKE_FUNCTION_DEFARGS 3 + 0x16,0x05, // STORE_NAME 'net_version' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_networks__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/networks.py, scope apps_monero_xmr_networks_MainNet +static const byte fun_data_apps_monero_xmr_networks_MainNet[26] = { + 0x00,0x0a, // prelude + 0x02, // names: MainNet + 0x88,0x07,0x23,0x23, // code info + 0x11,0x0f, // LOAD_NAME '__name__' + 0x16,0x10, // STORE_NAME '__module__' + 0x10,0x02, // LOAD_CONST_STRING 'MainNet' + 0x16,0x11, // STORE_NAME '__qualname__' + 0x92, // LOAD_CONST_SMALL_INT 18 + 0x16,0x0c, // STORE_NAME 'PUBLIC_ADDRESS_BASE58_PREFIX' + 0x93, // LOAD_CONST_SMALL_INT 19 + 0x16,0x0e, // STORE_NAME 'PUBLIC_INTEGRATED_ADDRESS_BASE58_PREFIX' + 0xaa, // LOAD_CONST_SMALL_INT 42 + 0x16,0x0d, // STORE_NAME 'PUBLIC_SUBADDRESS_BASE58_PREFIX' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_networks_MainNet = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_networks_MainNet, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_monero_xmr_networks_MainNet + 3, + .line_info_top = fun_data_apps_monero_xmr_networks_MainNet + 7, + .opcodes = fun_data_apps_monero_xmr_networks_MainNet + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_networks__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/networks.py, scope apps_monero_xmr_networks_TestNet +static const byte fun_data_apps_monero_xmr_networks_TestNet[29] = { + 0x00,0x0a, // prelude + 0x03, // names: TestNet + 0x88,0x0d,0x24,0x24, // code info + 0x11,0x0f, // LOAD_NAME '__name__' + 0x16,0x10, // STORE_NAME '__module__' + 0x10,0x03, // LOAD_CONST_STRING 'TestNet' + 0x16,0x11, // STORE_NAME '__qualname__' + 0x22,0x35, // LOAD_CONST_SMALL_INT 53 + 0x16,0x0c, // STORE_NAME 'PUBLIC_ADDRESS_BASE58_PREFIX' + 0x22,0x36, // LOAD_CONST_SMALL_INT 54 + 0x16,0x0e, // STORE_NAME 'PUBLIC_INTEGRATED_ADDRESS_BASE58_PREFIX' + 0x22,0x3f, // LOAD_CONST_SMALL_INT 63 + 0x16,0x0d, // STORE_NAME 'PUBLIC_SUBADDRESS_BASE58_PREFIX' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_networks_TestNet = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_networks_TestNet, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 3, + .line_info = fun_data_apps_monero_xmr_networks_TestNet + 3, + .line_info_top = fun_data_apps_monero_xmr_networks_TestNet + 7, + .opcodes = fun_data_apps_monero_xmr_networks_TestNet + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_networks__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/networks.py, scope apps_monero_xmr_networks_StageNet +static const byte fun_data_apps_monero_xmr_networks_StageNet[26] = { + 0x00,0x0a, // prelude + 0x04, // names: StageNet + 0x88,0x13,0x23,0x23, // code info + 0x11,0x0f, // LOAD_NAME '__name__' + 0x16,0x10, // STORE_NAME '__module__' + 0x10,0x04, // LOAD_CONST_STRING 'StageNet' + 0x16,0x11, // STORE_NAME '__qualname__' + 0x98, // LOAD_CONST_SMALL_INT 24 + 0x16,0x0c, // STORE_NAME 'PUBLIC_ADDRESS_BASE58_PREFIX' + 0x99, // LOAD_CONST_SMALL_INT 25 + 0x16,0x0e, // STORE_NAME 'PUBLIC_INTEGRATED_ADDRESS_BASE58_PREFIX' + 0xa4, // LOAD_CONST_SMALL_INT 36 + 0x16,0x0d, // STORE_NAME 'PUBLIC_SUBADDRESS_BASE58_PREFIX' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_networks_StageNet = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_networks_StageNet, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_monero_xmr_networks_StageNet + 3, + .line_info_top = fun_data_apps_monero_xmr_networks_StageNet + 7, + .opcodes = fun_data_apps_monero_xmr_networks_StageNet + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_networks__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/networks.py, scope apps_monero_xmr_networks_net_version +static const byte fun_data_apps_monero_xmr_networks_net_version[141] = { + 0xcb,0x81,0x01,0x30, // prelude + 0x05,0x12,0x13,0x14, // names: net_version, network_type, is_subaddr, is_integrated + 0x80,0x1d,0x60,0x4b,0x25,0x44,0x26,0x47,0x22,0x27,0x25,0x27,0x25,0x27,0x45,0x4c,0x24,0x23,0x49,0x46, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'MoneroNetworkType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.enums' + 0x1c,0x06, // IMPORT_FROM 'MoneroNetworkType' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb3, // LOAD_FAST 3 + 0x13,0x08, // LOAD_ATTR 'MAINNET' + 0xc0, // STORE_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb1, // LOAD_FAST 1 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x15, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x13,0x08, // LOAD_ATTR 'MAINNET' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x02, // LOAD_GLOBAL 'MainNet' + 0xc4, // STORE_FAST 4 + 0x42,0x64, // JUMP 36 + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x13,0x09, // LOAD_ATTR 'TESTNET' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x03, // LOAD_GLOBAL 'TestNet' + 0xc4, // STORE_FAST 4 + 0x42,0x58, // JUMP 24 + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x13,0x0a, // LOAD_ATTR 'STAGENET' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x12,0x04, // LOAD_GLOBAL 'StageNet' + 0xc4, // STORE_FAST 4 + 0x42,0x4c, // JUMP 12 + 0x12,0x15, // LOAD_GLOBAL 'ValueError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x14,0x0b, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x13,0x0c, // LOAD_ATTR 'PUBLIC_ADDRESS_BASE58_PREFIX' + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x13,0x0d, // LOAD_ATTR 'PUBLIC_SUBADDRESS_BASE58_PREFIX' + 0xc5, // STORE_FAST 5 + 0x42,0x49, // JUMP 9 + 0xb2, // LOAD_FAST 2 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x13,0x0e, // LOAD_ATTR 'PUBLIC_INTEGRATED_ADDRESS_BASE58_PREFIX' + 0xc5, // STORE_FAST 5 + 0x42,0x40, // JUMP 0 + 0x12,0x16, // LOAD_GLOBAL 'bytes' + 0xb5, // LOAD_FAST 5 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_networks_net_version = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_networks_net_version, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 141, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 3, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_monero_xmr_networks_net_version + 8, + .line_info_top = fun_data_apps_monero_xmr_networks_net_version + 28, + .opcodes = fun_data_apps_monero_xmr_networks_net_version + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_networks__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_networks_MainNet, + &raw_code_apps_monero_xmr_networks_TestNet, + &raw_code_apps_monero_xmr_networks_StageNet, + &raw_code_apps_monero_xmr_networks_net_version, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_networks__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_networks__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = (void *)&children_apps_monero_xmr_networks__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_networks__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_networks__lt_module_gt_ + 12, + .opcodes = fun_data_apps_monero_xmr_networks__lt_module_gt_ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_networks[23] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_networks_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_MainNet, + MP_QSTR_TestNet, + MP_QSTR_StageNet, + MP_QSTR_net_version, + MP_QSTR_MoneroNetworkType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_MAINNET, + MP_QSTR_TESTNET, + MP_QSTR_STAGENET, + MP_QSTR_format, + MP_QSTR_PUBLIC_ADDRESS_BASE58_PREFIX, + MP_QSTR_PUBLIC_SUBADDRESS_BASE58_PREFIX, + MP_QSTR_PUBLIC_INTEGRATED_ADDRESS_BASE58_PREFIX, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_network_type, + MP_QSTR_is_subaddr, + MP_QSTR_is_integrated, + MP_QSTR_ValueError, + MP_QSTR_bytes, +}; + +// constants +static const mp_obj_str_t const_obj_apps_monero_xmr_networks_0 = {{&mp_type_str}, 57246, 31, (const byte*)"\x53\x75\x62\x61\x64\x64\x72\x65\x73\x73\x20\x63\x61\x6e\x6e\x6f\x74\x20\x62\x65\x20\x69\x6e\x74\x65\x67\x72\x61\x74\x65\x64"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_xmr_networks[2] = { + MP_ROM_PTR(&const_obj_apps_monero_xmr_networks_0), + MP_ROM_QSTR(MP_QSTR_Unknown_space_network_space_type_colon__space__brace_open__brace_close_), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_networks = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_networks, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_xmr_networks, + }, + .rc = &raw_code_apps_monero_xmr_networks__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_range_signatures +// - original source file: build/firmware/src/apps/monero/xmr/range_signatures.mpy +// - frozen file name: apps/monero/xmr/range_signatures.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/range_signatures.py, scope apps_monero_xmr_range_signatures__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_range_signatures__lt_module_gt_[39] = { + 0x08,0x12, // prelude + 0x01, // names: + 0x80,0x0a,0x66,0x4c,0x60,0x20,0x84,0x0e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'gc' + 0x16,0x02, // STORE_NAME 'gc' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'crypto' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x03, // IMPORT_FROM 'crypto' + 0x16,0x03, // STORE_NAME 'crypto' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x05, // STORE_NAME 'prove_range_bp_batch' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0a, // STORE_NAME 'verify_bp' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_range_signatures__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/range_signatures.py, scope apps_monero_xmr_range_signatures_prove_range_bp_batch +static const byte fun_data_apps_monero_xmr_range_signatures_prove_range_bp_batch[55] = { + 0x42,0x16, // prelude + 0x05,0x17,0x18, // names: prove_range_bp_batch, amounts, masks + 0x80,0x16,0x20,0x4b,0x26,0x2c,0x24,0x47, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'bulletproof' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x06, // IMPORT_FROM 'bulletproof' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x07, // LOAD_METHOD 'BulletProofPlusBuilder' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x14,0x08, // LOAD_METHOD 'prove_batch' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0xc4, // STORE_FAST 4 + 0x28,0x03, // DELETE_FAST 3 + 0x28,0x02, // DELETE_FAST 2 + 0x12,0x02, // LOAD_GLOBAL 'gc' + 0x14,0x09, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_range_signatures_prove_range_bp_batch +// frozen bytecode for file apps/monero/xmr/range_signatures.py, scope apps_monero_xmr_range_signatures_prove_range_bp_batch__lt_listcomp_gt_ +static const byte fun_data_apps_monero_xmr_range_signatures_prove_range_bp_batch__lt_listcomp_gt_[25] = { + 0x49,0x08, // prelude + 0x15,0x1b, // names: , * + 0x80,0x1a, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0c, // FOR_ITER 12 + 0xc1, // STORE_FAST 1 + 0x12,0x03, // LOAD_GLOBAL 'crypto' + 0x14,0x16, // LOAD_METHOD 'Scalar' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x32, // JUMP -14 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_range_signatures_prove_range_bp_batch__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_range_signatures_prove_range_bp_batch__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_monero_xmr_range_signatures_prove_range_bp_batch__lt_listcomp_gt_ + 4, + .line_info_top = fun_data_apps_monero_xmr_range_signatures_prove_range_bp_batch__lt_listcomp_gt_ + 6, + .opcodes = fun_data_apps_monero_xmr_range_signatures_prove_range_bp_batch__lt_listcomp_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_range_signatures_prove_range_bp_batch[] = { + &raw_code_apps_monero_xmr_range_signatures_prove_range_bp_batch__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_range_signatures_prove_range_bp_batch = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_range_signatures_prove_range_bp_batch, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = (void *)&children_apps_monero_xmr_range_signatures_prove_range_bp_batch, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_monero_xmr_range_signatures_prove_range_bp_batch + 5, + .line_info_top = fun_data_apps_monero_xmr_range_signatures_prove_range_bp_batch + 13, + .opcodes = fun_data_apps_monero_xmr_range_signatures_prove_range_bp_batch + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_range_signatures__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/range_signatures.py, scope apps_monero_xmr_range_signatures_verify_bp +static const byte fun_data_apps_monero_xmr_range_signatures_verify_bp[146] = { + 0x8b,0x10,0x28, // prelude + 0x0a,0x19,0x17,0x18, // names: verify_bp, bp_proof, amounts, masks + 0x80,0x26,0x20,0x2b,0x4b,0x24,0x25,0x2a,0x2e,0x2c,0x57,0x4b,0x20,0x26,0x27,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'bulletproof' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x06, // IMPORT_FROM 'bulletproof' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'crypto_helpers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'apps.monero.xmr' + 0x1c,0x0b, // IMPORT_FROM 'crypto_helpers' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x44,0xc0,0x80, // POP_JUMP_IF_FALSE 64 + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x0c, // STORE_ATTR 'V' + 0x12,0x1a, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x6c, // JUMP 44 + 0x57, // DUP_TOP + 0xc5, // STORE_FAST 5 + 0x12,0x03, // LOAD_GLOBAL 'crypto' + 0x14,0x0d, // LOAD_METHOD 'gen_commitment_into' + 0x51, // LOAD_CONST_NONE + 0xb2, // LOAD_FAST 2 + 0xb5, // LOAD_FAST 5 + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0x55, // LOAD_SUBSCR + 0x36,0x03, // CALL_METHOD 3 + 0xc6, // STORE_FAST 6 + 0x12,0x03, // LOAD_GLOBAL 'crypto' + 0x14,0x0e, // LOAD_METHOD 'scalarmult_into' + 0xb6, // LOAD_FAST 6 + 0xb6, // LOAD_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x13,0x0f, // LOAD_ATTR 'INV_EIGHT_SC' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'V' + 0x14,0x10, // LOAD_METHOD 'append' + 0xb4, // LOAD_FAST 4 + 0x14,0x11, // LOAD_METHOD 'encodepoint' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x0f, // POP_JUMP_IF_TRUE -49 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x12, // LOAD_CONST_STRING 'BulletproofPlus' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME 'apps.monero.xmr.serialize_messages.tx_rsig_bulletproof' + 0x1c,0x12, // IMPORT_FROM 'BulletproofPlus' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x07, // LOAD_METHOD 'BulletProofPlusBuilder' + 0x36,0x00, // CALL_METHOD 0 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x14,0x14, // LOAD_METHOD 'verify' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc9, // STORE_FAST 9 + 0x12,0x02, // LOAD_GLOBAL 'gc' + 0x14,0x09, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_range_signatures_verify_bp = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_range_signatures_verify_bp, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 146, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_monero_xmr_range_signatures_verify_bp + 7, + .line_info_top = fun_data_apps_monero_xmr_range_signatures_verify_bp + 23, + .opcodes = fun_data_apps_monero_xmr_range_signatures_verify_bp + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_range_signatures__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_range_signatures_prove_range_bp_batch, + &raw_code_apps_monero_xmr_range_signatures_verify_bp, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_range_signatures__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_range_signatures__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = (void *)&children_apps_monero_xmr_range_signatures__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_range_signatures__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_range_signatures__lt_module_gt_ + 11, + .opcodes = fun_data_apps_monero_xmr_range_signatures__lt_module_gt_ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_range_signatures[28] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_range_signatures_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_gc, + MP_QSTR_crypto, + MP_QSTR_apps_dot_monero_dot_xmr, + MP_QSTR_prove_range_bp_batch, + MP_QSTR_bulletproof, + MP_QSTR_BulletProofPlusBuilder, + MP_QSTR_prove_batch, + MP_QSTR_collect, + MP_QSTR_verify_bp, + MP_QSTR_crypto_helpers, + MP_QSTR_V, + MP_QSTR_gen_commitment_into, + MP_QSTR_scalarmult_into, + MP_QSTR_INV_EIGHT_SC, + MP_QSTR_append, + MP_QSTR_encodepoint, + MP_QSTR_BulletproofPlus, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_messages_dot_tx_rsig_bulletproof, + MP_QSTR_verify, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_Scalar, + MP_QSTR_amounts, + MP_QSTR_masks, + MP_QSTR_bp_proof, + MP_QSTR_len, + MP_QSTR__star_, +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_range_signatures = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_range_signatures, + .obj_table = NULL, + }, + .rc = &raw_code_apps_monero_xmr_range_signatures__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_serialize___init__ +// - original source file: build/firmware/src/apps/monero/xmr/serialize/__init__.mpy +// - frozen file name: apps/monero/xmr/serialize/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/serialize/__init__.py, scope apps_monero_xmr_serialize___init____lt_module_gt_ +static const byte fun_data_apps_monero_xmr_serialize___init____lt_module_gt_[23] = { + 0x08,0x0c, // prelude + 0x01, // names: + 0x40,0x80,0x08,0x84,0x07, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'parse_msg' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x16,0x06, // STORE_NAME 'dump_msg' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_serialize___init____lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize/__init__.py, scope apps_monero_xmr_serialize___init___parse_msg +static const byte fun_data_apps_monero_xmr_serialize___init___parse_msg[36] = { + 0x32,0x0e, // prelude + 0x02,0x0c,0x0d, // names: parse_msg, buf, msg_type + 0x80,0x0b,0x4b,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'MemoryReaderWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'apps.monero.xmr.serialize.readwriter' + 0x1c,0x03, // IMPORT_FROM 'MemoryReaderWriter' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x12,0x0e, // LOAD_GLOBAL 'memoryview' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x14,0x05, // LOAD_METHOD 'load' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize___init___parse_msg = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_serialize___init___parse_msg, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_monero_xmr_serialize___init___parse_msg + 5, + .line_info_top = fun_data_apps_monero_xmr_serialize___init___parse_msg + 9, + .opcodes = fun_data_apps_monero_xmr_serialize___init___parse_msg + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize___init____lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize/__init__.py, scope apps_monero_xmr_serialize___init___dump_msg +static const byte fun_data_apps_monero_xmr_serialize___init___dump_msg[63] = { + 0xcb,0x80,0x01,0x18, // prelude + 0x06,0x0f,0x07,0x10, // names: dump_msg, msg, preallocate, prefix + 0x80,0x14,0x4b,0x28,0x23,0x27,0x24,0x48, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'MemoryReaderWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'apps.monero.xmr.serialize.readwriter' + 0x1c,0x03, // IMPORT_FROM 'MemoryReaderWriter' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x07, // LOAD_CONST_STRING 'preallocate' + 0xb1, // LOAD_FAST 1 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb4, // LOAD_FAST 4 + 0x14,0x08, // LOAD_METHOD 'write' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR '__class__' + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x14,0x0a, // LOAD_METHOD 'dump' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x0b, // LOAD_METHOD 'get_buffer' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize___init___dump_msg = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_serialize___init___dump_msg, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 63, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_monero_xmr_serialize___init___dump_msg + 8, + .line_info_top = fun_data_apps_monero_xmr_serialize___init___dump_msg + 16, + .opcodes = fun_data_apps_monero_xmr_serialize___init___dump_msg + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_serialize___init____lt_module_gt_[] = { + &raw_code_apps_monero_xmr_serialize___init___parse_msg, + &raw_code_apps_monero_xmr_serialize___init___dump_msg, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = (void *)&children_apps_monero_xmr_serialize___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_serialize___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize___init____lt_module_gt_ + 8, + .opcodes = fun_data_apps_monero_xmr_serialize___init____lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_serialize___init__[17] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_parse_msg, + MP_QSTR_MemoryReaderWriter, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_dot_readwriter, + MP_QSTR_load, + MP_QSTR_dump_msg, + MP_QSTR_preallocate, + MP_QSTR_write, + MP_QSTR___class__, + MP_QSTR_dump, + MP_QSTR_get_buffer, + MP_QSTR_buf, + MP_QSTR_msg_type, + MP_QSTR_memoryview, + MP_QSTR_msg, + MP_QSTR_prefix, +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_serialize___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_serialize___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps_monero_xmr_serialize___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_serialize_base_types +// - original source file: build/firmware/src/apps/monero/xmr/serialize/base_types.mpy +// - frozen file name: apps/monero/xmr/serialize/base_types.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/serialize/base_types.py, scope apps_monero_xmr_serialize_base_types__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_serialize_base_types__lt_module_gt_[17] = { + 0x10,0x08, // prelude + 0x01, // names: + 0x40,0x80,0x23, // code info + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x02, // LOAD_CONST_STRING 'UVarintType' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x02, // STORE_NAME 'UVarintType' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_serialize_base_types__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize/base_types.py, scope apps_monero_xmr_serialize_base_types_UVarintType +static const byte fun_data_apps_monero_xmr_serialize_base_types_UVarintType[33] = { + 0x08,0x0a, // prelude + 0x02, // names: UVarintType + 0x88,0x26,0x68,0x60, // code info + 0x11,0x08, // LOAD_NAME '__name__' + 0x16,0x09, // STORE_NAME '__module__' + 0x10,0x02, // LOAD_CONST_STRING 'UVarintType' + 0x16,0x0a, // STORE_NAME '__qualname__' + 0x11,0x0b, // LOAD_NAME 'staticmethod' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x03, // STORE_NAME 'load' + 0x11,0x0b, // LOAD_NAME 'staticmethod' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x06, // STORE_NAME 'dump' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_serialize_base_types_UVarintType +// frozen bytecode for file apps/monero/xmr/serialize/base_types.py, scope apps_monero_xmr_serialize_base_types_UVarintType_load +static const byte fun_data_apps_monero_xmr_serialize_base_types_UVarintType_load[23] = { + 0x19,0x0a, // prelude + 0x03,0x0c, // names: load, reader + 0x80,0x28,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'load_uvarint' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'apps.monero.xmr.serialize.int_serialize' + 0x1c,0x04, // IMPORT_FROM 'load_uvarint' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_base_types_UVarintType_load = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_serialize_base_types_UVarintType_load, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 3, + .line_info = fun_data_apps_monero_xmr_serialize_base_types_UVarintType_load + 4, + .line_info_top = fun_data_apps_monero_xmr_serialize_base_types_UVarintType_load + 7, + .opcodes = fun_data_apps_monero_xmr_serialize_base_types_UVarintType_load + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize_base_types_UVarintType +// frozen bytecode for file apps/monero/xmr/serialize/base_types.py, scope apps_monero_xmr_serialize_base_types_UVarintType_dump +static const byte fun_data_apps_monero_xmr_serialize_base_types_UVarintType_dump[25] = { + 0x2a,0x0c, // prelude + 0x06,0x0d,0x0e, // names: dump, writer, n + 0x80,0x2e,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'dump_uvarint' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'apps.monero.xmr.serialize.int_serialize' + 0x1c,0x07, // IMPORT_FROM 'dump_uvarint' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_base_types_UVarintType_dump = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_serialize_base_types_UVarintType_dump, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_monero_xmr_serialize_base_types_UVarintType_dump + 5, + .line_info_top = fun_data_apps_monero_xmr_serialize_base_types_UVarintType_dump + 8, + .opcodes = fun_data_apps_monero_xmr_serialize_base_types_UVarintType_dump + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_serialize_base_types_UVarintType[] = { + &raw_code_apps_monero_xmr_serialize_base_types_UVarintType_load, + &raw_code_apps_monero_xmr_serialize_base_types_UVarintType_dump, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_base_types_UVarintType = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_base_types_UVarintType, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = (void *)&children_apps_monero_xmr_serialize_base_types_UVarintType, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_monero_xmr_serialize_base_types_UVarintType + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_base_types_UVarintType + 7, + .opcodes = fun_data_apps_monero_xmr_serialize_base_types_UVarintType + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_serialize_base_types__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_serialize_base_types_UVarintType, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_base_types__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_base_types__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = (void *)&children_apps_monero_xmr_serialize_base_types__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_serialize_base_types__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_base_types__lt_module_gt_ + 6, + .opcodes = fun_data_apps_monero_xmr_serialize_base_types__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_serialize_base_types[15] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_slash_base_types_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_UVarintType, + MP_QSTR_load, + MP_QSTR_load_uvarint, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_dot_int_serialize, + MP_QSTR_dump, + MP_QSTR_dump_uvarint, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_staticmethod, + MP_QSTR_reader, + MP_QSTR_writer, + MP_QSTR_n, +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_serialize_base_types = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_serialize_base_types, + .obj_table = NULL, + }, + .rc = &raw_code_apps_monero_xmr_serialize_base_types__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_serialize_int_serialize +// - original source file: build/firmware/src/apps/monero/xmr/serialize/int_serialize.mpy +// - frozen file name: apps/monero/xmr/serialize/int_serialize.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/serialize/int_serialize.py, scope apps_monero_xmr_serialize_int_serialize__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_serialize_int_serialize__lt_module_gt_[53] = { + 0x08,0x1c, // prelude + 0x01, // names: + 0x40,0x60,0x67,0x84,0x0b,0x84,0x0b,0x84,0x08,0x88,0x0f,0x84,0x0d, // code info + 0x11,0x0a, // LOAD_NAME 'bytearray' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x0b, // STORE_NAME '_UINT_BUFFER' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'dump_uint' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x04, // STORE_NAME 'uvarint_size' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x05, // STORE_NAME 'dump_uvarint_b' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x03, // MAKE_FUNCTION_DEFARGS 3 + 0x16,0x06, // STORE_NAME 'dump_uvarint_b_into' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x07, // STORE_NAME 'load_uvarint' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x09, // STORE_NAME 'dump_uvarint' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_serialize_int_serialize__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize/int_serialize.py, scope apps_monero_xmr_serialize_int_serialize_dump_uint +static const byte fun_data_apps_monero_xmr_serialize_int_serialize_dump_uint[52] = { + 0x4b,0x16, // prelude + 0x02,0x0c,0x0d,0x0e, // names: dump_uint, writer, n, width + 0x80,0x09,0x60,0x23,0x26,0x28,0x27, // code info + 0x12,0x0b, // LOAD_GLOBAL '_UINT_BUFFER' + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x57, // JUMP 23 + 0x57, // DUP_TOP + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xef, // BINARY_OP 24 __and__ + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x56, // STORE_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x14,0x03, // LOAD_METHOD 'write' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xe4, // BINARY_OP 13 __irshift__ + 0xc1, // STORE_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x24, // POP_JUMP_IF_TRUE -28 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_int_serialize_dump_uint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_serialize_int_serialize_dump_uint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 52, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_monero_xmr_serialize_int_serialize_dump_uint + 6, + .line_info_top = fun_data_apps_monero_xmr_serialize_int_serialize_dump_uint + 13, + .opcodes = fun_data_apps_monero_xmr_serialize_int_serialize_dump_uint + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize_int_serialize__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize/int_serialize.py, scope apps_monero_xmr_serialize_int_serialize_uvarint_size +static const byte fun_data_apps_monero_xmr_serialize_int_serialize_uvarint_size[36] = { + 0x19,0x12, // prelude + 0x04,0x0d, // names: uvarint_size, n + 0x80,0x14,0x60,0x2a,0x22,0x24,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x41, // JUMP 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xc1, // STORE_FAST 1 + 0x42,0x48, // JUMP 8 + 0xb0, // LOAD_FAST 0 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xe4, // BINARY_OP 13 __irshift__ + 0xc0, // STORE_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x43,0x35, // POP_JUMP_IF_TRUE -11 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_int_serialize_uvarint_size = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_serialize_int_serialize_uvarint_size, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_monero_xmr_serialize_int_serialize_uvarint_size + 4, + .line_info_top = fun_data_apps_monero_xmr_serialize_int_serialize_uvarint_size + 11, + .opcodes = fun_data_apps_monero_xmr_serialize_int_serialize_uvarint_size + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize_int_serialize__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize/int_serialize.py, scope apps_monero_xmr_serialize_int_serialize_dump_uvarint_b +static const byte fun_data_apps_monero_xmr_serialize_int_serialize_dump_uvarint_b[26] = { + 0x29,0x0c, // prelude + 0x05,0x0d, // names: dump_uvarint_b, n + 0x80,0x1f,0x60,0x2a, // code info + 0x12,0x0a, // LOAD_GLOBAL 'bytearray' + 0x12,0x04, // LOAD_GLOBAL 'uvarint_size' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0x12,0x06, // LOAD_GLOBAL 'dump_uvarint_b_into' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_int_serialize_dump_uvarint_b = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_serialize_int_serialize_dump_uvarint_b, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_monero_xmr_serialize_int_serialize_dump_uvarint_b + 4, + .line_info_top = fun_data_apps_monero_xmr_serialize_int_serialize_dump_uvarint_b + 8, + .opcodes = fun_data_apps_monero_xmr_serialize_int_serialize_dump_uvarint_b + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize_int_serialize__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize/int_serialize.py, scope apps_monero_xmr_serialize_int_serialize_dump_uvarint_b_into +static const byte fun_data_apps_monero_xmr_serialize_int_serialize_dump_uvarint_b_into[67] = { + 0xb3,0x01,0x1e, // prelude + 0x06,0x0d,0x0f,0x10, // names: dump_uvarint_b_into, n, buffer, offset + 0x80,0x27,0x60,0x25,0x27,0x22,0x22,0x24,0x32,0x24,0x25, // code info + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x11, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x52, // LOAD_CONST_TRUE + 0xc3, // STORE_FAST 3 + 0x42,0x5c, // JUMP 28 + 0xb0, // LOAD_FAST 0 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xf1, // BINARY_OP 26 __rshift__ + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0xef, // BINARY_OP 24 __and__ + 0xb3, // LOAD_FAST 3 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0x42,0x41, // JUMP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xed, // BINARY_OP 22 __or__ + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x56, // STORE_SUBSCR + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xc0, // STORE_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x43,0x21, // POP_JUMP_IF_TRUE -31 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_int_serialize_dump_uvarint_b_into = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_serialize_int_serialize_dump_uvarint_b_into, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 67, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_monero_xmr_serialize_int_serialize_dump_uvarint_b_into + 7, + .line_info_top = fun_data_apps_monero_xmr_serialize_int_serialize_dump_uvarint_b_into + 18, + .opcodes = fun_data_apps_monero_xmr_serialize_int_serialize_dump_uvarint_b_into + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize_int_serialize__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize/int_serialize.py, scope apps_monero_xmr_serialize_int_serialize_load_uvarint +static const byte fun_data_apps_monero_xmr_serialize_int_serialize_load_uvarint[62] = { + 0x39,0x1a, // prelude + 0x07,0x12, // names: load_uvarint, reader + 0x80,0x36,0x23,0x22,0x22,0x24,0x22,0x27,0x24,0x2a,0x2b, // code info + 0x12,0x0b, // LOAD_GLOBAL '_UINT_BUFFER' + 0xc1, // STORE_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc2, // STORE_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc3, // STORE_FAST 3 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xc4, // STORE_FAST 4 + 0x42,0x59, // JUMP 25 + 0xb0, // LOAD_FAST 0 + 0x14,0x08, // LOAD_METHOD 'readinto' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0xef, // BINARY_OP 24 __and__ + 0xb3, // LOAD_FAST 3 + 0xf0, // BINARY_OP 25 __lshift__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc3, // STORE_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xef, // BINARY_OP 24 __and__ + 0x43,0x20, // POP_JUMP_IF_TRUE -32 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_int_serialize_load_uvarint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_serialize_int_serialize_load_uvarint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 62, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_monero_xmr_serialize_int_serialize_load_uvarint + 4, + .line_info_top = fun_data_apps_monero_xmr_serialize_int_serialize_load_uvarint + 15, + .opcodes = fun_data_apps_monero_xmr_serialize_int_serialize_load_uvarint + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize_int_serialize__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize/int_serialize.py, scope apps_monero_xmr_serialize_int_serialize_dump_uvarint +static const byte fun_data_apps_monero_xmr_serialize_int_serialize_dump_uvarint[70] = { + 0x32,0x1a, // prelude + 0x09,0x0c,0x0d, // names: dump_uvarint, writer, n + 0x80,0x43,0x25,0x27,0x23,0x22,0x22,0x24,0x32,0x27, // code info + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x11, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x0b, // LOAD_GLOBAL '_UINT_BUFFER' + 0xc2, // STORE_FAST 2 + 0x52, // LOAD_CONST_TRUE + 0xc3, // STORE_FAST 3 + 0x42,0x5f, // JUMP 31 + 0xb1, // LOAD_FAST 1 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xf1, // BINARY_OP 26 __rshift__ + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0xef, // BINARY_OP 24 __and__ + 0xb3, // LOAD_FAST 3 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0x42,0x41, // JUMP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xed, // BINARY_OP 22 __or__ + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x56, // STORE_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x14,0x03, // LOAD_METHOD 'write' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xc1, // STORE_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x43,0x1e, // POP_JUMP_IF_TRUE -34 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_int_serialize_dump_uvarint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_serialize_int_serialize_dump_uvarint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_monero_xmr_serialize_int_serialize_dump_uvarint + 5, + .line_info_top = fun_data_apps_monero_xmr_serialize_int_serialize_dump_uvarint + 15, + .opcodes = fun_data_apps_monero_xmr_serialize_int_serialize_dump_uvarint + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_serialize_int_serialize__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_serialize_int_serialize_dump_uint, + &raw_code_apps_monero_xmr_serialize_int_serialize_uvarint_size, + &raw_code_apps_monero_xmr_serialize_int_serialize_dump_uvarint_b, + &raw_code_apps_monero_xmr_serialize_int_serialize_dump_uvarint_b_into, + &raw_code_apps_monero_xmr_serialize_int_serialize_load_uvarint, + &raw_code_apps_monero_xmr_serialize_int_serialize_dump_uvarint, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_int_serialize__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_int_serialize__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 53, + #endif + .children = (void *)&children_apps_monero_xmr_serialize_int_serialize__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_serialize_int_serialize__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_int_serialize__lt_module_gt_ + 16, + .opcodes = fun_data_apps_monero_xmr_serialize_int_serialize__lt_module_gt_ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_serialize_int_serialize[19] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_slash_int_serialize_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_dump_uint, + MP_QSTR_write, + MP_QSTR_uvarint_size, + MP_QSTR_dump_uvarint_b, + MP_QSTR_dump_uvarint_b_into, + MP_QSTR_load_uvarint, + MP_QSTR_readinto, + MP_QSTR_dump_uvarint, + MP_QSTR_bytearray, + MP_QSTR__UINT_BUFFER, + MP_QSTR_writer, + MP_QSTR_n, + MP_QSTR_width, + MP_QSTR_buffer, + MP_QSTR_offset, + MP_QSTR_ValueError, + MP_QSTR_reader, +}; + +// constants +static const mp_obj_str_t const_obj_apps_monero_xmr_serialize_int_serialize_0 = {{&mp_type_str}, 18217, 55, (const byte*)"\x43\x61\x6e\x6e\x6f\x74\x20\x64\x75\x6d\x70\x20\x73\x69\x67\x6e\x65\x64\x20\x76\x61\x6c\x75\x65\x2c\x20\x63\x6f\x6e\x76\x65\x72\x74\x20\x69\x74\x20\x74\x6f\x20\x75\x6e\x73\x69\x67\x6e\x65\x64\x20\x66\x69\x72\x73\x74\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_xmr_serialize_int_serialize[1] = { + MP_ROM_PTR(&const_obj_apps_monero_xmr_serialize_int_serialize_0), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_serialize_int_serialize = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_serialize_int_serialize, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_xmr_serialize_int_serialize, + }, + .rc = &raw_code_apps_monero_xmr_serialize_int_serialize__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_serialize_message_types +// - original source file: build/firmware/src/apps/monero/xmr/serialize/message_types.mpy +// - frozen file name: apps/monero/xmr/serialize/message_types.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/serialize/message_types.py, scope apps_monero_xmr_serialize_message_types__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_serialize_message_types__lt_module_gt_[96] = { + 0x20,0x18, // prelude + 0x01, // names: + 0x40,0x52,0x52,0x80,0x09,0x29,0x63,0x89,0x1d,0x8e,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'obj_eq' + 0x10,0x03, // LOAD_CONST_STRING 'obj_repr' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x04, // IMPORT_NAME 'trezor.utils' + 0x1c,0x02, // IMPORT_FROM 'obj_eq' + 0x16,0x02, // STORE_NAME 'obj_eq' + 0x1c,0x03, // IMPORT_FROM 'obj_repr' + 0x16,0x03, // STORE_NAME 'obj_repr' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'dump_uvarint' + 0x10,0x06, // LOAD_CONST_STRING 'load_uvarint' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x07, // IMPORT_NAME 'apps.monero.xmr.serialize.int_serialize' + 0x1c,0x05, // IMPORT_FROM 'dump_uvarint' + 0x16,0x05, // STORE_NAME 'dump_uvarint' + 0x1c,0x06, // IMPORT_FROM 'load_uvarint' + 0x16,0x06, // STORE_NAME 'load_uvarint' + 0x59, // POP_TOP + 0x11,0x15, // LOAD_NAME 'object' + 0x2b,0x01, // BUILD_LIST 1 + 0x57, // DUP_TOP + 0x16,0x16, // STORE_NAME 'Generic' + 0x16,0x17, // STORE_NAME 'XmrType' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x18, // STORE_NAME 'T' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x08, // LOAD_CONST_STRING 'BlobType' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x08, // STORE_NAME 'BlobType' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x09, // LOAD_CONST_STRING 'ContainerType' + 0x11,0x16, // LOAD_NAME 'Generic' + 0x11,0x18, // LOAD_NAME 'T' + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x09, // STORE_NAME 'ContainerType' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x02, // MAKE_FUNCTION 2 + 0x10,0x0a, // LOAD_CONST_STRING 'MessageType' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x0a, // STORE_NAME 'MessageType' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_serialize_message_types__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize/message_types.py, scope apps_monero_xmr_serialize_message_types_BlobType +static const byte fun_data_apps_monero_xmr_serialize_message_types_BlobType[43] = { + 0x08,0x12, // prelude + 0x08, // names: BlobType + 0x88,0x14,0x60,0x40,0x23,0x43,0x88,0x09, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x08, // LOAD_CONST_STRING 'BlobType' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x0c, // STORE_NAME 'FIX_SIZE' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x0d, // STORE_NAME 'SIZE' + 0x11,0x1c, // LOAD_NAME 'classmethod' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x0b, // STORE_NAME 'dump' + 0x11,0x1c, // LOAD_NAME 'classmethod' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x0f, // STORE_NAME 'load' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_serialize_message_types_BlobType +// frozen bytecode for file apps/monero/xmr/serialize/message_types.py, scope apps_monero_xmr_serialize_message_types_BlobType_dump +static const byte fun_data_apps_monero_xmr_serialize_message_types_BlobType_dump[57] = { + 0x33,0x14, // prelude + 0x0b,0x1f,0x20,0x21, // names: dump, cls, writer, elem + 0x80,0x1e,0x25,0x2b,0x49,0x2b, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'FIX_SIZE' + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'SIZE' + 0x12,0x22, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x23, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x4b, // JUMP 11 + 0x12,0x05, // LOAD_GLOBAL 'dump_uvarint' + 0xb1, // LOAD_FAST 1 + 0x12,0x22, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x0e, // LOAD_METHOD 'write' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_message_types_BlobType_dump = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_serialize_message_types_BlobType_dump, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_apps_monero_xmr_serialize_message_types_BlobType_dump + 6, + .line_info_top = fun_data_apps_monero_xmr_serialize_message_types_BlobType_dump + 12, + .opcodes = fun_data_apps_monero_xmr_serialize_message_types_BlobType_dump + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize_message_types_BlobType +// frozen bytecode for file apps/monero/xmr/serialize/message_types.py, scope apps_monero_xmr_serialize_message_types_BlobType_load +static const byte fun_data_apps_monero_xmr_serialize_message_types_BlobType_load[44] = { + 0x32,0x14, // prelude + 0x0f,0x1f,0x24, // names: load, cls, reader + 0x80,0x27,0x25,0x46,0x26,0x26,0x27, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'FIX_SIZE' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'SIZE' + 0xc2, // STORE_FAST 2 + 0x42,0x46, // JUMP 6 + 0x12,0x06, // LOAD_GLOBAL 'load_uvarint' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x12,0x25, // LOAD_GLOBAL 'bytearray' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x14,0x10, // LOAD_METHOD 'readinto' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_message_types_BlobType_load = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_serialize_message_types_BlobType_load, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_monero_xmr_serialize_message_types_BlobType_load + 5, + .line_info_top = fun_data_apps_monero_xmr_serialize_message_types_BlobType_load + 12, + .opcodes = fun_data_apps_monero_xmr_serialize_message_types_BlobType_load + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_serialize_message_types_BlobType[] = { + &raw_code_apps_monero_xmr_serialize_message_types_BlobType_dump, + &raw_code_apps_monero_xmr_serialize_message_types_BlobType_load, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_message_types_BlobType = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_message_types_BlobType, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = (void *)&children_apps_monero_xmr_serialize_message_types_BlobType, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_monero_xmr_serialize_message_types_BlobType + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_message_types_BlobType + 11, + .opcodes = fun_data_apps_monero_xmr_serialize_message_types_BlobType + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize_message_types__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize/message_types.py, scope apps_monero_xmr_serialize_message_types_ContainerType +static const byte fun_data_apps_monero_xmr_serialize_message_types_ContainerType[52] = { + 0x10,0x14, // prelude + 0x09, // names: ContainerType + 0x88,0x31,0x60,0x40,0x23,0x23,0x40,0x8c,0x0e, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x09, // LOAD_CONST_STRING 'ContainerType' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x0c, // STORE_NAME 'FIX_SIZE' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x0d, // STORE_NAME 'SIZE' + 0x11,0x1c, // LOAD_NAME 'classmethod' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x0b, // STORE_NAME 'dump' + 0x11,0x1c, // LOAD_NAME 'classmethod' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x01, // MAKE_FUNCTION_DEFARGS 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x0f, // STORE_NAME 'load' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_serialize_message_types_ContainerType +// frozen bytecode for file apps/monero/xmr/serialize/message_types.py, scope apps_monero_xmr_serialize_message_types_ContainerType_dump +static const byte fun_data_apps_monero_xmr_serialize_message_types_ContainerType_dump[79] = { + 0xe0,0x05,0x1c, // prelude + 0x0b,0x1f,0x20,0x26,0x27, // names: dump, cls, writer, elems, elem_type + 0x80,0x3e,0x25,0x24,0x25,0x2b,0x49,0x2b,0x25, // code info + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'ELEM_TYPE' + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'FIX_SIZE' + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'SIZE' + 0x12,0x22, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x23, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x4b, // JUMP 11 + 0x12,0x05, // LOAD_GLOBAL 'dump_uvarint' + 0xb1, // LOAD_FAST 1 + 0x12,0x22, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x5f, // GET_ITER_STACK + 0x4b,0x0b, // FOR_ITER 11 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x14,0x0b, // LOAD_METHOD 'dump' + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x33, // JUMP -13 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_message_types_ContainerType_dump = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_monero_xmr_serialize_message_types_ContainerType_dump, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 79, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 11, + .line_info = fun_data_apps_monero_xmr_serialize_message_types_ContainerType_dump + 8, + .line_info_top = fun_data_apps_monero_xmr_serialize_message_types_ContainerType_dump + 17, + .opcodes = fun_data_apps_monero_xmr_serialize_message_types_ContainerType_dump + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize_message_types_ContainerType +// frozen bytecode for file apps/monero/xmr/serialize/message_types.py, scope apps_monero_xmr_serialize_message_types_ContainerType_load +static const byte fun_data_apps_monero_xmr_serialize_message_types_ContainerType_load[78] = { + 0xdb,0x01,0x1e, // prelude + 0x0f,0x1f,0x24,0x27, // names: load, cls, reader, elem_type + 0x80,0x4a,0x25,0x24,0x25,0x46,0x26,0x23,0x26,0x27,0x30, // code info + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'ELEM_TYPE' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'FIX_SIZE' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'SIZE' + 0xc3, // STORE_FAST 3 + 0x42,0x46, // JUMP 6 + 0x12,0x06, // LOAD_GLOBAL 'load_uvarint' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x2b,0x00, // BUILD_LIST 0 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x52, // JUMP 18 + 0x57, // DUP_TOP + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x14,0x0f, // LOAD_METHOD 'load' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x14,0x12, // LOAD_METHOD 'append' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x29, // POP_JUMP_IF_TRUE -23 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_message_types_ContainerType_load = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_serialize_message_types_ContainerType_load, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 78, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_monero_xmr_serialize_message_types_ContainerType_load + 7, + .line_info_top = fun_data_apps_monero_xmr_serialize_message_types_ContainerType_load + 18, + .opcodes = fun_data_apps_monero_xmr_serialize_message_types_ContainerType_load + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_serialize_message_types_ContainerType[] = { + &raw_code_apps_monero_xmr_serialize_message_types_ContainerType_dump, + &raw_code_apps_monero_xmr_serialize_message_types_ContainerType_load, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_message_types_ContainerType = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_message_types_ContainerType, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 52, + #endif + .children = (void *)&children_apps_monero_xmr_serialize_message_types_ContainerType, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_monero_xmr_serialize_message_types_ContainerType + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_message_types_ContainerType + 12, + .opcodes = fun_data_apps_monero_xmr_serialize_message_types_ContainerType + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize_message_types__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize/message_types.py, scope apps_monero_xmr_serialize_message_types_MessageType +static const byte fun_data_apps_monero_xmr_serialize_message_types_MessageType[61] = { + 0x08,0x1a, // prelude + 0x0a, // names: MessageType + 0x88,0x58,0x60,0x20,0x64,0x20,0x24,0x44,0x88,0x08,0x88,0x0a, // code info + 0x11,0x19, // LOAD_NAME '__name__' + 0x16,0x1a, // STORE_NAME '__module__' + 0x10,0x0a, // LOAD_CONST_STRING 'MessageType' + 0x16,0x1b, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x13, // STORE_NAME '__init__' + 0x11,0x02, // LOAD_NAME 'obj_eq' + 0x16,0x1d, // STORE_NAME '__eq__' + 0x11,0x03, // LOAD_NAME 'obj_repr' + 0x16,0x1e, // STORE_NAME '__repr__' + 0x11,0x1c, // LOAD_NAME 'classmethod' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x0b, // STORE_NAME 'dump' + 0x11,0x1c, // LOAD_NAME 'classmethod' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x0f, // STORE_NAME 'load' + 0x11,0x1c, // LOAD_NAME 'classmethod' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x14, // STORE_NAME 'f_specs' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_serialize_message_types_MessageType +// frozen bytecode for file apps/monero/xmr/serialize/message_types.py, scope apps_monero_xmr_serialize_message_types_MessageType___init__ +static const byte fun_data_apps_monero_xmr_serialize_message_types_MessageType___init__[28] = { + 0xd9,0x80,0x40,0x0a, // prelude + 0x13,0x28, // names: __init__, self + 0x80,0x5d,0x25, // code info + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x0d, // FOR_ITER 13 + 0xc2, // STORE_FAST 2 + 0x12,0x29, // LOAD_GLOBAL 'setattr' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x31, // JUMP -15 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_message_types_MessageType___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x02, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_serialize_message_types_MessageType___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 2, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_monero_xmr_serialize_message_types_MessageType___init__ + 6, + .line_info_top = fun_data_apps_monero_xmr_serialize_message_types_MessageType___init__ + 9, + .opcodes = fun_data_apps_monero_xmr_serialize_message_types_MessageType___init__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize_message_types_MessageType +// frozen bytecode for file apps/monero/xmr/serialize/message_types.py, scope apps_monero_xmr_serialize_message_types_MessageType_dump +static const byte fun_data_apps_monero_xmr_serialize_message_types_MessageType_dump[52] = { + 0x93,0x10,0x14, // prelude + 0x0b,0x1f,0x20,0x2a, // names: dump, cls, writer, msg + 0x80,0x65,0x26,0x25,0x26,0x28, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x14, // LOAD_METHOD 'f_specs' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x5f, // GET_ITER_STACK + 0x4b,0x1b, // FOR_ITER 27 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x31,0x02, // UNPACK_EX 2 + 0xc5, // STORE_FAST 5 + 0xc6, // STORE_FAST 6 + 0xc7, // STORE_FAST 7 + 0x12,0x2b, // LOAD_GLOBAL 'getattr' + 0xb2, // LOAD_FAST 2 + 0xb5, // LOAD_FAST 5 + 0x51, // LOAD_CONST_NONE + 0x34,0x03, // CALL_FUNCTION 3 + 0xc8, // STORE_FAST 8 + 0xb6, // LOAD_FAST 6 + 0x14,0x0b, // LOAD_METHOD 'dump' + 0xb1, // LOAD_FAST 1 + 0xb8, // LOAD_FAST 8 + 0xb7, // LOAD_FAST 7 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x37,0x03, // CALL_METHOD_VAR_KW 3 + 0x59, // POP_TOP + 0x42,0x23, // JUMP -29 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_message_types_MessageType_dump = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_serialize_message_types_MessageType_dump, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 52, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_apps_monero_xmr_serialize_message_types_MessageType_dump + 7, + .line_info_top = fun_data_apps_monero_xmr_serialize_message_types_MessageType_dump + 13, + .opcodes = fun_data_apps_monero_xmr_serialize_message_types_MessageType_dump + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize_message_types_MessageType +// frozen bytecode for file apps/monero/xmr/serialize/message_types.py, scope apps_monero_xmr_serialize_message_types_MessageType_load +static const byte fun_data_apps_monero_xmr_serialize_message_types_MessageType_load[56] = { + 0x8a,0x10,0x16, // prelude + 0x0f,0x1f,0x24, // names: load, cls, reader + 0x80,0x6d,0x24,0x26,0x25,0x26,0x29,0x2a, // code info + 0xb0, // LOAD_FAST 0 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x14, // LOAD_METHOD 'f_specs' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x5f, // GET_ITER_STACK + 0x4b,0x1a, // FOR_ITER 26 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x31,0x02, // UNPACK_EX 2 + 0xc5, // STORE_FAST 5 + 0xc6, // STORE_FAST 6 + 0xc7, // STORE_FAST 7 + 0xb6, // LOAD_FAST 6 + 0x14,0x0f, // LOAD_METHOD 'load' + 0xb1, // LOAD_FAST 1 + 0xb7, // LOAD_FAST 7 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x37,0x02, // CALL_METHOD_VAR_KW 2 + 0xc8, // STORE_FAST 8 + 0x12,0x29, // LOAD_GLOBAL 'setattr' + 0xb2, // LOAD_FAST 2 + 0xb5, // LOAD_FAST 5 + 0xb8, // LOAD_FAST 8 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x24, // JUMP -28 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_message_types_MessageType_load = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_serialize_message_types_MessageType_load, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_monero_xmr_serialize_message_types_MessageType_load + 6, + .line_info_top = fun_data_apps_monero_xmr_serialize_message_types_MessageType_load + 14, + .opcodes = fun_data_apps_monero_xmr_serialize_message_types_MessageType_load + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize_message_types_MessageType +// frozen bytecode for file apps/monero/xmr/serialize/message_types.py, scope apps_monero_xmr_serialize_message_types_MessageType_f_specs +static const byte fun_data_apps_monero_xmr_serialize_message_types_MessageType_f_specs[9] = { + 0x09,0x08, // prelude + 0x14,0x1f, // names: f_specs, cls + 0x80,0x77, // code info + 0x2a,0x00, // BUILD_TUPLE 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_message_types_MessageType_f_specs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_serialize_message_types_MessageType_f_specs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 9, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_apps_monero_xmr_serialize_message_types_MessageType_f_specs + 4, + .line_info_top = fun_data_apps_monero_xmr_serialize_message_types_MessageType_f_specs + 6, + .opcodes = fun_data_apps_monero_xmr_serialize_message_types_MessageType_f_specs + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_serialize_message_types_MessageType[] = { + &raw_code_apps_monero_xmr_serialize_message_types_MessageType___init__, + &raw_code_apps_monero_xmr_serialize_message_types_MessageType_dump, + &raw_code_apps_monero_xmr_serialize_message_types_MessageType_load, + &raw_code_apps_monero_xmr_serialize_message_types_MessageType_f_specs, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_message_types_MessageType = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_message_types_MessageType, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 61, + #endif + .children = (void *)&children_apps_monero_xmr_serialize_message_types_MessageType, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_monero_xmr_serialize_message_types_MessageType + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_message_types_MessageType + 15, + .opcodes = fun_data_apps_monero_xmr_serialize_message_types_MessageType + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_serialize_message_types__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_serialize_message_types_BlobType, + &raw_code_apps_monero_xmr_serialize_message_types_ContainerType, + &raw_code_apps_monero_xmr_serialize_message_types_MessageType, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_message_types__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_message_types__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 96, + #endif + .children = (void *)&children_apps_monero_xmr_serialize_message_types__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_serialize_message_types__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_message_types__lt_module_gt_ + 14, + .opcodes = fun_data_apps_monero_xmr_serialize_message_types__lt_module_gt_ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_serialize_message_types[44] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_slash_message_types_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_obj_eq, + MP_QSTR_obj_repr, + MP_QSTR_trezor_dot_utils, + MP_QSTR_dump_uvarint, + MP_QSTR_load_uvarint, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_dot_int_serialize, + MP_QSTR_BlobType, + MP_QSTR_ContainerType, + MP_QSTR_MessageType, + MP_QSTR_dump, + MP_QSTR_FIX_SIZE, + MP_QSTR_SIZE, + MP_QSTR_write, + MP_QSTR_load, + MP_QSTR_readinto, + MP_QSTR_ELEM_TYPE, + MP_QSTR_append, + MP_QSTR___init__, + MP_QSTR_f_specs, + MP_QSTR_object, + MP_QSTR_Generic, + MP_QSTR_XmrType, + MP_QSTR_T, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_classmethod, + MP_QSTR___eq__, + MP_QSTR___repr__, + MP_QSTR_cls, + MP_QSTR_writer, + MP_QSTR_elem, + MP_QSTR_len, + MP_QSTR_ValueError, + MP_QSTR_reader, + MP_QSTR_bytearray, + MP_QSTR_elems, + MP_QSTR_elem_type, + MP_QSTR_self, + MP_QSTR_setattr, + MP_QSTR_msg, + MP_QSTR_getattr, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_xmr_serialize_message_types[1] = { + MP_ROM_QSTR(MP_QSTR_Size_space_mismatch), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_serialize_message_types = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_serialize_message_types, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_xmr_serialize_message_types, + }, + .rc = &raw_code_apps_monero_xmr_serialize_message_types__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_serialize_readwriter +// - original source file: build/firmware/src/apps/monero/xmr/serialize/readwriter.mpy +// - frozen file name: apps/monero/xmr/serialize/readwriter.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/serialize/readwriter.py, scope apps_monero_xmr_serialize_readwriter__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_serialize_readwriter__lt_module_gt_[21] = { + 0x10,0x04, // prelude + 0x01, // names: + 0x66, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'gc' + 0x16,0x02, // STORE_NAME 'gc' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x03, // LOAD_CONST_STRING 'MemoryReaderWriter' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x03, // STORE_NAME 'MemoryReaderWriter' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_serialize_readwriter__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize/readwriter.py, scope apps_monero_xmr_serialize_readwriter_MemoryReaderWriter +static const byte fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter[51] = { + 0x20,0x16, // prelude + 0x03, // names: MemoryReaderWriter + 0x68,0x20,0x8c,0x1b,0x64,0x40,0x84,0x18,0x84,0x24, // code info + 0x11,0x14, // LOAD_NAME '__name__' + 0x16,0x15, // STORE_NAME '__module__' + 0x10,0x03, // LOAD_CONST_STRING 'MemoryReaderWriter' + 0x16,0x16, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x2a,0x05, // BUILD_TUPLE 5 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x04, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0d, // STORE_NAME 'preallocate' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0f, // STORE_NAME 'readinto' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x11, // STORE_NAME 'write' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x13, // STORE_NAME 'get_buffer' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_serialize_readwriter_MemoryReaderWriter +// frozen bytecode for file apps/monero/xmr/serialize/readwriter.py, scope apps_monero_xmr_serialize_readwriter_MemoryReaderWriter___init__ +static const byte fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter___init__[103] = { + 0xc2,0x85,0x80,0x01,0x2c, // prelude + 0x04,0x17,0x0e,0x0a,0x0b,0x0c,0x0d, // names: __init__, self, buffer, read_empty, threshold, do_gc, preallocate + 0x80,0x0c,0x24,0x44,0x24,0x24,0x44,0x24,0x24,0x44,0x26,0x29,0x25,0x4a,0x24, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x05, // STORE_ATTR 'nread' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x06, // STORE_ATTR 'nwritten' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x07, // STORE_ATTR 'ndata' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x08, // STORE_ATTR 'offset' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x09, // STORE_ATTR 'woffset' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x0a, // STORE_ATTR 'read_empty' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x0b, // STORE_ATTR 'threshold' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x0c, // STORE_ATTR 'do_gc' + 0xb5, // LOAD_FAST 5 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x0d, // LOAD_METHOD 'preallocate' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x5b, // JUMP 27 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x18, // LOAD_GLOBAL 'bytearray' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x0e, // STORE_ATTR 'buffer' + 0x42,0x4c, // JUMP 12 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x0e, // STORE_ATTR 'buffer' + 0x12,0x19, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x09, // STORE_ATTR 'woffset' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 6, + .fun_data = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 103, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 5, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter___init__ + 12, + .line_info_top = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter___init__ + 27, + .opcodes = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter___init__ + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize_readwriter_MemoryReaderWriter +// frozen bytecode for file apps/monero/xmr/serialize/readwriter.py, scope apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_preallocate +static const byte fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_preallocate[27] = { + 0x1a,0x0e, // prelude + 0x0d,0x17,0x1a, // names: preallocate, self, size + 0x80,0x20,0x28,0x24, // code info + 0x12,0x18, // LOAD_GLOBAL 'bytearray' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x0e, // STORE_ATTR 'buffer' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x08, // STORE_ATTR 'offset' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x09, // STORE_ATTR 'woffset' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_preallocate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_preallocate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_preallocate + 5, + .line_info_top = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_preallocate + 9, + .opcodes = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_preallocate + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize_readwriter_MemoryReaderWriter +// frozen bytecode for file apps/monero/xmr/serialize/readwriter.py, scope apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_readinto +static const byte fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_readinto[184] = { + 0x4a,0x28, // prelude + 0x0f,0x17,0x1b, // names: readinto, self, buf + 0x80,0x25,0x26,0x37,0x43,0x31,0x26,0x55,0x29,0x29,0x69,0x31,0x2d,0x2b,0x44,0x25,0x47, // code info + 0x12,0x19, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x0a, // LOAD_ATTR 'read_empty' + 0x43,0x55, // POP_JUMP_IF_TRUE 21 + 0xb2, // LOAD_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'offset' + 0x12,0x19, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'buffer' + 0x34,0x01, // CALL_FUNCTION 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x12,0x1c, // LOAD_GLOBAL 'EOFError' + 0x65, // RAISE_OBJ + 0x12,0x1d, // LOAD_GLOBAL 'min' + 0xb2, // LOAD_FAST 2 + 0x12,0x19, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'buffer' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'offset' + 0xf3, // BINARY_OP 28 __sub__ + 0x34,0x02, // CALL_FUNCTION 2 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x50, // JUMP 16 + 0x57, // DUP_TOP + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'buffer' + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'offset' + 0xb4, // LOAD_FAST 4 + 0xf2, // BINARY_OP 27 __add__ + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x56, // STORE_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2b, // POP_JUMP_IF_TRUE -21 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x08, // LOAD_ATTR 'offset' + 0xb3, // LOAD_FAST 3 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x08, // STORE_ATTR 'offset' + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x05, // LOAD_ATTR 'nread' + 0xb3, // LOAD_FAST 3 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x05, // STORE_ATTR 'nread' + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x07, // LOAD_ATTR 'ndata' + 0xb3, // LOAD_FAST 3 + 0xe6, // BINARY_OP 15 __isub__ + 0x5a, // ROT_TWO + 0x18,0x07, // STORE_ATTR 'ndata' + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'threshold' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x71, // POP_JUMP_IF_FALSE 49 + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'offset' + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'threshold' + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x68, // POP_JUMP_IF_FALSE 40 + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'buffer' + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'offset' + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x18,0x0e, // STORE_ATTR 'buffer' + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x09, // LOAD_ATTR 'woffset' + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'offset' + 0xe6, // BINARY_OP 15 __isub__ + 0x5a, // ROT_TWO + 0x18,0x09, // STORE_ATTR 'woffset' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x08, // STORE_ATTR 'offset' + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'do_gc' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'gc' + 0x14,0x10, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_readinto = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_readinto, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 184, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_readinto + 5, + .line_info_top = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_readinto + 22, + .opcodes = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_readinto + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize_readwriter_MemoryReaderWriter +// frozen bytecode for file apps/monero/xmr/serialize/readwriter.py, scope apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_write +static const byte fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_write[193] = { + 0x72,0x3a, // prelude + 0x11,0x17,0x1b, // names: write, self, buf + 0x80,0x3d,0x44,0x20,0x26,0x26,0x22,0x62,0x22,0x28,0x29,0x24,0x72,0x23,0x27,0x46,0x26,0x26,0x29,0x24,0x4d,0x27,0x25,0x22,0x4d,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'buffer' + 0xc2, // STORE_FAST 2 + 0x12,0x19, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x12,0x19, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0xc5, // STORE_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc6, // STORE_FAST 6 + 0x42,0x59, // JUMP 25 + 0xb1, // LOAD_FAST 1 + 0xb6, // LOAD_FAST 6 + 0x55, // LOAD_SUBSCR + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'woffset' + 0x56, // STORE_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x09, // LOAD_ATTR 'woffset' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x09, // STORE_ATTR 'woffset' + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe6, // BINARY_OP 15 __isub__ + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'woffset' + 0xf3, // BINARY_OP 28 __sub__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x19, // POP_JUMP_IF_TRUE -39 + 0x42,0xc8,0x80, // JUMP 72 + 0x12,0x1d, // LOAD_GLOBAL 'min' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc7, // STORE_FAST 7 + 0x12,0x18, // LOAD_GLOBAL 'bytearray' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0xb7, // LOAD_FAST 7 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x5b, // JUMP 27 + 0x57, // DUP_TOP + 0xc9, // STORE_FAST 9 + 0xb1, // LOAD_FAST 1 + 0xb6, // LOAD_FAST 6 + 0x55, // LOAD_SUBSCR + 0xb8, // LOAD_FAST 8 + 0xb9, // LOAD_FAST 9 + 0x56, // STORE_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x09, // LOAD_ATTR 'woffset' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x09, // STORE_ATTR 'woffset' + 0xb6, // LOAD_FAST 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe6, // BINARY_OP 15 __isub__ + 0xc5, // STORE_FAST 5 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x20, // POP_JUMP_IF_TRUE -32 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x12, // LOAD_METHOD 'extend' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'do_gc' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x51, // LOAD_CONST_NONE + 0xc8, // STORE_FAST 8 + 0x12,0x02, // LOAD_GLOBAL 'gc' + 0x14,0x10, // LOAD_METHOD 'collect' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0xb2,0x7f, // POP_JUMP_IF_TRUE -78 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x06, // LOAD_ATTR 'nwritten' + 0xb3, // LOAD_FAST 3 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x06, // STORE_ATTR 'nwritten' + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x07, // LOAD_ATTR 'ndata' + 0xb3, // LOAD_FAST 3 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x07, // STORE_ATTR 'ndata' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_write = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_write, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 193, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_write + 5, + .line_info_top = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_write + 31, + .opcodes = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_write + 31, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize_readwriter_MemoryReaderWriter +// frozen bytecode for file apps/monero/xmr/serialize/readwriter.py, scope apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_get_buffer +static const byte fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_get_buffer[26] = { + 0x21,0x0a, // prelude + 0x13,0x17, // names: get_buffer, self + 0x80,0x61,0x28, // code info + 0x12,0x1e, // LOAD_GLOBAL 'memoryview' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'buffer' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'offset' + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'woffset' + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_get_buffer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_get_buffer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_get_buffer + 4, + .line_info_top = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_get_buffer + 7, + .opcodes = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_get_buffer + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter[] = { + &raw_code_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter___init__, + &raw_code_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_preallocate, + &raw_code_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_readinto, + &raw_code_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_write, + &raw_code_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter_get_buffer, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = (void *)&children_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 3, + .line_info = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter + 13, + .opcodes = fun_data_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_serialize_readwriter__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_serialize_readwriter_MemoryReaderWriter, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_readwriter__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_readwriter__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = (void *)&children_apps_monero_xmr_serialize_readwriter__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_serialize_readwriter__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_readwriter__lt_module_gt_ + 4, + .opcodes = fun_data_apps_monero_xmr_serialize_readwriter__lt_module_gt_ + 4, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_serialize_readwriter[31] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_slash_readwriter_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_gc, + MP_QSTR_MemoryReaderWriter, + MP_QSTR___init__, + MP_QSTR_nread, + MP_QSTR_nwritten, + MP_QSTR_ndata, + MP_QSTR_offset, + MP_QSTR_woffset, + MP_QSTR_read_empty, + MP_QSTR_threshold, + MP_QSTR_do_gc, + MP_QSTR_preallocate, + MP_QSTR_buffer, + MP_QSTR_readinto, + MP_QSTR_collect, + MP_QSTR_write, + MP_QSTR_extend, + MP_QSTR_get_buffer, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_self, + MP_QSTR_bytearray, + MP_QSTR_len, + MP_QSTR_size, + MP_QSTR_buf, + MP_QSTR_EOFError, + MP_QSTR_min, + MP_QSTR_memoryview, +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_serialize_readwriter = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_serialize_readwriter, + .obj_table = NULL, + }, + .rc = &raw_code_apps_monero_xmr_serialize_readwriter__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_serialize_messages_base +// - original source file: build/firmware/src/apps/monero/xmr/serialize_messages/base.mpy +// - frozen file name: apps/monero/xmr/serialize_messages/base.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/serialize_messages/base.py, scope apps_monero_xmr_serialize_messages_base__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_serialize_messages_base__lt_module_gt_[67] = { + 0x18,0x12, // prelude + 0x01, // names: + 0x4c,0x8c,0x0b,0x6b,0x60,0x6b,0x60,0x24, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'BlobType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'apps.monero.xmr.serialize.message_types' + 0x1c,0x04, // IMPORT_FROM 'BlobType' + 0x16,0x04, // STORE_NAME 'BlobType' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x06, // LOAD_CONST_STRING 'Hash' + 0x11,0x04, // LOAD_NAME 'BlobType' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x06, // STORE_NAME 'Hash' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x07, // LOAD_CONST_STRING 'ECKey' + 0x11,0x04, // LOAD_NAME 'BlobType' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x07, // STORE_NAME 'ECKey' + 0x11,0x06, // LOAD_NAME 'Hash' + 0x16,0x08, // STORE_NAME 'ECPoint' + 0x11,0x08, // LOAD_NAME 'ECPoint' + 0x16,0x09, // STORE_NAME 'KeyImage' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_serialize_messages_base__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize_messages/base.py, scope apps_monero_xmr_serialize_messages_base_Hash +static const byte fun_data_apps_monero_xmr_serialize_messages_base_Hash[27] = { + 0x00,0x0a, // prelude + 0x06, // names: Hash + 0x88,0x0e,0x24,0x23, // code info + 0x11,0x0a, // LOAD_NAME '__name__' + 0x16,0x0b, // STORE_NAME '__module__' + 0x10,0x06, // LOAD_CONST_STRING 'Hash' + 0x16,0x0c, // STORE_NAME '__qualname__' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x0d, // STORE_NAME '__slots__' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x0e, // STORE_NAME 'FIX_SIZE' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x16,0x0f, // STORE_NAME 'SIZE' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_messages_base_Hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_messages_base_Hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_monero_xmr_serialize_messages_base_Hash + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_messages_base_Hash + 7, + .opcodes = fun_data_apps_monero_xmr_serialize_messages_base_Hash + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize_messages_base__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize_messages/base.py, scope apps_monero_xmr_serialize_messages_base_ECKey +static const byte fun_data_apps_monero_xmr_serialize_messages_base_ECKey[27] = { + 0x00,0x0a, // prelude + 0x07, // names: ECKey + 0x88,0x14,0x24,0x23, // code info + 0x11,0x0a, // LOAD_NAME '__name__' + 0x16,0x0b, // STORE_NAME '__module__' + 0x10,0x07, // LOAD_CONST_STRING 'ECKey' + 0x16,0x0c, // STORE_NAME '__qualname__' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x16,0x0d, // STORE_NAME '__slots__' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x0e, // STORE_NAME 'FIX_SIZE' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x16,0x0f, // STORE_NAME 'SIZE' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_messages_base_ECKey = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_messages_base_ECKey, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_monero_xmr_serialize_messages_base_ECKey + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_messages_base_ECKey + 7, + .opcodes = fun_data_apps_monero_xmr_serialize_messages_base_ECKey + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_serialize_messages_base__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_serialize_messages_base_Hash, + &raw_code_apps_monero_xmr_serialize_messages_base_ECKey, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_messages_base__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_messages_base__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 67, + #endif + .children = (void *)&children_apps_monero_xmr_serialize_messages_base__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_serialize_messages_base__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_messages_base__lt_module_gt_ + 11, + .opcodes = fun_data_apps_monero_xmr_serialize_messages_base__lt_module_gt_ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_serialize_messages_base[16] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_messages_slash_base_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_BlobType, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_dot_message_types, + MP_QSTR_Hash, + MP_QSTR_ECKey, + MP_QSTR_ECPoint, + MP_QSTR_KeyImage, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR___slots__, + MP_QSTR_FIX_SIZE, + MP_QSTR_SIZE, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_serialize_messages_base_0 = {{&mp_type_tuple}, 1, { + MP_ROM_QSTR(MP_QSTR_data), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_serialize_messages_base_1 = {{&mp_type_tuple}, 1, { + MP_ROM_QSTR(MP_QSTR_bytes), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_xmr_serialize_messages_base[2] = { + MP_ROM_PTR(&const_obj_apps_monero_xmr_serialize_messages_base_0), + MP_ROM_PTR(&const_obj_apps_monero_xmr_serialize_messages_base_1), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_serialize_messages_base = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_serialize_messages_base, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_xmr_serialize_messages_base, + }, + .rc = &raw_code_apps_monero_xmr_serialize_messages_base__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_serialize_messages_tx_ct_key +// - original source file: build/firmware/src/apps/monero/xmr/serialize_messages/tx_ct_key.mpy +// - frozen file name: apps/monero/xmr/serialize_messages/tx_ct_key.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/serialize_messages/tx_ct_key.py, scope apps_monero_xmr_serialize_messages_tx_ct_key__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_serialize_messages_tx_ct_key__lt_module_gt_[17] = { + 0x10,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x02, // LOAD_CONST_STRING 'CtKey' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x02, // STORE_NAME 'CtKey' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_serialize_messages_tx_ct_key__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize_messages/tx_ct_key.py, scope apps_monero_xmr_serialize_messages_tx_ct_key_CtKey +static const byte fun_data_apps_monero_xmr_serialize_messages_tx_ct_key_CtKey[24] = { + 0x00,0x08, // prelude + 0x02, // names: CtKey + 0x88,0x07,0x44, // code info + 0x11,0x06, // LOAD_NAME '__name__' + 0x16,0x07, // STORE_NAME '__module__' + 0x10,0x02, // LOAD_CONST_STRING 'CtKey' + 0x16,0x08, // STORE_NAME '__qualname__' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x09, // STORE_NAME '__slots__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x03, // STORE_NAME '__init__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_serialize_messages_tx_ct_key_CtKey +// frozen bytecode for file apps/monero/xmr/serialize_messages/tx_ct_key.py, scope apps_monero_xmr_serialize_messages_tx_ct_key_CtKey___init__ +static const byte fun_data_apps_monero_xmr_serialize_messages_tx_ct_key_CtKey___init__[19] = { + 0x23,0x0e, // prelude + 0x03,0x0a,0x04,0x05, // names: __init__, self, dest, mask + 0x80,0x0a,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x04, // STORE_ATTR 'dest' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x05, // STORE_ATTR 'mask' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_messages_tx_ct_key_CtKey___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_monero_xmr_serialize_messages_tx_ct_key_CtKey___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 3, + .line_info = fun_data_apps_monero_xmr_serialize_messages_tx_ct_key_CtKey___init__ + 6, + .line_info_top = fun_data_apps_monero_xmr_serialize_messages_tx_ct_key_CtKey___init__ + 9, + .opcodes = fun_data_apps_monero_xmr_serialize_messages_tx_ct_key_CtKey___init__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_serialize_messages_tx_ct_key_CtKey[] = { + &raw_code_apps_monero_xmr_serialize_messages_tx_ct_key_CtKey___init__, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_messages_tx_ct_key_CtKey = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_messages_tx_ct_key_CtKey, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = (void *)&children_apps_monero_xmr_serialize_messages_tx_ct_key_CtKey, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_monero_xmr_serialize_messages_tx_ct_key_CtKey + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_messages_tx_ct_key_CtKey + 6, + .opcodes = fun_data_apps_monero_xmr_serialize_messages_tx_ct_key_CtKey + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_serialize_messages_tx_ct_key__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_serialize_messages_tx_ct_key_CtKey, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_messages_tx_ct_key__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_messages_tx_ct_key__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = (void *)&children_apps_monero_xmr_serialize_messages_tx_ct_key__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_serialize_messages_tx_ct_key__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_messages_tx_ct_key__lt_module_gt_ + 6, + .opcodes = fun_data_apps_monero_xmr_serialize_messages_tx_ct_key__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_serialize_messages_tx_ct_key[11] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_messages_slash_tx_ct_key_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_CtKey, + MP_QSTR___init__, + MP_QSTR_dest, + MP_QSTR_mask, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR___slots__, + MP_QSTR_self, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_serialize_messages_tx_ct_key_0 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_dest), + MP_ROM_QSTR(MP_QSTR_mask), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_xmr_serialize_messages_tx_ct_key[1] = { + MP_ROM_PTR(&const_obj_apps_monero_xmr_serialize_messages_tx_ct_key_0), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_serialize_messages_tx_ct_key = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_serialize_messages_tx_ct_key, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_xmr_serialize_messages_tx_ct_key, + }, + .rc = &raw_code_apps_monero_xmr_serialize_messages_tx_ct_key__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_serialize_messages_tx_ecdh +// - original source file: build/firmware/src/apps/monero/xmr/serialize_messages/tx_ecdh.mpy +// - frozen file name: apps/monero/xmr/serialize_messages/tx_ecdh.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/serialize_messages/tx_ecdh.py, scope apps_monero_xmr_serialize_messages_tx_ecdh__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_serialize_messages_tx_ecdh__lt_module_gt_[29] = { + 0x18,0x04, // prelude + 0x01, // names: + 0x6c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'MessageType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.monero.xmr.serialize.message_types' + 0x1c,0x02, // IMPORT_FROM 'MessageType' + 0x16,0x02, // STORE_NAME 'MessageType' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x04, // LOAD_CONST_STRING 'EcdhTuple' + 0x11,0x02, // LOAD_NAME 'MessageType' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x04, // STORE_NAME 'EcdhTuple' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_serialize_messages_tx_ecdh__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize_messages/tx_ecdh.py, scope apps_monero_xmr_serialize_messages_tx_ecdh_EcdhTuple +static const byte fun_data_apps_monero_xmr_serialize_messages_tx_ecdh_EcdhTuple[19] = { + 0x00,0x06, // prelude + 0x04, // names: EcdhTuple + 0x68,0x20, // code info + 0x11,0x05, // LOAD_NAME '__name__' + 0x16,0x06, // STORE_NAME '__module__' + 0x10,0x04, // LOAD_CONST_STRING 'EcdhTuple' + 0x16,0x07, // STORE_NAME '__qualname__' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x08, // STORE_NAME '__slots__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_messages_tx_ecdh_EcdhTuple = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_messages_tx_ecdh_EcdhTuple, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_monero_xmr_serialize_messages_tx_ecdh_EcdhTuple + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_messages_tx_ecdh_EcdhTuple + 5, + .opcodes = fun_data_apps_monero_xmr_serialize_messages_tx_ecdh_EcdhTuple + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_serialize_messages_tx_ecdh__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_serialize_messages_tx_ecdh_EcdhTuple, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_messages_tx_ecdh__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_messages_tx_ecdh__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = (void *)&children_apps_monero_xmr_serialize_messages_tx_ecdh__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_serialize_messages_tx_ecdh__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_messages_tx_ecdh__lt_module_gt_ + 4, + .opcodes = fun_data_apps_monero_xmr_serialize_messages_tx_ecdh__lt_module_gt_ + 4, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_serialize_messages_tx_ecdh[9] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_messages_slash_tx_ecdh_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_MessageType, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_dot_message_types, + MP_QSTR_EcdhTuple, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR___slots__, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_serialize_messages_tx_ecdh_0 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_mask), + MP_ROM_QSTR(MP_QSTR_amount), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_xmr_serialize_messages_tx_ecdh[1] = { + MP_ROM_PTR(&const_obj_apps_monero_xmr_serialize_messages_tx_ecdh_0), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_serialize_messages_tx_ecdh = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_serialize_messages_tx_ecdh, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_xmr_serialize_messages_tx_ecdh, + }, + .rc = &raw_code_apps_monero_xmr_serialize_messages_tx_ecdh__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_serialize_messages_tx_prefix +// - original source file: build/firmware/src/apps/monero/xmr/serialize_messages/tx_prefix.mpy +// - frozen file name: apps/monero/xmr/serialize_messages/tx_prefix.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/serialize_messages/tx_prefix.py, scope apps_monero_xmr_serialize_messages_tx_prefix__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_serialize_messages_tx_prefix__lt_module_gt_[29] = { + 0x18,0x04, // prelude + 0x01, // names: + 0x6c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'MessageType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.monero.xmr.serialize.message_types' + 0x1c,0x02, // IMPORT_FROM 'MessageType' + 0x16,0x02, // STORE_NAME 'MessageType' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x04, // LOAD_CONST_STRING 'TxinToKey' + 0x11,0x02, // LOAD_NAME 'MessageType' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x04, // STORE_NAME 'TxinToKey' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_serialize_messages_tx_prefix__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize_messages/tx_prefix.py, scope apps_monero_xmr_serialize_messages_tx_prefix_TxinToKey +static const byte fun_data_apps_monero_xmr_serialize_messages_tx_prefix_TxinToKey[28] = { + 0x08,0x08, // prelude + 0x04, // names: TxinToKey + 0x68,0x20,0x44, // code info + 0x11,0x0d, // LOAD_NAME '__name__' + 0x16,0x0e, // STORE_NAME '__module__' + 0x10,0x04, // LOAD_CONST_STRING 'TxinToKey' + 0x16,0x0f, // STORE_NAME '__qualname__' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x10, // STORE_NAME '__slots__' + 0x11,0x11, // LOAD_NAME 'classmethod' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x05, // STORE_NAME 'f_specs' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_serialize_messages_tx_prefix_TxinToKey +// frozen bytecode for file apps/monero/xmr/serialize_messages/tx_prefix.py, scope apps_monero_xmr_serialize_messages_tx_prefix_TxinToKey_f_specs +static const byte fun_data_apps_monero_xmr_serialize_messages_tx_prefix_TxinToKey_f_specs[64] = { + 0x39,0x14, // prelude + 0x05,0x12, // names: f_specs, cls + 0x80,0x08,0x2b,0x2b,0x4b,0x20,0x25,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'UVarintType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'apps.monero.xmr.serialize.base_types' + 0x1c,0x06, // IMPORT_FROM 'UVarintType' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'ContainerType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.monero.xmr.serialize.message_types' + 0x1c,0x08, // IMPORT_FROM 'ContainerType' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'KeyImage' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'apps.monero.xmr.serialize_messages.base' + 0x1c,0x09, // IMPORT_FROM 'KeyImage' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x10,0x0b, // LOAD_CONST_STRING 'amount' + 0xb1, // LOAD_FAST 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x10,0x0c, // LOAD_CONST_STRING 'k_image' + 0xb3, // LOAD_FAST 3 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_messages_tx_prefix_TxinToKey_f_specs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_serialize_messages_tx_prefix_TxinToKey_f_specs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 64, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_monero_xmr_serialize_messages_tx_prefix_TxinToKey_f_specs + 4, + .line_info_top = fun_data_apps_monero_xmr_serialize_messages_tx_prefix_TxinToKey_f_specs + 12, + .opcodes = fun_data_apps_monero_xmr_serialize_messages_tx_prefix_TxinToKey_f_specs + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_serialize_messages_tx_prefix_TxinToKey[] = { + &raw_code_apps_monero_xmr_serialize_messages_tx_prefix_TxinToKey_f_specs, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_messages_tx_prefix_TxinToKey = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_messages_tx_prefix_TxinToKey, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = (void *)&children_apps_monero_xmr_serialize_messages_tx_prefix_TxinToKey, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_monero_xmr_serialize_messages_tx_prefix_TxinToKey + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_messages_tx_prefix_TxinToKey + 6, + .opcodes = fun_data_apps_monero_xmr_serialize_messages_tx_prefix_TxinToKey + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_serialize_messages_tx_prefix__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_serialize_messages_tx_prefix_TxinToKey, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_messages_tx_prefix__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_messages_tx_prefix__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = (void *)&children_apps_monero_xmr_serialize_messages_tx_prefix__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_serialize_messages_tx_prefix__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_messages_tx_prefix__lt_module_gt_ + 4, + .opcodes = fun_data_apps_monero_xmr_serialize_messages_tx_prefix__lt_module_gt_ + 4, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_serialize_messages_tx_prefix[19] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_messages_slash_tx_prefix_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_MessageType, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_dot_message_types, + MP_QSTR_TxinToKey, + MP_QSTR_f_specs, + MP_QSTR_UVarintType, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_dot_base_types, + MP_QSTR_ContainerType, + MP_QSTR_KeyImage, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_messages_dot_base, + MP_QSTR_amount, + MP_QSTR_k_image, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR___slots__, + MP_QSTR_classmethod, + MP_QSTR_cls, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_serialize_messages_tx_prefix_0 = {{&mp_type_tuple}, 3, { + MP_ROM_QSTR(MP_QSTR_amount), + MP_ROM_QSTR(MP_QSTR_key_offsets), + MP_ROM_QSTR(MP_QSTR_k_image), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_xmr_serialize_messages_tx_prefix[2] = { + MP_ROM_PTR(&const_obj_apps_monero_xmr_serialize_messages_tx_prefix_0), + MP_ROM_QSTR(MP_QSTR_key_offsets), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_serialize_messages_tx_prefix = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_serialize_messages_tx_prefix, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_xmr_serialize_messages_tx_prefix, + }, + .rc = &raw_code_apps_monero_xmr_serialize_messages_tx_prefix__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_monero_xmr_serialize_messages_tx_rsig_bulletproof +// - original source file: build/firmware/src/apps/monero/xmr/serialize_messages/tx_rsig_bulletproof.mpy +// - frozen file name: apps/monero/xmr/serialize_messages/tx_rsig_bulletproof.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/monero/xmr/serialize_messages/tx_rsig_bulletproof.py, scope apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__lt_module_gt_ +static const byte fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__lt_module_gt_[64] = { + 0x18,0x10, // prelude + 0x01, // names: + 0x40,0x32,0x4c,0x60,0x20,0x6b,0x40, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'ContainerType' + 0x10,0x03, // LOAD_CONST_STRING 'MessageType' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x04, // IMPORT_NAME 'apps.monero.xmr.serialize.message_types' + 0x1c,0x02, // IMPORT_FROM 'ContainerType' + 0x16,0x02, // STORE_NAME 'ContainerType' + 0x1c,0x03, // IMPORT_FROM 'MessageType' + 0x16,0x03, // STORE_NAME 'MessageType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'ECKey' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'apps.monero.xmr.serialize_messages.base' + 0x1c,0x05, // IMPORT_FROM 'ECKey' + 0x16,0x05, // STORE_NAME 'ECKey' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x07, // LOAD_CONST_STRING '_KeyV' + 0x11,0x02, // LOAD_NAME 'ContainerType' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x07, // STORE_NAME '_KeyV' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x08, // LOAD_CONST_STRING 'BulletproofPlus' + 0x11,0x03, // LOAD_NAME 'MessageType' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x08, // STORE_NAME 'BulletproofPlus' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize_messages/tx_rsig_bulletproof.py, scope apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__KeyV +static const byte fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__KeyV[23] = { + 0x00,0x08, // prelude + 0x07, // names: _KeyV + 0x88,0x0a,0x23, // code info + 0x11,0x12, // LOAD_NAME '__name__' + 0x16,0x13, // STORE_NAME '__module__' + 0x10,0x07, // LOAD_CONST_STRING '_KeyV' + 0x16,0x14, // STORE_NAME '__qualname__' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x15, // STORE_NAME 'FIX_SIZE' + 0x11,0x05, // LOAD_NAME 'ECKey' + 0x16,0x16, // STORE_NAME 'ELEM_TYPE' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__KeyV = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__KeyV, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__KeyV + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__KeyV + 6, + .opcodes = fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__KeyV + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__lt_module_gt_ +// frozen bytecode for file apps/monero/xmr/serialize_messages/tx_rsig_bulletproof.py, scope apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_BulletproofPlus +static const byte fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_BulletproofPlus[28] = { + 0x08,0x08, // prelude + 0x08, // names: BulletproofPlus + 0x88,0x0f,0x44, // code info + 0x11,0x12, // LOAD_NAME '__name__' + 0x16,0x13, // STORE_NAME '__module__' + 0x10,0x08, // LOAD_CONST_STRING 'BulletproofPlus' + 0x16,0x14, // STORE_NAME '__qualname__' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x17, // STORE_NAME '__slots__' + 0x11,0x18, // LOAD_NAME 'classmethod' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x09, // STORE_NAME 'f_specs' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_BulletproofPlus +// frozen bytecode for file apps/monero/xmr/serialize_messages/tx_rsig_bulletproof.py, scope apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_BulletproofPlus_f_specs +static const byte fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_BulletproofPlus_f_specs[65] = { + 0x49,0x18, // prelude + 0x09,0x19, // names: f_specs, cls + 0x80,0x13,0x20,0x26,0x26,0x26,0x26,0x26,0x26,0x26, // code info + 0x10,0x0a, // LOAD_CONST_STRING 'A' + 0x12,0x05, // LOAD_GLOBAL 'ECKey' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x0b, // LOAD_CONST_STRING 'A1' + 0x12,0x05, // LOAD_GLOBAL 'ECKey' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x0c, // LOAD_CONST_STRING 'B' + 0x12,0x05, // LOAD_GLOBAL 'ECKey' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x0d, // LOAD_CONST_STRING 'r1' + 0x12,0x05, // LOAD_GLOBAL 'ECKey' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x0e, // LOAD_CONST_STRING 's1' + 0x12,0x05, // LOAD_GLOBAL 'ECKey' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x0f, // LOAD_CONST_STRING 'd1' + 0x12,0x05, // LOAD_GLOBAL 'ECKey' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x10, // LOAD_CONST_STRING 'L' + 0x12,0x07, // LOAD_GLOBAL '_KeyV' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x11, // LOAD_CONST_STRING 'R' + 0x12,0x07, // LOAD_GLOBAL '_KeyV' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x08, // BUILD_TUPLE 8 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_BulletproofPlus_f_specs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_BulletproofPlus_f_specs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 65, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_BulletproofPlus_f_specs + 4, + .line_info_top = fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_BulletproofPlus_f_specs + 14, + .opcodes = fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_BulletproofPlus_f_specs + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_BulletproofPlus[] = { + &raw_code_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_BulletproofPlus_f_specs, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_BulletproofPlus = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_BulletproofPlus, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = (void *)&children_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_BulletproofPlus, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_BulletproofPlus + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_BulletproofPlus + 6, + .opcodes = fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_BulletproofPlus + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__lt_module_gt_[] = { + &raw_code_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__KeyV, + &raw_code_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_BulletproofPlus, +}; + +static const mp_raw_code_t raw_code_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 64, + #endif + .children = (void *)&children_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__lt_module_gt_ + 10, + .opcodes = fun_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__lt_module_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof[26] = { + MP_QSTR_apps_slash_monero_slash_xmr_slash_serialize_messages_slash_tx_rsig_bulletproof_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ContainerType, + MP_QSTR_MessageType, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_dot_message_types, + MP_QSTR_ECKey, + MP_QSTR_apps_dot_monero_dot_xmr_dot_serialize_messages_dot_base, + MP_QSTR__KeyV, + MP_QSTR_BulletproofPlus, + MP_QSTR_f_specs, + MP_QSTR_A, + MP_QSTR_A1, + MP_QSTR_B, + MP_QSTR_r1, + MP_QSTR_s1, + MP_QSTR_d1, + MP_QSTR_L, + MP_QSTR_R, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_FIX_SIZE, + MP_QSTR_ELEM_TYPE, + MP_QSTR___slots__, + MP_QSTR_classmethod, + MP_QSTR_cls, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_0 = {{&mp_type_tuple}, 9, { + MP_ROM_QSTR(MP_QSTR_A), + MP_ROM_QSTR(MP_QSTR_A1), + MP_ROM_QSTR(MP_QSTR_B), + MP_ROM_QSTR(MP_QSTR_r1), + MP_ROM_QSTR(MP_QSTR_s1), + MP_ROM_QSTR(MP_QSTR_d1), + MP_ROM_QSTR(MP_QSTR_V), + MP_ROM_QSTR(MP_QSTR_L), + MP_ROM_QSTR(MP_QSTR_R), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof[1] = { + MP_ROM_PTR(&const_obj_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof_0), +}; + +static const mp_frozen_module_t frozen_module_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof, + }, + .rc = &raw_code_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_MoneroNetworkType +// - original source file: build/firmware/src/trezor/enums/MoneroNetworkType.mpy +// - frozen file name: trezor/enums/MoneroNetworkType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/MoneroNetworkType.py, scope trezor_enums_MoneroNetworkType__lt_module_gt_ +static const byte fun_data_trezor_enums_MoneroNetworkType__lt_module_gt_[22] = { + 0x00,0x0c, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'MAINNET' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'TESTNET' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'STAGENET' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x05, // STORE_NAME 'FAKECHAIN' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_MoneroNetworkType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_MoneroNetworkType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_MoneroNetworkType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_MoneroNetworkType__lt_module_gt_ + 8, + .opcodes = fun_data_trezor_enums_MoneroNetworkType__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_MoneroNetworkType[6] = { + MP_QSTR_trezor_slash_enums_slash_MoneroNetworkType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_MAINNET, + MP_QSTR_TESTNET, + MP_QSTR_STAGENET, + MP_QSTR_FAKECHAIN, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_MoneroNetworkType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_MoneroNetworkType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_MoneroNetworkType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem___init__ +// - original source file: build/firmware/src/apps/nem/__init__.mpy +// - frozen file name: apps/nem/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/__init__.py, scope apps_nem___init____lt_module_gt_ +static const byte fun_data_apps_nem___init____lt_module_gt_[36] = { + 0x08,0x0a, // prelude + 0x01, // names: + 0x4c,0x24,0x43,0x42, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'PATTERN_SEP5' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x02, // IMPORT_FROM 'PATTERN_SEP5' + 0x16,0x02, // STORE_NAME 'PATTERN_SEP5' + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x04, // STORE_NAME 'CURVE' + 0xab, // LOAD_CONST_SMALL_INT 43 + 0x16,0x05, // STORE_NAME 'SLIP44_ID' + 0x11,0x02, // LOAD_NAME 'PATTERN_SEP5' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x16,0x06, // STORE_NAME 'PATTERNS' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 36, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem___init____lt_module_gt_ + 7, + .opcodes = fun_data_apps_nem___init____lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem___init__[7] = { + MP_QSTR_apps_slash_nem_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_PATTERN_SEP5, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_CURVE, + MP_QSTR_SLIP44_ID, + MP_QSTR_PATTERNS, +}; + +// constants +static const mp_obj_str_t const_obj_apps_nem___init___1 = {{&mp_type_str}, 51405, 31, (const byte*)"\x6d\x2f\x34\x34\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x61\x63\x63\x6f\x75\x6e\x74\x27\x2f\x30\x27\x2f\x30\x27"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_nem___init__[2] = { + MP_ROM_QSTR(MP_QSTR_ed25519_hyphen_keccak), + MP_ROM_PTR(&const_obj_apps_nem___init___1), +}; + +static const mp_frozen_module_t frozen_module_apps_nem___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem___init__, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_nem___init__, + }, + .rc = &raw_code_apps_nem___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_get_address +// - original source file: build/firmware/src/apps/nem/get_address.mpy +// - frozen file name: apps/nem/get_address.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/get_address.py, scope apps_nem_get_address__lt_module_gt_ +static const byte fun_data_apps_nem_get_address__lt_module_gt_[68] = { + 0x30,0x0c, // prelude + 0x01, // names: + 0x40,0x4c,0x58,0x60,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'with_slip44_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x02, // IMPORT_FROM 'with_slip44_keychain' + 0x16,0x02, // STORE_NAME 'with_slip44_keychain' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING 'CURVE' + 0x10,0x05, // LOAD_CONST_STRING 'PATTERNS' + 0x10,0x06, // LOAD_CONST_STRING 'SLIP44_ID' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x07, // IMPORT_NAME '' + 0x1c,0x04, // IMPORT_FROM 'CURVE' + 0x16,0x04, // STORE_NAME 'CURVE' + 0x1c,0x05, // IMPORT_FROM 'PATTERNS' + 0x16,0x05, // STORE_NAME 'PATTERNS' + 0x1c,0x06, // IMPORT_FROM 'SLIP44_ID' + 0x16,0x06, // STORE_NAME 'SLIP44_ID' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'with_slip44_keychain' + 0x11,0x05, // LOAD_NAME 'PATTERNS' + 0x10,0x08, // LOAD_CONST_STRING 'slip44_id' + 0x11,0x06, // LOAD_NAME 'SLIP44_ID' + 0x10,0x09, // LOAD_CONST_STRING 'curve' + 0x11,0x04, // LOAD_NAME 'CURVE' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x35,0x84,0x01, // CALL_FUNCTION_VAR_KW 513 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x0a, // STORE_NAME 'get_address' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_get_address__lt_module_gt_ +// frozen bytecode for file apps/nem/get_address.py, scope apps_nem_get_address_get_address +static const byte fun_data_apps_nem_get_address_get_address[208] = { + 0xd2,0x50,0x2e, // prelude + 0x0a,0x24,0x25, // names: get_address, msg, keychain + 0x80,0x0e,0x2b,0x4b,0x4b,0x30,0x4b,0x24,0x44,0x25,0x50,0x27,0x47,0x26,0x50,0x67,0x28,0x2e,0x26,0x6e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'NEMAddress' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0b, // IMPORT_FROM 'NEMAddress' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'show_address' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x0d, // IMPORT_FROM 'show_address' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0f, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'apps.common' + 0x1c,0x0f, // IMPORT_FROM 'paths' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x11, // LOAD_CONST_STRING 'check_path' + 0x10,0x12, // LOAD_CONST_STRING 'get_network_str' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x13, // IMPORT_NAME 'helpers' + 0x1c,0x11, // IMPORT_FROM 'check_path' + 0xc5, // STORE_FAST 5 + 0x1c,0x12, // IMPORT_FROM 'get_network_str' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x14, // LOAD_CONST_STRING 'validate_network' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x15, // IMPORT_NAME 'validators' + 0x1c,0x14, // IMPORT_FROM 'validate_network' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'address_n' + 0xc8, // STORE_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'network' + 0xc9, // STORE_FAST 9 + 0xb7, // LOAD_FAST 7 + 0xb9, // LOAD_FAST 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x18, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb8, // LOAD_FAST 8 + 0xb5, // LOAD_FAST 5 + 0xb8, // LOAD_FAST 8 + 0xb9, // LOAD_FAST 9 + 0x34,0x02, // CALL_FUNCTION 2 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x19, // LOAD_METHOD 'derive' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0x14,0x1a, // LOAD_METHOD 'nem_address' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0xcb, // STORE_FAST 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'show_display' + 0x44,0xc1,0x80, // POP_JUMP_IF_FALSE 65 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x05, // LOAD_CONST_STRING 'PATTERNS' + 0x10,0x06, // LOAD_CONST_STRING 'SLIP44_ID' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x07, // IMPORT_NAME '' + 0x1c,0x05, // IMPORT_FROM 'PATTERNS' + 0xcc, // STORE_FAST 12 + 0x1c,0x06, // IMPORT_FROM 'SLIP44_ID' + 0xcd, // STORE_FAST 13 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xbb, // LOAD_FAST 11 + 0x10,0x1c, // LOAD_CONST_STRING 'case_sensitive' + 0x50, // LOAD_CONST_FALSE + 0x10,0x1d, // LOAD_CONST_STRING 'path' + 0xb4, // LOAD_FAST 4 + 0x14,0x1e, // LOAD_METHOD 'address_n_to_str' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x1f, // LOAD_CONST_STRING 'account' + 0xb4, // LOAD_FAST 4 + 0x14,0x20, // LOAD_METHOD 'get_account_name' + 0x10,0x21, // LOAD_CONST_STRING 'NEM' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'address_n' + 0xbc, // LOAD_FAST 12 + 0xbd, // LOAD_FAST 13 + 0x36,0x04, // CALL_METHOD 4 + 0x10,0x17, // LOAD_CONST_STRING 'network' + 0xb6, // LOAD_FAST 6 + 0xb9, // LOAD_FAST 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x22, // LOAD_CONST_STRING 'chunkify' + 0x12,0x26, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'chunkify' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x8a,0x01, // CALL_FUNCTION 1281 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x10,0x23, // LOAD_CONST_STRING 'address' + 0xbb, // LOAD_FAST 11 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_get_address_get_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_nem_get_address_get_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 208, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 27, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_nem_get_address_get_address + 6, + .line_info_top = fun_data_apps_nem_get_address_get_address + 26, + .opcodes = fun_data_apps_nem_get_address_get_address + 26, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_get_address__lt_module_gt_[] = { + &raw_code_apps_nem_get_address_get_address, +}; + +static const mp_raw_code_t raw_code_apps_nem_get_address__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_get_address__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 68, + #endif + .children = (void *)&children_apps_nem_get_address__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_get_address__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_get_address__lt_module_gt_ + 8, + .opcodes = fun_data_apps_nem_get_address__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_get_address[39] = { + MP_QSTR_apps_slash_nem_slash_get_address_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_with_slip44_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_CURVE, + MP_QSTR_PATTERNS, + MP_QSTR_SLIP44_ID, + MP_QSTR_, + MP_QSTR_slip44_id, + MP_QSTR_curve, + MP_QSTR_get_address, + MP_QSTR_NEMAddress, + MP_QSTR_trezor_dot_messages, + MP_QSTR_show_address, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_check_path, + MP_QSTR_get_network_str, + MP_QSTR_helpers, + MP_QSTR_validate_network, + MP_QSTR_validators, + MP_QSTR_address_n, + MP_QSTR_network, + MP_QSTR_validate_path, + MP_QSTR_derive, + MP_QSTR_nem_address, + MP_QSTR_show_display, + MP_QSTR_case_sensitive, + MP_QSTR_path, + MP_QSTR_address_n_to_str, + MP_QSTR_account, + MP_QSTR_get_account_name, + MP_QSTR_NEM, + MP_QSTR_chunkify, + MP_QSTR_address, + MP_QSTR_msg, + MP_QSTR_keychain, + MP_QSTR_bool, +}; + +static const mp_frozen_module_t frozen_module_apps_nem_get_address = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_get_address, + .obj_table = NULL, + }, + .rc = &raw_code_apps_nem_get_address__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_helpers +// - original source file: build/firmware/src/apps/nem/helpers.mpy +// - frozen file name: apps/nem/helpers.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/helpers.py, scope apps_nem_helpers__lt_module_gt_ +static const byte fun_data_apps_nem_helpers__lt_module_gt_[151] = { + 0x08,0x36, // prelude + 0x01, // names: + 0x6c,0x60,0x20,0x25,0x25,0x45,0x25,0x25,0x25,0x25,0x25,0x26,0x26,0x46,0x23,0x44,0x23,0x23,0x24,0x23,0x26,0x46,0x25,0x65,0x84,0x0b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x22,0x80,0x68, // LOAD_CONST_SMALL_INT 104 + 0x16,0x0f, // STORE_NAME 'NEM_NETWORK_MAINNET' + 0x22,0x81,0x18, // LOAD_CONST_SMALL_INT 152 + 0x16,0x10, // STORE_NAME 'NEM_NETWORK_TESTNET' + 0x22,0x80,0x60, // LOAD_CONST_SMALL_INT 96 + 0x16,0x11, // STORE_NAME 'NEM_NETWORK_MIJIN' + 0x22,0x82,0x01, // LOAD_CONST_SMALL_INT 257 + 0x16,0x12, // STORE_NAME 'NEM_TRANSACTION_TYPE_TRANSFER' + 0x22,0x90,0x01, // LOAD_CONST_SMALL_INT 2049 + 0x16,0x13, // STORE_NAME 'NEM_TRANSACTION_TYPE_IMPORTANCE_TRANSFER' + 0x22,0xa0,0x01, // LOAD_CONST_SMALL_INT 4097 + 0x16,0x14, // STORE_NAME 'NEM_TRANSACTION_TYPE_AGGREGATE_MODIFICATION' + 0x22,0xa0,0x02, // LOAD_CONST_SMALL_INT 4098 + 0x16,0x15, // STORE_NAME 'NEM_TRANSACTION_TYPE_MULTISIG_SIGNATURE' + 0x22,0xa0,0x04, // LOAD_CONST_SMALL_INT 4100 + 0x16,0x16, // STORE_NAME 'NEM_TRANSACTION_TYPE_MULTISIG' + 0x22,0x80,0xc0,0x01, // LOAD_CONST_SMALL_INT 8193 + 0x16,0x17, // STORE_NAME 'NEM_TRANSACTION_TYPE_PROVISION_NAMESPACE' + 0x22,0x81,0x80,0x01, // LOAD_CONST_SMALL_INT 16385 + 0x16,0x18, // STORE_NAME 'NEM_TRANSACTION_TYPE_MOSAIC_CREATION' + 0x22,0x81,0x80,0x02, // LOAD_CONST_SMALL_INT 16386 + 0x16,0x19, // STORE_NAME 'NEM_TRANSACTION_TYPE_MOSAIC_SUPPLY_CHANGE' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x16,0x1a, // STORE_NAME 'NEM_MAX_DIVISIBILITY' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x1b, // STORE_NAME 'NEM_MAX_SUPPLY' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x16,0x1c, // STORE_NAME 'NEM_SALT_SIZE' + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x16,0x1d, // STORE_NAME 'AES_BLOCK_SIZE' + 0x10,0x04, // LOAD_CONST_STRING 'keccak' + 0x16,0x1e, // STORE_NAME 'NEM_HASH_ALG' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x16,0x1f, // STORE_NAME 'NEM_PUBLIC_KEY_SIZE' + 0x22,0x80,0xce,0x10, // LOAD_CONST_SMALL_INT 10000 + 0x16,0x20, // STORE_NAME 'NEM_LEVY_PERCENTILE_DIVISOR_ABSOLUTE' + 0x22,0xbd,0x84,0x40, // LOAD_CONST_SMALL_INT 1000000 + 0x16,0x21, // STORE_NAME 'NEM_MOSAIC_AMOUNT_DIVISOR' + 0x22,0x88,0x00, // LOAD_CONST_SMALL_INT 1024 + 0x16,0x22, // STORE_NAME 'NEM_MAX_PLAIN_PAYLOAD_SIZE' + 0x22,0x87,0x40, // LOAD_CONST_SMALL_INT 960 + 0x16,0x23, // STORE_NAME 'NEM_MAX_ENCRYPTED_PAYLOAD_SIZE' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x05, // STORE_NAME 'get_network_str' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x09, // STORE_NAME 'check_path' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_helpers__lt_module_gt_ +// frozen bytecode for file apps/nem/helpers.py, scope apps_nem_helpers_get_network_str +static const byte fun_data_apps_nem_helpers_get_network_str[47] = { + 0x11,0x14, // prelude + 0x05,0x24, // names: get_network_str, network + 0x80,0x23,0x27,0x23,0x27,0x23,0x27,0x43, // code info + 0xb0, // LOAD_FAST 0 + 0x22,0x80,0x68, // LOAD_CONST_SMALL_INT 104 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x10,0x06, // LOAD_CONST_STRING 'Mainnet' + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x18, // LOAD_CONST_SMALL_INT 152 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x10,0x07, // LOAD_CONST_STRING 'Testnet' + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x22,0x80,0x60, // LOAD_CONST_SMALL_INT 96 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x10,0x08, // LOAD_CONST_STRING 'Mijin' + 0x63, // RETURN_VALUE + 0x12,0x25, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_helpers_get_network_str = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_nem_helpers_get_network_str, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_nem_helpers_get_network_str + 4, + .line_info_top = fun_data_apps_nem_helpers_get_network_str + 12, + .opcodes = fun_data_apps_nem_helpers_get_network_str + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_helpers__lt_module_gt_ +// frozen bytecode for file apps/nem/helpers.py, scope apps_nem_helpers_check_path +static const byte fun_data_apps_nem_helpers_check_path[81] = { + 0x32,0x1e, // prelude + 0x09,0x26,0x24, // names: check_path, path, network + 0x80,0x2e,0x20,0x4b,0x4b,0x29,0x42,0x48,0x27,0x44,0x26,0x64, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'apps.common' + 0x1c,0x0a, // IMPORT_FROM 'paths' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0c, // LOAD_CONST_STRING 'SLIP44_ID' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME '' + 0x1c,0x0c, // IMPORT_FROM 'SLIP44_ID' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x27, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0xb2, // LOAD_FAST 2 + 0x13,0x0e, // LOAD_ATTR 'HARDENED' + 0xf3, // BINARY_OP 28 __sub__ + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x22,0x81,0x18, // LOAD_CONST_SMALL_INT 152 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xdd, // BINARY_OP 6 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_helpers_check_path = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_nem_helpers_check_path, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 81, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_nem_helpers_check_path + 5, + .line_info_top = fun_data_apps_nem_helpers_check_path + 17, + .opcodes = fun_data_apps_nem_helpers_check_path + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_helpers__lt_module_gt_[] = { + &raw_code_apps_nem_helpers_get_network_str, + &raw_code_apps_nem_helpers_check_path, +}; + +static const mp_raw_code_t raw_code_apps_nem_helpers__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_helpers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 151, + #endif + .children = (void *)&children_apps_nem_helpers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_helpers__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_helpers__lt_module_gt_ + 29, + .opcodes = fun_data_apps_nem_helpers__lt_module_gt_ + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_helpers[40] = { + MP_QSTR_apps_slash_nem_slash_helpers_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_keccak, + MP_QSTR_get_network_str, + MP_QSTR_Mainnet, + MP_QSTR_Testnet, + MP_QSTR_Mijin, + MP_QSTR_check_path, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_SLIP44_ID, + MP_QSTR_, + MP_QSTR_HARDENED, + MP_QSTR_NEM_NETWORK_MAINNET, + MP_QSTR_NEM_NETWORK_TESTNET, + MP_QSTR_NEM_NETWORK_MIJIN, + MP_QSTR_NEM_TRANSACTION_TYPE_TRANSFER, + MP_QSTR_NEM_TRANSACTION_TYPE_IMPORTANCE_TRANSFER, + MP_QSTR_NEM_TRANSACTION_TYPE_AGGREGATE_MODIFICATION, + MP_QSTR_NEM_TRANSACTION_TYPE_MULTISIG_SIGNATURE, + MP_QSTR_NEM_TRANSACTION_TYPE_MULTISIG, + MP_QSTR_NEM_TRANSACTION_TYPE_PROVISION_NAMESPACE, + MP_QSTR_NEM_TRANSACTION_TYPE_MOSAIC_CREATION, + MP_QSTR_NEM_TRANSACTION_TYPE_MOSAIC_SUPPLY_CHANGE, + MP_QSTR_NEM_MAX_DIVISIBILITY, + MP_QSTR_NEM_MAX_SUPPLY, + MP_QSTR_NEM_SALT_SIZE, + MP_QSTR_AES_BLOCK_SIZE, + MP_QSTR_NEM_HASH_ALG, + MP_QSTR_NEM_PUBLIC_KEY_SIZE, + MP_QSTR_NEM_LEVY_PERCENTILE_DIVISOR_ABSOLUTE, + MP_QSTR_NEM_MOSAIC_AMOUNT_DIVISOR, + MP_QSTR_NEM_MAX_PLAIN_PAYLOAD_SIZE, + MP_QSTR_NEM_MAX_ENCRYPTED_PAYLOAD_SIZE, + MP_QSTR_network, + MP_QSTR_ValueError, + MP_QSTR_path, + MP_QSTR_len, +}; + +// constants +static const mp_obj_int_t const_obj_apps_nem_helpers_0 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x1a00,0x1871,0x2}}}; +static const mp_rom_obj_tuple_t const_obj_apps_nem_helpers_1 = {{&mp_type_tuple}, 2, { + MP_ROM_INT(104), + MP_ROM_INT(96), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_nem_helpers[2] = { + MP_ROM_PTR(&const_obj_apps_nem_helpers_0), + MP_ROM_PTR(&const_obj_apps_nem_helpers_1), +}; + +static const mp_frozen_module_t frozen_module_apps_nem_helpers = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_helpers, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_nem_helpers, + }, + .rc = &raw_code_apps_nem_helpers__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_layout +// - original source file: build/firmware/src/apps/nem/layout.mpy +// - frozen file name: apps/nem/layout.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/layout.py, scope apps_nem_layout__lt_module_gt_ +static const byte fun_data_apps_nem_layout__lt_module_gt_[79] = { + 0x08,0x16, // prelude + 0x01, // names: + 0x2c,0x2c,0x4c,0x6c,0x84,0x09,0x84,0x0a,0x84,0x0a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x02, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x02, // STORE_NAME 'ButtonRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'format_amount' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.strings' + 0x1c,0x04, // IMPORT_FROM 'format_amount' + 0x16,0x04, // STORE_NAME 'format_amount' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'confirm_metadata' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x06, // IMPORT_FROM 'confirm_metadata' + 0x16,0x06, // STORE_NAME 'confirm_metadata' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x08, // LOAD_CONST_STRING 'NEM_MAX_DIVISIBILITY' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'helpers' + 0x1c,0x08, // IMPORT_FROM 'NEM_MAX_DIVISIBILITY' + 0x16,0x08, // STORE_NAME 'NEM_MAX_DIVISIBILITY' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0a, // STORE_NAME 'require_confirm_text' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0d, // STORE_NAME 'require_confirm_fee' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x11, // STORE_NAME 'require_confirm_content' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x13, // STORE_NAME 'require_confirm_final' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_layout__lt_module_gt_ +// frozen bytecode for file apps/nem/layout.py, scope apps_nem_layout_require_confirm_text +static const byte fun_data_apps_nem_layout_require_confirm_text[32] = { + 0xb1,0x40,0x0e, // prelude + 0x0a,0x15, // names: require_confirm_text, action + 0x80,0x08,0x22,0x22,0x45, // code info + 0x12,0x06, // LOAD_GLOBAL 'confirm_metadata' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xb0, // LOAD_FAST 0 + 0x10,0x0b, // LOAD_CONST_STRING 'br_code' + 0x12,0x02, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x0c, // LOAD_ATTR 'ConfirmOutput' + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_layout_require_confirm_text = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_nem_layout_require_confirm_text, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_nem_layout_require_confirm_text + 5, + .line_info_top = fun_data_apps_nem_layout_require_confirm_text + 10, + .opcodes = fun_data_apps_nem_layout_require_confirm_text + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_layout__lt_module_gt_ +// frozen bytecode for file apps/nem/layout.py, scope apps_nem_layout_require_confirm_fee +static const byte fun_data_apps_nem_layout_require_confirm_fee[48] = { + 0xd2,0x40,0x14, // prelude + 0x0d,0x15,0x16, // names: require_confirm_fee, action, fee + 0x80,0x11,0x22,0x22,0x22,0x24,0x2d, // code info + 0x12,0x06, // LOAD_GLOBAL 'confirm_metadata' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xb0, // LOAD_FAST 0 + 0x10,0x0e, // LOAD_CONST_STRING '\n{}' + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x0f, // LOAD_CONST_STRING '{} XEM' + 0x14,0x10, // LOAD_METHOD 'format' + 0x12,0x04, // LOAD_GLOBAL 'format_amount' + 0xb1, // LOAD_FAST 1 + 0x12,0x08, // LOAD_GLOBAL 'NEM_MAX_DIVISIBILITY' + 0x34,0x02, // CALL_FUNCTION 2 + 0x36,0x01, // CALL_METHOD 1 + 0x12,0x02, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x0c, // LOAD_ATTR 'ConfirmOutput' + 0x34,0x05, // CALL_FUNCTION 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_layout_require_confirm_fee = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_nem_layout_require_confirm_fee, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_nem_layout_require_confirm_fee + 6, + .line_info_top = fun_data_apps_nem_layout_require_confirm_fee + 13, + .opcodes = fun_data_apps_nem_layout_require_confirm_fee + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_layout__lt_module_gt_ +// frozen bytecode for file apps/nem/layout.py, scope apps_nem_layout_require_confirm_content +static const byte fun_data_apps_nem_layout_require_confirm_content[34] = { + 0xb2,0x40,0x0e, // prelude + 0x11,0x17,0x18, // names: require_confirm_content, headline, content + 0x80,0x1b,0x4b,0x21, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x12, // LOAD_CONST_STRING 'confirm_properties' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x12, // IMPORT_FROM 'confirm_properties' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_layout_require_confirm_content = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_nem_layout_require_confirm_content, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_apps_nem_layout_require_confirm_content + 6, + .line_info_top = fun_data_apps_nem_layout_require_confirm_content + 10, + .opcodes = fun_data_apps_nem_layout_require_confirm_content + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_layout__lt_module_gt_ +// frozen bytecode for file apps/nem/layout.py, scope apps_nem_layout_require_confirm_final +static const byte fun_data_apps_nem_layout_require_confirm_final[44] = { + 0xc9,0x40,0x10, // prelude + 0x13,0x16, // names: require_confirm_final, fee + 0x80,0x26,0x22,0x22,0x22,0x22, // code info + 0x12,0x06, // LOAD_GLOBAL 'confirm_metadata' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x14,0x10, // LOAD_METHOD 'format' + 0x12,0x04, // LOAD_GLOBAL 'format_amount' + 0xb0, // LOAD_FAST 0 + 0x12,0x08, // LOAD_GLOBAL 'NEM_MAX_DIVISIBILITY' + 0x34,0x02, // CALL_FUNCTION 2 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x14, // LOAD_CONST_STRING 'hold' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x04, // CALL_FUNCTION 260 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_layout_require_confirm_final = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_nem_layout_require_confirm_final, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_nem_layout_require_confirm_final + 5, + .line_info_top = fun_data_apps_nem_layout_require_confirm_final + 11, + .opcodes = fun_data_apps_nem_layout_require_confirm_final + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_layout__lt_module_gt_[] = { + &raw_code_apps_nem_layout_require_confirm_text, + &raw_code_apps_nem_layout_require_confirm_fee, + &raw_code_apps_nem_layout_require_confirm_content, + &raw_code_apps_nem_layout_require_confirm_final, +}; + +static const mp_raw_code_t raw_code_apps_nem_layout__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 79, + #endif + .children = (void *)&children_apps_nem_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_layout__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_layout__lt_module_gt_ + 13, + .opcodes = fun_data_apps_nem_layout__lt_module_gt_ + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_layout[25] = { + MP_QSTR_apps_slash_nem_slash_layout_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_format_amount, + MP_QSTR_trezor_dot_strings, + MP_QSTR_confirm_metadata, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_NEM_MAX_DIVISIBILITY, + MP_QSTR_helpers, + MP_QSTR_require_confirm_text, + MP_QSTR_br_code, + MP_QSTR_ConfirmOutput, + MP_QSTR_require_confirm_fee, + MP_QSTR__0x0a__brace_open__brace_close_, + MP_QSTR__brace_open__brace_close__space_XEM, + MP_QSTR_format, + MP_QSTR_require_confirm_content, + MP_QSTR_confirm_properties, + MP_QSTR_require_confirm_final, + MP_QSTR_hold, + MP_QSTR_action, + MP_QSTR_fee, + MP_QSTR_headline, + MP_QSTR_content, +}; + +// constants +static const mp_obj_str_t const_obj_apps_nem_layout_7 = {{&mp_type_str}, 19310, 41, (const byte*)"\x53\x69\x67\x6e\x20\x74\x68\x69\x73\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x0a\x7b\x7d\x0a\x66\x6f\x72\x20\x6e\x65\x74\x77\x6f\x72\x6b\x20\x66\x65\x65\x3f"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_nem_layout[9] = { + MP_ROM_QSTR(MP_QSTR_confirm_nem), + MP_ROM_QSTR(MP_QSTR_Confirm_space_action), + MP_ROM_QSTR(MP_QSTR_confirm_fee), + MP_ROM_QSTR(MP_QSTR_Confirm_space_fee), + MP_ROM_QSTR(MP_QSTR_confirm_content), + MP_ROM_QSTR(MP_QSTR_confirm_final), + MP_ROM_QSTR(MP_QSTR_Final_space_confirm), + MP_ROM_PTR(&const_obj_apps_nem_layout_7), + MP_ROM_QSTR(MP_QSTR_and_space_pay_space__brace_open__brace_close__space_XEM), +}; + +static const mp_frozen_module_t frozen_module_apps_nem_layout = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_layout, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_nem_layout, + }, + .rc = &raw_code_apps_nem_layout__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_sign_tx +// - original source file: build/firmware/src/apps/nem/sign_tx.mpy +// - frozen file name: apps/nem/sign_tx.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/sign_tx.py, scope apps_nem_sign_tx__lt_module_gt_ +static const byte fun_data_apps_nem_sign_tx__lt_module_gt_[68] = { + 0x30,0x0c, // prelude + 0x01, // names: + 0x40,0x4c,0x58,0x60,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'with_slip44_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x02, // IMPORT_FROM 'with_slip44_keychain' + 0x16,0x02, // STORE_NAME 'with_slip44_keychain' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING 'CURVE' + 0x10,0x05, // LOAD_CONST_STRING 'PATTERNS' + 0x10,0x06, // LOAD_CONST_STRING 'SLIP44_ID' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x07, // IMPORT_NAME '' + 0x1c,0x04, // IMPORT_FROM 'CURVE' + 0x16,0x04, // STORE_NAME 'CURVE' + 0x1c,0x05, // IMPORT_FROM 'PATTERNS' + 0x16,0x05, // STORE_NAME 'PATTERNS' + 0x1c,0x06, // IMPORT_FROM 'SLIP44_ID' + 0x16,0x06, // STORE_NAME 'SLIP44_ID' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'with_slip44_keychain' + 0x11,0x05, // LOAD_NAME 'PATTERNS' + 0x10,0x08, // LOAD_CONST_STRING 'slip44_id' + 0x11,0x06, // LOAD_NAME 'SLIP44_ID' + 0x10,0x09, // LOAD_CONST_STRING 'curve' + 0x11,0x04, // LOAD_NAME 'CURVE' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x35,0x84,0x01, // CALL_FUNCTION_VAR_KW 513 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x0a, // STORE_NAME 'sign_tx' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/nem/sign_tx.py, scope apps_nem_sign_tx_sign_tx +static const byte fun_data_apps_nem_sign_tx_sign_tx[513] = { + 0xea,0x50,0x6c, // prelude + 0x0a,0x33,0x34, // names: sign_tx, msg, keychain + 0x80,0x0e,0x2b,0x2b,0x4b,0x2b,0x4b,0x3a,0x30,0x4b,0x25,0x24,0x44,0x42,0x23,0x6f,0x4a,0x23,0x27,0x26,0x25,0x23,0x4c,0x2d,0x43,0x25,0x27,0x59,0x25,0x34,0x25,0x34,0x25,0x33,0x25,0x67,0x23,0x4d,0x25,0x27,0x6c,0x46,0x43,0x25,0x20,0x23,0x6e,0x69,0x23,0x72,0x50, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'ed25519' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x0b, // IMPORT_FROM 'ed25519' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'NEMSignedTx' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0d, // IMPORT_FROM 'NEMSignedTx' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0f, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'trezor.wire' + 0x1c,0x0f, // IMPORT_FROM 'DataError' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'seed' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x12, // IMPORT_NAME 'apps.common' + 0x1c,0x11, // IMPORT_FROM 'seed' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'validate_path' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x13, // IMPORT_FROM 'validate_path' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x15, // LOAD_CONST_STRING 'mosaic' + 0x10,0x16, // LOAD_CONST_STRING 'multisig' + 0x10,0x17, // LOAD_CONST_STRING 'namespace' + 0x10,0x18, // LOAD_CONST_STRING 'transfer' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x07, // IMPORT_NAME '' + 0x1c,0x15, // IMPORT_FROM 'mosaic' + 0xc7, // STORE_FAST 7 + 0x1c,0x16, // IMPORT_FROM 'multisig' + 0xc8, // STORE_FAST 8 + 0x1c,0x17, // IMPORT_FROM 'namespace' + 0xc9, // STORE_FAST 9 + 0x1c,0x18, // IMPORT_FROM 'transfer' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x19, // LOAD_CONST_STRING 'NEM_HASH_ALG' + 0x10,0x1a, // LOAD_CONST_STRING 'check_path' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x1b, // IMPORT_NAME 'helpers' + 0x1c,0x19, // IMPORT_FROM 'NEM_HASH_ALG' + 0xcb, // STORE_FAST 11 + 0x1c,0x1a, // IMPORT_FROM 'check_path' + 0xcc, // STORE_FAST 12 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1c, // LOAD_CONST_STRING 'validate' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1d, // IMPORT_NAME 'validators' + 0x1c,0x1c, // IMPORT_FROM 'validate' + 0xcd, // STORE_FAST 13 + 0x59, // POP_TOP + 0xbd, // LOAD_FAST 13 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'multisig' + 0xce, // STORE_FAST 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x1e, // LOAD_ATTR 'transaction' + 0xcf, // STORE_FAST 15 + 0xb6, // LOAD_FAST 6 + 0xb1, // LOAD_FAST 1 + 0xbf, // LOAD_FAST 15 + 0x13,0x1f, // LOAD_ATTR 'address_n' + 0xbc, // LOAD_FAST 12 + 0xbf, // LOAD_FAST 15 + 0x13,0x1f, // LOAD_ATTR 'address_n' + 0xbf, // LOAD_FAST 15 + 0x13,0x20, // LOAD_ATTR 'network' + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x21, // LOAD_METHOD 'derive' + 0xbf, // LOAD_FAST 15 + 0x13,0x1f, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x10, // STORE_FAST_N 16 + 0xbe, // LOAD_FAST 14 + 0x44,0x61, // POP_JUMP_IF_FALSE 33 + 0xbe, // LOAD_FAST 14 + 0x13,0x22, // LOAD_ATTR 'signer' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbe, // LOAD_FAST 14 + 0x13,0x22, // LOAD_ATTR 'signer' + 0x26,0x11, // STORE_FAST_N 17 + 0xbe, // LOAD_FAST 14 + 0x26,0x12, // STORE_FAST_N 18 + 0xb8, // LOAD_FAST 8 + 0x14,0x23, // LOAD_METHOD 'ask' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x50, // JUMP 16 + 0xb5, // LOAD_FAST 5 + 0x14,0x24, // LOAD_METHOD 'remove_ed25519_prefix' + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x25, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x11, // STORE_FAST_N 17 + 0xbf, // LOAD_FAST 15 + 0x26,0x12, // STORE_FAST_N 18 + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'transfer' + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0xba, // LOAD_FAST 10 + 0x14,0x18, // LOAD_METHOD 'transfer' + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x12, // LOAD_FAST_N 18 + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'transfer' + 0x24,0x10, // LOAD_FAST_N 16 + 0x10,0x26, // LOAD_CONST_STRING 'chunkify' + 0x12,0x35, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'chunkify' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x82,0x04, // CALL_METHOD 260 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x13, // STORE_FAST_N 19 + 0x42,0x84,0x81, // JUMP 132 + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'provision_namespace' + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0xb9, // LOAD_FAST 9 + 0x14,0x17, // LOAD_METHOD 'namespace' + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x12, // LOAD_FAST_N 18 + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'provision_namespace' + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x13, // STORE_FAST_N 19 + 0x42,0xeb,0x80, // JUMP 107 + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'mosaic_creation' + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0xb7, // LOAD_FAST 7 + 0x14,0x28, // LOAD_METHOD 'mosaic_creation' + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x12, // LOAD_FAST_N 18 + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'mosaic_creation' + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x13, // STORE_FAST_N 19 + 0x42,0xd2,0x80, // JUMP 82 + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'supply_change' + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xb7, // LOAD_FAST 7 + 0x14,0x29, // LOAD_METHOD 'supply_change' + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x12, // LOAD_FAST_N 18 + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'supply_change' + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x13, // STORE_FAST_N 19 + 0x42,0x7a, // JUMP 58 + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'aggregate_modification' + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0xb8, // LOAD_FAST 8 + 0x14,0x2a, // LOAD_METHOD 'aggregate_modification' + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x12, // LOAD_FAST_N 18 + 0xb0, // LOAD_FAST 0 + 0x13,0x2a, // LOAD_ATTR 'aggregate_modification' + 0xbe, // LOAD_FAST 14 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x36,0x04, // CALL_METHOD 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x13, // STORE_FAST_N 19 + 0x42,0x5e, // JUMP 30 + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'importance_transfer' + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0xba, // LOAD_FAST 10 + 0x14,0x2b, // LOAD_METHOD 'importance_transfer' + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x12, // LOAD_FAST_N 18 + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'importance_transfer' + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x13, // STORE_FAST_N 19 + 0x42,0x46, // JUMP 6 + 0xb4, // LOAD_FAST 4 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbe, // LOAD_FAST 14 + 0x44,0x74, // POP_JUMP_IF_FALSE 52 + 0xb0, // LOAD_FAST 0 + 0x13,0x2c, // LOAD_ATTR 'cosigning' + 0x44,0x5a, // POP_JUMP_IF_FALSE 26 + 0xb8, // LOAD_FAST 8 + 0x14,0x2d, // LOAD_METHOD 'cosign' + 0xb5, // LOAD_FAST 5 + 0x14,0x24, // LOAD_METHOD 'remove_ed25519_prefix' + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x25, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0xbf, // LOAD_FAST 15 + 0x24,0x13, // LOAD_FAST_N 19 + 0xbe, // LOAD_FAST 14 + 0x13,0x22, // LOAD_ATTR 'signer' + 0x36,0x04, // CALL_METHOD 4 + 0x26,0x13, // STORE_FAST_N 19 + 0x42,0x55, // JUMP 21 + 0xb8, // LOAD_FAST 8 + 0x14,0x2e, // LOAD_METHOD 'initiate' + 0xb5, // LOAD_FAST 5 + 0x14,0x24, // LOAD_METHOD 'remove_ed25519_prefix' + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x25, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0xbf, // LOAD_FAST 15 + 0x24,0x13, // LOAD_FAST_N 19 + 0x36,0x03, // CALL_METHOD 3 + 0x26,0x13, // STORE_FAST_N 19 + 0xb2, // LOAD_FAST 2 + 0x14,0x2f, // LOAD_METHOD 'sign' + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x30, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0x24,0x13, // LOAD_FAST_N 19 + 0xbb, // LOAD_FAST 11 + 0x36,0x03, // CALL_METHOD 3 + 0x26,0x14, // STORE_FAST_N 20 + 0xb3, // LOAD_FAST 3 + 0x10,0x31, // LOAD_CONST_STRING 'data' + 0x24,0x13, // LOAD_FAST_N 19 + 0x10,0x32, // LOAD_CONST_STRING 'signature' + 0x24,0x14, // LOAD_FAST_N 20 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_sign_tx_sign_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_nem_sign_tx_sign_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 513, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 30, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_nem_sign_tx_sign_tx + 6, + .line_info_top = fun_data_apps_nem_sign_tx_sign_tx + 57, + .opcodes = fun_data_apps_nem_sign_tx_sign_tx + 57, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_sign_tx__lt_module_gt_[] = { + &raw_code_apps_nem_sign_tx_sign_tx, +}; + +static const mp_raw_code_t raw_code_apps_nem_sign_tx__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_sign_tx__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 68, + #endif + .children = (void *)&children_apps_nem_sign_tx__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_sign_tx__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_sign_tx__lt_module_gt_ + 8, + .opcodes = fun_data_apps_nem_sign_tx__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_sign_tx[54] = { + MP_QSTR_apps_slash_nem_slash_sign_tx_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_with_slip44_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_CURVE, + MP_QSTR_PATTERNS, + MP_QSTR_SLIP44_ID, + MP_QSTR_, + MP_QSTR_slip44_id, + MP_QSTR_curve, + MP_QSTR_sign_tx, + MP_QSTR_ed25519, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_NEMSignedTx, + MP_QSTR_trezor_dot_messages, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_seed, + MP_QSTR_apps_dot_common, + MP_QSTR_validate_path, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_mosaic, + MP_QSTR_multisig, + MP_QSTR_namespace, + MP_QSTR_transfer, + MP_QSTR_NEM_HASH_ALG, + MP_QSTR_check_path, + MP_QSTR_helpers, + MP_QSTR_validate, + MP_QSTR_validators, + MP_QSTR_transaction, + MP_QSTR_address_n, + MP_QSTR_network, + MP_QSTR_derive, + MP_QSTR_signer, + MP_QSTR_ask, + MP_QSTR_remove_ed25519_prefix, + MP_QSTR_public_key, + MP_QSTR_chunkify, + MP_QSTR_provision_namespace, + MP_QSTR_mosaic_creation, + MP_QSTR_supply_change, + MP_QSTR_aggregate_modification, + MP_QSTR_importance_transfer, + MP_QSTR_cosigning, + MP_QSTR_cosign, + MP_QSTR_initiate, + MP_QSTR_sign, + MP_QSTR_private_key, + MP_QSTR_data, + MP_QSTR_signature, + MP_QSTR_msg, + MP_QSTR_keychain, + MP_QSTR_bool, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_nem_sign_tx[2] = { + MP_ROM_QSTR(MP_QSTR_No_space_signer_space_provided), + MP_ROM_QSTR(MP_QSTR_No_space_transaction_space_provided), +}; + +static const mp_frozen_module_t frozen_module_apps_nem_sign_tx = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_sign_tx, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_nem_sign_tx, + }, + .rc = &raw_code_apps_nem_sign_tx__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_validators +// - original source file: build/firmware/src/apps/nem/validators.mpy +// - frozen file name: apps/nem/validators.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/validators.py, scope apps_nem_validators__lt_module_gt_ +static const byte fun_data_apps_nem_validators__lt_module_gt_[47] = { + 0x08,0x16, // prelude + 0x01, // names: + 0x40,0x4c,0x60,0x20,0x84,0x98,0x84,0x07,0x88,0x16, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.wire' + 0x1c,0x02, // IMPORT_FROM 'ProcessError' + 0x16,0x02, // STORE_NAME 'ProcessError' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x04, // STORE_NAME 'validate' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x2f, // STORE_NAME 'validate_network' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x33, // STORE_NAME '_validate_common' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x35, // STORE_NAME '_validate_public_key' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_validators__lt_module_gt_ +// frozen bytecode for file apps/nem/validators.py, scope apps_nem_validators_validate +static const byte fun_data_apps_nem_validators_validate[805] = { + 0xd9,0x10,0xde,0x02, // prelude + 0x04,0x37, // names: validate, msg + 0x80,0x09,0x2b,0x2b,0x4b,0x7a,0x60,0x20,0x24,0x24,0x24,0x24,0x24,0x66,0x20,0x20,0x25,0x28,0x26,0x28,0x26,0x49,0x25,0x26,0x25,0x46,0x48,0x23,0x47,0x27,0x26,0x22,0x68,0x28,0x46,0x24,0x44,0x28,0x2a,0x23,0x46,0x23,0x29,0x26,0x2e,0x46,0x29,0x46,0x45,0x2b,0x46,0x44,0x29,0x26,0x25,0x26,0x46,0x29,0x26,0x29,0x26,0x26,0x46,0x2d,0x21,0x45,0x2d,0x21,0x65,0x2a,0x28,0x26,0x28,0x26,0x28,0x26,0x28,0x46,0x26,0x26,0x26,0x26,0x28,0x26,0x28,0x26,0x28,0x46,0x26,0x26,0x26,0x46,0x2a,0x46,0x45,0x40,0x43,0x25,0x29,0x46,0x28,0x44,0x4a,0x26,0x22,0x6b,0x45,0x22,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'nem' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x05, // IMPORT_FROM 'nem' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'NEMModificationType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.enums' + 0x1c,0x07, // IMPORT_FROM 'NEMModificationType' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.wire' + 0x1c,0x02, // IMPORT_FROM 'ProcessError' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x09, // LOAD_CONST_STRING 'NEM_MAX_DIVISIBILITY' + 0x10,0x0a, // LOAD_CONST_STRING 'NEM_MAX_ENCRYPTED_PAYLOAD_SIZE' + 0x10,0x0b, // LOAD_CONST_STRING 'NEM_MAX_PLAIN_PAYLOAD_SIZE' + 0x10,0x0c, // LOAD_CONST_STRING 'NEM_MAX_SUPPLY' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x0d, // IMPORT_NAME 'helpers' + 0x1c,0x09, // IMPORT_FROM 'NEM_MAX_DIVISIBILITY' + 0xc4, // STORE_FAST 4 + 0x1c,0x0a, // IMPORT_FROM 'NEM_MAX_ENCRYPTED_PAYLOAD_SIZE' + 0xc5, // STORE_FAST 5 + 0x1c,0x0b, // IMPORT_FROM 'NEM_MAX_PLAIN_PAYLOAD_SIZE' + 0xc6, // STORE_FAST 6 + 0x1c,0x0c, // IMPORT_FROM 'NEM_MAX_SUPPLY' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x0e, // LOAD_ATTR 'validate_address' + 0xc8, // STORE_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'transfer' + 0xc9, // STORE_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'aggregate_modification' + 0xca, // STORE_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'multisig' + 0xcb, // STORE_FAST 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'mosaic_creation' + 0xcc, // STORE_FAST 12 + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'transaction' + 0x13,0x14, // LOAD_ATTR 'network' + 0xcd, // STORE_FAST 13 + 0x12,0x38, // LOAD_GLOBAL 'bool' + 0xb9, // LOAD_FAST 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x38, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'provision_namespace' + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x12,0x38, // LOAD_GLOBAL 'bool' + 0xbc, // LOAD_FAST 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x12,0x38, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'supply_change' + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x12,0x38, // LOAD_GLOBAL 'bool' + 0xba, // LOAD_FAST 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x12,0x38, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'importance_transfer' + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0xce, // STORE_FAST 14 + 0xbe, // LOAD_FAST 14 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbe, // LOAD_FAST 14 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x33, // LOAD_GLOBAL '_validate_common' + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'transaction' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0x44,0x5e, // POP_JUMP_IF_FALSE 30 + 0x12,0x33, // LOAD_GLOBAL '_validate_common' + 0xbb, // LOAD_FAST 11 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0x13,0x14, // LOAD_ATTR 'network' + 0xbd, // LOAD_FAST 13 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x35, // LOAD_GLOBAL '_validate_public_key' + 0xbb, // LOAD_FAST 11 + 0x13,0x18, // LOAD_ATTR 'signer' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'cosigning' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb9, // LOAD_FAST 9 + 0x44,0xd4,0x80, // POP_JUMP_IF_FALSE 84 + 0xb9, // LOAD_FAST 9 + 0x13,0x1a, // LOAD_ATTR 'payload' + 0xcf, // STORE_FAST 15 + 0xb9, // LOAD_FAST 9 + 0x13,0x1b, // LOAD_ATTR 'public_key' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x35, // LOAD_GLOBAL '_validate_public_key' + 0xb9, // LOAD_FAST 9 + 0x13,0x1b, // LOAD_ATTR 'public_key' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbf, // LOAD_FAST 15 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbf, // LOAD_FAST 15 + 0x44,0x63, // POP_JUMP_IF_FALSE 35 + 0x12,0x39, // LOAD_GLOBAL 'len' + 0xbf, // LOAD_FAST 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb6, // LOAD_FAST 6 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb9, // LOAD_FAST 9 + 0x13,0x1b, // LOAD_ATTR 'public_key' + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0x12,0x39, // LOAD_GLOBAL 'len' + 0xbf, // LOAD_FAST 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb5, // LOAD_FAST 5 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb8, // LOAD_FAST 8 + 0xb9, // LOAD_FAST 9 + 0x13,0x1c, // LOAD_ATTR 'recipient' + 0xbd, // LOAD_FAST 13 + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'provision_namespace' + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb8, // LOAD_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'provision_namespace' + 0x13,0x1d, // LOAD_ATTR 'sink' + 0xbd, // LOAD_FAST 13 + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbc, // LOAD_FAST 12 + 0x44,0x9c,0x82, // POP_JUMP_IF_FALSE 284 + 0xb8, // LOAD_FAST 8 + 0xbc, // LOAD_FAST 12 + 0x13,0x1d, // LOAD_ATTR 'sink' + 0xbd, // LOAD_FAST 13 + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbc, // LOAD_FAST 12 + 0x13,0x1e, // LOAD_ATTR 'definition' + 0x26,0x10, // STORE_FAST_N 16 + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x1f, // LOAD_ATTR 'supply' + 0x26,0x11, // STORE_FAST_N 17 + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x20, // LOAD_ATTR 'divisibility' + 0x26,0x12, // STORE_FAST_N 18 + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x21, // LOAD_ATTR 'name' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x22, // LOAD_ATTR 'ticker' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x23, // LOAD_ATTR 'networks' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x11, // LOAD_FAST_N 17 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x24,0x12, // LOAD_FAST_N 18 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x11, // LOAD_FAST_N 17 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x24,0x12, // LOAD_FAST_N 18 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x24, // LOAD_ATTR 'levy' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0xa2,0x81, // POP_JUMP_IF_FALSE 162 + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x25, // LOAD_ATTR 'fee' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x26, // LOAD_ATTR 'levy_address' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x27, // LOAD_ATTR 'levy_namespace' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x28, // LOAD_ATTR 'levy_mosaic' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x12, // LOAD_FAST_N 18 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x11, // LOAD_FAST_N 17 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x29, // LOAD_ATTR 'mutable_supply' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x2a, // LOAD_ATTR 'transferable' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x17, // LOAD_CONST_OBJ 23 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x2b, // LOAD_ATTR 'description' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x18, // LOAD_CONST_OBJ 24 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x12, // LOAD_FAST_N 18 + 0xb4, // LOAD_FAST 4 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x19, // LOAD_CONST_OBJ 25 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x11, // LOAD_FAST_N 17 + 0xb7, // LOAD_FAST 7 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x1a, // LOAD_CONST_OBJ 26 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb8, // LOAD_FAST 8 + 0x24,0x10, // LOAD_FAST_N 16 + 0x13,0x26, // LOAD_ATTR 'levy_address' + 0xbd, // LOAD_FAST 13 + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x1b, // LOAD_CONST_OBJ 27 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'supply_change' + 0x44,0x40, // POP_JUMP_IF_FALSE 0 + 0xba, // LOAD_FAST 10 + 0x44,0x7d, // POP_JUMP_IF_FALSE 61 + 0xbb, // LOAD_FAST 11 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x26,0x13, // STORE_FAST_N 19 + 0x24,0x13, // LOAD_FAST_N 19 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xba, // LOAD_FAST 10 + 0x13,0x2c, // LOAD_ATTR 'modifications' + 0x43,0x46, // POP_JUMP_IF_TRUE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x1c, // LOAD_CONST_OBJ 28 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xba, // LOAD_FAST 10 + 0x13,0x2c, // LOAD_ATTR 'modifications' + 0x5f, // GET_ITER_STACK + 0x4b,0x23, // FOR_ITER 35 + 0x26,0x14, // STORE_FAST_N 20 + 0x24,0x13, // LOAD_FAST_N 19 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x24,0x14, // LOAD_FAST_N 20 + 0x13,0x2d, // LOAD_ATTR 'type' + 0xb2, // LOAD_FAST 2 + 0x13,0x2e, // LOAD_ATTR 'CosignatoryModification_Delete' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb3, // LOAD_FAST 3 + 0x23,0x1d, // LOAD_CONST_OBJ 29 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x35, // LOAD_GLOBAL '_validate_public_key' + 0x24,0x14, // LOAD_FAST_N 20 + 0x13,0x1b, // LOAD_ATTR 'public_key' + 0x23,0x1e, // LOAD_CONST_OBJ 30 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x1b, // JUMP -37 + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'importance_transfer' + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x35, // LOAD_GLOBAL '_validate_public_key' + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'importance_transfer' + 0x13,0x1b, // LOAD_ATTR 'public_key' + 0x23,0x1f, // LOAD_CONST_OBJ 31 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_validators_validate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_nem_validators_validate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 805, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 28, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_nem_validators_validate + 6, + .line_info_top = fun_data_apps_nem_validators_validate + 115, + .opcodes = fun_data_apps_nem_validators_validate + 115, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_validators__lt_module_gt_ +// frozen bytecode for file apps/nem/validators.py, scope apps_nem_validators_validate_network +static const byte fun_data_apps_nem_validators_validate_network[48] = { + 0x39,0x0c, // prelude + 0x2f,0x14, // names: validate_network, network + 0x80,0xa1,0x55,0x2a, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x30, // LOAD_CONST_STRING 'NEM_NETWORK_MAINNET' + 0x10,0x31, // LOAD_CONST_STRING 'NEM_NETWORK_MIJIN' + 0x10,0x32, // LOAD_CONST_STRING 'NEM_NETWORK_TESTNET' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x0d, // IMPORT_NAME 'helpers' + 0x1c,0x30, // IMPORT_FROM 'NEM_NETWORK_MAINNET' + 0xc1, // STORE_FAST 1 + 0x1c,0x31, // IMPORT_FROM 'NEM_NETWORK_MIJIN' + 0xc2, // STORE_FAST 2 + 0x1c,0x32, // IMPORT_FROM 'NEM_NETWORK_TESTNET' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x2a,0x03, // BUILD_TUPLE 3 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x20, // LOAD_CONST_OBJ 32 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_validators_validate_network = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_nem_validators_validate_network, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_apps_nem_validators_validate_network + 4, + .line_info_top = fun_data_apps_nem_validators_validate_network + 8, + .opcodes = fun_data_apps_nem_validators_validate_network + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_validators__lt_module_gt_ +// frozen bytecode for file apps/nem/validators.py, scope apps_nem_validators__validate_common +static const byte fun_data_apps_nem_validators__validate_common[106] = { + 0xba,0x01,0x22, // prelude + 0x33,0x3a,0x3b, // names: _validate_common, common, inner + 0x80,0xa8,0x28,0x44,0x42,0x26,0x47,0x28,0x43,0x23,0x23,0x4e,0x4c,0x26, // code info + 0x12,0x2f, // LOAD_GLOBAL 'validate_network' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'network' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'signer' + 0xc2, // STORE_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x43,0x4a, // POP_JUMP_IF_TRUE 10 + 0xb2, // LOAD_FAST 2 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x21, // LOAD_CONST_OBJ 33 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x10,0x18, // LOAD_CONST_STRING 'signer' + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x44,0x5d, // POP_JUMP_IF_FALSE 29 + 0xb1, // LOAD_FAST 1 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x22, // LOAD_CONST_OBJ 34 + 0x14,0x34, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x4c, // JUMP 12 + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x23, // LOAD_CONST_OBJ 35 + 0x14,0x34, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x35, // LOAD_GLOBAL '_validate_public_key' + 0xb2, // LOAD_FAST 2 + 0x23,0x24, // LOAD_CONST_OBJ 36 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_validators__validate_common = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_nem_validators__validate_common, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 106, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 51, + .line_info = fun_data_apps_nem_validators__validate_common + 6, + .line_info_top = fun_data_apps_nem_validators__validate_common + 20, + .opcodes = fun_data_apps_nem_validators__validate_common + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_validators__lt_module_gt_ +// frozen bytecode for file apps/nem/validators.py, scope apps_nem_validators__validate_public_key +static const byte fun_data_apps_nem_validators__validate_public_key[60] = { + 0x32,0x12, // prelude + 0x35,0x1b,0x3c, // names: _validate_public_key, public_key, err_msg + 0x80,0xbe,0x4b,0x23,0x2c,0x29, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x36, // LOAD_CONST_STRING 'NEM_PUBLIC_KEY_SIZE' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'helpers' + 0x1c,0x36, // IMPORT_FROM 'NEM_PUBLIC_KEY_SIZE' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x43,0x4c, // POP_JUMP_IF_TRUE 12 + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x25, // LOAD_CONST_OBJ 37 + 0x14,0x34, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x39, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'ProcessError' + 0x23,0x26, // LOAD_CONST_OBJ 38 + 0x14,0x34, // LOAD_METHOD 'format' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_validators__validate_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_nem_validators__validate_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 60, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 53, + .line_info = fun_data_apps_nem_validators__validate_public_key + 5, + .line_info_top = fun_data_apps_nem_validators__validate_public_key + 11, + .opcodes = fun_data_apps_nem_validators__validate_public_key + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_validators__lt_module_gt_[] = { + &raw_code_apps_nem_validators_validate, + &raw_code_apps_nem_validators_validate_network, + &raw_code_apps_nem_validators__validate_common, + &raw_code_apps_nem_validators__validate_public_key, +}; + +static const mp_raw_code_t raw_code_apps_nem_validators__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_validators__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = (void *)&children_apps_nem_validators__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_validators__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_validators__lt_module_gt_ + 13, + .opcodes = fun_data_apps_nem_validators__lt_module_gt_ + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_validators[61] = { + MP_QSTR_apps_slash_nem_slash_validators_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_validate, + MP_QSTR_nem, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_NEMModificationType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_NEM_MAX_DIVISIBILITY, + MP_QSTR_NEM_MAX_ENCRYPTED_PAYLOAD_SIZE, + MP_QSTR_NEM_MAX_PLAIN_PAYLOAD_SIZE, + MP_QSTR_NEM_MAX_SUPPLY, + MP_QSTR_helpers, + MP_QSTR_validate_address, + MP_QSTR_transfer, + MP_QSTR_aggregate_modification, + MP_QSTR_multisig, + MP_QSTR_mosaic_creation, + MP_QSTR_transaction, + MP_QSTR_network, + MP_QSTR_provision_namespace, + MP_QSTR_supply_change, + MP_QSTR_importance_transfer, + MP_QSTR_signer, + MP_QSTR_cosigning, + MP_QSTR_payload, + MP_QSTR_public_key, + MP_QSTR_recipient, + MP_QSTR_sink, + MP_QSTR_definition, + MP_QSTR_supply, + MP_QSTR_divisibility, + MP_QSTR_name, + MP_QSTR_ticker, + MP_QSTR_networks, + MP_QSTR_levy, + MP_QSTR_fee, + MP_QSTR_levy_address, + MP_QSTR_levy_namespace, + MP_QSTR_levy_mosaic, + MP_QSTR_mutable_supply, + MP_QSTR_transferable, + MP_QSTR_description, + MP_QSTR_modifications, + MP_QSTR_type, + MP_QSTR_CosignatoryModification_Delete, + MP_QSTR_validate_network, + MP_QSTR_NEM_NETWORK_MAINNET, + MP_QSTR_NEM_NETWORK_MIJIN, + MP_QSTR_NEM_NETWORK_TESTNET, + MP_QSTR__validate_common, + MP_QSTR_format, + MP_QSTR__validate_public_key, + MP_QSTR_NEM_PUBLIC_KEY_SIZE, + MP_QSTR_msg, + MP_QSTR_bool, + MP_QSTR_len, + MP_QSTR_common, + MP_QSTR_inner, + MP_QSTR_err_msg, +}; + +// constants +static const mp_obj_str_t const_obj_apps_nem_validators_1 = {{&mp_type_str}, 26868, 34, (const byte*)"\x4d\x6f\x72\x65\x20\x74\x68\x61\x6e\x20\x6f\x6e\x65\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x70\x72\x6f\x76\x69\x64\x65\x64"}; +static const mp_obj_str_t const_obj_apps_nem_validators_2 = {{&mp_type_str}, 3870, 38, (const byte*)"\x49\x6e\x6e\x65\x72\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x6e\x65\x74\x77\x6f\x72\x6b\x20\x69\x73\x20\x64\x69\x66\x66\x65\x72\x65\x6e\x74"}; +static const mp_obj_str_t const_obj_apps_nem_validators_3 = {{&mp_type_str}, 63813, 43, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x6d\x75\x6c\x74\x69\x73\x69\x67\x20\x73\x69\x67\x6e\x65\x72\x20\x70\x75\x62\x6c\x69\x63\x20\x6b\x65\x79\x20\x70\x72\x6f\x76\x69\x64\x65\x64"}; +static const mp_obj_str_t const_obj_apps_nem_validators_4 = {{&mp_type_str}, 3696, 33, (const byte*)"\x4e\x6f\x20\x6d\x75\x6c\x74\x69\x73\x69\x67\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x74\x6f\x20\x63\x6f\x73\x69\x67\x6e"}; +static const mp_obj_str_t const_obj_apps_nem_validators_5 = {{&mp_type_str}, 35801, 28, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x72\x65\x63\x69\x70\x69\x65\x6e\x74\x20\x70\x75\x62\x6c\x69\x63\x20\x6b\x65\x79"}; +static const mp_obj_str_t const_obj_apps_nem_validators_6 = {{&mp_type_str}, 28308, 45, (const byte*)"\x50\x75\x62\x6c\x69\x63\x20\x6b\x65\x79\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x62\x75\x74\x20\x6e\x6f\x20\x70\x61\x79\x6c\x6f\x61\x64\x20\x74\x6f\x20\x65\x6e\x63\x72\x79\x70\x74"}; +static const mp_obj_str_t const_obj_apps_nem_validators_8 = {{&mp_type_str}, 121, 25, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x72\x65\x63\x69\x70\x69\x65\x6e\x74\x20\x61\x64\x64\x72\x65\x73\x73"}; +static const mp_obj_str_t const_obj_apps_nem_validators_9 = {{&mp_type_str}, 43613, 27, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x72\x65\x6e\x74\x61\x6c\x20\x73\x69\x6e\x6b\x20\x61\x64\x64\x72\x65\x73\x73"}; +static const mp_obj_str_t const_obj_apps_nem_validators_10 = {{&mp_type_str}, 19316, 29, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x63\x72\x65\x61\x74\x69\x6f\x6e\x20\x73\x69\x6e\x6b\x20\x61\x64\x64\x72\x65\x73\x73"}; +static const mp_obj_str_t const_obj_apps_nem_validators_11 = {{&mp_type_str}, 62860, 48, (const byte*)"\x4e\x61\x6d\x65\x20\x6e\x6f\x74\x20\x61\x6c\x6c\x6f\x77\x65\x64\x20\x69\x6e\x20\x6d\x6f\x73\x61\x69\x63\x20\x63\x72\x65\x61\x74\x69\x6f\x6e\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x73"}; +static const mp_obj_str_t const_obj_apps_nem_validators_12 = {{&mp_type_str}, 50921, 50, (const byte*)"\x54\x69\x63\x6b\x65\x72\x20\x6e\x6f\x74\x20\x61\x6c\x6c\x6f\x77\x65\x64\x20\x69\x6e\x20\x6d\x6f\x73\x61\x69\x63\x20\x63\x72\x65\x61\x74\x69\x6f\x6e\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x73"}; +static const mp_obj_str_t const_obj_apps_nem_validators_13 = {{&mp_type_str}, 25254, 52, (const byte*)"\x4e\x65\x74\x77\x6f\x72\x6b\x73\x20\x6e\x6f\x74\x20\x61\x6c\x6c\x6f\x77\x65\x64\x20\x69\x6e\x20\x6d\x6f\x73\x61\x69\x63\x20\x63\x72\x65\x61\x74\x69\x6f\x6e\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x73"}; +static const mp_obj_str_t const_obj_apps_nem_validators_14 = {{&mp_type_str}, 51188, 59, (const byte*)"\x44\x65\x66\x69\x6e\x69\x74\x69\x6f\x6e\x20\x64\x69\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x20\x6e\x65\x65\x64\x73\x20\x74\x6f\x20\x62\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x77\x68\x65\x6e\x20\x73\x75\x70\x70\x6c\x79\x20\x69\x73"}; +static const mp_obj_str_t const_obj_apps_nem_validators_15 = {{&mp_type_str}, 1780, 59, (const byte*)"\x44\x65\x66\x69\x6e\x69\x74\x69\x6f\x6e\x20\x73\x75\x70\x70\x6c\x79\x20\x6e\x65\x65\x64\x73\x20\x74\x6f\x20\x62\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x77\x68\x65\x6e\x20\x64\x69\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x20\x69\x73"}; +static const mp_obj_str_t const_obj_apps_nem_validators_18 = {{&mp_type_str}, 54486, 26, (const byte*)"\x4e\x6f\x20\x6c\x65\x76\x79\x20\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x64"}; +static const mp_obj_str_t const_obj_apps_nem_validators_19 = {{&mp_type_str}, 49704, 28, (const byte*)"\x4e\x6f\x20\x6c\x65\x76\x79\x20\x6d\x6f\x73\x61\x69\x63\x20\x6e\x61\x6d\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x64"}; +static const mp_obj_str_t const_obj_apps_nem_validators_22 = {{&mp_type_str}, 27246, 29, (const byte*)"\x4e\x6f\x20\x73\x75\x70\x70\x6c\x79\x20\x6d\x75\x74\x61\x62\x69\x6c\x69\x74\x79\x20\x70\x72\x6f\x76\x69\x64\x65\x64"}; +static const mp_obj_str_t const_obj_apps_nem_validators_23 = {{&mp_type_str}, 25536, 34, (const byte*)"\x4e\x6f\x20\x6d\x6f\x73\x61\x69\x63\x20\x74\x72\x61\x6e\x73\x66\x65\x72\x61\x62\x69\x6c\x69\x74\x79\x20\x70\x72\x6f\x76\x69\x64\x65\x64"}; +static const mp_obj_str_t const_obj_apps_nem_validators_25 = {{&mp_type_str}, 21000, 29, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x64\x69\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x20\x70\x72\x6f\x76\x69\x64\x65\x64"}; +static const mp_obj_str_t const_obj_apps_nem_validators_28 = {{&mp_type_str}, 8318, 25, (const byte*)"\x4e\x6f\x20\x6d\x6f\x64\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x73\x20\x70\x72\x6f\x76\x69\x64\x65\x64"}; +static const mp_obj_str_t const_obj_apps_nem_validators_29 = {{&mp_type_str}, 15670, 49, (const byte*)"\x43\x61\x6e\x6e\x6f\x74\x20\x72\x65\x6d\x6f\x76\x65\x20\x63\x6f\x73\x69\x67\x6e\x61\x74\x6f\x72\x79\x20\x77\x68\x65\x6e\x20\x63\x6f\x6e\x76\x65\x72\x74\x69\x6e\x67\x20\x61\x63\x63\x6f\x75\x6e\x74"}; +static const mp_obj_str_t const_obj_apps_nem_validators_30 = {{&mp_type_str}, 38235, 39, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x63\x6f\x73\x69\x67\x6e\x61\x74\x6f\x72\x79\x20\x70\x75\x62\x6c\x69\x63\x20\x6b\x65\x79\x20\x70\x72\x6f\x76\x69\x64\x65\x64"}; +static const mp_obj_str_t const_obj_apps_nem_validators_31 = {{&mp_type_str}, 36304, 42, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x72\x65\x6d\x6f\x74\x65\x20\x61\x63\x63\x6f\x75\x6e\x74\x20\x70\x75\x62\x6c\x69\x63\x20\x6b\x65\x79\x20\x70\x72\x6f\x76\x69\x64\x65\x64"}; +static const mp_obj_str_t const_obj_apps_nem_validators_33 = {{&mp_type_str}, 22134, 39, (const byte*)"\x53\x69\x67\x6e\x65\x72\x20\x6e\x6f\x74\x20\x61\x6c\x6c\x6f\x77\x65\x64\x20\x69\x6e\x20\x6f\x75\x74\x65\x72\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e"}; +static const mp_obj_str_t const_obj_apps_nem_validators_34 = {{&mp_type_str}, 42344, 35, (const byte*)"\x4e\x6f\x20\x7b\x7d\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x69\x6e\x20\x69\x6e\x6e\x65\x72\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e"}; +static const mp_obj_str_t const_obj_apps_nem_validators_36 = {{&mp_type_str}, 46715, 46, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x73\x69\x67\x6e\x65\x72\x20\x70\x75\x62\x6c\x69\x63\x20\x6b\x65\x79\x20\x69\x6e\x20\x69\x6e\x6e\x65\x72\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_nem_validators[39] = { + MP_ROM_QSTR(MP_QSTR_No_space_transaction_space_provided), + MP_ROM_PTR(&const_obj_apps_nem_validators_1), + MP_ROM_PTR(&const_obj_apps_nem_validators_2), + MP_ROM_PTR(&const_obj_apps_nem_validators_3), + MP_ROM_PTR(&const_obj_apps_nem_validators_4), + MP_ROM_PTR(&const_obj_apps_nem_validators_5), + MP_ROM_PTR(&const_obj_apps_nem_validators_6), + MP_ROM_QSTR(MP_QSTR_Payload_space_too_space_large), + MP_ROM_PTR(&const_obj_apps_nem_validators_8), + MP_ROM_PTR(&const_obj_apps_nem_validators_9), + MP_ROM_PTR(&const_obj_apps_nem_validators_10), + MP_ROM_PTR(&const_obj_apps_nem_validators_11), + MP_ROM_PTR(&const_obj_apps_nem_validators_12), + MP_ROM_PTR(&const_obj_apps_nem_validators_13), + MP_ROM_PTR(&const_obj_apps_nem_validators_14), + MP_ROM_PTR(&const_obj_apps_nem_validators_15), + MP_ROM_QSTR(MP_QSTR_No_space_levy_space_fee_space_provided), + MP_ROM_QSTR(MP_QSTR_No_space_levy_space_address_space_provided), + MP_ROM_PTR(&const_obj_apps_nem_validators_18), + MP_ROM_PTR(&const_obj_apps_nem_validators_19), + MP_ROM_QSTR(MP_QSTR_No_space_divisibility_space_provided), + MP_ROM_QSTR(MP_QSTR_No_space_supply_space_provided), + MP_ROM_PTR(&const_obj_apps_nem_validators_22), + MP_ROM_PTR(&const_obj_apps_nem_validators_23), + MP_ROM_QSTR(MP_QSTR_No_space_description_space_provided), + MP_ROM_PTR(&const_obj_apps_nem_validators_25), + MP_ROM_QSTR(MP_QSTR_Invalid_space_supply_space_provided), + MP_ROM_QSTR(MP_QSTR_Invalid_space_levy_space_address), + MP_ROM_PTR(&const_obj_apps_nem_validators_28), + MP_ROM_PTR(&const_obj_apps_nem_validators_29), + MP_ROM_PTR(&const_obj_apps_nem_validators_30), + MP_ROM_PTR(&const_obj_apps_nem_validators_31), + MP_ROM_QSTR(MP_QSTR_Invalid_space_NEM_space_network), + MP_ROM_PTR(&const_obj_apps_nem_validators_33), + MP_ROM_PTR(&const_obj_apps_nem_validators_34), + MP_ROM_QSTR(MP_QSTR_No_space__brace_open__brace_close__space_provided), + MP_ROM_PTR(&const_obj_apps_nem_validators_36), + MP_ROM_QSTR(MP_QSTR__brace_open__brace_close__space__paren_open_none_space_provided_paren_close_), + MP_ROM_QSTR(MP_QSTR__brace_open__brace_close__space__paren_open_invalid_space_length_paren_close_), +}; + +static const mp_frozen_module_t frozen_module_apps_nem_validators = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_validators, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_nem_validators, + }, + .rc = &raw_code_apps_nem_validators__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_writers +// - original source file: build/firmware/src/apps/nem/writers.mpy +// - frozen file name: apps/nem/writers.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/writers.py, scope apps_nem_writers__lt_module_gt_ +static const byte fun_data_apps_nem_writers__lt_module_gt_[47] = { + 0x18,0x0e, // prelude + 0x01, // names: + 0x40,0x58,0x60,0x40,0x88,0x15, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'write_bytes_unchecked' + 0x10,0x03, // LOAD_CONST_STRING 'write_uint32_le' + 0x10,0x04, // LOAD_CONST_STRING 'write_uint64_le' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x05, // IMPORT_NAME 'apps.common.writers' + 0x1c,0x02, // IMPORT_FROM 'write_bytes_unchecked' + 0x16,0x02, // STORE_NAME 'write_bytes_unchecked' + 0x1c,0x03, // IMPORT_FROM 'write_uint32_le' + 0x16,0x03, // STORE_NAME 'write_uint32_le' + 0x1c,0x04, // IMPORT_FROM 'write_uint64_le' + 0x16,0x04, // STORE_NAME 'write_uint64_le' + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x06, // STORE_NAME 'serialize_tx_common' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0b, // STORE_NAME 'write_bytes_with_len' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_writers__lt_module_gt_ +// frozen bytecode for file apps/nem/writers.py, scope apps_nem_writers_serialize_tx_common +static const byte fun_data_apps_nem_writers_serialize_tx_common[87] = { + 0xb8,0x05,0x20, // prelude + 0x06,0x0c,0x0d,0x0e,0x0f, // names: serialize_tx_common, common, public_key, transaction_type, version + 0x80,0x0f,0x45,0x27,0x25,0x28,0x27,0x49,0x27,0x29,0x49, // code info + 0x12,0x10, // LOAD_GLOBAL 'bytearray' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc4, // STORE_FAST 4 + 0x12,0x03, // LOAD_GLOBAL 'write_uint32_le' + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x07, // LOAD_ATTR 'network' + 0x98, // LOAD_CONST_SMALL_INT 24 + 0xf0, // BINARY_OP 25 __lshift__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xed, // BINARY_OP 22 __or__ + 0xc3, // STORE_FAST 3 + 0x12,0x03, // LOAD_GLOBAL 'write_uint32_le' + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_uint32_le' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'timestamp' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'write_uint64_le' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'fee' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_uint32_le' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x0a, // LOAD_ATTR 'deadline' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_writers_serialize_tx_common = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_nem_writers_serialize_tx_common, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 87, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_nem_writers_serialize_tx_common + 8, + .line_info_top = fun_data_apps_nem_writers_serialize_tx_common + 19, + .opcodes = fun_data_apps_nem_writers_serialize_tx_common + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_writers__lt_module_gt_ +// frozen bytecode for file apps/nem/writers.py, scope apps_nem_writers_write_bytes_with_len +static const byte fun_data_apps_nem_writers_write_bytes_with_len[28] = { + 0x2a,0x0c, // prelude + 0x0b,0x11,0x12, // names: write_bytes_with_len, w, buf + 0x80,0x1f,0x2b, // code info + 0x12,0x03, // LOAD_GLOBAL 'write_uint32_le' + 0xb0, // LOAD_FAST 0 + 0x12,0x13, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'write_bytes_unchecked' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_writers_write_bytes_with_len = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_nem_writers_write_bytes_with_len, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_apps_nem_writers_write_bytes_with_len + 5, + .line_info_top = fun_data_apps_nem_writers_write_bytes_with_len + 8, + .opcodes = fun_data_apps_nem_writers_write_bytes_with_len + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_writers__lt_module_gt_[] = { + &raw_code_apps_nem_writers_serialize_tx_common, + &raw_code_apps_nem_writers_write_bytes_with_len, +}; + +static const mp_raw_code_t raw_code_apps_nem_writers__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_writers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = (void *)&children_apps_nem_writers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_writers__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_writers__lt_module_gt_ + 9, + .opcodes = fun_data_apps_nem_writers__lt_module_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_writers[20] = { + MP_QSTR_apps_slash_nem_slash_writers_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_write_bytes_unchecked, + MP_QSTR_write_uint32_le, + MP_QSTR_write_uint64_le, + MP_QSTR_apps_dot_common_dot_writers, + MP_QSTR_serialize_tx_common, + MP_QSTR_network, + MP_QSTR_timestamp, + MP_QSTR_fee, + MP_QSTR_deadline, + MP_QSTR_write_bytes_with_len, + MP_QSTR_common, + MP_QSTR_public_key, + MP_QSTR_transaction_type, + MP_QSTR_version, + MP_QSTR_bytearray, + MP_QSTR_w, + MP_QSTR_buf, + MP_QSTR_len, +}; + +static const mp_frozen_module_t frozen_module_apps_nem_writers = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_writers, + .obj_table = NULL, + }, + .rc = &raw_code_apps_nem_writers__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_mosaic___init__ +// - original source file: build/firmware/src/apps/nem/mosaic/__init__.mpy +// - frozen file name: apps/nem/mosaic/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/mosaic/__init__.py, scope apps_nem_mosaic___init____lt_module_gt_ +static const byte fun_data_apps_nem_mosaic___init____lt_module_gt_[37] = { + 0x10,0x0e, // prelude + 0x01, // names: + 0x40,0x52,0x80,0x08,0x84,0x09, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x02, // LOAD_CONST_STRING 'layout' + 0x10,0x03, // LOAD_CONST_STRING 'serialize' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x04, // IMPORT_NAME '' + 0x1c,0x02, // IMPORT_FROM 'layout' + 0x16,0x02, // STORE_NAME 'layout' + 0x1c,0x03, // IMPORT_FROM 'serialize' + 0x16,0x03, // STORE_NAME 'serialize' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x05, // STORE_NAME 'mosaic_creation' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x08, // STORE_NAME 'supply_change' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_mosaic___init____lt_module_gt_ +// frozen bytecode for file apps/nem/mosaic/__init__.py, scope apps_nem_mosaic___init___mosaic_creation +static const byte fun_data_apps_nem_mosaic___init___mosaic_creation[32] = { + 0xbb,0x40,0x0e, // prelude + 0x05,0x0b,0x0c,0x0d, // names: mosaic_creation, public_key, common, creation + 0x80,0x11,0x2c, // code info + 0x12,0x02, // LOAD_GLOBAL 'layout' + 0x14,0x06, // LOAD_METHOD 'ask_mosaic_creation' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'serialize' + 0x14,0x07, // LOAD_METHOD 'serialize_mosaic_creation' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_mosaic___init___mosaic_creation = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_nem_mosaic___init___mosaic_creation, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_nem_mosaic___init___mosaic_creation + 7, + .line_info_top = fun_data_apps_nem_mosaic___init___mosaic_creation + 10, + .opcodes = fun_data_apps_nem_mosaic___init___mosaic_creation + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_mosaic___init____lt_module_gt_ +// frozen bytecode for file apps/nem/mosaic/__init__.py, scope apps_nem_mosaic___init___supply_change +static const byte fun_data_apps_nem_mosaic___init___supply_change[32] = { + 0xbb,0x40,0x0e, // prelude + 0x08,0x0b,0x0c,0x0e, // names: supply_change, public_key, common, change + 0x80,0x1a,0x2c, // code info + 0x12,0x02, // LOAD_GLOBAL 'layout' + 0x14,0x09, // LOAD_METHOD 'ask_supply_change' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'serialize' + 0x14,0x0a, // LOAD_METHOD 'serialize_mosaic_supply_change' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_mosaic___init___supply_change = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_nem_mosaic___init___supply_change, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_nem_mosaic___init___supply_change + 7, + .line_info_top = fun_data_apps_nem_mosaic___init___supply_change + 10, + .opcodes = fun_data_apps_nem_mosaic___init___supply_change + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_mosaic___init____lt_module_gt_[] = { + &raw_code_apps_nem_mosaic___init___mosaic_creation, + &raw_code_apps_nem_mosaic___init___supply_change, +}; + +static const mp_raw_code_t raw_code_apps_nem_mosaic___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_mosaic___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = (void *)&children_apps_nem_mosaic___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_mosaic___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_mosaic___init____lt_module_gt_ + 9, + .opcodes = fun_data_apps_nem_mosaic___init____lt_module_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_mosaic___init__[15] = { + MP_QSTR_apps_slash_nem_slash_mosaic_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_layout, + MP_QSTR_serialize, + MP_QSTR_, + MP_QSTR_mosaic_creation, + MP_QSTR_ask_mosaic_creation, + MP_QSTR_serialize_mosaic_creation, + MP_QSTR_supply_change, + MP_QSTR_ask_supply_change, + MP_QSTR_serialize_mosaic_supply_change, + MP_QSTR_public_key, + MP_QSTR_common, + MP_QSTR_creation, + MP_QSTR_change, +}; + +static const mp_frozen_module_t frozen_module_apps_nem_mosaic___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_mosaic___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps_nem_mosaic___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_mosaic_helpers +// - original source file: build/firmware/src/apps/nem/mosaic/helpers.mpy +// - frozen file name: apps/nem/mosaic/helpers.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/mosaic/helpers.py, scope apps_nem_mosaic_helpers__lt_module_gt_ +static const byte fun_data_apps_nem_mosaic_helpers__lt_module_gt_[18] = { + 0x00,0x0c, // prelude + 0x01, // names: + 0x40,0x60,0x60,0x84,0x0c, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'get_mosaic_definition' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x08, // STORE_NAME 'is_nem_xem_mosaic' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_mosaic_helpers__lt_module_gt_ +// frozen bytecode for file apps/nem/mosaic/helpers.py, scope apps_nem_mosaic_helpers_get_mosaic_definition +static const byte fun_data_apps_nem_mosaic_helpers_get_mosaic_definition[65] = { + 0x53,0x16, // prelude + 0x02,0x0b,0x0c,0x0d, // names: get_mosaic_definition, namespace_name, mosaic_name, network + 0x80,0x0b,0x4b,0x27,0x2e,0x2e,0x24, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x03, // LOAD_CONST_STRING 'mosaics_iterator' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'nem_mosaics' + 0x1c,0x03, // IMPORT_FROM 'mosaics_iterator' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x21, // FOR_ITER 33 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x13,0x05, // LOAD_ATTR 'namespace' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x13,0x06, // LOAD_ATTR 'mosaic' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb4, // LOAD_FAST 4 + 0x13,0x07, // LOAD_ATTR 'networks' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x13,0x07, // LOAD_ATTR 'networks' + 0xdd, // BINARY_OP 6 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE + 0x42,0x1d, // JUMP -35 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_mosaic_helpers_get_mosaic_definition = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_nem_mosaic_helpers_get_mosaic_definition, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 65, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_nem_mosaic_helpers_get_mosaic_definition + 6, + .line_info_top = fun_data_apps_nem_mosaic_helpers_get_mosaic_definition + 13, + .opcodes = fun_data_apps_nem_mosaic_helpers_get_mosaic_definition + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_mosaic_helpers__lt_module_gt_ +// frozen bytecode for file apps/nem/mosaic/helpers.py, scope apps_nem_mosaic_helpers_is_nem_xem_mosaic +static const byte fun_data_apps_nem_mosaic_helpers_is_nem_xem_mosaic[28] = { + 0x11,0x0c, // prelude + 0x08,0x06, // names: is_nem_xem_mosaic, mosaic + 0x80,0x15,0x30,0x22, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x05, // LOAD_ATTR 'namespace' + 0x10,0x09, // LOAD_CONST_STRING 'nem' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x06, // LOAD_ATTR 'mosaic' + 0x10,0x0a, // LOAD_CONST_STRING 'xem' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_mosaic_helpers_is_nem_xem_mosaic = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_nem_mosaic_helpers_is_nem_xem_mosaic, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_nem_mosaic_helpers_is_nem_xem_mosaic + 4, + .line_info_top = fun_data_apps_nem_mosaic_helpers_is_nem_xem_mosaic + 8, + .opcodes = fun_data_apps_nem_mosaic_helpers_is_nem_xem_mosaic + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_mosaic_helpers__lt_module_gt_[] = { + &raw_code_apps_nem_mosaic_helpers_get_mosaic_definition, + &raw_code_apps_nem_mosaic_helpers_is_nem_xem_mosaic, +}; + +static const mp_raw_code_t raw_code_apps_nem_mosaic_helpers__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_mosaic_helpers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = (void *)&children_apps_nem_mosaic_helpers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_mosaic_helpers__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_mosaic_helpers__lt_module_gt_ + 8, + .opcodes = fun_data_apps_nem_mosaic_helpers__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_mosaic_helpers[14] = { + MP_QSTR_apps_slash_nem_slash_mosaic_slash_helpers_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_get_mosaic_definition, + MP_QSTR_mosaics_iterator, + MP_QSTR_nem_mosaics, + MP_QSTR_namespace, + MP_QSTR_mosaic, + MP_QSTR_networks, + MP_QSTR_is_nem_xem_mosaic, + MP_QSTR_nem, + MP_QSTR_xem, + MP_QSTR_namespace_name, + MP_QSTR_mosaic_name, + MP_QSTR_network, +}; + +static const mp_frozen_module_t frozen_module_apps_nem_mosaic_helpers = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_mosaic_helpers, + .obj_table = NULL, + }, + .rc = &raw_code_apps_nem_mosaic_helpers__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_mosaic_layout +// - original source file: build/firmware/src/apps/nem/mosaic/layout.mpy +// - frozen file name: apps/nem/mosaic/layout.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/mosaic/layout.py, scope apps_nem_mosaic_layout__lt_module_gt_ +static const byte fun_data_apps_nem_mosaic_layout__lt_module_gt_[43] = { + 0x10,0x12, // prelude + 0x01, // names: + 0x40,0x52,0x80,0x09,0x84,0x10,0x84,0x17, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x02, // LOAD_CONST_STRING 'require_confirm_content' + 0x10,0x03, // LOAD_CONST_STRING 'require_confirm_final' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x04, // IMPORT_NAME 'layout' + 0x1c,0x02, // IMPORT_FROM 'require_confirm_content' + 0x16,0x02, // STORE_NAME 'require_confirm_content' + 0x1c,0x03, // IMPORT_FROM 'require_confirm_final' + 0x16,0x03, // STORE_NAME 'require_confirm_final' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x05, // STORE_NAME 'ask_mosaic_creation' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0b, // STORE_NAME 'ask_supply_change' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x16, // STORE_NAME '_require_confirm_properties' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_mosaic_layout__lt_module_gt_ +// frozen bytecode for file apps/nem/mosaic/layout.py, scope apps_nem_mosaic_layout_ask_mosaic_creation +static const byte fun_data_apps_nem_mosaic_layout_ask_mosaic_creation[94] = { + 0xb2,0x40,0x18, // prelude + 0x05,0x2e,0x2f, // names: ask_mosaic_creation, common, creation + 0x80,0x10,0x4b,0x20,0x29,0x4c,0x2b,0x2b,0x4c, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x06, // LOAD_CONST_STRING 'require_confirm_fee' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'layout' + 0x1c,0x06, // IMPORT_FROM 'require_confirm_fee' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x07, // LOAD_ATTR 'definition' + 0x13,0x08, // LOAD_ATTR 'mosaic' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x07, // LOAD_ATTR 'definition' + 0x13,0x09, // LOAD_ATTR 'namespace' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x02, // BUILD_LIST 2 + 0xc3, // STORE_FAST 3 + 0x12,0x02, // LOAD_GLOBAL 'require_confirm_content' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL '_require_confirm_properties' + 0xb1, // LOAD_FAST 1 + 0x13,0x07, // LOAD_ATTR 'definition' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'fee' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'require_confirm_final' + 0xb0, // LOAD_FAST 0 + 0x13,0x0a, // LOAD_ATTR 'fee' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_mosaic_layout_ask_mosaic_creation = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_nem_mosaic_layout_ask_mosaic_creation, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 94, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_nem_mosaic_layout_ask_mosaic_creation + 6, + .line_info_top = fun_data_apps_nem_mosaic_layout_ask_mosaic_creation + 15, + .opcodes = fun_data_apps_nem_mosaic_layout_ask_mosaic_creation + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_mosaic_layout__lt_module_gt_ +// frozen bytecode for file apps/nem/mosaic/layout.py, scope apps_nem_mosaic_layout_ask_supply_change +static const byte fun_data_apps_nem_mosaic_layout_ask_supply_change[135] = { + 0xd2,0x40,0x22, // prelude + 0x0b,0x2e,0x30, // names: ask_supply_change, common, change + 0x80,0x20,0x4b,0x4b,0x20,0x27,0x4a,0x2b,0x29,0x25,0x29,0x45,0x27,0x51, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0c, // LOAD_CONST_STRING 'NEMSupplyChangeType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'trezor.enums' + 0x1c,0x0c, // IMPORT_FROM 'NEMSupplyChangeType' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x0e, // LOAD_CONST_STRING 'require_confirm_text' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'layout' + 0x1c,0x0e, // IMPORT_FROM 'require_confirm_text' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x08, // LOAD_ATTR 'mosaic' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x09, // LOAD_ATTR 'namespace' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x02, // BUILD_LIST 2 + 0xc4, // STORE_FAST 4 + 0x12,0x02, // LOAD_GLOBAL 'require_confirm_content' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'type' + 0xb2, // LOAD_FAST 2 + 0x13,0x10, // LOAD_ATTR 'SupplyChange_Decrease' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x11, // LOAD_CONST_STRING 'Decrease' + 0xc5, // STORE_FAST 5 + 0x42,0x55, // JUMP 21 + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'type' + 0xb2, // LOAD_FAST 2 + 0x13,0x12, // LOAD_ATTR 'SupplyChange_Increase' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x13, // LOAD_CONST_STRING 'Increase' + 0xc5, // STORE_FAST 5 + 0x42,0x47, // JUMP 7 + 0x12,0x31, // LOAD_GLOBAL 'ValueError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x14,0x14, // LOAD_METHOD 'format' + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x15, // LOAD_ATTR 'delta' + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'require_confirm_final' + 0xb0, // LOAD_FAST 0 + 0x13,0x0a, // LOAD_ATTR 'fee' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_mosaic_layout_ask_supply_change = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_nem_mosaic_layout_ask_supply_change, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 135, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_apps_nem_mosaic_layout_ask_supply_change + 6, + .line_info_top = fun_data_apps_nem_mosaic_layout_ask_supply_change + 20, + .opcodes = fun_data_apps_nem_mosaic_layout_ask_supply_change + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_mosaic_layout__lt_module_gt_ +// frozen bytecode for file apps/nem/mosaic/layout.py, scope apps_nem_mosaic_layout__require_confirm_properties +static const byte fun_data_apps_nem_mosaic_layout__require_confirm_properties[255] = { + 0xd9,0x40,0x3c, // prelude + 0x16,0x07, // names: _require_confirm_properties, definition + 0x80,0x35,0x2b,0x4b,0x23,0x64,0x25,0x6b,0x2c,0x69,0x2c,0x25,0x56,0x69,0x46,0x20,0x20,0x40,0x4b,0x2f,0x4f,0x2b,0x4b,0x20,0x20,0x70,0x49,0x43, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING 'NEMMosaicLevy' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'trezor.enums' + 0x1c,0x17, // IMPORT_FROM 'NEMMosaicLevy' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x18, // LOAD_CONST_STRING 'confirm_properties' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x19, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x18, // IMPORT_FROM 'confirm_properties' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x2b,0x00, // BUILD_LIST 0 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x13,0x1a, // LOAD_ATTR 'append' + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'description' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb4, // LOAD_FAST 4 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'description' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'transferable' + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x10,0x1d, // LOAD_CONST_STRING 'Yes' + 0x42,0x42, // JUMP 2 + 0x10,0x1e, // LOAD_CONST_STRING 'No' + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0xb5, // LOAD_FAST 5 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x1f, // LOAD_ATTR 'mutable_supply' + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x10,0x20, // LOAD_CONST_STRING 'mutable' + 0x42,0x42, // JUMP 2 + 0x10,0x21, // LOAD_CONST_STRING 'immutable' + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'supply' + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0xb4, // LOAD_FAST 4 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x12,0x32, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'supply' + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x23, // LOAD_CONST_STRING '\n' + 0xf2, // BINARY_OP 27 __add__ + 0xb6, // LOAD_FAST 6 + 0xf2, // BINARY_OP 27 __add__ + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x49, // JUMP 9 + 0xb4, // LOAD_FAST 4 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0xb6, // LOAD_FAST 6 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'levy' + 0x44,0xd8,0x80, // POP_JUMP_IF_FALSE 88 + 0xb4, // LOAD_FAST 4 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'levy_address' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x10,0x26, // LOAD_CONST_STRING 'Levy fee:' + 0x12,0x32, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x0a, // LOAD_ATTR 'fee' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x12,0x32, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'divisibility' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0xb0, // LOAD_FAST 0 + 0x13,0x28, // LOAD_ATTR 'levy_namespace' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'levy_mosaic' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'levy' + 0xb1, // LOAD_FAST 1 + 0x13,0x2a, // LOAD_ATTR 'MosaicLevy_Absolute' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x10,0x2b, // LOAD_CONST_STRING 'absolute' + 0x42,0x42, // JUMP 2 + 0x10,0x2c, // LOAD_CONST_STRING 'percentile' + 0xc7, // STORE_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x10,0x2d, // LOAD_CONST_STRING 'Levy type:' + 0xb7, // LOAD_FAST 7 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x10,0x18, // LOAD_CONST_STRING 'confirm_properties' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_mosaic_layout__require_confirm_properties = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_nem_mosaic_layout__require_confirm_properties, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 255, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_apps_nem_mosaic_layout__require_confirm_properties + 5, + .line_info_top = fun_data_apps_nem_mosaic_layout__require_confirm_properties + 33, + .opcodes = fun_data_apps_nem_mosaic_layout__require_confirm_properties + 33, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_mosaic_layout__lt_module_gt_[] = { + &raw_code_apps_nem_mosaic_layout_ask_mosaic_creation, + &raw_code_apps_nem_mosaic_layout_ask_supply_change, + &raw_code_apps_nem_mosaic_layout__require_confirm_properties, +}; + +static const mp_raw_code_t raw_code_apps_nem_mosaic_layout__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_mosaic_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = (void *)&children_apps_nem_mosaic_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_mosaic_layout__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_mosaic_layout__lt_module_gt_ + 11, + .opcodes = fun_data_apps_nem_mosaic_layout__lt_module_gt_ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_mosaic_layout[51] = { + MP_QSTR_apps_slash_nem_slash_mosaic_slash_layout_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_require_confirm_content, + MP_QSTR_require_confirm_final, + MP_QSTR_layout, + MP_QSTR_ask_mosaic_creation, + MP_QSTR_require_confirm_fee, + MP_QSTR_definition, + MP_QSTR_mosaic, + MP_QSTR_namespace, + MP_QSTR_fee, + MP_QSTR_ask_supply_change, + MP_QSTR_NEMSupplyChangeType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_require_confirm_text, + MP_QSTR_type, + MP_QSTR_SupplyChange_Decrease, + MP_QSTR_Decrease, + MP_QSTR_SupplyChange_Increase, + MP_QSTR_Increase, + MP_QSTR_format, + MP_QSTR_delta, + MP_QSTR__require_confirm_properties, + MP_QSTR_NEMMosaicLevy, + MP_QSTR_confirm_properties, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_append, + MP_QSTR_description, + MP_QSTR_transferable, + MP_QSTR_Yes, + MP_QSTR_No, + MP_QSTR_mutable_supply, + MP_QSTR_mutable, + MP_QSTR_immutable, + MP_QSTR_supply, + MP_QSTR__0x0a_, + MP_QSTR_levy, + MP_QSTR_levy_address, + MP_QSTR_Levy_space_fee_colon_, + MP_QSTR_divisibility, + MP_QSTR_levy_namespace, + MP_QSTR_levy_mosaic, + MP_QSTR_MosaicLevy_Absolute, + MP_QSTR_absolute, + MP_QSTR_percentile, + MP_QSTR_Levy_space_type_colon_, + MP_QSTR_common, + MP_QSTR_creation, + MP_QSTR_change, + MP_QSTR_ValueError, + MP_QSTR_str, +}; + +// constants +static const mp_obj_str_t const_obj_apps_nem_mosaic_layout_5 = {{&mp_type_str}, 57689, 26, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x73\x75\x70\x70\x6c\x79\x20\x63\x68\x61\x6e\x67\x65\x20\x74\x79\x70\x65"}; +static const mp_obj_str_t const_obj_apps_nem_mosaic_layout_6 = {{&mp_type_str}, 30046, 28, (const byte*)"\x7b\x7d\x20\x73\x75\x70\x70\x6c\x79\x20\x62\x79\x20\x7b\x7d\x20\x77\x68\x6f\x6c\x65\x20\x75\x6e\x69\x74\x73\x3f"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_nem_mosaic_layout[15] = { + MP_ROM_QSTR(MP_QSTR_Create_space_mosaic), + MP_ROM_QSTR(MP_QSTR_under_space_namespace), + MP_ROM_QSTR(MP_QSTR_Confirm_space_creation_space_fee), + MP_ROM_QSTR(MP_QSTR_Modify_space_supply_space_for), + MP_ROM_QSTR(MP_QSTR_Supply_space_change), + MP_ROM_PTR(&const_obj_apps_nem_mosaic_layout_5), + MP_ROM_PTR(&const_obj_apps_nem_mosaic_layout_6), + MP_ROM_QSTR(MP_QSTR_Description_colon_), + MP_ROM_QSTR(MP_QSTR_Transferable_question_), + MP_ROM_QSTR(MP_QSTR_Initial_space_supply_colon_), + MP_ROM_QSTR(MP_QSTR_Levy_space_recipient_colon_), + MP_ROM_QSTR(MP_QSTR_Levy_space_divisibility_colon_), + MP_ROM_QSTR(MP_QSTR_Levy_space_namespace_colon_), + MP_ROM_QSTR(MP_QSTR_Levy_space_mosaic_colon_), + MP_ROM_QSTR(MP_QSTR_Confirm_space_properties), +}; + +static const mp_frozen_module_t frozen_module_apps_nem_mosaic_layout = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_mosaic_layout, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_nem_mosaic_layout, + }, + .rc = &raw_code_apps_nem_mosaic_layout__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_mosaic_nem_mosaics +// - original source file: build/firmware/src/apps/nem/mosaic/nem_mosaics.mpy +// - frozen file name: apps/nem/mosaic/nem_mosaics.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/mosaic/nem_mosaics.py, scope apps_nem_mosaic_nem_mosaics__lt_module_gt_ +static const byte fun_data_apps_nem_mosaic_nem_mosaics__lt_module_gt_[46] = { + 0x10,0x10, // prelude + 0x01, // names: + 0x80,0x09,0x6c,0x89,0x0e,0x89,0x14, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'NEMMosaicLevy' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x02, // IMPORT_FROM 'NEMMosaicLevy' + 0x16,0x02, // STORE_NAME 'NEMMosaicLevy' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x04, // LOAD_CONST_STRING 'MosaicLevy' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x04, // STORE_NAME 'MosaicLevy' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x05, // LOAD_CONST_STRING 'Mosaic' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x05, // STORE_NAME 'Mosaic' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x06, // STORE_NAME 'mosaics_iterator' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_mosaic_nem_mosaics__lt_module_gt_ +// frozen bytecode for file apps/nem/mosaic/nem_mosaics.py, scope apps_nem_mosaic_nem_mosaics_MosaicLevy +static const byte fun_data_apps_nem_mosaic_nem_mosaics_MosaicLevy[19] = { + 0x00,0x06, // prelude + 0x04, // names: MosaicLevy + 0x88,0x0d, // code info + 0x11,0x24, // LOAD_NAME '__name__' + 0x16,0x25, // STORE_NAME '__module__' + 0x10,0x04, // LOAD_CONST_STRING 'MosaicLevy' + 0x16,0x26, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x1a, // STORE_NAME '__init__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_mosaic_nem_mosaics_MosaicLevy +// frozen bytecode for file apps/nem/mosaic/nem_mosaics.py, scope apps_nem_mosaic_nem_mosaics_MosaicLevy___init__ +static const byte fun_data_apps_nem_mosaic_nem_mosaics_MosaicLevy___init__[32] = { + 0xb1,0x04,0x16, // prelude + 0x1a,0x27,0x1b,0x1c,0x1d,0x1e, // names: __init__, self, type, fee, namespace, mosaic + 0x80,0x14,0x24,0x24,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x1b, // STORE_ATTR 'type' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x1c, // STORE_ATTR 'fee' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x1d, // STORE_ATTR 'namespace' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x1e, // STORE_ATTR 'mosaic' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_mosaic_nem_mosaics_MosaicLevy___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_nem_mosaic_nem_mosaics_MosaicLevy___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 26, + .line_info = fun_data_apps_nem_mosaic_nem_mosaics_MosaicLevy___init__ + 9, + .line_info_top = fun_data_apps_nem_mosaic_nem_mosaics_MosaicLevy___init__ + 14, + .opcodes = fun_data_apps_nem_mosaic_nem_mosaics_MosaicLevy___init__ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_mosaic_nem_mosaics_MosaicLevy[] = { + &raw_code_apps_nem_mosaic_nem_mosaics_MosaicLevy___init__, +}; + +static const mp_raw_code_t raw_code_apps_nem_mosaic_nem_mosaics_MosaicLevy = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_mosaic_nem_mosaics_MosaicLevy, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = (void *)&children_apps_nem_mosaic_nem_mosaics_MosaicLevy, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_nem_mosaic_nem_mosaics_MosaicLevy + 3, + .line_info_top = fun_data_apps_nem_mosaic_nem_mosaics_MosaicLevy + 5, + .opcodes = fun_data_apps_nem_mosaic_nem_mosaics_MosaicLevy + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_mosaic_nem_mosaics__lt_module_gt_ +// frozen bytecode for file apps/nem/mosaic/nem_mosaics.py, scope apps_nem_mosaic_nem_mosaics_Mosaic +static const byte fun_data_apps_nem_mosaic_nem_mosaics_Mosaic[24] = { + 0x08,0x06, // prelude + 0x05, // names: Mosaic + 0x88,0x1b, // code info + 0x11,0x24, // LOAD_NAME '__name__' + 0x16,0x25, // STORE_NAME '__module__' + 0x10,0x05, // LOAD_CONST_STRING 'Mosaic' + 0x16,0x26, // STORE_NAME '__qualname__' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x1a, // STORE_NAME '__init__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_mosaic_nem_mosaics_Mosaic +// frozen bytecode for file apps/nem/mosaic/nem_mosaics.py, scope apps_nem_mosaic_nem_mosaics_Mosaic___init__ +static const byte fun_data_apps_nem_mosaic_nem_mosaics_Mosaic___init__[51] = { + 0xc8,0x80,0x05,0x22, // prelude + 0x1a,0x27,0x1f,0x20,0x1d,0x1e,0x21,0x22,0x23, // names: __init__, self, name, ticker, namespace, mosaic, divisibility, levy, networks + 0x80,0x25,0x24,0x24,0x24,0x24,0x24,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x1f, // STORE_ATTR 'name' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x20, // STORE_ATTR 'ticker' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x1d, // STORE_ATTR 'namespace' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x1e, // STORE_ATTR 'mosaic' + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x18,0x21, // STORE_ATTR 'divisibility' + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x18,0x22, // STORE_ATTR 'levy' + 0xb7, // LOAD_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x18,0x23, // STORE_ATTR 'networks' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_mosaic_nem_mosaics_Mosaic___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 8, + .fun_data = fun_data_apps_nem_mosaic_nem_mosaics_Mosaic___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 8, + .n_kwonly_args = 0, + .n_def_pos_args = 2, + .qstr_block_name_idx = 26, + .line_info = fun_data_apps_nem_mosaic_nem_mosaics_Mosaic___init__ + 13, + .line_info_top = fun_data_apps_nem_mosaic_nem_mosaics_Mosaic___init__ + 21, + .opcodes = fun_data_apps_nem_mosaic_nem_mosaics_Mosaic___init__ + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_mosaic_nem_mosaics_Mosaic[] = { + &raw_code_apps_nem_mosaic_nem_mosaics_Mosaic___init__, +}; + +static const mp_raw_code_t raw_code_apps_nem_mosaic_nem_mosaics_Mosaic = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_mosaic_nem_mosaics_Mosaic, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = (void *)&children_apps_nem_mosaic_nem_mosaics_Mosaic, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_nem_mosaic_nem_mosaics_Mosaic + 3, + .line_info_top = fun_data_apps_nem_mosaic_nem_mosaics_Mosaic + 5, + .opcodes = fun_data_apps_nem_mosaic_nem_mosaics_Mosaic + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_mosaic_nem_mosaics__lt_module_gt_ +// frozen bytecode for file apps/nem/mosaic/nem_mosaics.py, scope apps_nem_mosaic_nem_mosaics_mosaics_iterator +static const byte fun_data_apps_nem_mosaic_nem_mosaics_mosaics_iterator[166] = { + 0xd0,0x40,0x3a, // prelude + 0x06, // names: mosaics_iterator + 0x80,0x2f,0x70,0x60,0x40,0x6b,0x60,0x22,0x6b,0x40,0x46,0x8c,0x07,0x46,0x22,0x66,0x64,0x46,0x22,0x6a,0x60,0x46,0x22,0x69,0x40,0x22,0x6d,0x40, // code info + 0x12,0x05, // LOAD_GLOBAL 'Mosaic' + 0x10,0x07, // LOAD_CONST_STRING 'NEM' + 0x10,0x08, // LOAD_CONST_STRING ' XEM' + 0x10,0x09, // LOAD_CONST_STRING 'nem' + 0x10,0x0a, // LOAD_CONST_STRING 'xem' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x51, // LOAD_CONST_NONE + 0x34,0x06, // CALL_FUNCTION 6 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'Mosaic' + 0x10,0x0b, // LOAD_CONST_STRING 'DIMCOIN' + 0x10,0x0c, // LOAD_CONST_STRING ' DIM' + 0x10,0x0d, // LOAD_CONST_STRING 'dim' + 0x10,0x0e, // LOAD_CONST_STRING 'coin' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x12,0x04, // LOAD_GLOBAL 'MosaicLevy' + 0x12,0x02, // LOAD_GLOBAL 'NEMMosaicLevy' + 0x13,0x0f, // LOAD_ATTR 'MosaicLevy_Percentile' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x10,0x0d, // LOAD_CONST_STRING 'dim' + 0x10,0x0e, // LOAD_CONST_STRING 'coin' + 0x34,0x04, // CALL_FUNCTION 4 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x07, // CALL_FUNCTION 7 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'Mosaic' + 0x10,0x10, // LOAD_CONST_STRING 'DIM TOKEN' + 0x10,0x11, // LOAD_CONST_STRING ' DIMTOK' + 0x10,0x0d, // LOAD_CONST_STRING 'dim' + 0x10,0x12, // LOAD_CONST_STRING 'token' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x51, // LOAD_CONST_NONE + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x07, // CALL_FUNCTION 7 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'Mosaic' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x10,0x13, // LOAD_CONST_STRING ' BREEZE' + 0x10,0x14, // LOAD_CONST_STRING 'breeze' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x07, // CALL_FUNCTION 7 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'Mosaic' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x10,0x15, // LOAD_CONST_STRING ' PAC:HRT' + 0x10,0x16, // LOAD_CONST_STRING 'pacnem' + 0x10,0x17, // LOAD_CONST_STRING 'heart' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x07, // CALL_FUNCTION 7 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'Mosaic' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x10,0x18, // LOAD_CONST_STRING ' PAC:CHS' + 0x10,0x16, // LOAD_CONST_STRING 'pacnem' + 0x10,0x19, // LOAD_CONST_STRING 'cheese' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x12,0x04, // LOAD_GLOBAL 'MosaicLevy' + 0x12,0x02, // LOAD_GLOBAL 'NEMMosaicLevy' + 0x13,0x0f, // LOAD_ATTR 'MosaicLevy_Percentile' + 0x22,0x80,0x64, // LOAD_CONST_SMALL_INT 100 + 0x10,0x09, // LOAD_CONST_STRING 'nem' + 0x10,0x0a, // LOAD_CONST_STRING 'xem' + 0x34,0x04, // CALL_FUNCTION 4 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x07, // CALL_FUNCTION 7 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_mosaic_nem_mosaics_mosaics_iterator = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_mosaic_nem_mosaics_mosaics_iterator, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 166, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_nem_mosaic_nem_mosaics_mosaics_iterator + 4, + .line_info_top = fun_data_apps_nem_mosaic_nem_mosaics_mosaics_iterator + 32, + .opcodes = fun_data_apps_nem_mosaic_nem_mosaics_mosaics_iterator + 32, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_mosaic_nem_mosaics__lt_module_gt_[] = { + &raw_code_apps_nem_mosaic_nem_mosaics_MosaicLevy, + &raw_code_apps_nem_mosaic_nem_mosaics_Mosaic, + &raw_code_apps_nem_mosaic_nem_mosaics_mosaics_iterator, +}; + +static const mp_raw_code_t raw_code_apps_nem_mosaic_nem_mosaics__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_mosaic_nem_mosaics__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = (void *)&children_apps_nem_mosaic_nem_mosaics__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_mosaic_nem_mosaics__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_mosaic_nem_mosaics__lt_module_gt_ + 10, + .opcodes = fun_data_apps_nem_mosaic_nem_mosaics__lt_module_gt_ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_mosaic_nem_mosaics[40] = { + MP_QSTR_apps_slash_nem_slash_mosaic_slash_nem_mosaics_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_NEMMosaicLevy, + MP_QSTR_trezor_dot_enums, + MP_QSTR_MosaicLevy, + MP_QSTR_Mosaic, + MP_QSTR_mosaics_iterator, + MP_QSTR_NEM, + MP_QSTR__space_XEM, + MP_QSTR_nem, + MP_QSTR_xem, + MP_QSTR_DIMCOIN, + MP_QSTR__space_DIM, + MP_QSTR_dim, + MP_QSTR_coin, + MP_QSTR_MosaicLevy_Percentile, + MP_QSTR_DIM_space_TOKEN, + MP_QSTR__space_DIMTOK, + MP_QSTR_token, + MP_QSTR__space_BREEZE, + MP_QSTR_breeze, + MP_QSTR__space_PAC_colon_HRT, + MP_QSTR_pacnem, + MP_QSTR_heart, + MP_QSTR__space_PAC_colon_CHS, + MP_QSTR_cheese, + MP_QSTR___init__, + MP_QSTR_type, + MP_QSTR_fee, + MP_QSTR_namespace, + MP_QSTR_mosaic, + MP_QSTR_name, + MP_QSTR_ticker, + MP_QSTR_divisibility, + MP_QSTR_levy, + MP_QSTR_networks, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_self, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_nem_mosaic_nem_mosaics_0 = {{&mp_type_tuple}, 1, { + MP_ROM_INT(104), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_nem_mosaic_nem_mosaics[5] = { + MP_ROM_PTR(&const_obj_apps_nem_mosaic_nem_mosaics_0), + MP_ROM_QSTR(MP_QSTR_Breeze_space_Token), + MP_ROM_QSTR(MP_QSTR_breeze_hyphen_token), + MP_ROM_QSTR(MP_QSTR_PacNEM_space_Game_space_Credits), + MP_ROM_QSTR(MP_QSTR_PacNEM_space_Score_space_Tokens), +}; + +static const mp_frozen_module_t frozen_module_apps_nem_mosaic_nem_mosaics = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_mosaic_nem_mosaics, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_nem_mosaic_nem_mosaics, + }, + .rc = &raw_code_apps_nem_mosaic_nem_mosaics__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_mosaic_serialize +// - original source file: build/firmware/src/apps/nem/mosaic/serialize.mpy +// - frozen file name: apps/nem/mosaic/serialize.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/mosaic/serialize.py, scope apps_nem_mosaic_serialize__lt_module_gt_ +static const byte fun_data_apps_nem_mosaic_serialize__lt_module_gt_[57] = { + 0x20,0x16, // prelude + 0x01, // names: + 0x40,0x7e,0x60,0x20,0x80,0x09,0x84,0x35,0x84,0x14, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x02, // LOAD_CONST_STRING 'serialize_tx_common' + 0x10,0x03, // LOAD_CONST_STRING 'write_bytes_with_len' + 0x10,0x04, // LOAD_CONST_STRING 'write_uint32_le' + 0x10,0x05, // LOAD_CONST_STRING 'write_uint64_le' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x06, // IMPORT_NAME 'writers' + 0x1c,0x02, // IMPORT_FROM 'serialize_tx_common' + 0x16,0x02, // STORE_NAME 'serialize_tx_common' + 0x1c,0x03, // IMPORT_FROM 'write_bytes_with_len' + 0x16,0x03, // STORE_NAME 'write_bytes_with_len' + 0x1c,0x04, // IMPORT_FROM 'write_uint32_le' + 0x16,0x04, // STORE_NAME 'write_uint32_le' + 0x1c,0x05, // IMPORT_FROM 'write_uint64_le' + 0x16,0x05, // STORE_NAME 'write_uint64_le' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x07, // STORE_NAME 'serialize_mosaic_creation' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x19, // STORE_NAME 'serialize_mosaic_supply_change' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x1d, // STORE_NAME '_write_property' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_mosaic_serialize__lt_module_gt_ +// frozen bytecode for file apps/nem/mosaic/serialize.py, scope apps_nem_mosaic_serialize_serialize_mosaic_creation +static const byte fun_data_apps_nem_mosaic_serialize_serialize_mosaic_creation[305] = { + 0x6b,0x4e, // prelude + 0x07,0x20,0x21,0x22, // names: serialize_mosaic_creation, common, creation, public_key + 0x80,0x15,0x4b,0x48,0x25,0x27,0x44,0x25,0x2d,0x4d,0x27,0x2d,0x47,0x2b,0x2b,0x2b,0x4b,0x46,0x20,0x20,0x20,0x40,0x25,0x2d,0x4d,0x25,0x29,0x2d,0x27,0x49,0x49,0x47,0x47,0x2d,0x49, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x08, // LOAD_CONST_STRING 'NEM_TRANSACTION_TYPE_MOSAIC_CREATION' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'helpers' + 0x1c,0x08, // IMPORT_FROM 'NEM_TRANSACTION_TYPE_MOSAIC_CREATION' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'serialize_tx_common' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc4, // STORE_FAST 4 + 0x12,0x23, // LOAD_GLOBAL 'bytearray' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc5, // STORE_FAST 5 + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb5, // LOAD_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'definition' + 0xc6, // STORE_FAST 6 + 0x12,0x23, // LOAD_GLOBAL 'bytearray' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc7, // STORE_FAST 7 + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb7, // LOAD_FAST 7 + 0xb6, // LOAD_FAST 6 + 0x13,0x0b, // LOAD_ATTR 'namespace' + 0x14,0x0c, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb7, // LOAD_FAST 7 + 0xb6, // LOAD_FAST 6 + 0x13,0x0d, // LOAD_ATTR 'mosaic' + 0x14,0x0c, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb5, // LOAD_FAST 5 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x13,0x0e, // LOAD_ATTR 'description' + 0x14,0x0c, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'write_uint32_le' + 0xb5, // LOAD_FAST 5 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x1d, // LOAD_GLOBAL '_write_property' + 0xb5, // LOAD_FAST 5 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xb6, // LOAD_FAST 6 + 0x13,0x0f, // LOAD_ATTR 'divisibility' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x1d, // LOAD_GLOBAL '_write_property' + 0xb5, // LOAD_FAST 5 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xb6, // LOAD_FAST 6 + 0x13,0x10, // LOAD_ATTR 'supply' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x1d, // LOAD_GLOBAL '_write_property' + 0xb5, // LOAD_FAST 5 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xb6, // LOAD_FAST 6 + 0x13,0x11, // LOAD_ATTR 'mutable_supply' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x1d, // LOAD_GLOBAL '_write_property' + 0xb5, // LOAD_FAST 5 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xb6, // LOAD_FAST 6 + 0x13,0x12, // LOAD_ATTR 'transferable' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x13,0x13, // LOAD_ATTR 'levy' + 0x44,0xd3,0x80, // POP_JUMP_IF_FALSE 83 + 0x12,0x23, // LOAD_GLOBAL 'bytearray' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc8, // STORE_FAST 8 + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb8, // LOAD_FAST 8 + 0xb6, // LOAD_FAST 6 + 0x13,0x14, // LOAD_ATTR 'levy_namespace' + 0x14,0x0c, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb8, // LOAD_FAST 8 + 0xb6, // LOAD_FAST 6 + 0x13,0x15, // LOAD_ATTR 'levy_mosaic' + 0x14,0x0c, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x23, // LOAD_GLOBAL 'bytearray' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc9, // STORE_FAST 9 + 0x12,0x04, // LOAD_GLOBAL 'write_uint32_le' + 0xb9, // LOAD_FAST 9 + 0xb6, // LOAD_FAST 6 + 0x13,0x13, // LOAD_ATTR 'levy' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb9, // LOAD_FAST 9 + 0xb6, // LOAD_FAST 6 + 0x13,0x16, // LOAD_ATTR 'levy_address' + 0x14,0x0c, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb9, // LOAD_FAST 9 + 0xb8, // LOAD_FAST 8 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'write_uint64_le' + 0xb9, // LOAD_FAST 9 + 0xb6, // LOAD_FAST 6 + 0x13,0x17, // LOAD_ATTR 'fee' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb5, // LOAD_FAST 5 + 0xb9, // LOAD_FAST 9 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0x12,0x04, // LOAD_GLOBAL 'write_uint32_le' + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'sink' + 0x14,0x0c, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'write_uint64_le' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x17, // LOAD_ATTR 'fee' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_mosaic_serialize_serialize_mosaic_creation = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_nem_mosaic_serialize_serialize_mosaic_creation, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 305, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_nem_mosaic_serialize_serialize_mosaic_creation + 6, + .line_info_top = fun_data_apps_nem_mosaic_serialize_serialize_mosaic_creation + 41, + .opcodes = fun_data_apps_nem_mosaic_serialize_serialize_mosaic_creation + 41, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_mosaic_serialize__lt_module_gt_ +// frozen bytecode for file apps/nem/mosaic/serialize.py, scope apps_nem_mosaic_serialize_serialize_mosaic_supply_change +static const byte fun_data_apps_nem_mosaic_serialize_serialize_mosaic_supply_change[94] = { + 0x4b,0x1e, // prelude + 0x19,0x20,0x24,0x22, // names: serialize_mosaic_supply_change, common, change, public_key + 0x80,0x4a,0x4b,0x68,0x20,0x25,0x2d,0x4d,0x47,0x29,0x29, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x1a, // LOAD_CONST_STRING 'NEM_TRANSACTION_TYPE_MOSAIC_SUPPLY_CHANGE' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'helpers' + 0x1c,0x1a, // IMPORT_FROM 'NEM_TRANSACTION_TYPE_MOSAIC_SUPPLY_CHANGE' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'serialize_tx_common' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc4, // STORE_FAST 4 + 0x12,0x23, // LOAD_GLOBAL 'bytearray' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc5, // STORE_FAST 5 + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x0b, // LOAD_ATTR 'namespace' + 0x14,0x0c, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb5, // LOAD_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x13,0x0d, // LOAD_ATTR 'mosaic' + 0x14,0x0c, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'write_uint32_le' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'type' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'write_uint64_le' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x1c, // LOAD_ATTR 'delta' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_mosaic_serialize_serialize_mosaic_supply_change = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_nem_mosaic_serialize_serialize_mosaic_supply_change, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 94, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_apps_nem_mosaic_serialize_serialize_mosaic_supply_change + 6, + .line_info_top = fun_data_apps_nem_mosaic_serialize_serialize_mosaic_supply_change + 17, + .opcodes = fun_data_apps_nem_mosaic_serialize_serialize_mosaic_supply_change + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_mosaic_serialize__lt_module_gt_ +// frozen bytecode for file apps/nem/mosaic/serialize.py, scope apps_nem_mosaic_serialize__write_property +static const byte fun_data_apps_nem_mosaic_serialize__write_property[156] = { + 0x4b,0x2e, // prelude + 0x1d,0x25,0x26,0x27, // names: _write_property, w, name, value + 0x80,0x5c,0x25,0x26,0x24,0x26,0x24,0x2a,0x23,0x45,0x25,0x2a,0x28,0x29,0x27,0x26,0x26,0x35,0x27, // code info + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0xb1, // LOAD_FAST 1 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xdd, // BINARY_OP 6 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc2, // STORE_FAST 2 + 0x42,0x4a, // JUMP 10 + 0xb1, // LOAD_FAST 1 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xdd, // BINARY_OP 6 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x50, // LOAD_CONST_FALSE + 0xc2, // STORE_FAST 2 + 0x42,0x40, // JUMP 0 + 0x12,0x1b, // LOAD_GLOBAL 'type' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x28, // LOAD_GLOBAL 'bool' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb2, // LOAD_FAST 2 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x1e, // LOAD_CONST_STRING 'true' + 0xc2, // STORE_FAST 2 + 0x42,0x43, // JUMP 3 + 0x10,0x1f, // LOAD_CONST_STRING 'false' + 0xc2, // STORE_FAST 2 + 0x42,0x52, // JUMP 18 + 0x12,0x1b, // LOAD_GLOBAL 'type' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x29, // LOAD_GLOBAL 'int' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x2a, // LOAD_GLOBAL 'str' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x42,0x40, // JUMP 0 + 0x12,0x2b, // LOAD_GLOBAL 'isinstance' + 0xb2, // LOAD_FAST 2 + 0x12,0x2a, // LOAD_GLOBAL 'str' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x2c, // LOAD_GLOBAL 'ValueError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x14,0x0c, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x14,0x0c, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0x12,0x04, // LOAD_GLOBAL 'write_uint32_le' + 0xb0, // LOAD_FAST 0 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x12,0x2d, // LOAD_GLOBAL 'len' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xf2, // BINARY_OP 27 __add__ + 0x12,0x2d, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_mosaic_serialize__write_property = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_nem_mosaic_serialize__write_property, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 156, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_apps_nem_mosaic_serialize__write_property + 6, + .line_info_top = fun_data_apps_nem_mosaic_serialize__write_property + 25, + .opcodes = fun_data_apps_nem_mosaic_serialize__write_property + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_mosaic_serialize__lt_module_gt_[] = { + &raw_code_apps_nem_mosaic_serialize_serialize_mosaic_creation, + &raw_code_apps_nem_mosaic_serialize_serialize_mosaic_supply_change, + &raw_code_apps_nem_mosaic_serialize__write_property, +}; + +static const mp_raw_code_t raw_code_apps_nem_mosaic_serialize__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_mosaic_serialize__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = (void *)&children_apps_nem_mosaic_serialize__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_mosaic_serialize__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_mosaic_serialize__lt_module_gt_ + 13, + .opcodes = fun_data_apps_nem_mosaic_serialize__lt_module_gt_ + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_mosaic_serialize[46] = { + MP_QSTR_apps_slash_nem_slash_mosaic_slash_serialize_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_serialize_tx_common, + MP_QSTR_write_bytes_with_len, + MP_QSTR_write_uint32_le, + MP_QSTR_write_uint64_le, + MP_QSTR_writers, + MP_QSTR_serialize_mosaic_creation, + MP_QSTR_NEM_TRANSACTION_TYPE_MOSAIC_CREATION, + MP_QSTR_helpers, + MP_QSTR_definition, + MP_QSTR_namespace, + MP_QSTR_encode, + MP_QSTR_mosaic, + MP_QSTR_description, + MP_QSTR_divisibility, + MP_QSTR_supply, + MP_QSTR_mutable_supply, + MP_QSTR_transferable, + MP_QSTR_levy, + MP_QSTR_levy_namespace, + MP_QSTR_levy_mosaic, + MP_QSTR_levy_address, + MP_QSTR_fee, + MP_QSTR_sink, + MP_QSTR_serialize_mosaic_supply_change, + MP_QSTR_NEM_TRANSACTION_TYPE_MOSAIC_SUPPLY_CHANGE, + MP_QSTR_type, + MP_QSTR_delta, + MP_QSTR__write_property, + MP_QSTR_true, + MP_QSTR_false, + MP_QSTR_common, + MP_QSTR_creation, + MP_QSTR_public_key, + MP_QSTR_bytearray, + MP_QSTR_change, + MP_QSTR_w, + MP_QSTR_name, + MP_QSTR_value, + MP_QSTR_bool, + MP_QSTR_int, + MP_QSTR_str, + MP_QSTR_isinstance, + MP_QSTR_ValueError, + MP_QSTR_len, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_nem_mosaic_serialize_4 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_divisibility), + MP_ROM_QSTR(MP_QSTR_initialSupply), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_nem_mosaic_serialize_5 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_supplyMutable), + MP_ROM_QSTR(MP_QSTR_transferable), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_nem_mosaic_serialize[7] = { + MP_ROM_QSTR(MP_QSTR_divisibility), + MP_ROM_QSTR(MP_QSTR_initialSupply), + MP_ROM_QSTR(MP_QSTR_supplyMutable), + MP_ROM_QSTR(MP_QSTR_transferable), + MP_ROM_PTR(&const_obj_apps_nem_mosaic_serialize_4), + MP_ROM_PTR(&const_obj_apps_nem_mosaic_serialize_5), + MP_ROM_QSTR(MP_QSTR_Incompatible_space_value_space_type), +}; + +static const mp_frozen_module_t frozen_module_apps_nem_mosaic_serialize = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_mosaic_serialize, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_nem_mosaic_serialize, + }, + .rc = &raw_code_apps_nem_mosaic_serialize__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_multisig___init__ +// - original source file: build/firmware/src/apps/nem/multisig/__init__.mpy +// - frozen file name: apps/nem/multisig/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/multisig/__init__.py, scope apps_nem_multisig___init____lt_module_gt_ +static const byte fun_data_apps_nem_multisig___init____lt_module_gt_[49] = { + 0x10,0x16, // prelude + 0x01, // names: + 0x40,0x52,0x80,0x08,0x64,0x20,0x64,0x20,0x64,0x60, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x02, // LOAD_CONST_STRING 'layout' + 0x10,0x03, // LOAD_CONST_STRING 'serialize' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x04, // IMPORT_NAME '' + 0x1c,0x02, // IMPORT_FROM 'layout' + 0x16,0x02, // STORE_NAME 'layout' + 0x1c,0x03, // IMPORT_FROM 'serialize' + 0x16,0x03, // STORE_NAME 'serialize' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x05, // STORE_NAME 'ask' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x07, // STORE_NAME 'initiate' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x09, // STORE_NAME 'cosign' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x0b, // STORE_NAME 'aggregate_modification' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_multisig___init____lt_module_gt_ +// frozen bytecode for file apps/nem/multisig/__init__.py, scope apps_nem_multisig___init___ask +static const byte fun_data_apps_nem_multisig___init___ask[20] = { + 0x99,0x40,0x08, // prelude + 0x05,0x14, // names: ask, msg + 0x80,0x0d, // code info + 0x12,0x02, // LOAD_GLOBAL 'layout' + 0x14,0x06, // LOAD_METHOD 'ask_multisig' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_multisig___init___ask = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_nem_multisig___init___ask, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_nem_multisig___init___ask + 5, + .line_info_top = fun_data_apps_nem_multisig___init___ask + 7, + .opcodes = fun_data_apps_nem_multisig___init___ask + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_multisig___init____lt_module_gt_ +// frozen bytecode for file apps/nem/multisig/__init__.py, scope apps_nem_multisig___init___initiate +static const byte fun_data_apps_nem_multisig___init___initiate[18] = { + 0x3b,0x0c, // prelude + 0x07,0x11,0x15,0x16, // names: initiate, public_key, common, inner_tx + 0x80,0x11, // code info + 0x12,0x03, // LOAD_GLOBAL 'serialize' + 0x14,0x08, // LOAD_METHOD 'serialize_multisig' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_multisig___init___initiate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_nem_multisig___init___initiate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_nem_multisig___init___initiate + 6, + .line_info_top = fun_data_apps_nem_multisig___init___initiate + 8, + .opcodes = fun_data_apps_nem_multisig___init___initiate + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_multisig___init____lt_module_gt_ +// frozen bytecode for file apps/nem/multisig/__init__.py, scope apps_nem_multisig___init___cosign +static const byte fun_data_apps_nem_multisig___init___cosign[21] = { + 0xc8,0x04,0x0e, // prelude + 0x09,0x11,0x15,0x16,0x17, // names: cosign, public_key, common, inner_tx, signer + 0x80,0x17, // code info + 0x12,0x03, // LOAD_GLOBAL 'serialize' + 0x14,0x0a, // LOAD_METHOD 'serialize_multisig_signature' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x04, // CALL_METHOD 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_multisig___init___cosign = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_nem_multisig___init___cosign, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_nem_multisig___init___cosign + 8, + .line_info_top = fun_data_apps_nem_multisig___init___cosign + 10, + .opcodes = fun_data_apps_nem_multisig___init___cosign + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_multisig___init____lt_module_gt_ +// frozen bytecode for file apps/nem/multisig/__init__.py, scope apps_nem_multisig___init___aggregate_modification +static const byte fun_data_apps_nem_multisig___init___aggregate_modification[80] = { + 0xf0,0x44,0x1a, // prelude + 0x0b,0x11,0x15,0x18,0x19, // names: aggregate_modification, public_key, common, aggr, multisig + 0x80,0x20,0x2d,0x4a,0x27,0x50,0x25,0x2b, // code info + 0x12,0x02, // LOAD_GLOBAL 'layout' + 0x14,0x0c, // LOAD_METHOD 'ask_aggregate_modification' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'serialize' + 0x14,0x0d, // LOAD_METHOD 'serialize_aggregate_modification' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x0e, // LOAD_ATTR 'modifications' + 0x5f, // GET_ITER_STACK + 0x4b,0x11, // FOR_ITER 17 + 0xc5, // STORE_FAST 5 + 0x12,0x03, // LOAD_GLOBAL 'serialize' + 0x14,0x0f, // LOAD_METHOD 'write_cosignatory_modification' + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x13,0x10, // LOAD_ATTR 'type' + 0xb5, // LOAD_FAST 5 + 0x13,0x11, // LOAD_ATTR 'public_key' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x42,0x2d, // JUMP -19 + 0xb2, // LOAD_FAST 2 + 0x13,0x12, // LOAD_ATTR 'relative_change' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x03, // LOAD_GLOBAL 'serialize' + 0x14,0x13, // LOAD_METHOD 'write_minimum_cosignatories' + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x12, // LOAD_ATTR 'relative_change' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_multisig___init___aggregate_modification = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_nem_multisig___init___aggregate_modification, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 80, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_apps_nem_multisig___init___aggregate_modification + 8, + .line_info_top = fun_data_apps_nem_multisig___init___aggregate_modification + 16, + .opcodes = fun_data_apps_nem_multisig___init___aggregate_modification + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_multisig___init____lt_module_gt_[] = { + &raw_code_apps_nem_multisig___init___ask, + &raw_code_apps_nem_multisig___init___initiate, + &raw_code_apps_nem_multisig___init___cosign, + &raw_code_apps_nem_multisig___init___aggregate_modification, +}; + +static const mp_raw_code_t raw_code_apps_nem_multisig___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_multisig___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = (void *)&children_apps_nem_multisig___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_multisig___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_multisig___init____lt_module_gt_ + 13, + .opcodes = fun_data_apps_nem_multisig___init____lt_module_gt_ + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_multisig___init__[26] = { + MP_QSTR_apps_slash_nem_slash_multisig_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_layout, + MP_QSTR_serialize, + MP_QSTR_, + MP_QSTR_ask, + MP_QSTR_ask_multisig, + MP_QSTR_initiate, + MP_QSTR_serialize_multisig, + MP_QSTR_cosign, + MP_QSTR_serialize_multisig_signature, + MP_QSTR_aggregate_modification, + MP_QSTR_ask_aggregate_modification, + MP_QSTR_serialize_aggregate_modification, + MP_QSTR_modifications, + MP_QSTR_write_cosignatory_modification, + MP_QSTR_type, + MP_QSTR_public_key, + MP_QSTR_relative_change, + MP_QSTR_write_minimum_cosignatories, + MP_QSTR_msg, + MP_QSTR_common, + MP_QSTR_inner_tx, + MP_QSTR_signer, + MP_QSTR_aggr, + MP_QSTR_multisig, +}; + +static const mp_frozen_module_t frozen_module_apps_nem_multisig___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_multisig___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps_nem_multisig___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_multisig_layout +// - original source file: build/firmware/src/apps/nem/multisig/layout.mpy +// - frozen file name: apps/nem/multisig/layout.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/multisig/layout.py, scope apps_nem_multisig_layout__lt_module_gt_ +static const byte fun_data_apps_nem_multisig_layout__lt_module_gt_[37] = { + 0x08,0x12, // prelude + 0x01, // names: + 0x40,0x4c,0x80,0x08,0x84,0x0d,0x84,0x1e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'nem' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x02, // IMPORT_FROM 'nem' + 0x16,0x02, // STORE_NAME 'nem' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x04, // STORE_NAME 'ask_multisig' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0e, // STORE_NAME 'ask_aggregate_modification' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x1b, // STORE_NAME '_require_confirm_address' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_multisig_layout__lt_module_gt_ +// frozen bytecode for file apps/nem/multisig/layout.py, scope apps_nem_multisig_layout_ask_multisig +static const byte fun_data_apps_nem_multisig_layout_ask_multisig[87] = { + 0xb1,0x40,0x16, // prelude + 0x04,0x20, // names: ask_multisig, msg + 0x80,0x0d,0x4b,0x20,0x20,0x31,0x25,0x4d,0x2b, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x05, // LOAD_CONST_STRING 'require_confirm_fee' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'layout' + 0x1c,0x05, // IMPORT_FROM 'require_confirm_fee' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'nem' + 0x14,0x07, // LOAD_METHOD 'compute_address' + 0xb0, // LOAD_FAST 0 + 0x13,0x08, // LOAD_ATTR 'multisig' + 0x13,0x09, // LOAD_ATTR 'signer' + 0xb0, // LOAD_FAST 0 + 0x13,0x0a, // LOAD_ATTR 'transaction' + 0x13,0x0b, // LOAD_ATTR 'network' + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x0c, // LOAD_ATTR 'cosigning' + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x1b, // LOAD_GLOBAL '_require_confirm_address' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x4b, // JUMP 11 + 0x12,0x1b, // LOAD_GLOBAL '_require_confirm_address' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x0a, // LOAD_ATTR 'transaction' + 0x13,0x0d, // LOAD_ATTR 'fee' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_multisig_layout_ask_multisig = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_nem_multisig_layout_ask_multisig, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 87, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_nem_multisig_layout_ask_multisig + 5, + .line_info_top = fun_data_apps_nem_multisig_layout_ask_multisig + 14, + .opcodes = fun_data_apps_nem_multisig_layout_ask_multisig + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_multisig_layout__lt_module_gt_ +// frozen bytecode for file apps/nem/multisig/layout.py, scope apps_nem_multisig_layout_ask_aggregate_modification +static const byte fun_data_apps_nem_multisig_layout_ask_aggregate_modification[162] = { + 0x83,0x50,0x2a, // prelude + 0x0e,0x21,0x22,0x08, // names: ask_aggregate_modification, common, mod, multisig + 0x80,0x1e,0x4b,0x50,0x23,0x49,0x27,0x29,0x45,0x23,0x2d,0x4f,0x25,0x23,0x45,0x23,0x53, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0f, // LOAD_CONST_STRING 'NEMModificationType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'trezor.enums' + 0x1c,0x0f, // IMPORT_FROM 'NEMModificationType' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x11, // LOAD_CONST_STRING 'require_confirm_final' + 0x10,0x12, // LOAD_CONST_STRING 'require_confirm_text' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x06, // IMPORT_NAME 'layout' + 0x1c,0x11, // IMPORT_FROM 'require_confirm_final' + 0xc4, // STORE_FAST 4 + 0x1c,0x12, // IMPORT_FROM 'require_confirm_text' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb5, // LOAD_FAST 5 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x13, // LOAD_ATTR 'modifications' + 0x5f, // GET_ITER_STACK + 0x4b,0x2e, // FOR_ITER 46 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x13,0x14, // LOAD_ATTR 'type' + 0xb3, // LOAD_FAST 3 + 0x13,0x15, // LOAD_ATTR 'CosignatoryModification_Add' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x16, // LOAD_CONST_STRING 'Add' + 0xc7, // STORE_FAST 7 + 0x42,0x43, // JUMP 3 + 0x10,0x17, // LOAD_CONST_STRING 'Remove' + 0xc7, // STORE_FAST 7 + 0x12,0x02, // LOAD_GLOBAL 'nem' + 0x14,0x07, // LOAD_METHOD 'compute_address' + 0xb6, // LOAD_FAST 6 + 0x13,0x18, // LOAD_ATTR 'public_key' + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'network' + 0x36,0x02, // CALL_METHOD 2 + 0xc8, // STORE_FAST 8 + 0x12,0x1b, // LOAD_GLOBAL '_require_confirm_address' + 0xb7, // LOAD_FAST 7 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xf2, // BINARY_OP 27 __add__ + 0xb8, // LOAD_FAST 8 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x10, // JUMP -48 + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'relative_change' + 0x44,0x5e, // POP_JUMP_IF_FALSE 30 + 0xb2, // LOAD_FAST 2 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xc7, // STORE_FAST 7 + 0x42,0x43, // JUMP 3 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0xc7, // STORE_FAST 7 + 0xb5, // LOAD_FAST 5 + 0xb7, // LOAD_FAST 7 + 0x12,0x23, // LOAD_GLOBAL 'str' + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'relative_change' + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x1a, // LOAD_CONST_STRING '?' + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'fee' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_multisig_layout_ask_aggregate_modification = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_nem_multisig_layout_ask_aggregate_modification, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 162, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_nem_multisig_layout_ask_aggregate_modification + 7, + .line_info_top = fun_data_apps_nem_multisig_layout_ask_aggregate_modification + 24, + .opcodes = fun_data_apps_nem_multisig_layout_ask_aggregate_modification + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_multisig_layout__lt_module_gt_ +// frozen bytecode for file apps/nem/multisig/layout.py, scope apps_nem_multisig_layout__require_confirm_address +static const byte fun_data_apps_nem_multisig_layout__require_confirm_address[53] = { + 0xca,0x40,0x14, // prelude + 0x1b,0x24,0x25, // names: _require_confirm_address, action, address + 0x80,0x38,0x2b,0x4b,0x21,0x64,0x22, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1c, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'trezor.enums' + 0x1c,0x1c, // IMPORT_FROM 'ButtonRequestType' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1d, // LOAD_CONST_STRING 'confirm_address' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x1d, // IMPORT_FROM 'confirm_address' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0xb2, // LOAD_FAST 2 + 0x13,0x1f, // LOAD_ATTR 'ConfirmOutput' + 0x34,0x05, // CALL_FUNCTION 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_multisig_layout__require_confirm_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_nem_multisig_layout__require_confirm_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 53, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 27, + .line_info = fun_data_apps_nem_multisig_layout__require_confirm_address + 6, + .line_info_top = fun_data_apps_nem_multisig_layout__require_confirm_address + 13, + .opcodes = fun_data_apps_nem_multisig_layout__require_confirm_address + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_multisig_layout__lt_module_gt_[] = { + &raw_code_apps_nem_multisig_layout_ask_multisig, + &raw_code_apps_nem_multisig_layout_ask_aggregate_modification, + &raw_code_apps_nem_multisig_layout__require_confirm_address, +}; + +static const mp_raw_code_t raw_code_apps_nem_multisig_layout__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_multisig_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = (void *)&children_apps_nem_multisig_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_multisig_layout__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_multisig_layout__lt_module_gt_ + 11, + .opcodes = fun_data_apps_nem_multisig_layout__lt_module_gt_ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_multisig_layout[38] = { + MP_QSTR_apps_slash_nem_slash_multisig_slash_layout_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_nem, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_ask_multisig, + MP_QSTR_require_confirm_fee, + MP_QSTR_layout, + MP_QSTR_compute_address, + MP_QSTR_multisig, + MP_QSTR_signer, + MP_QSTR_transaction, + MP_QSTR_network, + MP_QSTR_cosigning, + MP_QSTR_fee, + MP_QSTR_ask_aggregate_modification, + MP_QSTR_NEMModificationType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_require_confirm_final, + MP_QSTR_require_confirm_text, + MP_QSTR_modifications, + MP_QSTR_type, + MP_QSTR_CosignatoryModification_Add, + MP_QSTR_Add, + MP_QSTR_Remove, + MP_QSTR_public_key, + MP_QSTR_relative_change, + MP_QSTR__question_, + MP_QSTR__require_confirm_address, + MP_QSTR_ButtonRequestType, + MP_QSTR_confirm_address, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_ConfirmOutput, + MP_QSTR_msg, + MP_QSTR_common, + MP_QSTR_mod, + MP_QSTR_str, + MP_QSTR_action, + MP_QSTR_address, +}; + +// constants +static const mp_obj_str_t const_obj_apps_nem_multisig_layout_3 = {{&mp_type_str}, 5378, 36, (const byte*)"\x43\x6f\x6e\x76\x65\x72\x74\x20\x61\x63\x63\x6f\x75\x6e\x74\x20\x74\x6f\x20\x6d\x75\x6c\x74\x69\x73\x69\x67\x20\x61\x63\x63\x6f\x75\x6e\x74\x3f"}; +static const mp_obj_str_t const_obj_apps_nem_multisig_layout_5 = {{&mp_type_str}, 53333, 38, (const byte*)"\x4d\x6f\x64\x69\x66\x79\x20\x74\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x63\x6f\x73\x69\x67\x6e\x61\x74\x6f\x72\x69\x65\x73\x20\x62\x79\x20"}; +static const mp_obj_str_t const_obj_apps_nem_multisig_layout_6 = {{&mp_type_str}, 3938, 29, (const byte*)"\x53\x65\x74\x20\x6d\x69\x6e\x69\x6d\x75\x6d\x20\x63\x6f\x73\x69\x67\x6e\x61\x74\x6f\x72\x69\x65\x73\x20\x74\x6f\x20"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_nem_multisig_layout[9] = { + MP_ROM_QSTR(MP_QSTR_Cosign_space_transaction_space_for), + MP_ROM_QSTR(MP_QSTR_Initiate_space_transaction_space_for), + MP_ROM_QSTR(MP_QSTR_Confirm_space_multisig_space_fee), + MP_ROM_PTR(&const_obj_apps_nem_multisig_layout_3), + MP_ROM_QSTR(MP_QSTR__space_cosignatory), + MP_ROM_PTR(&const_obj_apps_nem_multisig_layout_5), + MP_ROM_PTR(&const_obj_apps_nem_multisig_layout_6), + MP_ROM_QSTR(MP_QSTR_Confirm_space_address), + MP_ROM_QSTR(MP_QSTR_confirm_multisig), +}; + +static const mp_frozen_module_t frozen_module_apps_nem_multisig_layout = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_multisig_layout, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_nem_multisig_layout, + }, + .rc = &raw_code_apps_nem_multisig_layout__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_multisig_serialize +// - original source file: build/firmware/src/apps/nem/multisig/serialize.mpy +// - frozen file name: apps/nem/multisig/serialize.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/multisig/serialize.py, scope apps_nem_multisig_serialize__lt_module_gt_ +static const byte fun_data_apps_nem_multisig_serialize__lt_module_gt_[61] = { + 0x18,0x1a, // prelude + 0x01, // names: + 0x40,0x58,0x60,0x40,0x84,0x0a,0x84,0x14,0x84,0x10,0x84,0x08, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x02, // LOAD_CONST_STRING 'serialize_tx_common' + 0x10,0x03, // LOAD_CONST_STRING 'write_bytes_with_len' + 0x10,0x04, // LOAD_CONST_STRING 'write_uint32_le' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x05, // IMPORT_NAME 'writers' + 0x1c,0x02, // IMPORT_FROM 'serialize_tx_common' + 0x16,0x02, // STORE_NAME 'serialize_tx_common' + 0x1c,0x03, // IMPORT_FROM 'write_bytes_with_len' + 0x16,0x03, // STORE_NAME 'write_bytes_with_len' + 0x1c,0x04, // IMPORT_FROM 'write_uint32_le' + 0x16,0x04, // STORE_NAME 'write_uint32_le' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x06, // STORE_NAME 'serialize_multisig' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x09, // STORE_NAME 'serialize_multisig_signature' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x14, // STORE_NAME 'serialize_aggregate_modification' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x18, // STORE_NAME 'write_cosignatory_modification' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x19, // STORE_NAME 'write_minimum_cosignatories' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_multisig_serialize__lt_module_gt_ +// frozen bytecode for file apps/nem/multisig/serialize.py, scope apps_nem_multisig_serialize_serialize_multisig +static const byte fun_data_apps_nem_multisig_serialize_serialize_multisig[39] = { + 0x43,0x12, // prelude + 0x06,0x1a,0x1b,0x1c, // names: serialize_multisig, common, public_key, inner + 0x80,0x0c,0x4b,0x28,0x27, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x07, // LOAD_CONST_STRING 'NEM_TRANSACTION_TYPE_MULTISIG' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'helpers' + 0x1c,0x07, // IMPORT_FROM 'NEM_TRANSACTION_TYPE_MULTISIG' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'serialize_tx_common' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc4, // STORE_FAST 4 + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_multisig_serialize_serialize_multisig = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_nem_multisig_serialize_serialize_multisig, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_nem_multisig_serialize_serialize_multisig + 6, + .line_info_top = fun_data_apps_nem_multisig_serialize_serialize_multisig + 11, + .opcodes = fun_data_apps_nem_multisig_serialize_serialize_multisig + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_multisig_serialize__lt_module_gt_ +// frozen bytecode for file apps/nem/multisig/serialize.py, scope apps_nem_multisig_serialize_serialize_multisig_signature +static const byte fun_data_apps_nem_multisig_serialize_serialize_multisig_signature[111] = { + 0xf0,0x04,0x1e, // prelude + 0x09,0x1a,0x1b,0x1c,0x1d, // names: serialize_multisig_signature, common, public_key, inner, address_public_key + 0x80,0x19,0x50,0x4b,0x28,0x2f,0x4a,0x2d,0x27,0x2b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'hashlib' + 0x10,0x0b, // LOAD_CONST_STRING 'nem' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0c, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x0a, // IMPORT_FROM 'hashlib' + 0xc4, // STORE_FAST 4 + 0x1c,0x0b, // IMPORT_FROM 'nem' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x0d, // LOAD_CONST_STRING 'NEM_TRANSACTION_TYPE_MULTISIG_SIGNATURE' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'helpers' + 0x1c,0x0d, // IMPORT_FROM 'NEM_TRANSACTION_TYPE_MULTISIG_SIGNATURE' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'serialize_tx_common' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb6, // LOAD_FAST 6 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc7, // STORE_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x14,0x0e, // LOAD_METHOD 'sha3_256' + 0xb2, // LOAD_FAST 2 + 0x10,0x0f, // LOAD_CONST_STRING 'keccak' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x01, // CALL_METHOD 257 + 0x14,0x10, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc8, // STORE_FAST 8 + 0xb5, // LOAD_FAST 5 + 0x14,0x11, // LOAD_METHOD 'compute_address' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'network' + 0x36,0x02, // CALL_METHOD 2 + 0xc9, // STORE_FAST 9 + 0x12,0x04, // LOAD_GLOBAL 'write_uint32_le' + 0xb7, // LOAD_FAST 7 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x12,0x1e, // LOAD_GLOBAL 'len' + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb7, // LOAD_FAST 7 + 0xb9, // LOAD_FAST 9 + 0x14,0x13, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_multisig_serialize_serialize_multisig_signature = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_nem_multisig_serialize_serialize_multisig_signature, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 111, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_nem_multisig_serialize_serialize_multisig_signature + 8, + .line_info_top = fun_data_apps_nem_multisig_serialize_serialize_multisig_signature + 18, + .opcodes = fun_data_apps_nem_multisig_serialize_serialize_multisig_signature + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_multisig_serialize__lt_module_gt_ +// frozen bytecode for file apps/nem/multisig/serialize.py, scope apps_nem_multisig_serialize_serialize_aggregate_modification +static const byte fun_data_apps_nem_multisig_serialize_serialize_aggregate_modification[70] = { + 0x53,0x18, // prelude + 0x14,0x1a,0x1f,0x1b, // names: serialize_aggregate_modification, common, mod, public_key + 0x80,0x2a,0x4b,0x28,0x25,0x48,0x69,0x2d, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x15, // LOAD_CONST_STRING 'NEM_TRANSACTION_TYPE_AGGREGATE_MODIFICATION' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'helpers' + 0x1c,0x15, // IMPORT_FROM 'NEM_TRANSACTION_TYPE_AGGREGATE_MODIFICATION' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'network' + 0x98, // LOAD_CONST_SMALL_INT 24 + 0xf0, // BINARY_OP 25 __lshift__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xed, // BINARY_OP 22 __or__ + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'relative_change' + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'network' + 0x98, // LOAD_CONST_SMALL_INT 24 + 0xf0, // BINARY_OP 25 __lshift__ + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xed, // BINARY_OP 22 __or__ + 0xc4, // STORE_FAST 4 + 0x12,0x02, // LOAD_GLOBAL 'serialize_tx_common' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x04, // CALL_FUNCTION 4 + 0xc5, // STORE_FAST 5 + 0x12,0x04, // LOAD_GLOBAL 'write_uint32_le' + 0xb5, // LOAD_FAST 5 + 0x12,0x1e, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x17, // LOAD_ATTR 'modifications' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_multisig_serialize_serialize_aggregate_modification = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_nem_multisig_serialize_serialize_aggregate_modification, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_apps_nem_multisig_serialize_serialize_aggregate_modification + 6, + .line_info_top = fun_data_apps_nem_multisig_serialize_serialize_aggregate_modification + 14, + .opcodes = fun_data_apps_nem_multisig_serialize_serialize_aggregate_modification + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_multisig_serialize__lt_module_gt_ +// frozen bytecode for file apps/nem/multisig/serialize.py, scope apps_nem_multisig_serialize_write_cosignatory_modification +static const byte fun_data_apps_nem_multisig_serialize_write_cosignatory_modification[41] = { + 0x3b,0x10, // prelude + 0x18,0x20,0x21,0x22, // names: write_cosignatory_modification, w, cosignatory_type, cosignatory_pubkey + 0x80,0x3a,0x2f,0x27, // code info + 0x12,0x04, // LOAD_GLOBAL 'write_uint32_le' + 0xb0, // LOAD_FAST 0 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xf2, // BINARY_OP 27 __add__ + 0x12,0x1e, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'write_uint32_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_multisig_serialize_write_cosignatory_modification = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_nem_multisig_serialize_write_cosignatory_modification, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 24, + .line_info = fun_data_apps_nem_multisig_serialize_write_cosignatory_modification + 6, + .line_info_top = fun_data_apps_nem_multisig_serialize_write_cosignatory_modification + 10, + .opcodes = fun_data_apps_nem_multisig_serialize_write_cosignatory_modification + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_multisig_serialize__lt_module_gt_ +// frozen bytecode for file apps/nem/multisig/serialize.py, scope apps_nem_multisig_serialize_write_minimum_cosignatories +static const byte fun_data_apps_nem_multisig_serialize_write_minimum_cosignatories[24] = { + 0x22,0x0c, // prelude + 0x19,0x20,0x16, // names: write_minimum_cosignatories, w, relative_change + 0x80,0x40,0x27, // code info + 0x12,0x04, // LOAD_GLOBAL 'write_uint32_le' + 0xb0, // LOAD_FAST 0 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'write_uint32_le' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_multisig_serialize_write_minimum_cosignatories = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_nem_multisig_serialize_write_minimum_cosignatories, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_apps_nem_multisig_serialize_write_minimum_cosignatories + 5, + .line_info_top = fun_data_apps_nem_multisig_serialize_write_minimum_cosignatories + 8, + .opcodes = fun_data_apps_nem_multisig_serialize_write_minimum_cosignatories + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_multisig_serialize__lt_module_gt_[] = { + &raw_code_apps_nem_multisig_serialize_serialize_multisig, + &raw_code_apps_nem_multisig_serialize_serialize_multisig_signature, + &raw_code_apps_nem_multisig_serialize_serialize_aggregate_modification, + &raw_code_apps_nem_multisig_serialize_write_cosignatory_modification, + &raw_code_apps_nem_multisig_serialize_write_minimum_cosignatories, +}; + +static const mp_raw_code_t raw_code_apps_nem_multisig_serialize__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_multisig_serialize__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 61, + #endif + .children = (void *)&children_apps_nem_multisig_serialize__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_multisig_serialize__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_multisig_serialize__lt_module_gt_ + 15, + .opcodes = fun_data_apps_nem_multisig_serialize__lt_module_gt_ + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_multisig_serialize[35] = { + MP_QSTR_apps_slash_nem_slash_multisig_slash_serialize_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_serialize_tx_common, + MP_QSTR_write_bytes_with_len, + MP_QSTR_write_uint32_le, + MP_QSTR_writers, + MP_QSTR_serialize_multisig, + MP_QSTR_NEM_TRANSACTION_TYPE_MULTISIG, + MP_QSTR_helpers, + MP_QSTR_serialize_multisig_signature, + MP_QSTR_hashlib, + MP_QSTR_nem, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_NEM_TRANSACTION_TYPE_MULTISIG_SIGNATURE, + MP_QSTR_sha3_256, + MP_QSTR_keccak, + MP_QSTR_digest, + MP_QSTR_compute_address, + MP_QSTR_network, + MP_QSTR_encode, + MP_QSTR_serialize_aggregate_modification, + MP_QSTR_NEM_TRANSACTION_TYPE_AGGREGATE_MODIFICATION, + MP_QSTR_relative_change, + MP_QSTR_modifications, + MP_QSTR_write_cosignatory_modification, + MP_QSTR_write_minimum_cosignatories, + MP_QSTR_common, + MP_QSTR_public_key, + MP_QSTR_inner, + MP_QSTR_address_public_key, + MP_QSTR_len, + MP_QSTR_mod, + MP_QSTR_w, + MP_QSTR_cosignatory_type, + MP_QSTR_cosignatory_pubkey, +}; + +static const mp_frozen_module_t frozen_module_apps_nem_multisig_serialize = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_multisig_serialize, + .obj_table = NULL, + }, + .rc = &raw_code_apps_nem_multisig_serialize__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_namespace___init__ +// - original source file: build/firmware/src/apps/nem/namespace/__init__.mpy +// - frozen file name: apps/nem/namespace/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/namespace/__init__.py, scope apps_nem_namespace___init____lt_module_gt_ +static const byte fun_data_apps_nem_namespace___init____lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'namespace' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_namespace___init____lt_module_gt_ +// frozen bytecode for file apps/nem/namespace/__init__.py, scope apps_nem_namespace___init___namespace +static const byte fun_data_apps_nem_namespace___init___namespace[47] = { + 0xcb,0x40,0x10, // prelude + 0x02,0x08,0x09,0x02, // names: namespace, public_key, common, namespace + 0x80,0x0b,0x50,0x2b, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x03, // LOAD_CONST_STRING 'layout' + 0x10,0x04, // LOAD_CONST_STRING 'serialize' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x05, // IMPORT_NAME '' + 0x1c,0x03, // IMPORT_FROM 'layout' + 0xc3, // STORE_FAST 3 + 0x1c,0x04, // IMPORT_FROM 'serialize' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x06, // LOAD_METHOD 'ask_provision_namespace' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x07, // LOAD_METHOD 'serialize_provision_namespace' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_namespace___init___namespace = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_nem_namespace___init___namespace, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_nem_namespace___init___namespace + 7, + .line_info_top = fun_data_apps_nem_namespace___init___namespace + 11, + .opcodes = fun_data_apps_nem_namespace___init___namespace + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_namespace___init____lt_module_gt_[] = { + &raw_code_apps_nem_namespace___init___namespace, +}; + +static const mp_raw_code_t raw_code_apps_nem_namespace___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_namespace___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_nem_namespace___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_namespace___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_namespace___init____lt_module_gt_ + 6, + .opcodes = fun_data_apps_nem_namespace___init____lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_namespace___init__[10] = { + MP_QSTR_apps_slash_nem_slash_namespace_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_namespace, + MP_QSTR_layout, + MP_QSTR_serialize, + MP_QSTR_, + MP_QSTR_ask_provision_namespace, + MP_QSTR_serialize_provision_namespace, + MP_QSTR_public_key, + MP_QSTR_common, +}; + +static const mp_frozen_module_t frozen_module_apps_nem_namespace___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_namespace___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps_nem_namespace___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_namespace_layout +// - original source file: build/firmware/src/apps/nem/namespace/layout.mpy +// - frozen file name: apps/nem/namespace/layout.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/namespace/layout.py, scope apps_nem_namespace_layout__lt_module_gt_ +static const byte fun_data_apps_nem_namespace_layout__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'ask_provision_namespace' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_namespace_layout__lt_module_gt_ +// frozen bytecode for file apps/nem/namespace/layout.py, scope apps_nem_namespace_layout_ask_provision_namespace +static const byte fun_data_apps_nem_namespace_layout_ask_provision_namespace[117] = { + 0xca,0x40,0x1e, // prelude + 0x02,0x0a,0x08, // names: ask_provision_namespace, common, namespace + 0x80,0x09,0x75,0x60,0x25,0x20,0x27,0x4a,0x4c,0x2a,0x4a,0x4c, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x03, // LOAD_CONST_STRING 'require_confirm_content' + 0x10,0x04, // LOAD_CONST_STRING 'require_confirm_fee' + 0x10,0x05, // LOAD_CONST_STRING 'require_confirm_final' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x06, // IMPORT_NAME 'layout' + 0x1c,0x03, // IMPORT_FROM 'require_confirm_content' + 0xc2, // STORE_FAST 2 + 0x1c,0x04, // IMPORT_FROM 'require_confirm_fee' + 0xc3, // STORE_FAST 3 + 0x1c,0x05, // IMPORT_FROM 'require_confirm_final' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x07, // LOAD_ATTR 'parent' + 0x44,0x5d, // POP_JUMP_IF_FALSE 29 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x08, // LOAD_ATTR 'namespace' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x07, // LOAD_ATTR 'parent' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x02, // BUILD_LIST 2 + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x54, // JUMP 20 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x08, // LOAD_ATTR 'namespace' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2b,0x01, // BUILD_LIST 1 + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x09, // LOAD_ATTR 'fee' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'fee' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_namespace_layout_ask_provision_namespace = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_nem_namespace_layout_ask_provision_namespace, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 117, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_nem_namespace_layout_ask_provision_namespace + 6, + .line_info_top = fun_data_apps_nem_namespace_layout_ask_provision_namespace + 18, + .opcodes = fun_data_apps_nem_namespace_layout_ask_provision_namespace + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_namespace_layout__lt_module_gt_[] = { + &raw_code_apps_nem_namespace_layout_ask_provision_namespace, +}; + +static const mp_raw_code_t raw_code_apps_nem_namespace_layout__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_namespace_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_nem_namespace_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_namespace_layout__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_namespace_layout__lt_module_gt_ + 6, + .opcodes = fun_data_apps_nem_namespace_layout__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_namespace_layout[11] = { + MP_QSTR_apps_slash_nem_slash_namespace_slash_layout_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ask_provision_namespace, + MP_QSTR_require_confirm_content, + MP_QSTR_require_confirm_fee, + MP_QSTR_require_confirm_final, + MP_QSTR_layout, + MP_QSTR_parent, + MP_QSTR_namespace, + MP_QSTR_fee, + MP_QSTR_common, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_nem_namespace_layout[4] = { + MP_ROM_QSTR(MP_QSTR_Create_space_namespace), + MP_ROM_QSTR(MP_QSTR_under_space_namespace), + MP_ROM_QSTR(MP_QSTR_Confirm_space_namespace), + MP_ROM_QSTR(MP_QSTR_Confirm_space_rental_space_fee), +}; + +static const mp_frozen_module_t frozen_module_apps_nem_namespace_layout = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_namespace_layout, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_nem_namespace_layout, + }, + .rc = &raw_code_apps_nem_namespace_layout__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_namespace_serialize +// - original source file: build/firmware/src/apps/nem/namespace/serialize.mpy +// - frozen file name: apps/nem/namespace/serialize.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/namespace/serialize.py, scope apps_nem_namespace_serialize__lt_module_gt_ +static const byte fun_data_apps_nem_namespace_serialize__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'serialize_provision_namespace' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_namespace_serialize__lt_module_gt_ +// frozen bytecode for file apps/nem/namespace/serialize.py, scope apps_nem_namespace_serialize_serialize_provision_namespace +static const byte fun_data_apps_nem_namespace_serialize_serialize_provision_namespace[124] = { + 0x6b,0x24, // prelude + 0x02,0x0f,0x0d,0x10, // names: serialize_provision_namespace, common, namespace, public_key + 0x80,0x09,0x2b,0x7a,0x60,0x20,0x67,0x20,0x2c,0x28,0x2c,0x25,0x4e,0x47, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x03, // LOAD_CONST_STRING 'NEM_TRANSACTION_TYPE_PROVISION_NAMESPACE' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'helpers' + 0x1c,0x03, // IMPORT_FROM 'NEM_TRANSACTION_TYPE_PROVISION_NAMESPACE' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x05, // LOAD_CONST_STRING 'serialize_tx_common' + 0x10,0x06, // LOAD_CONST_STRING 'write_bytes_with_len' + 0x10,0x07, // LOAD_CONST_STRING 'write_uint32_le' + 0x10,0x08, // LOAD_CONST_STRING 'write_uint64_le' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x09, // IMPORT_NAME 'writers' + 0x1c,0x05, // IMPORT_FROM 'serialize_tx_common' + 0xc4, // STORE_FAST 4 + 0x1c,0x06, // IMPORT_FROM 'write_bytes_with_len' + 0xc5, // STORE_FAST 5 + 0x1c,0x07, // IMPORT_FROM 'write_uint32_le' + 0xc6, // STORE_FAST 6 + 0x1c,0x08, // IMPORT_FROM 'write_uint64_le' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc8, // STORE_FAST 8 + 0xb5, // LOAD_FAST 5 + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'sink' + 0x14,0x0b, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x0c, // LOAD_ATTR 'fee' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x0d, // LOAD_ATTR 'namespace' + 0x14,0x0b, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x0e, // LOAD_ATTR 'parent' + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb5, // LOAD_FAST 5 + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x0e, // LOAD_ATTR 'parent' + 0x14,0x0b, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_namespace_serialize_serialize_provision_namespace = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_nem_namespace_serialize_serialize_provision_namespace, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 124, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_nem_namespace_serialize_serialize_provision_namespace + 6, + .line_info_top = fun_data_apps_nem_namespace_serialize_serialize_provision_namespace + 20, + .opcodes = fun_data_apps_nem_namespace_serialize_serialize_provision_namespace + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_namespace_serialize__lt_module_gt_[] = { + &raw_code_apps_nem_namespace_serialize_serialize_provision_namespace, +}; + +static const mp_raw_code_t raw_code_apps_nem_namespace_serialize__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_namespace_serialize__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_nem_namespace_serialize__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_namespace_serialize__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_namespace_serialize__lt_module_gt_ + 6, + .opcodes = fun_data_apps_nem_namespace_serialize__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_namespace_serialize[17] = { + MP_QSTR_apps_slash_nem_slash_namespace_slash_serialize_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_serialize_provision_namespace, + MP_QSTR_NEM_TRANSACTION_TYPE_PROVISION_NAMESPACE, + MP_QSTR_helpers, + MP_QSTR_serialize_tx_common, + MP_QSTR_write_bytes_with_len, + MP_QSTR_write_uint32_le, + MP_QSTR_write_uint64_le, + MP_QSTR_writers, + MP_QSTR_sink, + MP_QSTR_encode, + MP_QSTR_fee, + MP_QSTR_namespace, + MP_QSTR_parent, + MP_QSTR_common, + MP_QSTR_public_key, +}; + +// constants +static const mp_obj_int_t const_obj_apps_nem_namespace_serialize_0 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xffff,0xffff}}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_nem_namespace_serialize[1] = { + MP_ROM_PTR(&const_obj_apps_nem_namespace_serialize_0), +}; + +static const mp_frozen_module_t frozen_module_apps_nem_namespace_serialize = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_namespace_serialize, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_nem_namespace_serialize, + }, + .rc = &raw_code_apps_nem_namespace_serialize__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_transfer___init__ +// - original source file: build/firmware/src/apps/nem/transfer/__init__.mpy +// - frozen file name: apps/nem/transfer/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/transfer/__init__.py, scope apps_nem_transfer___init____lt_module_gt_ +static const byte fun_data_apps_nem_transfer___init____lt_module_gt_[37] = { + 0x10,0x0e, // prelude + 0x01, // names: + 0x40,0x52,0x60,0x40,0x84,0x12, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x02, // LOAD_CONST_STRING 'layout' + 0x10,0x03, // LOAD_CONST_STRING 'serialize' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x04, // IMPORT_NAME '' + 0x1c,0x02, // IMPORT_FROM 'layout' + 0x16,0x02, // STORE_NAME 'layout' + 0x1c,0x03, // IMPORT_FROM 'serialize' + 0x16,0x03, // STORE_NAME 'serialize' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x05, // STORE_NAME 'transfer' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0f, // STORE_NAME 'importance_transfer' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_transfer___init____lt_module_gt_ +// frozen bytecode for file apps/nem/transfer/__init__.py, scope apps_nem_transfer___init___transfer +static const byte fun_data_apps_nem_transfer___init___transfer[95] = { + 0x91,0x54,0x1c, // prelude + 0x05,0x12,0x13,0x05,0x14,0x15, // names: transfer, public_key, common, transfer, node, chunkify + 0x80,0x10,0x2c,0x4c,0x4e,0x2c,0x27,0x33, // code info + 0x12,0x03, // LOAD_GLOBAL 'serialize' + 0x14,0x06, // LOAD_METHOD 'canonicalize_mosaics' + 0xb2, // LOAD_FAST 2 + 0x13,0x07, // LOAD_ATTR 'mosaics' + 0x36,0x01, // CALL_METHOD 1 + 0xb2, // LOAD_FAST 2 + 0x18,0x07, // STORE_ATTR 'mosaics' + 0x12,0x03, // LOAD_GLOBAL 'serialize' + 0x14,0x08, // LOAD_METHOD 'get_transfer_payload' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc5, // STORE_FAST 5 + 0xc6, // STORE_FAST 6 + 0x12,0x02, // LOAD_GLOBAL 'layout' + 0x14,0x09, // LOAD_METHOD 'ask_transfer' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb6, // LOAD_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x36,0x04, // CALL_METHOD 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'serialize' + 0x14,0x0a, // LOAD_METHOD 'serialize_transfer' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0x36,0x05, // CALL_METHOD 5 + 0xc7, // STORE_FAST 7 + 0xb2, // LOAD_FAST 2 + 0x13,0x07, // LOAD_ATTR 'mosaics' + 0x5f, // GET_ITER_STACK + 0x4b,0x14, // FOR_ITER 20 + 0xc8, // STORE_FAST 8 + 0x12,0x03, // LOAD_GLOBAL 'serialize' + 0x14,0x0b, // LOAD_METHOD 'serialize_mosaic' + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0x13,0x0c, // LOAD_ATTR 'namespace' + 0xb8, // LOAD_FAST 8 + 0x13,0x0d, // LOAD_ATTR 'mosaic' + 0xb8, // LOAD_FAST 8 + 0x13,0x0e, // LOAD_ATTR 'quantity' + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0x42,0x2a, // JUMP -22 + 0xb7, // LOAD_FAST 7 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_transfer___init___transfer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_apps_nem_transfer___init___transfer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 95, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_nem_transfer___init___transfer + 9, + .line_info_top = fun_data_apps_nem_transfer___init___transfer + 17, + .opcodes = fun_data_apps_nem_transfer___init___transfer + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_transfer___init____lt_module_gt_ +// frozen bytecode for file apps/nem/transfer/__init__.py, scope apps_nem_transfer___init___importance_transfer +static const byte fun_data_apps_nem_transfer___init___importance_transfer[32] = { + 0xbb,0x40,0x0e, // prelude + 0x0f,0x12,0x13,0x16, // names: importance_transfer, public_key, common, imp + 0x80,0x20,0x2c, // code info + 0x12,0x02, // LOAD_GLOBAL 'layout' + 0x14,0x10, // LOAD_METHOD 'ask_importance_transfer' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'serialize' + 0x14,0x11, // LOAD_METHOD 'serialize_importance_transfer' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_transfer___init___importance_transfer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_nem_transfer___init___importance_transfer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_nem_transfer___init___importance_transfer + 7, + .line_info_top = fun_data_apps_nem_transfer___init___importance_transfer + 10, + .opcodes = fun_data_apps_nem_transfer___init___importance_transfer + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_transfer___init____lt_module_gt_[] = { + &raw_code_apps_nem_transfer___init___transfer, + &raw_code_apps_nem_transfer___init___importance_transfer, +}; + +static const mp_raw_code_t raw_code_apps_nem_transfer___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_transfer___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = (void *)&children_apps_nem_transfer___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_transfer___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_transfer___init____lt_module_gt_ + 9, + .opcodes = fun_data_apps_nem_transfer___init____lt_module_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_transfer___init__[23] = { + MP_QSTR_apps_slash_nem_slash_transfer_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_layout, + MP_QSTR_serialize, + MP_QSTR_, + MP_QSTR_transfer, + MP_QSTR_canonicalize_mosaics, + MP_QSTR_mosaics, + MP_QSTR_get_transfer_payload, + MP_QSTR_ask_transfer, + MP_QSTR_serialize_transfer, + MP_QSTR_serialize_mosaic, + MP_QSTR_namespace, + MP_QSTR_mosaic, + MP_QSTR_quantity, + MP_QSTR_importance_transfer, + MP_QSTR_ask_importance_transfer, + MP_QSTR_serialize_importance_transfer, + MP_QSTR_public_key, + MP_QSTR_common, + MP_QSTR_node, + MP_QSTR_chunkify, + MP_QSTR_imp, +}; + +static const mp_frozen_module_t frozen_module_apps_nem_transfer___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_transfer___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps_nem_transfer___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_transfer_layout +// - original source file: build/firmware/src/apps/nem/transfer/layout.mpy +// - frozen file name: apps/nem/transfer/layout.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/transfer/layout.py, scope apps_nem_transfer_layout__lt_module_gt_ +static const byte fun_data_apps_nem_transfer_layout__lt_module_gt_[95] = { + 0x08,0x1e, // prelude + 0x01, // names: + 0x40,0x2c,0x4c,0x2c,0x2c,0x4c,0x80,0x09,0x84,0x21,0x84,0x43,0x84,0x0c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x02, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x02, // STORE_NAME 'ButtonRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'format_amount' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.strings' + 0x1c,0x04, // IMPORT_FROM 'format_amount' + 0x16,0x04, // STORE_NAME 'format_amount' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x06, // LOAD_CONST_STRING 'NEM_MOSAIC_AMOUNT_DIVISOR' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'helpers' + 0x1c,0x06, // IMPORT_FROM 'NEM_MOSAIC_AMOUNT_DIVISOR' + 0x16,0x06, // STORE_NAME 'NEM_MOSAIC_AMOUNT_DIVISOR' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x08, // LOAD_CONST_STRING 'require_confirm_final' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'layout' + 0x1c,0x08, // IMPORT_FROM 'require_confirm_final' + 0x16,0x08, // STORE_NAME 'require_confirm_final' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x0a, // LOAD_CONST_STRING 'is_nem_xem_mosaic' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'mosaic.helpers' + 0x1c,0x0a, // IMPORT_FROM 'is_nem_xem_mosaic' + 0x16,0x0a, // STORE_NAME 'is_nem_xem_mosaic' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0c, // STORE_NAME 'ask_transfer' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x1b, // STORE_NAME '_ask_transfer_mosaic' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x2e, // STORE_NAME '_get_xem_amount' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x2f, // STORE_NAME 'ask_importance_transfer' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_transfer_layout__lt_module_gt_ +// frozen bytecode for file apps/nem/transfer/layout.py, scope apps_nem_transfer_layout_ask_transfer +static const byte fun_data_apps_nem_transfer_layout_ask_transfer[155] = { + 0xf8,0x44,0x2c, // prelude + 0x0c,0x36,0x37,0x38,0x19, // names: ask_transfer, common, transfer, encrypted, chunkify + 0x80,0x18,0x50,0x4b,0x45,0x21,0x22,0x22,0x2b,0x29,0x6a,0x27,0x6d,0x21,0x23,0x7a,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'confirm_output' + 0x10,0x0e, // LOAD_CONST_STRING 'confirm_text' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0f, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x0d, // IMPORT_FROM 'confirm_output' + 0xc4, // STORE_FAST 4 + 0x1c,0x0e, // IMPORT_FROM 'confirm_text' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x10, // LOAD_CONST_STRING 'NEM_MAX_DIVISIBILITY' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'helpers' + 0x1c,0x10, // IMPORT_FROM 'NEM_MAX_DIVISIBILITY' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x11, // LOAD_ATTR 'payload' + 0x44,0x63, // POP_JUMP_IF_FALSE 35 + 0xb5, // LOAD_FAST 5 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x12,0x39, // LOAD_GLOBAL 'bytes' + 0xb1, // LOAD_FAST 1 + 0x13,0x11, // LOAD_ATTR 'payload' + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x12, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0xb2, // LOAD_FAST 2 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x10,0x13, // LOAD_CONST_STRING 'Encrypted:' + 0x42,0x42, // JUMP 2 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x12,0x02, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x14, // LOAD_ATTR 'ConfirmOutput' + 0x34,0x05, // CALL_FUNCTION 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x15, // LOAD_ATTR 'mosaics' + 0x5f, // GET_ITER_STACK + 0x4b,0x0e, // FOR_ITER 14 + 0xc7, // STORE_FAST 7 + 0x12,0x1b, // LOAD_GLOBAL '_ask_transfer_mosaic' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb7, // LOAD_FAST 7 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x30, // JUMP -16 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'recipient' + 0x10,0x17, // LOAD_CONST_STRING '{} XEM' + 0x14,0x18, // LOAD_METHOD 'format' + 0x12,0x04, // LOAD_GLOBAL 'format_amount' + 0x12,0x2e, // LOAD_GLOBAL '_get_xem_amount' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb6, // LOAD_FAST 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x19, // LOAD_CONST_STRING 'chunkify' + 0xb3, // LOAD_FAST 3 + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'require_confirm_final' + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'fee' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_transfer_layout_ask_transfer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_nem_transfer_layout_ask_transfer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 155, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_nem_transfer_layout_ask_transfer + 8, + .line_info_top = fun_data_apps_nem_transfer_layout_ask_transfer + 25, + .opcodes = fun_data_apps_nem_transfer_layout_ask_transfer + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_transfer_layout__lt_module_gt_ +// frozen bytecode for file apps/nem/transfer/layout.py, scope apps_nem_transfer_layout__ask_transfer_mosaic +static const byte fun_data_apps_nem_transfer_layout__ask_transfer_mosaic[301] = { + 0xab,0x50,0x60, // prelude + 0x1b,0x36,0x37,0x22, // names: _ask_transfer_mosaic, common, transfer, mosaic + 0x80,0x36,0x2b,0x50,0x2b,0x4b,0x27,0x42,0x2d,0x4b,0x24,0x21,0x22,0x22,0x20,0x20,0x22,0x28,0x46,0x6f,0x44,0x26,0x27,0x46,0x20,0x68,0x20,0x6d,0x21,0x22,0x22,0x6f,0x20,0x21,0x22,0x22,0x22,0x24,0x6b,0x21,0x22,0x22,0x20,0x2b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1c, // LOAD_CONST_STRING 'NEMMosaicLevy' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x1c, // IMPORT_FROM 'NEMMosaicLevy' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1d, // LOAD_CONST_STRING 'confirm_action' + 0x10,0x1e, // LOAD_CONST_STRING 'confirm_properties' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0f, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x1d, // IMPORT_FROM 'confirm_action' + 0xc4, // STORE_FAST 4 + 0x1c,0x1e, // IMPORT_FROM 'confirm_properties' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x1f, // LOAD_CONST_STRING 'NEM_LEVY_PERCENTILE_DIVISOR_ABSOLUTE' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'helpers' + 0x1c,0x1f, // IMPORT_FROM 'NEM_LEVY_PERCENTILE_DIVISOR_ABSOLUTE' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x20, // LOAD_CONST_STRING 'get_mosaic_definition' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'mosaic.helpers' + 0x1c,0x20, // IMPORT_FROM 'get_mosaic_definition' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'is_nem_xem_mosaic' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb7, // LOAD_FAST 7 + 0xb2, // LOAD_FAST 2 + 0x13,0x21, // LOAD_ATTR 'namespace' + 0xb2, // LOAD_FAST 2 + 0x13,0x22, // LOAD_ATTR 'mosaic' + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'network' + 0x34,0x03, // CALL_FUNCTION 3 + 0xc8, // STORE_FAST 8 + 0xb2, // LOAD_FAST 2 + 0x13,0x24, // LOAD_ATTR 'quantity' + 0xb1, // LOAD_FAST 1 + 0x13,0x25, // LOAD_ATTR 'amount' + 0xf4, // BINARY_OP 29 __mul__ + 0x12,0x06, // LOAD_GLOBAL 'NEM_MOSAIC_AMOUNT_DIVISOR' + 0xf6, // BINARY_OP 31 __floordiv__ + 0xc9, // STORE_FAST 9 + 0xb8, // LOAD_FAST 8 + 0x44,0xe4,0x80, // POP_JUMP_IF_FALSE 100 + 0xb5, // LOAD_FAST 5 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x12,0x04, // LOAD_GLOBAL 'format_amount' + 0xb9, // LOAD_FAST 9 + 0xb8, // LOAD_FAST 8 + 0x13,0x26, // LOAD_ATTR 'divisibility' + 0x34,0x02, // CALL_FUNCTION 2 + 0xb8, // LOAD_FAST 8 + 0x13,0x27, // LOAD_ATTR 'ticker' + 0xf2, // BINARY_OP 27 __add__ + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x28, // LOAD_CONST_STRING 'of' + 0xb8, // LOAD_FAST 8 + 0x13,0x29, // LOAD_ATTR 'name' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x13,0x2a, // LOAD_ATTR 'levy' + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x74, // POP_JUMP_IF_FALSE 52 + 0xba, // LOAD_FAST 10 + 0xb3, // LOAD_FAST 3 + 0x13,0x2b, // LOAD_ATTR 'MosaicLevy_Absolute' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xba, // LOAD_FAST 10 + 0x13,0x1a, // LOAD_ATTR 'fee' + 0xcb, // STORE_FAST 11 + 0x42,0x48, // JUMP 8 + 0xb9, // LOAD_FAST 9 + 0xba, // LOAD_FAST 10 + 0x13,0x1a, // LOAD_ATTR 'fee' + 0xf4, // BINARY_OP 29 __mul__ + 0xb6, // LOAD_FAST 6 + 0xf6, // BINARY_OP 31 __floordiv__ + 0xcb, // STORE_FAST 11 + 0x12,0x04, // LOAD_GLOBAL 'format_amount' + 0xbb, // LOAD_FAST 11 + 0xb8, // LOAD_FAST 8 + 0x13,0x26, // LOAD_ATTR 'divisibility' + 0x34,0x02, // CALL_FUNCTION 2 + 0xb8, // LOAD_FAST 8 + 0x13,0x27, // LOAD_ATTR 'ticker' + 0xf2, // BINARY_OP 27 __add__ + 0xcc, // STORE_FAST 12 + 0xb5, // LOAD_FAST 5 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0xbc, // LOAD_FAST 12 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x01, // BUILD_TUPLE 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x7e, // JUMP 62 + 0xb4, // LOAD_FAST 4 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x10,0x2c, // LOAD_CONST_STRING 'br_code' + 0x12,0x02, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x14, // LOAD_ATTR 'ConfirmOutput' + 0x34,0x82,0x04, // CALL_FUNCTION 260 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x14,0x18, // LOAD_METHOD 'format' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x28, // LOAD_CONST_STRING 'of' + 0x10,0x2d, // LOAD_CONST_STRING '{}.{}' + 0x14,0x18, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x13,0x21, // LOAD_ATTR 'namespace' + 0xb2, // LOAD_FAST 2 + 0x13,0x22, // LOAD_ATTR 'mosaic' + 0x36,0x02, // CALL_METHOD 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_transfer_layout__ask_transfer_mosaic = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_nem_transfer_layout__ask_transfer_mosaic, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 301, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 22, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 27, + .line_info = fun_data_apps_nem_transfer_layout__ask_transfer_mosaic + 7, + .line_info_top = fun_data_apps_nem_transfer_layout__ask_transfer_mosaic + 51, + .opcodes = fun_data_apps_nem_transfer_layout__ask_transfer_mosaic + 51, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_transfer_layout__lt_module_gt_ +// frozen bytecode for file apps/nem/transfer/layout.py, scope apps_nem_transfer_layout__get_xem_amount +static const byte fun_data_apps_nem_transfer_layout__get_xem_amount[49] = { + 0x39,0x12, // prelude + 0x2e,0x37, // names: _get_xem_amount, transfer + 0x80,0x78,0x25,0x44,0x27,0x27,0x4d, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'mosaics' + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'amount' + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'mosaics' + 0x5f, // GET_ITER_STACK + 0x4b,0x15, // FOR_ITER 21 + 0xc1, // STORE_FAST 1 + 0x12,0x0a, // LOAD_GLOBAL 'is_nem_xem_mosaic' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb1, // LOAD_FAST 1 + 0x13,0x24, // LOAD_ATTR 'quantity' + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'amount' + 0xf4, // BINARY_OP 29 __mul__ + 0x12,0x06, // LOAD_GLOBAL 'NEM_MOSAIC_AMOUNT_DIVISOR' + 0xf6, // BINARY_OP 31 __floordiv__ + 0x63, // RETURN_VALUE + 0x42,0x29, // JUMP -23 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_transfer_layout__get_xem_amount = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_nem_transfer_layout__get_xem_amount, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_nem_transfer_layout__get_xem_amount + 4, + .line_info_top = fun_data_apps_nem_transfer_layout__get_xem_amount + 11, + .opcodes = fun_data_apps_nem_transfer_layout__get_xem_amount + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_transfer_layout__lt_module_gt_ +// frozen bytecode for file apps/nem/transfer/layout.py, scope apps_nem_transfer_layout_ask_importance_transfer +static const byte fun_data_apps_nem_transfer_layout_ask_importance_transfer[77] = { + 0xba,0x40,0x16, // prelude + 0x2f,0x36,0x3a, // names: ask_importance_transfer, common, imp + 0x80,0x85,0x4b,0x4b,0x29,0x45,0x23,0x2b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x30, // LOAD_CONST_STRING 'NEMImportanceTransferMode' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x30, // IMPORT_FROM 'NEMImportanceTransferMode' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x31, // LOAD_CONST_STRING 'require_confirm_text' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'layout' + 0x1c,0x31, // IMPORT_FROM 'require_confirm_text' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'mode' + 0xb2, // LOAD_FAST 2 + 0x13,0x33, // LOAD_ATTR 'ImportanceTransfer_Activate' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x34, // LOAD_CONST_STRING 'Activate' + 0xc4, // STORE_FAST 4 + 0x42,0x43, // JUMP 3 + 0x10,0x35, // LOAD_CONST_STRING 'Deactivate' + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'require_confirm_final' + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'fee' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_transfer_layout_ask_importance_transfer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_nem_transfer_layout_ask_importance_transfer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 77, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_apps_nem_transfer_layout_ask_importance_transfer + 6, + .line_info_top = fun_data_apps_nem_transfer_layout_ask_importance_transfer + 14, + .opcodes = fun_data_apps_nem_transfer_layout_ask_importance_transfer + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_transfer_layout__lt_module_gt_[] = { + &raw_code_apps_nem_transfer_layout_ask_transfer, + &raw_code_apps_nem_transfer_layout__ask_transfer_mosaic, + &raw_code_apps_nem_transfer_layout__get_xem_amount, + &raw_code_apps_nem_transfer_layout_ask_importance_transfer, +}; + +static const mp_raw_code_t raw_code_apps_nem_transfer_layout__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_transfer_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 95, + #endif + .children = (void *)&children_apps_nem_transfer_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_transfer_layout__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_transfer_layout__lt_module_gt_ + 17, + .opcodes = fun_data_apps_nem_transfer_layout__lt_module_gt_ + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_transfer_layout[59] = { + MP_QSTR_apps_slash_nem_slash_transfer_slash_layout_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_format_amount, + MP_QSTR_trezor_dot_strings, + MP_QSTR_NEM_MOSAIC_AMOUNT_DIVISOR, + MP_QSTR_helpers, + MP_QSTR_require_confirm_final, + MP_QSTR_layout, + MP_QSTR_is_nem_xem_mosaic, + MP_QSTR_mosaic_dot_helpers, + MP_QSTR_ask_transfer, + MP_QSTR_confirm_output, + MP_QSTR_confirm_text, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_NEM_MAX_DIVISIBILITY, + MP_QSTR_payload, + MP_QSTR_decode, + MP_QSTR_Encrypted_colon_, + MP_QSTR_ConfirmOutput, + MP_QSTR_mosaics, + MP_QSTR_recipient, + MP_QSTR__brace_open__brace_close__space_XEM, + MP_QSTR_format, + MP_QSTR_chunkify, + MP_QSTR_fee, + MP_QSTR__ask_transfer_mosaic, + MP_QSTR_NEMMosaicLevy, + MP_QSTR_confirm_action, + MP_QSTR_confirm_properties, + MP_QSTR_NEM_LEVY_PERCENTILE_DIVISOR_ABSOLUTE, + MP_QSTR_get_mosaic_definition, + MP_QSTR_namespace, + MP_QSTR_mosaic, + MP_QSTR_network, + MP_QSTR_quantity, + MP_QSTR_amount, + MP_QSTR_divisibility, + MP_QSTR_ticker, + MP_QSTR_of, + MP_QSTR_name, + MP_QSTR_levy, + MP_QSTR_MosaicLevy_Absolute, + MP_QSTR_br_code, + MP_QSTR__brace_open__brace_close__dot__brace_open__brace_close_, + MP_QSTR__get_xem_amount, + MP_QSTR_ask_importance_transfer, + MP_QSTR_NEMImportanceTransferMode, + MP_QSTR_require_confirm_text, + MP_QSTR_mode, + MP_QSTR_ImportanceTransfer_Activate, + MP_QSTR_Activate, + MP_QSTR_Deactivate, + MP_QSTR_common, + MP_QSTR_transfer, + MP_QSTR_encrypted, + MP_QSTR_bytes, + MP_QSTR_imp, +}; + +// constants +static const mp_obj_str_t const_obj_apps_nem_transfer_layout_7 = {{&mp_type_str}, 13198, 26, (const byte*)"\x43\x6f\x6e\x66\x69\x72\x6d\x20\x6d\x6f\x73\x61\x69\x63\x0a\x6c\x65\x76\x79\x20\x66\x65\x65\x20\x6f\x66"}; +static const mp_obj_str_t const_obj_apps_nem_transfer_layout_10 = {{&mp_type_str}, 22826, 57, (const byte*)"\x44\x69\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x20\x61\x6e\x64\x20\x6c\x65\x76\x79\x20\x63\x61\x6e\x6e\x6f\x74\x20\x62\x65\x20\x73\x68\x6f\x77\x6e\x20\x66\x6f\x72\x20\x75\x6e\x6b\x6e\x6f\x77\x6e\x20\x6d\x6f\x73\x61\x69\x63\x73"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_nem_transfer_layout[14] = { + MP_ROM_QSTR(MP_QSTR_confirm_payload), + MP_ROM_QSTR(MP_QSTR_Confirm_space_payload), + MP_ROM_QSTR(MP_QSTR_Unencrypted_colon_), + MP_ROM_QSTR(MP_QSTR_confirm_mosaic), + MP_ROM_QSTR(MP_QSTR_Confirm_space_mosaic), + MP_ROM_QSTR(MP_QSTR_Confirm_space_transfer_space_of), + MP_ROM_QSTR(MP_QSTR_confirm_mosaic_levy), + MP_ROM_PTR(&const_obj_apps_nem_transfer_layout_7), + MP_ROM_QSTR(MP_QSTR_confirm_mosaic_unknown), + MP_ROM_QSTR(MP_QSTR_Unknown_space_mosaic_bang_), + MP_ROM_PTR(&const_obj_apps_nem_transfer_layout_10), + MP_ROM_QSTR(MP_QSTR_confirm_mosaic_transfer), + MP_ROM_QSTR(MP_QSTR__brace_open__brace_close__space_raw_space_units), + MP_ROM_QSTR(MP_QSTR__space_remote_space_harvesting_question_), +}; + +static const mp_frozen_module_t frozen_module_apps_nem_transfer_layout = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_transfer_layout, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_nem_transfer_layout, + }, + .rc = &raw_code_apps_nem_transfer_layout__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_nem_transfer_serialize +// - original source file: build/firmware/src/apps/nem/transfer/serialize.mpy +// - frozen file name: apps/nem/transfer/serialize.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/nem/transfer/serialize.py, scope apps_nem_transfer_serialize__lt_module_gt_ +static const byte fun_data_apps_nem_transfer_serialize__lt_module_gt_[75] = { + 0x20,0x22, // prelude + 0x01, // names: + 0x40,0x7e,0x60,0x20,0x80,0x0b,0x84,0x26,0x84,0x0c,0x84,0x0e,0x84,0x16,0x84,0x07, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x02, // LOAD_CONST_STRING 'serialize_tx_common' + 0x10,0x03, // LOAD_CONST_STRING 'write_bytes_with_len' + 0x10,0x04, // LOAD_CONST_STRING 'write_uint32_le' + 0x10,0x05, // LOAD_CONST_STRING 'write_uint64_le' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x06, // IMPORT_NAME 'writers' + 0x1c,0x02, // IMPORT_FROM 'serialize_tx_common' + 0x16,0x02, // STORE_NAME 'serialize_tx_common' + 0x1c,0x03, // IMPORT_FROM 'write_bytes_with_len' + 0x16,0x03, // STORE_NAME 'write_bytes_with_len' + 0x1c,0x04, // IMPORT_FROM 'write_uint32_le' + 0x16,0x04, // STORE_NAME 'write_uint32_le' + 0x1c,0x05, // IMPORT_FROM 'write_uint64_le' + 0x16,0x05, // STORE_NAME 'write_uint64_le' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x07, // STORE_NAME 'serialize_transfer' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0f, // STORE_NAME 'serialize_mosaic' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x10, // STORE_NAME 'serialize_importance_transfer' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x14, // STORE_NAME 'get_transfer_payload' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x1c, // STORE_NAME 'canonicalize_mosaics' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x1e, // STORE_NAME '_merge_mosaics' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_nem_transfer_serialize__lt_module_gt_ +// frozen bytecode for file apps/nem/transfer/serialize.py, scope apps_nem_transfer_serialize_serialize_transfer +static const byte fun_data_apps_nem_transfer_serialize_serialize_transfer[168] = { + 0xe9,0x04,0x30, // prelude + 0x07,0x24,0x25,0x13,0x19,0x26, // names: serialize_transfer, common, transfer, public_key, payload, encrypted + 0x80,0x1b,0x2b,0x4b,0x36,0x89,0x07,0x2d,0x49,0x43,0x2c,0x23,0x48,0x26,0x49,0x46,0x25,0x4c, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x08, // LOAD_CONST_STRING 'NEM_TRANSACTION_TYPE_TRANSFER' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'helpers' + 0x1c,0x08, // IMPORT_FROM 'NEM_TRANSACTION_TYPE_TRANSFER' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x04, // LOAD_CONST_STRING 'write_uint32_le' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'writers' + 0x1c,0x04, // IMPORT_FROM 'write_uint32_le' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'mosaics' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'network' + 0x98, // LOAD_CONST_SMALL_INT 24 + 0xf0, // BINARY_OP 25 __lshift__ + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xed, // BINARY_OP 22 __or__ + 0x42,0x47, // JUMP 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'network' + 0x98, // LOAD_CONST_SMALL_INT 24 + 0xf0, // BINARY_OP 25 __lshift__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xed, // BINARY_OP 22 __or__ + 0xc7, // STORE_FAST 7 + 0x12,0x02, // LOAD_GLOBAL 'serialize_tx_common' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb5, // LOAD_FAST 5 + 0xb7, // LOAD_FAST 7 + 0x34,0x04, // CALL_FUNCTION 4 + 0xc8, // STORE_FAST 8 + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x0c, // LOAD_ATTR 'recipient' + 0x14,0x0d, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'write_uint64_le' + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x0e, // LOAD_ATTR 'amount' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x44,0x66, // POP_JUMP_IF_FALSE 38 + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0x12,0x27, // LOAD_GLOBAL 'len' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x46, // JUMP 6 + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb8, // LOAD_FAST 8 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x46, // JUMP 6 + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'mosaics' + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0x12,0x27, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'mosaics' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb8, // LOAD_FAST 8 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_transfer_serialize_serialize_transfer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_nem_transfer_serialize_serialize_transfer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 168, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_nem_transfer_serialize_serialize_transfer + 9, + .line_info_top = fun_data_apps_nem_transfer_serialize_serialize_transfer + 27, + .opcodes = fun_data_apps_nem_transfer_serialize_serialize_transfer + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_transfer_serialize__lt_module_gt_ +// frozen bytecode for file apps/nem/transfer/serialize.py, scope apps_nem_transfer_serialize_serialize_mosaic +static const byte fun_data_apps_nem_transfer_serialize_serialize_mosaic[71] = { + 0xc8,0x04,0x1a, // prelude + 0x0f,0x28,0x1f,0x20,0x21, // names: serialize_mosaic, w, namespace, mosaic, quantity + 0x80,0x3b,0x25,0x2b,0x4b,0x25,0x27,0x47, // code info + 0x12,0x29, // LOAD_GLOBAL 'bytearray' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc4, // STORE_FAST 4 + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x14,0x0d, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x14,0x0d, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x29, // LOAD_GLOBAL 'bytearray' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc5, // STORE_FAST 5 + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb5, // LOAD_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x05, // LOAD_GLOBAL 'write_uint64_le' + 0xb5, // LOAD_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_transfer_serialize_serialize_mosaic = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_nem_transfer_serialize_serialize_mosaic, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 71, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_nem_transfer_serialize_serialize_mosaic + 8, + .line_info_top = fun_data_apps_nem_transfer_serialize_serialize_mosaic + 16, + .opcodes = fun_data_apps_nem_transfer_serialize_serialize_mosaic + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_transfer_serialize__lt_module_gt_ +// frozen bytecode for file apps/nem/transfer/serialize.py, scope apps_nem_transfer_serialize_serialize_importance_transfer +static const byte fun_data_apps_nem_transfer_serialize_serialize_importance_transfer[52] = { + 0x43,0x16, // prelude + 0x10,0x24,0x2a,0x13, // names: serialize_importance_transfer, common, imp, public_key + 0x80,0x49,0x4b,0x68,0x20,0x29,0x29, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x11, // LOAD_CONST_STRING 'NEM_TRANSACTION_TYPE_IMPORTANCE_TRANSFER' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'helpers' + 0x1c,0x11, // IMPORT_FROM 'NEM_TRANSACTION_TYPE_IMPORTANCE_TRANSFER' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'serialize_tx_common' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc4, // STORE_FAST 4 + 0x12,0x04, // LOAD_GLOBAL 'write_uint32_le' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x12, // LOAD_ATTR 'mode' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'write_bytes_with_len' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x13, // LOAD_ATTR 'public_key' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_transfer_serialize_serialize_importance_transfer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_nem_transfer_serialize_serialize_importance_transfer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 52, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_nem_transfer_serialize_serialize_importance_transfer + 6, + .line_info_top = fun_data_apps_nem_transfer_serialize_serialize_importance_transfer + 13, + .opcodes = fun_data_apps_nem_transfer_serialize_serialize_importance_transfer + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_transfer_serialize__lt_module_gt_ +// frozen bytecode for file apps/nem/transfer/serialize.py, scope apps_nem_transfer_serialize_get_transfer_payload +static const byte fun_data_apps_nem_transfer_serialize_get_transfer_payload[116] = { + 0x72,0x1e, // prelude + 0x14,0x25,0x2b, // names: get_transfer_payload, transfer, node + 0x80,0x57,0x4b,0x50,0x28,0x25,0x67,0x27,0x27,0x2e,0x46,0x45, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x15, // LOAD_CONST_STRING 'random' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x16, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x15, // IMPORT_FROM 'random' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x17, // LOAD_CONST_STRING 'AES_BLOCK_SIZE' + 0x10,0x18, // LOAD_CONST_STRING 'NEM_SALT_SIZE' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x09, // IMPORT_NAME 'helpers' + 0x1c,0x17, // IMPORT_FROM 'AES_BLOCK_SIZE' + 0xc3, // STORE_FAST 3 + 0x1c,0x18, // IMPORT_FROM 'NEM_SALT_SIZE' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'public_key' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x73, // POP_JUMP_IF_FALSE 51 + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'payload' + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x2c, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x14,0x1a, // LOAD_METHOD 'bytes' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x14,0x1a, // LOAD_METHOD 'bytes' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0xb1, // LOAD_FAST 1 + 0x14,0x1b, // LOAD_METHOD 'nem_encrypt' + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'public_key' + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'payload' + 0x36,0x04, // CALL_METHOD 4 + 0xc7, // STORE_FAST 7 + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0xf2, // BINARY_OP 27 __add__ + 0xb7, // LOAD_FAST 7 + 0xf2, // BINARY_OP 27 __add__ + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x52, // LOAD_CONST_TRUE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'payload' + 0x45,0x02, // JUMP_IF_TRUE_OR_POP 2 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x50, // LOAD_CONST_FALSE + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_transfer_serialize_get_transfer_payload = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_nem_transfer_serialize_get_transfer_payload, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 116, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_apps_nem_transfer_serialize_get_transfer_payload + 5, + .line_info_top = fun_data_apps_nem_transfer_serialize_get_transfer_payload + 17, + .opcodes = fun_data_apps_nem_transfer_serialize_get_transfer_payload + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_transfer_serialize__lt_module_gt_ +// frozen bytecode for file apps/nem/transfer/serialize.py, scope apps_nem_transfer_serialize_canonicalize_mosaics +static const byte fun_data_apps_nem_transfer_serialize_canonicalize_mosaics[37] = { + 0x21,0x0e, // prelude + 0x1c,0x0a, // names: canonicalize_mosaics, mosaics + 0x80,0x6b,0x29,0x22,0x26, // code info + 0x12,0x27, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE + 0x12,0x1e, // LOAD_GLOBAL '_merge_mosaics' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc0, // STORE_FAST 0 + 0x12,0x2d, // LOAD_GLOBAL 'sorted' + 0xb0, // LOAD_FAST 0 + 0x10,0x1d, // LOAD_CONST_STRING 'key' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x82,0x01, // CALL_FUNCTION 257 + 0x63, // RETURN_VALUE +}; +// child of apps_nem_transfer_serialize_canonicalize_mosaics +// frozen bytecode for file apps/nem/transfer/serialize.py, scope apps_nem_transfer_serialize_canonicalize_mosaics__lt_lambda_gt_ +static const byte fun_data_apps_nem_transfer_serialize_canonicalize_mosaics__lt_lambda_gt_[15] = { + 0x11,0x08, // prelude + 0x23,0x2f, // names: , m + 0x80,0x6e, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x1f, // LOAD_ATTR 'namespace' + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'mosaic' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_transfer_serialize_canonicalize_mosaics__lt_lambda_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_nem_transfer_serialize_canonicalize_mosaics__lt_lambda_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_nem_transfer_serialize_canonicalize_mosaics__lt_lambda_gt_ + 4, + .line_info_top = fun_data_apps_nem_transfer_serialize_canonicalize_mosaics__lt_lambda_gt_ + 6, + .opcodes = fun_data_apps_nem_transfer_serialize_canonicalize_mosaics__lt_lambda_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_transfer_serialize_canonicalize_mosaics[] = { + &raw_code_apps_nem_transfer_serialize_canonicalize_mosaics__lt_lambda_gt_, +}; + +static const mp_raw_code_t raw_code_apps_nem_transfer_serialize_canonicalize_mosaics = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_nem_transfer_serialize_canonicalize_mosaics, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = (void *)&children_apps_nem_transfer_serialize_canonicalize_mosaics, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_apps_nem_transfer_serialize_canonicalize_mosaics + 4, + .line_info_top = fun_data_apps_nem_transfer_serialize_canonicalize_mosaics + 9, + .opcodes = fun_data_apps_nem_transfer_serialize_canonicalize_mosaics + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_nem_transfer_serialize__lt_module_gt_ +// frozen bytecode for file apps/nem/transfer/serialize.py, scope apps_nem_transfer_serialize__merge_mosaics +static const byte fun_data_apps_nem_transfer_serialize__merge_mosaics[95] = { + 0x81,0x10,0x1e, // prelude + 0x1e,0x0a, // names: _merge_mosaics, mosaics + 0x80,0x72,0x23,0x23,0x23,0x25,0x22,0x4c,0x32,0x2d,0x24,0x23,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x43,0x43, // POP_JUMP_IF_TRUE 3 + 0x2b,0x00, // BUILD_LIST 0 + 0x63, // RETURN_VALUE + 0x2b,0x00, // BUILD_LIST 0 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x3e, // FOR_ITER 62 + 0xc2, // STORE_FAST 2 + 0x50, // LOAD_CONST_FALSE + 0xc3, // STORE_FAST 3 + 0x12,0x2e, // LOAD_GLOBAL 'enumerate' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x27, // FOR_ITER 39 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x13,0x1f, // LOAD_ATTR 'namespace' + 0xb5, // LOAD_FAST 5 + 0x13,0x1f, // LOAD_ATTR 'namespace' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0xb2, // LOAD_FAST 2 + 0x13,0x20, // LOAD_ATTR 'mosaic' + 0xb5, // LOAD_FAST 5 + 0x13,0x20, // LOAD_ATTR 'mosaic' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x55, // LOAD_SUBSCR + 0x57, // DUP_TOP + 0x13,0x21, // LOAD_ATTR 'quantity' + 0xb2, // LOAD_FAST 2 + 0x13,0x21, // LOAD_ATTR 'quantity' + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x21, // STORE_ATTR 'quantity' + 0x52, // LOAD_CONST_TRUE + 0xc3, // STORE_FAST 3 + 0x42,0x17, // JUMP -41 + 0xb3, // LOAD_FAST 3 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0xb1, // LOAD_FAST 1 + 0x14,0x22, // LOAD_METHOD 'append' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x00, // JUMP -64 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_nem_transfer_serialize__merge_mosaics = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_nem_transfer_serialize__merge_mosaics, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 95, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_apps_nem_transfer_serialize__merge_mosaics + 5, + .line_info_top = fun_data_apps_nem_transfer_serialize__merge_mosaics + 18, + .opcodes = fun_data_apps_nem_transfer_serialize__merge_mosaics + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_nem_transfer_serialize__lt_module_gt_[] = { + &raw_code_apps_nem_transfer_serialize_serialize_transfer, + &raw_code_apps_nem_transfer_serialize_serialize_mosaic, + &raw_code_apps_nem_transfer_serialize_serialize_importance_transfer, + &raw_code_apps_nem_transfer_serialize_get_transfer_payload, + &raw_code_apps_nem_transfer_serialize_canonicalize_mosaics, + &raw_code_apps_nem_transfer_serialize__merge_mosaics, +}; + +static const mp_raw_code_t raw_code_apps_nem_transfer_serialize__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_nem_transfer_serialize__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 75, + #endif + .children = (void *)&children_apps_nem_transfer_serialize__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_nem_transfer_serialize__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_nem_transfer_serialize__lt_module_gt_ + 19, + .opcodes = fun_data_apps_nem_transfer_serialize__lt_module_gt_ + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_nem_transfer_serialize[48] = { + MP_QSTR_apps_slash_nem_slash_transfer_slash_serialize_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_serialize_tx_common, + MP_QSTR_write_bytes_with_len, + MP_QSTR_write_uint32_le, + MP_QSTR_write_uint64_le, + MP_QSTR_writers, + MP_QSTR_serialize_transfer, + MP_QSTR_NEM_TRANSACTION_TYPE_TRANSFER, + MP_QSTR_helpers, + MP_QSTR_mosaics, + MP_QSTR_network, + MP_QSTR_recipient, + MP_QSTR_encode, + MP_QSTR_amount, + MP_QSTR_serialize_mosaic, + MP_QSTR_serialize_importance_transfer, + MP_QSTR_NEM_TRANSACTION_TYPE_IMPORTANCE_TRANSFER, + MP_QSTR_mode, + MP_QSTR_public_key, + MP_QSTR_get_transfer_payload, + MP_QSTR_random, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_AES_BLOCK_SIZE, + MP_QSTR_NEM_SALT_SIZE, + MP_QSTR_payload, + MP_QSTR_bytes, + MP_QSTR_nem_encrypt, + MP_QSTR_canonicalize_mosaics, + MP_QSTR_key, + MP_QSTR__merge_mosaics, + MP_QSTR_namespace, + MP_QSTR_mosaic, + MP_QSTR_quantity, + MP_QSTR_append, + MP_QSTR__lt_lambda_gt_, + MP_QSTR_common, + MP_QSTR_transfer, + MP_QSTR_encrypted, + MP_QSTR_len, + MP_QSTR_w, + MP_QSTR_bytearray, + MP_QSTR_imp, + MP_QSTR_node, + MP_QSTR_ValueError, + MP_QSTR_sorted, + MP_QSTR_enumerate, + MP_QSTR_m, +}; + +// constants +static const mp_obj_str_t const_obj_apps_nem_transfer_serialize_0 = {{&mp_type_str}, 28308, 45, (const byte*)"\x50\x75\x62\x6c\x69\x63\x20\x6b\x65\x79\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x62\x75\x74\x20\x6e\x6f\x20\x70\x61\x79\x6c\x6f\x61\x64\x20\x74\x6f\x20\x65\x6e\x63\x72\x79\x70\x74"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_nem_transfer_serialize[2] = { + MP_ROM_PTR(&const_obj_apps_nem_transfer_serialize_0), + MP_ROM_PTR(&mp_const_empty_bytes_obj), +}; + +static const mp_frozen_module_t frozen_module_apps_nem_transfer_serialize = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_nem_transfer_serialize, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_nem_transfer_serialize, + }, + .rc = &raw_code_apps_nem_transfer_serialize__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_NEMImportanceTransferMode +// - original source file: build/firmware/src/trezor/enums/NEMImportanceTransferMode.mpy +// - frozen file name: trezor/enums/NEMImportanceTransferMode.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/NEMImportanceTransferMode.py, scope trezor_enums_NEMImportanceTransferMode__lt_module_gt_ +static const byte fun_data_trezor_enums_NEMImportanceTransferMode__lt_module_gt_[14] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x60,0x20,0x23, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x02, // STORE_NAME 'ImportanceTransfer_Activate' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x03, // STORE_NAME 'ImportanceTransfer_Deactivate' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_NEMImportanceTransferMode__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_NEMImportanceTransferMode__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_NEMImportanceTransferMode__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_NEMImportanceTransferMode__lt_module_gt_ + 6, + .opcodes = fun_data_trezor_enums_NEMImportanceTransferMode__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_NEMImportanceTransferMode[4] = { + MP_QSTR_trezor_slash_enums_slash_NEMImportanceTransferMode_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ImportanceTransfer_Activate, + MP_QSTR_ImportanceTransfer_Deactivate, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_NEMImportanceTransferMode = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_NEMImportanceTransferMode, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_NEMImportanceTransferMode__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_NEMModificationType +// - original source file: build/firmware/src/trezor/enums/NEMModificationType.mpy +// - frozen file name: trezor/enums/NEMModificationType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/NEMModificationType.py, scope trezor_enums_NEMModificationType__lt_module_gt_ +static const byte fun_data_trezor_enums_NEMModificationType__lt_module_gt_[14] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x60,0x20,0x23, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x02, // STORE_NAME 'CosignatoryModification_Add' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x03, // STORE_NAME 'CosignatoryModification_Delete' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_NEMModificationType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_NEMModificationType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_NEMModificationType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_NEMModificationType__lt_module_gt_ + 6, + .opcodes = fun_data_trezor_enums_NEMModificationType__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_NEMModificationType[4] = { + MP_QSTR_trezor_slash_enums_slash_NEMModificationType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_CosignatoryModification_Add, + MP_QSTR_CosignatoryModification_Delete, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_NEMModificationType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_NEMModificationType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_NEMModificationType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_NEMMosaicLevy +// - original source file: build/firmware/src/trezor/enums/NEMMosaicLevy.mpy +// - frozen file name: trezor/enums/NEMMosaicLevy.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/NEMMosaicLevy.py, scope trezor_enums_NEMMosaicLevy__lt_module_gt_ +static const byte fun_data_trezor_enums_NEMMosaicLevy__lt_module_gt_[14] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x60,0x20,0x23, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x02, // STORE_NAME 'MosaicLevy_Absolute' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x03, // STORE_NAME 'MosaicLevy_Percentile' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_NEMMosaicLevy__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_NEMMosaicLevy__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_NEMMosaicLevy__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_NEMMosaicLevy__lt_module_gt_ + 6, + .opcodes = fun_data_trezor_enums_NEMMosaicLevy__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_NEMMosaicLevy[4] = { + MP_QSTR_trezor_slash_enums_slash_NEMMosaicLevy_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_MosaicLevy_Absolute, + MP_QSTR_MosaicLevy_Percentile, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_NEMMosaicLevy = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_NEMMosaicLevy, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_NEMMosaicLevy__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_NEMSupplyChangeType +// - original source file: build/firmware/src/trezor/enums/NEMSupplyChangeType.mpy +// - frozen file name: trezor/enums/NEMSupplyChangeType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/NEMSupplyChangeType.py, scope trezor_enums_NEMSupplyChangeType__lt_module_gt_ +static const byte fun_data_trezor_enums_NEMSupplyChangeType__lt_module_gt_[14] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x60,0x20,0x23, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x02, // STORE_NAME 'SupplyChange_Increase' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x03, // STORE_NAME 'SupplyChange_Decrease' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_NEMSupplyChangeType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_NEMSupplyChangeType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_NEMSupplyChangeType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_NEMSupplyChangeType__lt_module_gt_ + 6, + .opcodes = fun_data_trezor_enums_NEMSupplyChangeType__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_NEMSupplyChangeType[4] = { + MP_QSTR_trezor_slash_enums_slash_NEMSupplyChangeType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_SupplyChange_Increase, + MP_QSTR_SupplyChange_Decrease, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_NEMSupplyChangeType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_NEMSupplyChangeType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_NEMSupplyChangeType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ripple___init__ +// - original source file: build/firmware/src/apps/ripple/__init__.mpy +// - frozen file name: apps/ripple/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ripple/__init__.py, scope apps_ripple___init____lt_module_gt_ +static const byte fun_data_apps_ripple___init____lt_module_gt_[33] = { + 0x08,0x08, // prelude + 0x01, // names: + 0x4c,0x24,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'PATTERN_BIP44' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x02, // IMPORT_FROM 'PATTERN_BIP44' + 0x16,0x02, // STORE_NAME 'PATTERN_BIP44' + 0x59, // POP_TOP + 0x10,0x04, // LOAD_CONST_STRING 'secp256k1' + 0x16,0x05, // STORE_NAME 'CURVE' + 0x22,0x81,0x10, // LOAD_CONST_SMALL_INT 144 + 0x16,0x06, // STORE_NAME 'SLIP44_ID' + 0x11,0x02, // LOAD_NAME 'PATTERN_BIP44' + 0x16,0x07, // STORE_NAME 'PATTERN' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ripple___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ripple___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ripple___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ripple___init____lt_module_gt_ + 6, + .opcodes = fun_data_apps_ripple___init____lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ripple___init__[8] = { + MP_QSTR_apps_slash_ripple_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_PATTERN_BIP44, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_secp256k1, + MP_QSTR_CURVE, + MP_QSTR_SLIP44_ID, + MP_QSTR_PATTERN, +}; + +static const mp_frozen_module_t frozen_module_apps_ripple___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ripple___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps_ripple___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ripple_base58_ripple +// - original source file: build/firmware/src/apps/ripple/base58_ripple.mpy +// - frozen file name: apps/ripple/base58_ripple.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ripple/base58_ripple.py, scope apps_ripple_base58_ripple__lt_module_gt_ +static const byte fun_data_apps_ripple_base58_ripple__lt_module_gt_[62] = { + 0x08,0x18, // prelude + 0x01, // names: + 0x40,0x6c,0x64,0x84,0x07,0x84,0x07,0x20,0x8b,0x08,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'base58' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x02, // IMPORT_FROM 'base58' + 0x16,0x02, // STORE_NAME 'base58' + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x0c, // STORE_NAME '_ripple_alphabet' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x05, // STORE_NAME '_encode' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x07, // STORE_NAME '_decode' + 0x11,0x02, // LOAD_NAME 'base58' + 0x13,0x04, // LOAD_ATTR 'sha256d_32' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x09, // STORE_NAME 'encode_check' + 0x11,0x02, // LOAD_NAME 'base58' + 0x13,0x04, // LOAD_ATTR 'sha256d_32' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x03, // MAKE_FUNCTION_DEFARGS 3 + 0x16,0x0a, // STORE_NAME 'decode_check' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ripple_base58_ripple__lt_module_gt_ +// frozen bytecode for file apps/ripple/base58_ripple.py, scope apps_ripple_base58_ripple__encode +static const byte fun_data_apps_ripple_base58_ripple__encode[17] = { + 0x21,0x0a, // prelude + 0x05,0x0d, // names: _encode, data + 0x80,0x09,0x60, // code info + 0x12,0x02, // LOAD_GLOBAL 'base58' + 0x14,0x06, // LOAD_METHOD 'encode' + 0xb0, // LOAD_FAST 0 + 0x12,0x0c, // LOAD_GLOBAL '_ripple_alphabet' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ripple_base58_ripple__encode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_ripple_base58_ripple__encode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 5, + .line_info = fun_data_apps_ripple_base58_ripple__encode + 4, + .line_info_top = fun_data_apps_ripple_base58_ripple__encode + 7, + .opcodes = fun_data_apps_ripple_base58_ripple__encode + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ripple_base58_ripple__lt_module_gt_ +// frozen bytecode for file apps/ripple/base58_ripple.py, scope apps_ripple_base58_ripple__decode +static const byte fun_data_apps_ripple_base58_ripple__decode[17] = { + 0x21,0x0a, // prelude + 0x07,0x0e, // names: _decode, string + 0x80,0x10,0x60, // code info + 0x12,0x02, // LOAD_GLOBAL 'base58' + 0x14,0x08, // LOAD_METHOD 'decode' + 0xb0, // LOAD_FAST 0 + 0x12,0x0c, // LOAD_GLOBAL '_ripple_alphabet' + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ripple_base58_ripple__decode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_ripple_base58_ripple__decode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_ripple_base58_ripple__decode + 4, + .line_info_top = fun_data_apps_ripple_base58_ripple__decode + 7, + .opcodes = fun_data_apps_ripple_base58_ripple__decode + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ripple_base58_ripple__lt_module_gt_ +// frozen bytecode for file apps/ripple/base58_ripple.py, scope apps_ripple_base58_ripple_encode_check +static const byte fun_data_apps_ripple_base58_ripple_encode_check[20] = { + 0xaa,0x01,0x0c, // prelude + 0x09,0x0d,0x0f, // names: encode_check, data, digestfunc + 0x80,0x19,0x60, // code info + 0x12,0x05, // LOAD_GLOBAL '_encode' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ripple_base58_ripple_encode_check = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_ripple_base58_ripple_encode_check, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_ripple_base58_ripple_encode_check + 6, + .line_info_top = fun_data_apps_ripple_base58_ripple_encode_check + 9, + .opcodes = fun_data_apps_ripple_base58_ripple_encode_check + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ripple_base58_ripple__lt_module_gt_ +// frozen bytecode for file apps/ripple/base58_ripple.py, scope apps_ripple_base58_ripple_decode_check +static const byte fun_data_apps_ripple_base58_ripple_decode_check[25] = { + 0xb2,0x01,0x0e, // prelude + 0x0a,0x0e,0x0f, // names: decode_check, string, digestfunc + 0x80,0x22,0x60,0x26, // code info + 0x12,0x07, // LOAD_GLOBAL '_decode' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x12,0x02, // LOAD_GLOBAL 'base58' + 0x14,0x0b, // LOAD_METHOD 'verify_checksum' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ripple_base58_ripple_decode_check = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_ripple_base58_ripple_decode_check, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_ripple_base58_ripple_decode_check + 6, + .line_info_top = fun_data_apps_ripple_base58_ripple_decode_check + 10, + .opcodes = fun_data_apps_ripple_base58_ripple_decode_check + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ripple_base58_ripple__lt_module_gt_[] = { + &raw_code_apps_ripple_base58_ripple__encode, + &raw_code_apps_ripple_base58_ripple__decode, + &raw_code_apps_ripple_base58_ripple_encode_check, + &raw_code_apps_ripple_base58_ripple_decode_check, +}; + +static const mp_raw_code_t raw_code_apps_ripple_base58_ripple__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ripple_base58_ripple__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 62, + #endif + .children = (void *)&children_apps_ripple_base58_ripple__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ripple_base58_ripple__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ripple_base58_ripple__lt_module_gt_ + 14, + .opcodes = fun_data_apps_ripple_base58_ripple__lt_module_gt_ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ripple_base58_ripple[16] = { + MP_QSTR_apps_slash_ripple_slash_base58_ripple_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_base58, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_sha256d_32, + MP_QSTR__encode, + MP_QSTR_encode, + MP_QSTR__decode, + MP_QSTR_decode, + MP_QSTR_encode_check, + MP_QSTR_decode_check, + MP_QSTR_verify_checksum, + MP_QSTR__ripple_alphabet, + MP_QSTR_data, + MP_QSTR_string, + MP_QSTR_digestfunc, +}; + +// constants +static const mp_obj_str_t const_obj_apps_ripple_base58_ripple_0 = {{&mp_type_str}, 56830, 58, (const byte*)"\x72\x70\x73\x68\x6e\x61\x66\x33\x39\x77\x42\x55\x44\x4e\x45\x47\x48\x4a\x4b\x4c\x4d\x34\x50\x51\x52\x53\x54\x37\x56\x57\x58\x59\x5a\x32\x62\x63\x64\x65\x43\x67\x36\x35\x6a\x6b\x6d\x38\x6f\x46\x71\x69\x31\x74\x75\x76\x41\x78\x79\x7a"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_ripple_base58_ripple[1] = { + MP_ROM_PTR(&const_obj_apps_ripple_base58_ripple_0), +}; + +static const mp_frozen_module_t frozen_module_apps_ripple_base58_ripple = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ripple_base58_ripple, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_ripple_base58_ripple, + }, + .rc = &raw_code_apps_ripple_base58_ripple__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ripple_get_address +// - original source file: build/firmware/src/apps/ripple/get_address.mpy +// - frozen file name: apps/ripple/get_address.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ripple/get_address.py, scope apps_ripple_get_address__lt_module_gt_ +static const byte fun_data_apps_ripple_get_address__lt_module_gt_[33] = { + 0x08,0x0a, // prelude + 0x01, // names: + 0x40,0x4c,0x60,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'auto_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x02, // IMPORT_FROM 'auto_keychain' + 0x16,0x02, // STORE_NAME 'auto_keychain' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'auto_keychain' + 0x11,0x1c, // LOAD_NAME '__name__' + 0x34,0x01, // CALL_FUNCTION 1 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x04, // STORE_NAME 'get_address' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ripple_get_address__lt_module_gt_ +// frozen bytecode for file apps/ripple/get_address.py, scope apps_ripple_get_address_get_address +static const byte fun_data_apps_ripple_get_address_get_address[169] = { + 0xb2,0x50,0x28, // prelude + 0x04,0x1d,0x1e, // names: get_address, msg, keychain + 0x80,0x0d,0x2b,0x4b,0x4b,0x4b,0x44,0x4b,0x27,0x26,0x45,0x25,0x50,0x44,0x28,0x2e,0x6e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'RippleAddress' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.messages' + 0x1c,0x05, // IMPORT_FROM 'RippleAddress' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'show_address' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x07, // IMPORT_FROM 'show_address' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'apps.common' + 0x1c,0x09, // IMPORT_FROM 'paths' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0b, // LOAD_CONST_STRING 'address_from_public_key' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'helpers' + 0x1c,0x0b, // IMPORT_FROM 'address_from_public_key' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'address_n' + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x14,0x0e, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb6, // LOAD_FAST 6 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x0f, // LOAD_METHOD 'derive' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x14,0x10, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0xc8, // STORE_FAST 8 + 0xb5, // LOAD_FAST 5 + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'show_display' + 0x44,0x78, // POP_JUMP_IF_FALSE 56 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x12, // LOAD_CONST_STRING 'PATTERN' + 0x10,0x13, // LOAD_CONST_STRING 'SLIP44_ID' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x14, // IMPORT_NAME '' + 0x1c,0x12, // IMPORT_FROM 'PATTERN' + 0xca, // STORE_FAST 10 + 0x1c,0x13, // IMPORT_FROM 'SLIP44_ID' + 0xcb, // STORE_FAST 11 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb9, // LOAD_FAST 9 + 0x10,0x15, // LOAD_CONST_STRING 'path' + 0xb4, // LOAD_FAST 4 + 0x14,0x16, // LOAD_METHOD 'address_n_to_str' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x17, // LOAD_CONST_STRING 'account' + 0xb4, // LOAD_FAST 4 + 0x14,0x18, // LOAD_METHOD 'get_account_name' + 0x10,0x19, // LOAD_CONST_STRING 'XRP' + 0xb0, // LOAD_FAST 0 + 0x13,0x0d, // LOAD_ATTR 'address_n' + 0xba, // LOAD_FAST 10 + 0xbb, // LOAD_FAST 11 + 0x36,0x04, // CALL_METHOD 4 + 0x10,0x1a, // LOAD_CONST_STRING 'chunkify' + 0x12,0x1f, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'chunkify' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x86,0x01, // CALL_FUNCTION 769 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x10,0x1b, // LOAD_CONST_STRING 'address' + 0xb9, // LOAD_FAST 9 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ripple_get_address_get_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_ripple_get_address_get_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 169, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 23, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_ripple_get_address_get_address + 6, + .line_info_top = fun_data_apps_ripple_get_address_get_address + 23, + .opcodes = fun_data_apps_ripple_get_address_get_address + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ripple_get_address__lt_module_gt_[] = { + &raw_code_apps_ripple_get_address_get_address, +}; + +static const mp_raw_code_t raw_code_apps_ripple_get_address__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ripple_get_address__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = (void *)&children_apps_ripple_get_address__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ripple_get_address__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ripple_get_address__lt_module_gt_ + 7, + .opcodes = fun_data_apps_ripple_get_address__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ripple_get_address[32] = { + MP_QSTR_apps_slash_ripple_slash_get_address_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_auto_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_get_address, + MP_QSTR_RippleAddress, + MP_QSTR_trezor_dot_messages, + MP_QSTR_show_address, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_address_from_public_key, + MP_QSTR_helpers, + MP_QSTR_address_n, + MP_QSTR_validate_path, + MP_QSTR_derive, + MP_QSTR_public_key, + MP_QSTR_show_display, + MP_QSTR_PATTERN, + MP_QSTR_SLIP44_ID, + MP_QSTR_, + MP_QSTR_path, + MP_QSTR_address_n_to_str, + MP_QSTR_account, + MP_QSTR_get_account_name, + MP_QSTR_XRP, + MP_QSTR_chunkify, + MP_QSTR_address, + MP_QSTR___name__, + MP_QSTR_msg, + MP_QSTR_keychain, + MP_QSTR_bool, +}; + +static const mp_frozen_module_t frozen_module_apps_ripple_get_address = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ripple_get_address, + .obj_table = NULL, + }, + .rc = &raw_code_apps_ripple_get_address__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ripple_helpers +// - original source file: build/firmware/src/apps/ripple/helpers.mpy +// - frozen file name: apps/ripple/helpers.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ripple/helpers.py, scope apps_ripple_helpers__lt_module_gt_ +static const byte fun_data_apps_ripple_helpers__lt_module_gt_[72] = { + 0x08,0x18, // prelude + 0x01, // names: + 0x4c,0x6c,0x64,0x20,0x63,0x43,0x66,0x44,0x64,0x84,0x1a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING 'base58_ripple' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME '' + 0x1c,0x04, // IMPORT_FROM 'base58_ripple' + 0x16,0x04, // STORE_NAME 'base58_ripple' + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x10, // STORE_NAME 'HASH_TX_SIGN' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x16,0x11, // STORE_NAME 'DECIMALS' + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x16,0x12, // STORE_NAME 'MIN_FEE' + 0x22,0xbd,0x84,0x40, // LOAD_CONST_SMALL_INT 1000000 + 0x16,0x13, // STORE_NAME 'MAX_FEE' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x16,0x14, // STORE_NAME 'MAX_ALLOWED_AMOUNT' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x16,0x15, // STORE_NAME 'FLAG_FULLY_CANONICAL' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x06, // STORE_NAME 'address_from_public_key' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0e, // STORE_NAME 'decode_address' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ripple_helpers__lt_module_gt_ +// frozen bytecode for file apps/ripple/helpers.py, scope apps_ripple_helpers_address_from_public_key +static const byte fun_data_apps_ripple_helpers_address_from_public_key[79] = { + 0x41,0x18, // prelude + 0x06,0x16, // names: address_from_public_key, pubkey + 0x80,0x17,0x80,0x0e,0x50,0x29,0x49,0x25,0x27,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'ripemd160' + 0x10,0x08, // LOAD_CONST_STRING 'sha256' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x09, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x07, // IMPORT_FROM 'ripemd160' + 0xc1, // STORE_FAST 1 + 0x1c,0x08, // IMPORT_FROM 'sha256' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x0a, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x0a, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0x12,0x17, // LOAD_GLOBAL 'bytearray' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x14,0x0b, // LOAD_METHOD 'append' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x0c, // LOAD_METHOD 'extend' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'base58_ripple' + 0x14,0x0d, // LOAD_METHOD 'encode_check' + 0x12,0x18, // LOAD_GLOBAL 'bytes' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ripple_helpers_address_from_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_ripple_helpers_address_from_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 79, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_ripple_helpers_address_from_public_key + 4, + .line_info_top = fun_data_apps_ripple_helpers_address_from_public_key + 14, + .opcodes = fun_data_apps_ripple_helpers_address_from_public_key + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ripple_helpers__lt_module_gt_ +// frozen bytecode for file apps/ripple/helpers.py, scope apps_ripple_helpers_decode_address +static const byte fun_data_apps_ripple_helpers_decode_address[23] = { + 0x21,0x0c, // prelude + 0x0e,0x19, // names: decode_address, address + 0x80,0x31,0x20,0x28, // code info + 0x12,0x04, // LOAD_GLOBAL 'base58_ripple' + 0x14,0x0f, // LOAD_METHOD 'decode_check' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ripple_helpers_decode_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_ripple_helpers_decode_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_ripple_helpers_decode_address + 4, + .line_info_top = fun_data_apps_ripple_helpers_decode_address + 8, + .opcodes = fun_data_apps_ripple_helpers_decode_address + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ripple_helpers__lt_module_gt_[] = { + &raw_code_apps_ripple_helpers_address_from_public_key, + &raw_code_apps_ripple_helpers_decode_address, +}; + +static const mp_raw_code_t raw_code_apps_ripple_helpers__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ripple_helpers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = (void *)&children_apps_ripple_helpers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ripple_helpers__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ripple_helpers__lt_module_gt_ + 14, + .opcodes = fun_data_apps_ripple_helpers__lt_module_gt_ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ripple_helpers[26] = { + MP_QSTR_apps_slash_ripple_slash_helpers_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_base58_ripple, + MP_QSTR_, + MP_QSTR_address_from_public_key, + MP_QSTR_ripemd160, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_digest, + MP_QSTR_append, + MP_QSTR_extend, + MP_QSTR_encode_check, + MP_QSTR_decode_address, + MP_QSTR_decode_check, + MP_QSTR_HASH_TX_SIGN, + MP_QSTR_DECIMALS, + MP_QSTR_MIN_FEE, + MP_QSTR_MAX_FEE, + MP_QSTR_MAX_ALLOWED_AMOUNT, + MP_QSTR_FLAG_FULLY_CANONICAL, + MP_QSTR_pubkey, + MP_QSTR_bytearray, + MP_QSTR_bytes, + MP_QSTR_address, +}; + +// constants +static const mp_obj_int_t const_obj_apps_ripple_helpers_0 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0x5800,0x5354}}}; +static const mp_obj_int_t const_obj_apps_ripple_helpers_1 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=4, .len=4, .dig=(uint16_t*)(const uint16_t[]){0x0,0x5d8a,0x4578,0x163}}}; +static const mp_obj_int_t const_obj_apps_ripple_helpers_2 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0x0,0x8000}}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_ripple_helpers[3] = { + MP_ROM_PTR(&const_obj_apps_ripple_helpers_0), + MP_ROM_PTR(&const_obj_apps_ripple_helpers_1), + MP_ROM_PTR(&const_obj_apps_ripple_helpers_2), +}; + +static const mp_frozen_module_t frozen_module_apps_ripple_helpers = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ripple_helpers, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_ripple_helpers, + }, + .rc = &raw_code_apps_ripple_helpers__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ripple_layout +// - original source file: build/firmware/src/apps/ripple/layout.mpy +// - frozen file name: apps/ripple/layout.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ripple/layout.py, scope apps_ripple_layout__lt_module_gt_ +static const byte fun_data_apps_ripple_layout__lt_module_gt_[83] = { + 0x10,0x12, // prelude + 0x01, // names: + 0x2c,0x2c,0x52,0x6c,0x84,0x07,0x84,0x0a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x02, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x02, // STORE_NAME 'ButtonRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'format_amount' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.strings' + 0x1c,0x04, // IMPORT_FROM 'format_amount' + 0x16,0x04, // STORE_NAME 'format_amount' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'confirm_metadata' + 0x10,0x07, // LOAD_CONST_STRING 'confirm_total' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x08, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x06, // IMPORT_FROM 'confirm_metadata' + 0x16,0x06, // STORE_NAME 'confirm_metadata' + 0x1c,0x07, // IMPORT_FROM 'confirm_total' + 0x16,0x07, // STORE_NAME 'confirm_total' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x09, // LOAD_CONST_STRING 'DECIMALS' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'helpers' + 0x1c,0x09, // IMPORT_FROM 'DECIMALS' + 0x16,0x09, // STORE_NAME 'DECIMALS' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0b, // STORE_NAME 'require_confirm_total' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0d, // STORE_NAME 'require_confirm_destination_tag' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x02, // MAKE_FUNCTION_DEFARGS 2 + 0x16,0x0f, // STORE_NAME 'require_confirm_tx' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ripple_layout__lt_module_gt_ +// frozen bytecode for file apps/ripple/layout.py, scope apps_ripple_layout_require_confirm_total +static const byte fun_data_apps_ripple_layout_require_confirm_total[40] = { + 0xb2,0x40,0x0e, // prelude + 0x0b,0x12,0x13, // names: require_confirm_total, total, fee + 0x80,0x08,0x22,0x2a, // code info + 0x12,0x07, // LOAD_GLOBAL 'confirm_total' + 0x12,0x04, // LOAD_GLOBAL 'format_amount' + 0xb0, // LOAD_FAST 0 + 0x12,0x09, // LOAD_GLOBAL 'DECIMALS' + 0x34,0x02, // CALL_FUNCTION 2 + 0x10,0x0c, // LOAD_CONST_STRING ' XRP' + 0xf2, // BINARY_OP 27 __add__ + 0x12,0x04, // LOAD_GLOBAL 'format_amount' + 0xb1, // LOAD_FAST 1 + 0x12,0x09, // LOAD_GLOBAL 'DECIMALS' + 0x34,0x02, // CALL_FUNCTION 2 + 0x10,0x0c, // LOAD_CONST_STRING ' XRP' + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ripple_layout_require_confirm_total = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_ripple_layout_require_confirm_total, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 40, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_apps_ripple_layout_require_confirm_total + 6, + .line_info_top = fun_data_apps_ripple_layout_require_confirm_total + 10, + .opcodes = fun_data_apps_ripple_layout_require_confirm_total + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ripple_layout__lt_module_gt_ +// frozen bytecode for file apps/ripple/layout.py, scope apps_ripple_layout_require_confirm_destination_tag +static const byte fun_data_apps_ripple_layout_require_confirm_destination_tag[37] = { + 0xb1,0x40,0x12, // prelude + 0x0d,0x14, // names: require_confirm_destination_tag, tag + 0x80,0x0f,0x22,0x22,0x22,0x22,0x25, // code info + 0x12,0x06, // LOAD_GLOBAL 'confirm_metadata' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x12,0x15, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x02, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x0e, // LOAD_ATTR 'ConfirmOutput' + 0x34,0x05, // CALL_FUNCTION 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ripple_layout_require_confirm_destination_tag = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_ripple_layout_require_confirm_destination_tag, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_ripple_layout_require_confirm_destination_tag + 5, + .line_info_top = fun_data_apps_ripple_layout_require_confirm_destination_tag + 12, + .opcodes = fun_data_apps_ripple_layout_require_confirm_destination_tag + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ripple_layout__lt_module_gt_ +// frozen bytecode for file apps/ripple/layout.py, scope apps_ripple_layout_require_confirm_tx +static const byte fun_data_apps_ripple_layout_require_confirm_tx[45] = { + 0xc3,0x41,0x0e, // prelude + 0x0f,0x16,0x17,0x11, // names: require_confirm_tx, to, value, chunkify + 0x80,0x19,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'confirm_output' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x10, // IMPORT_FROM 'confirm_output' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x12,0x04, // LOAD_GLOBAL 'format_amount' + 0xb1, // LOAD_FAST 1 + 0x12,0x09, // LOAD_GLOBAL 'DECIMALS' + 0x34,0x02, // CALL_FUNCTION 2 + 0x10,0x0c, // LOAD_CONST_STRING ' XRP' + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x11, // LOAD_CONST_STRING 'chunkify' + 0xb2, // LOAD_FAST 2 + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ripple_layout_require_confirm_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_ripple_layout_require_confirm_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_ripple_layout_require_confirm_tx + 7, + .line_info_top = fun_data_apps_ripple_layout_require_confirm_tx + 10, + .opcodes = fun_data_apps_ripple_layout_require_confirm_tx + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ripple_layout__lt_module_gt_[] = { + &raw_code_apps_ripple_layout_require_confirm_total, + &raw_code_apps_ripple_layout_require_confirm_destination_tag, + &raw_code_apps_ripple_layout_require_confirm_tx, +}; + +static const mp_raw_code_t raw_code_apps_ripple_layout__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ripple_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 83, + #endif + .children = (void *)&children_apps_ripple_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ripple_layout__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ripple_layout__lt_module_gt_ + 11, + .opcodes = fun_data_apps_ripple_layout__lt_module_gt_ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ripple_layout[24] = { + MP_QSTR_apps_slash_ripple_slash_layout_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_format_amount, + MP_QSTR_trezor_dot_strings, + MP_QSTR_confirm_metadata, + MP_QSTR_confirm_total, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_DECIMALS, + MP_QSTR_helpers, + MP_QSTR_require_confirm_total, + MP_QSTR__space_XRP, + MP_QSTR_require_confirm_destination_tag, + MP_QSTR_ConfirmOutput, + MP_QSTR_require_confirm_tx, + MP_QSTR_confirm_output, + MP_QSTR_chunkify, + MP_QSTR_total, + MP_QSTR_fee, + MP_QSTR_tag, + MP_QSTR_str, + MP_QSTR_to, + MP_QSTR_value, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_ripple_layout[3] = { + MP_ROM_QSTR(MP_QSTR_confirm_destination_tag), + MP_ROM_QSTR(MP_QSTR_Confirm_space_tag), + MP_ROM_QSTR(MP_QSTR_Destination_space_tag_colon__0x0a__brace_open__brace_close_), +}; + +static const mp_frozen_module_t frozen_module_apps_ripple_layout = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ripple_layout, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_ripple_layout, + }, + .rc = &raw_code_apps_ripple_layout__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ripple_serialize +// - original source file: build/firmware/src/apps/ripple/serialize.mpy +// - frozen file name: apps/ripple/serialize.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ripple/serialize.py, scope apps_ripple_serialize__lt_module_gt_ +static const byte fun_data_apps_ripple_serialize__lt_module_gt_[48] = { + 0x08,0x18, // prelude + 0x01, // names: + 0x80,0x0a,0x6c,0x80,0x0c,0x88,0x1b,0x84,0x2d,0x84,0x1b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x04, // STORE_NAME 'serialize' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0d, // STORE_NAME '_write' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x16, // STORE_NAME 'write_bytes_varint' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x17, // STORE_NAME 'rshift' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ripple_serialize__lt_module_gt_ +// frozen bytecode for file apps/ripple/serialize.py, scope apps_ripple_serialize_serialize +static const byte fun_data_apps_ripple_serialize_serialize[127] = { + 0xa8,0x15,0x2c, // prelude + 0x04,0x18,0x19,0x1a,0x1b, // names: serialize, msg, source_address, pubkey, signature + 0x80,0x20,0x20,0x22,0x27,0x27,0x29,0x27,0x29,0x27,0x25,0x25,0x25,0x6c,0x25,0x29,0x2b, // code info + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x05, // LOAD_ATTR 'flags' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x06, // LOAD_ATTR 'sequence' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x8e, // LOAD_CONST_SMALL_INT 14 + 0xb0, // LOAD_FAST 0 + 0x13,0x07, // LOAD_ATTR 'payment' + 0x13,0x08, // LOAD_ATTR 'destination_tag' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x9b, // LOAD_CONST_SMALL_INT 27 + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'last_ledger_sequence' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x07, // LOAD_ATTR 'payment' + 0x13,0x0a, // LOAD_ATTR 'amount' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x0b, // LOAD_ATTR 'fee' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xb2, // LOAD_FAST 2 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xb3, // LOAD_FAST 3 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb1, // LOAD_FAST 1 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x07, // LOAD_ATTR 'payment' + 0x13,0x0c, // LOAD_ATTR 'destination' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x2a,0x0b, // BUILD_TUPLE 11 + 0xc4, // STORE_FAST 4 + 0x12,0x1c, // LOAD_GLOBAL 'bytearray' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x5f, // GET_ITER_STACK + 0x4b,0x10, // FOR_ITER 16 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc6, // STORE_FAST 6 + 0xc7, // STORE_FAST 7 + 0xc8, // STORE_FAST 8 + 0x12,0x0d, // LOAD_GLOBAL '_write' + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0x34,0x04, // CALL_FUNCTION 4 + 0x59, // POP_TOP + 0x42,0x2e, // JUMP -18 + 0xb5, // LOAD_FAST 5 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ripple_serialize_serialize = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_ripple_serialize_serialize, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 127, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 22, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_ripple_serialize_serialize + 8, + .line_info_top = fun_data_apps_ripple_serialize_serialize + 25, + .opcodes = fun_data_apps_ripple_serialize_serialize + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ripple_serialize__lt_module_gt_ +// frozen bytecode for file apps/ripple/serialize.py, scope apps_ripple_serialize__write +static const byte fun_data_apps_ripple_serialize__write[251] = { + 0xd8,0x04,0x48, // prelude + 0x0d,0x1d,0x1e,0x1f,0x20, // names: _write, w, field_type, field_key, value + 0x80,0x37,0x4b,0x25,0x62,0x25,0x6d,0x29,0x47,0x25,0x20,0x31,0x25,0x20,0x31,0x26,0x60,0x25,0x27,0x27,0x27,0x2d,0x2a,0x4a,0x29,0x25,0x20,0x2e,0x25,0x20,0x49, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0e, // LOAD_CONST_STRING 'helpers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME '' + 0x1c,0x0e, // IMPORT_FROM 'helpers' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb0, // LOAD_FAST 0 + 0x14,0x10, // LOAD_METHOD 'append' + 0xb1, // LOAD_FAST 1 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xf0, // BINARY_OP 25 __lshift__ + 0xb2, // LOAD_FAST 2 + 0xed, // BINARY_OP 22 __or__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x50, // JUMP 16 + 0xb0, // LOAD_FAST 0 + 0x14,0x10, // LOAD_METHOD 'append' + 0xb1, // LOAD_FAST 1 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xf0, // BINARY_OP 25 __lshift__ + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x10, // LOAD_METHOD 'append' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb0, // LOAD_FAST 0 + 0x14,0x11, // LOAD_METHOD 'extend' + 0xb3, // LOAD_FAST 3 + 0x14,0x12, // LOAD_METHOD 'to_bytes' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x13, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x88,0x81, // JUMP 136 + 0xb1, // LOAD_FAST 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0xb0, // LOAD_FAST 0 + 0x14,0x11, // LOAD_METHOD 'extend' + 0xb3, // LOAD_FAST 3 + 0x14,0x12, // LOAD_METHOD 'to_bytes' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x10,0x13, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0xf2,0x80, // JUMP 114 + 0xb1, // LOAD_FAST 1 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xc4,0x80, // POP_JUMP_IF_FALSE 68 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x21, // LOAD_GLOBAL 'ValueError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x13,0x14, // LOAD_ATTR 'MAX_ALLOWED_AMOUNT' + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x21, // LOAD_GLOBAL 'ValueError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x1c, // LOAD_GLOBAL 'bytearray' + 0xb3, // LOAD_FAST 3 + 0x14,0x12, // LOAD_METHOD 'to_bytes' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x10,0x13, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x58, // DUP_TOP_TWO + 0x55, // LOAD_SUBSCR + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0xe2, // BINARY_OP 11 __iand__ + 0x5b, // ROT_THREE + 0x56, // STORE_SUBSCR + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x58, // DUP_TOP_TWO + 0x55, // LOAD_SUBSCR + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xe0, // BINARY_OP 9 __ior__ + 0x5b, // ROT_THREE + 0x56, // STORE_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x14,0x11, // LOAD_METHOD 'extend' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x68, // JUMP 40 + 0xb1, // LOAD_FAST 1 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x16, // LOAD_GLOBAL 'write_bytes_varint' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x14,0x15, // LOAD_METHOD 'decode_address' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x55, // JUMP 21 + 0xb1, // LOAD_FAST 1 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x16, // LOAD_GLOBAL 'write_bytes_varint' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0x12,0x21, // LOAD_GLOBAL 'ValueError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ripple_serialize__write = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_ripple_serialize__write, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 251, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_ripple_serialize__write + 8, + .line_info_top = fun_data_apps_ripple_serialize__write + 39, + .opcodes = fun_data_apps_ripple_serialize__write + 39, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ripple_serialize__lt_module_gt_ +// frozen bytecode for file apps/ripple/serialize.py, scope apps_ripple_serialize_write_bytes_varint +static const byte fun_data_apps_ripple_serialize_write_bytes_varint[174] = { + 0x42,0x2e, // prelude + 0x16,0x1d,0x20, // names: write_bytes_varint, w, value + 0x80,0x62,0x20,0x64,0x40,0x26,0x25,0x2a,0x27,0x28,0x28,0x26,0x2e,0x2b,0x28,0x27,0x2e,0x2e,0x4b,0x47, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'append' + 0xc2, // STORE_FAST 2 + 0x12,0x22, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x21, // LOAD_GLOBAL 'ValueError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0xf3,0x80, // JUMP 115 + 0xb3, // LOAD_FAST 3 + 0x22,0x81,0x40, // LOAD_CONST_SMALL_INT 192 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0xe4,0x80, // JUMP 100 + 0xb3, // LOAD_FAST 3 + 0x22,0x80,0xe1,0x40, // LOAD_CONST_SMALL_INT 12480 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x5f, // POP_JUMP_IF_FALSE 31 + 0xb3, // LOAD_FAST 3 + 0x22,0x81,0x41, // LOAD_CONST_SMALL_INT 193 + 0xe6, // BINARY_OP 15 __isub__ + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x41, // LOAD_CONST_SMALL_INT 193 + 0x12,0x17, // LOAD_GLOBAL 'rshift' + 0xb3, // LOAD_FAST 3 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x34,0x02, // CALL_FUNCTION 2 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xef, // BINARY_OP 24 __and__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x7d, // JUMP 61 + 0xb3, // LOAD_FAST 3 + 0x22,0xb8,0x89,0x58, // LOAD_CONST_SMALL_INT 918744 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x6e, // POP_JUMP_IF_FALSE 46 + 0xb3, // LOAD_FAST 3 + 0x22,0x80,0xe1,0x41, // LOAD_CONST_SMALL_INT 12481 + 0xe6, // BINARY_OP 15 __isub__ + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x71, // LOAD_CONST_SMALL_INT 241 + 0x12,0x17, // LOAD_GLOBAL 'rshift' + 0xb3, // LOAD_FAST 3 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x34,0x02, // CALL_FUNCTION 2 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x12,0x17, // LOAD_GLOBAL 'rshift' + 0xb3, // LOAD_FAST 3 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x34,0x02, // CALL_FUNCTION 2 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xef, // BINARY_OP 24 __and__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xef, // BINARY_OP 24 __and__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0x12,0x21, // LOAD_GLOBAL 'ValueError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x14,0x11, // LOAD_METHOD 'extend' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ripple_serialize_write_bytes_varint = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_ripple_serialize_write_bytes_varint, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 174, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_apps_ripple_serialize_write_bytes_varint + 5, + .line_info_top = fun_data_apps_ripple_serialize_write_bytes_varint + 25, + .opcodes = fun_data_apps_ripple_serialize_write_bytes_varint + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_ripple_serialize__lt_module_gt_ +// frozen bytecode for file apps/ripple/serialize.py, scope apps_ripple_serialize_rshift +static const byte fun_data_apps_ripple_serialize_rshift[16] = { + 0x1a,0x0e, // prelude + 0x17,0x23,0x24, // names: rshift, val, n + 0x80,0x7d,0x60,0x20, // code info + 0xb0, // LOAD_FAST 0 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xf8, // BINARY_OP 33 __mod__ + 0xb1, // LOAD_FAST 1 + 0xf1, // BINARY_OP 26 __rshift__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ripple_serialize_rshift = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_ripple_serialize_rshift, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_ripple_serialize_rshift + 5, + .line_info_top = fun_data_apps_ripple_serialize_rshift + 9, + .opcodes = fun_data_apps_ripple_serialize_rshift + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ripple_serialize__lt_module_gt_[] = { + &raw_code_apps_ripple_serialize_serialize, + &raw_code_apps_ripple_serialize__write, + &raw_code_apps_ripple_serialize_write_bytes_varint, + &raw_code_apps_ripple_serialize_rshift, +}; + +static const mp_raw_code_t raw_code_apps_ripple_serialize__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ripple_serialize__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = (void *)&children_apps_ripple_serialize__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ripple_serialize__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ripple_serialize__lt_module_gt_ + 14, + .opcodes = fun_data_apps_ripple_serialize__lt_module_gt_ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ripple_serialize[37] = { + MP_QSTR_apps_slash_ripple_slash_serialize_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_serialize, + MP_QSTR_flags, + MP_QSTR_sequence, + MP_QSTR_payment, + MP_QSTR_destination_tag, + MP_QSTR_last_ledger_sequence, + MP_QSTR_amount, + MP_QSTR_fee, + MP_QSTR_destination, + MP_QSTR__write, + MP_QSTR_helpers, + MP_QSTR_, + MP_QSTR_append, + MP_QSTR_extend, + MP_QSTR_to_bytes, + MP_QSTR_big, + MP_QSTR_MAX_ALLOWED_AMOUNT, + MP_QSTR_decode_address, + MP_QSTR_write_bytes_varint, + MP_QSTR_rshift, + MP_QSTR_msg, + MP_QSTR_source_address, + MP_QSTR_pubkey, + MP_QSTR_signature, + MP_QSTR_bytearray, + MP_QSTR_w, + MP_QSTR_field_type, + MP_QSTR_field_key, + MP_QSTR_value, + MP_QSTR_ValueError, + MP_QSTR_len, + MP_QSTR_val, + MP_QSTR_n, +}; + +// constants +static const mp_rom_obj_tuple_t const_obj_apps_ripple_serialize_0 = {{&mp_type_tuple}, 3, { + MP_ROM_INT(1), + MP_ROM_INT(2), + MP_ROM_INT(0), +}}; +static const mp_obj_str_t const_obj_apps_ripple_serialize_1 = {{&mp_type_str}, 53661, 40, (const byte*)"\x4f\x6e\x6c\x79\x20\x6e\x6f\x6e\x2d\x6e\x65\x67\x61\x74\x69\x76\x65\x20\x69\x6e\x74\x65\x67\x65\x72\x73\x20\x61\x72\x65\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64"}; +static const mp_obj_int_t const_obj_apps_ripple_serialize_4 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=3, .len=3, .dig=(uint16_t*)(const uint16_t[]){0x0,0x0,0x1}}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_ripple_serialize[5] = { + MP_ROM_PTR(&const_obj_apps_ripple_serialize_0), + MP_ROM_PTR(&const_obj_apps_ripple_serialize_1), + MP_ROM_QSTR(MP_QSTR_Value_space_is_space_too_space_large), + MP_ROM_QSTR(MP_QSTR_Unknown_space_field_space_type), + MP_ROM_PTR(&const_obj_apps_ripple_serialize_4), +}; + +static const mp_frozen_module_t frozen_module_apps_ripple_serialize = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ripple_serialize, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_ripple_serialize, + }, + .rc = &raw_code_apps_ripple_serialize__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_ripple_sign_tx +// - original source file: build/firmware/src/apps/ripple/sign_tx.mpy +// - frozen file name: apps/ripple/sign_tx.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/ripple/sign_tx.py, scope apps_ripple_sign_tx__lt_module_gt_ +static const byte fun_data_apps_ripple_sign_tx__lt_module_gt_[33] = { + 0x08,0x0a, // prelude + 0x01, // names: + 0x40,0x4c,0x80,0x07, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'auto_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x02, // IMPORT_FROM 'auto_keychain' + 0x16,0x02, // STORE_NAME 'auto_keychain' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'auto_keychain' + 0x11,0x31, // LOAD_NAME '__name__' + 0x34,0x01, // CALL_FUNCTION 1 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x04, // STORE_NAME 'sign_tx' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_ripple_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/ripple/sign_tx.py, scope apps_ripple_sign_tx_sign_tx +static const byte fun_data_apps_ripple_sign_tx_sign_tx[389] = { + 0xd2,0x50,0x46, // prelude + 0x04,0x32,0x33, // names: sign_tx, msg, keychain + 0x80,0x0d,0x2b,0x2b,0x2b,0x2b,0x4b,0x4b,0x30,0x4b,0x44,0x29,0x26,0x4d,0x29,0x8b,0x07,0x4b,0x2b,0x2b,0x45,0x32,0x46,0x28,0x2c,0x23,0x56,0x73,0x30,0x2e,0x59,0x2d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'der' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x05, // IMPORT_FROM 'der' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'secp256k1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x07, // IMPORT_FROM 'secp256k1' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'sha512' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x09, // IMPORT_FROM 'sha512' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'RippleSignedTx' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0b, // IMPORT_FROM 'RippleSignedTx' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'trezor.wire' + 0x1c,0x0d, // IMPORT_FROM 'ProcessError' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0f, // LOAD_CONST_STRING 'paths' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'apps.common' + 0x1c,0x0f, // IMPORT_FROM 'paths' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x11, // LOAD_CONST_STRING 'helpers' + 0x10,0x12, // LOAD_CONST_STRING 'layout' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x13, // IMPORT_NAME '' + 0x1c,0x11, // IMPORT_FROM 'helpers' + 0xc8, // STORE_FAST 8 + 0x1c,0x12, // IMPORT_FROM 'layout' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x14, // LOAD_CONST_STRING 'serialize' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'serialize' + 0x1c,0x14, // IMPORT_FROM 'serialize' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'payment' + 0xcb, // STORE_FAST 11 + 0xbb, // LOAD_FAST 11 + 0x13,0x16, // LOAD_ATTR 'amount' + 0xb8, // LOAD_FAST 8 + 0x13,0x17, // LOAD_ATTR 'MAX_ALLOWED_AMOUNT' + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb6, // LOAD_FAST 6 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb7, // LOAD_FAST 7 + 0x14,0x18, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'address_n' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x1a, // LOAD_METHOD 'derive' + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xcc, // STORE_FAST 12 + 0xb8, // LOAD_FAST 8 + 0x14,0x1b, // LOAD_METHOD 'address_from_public_key' + 0xbc, // LOAD_FAST 12 + 0x14,0x1c, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0xcd, // STORE_FAST 13 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x1d, // LOAD_ATTR 'flags' + 0xb8, // LOAD_FAST 8 + 0x13,0x1e, // LOAD_ATTR 'FLAG_FULLY_CANONICAL' + 0xe0, // BINARY_OP 9 __ior__ + 0x5a, // ROT_TWO + 0x18,0x1d, // STORE_ATTR 'flags' + 0xba, // LOAD_FAST 10 + 0xb0, // LOAD_FAST 0 + 0xbd, // LOAD_FAST 13 + 0xbc, // LOAD_FAST 12 + 0x14,0x1c, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x03, // CALL_FUNCTION 3 + 0xce, // STORE_FAST 14 + 0xb8, // LOAD_FAST 8 + 0x13,0x1f, // LOAD_ATTR 'HASH_TX_SIGN' + 0x14,0x20, // LOAD_METHOD 'to_bytes' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x10,0x21, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0xcf, // STORE_FAST 15 + 0xbf, // LOAD_FAST 15 + 0xbe, // LOAD_FAST 14 + 0xf2, // BINARY_OP 27 __add__ + 0x26,0x10, // STORE_FAST_N 16 + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'fee' + 0xb8, // LOAD_FAST 8 + 0x13,0x23, // LOAD_ATTR 'MIN_FEE' + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'fee' + 0xb8, // LOAD_FAST 8 + 0x13,0x24, // LOAD_ATTR 'MAX_FEE' + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb6, // LOAD_FAST 6 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbb, // LOAD_FAST 11 + 0x13,0x25, // LOAD_ATTR 'destination_tag' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb9, // LOAD_FAST 9 + 0x14,0x26, // LOAD_METHOD 'require_confirm_destination_tag' + 0xbb, // LOAD_FAST 11 + 0x13,0x25, // LOAD_ATTR 'destination_tag' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x14,0x27, // LOAD_METHOD 'require_confirm_tx' + 0xbb, // LOAD_FAST 11 + 0x13,0x28, // LOAD_ATTR 'destination' + 0xbb, // LOAD_FAST 11 + 0x13,0x16, // LOAD_ATTR 'amount' + 0x10,0x29, // LOAD_CONST_STRING 'chunkify' + 0x12,0x34, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'chunkify' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x82,0x02, // CALL_METHOD 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb9, // LOAD_FAST 9 + 0x14,0x2a, // LOAD_METHOD 'require_confirm_total' + 0xbb, // LOAD_FAST 11 + 0x13,0x16, // LOAD_ATTR 'amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'fee' + 0xf2, // BINARY_OP 27 __add__ + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'fee' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x24,0x10, // LOAD_FAST_N 16 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x2b, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x51, // LOAD_CONST_NONE + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x26,0x11, // STORE_FAST_N 17 + 0xb3, // LOAD_FAST 3 + 0x14,0x2c, // LOAD_METHOD 'sign' + 0xbc, // LOAD_FAST 12 + 0x14,0x2d, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x12, // STORE_FAST_N 18 + 0xb2, // LOAD_FAST 2 + 0x14,0x2e, // LOAD_METHOD 'encode_seq' + 0x24,0x12, // LOAD_FAST_N 18 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x24,0x12, // LOAD_FAST_N 18 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x22,0x80,0x41, // LOAD_CONST_SMALL_INT 65 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x13, // STORE_FAST_N 19 + 0xba, // LOAD_FAST 10 + 0xb0, // LOAD_FAST 0 + 0xbd, // LOAD_FAST 13 + 0xbc, // LOAD_FAST 12 + 0x14,0x1c, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0x24,0x13, // LOAD_FAST_N 19 + 0x34,0x04, // CALL_FUNCTION 4 + 0xce, // STORE_FAST 14 + 0xb5, // LOAD_FAST 5 + 0x10,0x2f, // LOAD_CONST_STRING 'signature' + 0x24,0x13, // LOAD_FAST_N 19 + 0x10,0x30, // LOAD_CONST_STRING 'serialized_tx' + 0xbe, // LOAD_FAST 14 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_ripple_sign_tx_sign_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_ripple_sign_tx_sign_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 389, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 27, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_ripple_sign_tx_sign_tx + 6, + .line_info_top = fun_data_apps_ripple_sign_tx_sign_tx + 38, + .opcodes = fun_data_apps_ripple_sign_tx_sign_tx + 38, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_ripple_sign_tx__lt_module_gt_[] = { + &raw_code_apps_ripple_sign_tx_sign_tx, +}; + +static const mp_raw_code_t raw_code_apps_ripple_sign_tx__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_ripple_sign_tx__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = (void *)&children_apps_ripple_sign_tx__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_ripple_sign_tx__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_ripple_sign_tx__lt_module_gt_ + 7, + .opcodes = fun_data_apps_ripple_sign_tx__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_ripple_sign_tx[53] = { + MP_QSTR_apps_slash_ripple_slash_sign_tx_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_auto_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_sign_tx, + MP_QSTR_der, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_secp256k1, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_sha512, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_RippleSignedTx, + MP_QSTR_trezor_dot_messages, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_paths, + MP_QSTR_apps_dot_common, + MP_QSTR_helpers, + MP_QSTR_layout, + MP_QSTR_, + MP_QSTR_serialize, + MP_QSTR_payment, + MP_QSTR_amount, + MP_QSTR_MAX_ALLOWED_AMOUNT, + MP_QSTR_validate_path, + MP_QSTR_address_n, + MP_QSTR_derive, + MP_QSTR_address_from_public_key, + MP_QSTR_public_key, + MP_QSTR_flags, + MP_QSTR_FLAG_FULLY_CANONICAL, + MP_QSTR_HASH_TX_SIGN, + MP_QSTR_to_bytes, + MP_QSTR_big, + MP_QSTR_fee, + MP_QSTR_MIN_FEE, + MP_QSTR_MAX_FEE, + MP_QSTR_destination_tag, + MP_QSTR_require_confirm_destination_tag, + MP_QSTR_require_confirm_tx, + MP_QSTR_destination, + MP_QSTR_chunkify, + MP_QSTR_require_confirm_total, + MP_QSTR_digest, + MP_QSTR_sign, + MP_QSTR_private_key, + MP_QSTR_encode_seq, + MP_QSTR_signature, + MP_QSTR_serialized_tx, + MP_QSTR___name__, + MP_QSTR_msg, + MP_QSTR_keychain, + MP_QSTR_bool, +}; + +// constants +static const mp_obj_str_t const_obj_apps_ripple_sign_tx_0 = {{&mp_type_str}, 3762, 38, (const byte*)"\x41\x6d\x6f\x75\x6e\x74\x20\x65\x78\x63\x65\x65\x64\x73\x20\x6d\x61\x78\x69\x6d\x75\x6d\x20\x61\x6c\x6c\x6f\x77\x65\x64\x20\x61\x6d\x6f\x75\x6e\x74\x2e"}; +static const mp_obj_str_t const_obj_apps_ripple_sign_tx_1 = {{&mp_type_str}, 61230, 46, (const byte*)"\x46\x65\x65\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x69\x6e\x20\x74\x68\x65\x20\x72\x61\x6e\x67\x65\x20\x6f\x66\x20\x31\x30\x20\x74\x6f\x20\x31\x30\x2c\x30\x30\x30\x20\x64\x72\x6f\x70\x73"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_ripple_sign_tx[2] = { + MP_ROM_PTR(&const_obj_apps_ripple_sign_tx_0), + MP_ROM_PTR(&const_obj_apps_ripple_sign_tx_1), +}; + +static const mp_frozen_module_t frozen_module_apps_ripple_sign_tx = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_ripple_sign_tx, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_ripple_sign_tx, + }, + .rc = &raw_code_apps_ripple_sign_tx__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_stellar___init__ +// - original source file: build/firmware/src/apps/stellar/__init__.mpy +// - frozen file name: apps/stellar/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/stellar/__init__.py, scope apps_stellar___init____lt_module_gt_ +static const byte fun_data_apps_stellar___init____lt_module_gt_[33] = { + 0x08,0x08, // prelude + 0x01, // names: + 0x4c,0x24,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'PATTERN_SEP5' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x02, // IMPORT_FROM 'PATTERN_SEP5' + 0x16,0x02, // STORE_NAME 'PATTERN_SEP5' + 0x59, // POP_TOP + 0x10,0x04, // LOAD_CONST_STRING 'ed25519' + 0x16,0x05, // STORE_NAME 'CURVE' + 0x22,0x81,0x14, // LOAD_CONST_SMALL_INT 148 + 0x16,0x06, // STORE_NAME 'SLIP44_ID' + 0x11,0x02, // LOAD_NAME 'PATTERN_SEP5' + 0x16,0x07, // STORE_NAME 'PATTERN' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_stellar___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_stellar___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_stellar___init____lt_module_gt_ + 6, + .opcodes = fun_data_apps_stellar___init____lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_stellar___init__[8] = { + MP_QSTR_apps_slash_stellar_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_PATTERN_SEP5, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_ed25519, + MP_QSTR_CURVE, + MP_QSTR_SLIP44_ID, + MP_QSTR_PATTERN, +}; + +static const mp_frozen_module_t frozen_module_apps_stellar___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_stellar___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps_stellar___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_stellar_consts +// - original source file: build/firmware/src/apps/stellar/consts.mpy +// - frozen file name: apps/stellar/consts.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/stellar/consts.py, scope apps_stellar_consts__lt_module_gt_ +static const byte fun_data_apps_stellar_consts__lt_module_gt_[170] = { + 0x10,0x3a, // prelude + 0x01, // names: + 0x6c,0x4c,0x80,0x23,0x64,0x20,0x22,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x68,0x60,0x63,0x24,0x64,0x23,0x23,0x23,0x63, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'MessageType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.enums' + 0x1c,0x04, // IMPORT_FROM 'MessageType' + 0x16,0x04, // STORE_NAME 'MessageType' + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x15, // STORE_NAME 'TX_TYPE' + 0x2c,0x0d, // BUILD_MAP 13 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x11,0x04, // LOAD_NAME 'MessageType' + 0x13,0x06, // LOAD_ATTR 'StellarAccountMergeOp' + 0x62, // STORE_MAP + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x11,0x04, // LOAD_NAME 'MessageType' + 0x13,0x07, // LOAD_ATTR 'StellarAllowTrustOp' + 0x62, // STORE_MAP + 0x8b, // LOAD_CONST_SMALL_INT 11 + 0x11,0x04, // LOAD_NAME 'MessageType' + 0x13,0x08, // LOAD_ATTR 'StellarBumpSequenceOp' + 0x62, // STORE_MAP + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x11,0x04, // LOAD_NAME 'MessageType' + 0x13,0x09, // LOAD_ATTR 'StellarChangeTrustOp' + 0x62, // STORE_MAP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x11,0x04, // LOAD_NAME 'MessageType' + 0x13,0x0a, // LOAD_ATTR 'StellarCreateAccountOp' + 0x62, // STORE_MAP + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x11,0x04, // LOAD_NAME 'MessageType' + 0x13,0x0b, // LOAD_ATTR 'StellarCreatePassiveSellOfferOp' + 0x62, // STORE_MAP + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x11,0x04, // LOAD_NAME 'MessageType' + 0x13,0x0c, // LOAD_ATTR 'StellarManageDataOp' + 0x62, // STORE_MAP + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0x11,0x04, // LOAD_NAME 'MessageType' + 0x13,0x0d, // LOAD_ATTR 'StellarManageBuyOfferOp' + 0x62, // STORE_MAP + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x11,0x04, // LOAD_NAME 'MessageType' + 0x13,0x0e, // LOAD_ATTR 'StellarManageSellOfferOp' + 0x62, // STORE_MAP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x11,0x04, // LOAD_NAME 'MessageType' + 0x13,0x0f, // LOAD_ATTR 'StellarPathPaymentStrictReceiveOp' + 0x62, // STORE_MAP + 0x8d, // LOAD_CONST_SMALL_INT 13 + 0x11,0x04, // LOAD_NAME 'MessageType' + 0x13,0x10, // LOAD_ATTR 'StellarPathPaymentStrictSendOp' + 0x62, // STORE_MAP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x11,0x04, // LOAD_NAME 'MessageType' + 0x13,0x11, // LOAD_ATTR 'StellarPaymentOp' + 0x62, // STORE_MAP + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x11,0x04, // LOAD_NAME 'MessageType' + 0x13,0x12, // LOAD_ATTR 'StellarSetOptionsOp' + 0x62, // STORE_MAP + 0x16,0x16, // STORE_NAME 'op_codes' + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x16,0x17, // STORE_NAME 'AMOUNT_DECIMALS' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x16,0x18, // STORE_NAME 'NETWORK_PASSPHRASE_PUBLIC' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x16,0x19, // STORE_NAME 'NETWORK_PASSPHRASE_TESTNET' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x1a, // STORE_NAME 'FLAG_AUTH_REQUIRED' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x1b, // STORE_NAME 'FLAG_AUTH_REVOCABLE' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x16,0x1c, // STORE_NAME 'FLAG_AUTH_IMMUTABLE' + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x16,0x1d, // STORE_NAME 'FLAGS_MAX_SIZE' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x13, // STORE_NAME 'get_op_code' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_stellar_consts__lt_module_gt_ +// frozen bytecode for file apps/stellar/consts.py, scope apps_stellar_consts_get_op_code +static const byte fun_data_apps_stellar_consts_get_op_code[33] = { + 0x19,0x10, // prelude + 0x13,0x1e, // names: get_op_code, msg + 0x80,0x4d,0x24,0x27,0x27,0x20, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'MESSAGE_WIRE_TYPE' + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x12,0x16, // LOAD_GLOBAL 'op_codes' + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x1f, // LOAD_GLOBAL 'ValueError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x16, // LOAD_GLOBAL 'op_codes' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_consts_get_op_code = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_consts_get_op_code, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_stellar_consts_get_op_code + 4, + .line_info_top = fun_data_apps_stellar_consts_get_op_code + 10, + .opcodes = fun_data_apps_stellar_consts_get_op_code + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_stellar_consts__lt_module_gt_[] = { + &raw_code_apps_stellar_consts_get_op_code, +}; + +static const mp_raw_code_t raw_code_apps_stellar_consts__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_stellar_consts__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 170, + #endif + .children = (void *)&children_apps_stellar_consts__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_stellar_consts__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_stellar_consts__lt_module_gt_ + 31, + .opcodes = fun_data_apps_stellar_consts__lt_module_gt_ + 31, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_stellar_consts[32] = { + MP_QSTR_apps_slash_stellar_slash_consts_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_MessageType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_StellarAccountMergeOp, + MP_QSTR_StellarAllowTrustOp, + MP_QSTR_StellarBumpSequenceOp, + MP_QSTR_StellarChangeTrustOp, + MP_QSTR_StellarCreateAccountOp, + MP_QSTR_StellarCreatePassiveSellOfferOp, + MP_QSTR_StellarManageDataOp, + MP_QSTR_StellarManageBuyOfferOp, + MP_QSTR_StellarManageSellOfferOp, + MP_QSTR_StellarPathPaymentStrictReceiveOp, + MP_QSTR_StellarPathPaymentStrictSendOp, + MP_QSTR_StellarPaymentOp, + MP_QSTR_StellarSetOptionsOp, + MP_QSTR_get_op_code, + MP_QSTR_MESSAGE_WIRE_TYPE, + MP_QSTR_TX_TYPE, + MP_QSTR_op_codes, + MP_QSTR_AMOUNT_DECIMALS, + MP_QSTR_NETWORK_PASSPHRASE_PUBLIC, + MP_QSTR_NETWORK_PASSPHRASE_TESTNET, + MP_QSTR_FLAG_AUTH_REQUIRED, + MP_QSTR_FLAG_AUTH_REVOCABLE, + MP_QSTR_FLAG_AUTH_IMMUTABLE, + MP_QSTR_FLAGS_MAX_SIZE, + MP_QSTR_msg, + MP_QSTR_ValueError, +}; + +// constants +static const mp_obj_str_t const_obj_apps_stellar_consts_0 = {{&mp_type_bytes}, 3975, 4, (const byte*)"\x00\x00\x00\x02"}; +static const mp_obj_str_t const_obj_apps_stellar_consts_1 = {{&mp_type_str}, 24658, 46, (const byte*)"\x50\x75\x62\x6c\x69\x63\x20\x47\x6c\x6f\x62\x61\x6c\x20\x53\x74\x65\x6c\x6c\x61\x72\x20\x4e\x65\x74\x77\x6f\x72\x6b\x20\x3b\x20\x53\x65\x70\x74\x65\x6d\x62\x65\x72\x20\x32\x30\x31\x35"}; +static const mp_obj_str_t const_obj_apps_stellar_consts_2 = {{&mp_type_str}, 11918, 33, (const byte*)"\x54\x65\x73\x74\x20\x53\x44\x46\x20\x4e\x65\x74\x77\x6f\x72\x6b\x20\x3b\x20\x53\x65\x70\x74\x65\x6d\x62\x65\x72\x20\x32\x30\x31\x35"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_stellar_consts[4] = { + MP_ROM_PTR(&const_obj_apps_stellar_consts_0), + MP_ROM_PTR(&const_obj_apps_stellar_consts_1), + MP_ROM_PTR(&const_obj_apps_stellar_consts_2), + MP_ROM_QSTR(MP_QSTR_Stellar_colon__space_op_space_code_space_unknown), +}; + +static const mp_frozen_module_t frozen_module_apps_stellar_consts = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_stellar_consts, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_stellar_consts, + }, + .rc = &raw_code_apps_stellar_consts__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_stellar_get_address +// - original source file: build/firmware/src/apps/stellar/get_address.mpy +// - frozen file name: apps/stellar/get_address.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/stellar/get_address.py, scope apps_stellar_get_address__lt_module_gt_ +static const byte fun_data_apps_stellar_get_address__lt_module_gt_[33] = { + 0x08,0x0a, // prelude + 0x01, // names: + 0x40,0x4c,0x60,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'auto_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x02, // IMPORT_FROM 'auto_keychain' + 0x16,0x02, // STORE_NAME 'auto_keychain' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'auto_keychain' + 0x11,0x1f, // LOAD_NAME '__name__' + 0x34,0x01, // CALL_FUNCTION 1 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x04, // STORE_NAME 'get_address' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_stellar_get_address__lt_module_gt_ +// frozen bytecode for file apps/stellar/get_address.py, scope apps_stellar_get_address_get_address +static const byte fun_data_apps_stellar_get_address_get_address[184] = { + 0xca,0x50,0x28, // prelude + 0x04,0x20,0x21, // names: get_address, msg, keychain + 0x80,0x0c,0x2b,0x4b,0x50,0x4b,0x44,0x4b,0x27,0x2b,0x47,0x25,0x50,0x67,0x28,0x2e,0x6e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'StellarAddress' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.messages' + 0x1c,0x05, // IMPORT_FROM 'StellarAddress' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'show_address' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x07, // IMPORT_FROM 'show_address' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'paths' + 0x10,0x0a, // LOAD_CONST_STRING 'seed' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0b, // IMPORT_NAME 'apps.common' + 0x1c,0x09, // IMPORT_FROM 'paths' + 0xc4, // STORE_FAST 4 + 0x1c,0x0a, // IMPORT_FROM 'seed' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0c, // LOAD_CONST_STRING 'helpers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME '' + 0x1c,0x0c, // IMPORT_FROM 'helpers' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'address_n' + 0xc7, // STORE_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x14,0x0f, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x10, // LOAD_METHOD 'derive' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0xc8, // STORE_FAST 8 + 0xb5, // LOAD_FAST 5 + 0x14,0x11, // LOAD_METHOD 'remove_ed25519_prefix' + 0xb8, // LOAD_FAST 8 + 0x14,0x12, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc9, // STORE_FAST 9 + 0xb6, // LOAD_FAST 6 + 0x14,0x13, // LOAD_METHOD 'address_from_public_key' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0xca, // STORE_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'show_display' + 0x44,0x7b, // POP_JUMP_IF_FALSE 59 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x15, // LOAD_CONST_STRING 'PATTERN' + 0x10,0x16, // LOAD_CONST_STRING 'SLIP44_ID' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0d, // IMPORT_NAME '' + 0x1c,0x15, // IMPORT_FROM 'PATTERN' + 0xcb, // STORE_FAST 11 + 0x1c,0x16, // IMPORT_FROM 'SLIP44_ID' + 0xcc, // STORE_FAST 12 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xba, // LOAD_FAST 10 + 0x10,0x17, // LOAD_CONST_STRING 'case_sensitive' + 0x50, // LOAD_CONST_FALSE + 0x10,0x18, // LOAD_CONST_STRING 'path' + 0xb4, // LOAD_FAST 4 + 0x14,0x19, // LOAD_METHOD 'address_n_to_str' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x1a, // LOAD_CONST_STRING 'account' + 0xb4, // LOAD_FAST 4 + 0x14,0x1b, // LOAD_METHOD 'get_account_name' + 0x10,0x1c, // LOAD_CONST_STRING 'XLM' + 0xb0, // LOAD_FAST 0 + 0x13,0x0e, // LOAD_ATTR 'address_n' + 0xbb, // LOAD_FAST 11 + 0xbc, // LOAD_FAST 12 + 0x36,0x04, // CALL_METHOD 4 + 0x10,0x1d, // LOAD_CONST_STRING 'chunkify' + 0x12,0x22, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'chunkify' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x88,0x01, // CALL_FUNCTION 1025 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x10,0x1e, // LOAD_CONST_STRING 'address' + 0xba, // LOAD_FAST 10 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_get_address_get_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_get_address_get_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 184, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 26, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_stellar_get_address_get_address + 6, + .line_info_top = fun_data_apps_stellar_get_address_get_address + 23, + .opcodes = fun_data_apps_stellar_get_address_get_address + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_stellar_get_address__lt_module_gt_[] = { + &raw_code_apps_stellar_get_address_get_address, +}; + +static const mp_raw_code_t raw_code_apps_stellar_get_address__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_stellar_get_address__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = (void *)&children_apps_stellar_get_address__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_stellar_get_address__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_stellar_get_address__lt_module_gt_ + 7, + .opcodes = fun_data_apps_stellar_get_address__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_stellar_get_address[35] = { + MP_QSTR_apps_slash_stellar_slash_get_address_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_auto_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_get_address, + MP_QSTR_StellarAddress, + MP_QSTR_trezor_dot_messages, + MP_QSTR_show_address, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_paths, + MP_QSTR_seed, + MP_QSTR_apps_dot_common, + MP_QSTR_helpers, + MP_QSTR_, + MP_QSTR_address_n, + MP_QSTR_validate_path, + MP_QSTR_derive, + MP_QSTR_remove_ed25519_prefix, + MP_QSTR_public_key, + MP_QSTR_address_from_public_key, + MP_QSTR_show_display, + MP_QSTR_PATTERN, + MP_QSTR_SLIP44_ID, + MP_QSTR_case_sensitive, + MP_QSTR_path, + MP_QSTR_address_n_to_str, + MP_QSTR_account, + MP_QSTR_get_account_name, + MP_QSTR_XLM, + MP_QSTR_chunkify, + MP_QSTR_address, + MP_QSTR___name__, + MP_QSTR_msg, + MP_QSTR_keychain, + MP_QSTR_bool, +}; + +static const mp_frozen_module_t frozen_module_apps_stellar_get_address = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_stellar_get_address, + .obj_table = NULL, + }, + .rc = &raw_code_apps_stellar_get_address__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_stellar_helpers +// - original source file: build/firmware/src/apps/stellar/helpers.mpy +// - frozen file name: apps/stellar/helpers.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/stellar/helpers.py, scope apps_stellar_helpers__lt_module_gt_ +static const byte fun_data_apps_stellar_helpers__lt_module_gt_[34] = { + 0x08,0x0c, // prelude + 0x01, // names: + 0x6c,0x84,0x0e,0x84,0x0a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'base32' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x02, // IMPORT_FROM 'base32' + 0x16,0x02, // STORE_NAME 'base32' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x04, // STORE_NAME 'public_key_from_address' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x08, // STORE_NAME 'address_from_public_key' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0c, // STORE_NAME '_crc16_checksum' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_stellar_helpers__lt_module_gt_ +// frozen bytecode for file apps/stellar/helpers.py, scope apps_stellar_helpers_public_key_from_address +static const byte fun_data_apps_stellar_helpers_public_key_from_address[63] = { + 0x31,0x14, // prelude + 0x04,0x10, // names: public_key_from_address, address + 0x60,0x20,0x60,0x20,0x4b,0x48,0x33,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor.wire' + 0x1c,0x05, // IMPORT_FROM 'ProcessError' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'base32' + 0x14,0x07, // LOAD_METHOD 'decode' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0x12,0x0c, // LOAD_GLOBAL '_crc16_checksum' + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0x7e, // LOAD_CONST_SMALL_INT -2 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0x7e, // LOAD_CONST_SMALL_INT -2 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb1, // LOAD_FAST 1 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x7e, // LOAD_CONST_SMALL_INT -2 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_helpers_public_key_from_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_helpers_public_key_from_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 63, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_stellar_helpers_public_key_from_address + 4, + .line_info_top = fun_data_apps_stellar_helpers_public_key_from_address + 12, + .opcodes = fun_data_apps_stellar_helpers_public_key_from_address + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_helpers__lt_module_gt_ +// frozen bytecode for file apps/stellar/helpers.py, scope apps_stellar_helpers_address_from_public_key +static const byte fun_data_apps_stellar_helpers_address_from_public_key[54] = { + 0x31,0x12, // prelude + 0x08,0x11, // names: address_from_public_key, pubkey + 0x80,0x12,0x20,0x25,0x28,0x27,0x4f, // code info + 0x12,0x12, // LOAD_GLOBAL 'bytearray' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x09, // LOAD_METHOD 'append' + 0x22,0x30, // LOAD_CONST_SMALL_INT 48 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x0a, // LOAD_METHOD 'extend' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x0a, // LOAD_METHOD 'extend' + 0x12,0x0c, // LOAD_GLOBAL '_crc16_checksum' + 0x12,0x13, // LOAD_GLOBAL 'bytes' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'base32' + 0x14,0x0b, // LOAD_METHOD 'encode' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_helpers_address_from_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_helpers_address_from_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 54, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_stellar_helpers_address_from_public_key + 4, + .line_info_top = fun_data_apps_stellar_helpers_address_from_public_key + 11, + .opcodes = fun_data_apps_stellar_helpers_address_from_public_key + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_helpers__lt_module_gt_ +// frozen bytecode for file apps/stellar/helpers.py, scope apps_stellar_helpers__crc16_checksum +static const byte fun_data_apps_stellar_helpers__crc16_checksum[94] = { + 0x79,0x20, // prelude + 0x0c,0x14, // names: _crc16_checksum, data + 0x80,0x1c,0x60,0x60,0x45,0x22,0x44,0x25,0x25,0x2a,0x28,0x24,0x25,0x4e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x0d, // IMPORT_NAME 'ustruct' + 0xc1, // STORE_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc2, // STORE_FAST 2 + 0x22,0xa0,0x21, // LOAD_CONST_SMALL_INT 4129 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x2f, // FOR_ITER 47 + 0xc4, // STORE_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x63, // JUMP 35 + 0x57, // DUP_TOP + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xb5, // LOAD_FAST 5 + 0xf3, // BINARY_OP 28 __sub__ + 0xf1, // BINARY_OP 26 __rshift__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xef, // BINARY_OP 24 __and__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0xc6, // STORE_FAST 6 + 0xb2, // LOAD_FAST 2 + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0xf1, // BINARY_OP 26 __rshift__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xef, // BINARY_OP 24 __and__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0xc7, // STORE_FAST 7 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe3, // BINARY_OP 12 __ilshift__ + 0xc2, // STORE_FAST 2 + 0xb7, // LOAD_FAST 7 + 0xb6, // LOAD_FAST 6 + 0xee, // BINARY_OP 23 __xor__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xe1, // BINARY_OP 10 __ixor__ + 0xc2, // STORE_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x57, // DUP_TOP + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x18, // POP_JUMP_IF_TRUE -40 + 0x59, // POP_TOP + 0x42,0x0f, // JUMP -49 + 0xb1, // LOAD_FAST 1 + 0x14,0x0e, // LOAD_METHOD 'pack' + 0x10,0x0f, // LOAD_CONST_STRING ' + 0x40,0x2a,0x2c,0x4c,0x4c,0x60,0x40,0x84,0x1f,0x84,0x11,0x84,0x1c,0x84,0x0b,0x84,0x0c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'trezor.ui.layouts' + 0x13,0x03, // LOAD_ATTR 'ui' + 0x13,0x04, // LOAD_ATTR 'layouts' + 0x16,0x04, // STORE_NAME 'layouts' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'strings' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x05, // IMPORT_FROM 'strings' + 0x16,0x05, // STORE_NAME 'strings' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.enums' + 0x1c,0x07, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x07, // STORE_NAME 'ButtonRequestType' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x09, // LOAD_CONST_STRING 'consts' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME '' + 0x1c,0x09, // IMPORT_FROM 'consts' + 0x16,0x09, // STORE_NAME 'consts' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0b, // STORE_NAME 'require_confirm_init' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x11, // STORE_NAME 'require_confirm_timebounds' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x14, // STORE_NAME 'require_confirm_memo' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x1e, // STORE_NAME 'require_confirm_final' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x22, // STORE_NAME 'format_asset' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x05, // MAKE_FUNCTION_DEFARGS 5 + 0x16,0x2a, // STORE_NAME 'format_amount' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_stellar_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/layout.py, scope apps_stellar_layout_require_confirm_init +static const byte fun_data_apps_stellar_layout_require_confirm_init[107] = { + 0xdb,0x40,0x2a, // prelude + 0x0b,0x2d,0x2e,0x2f, // names: require_confirm_init, address, network_passphrase, accounts_match + 0x80,0x12,0x2d,0x24,0x64,0x68,0x20,0x28,0x24,0x28,0x45,0x43,0x23,0x24,0x22,0x22,0x43, // code info + 0xb2, // LOAD_FAST 2 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xf2, // BINARY_OP 27 __add__ + 0x42,0x42, // JUMP 2 + 0x10,0x0a, // LOAD_CONST_STRING '' + 0xc3, // STORE_FAST 3 + 0x12,0x04, // LOAD_GLOBAL 'layouts' + 0x14,0x0c, // LOAD_METHOD 'confirm_address' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x36,0x04, // CALL_METHOD 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x12,0x09, // LOAD_GLOBAL 'consts' + 0x13,0x0d, // LOAD_ATTR 'NETWORK_PASSPHRASE_PUBLIC' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x51, // LOAD_CONST_NONE + 0xc4, // STORE_FAST 4 + 0x42,0x50, // JUMP 16 + 0xb1, // LOAD_FAST 1 + 0x12,0x09, // LOAD_GLOBAL 'consts' + 0x13,0x0e, // LOAD_ATTR 'NETWORK_PASSPHRASE_TESTNET' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xc4, // STORE_FAST 4 + 0x42,0x43, // JUMP 3 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x12,0x04, // LOAD_GLOBAL 'layouts' + 0x14,0x0f, // LOAD_METHOD 'confirm_metadata' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0xb4, // LOAD_FAST 4 + 0x12,0x07, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x10, // LOAD_ATTR 'ConfirmOutput' + 0x36,0x05, // CALL_METHOD 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_layout_require_confirm_init = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_stellar_layout_require_confirm_init, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 107, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_apps_stellar_layout_require_confirm_init + 7, + .line_info_top = fun_data_apps_stellar_layout_require_confirm_init + 24, + .opcodes = fun_data_apps_stellar_layout_require_confirm_init + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/layout.py, scope apps_stellar_layout_require_confirm_timebounds +static const byte fun_data_apps_stellar_layout_require_confirm_timebounds[75] = { + 0xd2,0x40,0x1c, // prelude + 0x11,0x30,0x31, // names: require_confirm_timebounds, start, end + 0x80,0x2d,0x24,0x22,0x22,0x20,0x20,0x22,0x52,0x20,0x22, // code info + 0x12,0x04, // LOAD_GLOBAL 'layouts' + 0x14,0x12, // LOAD_METHOD 'confirm_properties' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x05, // LOAD_GLOBAL 'strings' + 0x14,0x13, // LOAD_METHOD 'format_timestamp' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0x42,0x42, // JUMP 2 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x05, // LOAD_GLOBAL 'strings' + 0x14,0x13, // LOAD_METHOD 'format_timestamp' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x42,0x42, // JUMP 2 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_layout_require_confirm_timebounds = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_layout_require_confirm_timebounds, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 75, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_apps_stellar_layout_require_confirm_timebounds + 6, + .line_info_top = fun_data_apps_stellar_layout_require_confirm_timebounds + 17, + .opcodes = fun_data_apps_stellar_layout_require_confirm_timebounds + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/layout.py, scope apps_stellar_layout_require_confirm_memo +static const byte fun_data_apps_stellar_layout_require_confirm_memo[127] = { + 0xda,0x40,0x2c, // prelude + 0x14,0x32,0x33, // names: require_confirm_memo, memo_type, memo_text + 0x80,0x3e,0x4b,0x27,0x25,0x27,0x25,0x27,0x25,0x27,0x45,0x24,0x22,0x22,0x22,0x24,0x6b,0x24,0x22, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x15, // LOAD_CONST_STRING 'StellarMemoType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.enums' + 0x1c,0x15, // IMPORT_FROM 'StellarMemoType' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x16, // LOAD_ATTR 'TEXT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0xc3, // STORE_FAST 3 + 0x42,0x7d, // JUMP 61 + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x17, // LOAD_ATTR 'ID' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x18, // LOAD_CONST_STRING 'Memo (ID)' + 0xc3, // STORE_FAST 3 + 0x42,0x71, // JUMP 49 + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x19, // LOAD_ATTR 'HASH' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0xc3, // STORE_FAST 3 + 0x42,0x65, // JUMP 37 + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x13,0x1a, // LOAD_ATTR 'RETURN' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0xc3, // STORE_FAST 3 + 0x42,0x59, // JUMP 25 + 0x12,0x04, // LOAD_GLOBAL 'layouts' + 0x14,0x1b, // LOAD_METHOD 'confirm_action' + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0x10,0x1c, // LOAD_CONST_STRING 'br_code' + 0x12,0x07, // LOAD_GLOBAL 'ButtonRequestType' + 0x13,0x10, // LOAD_ATTR 'ConfirmOutput' + 0x36,0x82,0x04, // CALL_METHOD 260 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE + 0x12,0x04, // LOAD_GLOBAL 'layouts' + 0x14,0x1d, // LOAD_METHOD 'confirm_blob' + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x36,0x04, // CALL_METHOD 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_layout_require_confirm_memo = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_layout_require_confirm_memo, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 127, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_apps_stellar_layout_require_confirm_memo + 6, + .line_info_top = fun_data_apps_stellar_layout_require_confirm_memo + 25, + .opcodes = fun_data_apps_stellar_layout_require_confirm_memo + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/layout.py, scope apps_stellar_layout_require_confirm_final +static const byte fun_data_apps_stellar_layout_require_confirm_final[57] = { + 0xd2,0x40,0x14, // prelude + 0x1e,0x34,0x35, // names: require_confirm_final, fee, num_operations + 0x80,0x5a,0x2c,0x24,0x22,0x22,0x27, // code info + 0x12,0x05, // LOAD_GLOBAL 'strings' + 0x14,0x1f, // LOAD_METHOD 'format_plural' + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0xb1, // LOAD_FAST 1 + 0x10,0x20, // LOAD_CONST_STRING 'operation' + 0x36,0x03, // CALL_METHOD 3 + 0xc2, // STORE_FAST 2 + 0x12,0x04, // LOAD_GLOBAL 'layouts' + 0x14,0x0f, // LOAD_METHOD 'confirm_metadata' + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0x23,0x17, // LOAD_CONST_OBJ 23 + 0x23,0x18, // LOAD_CONST_OBJ 24 + 0xb2, // LOAD_FAST 2 + 0xf2, // BINARY_OP 27 __add__ + 0x23,0x19, // LOAD_CONST_OBJ 25 + 0xf2, // BINARY_OP 27 __add__ + 0x12,0x2a, // LOAD_GLOBAL 'format_amount' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x21, // LOAD_CONST_STRING 'hold' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x04, // CALL_METHOD 260 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_layout_require_confirm_final = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_layout_require_confirm_final, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_apps_stellar_layout_require_confirm_final + 6, + .line_info_top = fun_data_apps_stellar_layout_require_confirm_final + 13, + .opcodes = fun_data_apps_stellar_layout_require_confirm_final + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/layout.py, scope apps_stellar_layout_format_asset +static const byte fun_data_apps_stellar_layout_format_asset[70] = { + 0x21,0x14, // prelude + 0x22,0x36, // names: format_asset, asset + 0x80,0x65,0x2b,0x4b,0x2e,0x43,0x27,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x23, // LOAD_CONST_STRING 'StellarAssetType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.enums' + 0x1c,0x23, // IMPORT_FROM 'StellarAssetType' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x24, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x25, // IMPORT_NAME 'trezor.wire' + 0x1c,0x24, // IMPORT_FROM 'DataError' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'type' + 0xb1, // LOAD_FAST 1 + 0x13,0x27, // LOAD_ATTR 'NATIVE' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x10,0x28, // LOAD_CONST_STRING 'XLM' + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'code' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb2, // LOAD_FAST 2 + 0x23,0x1a, // LOAD_CONST_OBJ 26 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x29, // LOAD_ATTR 'code' + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_layout_format_asset = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_layout_format_asset, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_apps_stellar_layout_format_asset + 4, + .line_info_top = fun_data_apps_stellar_layout_format_asset + 12, + .opcodes = fun_data_apps_stellar_layout_format_asset + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/layout.py, scope apps_stellar_layout_format_amount +static const byte fun_data_apps_stellar_layout_format_amount[31] = { + 0xaa,0x01,0x0e, // prelude + 0x2a,0x37,0x36, // names: format_amount, amount, asset + 0x80,0x71,0x20,0x4e, // code info + 0x12,0x05, // LOAD_GLOBAL 'strings' + 0x14,0x2a, // LOAD_METHOD 'format_amount' + 0xb0, // LOAD_FAST 0 + 0x12,0x09, // LOAD_GLOBAL 'consts' + 0x13,0x2b, // LOAD_ATTR 'AMOUNT_DECIMALS' + 0x36,0x02, // CALL_METHOD 2 + 0x10,0x2c, // LOAD_CONST_STRING ' ' + 0xf2, // BINARY_OP 27 __add__ + 0x12,0x22, // LOAD_GLOBAL 'format_asset' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_layout_format_amount = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_layout_format_amount, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_stellar_layout_format_amount + 6, + .line_info_top = fun_data_apps_stellar_layout_format_amount + 10, + .opcodes = fun_data_apps_stellar_layout_format_amount + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_stellar_layout__lt_module_gt_[] = { + &raw_code_apps_stellar_layout_require_confirm_init, + &raw_code_apps_stellar_layout_require_confirm_timebounds, + &raw_code_apps_stellar_layout_require_confirm_memo, + &raw_code_apps_stellar_layout_require_confirm_final, + &raw_code_apps_stellar_layout_format_asset, + &raw_code_apps_stellar_layout_format_amount, +}; + +static const mp_raw_code_t raw_code_apps_stellar_layout__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_stellar_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 96, + #endif + .children = (void *)&children_apps_stellar_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_stellar_layout__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_stellar_layout__lt_module_gt_ + 20, + .opcodes = fun_data_apps_stellar_layout__lt_module_gt_ + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_stellar_layout[56] = { + MP_QSTR_apps_slash_stellar_slash_layout_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_ui, + MP_QSTR_layouts, + MP_QSTR_strings, + MP_QSTR_trezor, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_consts, + MP_QSTR_, + MP_QSTR_require_confirm_init, + MP_QSTR_confirm_address, + MP_QSTR_NETWORK_PASSPHRASE_PUBLIC, + MP_QSTR_NETWORK_PASSPHRASE_TESTNET, + MP_QSTR_confirm_metadata, + MP_QSTR_ConfirmOutput, + MP_QSTR_require_confirm_timebounds, + MP_QSTR_confirm_properties, + MP_QSTR_format_timestamp, + MP_QSTR_require_confirm_memo, + MP_QSTR_StellarMemoType, + MP_QSTR_TEXT, + MP_QSTR_ID, + MP_QSTR_Memo_space__paren_open_ID_paren_close_, + MP_QSTR_HASH, + MP_QSTR_RETURN, + MP_QSTR_confirm_action, + MP_QSTR_br_code, + MP_QSTR_confirm_blob, + MP_QSTR_require_confirm_final, + MP_QSTR_format_plural, + MP_QSTR_operation, + MP_QSTR_hold, + MP_QSTR_format_asset, + MP_QSTR_StellarAssetType, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_type, + MP_QSTR_NATIVE, + MP_QSTR_XLM, + MP_QSTR_code, + MP_QSTR_format_amount, + MP_QSTR_AMOUNT_DECIMALS, + MP_QSTR__space_, + MP_QSTR_address, + MP_QSTR_network_passphrase, + MP_QSTR_accounts_match, + MP_QSTR_start, + MP_QSTR_end, + MP_QSTR_memo_type, + MP_QSTR_memo_text, + MP_QSTR_fee, + MP_QSTR_num_operations, + MP_QSTR_asset, + MP_QSTR_amount, +}; + +// constants +static const mp_obj_str_t const_obj_apps_stellar_layout_20 = {{&mp_type_str}, 59208, 56, (const byte*)"\x49\x6d\x70\x6f\x72\x74\x61\x6e\x74\x3a\x20\x4d\x61\x6e\x79\x20\x65\x78\x63\x68\x61\x6e\x67\x65\x73\x20\x72\x65\x71\x75\x69\x72\x65\x20\x61\x20\x6d\x65\x6d\x6f\x20\x77\x68\x65\x6e\x20\x64\x65\x70\x6f\x73\x69\x74\x69\x6e\x67"}; +static const mp_obj_str_t const_obj_apps_stellar_layout_24 = {{&mp_type_str}, 55445, 33, (const byte*)"\x53\x69\x67\x6e\x20\x74\x68\x69\x73\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x6d\x61\x64\x65\x20\x75\x70\x20\x6f\x66\x20"}; +static const mp_obj_str_t const_obj_apps_stellar_layout_26 = {{&mp_type_str}, 45367, 29, (const byte*)"\x53\x74\x65\x6c\x6c\x61\x72\x20\x61\x73\x73\x65\x74\x20\x63\x6f\x64\x65\x20\x69\x73\x20\x6d\x69\x73\x73\x69\x6e\x67"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_stellar_layout[27] = { + MP_ROM_QSTR(MP_QSTR_Initialize_space_signing_space_with), + MP_ROM_QSTR(MP_QSTR__space_your_space_account), + MP_ROM_QSTR(MP_QSTR_Confirm_space_Stellar), + MP_ROM_QSTR(MP_QSTR_confirm_init), + MP_ROM_QSTR(MP_QSTR_testnet_space_network), + MP_ROM_QSTR(MP_QSTR_private_space_network), + MP_ROM_QSTR(MP_QSTR_confirm_init_network), + MP_ROM_QSTR(MP_QSTR_Confirm_space_network), + MP_ROM_QSTR(MP_QSTR_Transaction_space_is_space_on_space__brace_open__brace_close_), + MP_ROM_QSTR(MP_QSTR_confirm_timebounds), + MP_ROM_QSTR(MP_QSTR_Confirm_space_timebounds), + MP_ROM_QSTR(MP_QSTR_Valid_space_from_space__paren_open_UTC_paren_close_), + MP_ROM_QSTR(MP_QSTR__bracket_open_no_space_restriction_bracket_close_), + MP_ROM_QSTR(MP_QSTR_Valid_space_to_space__paren_open_UTC_paren_close_), + MP_ROM_QSTR(MP_QSTR_Memo_space__paren_open_TEXT_paren_close_), + MP_ROM_QSTR(MP_QSTR_Memo_space__paren_open_HASH_paren_close_), + MP_ROM_QSTR(MP_QSTR_Memo_space__paren_open_RETURN_paren_close_), + MP_ROM_QSTR(MP_QSTR_confirm_memo), + MP_ROM_QSTR(MP_QSTR_Confirm_space_memo), + MP_ROM_QSTR(MP_QSTR_No_space_memo_space_set_bang_), + MP_ROM_PTR(&const_obj_apps_stellar_layout_20), + MP_ROM_QSTR(MP_QSTR__brace_open_count_brace_close__space__brace_open_plural_brace_close_), + MP_ROM_QSTR(MP_QSTR_confirm_final), + MP_ROM_QSTR(MP_QSTR_Final_space_confirm), + MP_ROM_PTR(&const_obj_apps_stellar_layout_24), + MP_ROM_QSTR(MP_QSTR__space_and_space_pay_space__brace_open__brace_close__0x0a_for_space_fee_question_), + MP_ROM_PTR(&const_obj_apps_stellar_layout_26), +}; + +static const mp_frozen_module_t frozen_module_apps_stellar_layout = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_stellar_layout, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_stellar_layout, + }, + .rc = &raw_code_apps_stellar_layout__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_stellar_sign_tx +// - original source file: build/firmware/src/apps/stellar/sign_tx.mpy +// - frozen file name: apps/stellar/sign_tx.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/stellar/sign_tx.py, scope apps_stellar_sign_tx__lt_module_gt_ +static const byte fun_data_apps_stellar_sign_tx__lt_module_gt_[33] = { + 0x08,0x0a, // prelude + 0x01, // names: + 0x40,0x4c,0x60,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'auto_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x02, // IMPORT_FROM 'auto_keychain' + 0x16,0x02, // STORE_NAME 'auto_keychain' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'auto_keychain' + 0x11,0x48, // LOAD_NAME '__name__' + 0x34,0x01, // CALL_FUNCTION 1 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x04, // STORE_NAME 'sign_tx' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_stellar_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/stellar/sign_tx.py, scope apps_stellar_sign_tx_sign_tx +static const byte fun_data_apps_stellar_sign_tx_sign_tx[770] = { + 0xaa,0x60,0x90,0x02, // prelude + 0x04,0x49,0x4a, // names: sign_tx, msg, keychain + 0x80,0x0c,0x4b,0x2b,0x2b,0x2b,0x30,0x30,0x4b,0x50,0x3b,0x4c,0x4d,0x2a,0x2d,0x45,0x26,0x46,0x66,0x40,0x30,0x2c,0x4d,0x29,0x48,0x2c,0x2c,0x6c,0x23,0x8e,0x07,0x6f,0x2a,0x2c,0x2c,0x25,0x45,0x2b,0x48,0x27,0x48,0x26,0x26,0x2a,0x26,0x2b,0x27,0x48,0x27,0x26,0x2c,0x2c,0x4d,0x27,0x26,0x31,0x4e,0x26,0x6d,0x40,0x2b,0x28,0x33,0x75,0x60,0x4a,0x6e,0x2b,0x6f, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'hexlify' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'ubinascii' + 0x1c,0x05, // IMPORT_FROM 'hexlify' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'ed25519' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x07, // IMPORT_FROM 'ed25519' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x09, // IMPORT_FROM 'sha256' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'StellarMemoType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.enums' + 0x1c,0x0b, // IMPORT_FROM 'StellarMemoType' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'StellarSignedTx' + 0x10,0x0e, // LOAD_CONST_STRING 'StellarTxOpRequest' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0f, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0d, // IMPORT_FROM 'StellarSignedTx' + 0xc6, // STORE_FAST 6 + 0x1c,0x0e, // IMPORT_FROM 'StellarTxOpRequest' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'DataError' + 0x10,0x11, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x12, // IMPORT_NAME 'trezor.wire' + 0x1c,0x10, // IMPORT_FROM 'DataError' + 0xc8, // STORE_FAST 8 + 0x1c,0x11, // IMPORT_FROM 'ProcessError' + 0xc9, // STORE_FAST 9 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'call_any' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'trezor.wire.context' + 0x1c,0x13, // IMPORT_FROM 'call_any' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x15, // LOAD_CONST_STRING 'paths' + 0x10,0x16, // LOAD_CONST_STRING 'seed' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x17, // IMPORT_NAME 'apps.common' + 0x1c,0x15, // IMPORT_FROM 'paths' + 0xcb, // STORE_FAST 11 + 0x1c,0x16, // IMPORT_FROM 'seed' + 0xcc, // STORE_FAST 12 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x18, // LOAD_CONST_STRING 'consts' + 0x10,0x19, // LOAD_CONST_STRING 'helpers' + 0x10,0x1a, // LOAD_CONST_STRING 'layout' + 0x10,0x1b, // LOAD_CONST_STRING 'writers' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x1c, // IMPORT_NAME '' + 0x1c,0x18, // IMPORT_FROM 'consts' + 0xcd, // STORE_FAST 13 + 0x1c,0x19, // IMPORT_FROM 'helpers' + 0xce, // STORE_FAST 14 + 0x1c,0x1a, // IMPORT_FROM 'layout' + 0xcf, // STORE_FAST 15 + 0x1c,0x1b, // IMPORT_FROM 'writers' + 0x26,0x10, // STORE_FAST_N 16 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1d, // LOAD_CONST_STRING 'process_operation' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1e, // IMPORT_NAME 'operations' + 0x1c,0x1d, // IMPORT_FROM 'process_operation' + 0x26,0x11, // STORE_FAST_N 17 + 0x59, // POP_TOP + 0xbb, // LOAD_FAST 11 + 0x14,0x1f, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'address_n' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x21, // LOAD_METHOD 'derive' + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x12, // STORE_FAST_N 18 + 0xbc, // LOAD_FAST 12 + 0x14,0x22, // LOAD_METHOD 'remove_ed25519_prefix' + 0x24,0x12, // LOAD_FAST_N 18 + 0x14,0x23, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x13, // STORE_FAST_N 19 + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'num_operations' + 0x26,0x14, // STORE_FAST_N 20 + 0x24,0x14, // LOAD_FAST_N 20 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb9, // LOAD_FAST 9 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x4b, // LOAD_GLOBAL 'bytearray' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x15, // STORE_FAST_N 21 + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'network_passphrase' + 0x14,0x26, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x27, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x16, // STORE_FAST_N 22 + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x28, // LOAD_METHOD 'write_bytes_fixed' + 0x24,0x15, // LOAD_FAST_N 21 + 0x24,0x16, // LOAD_FAST_N 22 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x28, // LOAD_METHOD 'write_bytes_fixed' + 0x24,0x15, // LOAD_FAST_N 21 + 0xbd, // LOAD_FAST 13 + 0x13,0x29, // LOAD_ATTR 'TX_TYPE' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x14,0x2a, // LOAD_METHOD 'address_from_public_key' + 0x24,0x13, // LOAD_FAST_N 19 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x17, // STORE_FAST_N 23 + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'source_account' + 0x24,0x17, // LOAD_FAST_N 23 + 0xd9, // BINARY_OP 2 __eq__ + 0x26,0x18, // STORE_FAST_N 24 + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x2c, // LOAD_METHOD 'write_pubkey' + 0x24,0x15, // LOAD_FAST_N 21 + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'source_account' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x2d, // LOAD_METHOD 'write_uint32' + 0x24,0x15, // LOAD_FAST_N 21 + 0xb0, // LOAD_FAST 0 + 0x13,0x2e, // LOAD_ATTR 'fee' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x2f, // LOAD_METHOD 'write_uint64' + 0x24,0x15, // LOAD_FAST_N 21 + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'sequence_number' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xbf, // LOAD_FAST 15 + 0x14,0x31, // LOAD_METHOD 'require_confirm_init' + 0xb0, // LOAD_FAST 0 + 0x13,0x2b, // LOAD_ATTR 'source_account' + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'network_passphrase' + 0x24,0x18, // LOAD_FAST_N 24 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xbf, // LOAD_FAST 15 + 0x14,0x32, // LOAD_METHOD 'require_confirm_timebounds' + 0xb0, // LOAD_FAST 0 + 0x13,0x33, // LOAD_ATTR 'timebounds_start' + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'timebounds_end' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x35, // LOAD_METHOD 'write_bool' + 0x24,0x15, // LOAD_FAST_N 21 + 0x52, // LOAD_CONST_TRUE + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x2f, // LOAD_METHOD 'write_uint64' + 0x24,0x15, // LOAD_FAST_N 21 + 0xb0, // LOAD_FAST 0 + 0x13,0x33, // LOAD_ATTR 'timebounds_start' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x2f, // LOAD_METHOD 'write_uint64' + 0x24,0x15, // LOAD_FAST_N 21 + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'timebounds_end' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'memo_type' + 0x26,0x19, // STORE_FAST_N 25 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'memo_text' + 0x26,0x1a, // STORE_FAST_N 26 + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x2d, // LOAD_METHOD 'write_uint32' + 0x24,0x15, // LOAD_FAST_N 21 + 0x24,0x19, // LOAD_FAST_N 25 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x24,0x19, // LOAD_FAST_N 25 + 0xb5, // LOAD_FAST 5 + 0x13,0x38, // LOAD_ATTR 'NONE' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x10,0x1c, // LOAD_CONST_STRING '' + 0x26,0x1b, // STORE_FAST_N 27 + 0x42,0xa2,0x81, // JUMP 162 + 0x24,0x19, // LOAD_FAST_N 25 + 0xb5, // LOAD_FAST 5 + 0x13,0x39, // LOAD_ATTR 'TEXT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6e, // POP_JUMP_IF_FALSE 46 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb8, // LOAD_FAST 8 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x4c, // LOAD_GLOBAL 'len' + 0x24,0x1a, // LOAD_FAST_N 26 + 0x34,0x01, // CALL_FUNCTION 1 + 0x9c, // LOAD_CONST_SMALL_INT 28 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb9, // LOAD_FAST 9 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x3a, // LOAD_METHOD 'write_string' + 0x24,0x15, // LOAD_FAST_N 21 + 0x24,0x1a, // LOAD_FAST_N 26 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x24,0x1a, // LOAD_FAST_N 26 + 0x26,0x1b, // STORE_FAST_N 27 + 0x42,0xec,0x80, // JUMP 108 + 0x24,0x19, // LOAD_FAST_N 25 + 0xb5, // LOAD_FAST 5 + 0x13,0x3b, // LOAD_ATTR 'ID' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x65, // POP_JUMP_IF_FALSE 37 + 0xb0, // LOAD_FAST 0 + 0x13,0x3c, // LOAD_ATTR 'memo_id' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb8, // LOAD_FAST 8 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x2f, // LOAD_METHOD 'write_uint64' + 0x24,0x15, // LOAD_FAST_N 21 + 0xb0, // LOAD_FAST 0 + 0x13,0x3c, // LOAD_ATTR 'memo_id' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x4d, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x3c, // LOAD_ATTR 'memo_id' + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x1b, // STORE_FAST_N 27 + 0x42,0xbf,0x80, // JUMP 63 + 0x24,0x19, // LOAD_FAST_N 25 + 0xb5, // LOAD_FAST 5 + 0x13,0x3d, // LOAD_ATTR 'HASH' + 0xb5, // LOAD_FAST 5 + 0x13,0x3e, // LOAD_ATTR 'RETURN' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0x44,0x6c, // POP_JUMP_IF_FALSE 44 + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'memo_hash' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb8, // LOAD_FAST 8 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x28, // LOAD_METHOD 'write_bytes_fixed' + 0x24,0x15, // LOAD_FAST_N 21 + 0x12,0x4b, // LOAD_GLOBAL 'bytearray' + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'memo_hash' + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'memo_hash' + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x40, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x1b, // STORE_FAST_N 27 + 0x42,0x46, // JUMP 6 + 0xb9, // LOAD_FAST 9 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbf, // LOAD_FAST 15 + 0x14,0x41, // LOAD_METHOD 'require_confirm_memo' + 0x24,0x19, // LOAD_FAST_N 25 + 0x24,0x1b, // LOAD_FAST_N 27 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x2d, // LOAD_METHOD 'write_uint32' + 0x24,0x15, // LOAD_FAST_N 21 + 0x24,0x14, // LOAD_FAST_N 20 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x24,0x14, // LOAD_FAST_N 20 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x64, // JUMP 36 + 0x57, // DUP_TOP + 0x26,0x1c, // STORE_FAST_N 28 + 0xba, // LOAD_FAST 10 + 0xb7, // LOAD_FAST 7 + 0x34,0x00, // CALL_FUNCTION 0 + 0xbd, // LOAD_FAST 13 + 0x13,0x42, // LOAD_ATTR 'op_codes' + 0x14,0x43, // LOAD_METHOD 'keys' + 0x36,0x00, // CALL_METHOD 0 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x35,0x02, // CALL_FUNCTION_VAR_KW 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x26,0x1d, // STORE_FAST_N 29 + 0x24,0x11, // LOAD_FAST_N 17 + 0x24,0x15, // LOAD_FAST_N 21 + 0x24,0x1d, // LOAD_FAST_N 29 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x17, // POP_JUMP_IF_TRUE -41 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x24,0x10, // LOAD_FAST_N 16 + 0x14,0x2d, // LOAD_METHOD 'write_uint32' + 0x24,0x15, // LOAD_FAST_N 21 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xbf, // LOAD_FAST 15 + 0x14,0x44, // LOAD_METHOD 'require_confirm_final' + 0xb0, // LOAD_FAST 0 + 0x13,0x2e, // LOAD_ATTR 'fee' + 0x24,0x14, // LOAD_FAST_N 20 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x24,0x15, // LOAD_FAST_N 21 + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x27, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x1e, // STORE_FAST_N 30 + 0xb3, // LOAD_FAST 3 + 0x14,0x45, // LOAD_METHOD 'sign' + 0x24,0x12, // LOAD_FAST_N 18 + 0x14,0x46, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0x24,0x1e, // LOAD_FAST_N 30 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x1f, // STORE_FAST_N 31 + 0xb6, // LOAD_FAST 6 + 0x10,0x23, // LOAD_CONST_STRING 'public_key' + 0x24,0x13, // LOAD_FAST_N 19 + 0x10,0x47, // LOAD_CONST_STRING 'signature' + 0x24,0x1f, // LOAD_FAST_N 31 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_sign_tx_sign_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_sign_tx_sign_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 770, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 38, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 4, + .line_info = fun_data_apps_stellar_sign_tx_sign_tx + 7, + .line_info_top = fun_data_apps_stellar_sign_tx_sign_tx + 76, + .opcodes = fun_data_apps_stellar_sign_tx_sign_tx + 76, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_stellar_sign_tx__lt_module_gt_[] = { + &raw_code_apps_stellar_sign_tx_sign_tx, +}; + +static const mp_raw_code_t raw_code_apps_stellar_sign_tx__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_stellar_sign_tx__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = (void *)&children_apps_stellar_sign_tx__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_stellar_sign_tx__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_stellar_sign_tx__lt_module_gt_ + 7, + .opcodes = fun_data_apps_stellar_sign_tx__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_stellar_sign_tx[78] = { + MP_QSTR_apps_slash_stellar_slash_sign_tx_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_auto_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_sign_tx, + MP_QSTR_hexlify, + MP_QSTR_ubinascii, + MP_QSTR_ed25519, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_StellarMemoType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_StellarSignedTx, + MP_QSTR_StellarTxOpRequest, + MP_QSTR_trezor_dot_messages, + MP_QSTR_DataError, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_call_any, + MP_QSTR_trezor_dot_wire_dot_context, + MP_QSTR_paths, + MP_QSTR_seed, + MP_QSTR_apps_dot_common, + MP_QSTR_consts, + MP_QSTR_helpers, + MP_QSTR_layout, + MP_QSTR_writers, + MP_QSTR_, + MP_QSTR_process_operation, + MP_QSTR_operations, + MP_QSTR_validate_path, + MP_QSTR_address_n, + MP_QSTR_derive, + MP_QSTR_remove_ed25519_prefix, + MP_QSTR_public_key, + MP_QSTR_num_operations, + MP_QSTR_network_passphrase, + MP_QSTR_encode, + MP_QSTR_digest, + MP_QSTR_write_bytes_fixed, + MP_QSTR_TX_TYPE, + MP_QSTR_address_from_public_key, + MP_QSTR_source_account, + MP_QSTR_write_pubkey, + MP_QSTR_write_uint32, + MP_QSTR_fee, + MP_QSTR_write_uint64, + MP_QSTR_sequence_number, + MP_QSTR_require_confirm_init, + MP_QSTR_require_confirm_timebounds, + MP_QSTR_timebounds_start, + MP_QSTR_timebounds_end, + MP_QSTR_write_bool, + MP_QSTR_memo_type, + MP_QSTR_memo_text, + MP_QSTR_NONE, + MP_QSTR_TEXT, + MP_QSTR_write_string, + MP_QSTR_ID, + MP_QSTR_memo_id, + MP_QSTR_HASH, + MP_QSTR_RETURN, + MP_QSTR_memo_hash, + MP_QSTR_decode, + MP_QSTR_require_confirm_memo, + MP_QSTR_op_codes, + MP_QSTR_keys, + MP_QSTR_require_confirm_final, + MP_QSTR_sign, + MP_QSTR_private_key, + MP_QSTR_signature, + MP_QSTR___name__, + MP_QSTR_msg, + MP_QSTR_keychain, + MP_QSTR_bytearray, + MP_QSTR_len, + MP_QSTR_str, +}; + +// constants +static const mp_obj_str_t const_obj_apps_stellar_sign_tx_0 = {{&mp_type_str}, 16118, 43, (const byte*)"\x53\x74\x65\x6c\x6c\x61\x72\x3a\x20\x41\x74\x20\x6c\x65\x61\x73\x74\x20\x6f\x6e\x65\x20\x6f\x70\x65\x72\x61\x74\x69\x6f\x6e\x20\x69\x73\x20\x72\x65\x71\x75\x69\x72\x65\x64"}; +static const mp_obj_str_t const_obj_apps_stellar_sign_tx_1 = {{&mp_type_str}, 61341, 26, (const byte*)"\x53\x74\x65\x6c\x6c\x61\x72\x3a\x20\x4d\x69\x73\x73\x69\x6e\x67\x20\x6d\x65\x6d\x6f\x20\x74\x65\x78\x74"}; +static const mp_obj_str_t const_obj_apps_stellar_sign_tx_2 = {{&mp_type_str}, 32208, 46, (const byte*)"\x53\x74\x65\x6c\x6c\x61\x72\x3a\x20\x6d\x61\x78\x20\x6c\x65\x6e\x67\x74\x68\x20\x6f\x66\x20\x61\x20\x6d\x65\x6d\x6f\x20\x74\x65\x78\x74\x20\x69\x73\x20\x32\x38\x20\x62\x79\x74\x65\x73"}; +static const mp_obj_str_t const_obj_apps_stellar_sign_tx_4 = {{&mp_type_str}, 28658, 26, (const byte*)"\x53\x74\x65\x6c\x6c\x61\x72\x3a\x20\x4d\x69\x73\x73\x69\x6e\x67\x20\x6d\x65\x6d\x6f\x20\x68\x61\x73\x68"}; +static const mp_obj_str_t const_obj_apps_stellar_sign_tx_5 = {{&mp_type_str}, 54679, 25, (const byte*)"\x53\x74\x65\x6c\x6c\x61\x72\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x6d\x65\x6d\x6f\x20\x74\x79\x70\x65"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_stellar_sign_tx[6] = { + MP_ROM_PTR(&const_obj_apps_stellar_sign_tx_0), + MP_ROM_PTR(&const_obj_apps_stellar_sign_tx_1), + MP_ROM_PTR(&const_obj_apps_stellar_sign_tx_2), + MP_ROM_QSTR(MP_QSTR_Stellar_colon__space_Missing_space_memo_space_id), + MP_ROM_PTR(&const_obj_apps_stellar_sign_tx_4), + MP_ROM_PTR(&const_obj_apps_stellar_sign_tx_5), +}; + +static const mp_frozen_module_t frozen_module_apps_stellar_sign_tx = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_stellar_sign_tx, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_stellar_sign_tx, + }, + .rc = &raw_code_apps_stellar_sign_tx__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_stellar_writers +// - original source file: build/firmware/src/apps/stellar/writers.mpy +// - frozen file name: apps/stellar/writers.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/stellar/writers.py, scope apps_stellar_writers__lt_module_gt_ +static const byte fun_data_apps_stellar_writers__lt_module_gt_[56] = { + 0x08,0x18, // prelude + 0x01, // names: + 0x40,0x6a,0x26,0x26,0x46,0x60,0x60,0x84,0x0c,0x64,0x40, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'apps.common.writers' + 0x13,0x03, // LOAD_ATTR 'common' + 0x13,0x04, // LOAD_ATTR 'writers' + 0x16,0x04, // STORE_NAME 'writers' + 0x11,0x04, // LOAD_NAME 'writers' + 0x13,0x05, // LOAD_ATTR 'write_bytes_fixed' + 0x16,0x05, // STORE_NAME 'write_bytes_fixed' + 0x11,0x04, // LOAD_NAME 'writers' + 0x13,0x06, // LOAD_ATTR 'write_uint32_be' + 0x16,0x0f, // STORE_NAME 'write_uint32' + 0x11,0x04, // LOAD_NAME 'writers' + 0x13,0x07, // LOAD_ATTR 'write_uint64_be' + 0x16,0x10, // STORE_NAME 'write_uint64' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x08, // STORE_NAME 'write_string' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0b, // STORE_NAME 'write_bool' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0c, // STORE_NAME 'write_pubkey' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_stellar_writers__lt_module_gt_ +// frozen bytecode for file apps/stellar/writers.py, scope apps_stellar_writers_write_string +static const byte fun_data_apps_stellar_writers_write_string[83] = { + 0x52,0x16, // prelude + 0x08,0x11,0x12, // names: write_string, w, s + 0x80,0x10,0x40,0x32,0x2b,0x49,0x28,0x23, // code info + 0x12,0x13, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x14, // LOAD_GLOBAL 'str' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb1, // LOAD_FAST 1 + 0x14,0x09, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x42,0x41, // JUMP 1 + 0xb1, // LOAD_FAST 1 + 0xc2, // STORE_FAST 2 + 0x12,0x0f, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0x12,0x15, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'writers' + 0x14,0x0a, // LOAD_METHOD 'write_bytes_unchecked' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x15, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xf8, // BINARY_OP 33 __mod__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x04, // LOAD_GLOBAL 'writers' + 0x14,0x0a, // LOAD_METHOD 'write_bytes_unchecked' + 0xb0, // LOAD_FAST 0 + 0x12,0x16, // LOAD_GLOBAL 'bytes' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x01, // BUILD_LIST 1 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xb3, // LOAD_FAST 3 + 0xf3, // BINARY_OP 28 __sub__ + 0xf4, // BINARY_OP 29 __mul__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_writers_write_string = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_writers_write_string, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 83, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_stellar_writers_write_string + 5, + .line_info_top = fun_data_apps_stellar_writers_write_string + 13, + .opcodes = fun_data_apps_stellar_writers_write_string + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_writers__lt_module_gt_ +// frozen bytecode for file apps/stellar/writers.py, scope apps_stellar_writers_write_bool +static const byte fun_data_apps_stellar_writers_write_bool[22] = { + 0x22,0x0a, // prelude + 0x0b,0x11,0x17, // names: write_bool, w, val + 0x80,0x1d, // code info + 0x12,0x0f, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x42,0x41, // JUMP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_writers_write_bool = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_writers_write_bool, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 11, + .line_info = fun_data_apps_stellar_writers_write_bool + 5, + .line_info_top = fun_data_apps_stellar_writers_write_bool + 7, + .opcodes = fun_data_apps_stellar_writers_write_bool + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_writers__lt_module_gt_ +// frozen bytecode for file apps/stellar/writers.py, scope apps_stellar_writers_write_pubkey +static const byte fun_data_apps_stellar_writers_write_pubkey[42] = { + 0x3a,0x0e, // prelude + 0x0c,0x11,0x18, // names: write_pubkey, w, address + 0x80,0x21,0x6b,0x27, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0d, // LOAD_CONST_STRING 'public_key_from_address' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'helpers' + 0x1c,0x0d, // IMPORT_FROM 'public_key_from_address' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'writers' + 0x14,0x05, // LOAD_METHOD 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_writers_write_pubkey = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_writers_write_pubkey, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_stellar_writers_write_pubkey + 5, + .line_info_top = fun_data_apps_stellar_writers_write_pubkey + 9, + .opcodes = fun_data_apps_stellar_writers_write_pubkey + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_stellar_writers__lt_module_gt_[] = { + &raw_code_apps_stellar_writers_write_string, + &raw_code_apps_stellar_writers_write_bool, + &raw_code_apps_stellar_writers_write_pubkey, +}; + +static const mp_raw_code_t raw_code_apps_stellar_writers__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_stellar_writers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 56, + #endif + .children = (void *)&children_apps_stellar_writers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_stellar_writers__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_stellar_writers__lt_module_gt_ + 14, + .opcodes = fun_data_apps_stellar_writers__lt_module_gt_ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_stellar_writers[25] = { + MP_QSTR_apps_slash_stellar_slash_writers_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_apps_dot_common_dot_writers, + MP_QSTR_common, + MP_QSTR_writers, + MP_QSTR_write_bytes_fixed, + MP_QSTR_write_uint32_be, + MP_QSTR_write_uint64_be, + MP_QSTR_write_string, + MP_QSTR_encode, + MP_QSTR_write_bytes_unchecked, + MP_QSTR_write_bool, + MP_QSTR_write_pubkey, + MP_QSTR_public_key_from_address, + MP_QSTR_helpers, + MP_QSTR_write_uint32, + MP_QSTR_write_uint64, + MP_QSTR_w, + MP_QSTR_s, + MP_QSTR_isinstance, + MP_QSTR_str, + MP_QSTR_len, + MP_QSTR_bytes, + MP_QSTR_val, + MP_QSTR_address, +}; + +static const mp_frozen_module_t frozen_module_apps_stellar_writers = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_stellar_writers, + .obj_table = NULL, + }, + .rc = &raw_code_apps_stellar_writers__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_stellar_operations___init__ +// - original source file: build/firmware/src/apps/stellar/operations/__init__.mpy +// - frozen file name: apps/stellar/operations/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/stellar/operations/__init__.py, scope apps_stellar_operations___init____lt_module_gt_ +static const byte fun_data_apps_stellar_operations___init____lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x40, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'process_operation' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_stellar_operations___init____lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/__init__.py, scope apps_stellar_operations___init___process_operation +static const byte fun_data_apps_stellar_operations___init___process_operation[543] = { + 0xe2,0x40,0x66, // prelude + 0x02,0x37,0x38, // names: process_operation, w, op + 0x80,0x0c,0x47,0x30,0x50,0x25,0x2c,0x2a,0x4d,0x2a,0x2a,0x2b,0x2a,0x2a,0x2b,0x2a,0x2a,0x2b,0x2a,0x2a,0x2b,0x2a,0x2a,0x2b,0x2a,0x2a,0x2b,0x2a,0x2a,0x2b,0x2a,0x2a,0x2b,0x2a,0x2a,0x2b,0x2a,0x2a,0x2b,0x2a,0x2a,0x2b,0x2a,0x2a,0x2a,0x2a,0x2a,0x4a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'trezor.messages' + 0x13,0x04, // LOAD_ATTR 'messages' + 0xc2, // STORE_FAST 2 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x05, // LOAD_CONST_STRING 'consts' + 0x10,0x06, // LOAD_CONST_STRING 'writers' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x07, // IMPORT_NAME '' + 0x1c,0x05, // IMPORT_FROM 'consts' + 0xc3, // STORE_FAST 3 + 0x1c,0x06, // IMPORT_FROM 'writers' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x08, // LOAD_CONST_STRING 'layout' + 0x10,0x09, // LOAD_CONST_STRING 'serialize' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x07, // IMPORT_NAME '' + 0x1c,0x08, // IMPORT_FROM 'layout' + 0xc5, // STORE_FAST 5 + 0x1c,0x09, // IMPORT_FROM 'serialize' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'source_account' + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb5, // LOAD_FAST 5 + 0x14,0x0b, // LOAD_METHOD 'confirm_source_account' + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'source_account' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x0c, // LOAD_METHOD 'write_account' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x0a, // LOAD_ATTR 'source_account' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x0d, // LOAD_METHOD 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x14,0x0e, // LOAD_METHOD 'get_op_code' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x0f, // LOAD_ATTR 'StellarAccountMergeOp' + 0x14,0x10, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb5, // LOAD_FAST 5 + 0x14,0x11, // LOAD_METHOD 'confirm_account_merge_op' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x12, // LOAD_METHOD 'write_account_merge_op' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xf9,0x82, // JUMP 377 + 0xb2, // LOAD_FAST 2 + 0x13,0x13, // LOAD_ATTR 'StellarAllowTrustOp' + 0x14,0x10, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb5, // LOAD_FAST 5 + 0x14,0x14, // LOAD_METHOD 'confirm_allow_trust_op' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x15, // LOAD_METHOD 'write_allow_trust_op' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xda,0x82, // JUMP 346 + 0xb2, // LOAD_FAST 2 + 0x13,0x16, // LOAD_ATTR 'StellarBumpSequenceOp' + 0x14,0x10, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb5, // LOAD_FAST 5 + 0x14,0x17, // LOAD_METHOD 'confirm_bump_sequence_op' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x18, // LOAD_METHOD 'write_bump_sequence_op' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xbb,0x82, // JUMP 315 + 0xb2, // LOAD_FAST 2 + 0x13,0x19, // LOAD_ATTR 'StellarChangeTrustOp' + 0x14,0x10, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb5, // LOAD_FAST 5 + 0x14,0x1a, // LOAD_METHOD 'confirm_change_trust_op' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x1b, // LOAD_METHOD 'write_change_trust_op' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x9c,0x82, // JUMP 284 + 0xb2, // LOAD_FAST 2 + 0x13,0x1c, // LOAD_ATTR 'StellarCreateAccountOp' + 0x14,0x10, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb5, // LOAD_FAST 5 + 0x14,0x1d, // LOAD_METHOD 'confirm_create_account_op' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x1e, // LOAD_METHOD 'write_create_account_op' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xfd,0x81, // JUMP 253 + 0xb2, // LOAD_FAST 2 + 0x13,0x1f, // LOAD_ATTR 'StellarCreatePassiveSellOfferOp' + 0x14,0x10, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb5, // LOAD_FAST 5 + 0x14,0x20, // LOAD_METHOD 'confirm_create_passive_sell_offer_op' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x21, // LOAD_METHOD 'write_create_passive_sell_offer_op' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xde,0x81, // JUMP 222 + 0xb2, // LOAD_FAST 2 + 0x13,0x22, // LOAD_ATTR 'StellarManageDataOp' + 0x14,0x10, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb5, // LOAD_FAST 5 + 0x14,0x23, // LOAD_METHOD 'confirm_manage_data_op' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x24, // LOAD_METHOD 'write_manage_data_op' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xbf,0x81, // JUMP 191 + 0xb2, // LOAD_FAST 2 + 0x13,0x25, // LOAD_ATTR 'StellarManageBuyOfferOp' + 0x14,0x10, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb5, // LOAD_FAST 5 + 0x14,0x26, // LOAD_METHOD 'confirm_manage_buy_offer_op' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x27, // LOAD_METHOD 'write_manage_buy_offer_op' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xa0,0x81, // JUMP 160 + 0xb2, // LOAD_FAST 2 + 0x13,0x28, // LOAD_ATTR 'StellarManageSellOfferOp' + 0x14,0x10, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb5, // LOAD_FAST 5 + 0x14,0x29, // LOAD_METHOD 'confirm_manage_sell_offer_op' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x2a, // LOAD_METHOD 'write_manage_sell_offer_op' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x81,0x81, // JUMP 129 + 0xb2, // LOAD_FAST 2 + 0x13,0x2b, // LOAD_ATTR 'StellarPathPaymentStrictReceiveOp' + 0x14,0x10, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb5, // LOAD_FAST 5 + 0x14,0x2c, // LOAD_METHOD 'confirm_path_payment_strict_receive_op' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x2d, // LOAD_METHOD 'write_path_payment_strict_receive_op' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xe2,0x80, // JUMP 98 + 0xb2, // LOAD_FAST 2 + 0x13,0x2e, // LOAD_ATTR 'StellarPathPaymentStrictSendOp' + 0x14,0x10, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xb5, // LOAD_FAST 5 + 0x14,0x2f, // LOAD_METHOD 'confirm_path_payment_strict_send_op' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x30, // LOAD_METHOD 'write_path_payment_strict_send_op' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xc3,0x80, // JUMP 67 + 0xb2, // LOAD_FAST 2 + 0x13,0x31, // LOAD_ATTR 'StellarPaymentOp' + 0x14,0x10, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0xb5, // LOAD_FAST 5 + 0x14,0x32, // LOAD_METHOD 'confirm_payment_op' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x33, // LOAD_METHOD 'write_payment_op' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x65, // JUMP 37 + 0xb2, // LOAD_FAST 2 + 0x13,0x34, // LOAD_ATTR 'StellarSetOptionsOp' + 0x14,0x10, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0xb5, // LOAD_FAST 5 + 0x14,0x35, // LOAD_METHOD 'confirm_set_options_op' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x14,0x36, // LOAD_METHOD 'write_set_options_op' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0x12,0x39, // LOAD_GLOBAL 'ValueError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations___init___process_operation = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_operations___init___process_operation, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 543, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_stellar_operations___init___process_operation + 6, + .line_info_top = fun_data_apps_stellar_operations___init___process_operation + 54, + .opcodes = fun_data_apps_stellar_operations___init___process_operation + 54, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_stellar_operations___init____lt_module_gt_[] = { + &raw_code_apps_stellar_operations___init___process_operation, +}; + +static const mp_raw_code_t raw_code_apps_stellar_operations___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_stellar_operations___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_stellar_operations___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_stellar_operations___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_stellar_operations___init____lt_module_gt_ + 6, + .opcodes = fun_data_apps_stellar_operations___init____lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_stellar_operations___init__[58] = { + MP_QSTR_apps_slash_stellar_slash_operations_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_process_operation, + MP_QSTR_trezor_dot_messages, + MP_QSTR_messages, + MP_QSTR_consts, + MP_QSTR_writers, + MP_QSTR_, + MP_QSTR_layout, + MP_QSTR_serialize, + MP_QSTR_source_account, + MP_QSTR_confirm_source_account, + MP_QSTR_write_account, + MP_QSTR_write_uint32, + MP_QSTR_get_op_code, + MP_QSTR_StellarAccountMergeOp, + MP_QSTR_is_type_of, + MP_QSTR_confirm_account_merge_op, + MP_QSTR_write_account_merge_op, + MP_QSTR_StellarAllowTrustOp, + MP_QSTR_confirm_allow_trust_op, + MP_QSTR_write_allow_trust_op, + MP_QSTR_StellarBumpSequenceOp, + MP_QSTR_confirm_bump_sequence_op, + MP_QSTR_write_bump_sequence_op, + MP_QSTR_StellarChangeTrustOp, + MP_QSTR_confirm_change_trust_op, + MP_QSTR_write_change_trust_op, + MP_QSTR_StellarCreateAccountOp, + MP_QSTR_confirm_create_account_op, + MP_QSTR_write_create_account_op, + MP_QSTR_StellarCreatePassiveSellOfferOp, + MP_QSTR_confirm_create_passive_sell_offer_op, + MP_QSTR_write_create_passive_sell_offer_op, + MP_QSTR_StellarManageDataOp, + MP_QSTR_confirm_manage_data_op, + MP_QSTR_write_manage_data_op, + MP_QSTR_StellarManageBuyOfferOp, + MP_QSTR_confirm_manage_buy_offer_op, + MP_QSTR_write_manage_buy_offer_op, + MP_QSTR_StellarManageSellOfferOp, + MP_QSTR_confirm_manage_sell_offer_op, + MP_QSTR_write_manage_sell_offer_op, + MP_QSTR_StellarPathPaymentStrictReceiveOp, + MP_QSTR_confirm_path_payment_strict_receive_op, + MP_QSTR_write_path_payment_strict_receive_op, + MP_QSTR_StellarPathPaymentStrictSendOp, + MP_QSTR_confirm_path_payment_strict_send_op, + MP_QSTR_write_path_payment_strict_send_op, + MP_QSTR_StellarPaymentOp, + MP_QSTR_confirm_payment_op, + MP_QSTR_write_payment_op, + MP_QSTR_StellarSetOptionsOp, + MP_QSTR_confirm_set_options_op, + MP_QSTR_write_set_options_op, + MP_QSTR_w, + MP_QSTR_op, + MP_QSTR_ValueError, +}; + +// constants + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_stellar_operations___init__[1] = { + MP_ROM_QSTR(MP_QSTR_Unknown_space_operation), +}; + +static const mp_frozen_module_t frozen_module_apps_stellar_operations___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_stellar_operations___init__, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_stellar_operations___init__, + }, + .rc = &raw_code_apps_stellar_operations___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_stellar_operations_layout +// - original source file: build/firmware/src/apps/stellar/operations/layout.mpy +// - frozen file name: apps/stellar/operations/layout.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/stellar/operations/layout.py, scope apps_stellar_operations_layout__lt_module_gt_ +static const byte fun_data_apps_stellar_operations_layout__lt_module_gt_[185] = { + 0x28,0x56, // prelude + 0x01, // names: + 0x40,0x1f,0x85,0x07,0x52,0x4c,0x80,0x14,0x84,0x09,0x84,0x0b,0x84,0x09,0x84,0x09,0x84,0x0a,0x84,0x0b,0x84,0x07,0x64,0x20,0x64,0x20,0x84,0x0a,0x84,0x2a,0x84,0x13,0x84,0x13,0x84,0x13,0x84,0x08,0x84,0x46,0x84,0x0f, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'confirm_address' + 0x10,0x03, // LOAD_CONST_STRING 'confirm_amount' + 0x10,0x04, // LOAD_CONST_STRING 'confirm_metadata' + 0x10,0x05, // LOAD_CONST_STRING 'confirm_output' + 0x10,0x06, // LOAD_CONST_STRING 'confirm_properties' + 0x2a,0x05, // BUILD_TUPLE 5 + 0x1b,0x07, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x02, // IMPORT_FROM 'confirm_address' + 0x16,0x02, // STORE_NAME 'confirm_address' + 0x1c,0x03, // IMPORT_FROM 'confirm_amount' + 0x16,0x03, // STORE_NAME 'confirm_amount' + 0x1c,0x04, // IMPORT_FROM 'confirm_metadata' + 0x16,0x04, // STORE_NAME 'confirm_metadata' + 0x1c,0x05, // IMPORT_FROM 'confirm_output' + 0x16,0x05, // STORE_NAME 'confirm_output' + 0x1c,0x06, // IMPORT_FROM 'confirm_properties' + 0x16,0x06, // STORE_NAME 'confirm_properties' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'DataError' + 0x10,0x09, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0a, // IMPORT_NAME 'trezor.wire' + 0x1c,0x08, // IMPORT_FROM 'DataError' + 0x16,0x08, // STORE_NAME 'DataError' + 0x1c,0x09, // IMPORT_FROM 'ProcessError' + 0x16,0x09, // STORE_NAME 'ProcessError' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x0b, // LOAD_CONST_STRING 'format_amount' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'layout' + 0x1c,0x0b, // IMPORT_FROM 'format_amount' + 0x16,0x0b, // STORE_NAME 'format_amount' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0d, // STORE_NAME 'confirm_source_account' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0e, // STORE_NAME 'confirm_allow_trust_op' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x13, // STORE_NAME 'confirm_account_merge_op' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x15, // STORE_NAME 'confirm_bump_sequence_op' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x18, // STORE_NAME 'confirm_change_trust_op' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x1d, // STORE_NAME 'confirm_create_account_op' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x21, // STORE_NAME 'confirm_create_passive_sell_offer_op' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x23, // STORE_NAME 'confirm_manage_buy_offer_op' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x24, // STORE_NAME 'confirm_manage_sell_offer_op' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x25, // STORE_NAME '_confirm_manage_offer_op_common' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x2c, // STORE_NAME '_confirm_offer' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x38, // STORE_NAME 'confirm_manage_data_op' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x42, // STORE_NAME 'confirm_path_payment_strict_receive_op' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x49, // STORE_NAME 'confirm_path_payment_strict_send_op' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x16,0x4d, // STORE_NAME 'confirm_payment_op' + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x16,0x4e, // STORE_NAME 'confirm_set_options_op' + 0x32,0x10, // MAKE_FUNCTION 16 + 0x16,0x70, // STORE_NAME '_format_flags' + 0x32,0x11, // MAKE_FUNCTION 17 + 0x16,0x77, // STORE_NAME 'confirm_asset_issuer' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_stellar_operations_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/layout.py, scope apps_stellar_operations_layout_confirm_source_account +static const byte fun_data_apps_stellar_operations_layout_confirm_source_account[27] = { + 0xa9,0x40,0x0e, // prelude + 0x0d,0x7e, // names: confirm_source_account, source_account + 0x80,0x22,0x22,0x43,0x22, // code info + 0x12,0x02, // LOAD_GLOBAL 'confirm_address' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xb0, // LOAD_FAST 0 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_layout_confirm_source_account = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_operations_layout_confirm_source_account, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_stellar_operations_layout_confirm_source_account + 5, + .line_info_top = fun_data_apps_stellar_operations_layout_confirm_source_account + 10, + .opcodes = fun_data_apps_stellar_operations_layout_confirm_source_account + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/layout.py, scope apps_stellar_operations_layout_confirm_allow_trust_op +static const byte fun_data_apps_stellar_operations_layout_confirm_allow_trust_op[51] = { + 0xb1,0x40,0x12, // prelude + 0x0e,0x7f, // names: confirm_allow_trust_op, op + 0x80,0x2b,0x22,0x22,0x2b,0x20,0x27, // code info + 0x12,0x06, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'is_authorized' + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x42,0x42, // JUMP 2 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x10,0x10, // LOAD_CONST_STRING 'Asset' + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'asset_code' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'trusted_account' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_layout_confirm_allow_trust_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_operations_layout_confirm_allow_trust_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_stellar_operations_layout_confirm_allow_trust_op + 5, + .line_info_top = fun_data_apps_stellar_operations_layout_confirm_allow_trust_op + 12, + .opcodes = fun_data_apps_stellar_operations_layout_confirm_allow_trust_op + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/layout.py, scope apps_stellar_operations_layout_confirm_account_merge_op +static const byte fun_data_apps_stellar_operations_layout_confirm_account_merge_op[30] = { + 0xa9,0x40,0x10, // prelude + 0x13,0x7f, // names: confirm_account_merge_op, op + 0x80,0x36,0x22,0x22,0x23,0x22, // code info + 0x12,0x02, // LOAD_GLOBAL 'confirm_address' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'destination_account' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_layout_confirm_account_merge_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_operations_layout_confirm_account_merge_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_stellar_operations_layout_confirm_account_merge_op + 5, + .line_info_top = fun_data_apps_stellar_operations_layout_confirm_account_merge_op + 11, + .opcodes = fun_data_apps_stellar_operations_layout_confirm_account_merge_op + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/layout.py, scope apps_stellar_operations_layout_confirm_bump_sequence_op +static const byte fun_data_apps_stellar_operations_layout_confirm_bump_sequence_op[34] = { + 0xb1,0x40,0x0e, // prelude + 0x15,0x7f, // names: confirm_bump_sequence_op, op + 0x80,0x3f,0x44,0x22,0x22, // code info + 0x12,0x04, // LOAD_GLOBAL 'confirm_metadata' + 0x10,0x16, // LOAD_CONST_STRING 'op_bump' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x12,0x81,0x00, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'bump_to' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_layout_confirm_bump_sequence_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_operations_layout_confirm_bump_sequence_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_stellar_operations_layout_confirm_bump_sequence_op + 5, + .line_info_top = fun_data_apps_stellar_operations_layout_confirm_bump_sequence_op + 10, + .opcodes = fun_data_apps_stellar_operations_layout_confirm_bump_sequence_op + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/layout.py, scope apps_stellar_operations_layout_confirm_change_trust_op +static const byte fun_data_apps_stellar_operations_layout_confirm_change_trust_op[59] = { + 0xa9,0x40,0x10, // prelude + 0x18,0x7f, // names: confirm_change_trust_op, op + 0x80,0x48,0x22,0x2d,0x4c,0x48, // code info + 0x12,0x03, // LOAD_GLOBAL 'confirm_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'limit' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x42,0x42, // JUMP 2 + 0x10,0x1a, // LOAD_CONST_STRING 'Add trust' + 0x12,0x0b, // LOAD_GLOBAL 'format_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'limit' + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'asset' + 0x34,0x02, // CALL_FUNCTION 2 + 0x10,0x1c, // LOAD_CONST_STRING 'Limit:' + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x77, // LOAD_GLOBAL 'confirm_asset_issuer' + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'asset' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_layout_confirm_change_trust_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_operations_layout_confirm_change_trust_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 24, + .line_info = fun_data_apps_stellar_operations_layout_confirm_change_trust_op + 5, + .line_info_top = fun_data_apps_stellar_operations_layout_confirm_change_trust_op + 11, + .opcodes = fun_data_apps_stellar_operations_layout_confirm_change_trust_op + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/layout.py, scope apps_stellar_operations_layout_confirm_create_account_op +static const byte fun_data_apps_stellar_operations_layout_confirm_create_account_op[46] = { + 0xb9,0x40,0x12, // prelude + 0x1d,0x7f, // names: confirm_create_account_op, op + 0x80,0x52,0x22,0x22,0x22,0x20,0x27, // code info + 0x12,0x06, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x10,0x1e, // LOAD_CONST_STRING 'Account' + 0xb0, // LOAD_FAST 0 + 0x13,0x1f, // LOAD_ATTR 'new_account' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x12,0x0b, // LOAD_GLOBAL 'format_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'starting_balance' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_layout_confirm_create_account_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_operations_layout_confirm_create_account_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_apps_stellar_operations_layout_confirm_create_account_op + 5, + .line_info_top = fun_data_apps_stellar_operations_layout_confirm_create_account_op + 12, + .opcodes = fun_data_apps_stellar_operations_layout_confirm_create_account_op + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/layout.py, scope apps_stellar_operations_layout_confirm_create_passive_sell_offer_op +static const byte fun_data_apps_stellar_operations_layout_confirm_create_passive_sell_offer_op[34] = { + 0xa1,0x40,0x0a, // prelude + 0x21,0x7f, // names: confirm_create_passive_sell_offer_op, op + 0x80,0x5f,0x2e, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'amount' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x42,0x42, // JUMP 2 + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0xc1, // STORE_FAST 1 + 0x12,0x2c, // LOAD_GLOBAL '_confirm_offer' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_layout_confirm_create_passive_sell_offer_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_operations_layout_confirm_create_passive_sell_offer_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_stellar_operations_layout_confirm_create_passive_sell_offer_op + 5, + .line_info_top = fun_data_apps_stellar_operations_layout_confirm_create_passive_sell_offer_op + 8, + .opcodes = fun_data_apps_stellar_operations_layout_confirm_create_passive_sell_offer_op + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/layout.py, scope apps_stellar_operations_layout_confirm_manage_buy_offer_op +static const byte fun_data_apps_stellar_operations_layout_confirm_manage_buy_offer_op[18] = { + 0x91,0x40,0x08, // prelude + 0x23,0x7f, // names: confirm_manage_buy_offer_op, op + 0x80,0x64, // code info + 0x12,0x25, // LOAD_GLOBAL '_confirm_manage_offer_op_common' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_layout_confirm_manage_buy_offer_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_operations_layout_confirm_manage_buy_offer_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_stellar_operations_layout_confirm_manage_buy_offer_op + 5, + .line_info_top = fun_data_apps_stellar_operations_layout_confirm_manage_buy_offer_op + 7, + .opcodes = fun_data_apps_stellar_operations_layout_confirm_manage_buy_offer_op + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/layout.py, scope apps_stellar_operations_layout_confirm_manage_sell_offer_op +static const byte fun_data_apps_stellar_operations_layout_confirm_manage_sell_offer_op[18] = { + 0x91,0x40,0x08, // prelude + 0x24,0x7f, // names: confirm_manage_sell_offer_op, op + 0x80,0x68, // code info + 0x12,0x25, // LOAD_GLOBAL '_confirm_manage_offer_op_common' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_layout_confirm_manage_sell_offer_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_operations_layout_confirm_manage_sell_offer_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_stellar_operations_layout_confirm_manage_sell_offer_op + 5, + .line_info_top = fun_data_apps_stellar_operations_layout_confirm_manage_sell_offer_op + 7, + .opcodes = fun_data_apps_stellar_operations_layout_confirm_manage_sell_offer_op + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/layout.py, scope apps_stellar_operations_layout__confirm_manage_offer_op_common +static const byte fun_data_apps_stellar_operations_layout__confirm_manage_offer_op_common[57] = { + 0xa9,0x40,0x0e, // prelude + 0x25,0x7f, // names: _confirm_manage_offer_op_common, op + 0x80,0x6e,0x27,0x45,0x37, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'offer_id' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x27, // LOAD_CONST_STRING 'New Offer' + 0xc1, // STORE_FAST 1 + 0x42,0x57, // JUMP 23 + 0x10,0x28, // LOAD_CONST_STRING '{} #{}' + 0x14,0x29, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'amount' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x10,0x2a, // LOAD_CONST_STRING 'Delete' + 0x42,0x42, // JUMP 2 + 0x10,0x2b, // LOAD_CONST_STRING 'Update' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'offer_id' + 0x36,0x02, // CALL_METHOD 2 + 0xc1, // STORE_FAST 1 + 0x12,0x2c, // LOAD_GLOBAL '_confirm_offer' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_layout__confirm_manage_offer_op_common = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_operations_layout__confirm_manage_offer_op_common, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_stellar_operations_layout__confirm_manage_offer_op_common + 5, + .line_info_top = fun_data_apps_stellar_operations_layout__confirm_manage_offer_op_common + 10, + .opcodes = fun_data_apps_stellar_operations_layout__confirm_manage_offer_op_common + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/layout.py, scope apps_stellar_operations_layout__confirm_offer +static const byte fun_data_apps_stellar_operations_layout__confirm_offer[216] = { + 0xf2,0x40,0x32, // prelude + 0x2c,0x45,0x7f, // names: _confirm_offer, title, op + 0x80,0x7b,0x4b,0x4b,0x24,0x44,0x29,0x2d,0x29,0x20,0x2a,0x4f,0x65,0x6e,0x2d,0x29,0x20,0x2a,0x4f,0x65,0x6b,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2d, // LOAD_CONST_STRING 'StellarManageBuyOfferOp' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x2e, // IMPORT_NAME 'trezor.messages' + 0x1c,0x2d, // IMPORT_FROM 'StellarManageBuyOfferOp' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x2f, // LOAD_CONST_STRING 'format_asset' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'layout' + 0x1c,0x2f, // IMPORT_FROM 'format_asset' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x30, // LOAD_ATTR 'buying_asset' + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x31, // LOAD_ATTR 'selling_asset' + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x14,0x32, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0xc2,0x80, // POP_JUMP_IF_FALSE 66 + 0x10,0x33, // LOAD_CONST_STRING 'Buying:' + 0x12,0x0b, // LOAD_GLOBAL 'format_amount' + 0xb1, // LOAD_FAST 1 + 0x13,0x22, // LOAD_ATTR 'amount' + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xc6, // STORE_FAST 6 + 0x10,0x34, // LOAD_CONST_STRING 'Selling:' + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xc7, // STORE_FAST 7 + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x14,0x29, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x12,0x81,0x00, // LOAD_GLOBAL 'str' + 0xb1, // LOAD_FAST 1 + 0x13,0x35, // LOAD_ATTR 'price_n' + 0xb1, // LOAD_FAST 1 + 0x13,0x36, // LOAD_ATTR 'price_d' + 0xf7, // BINARY_OP 32 __truediv__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xc8, // STORE_FAST 8 + 0x12,0x06, // LOAD_GLOBAL 'confirm_properties' + 0x10,0x37, // LOAD_CONST_STRING 'op_offer' + 0xb0, // LOAD_FAST 0 + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0xbf,0x80, // JUMP 63 + 0x10,0x34, // LOAD_CONST_STRING 'Selling:' + 0x12,0x0b, // LOAD_GLOBAL 'format_amount' + 0xb1, // LOAD_FAST 1 + 0x13,0x22, // LOAD_ATTR 'amount' + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xc7, // STORE_FAST 7 + 0x10,0x33, // LOAD_CONST_STRING 'Buying:' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xc6, // STORE_FAST 6 + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x14,0x29, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x12,0x81,0x00, // LOAD_GLOBAL 'str' + 0xb1, // LOAD_FAST 1 + 0x13,0x35, // LOAD_ATTR 'price_n' + 0xb1, // LOAD_FAST 1 + 0x13,0x36, // LOAD_ATTR 'price_d' + 0xf7, // BINARY_OP 32 __truediv__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xc8, // STORE_FAST 8 + 0x12,0x06, // LOAD_GLOBAL 'confirm_properties' + 0x10,0x37, // LOAD_CONST_STRING 'op_offer' + 0xb0, // LOAD_FAST 0 + 0xb7, // LOAD_FAST 7 + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0x2a,0x03, // BUILD_TUPLE 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x77, // LOAD_GLOBAL 'confirm_asset_issuer' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x77, // LOAD_GLOBAL 'confirm_asset_issuer' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_layout__confirm_offer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_operations_layout__confirm_offer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 216, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 44, + .line_info = fun_data_apps_stellar_operations_layout__confirm_offer + 6, + .line_info_top = fun_data_apps_stellar_operations_layout__confirm_offer + 28, + .opcodes = fun_data_apps_stellar_operations_layout__confirm_offer + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/layout.py, scope apps_stellar_operations_layout_confirm_manage_data_op +static const byte fun_data_apps_stellar_operations_layout_confirm_manage_data_op[88] = { + 0xc1,0x40,0x16, // prelude + 0x38,0x7f, // names: confirm_manage_data_op, op + 0x80,0xa0,0x4b,0x25,0x2b,0x66,0x76,0x66,0x22, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x39, // LOAD_CONST_STRING 'sha256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x3a, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x39, // IMPORT_FROM 'sha256' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'value' + 0x44,0x67, // POP_JUMP_IF_FALSE 39 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'value' + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x3c, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0x12,0x06, // LOAD_GLOBAL 'confirm_properties' + 0x10,0x3d, // LOAD_CONST_STRING 'op_data' + 0x10,0x3e, // LOAD_CONST_STRING 'Set data' + 0x10,0x3f, // LOAD_CONST_STRING 'Key:' + 0xb0, // LOAD_FAST 0 + 0x13,0x40, // LOAD_ATTR 'key' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x51, // JUMP 17 + 0x12,0x04, // LOAD_GLOBAL 'confirm_metadata' + 0x10,0x3d, // LOAD_CONST_STRING 'op_data' + 0x10,0x41, // LOAD_CONST_STRING 'Clear data' + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0xb0, // LOAD_FAST 0 + 0x13,0x40, // LOAD_ATTR 'key' + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_layout_confirm_manage_data_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_operations_layout_confirm_manage_data_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 88, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 56, + .line_info = fun_data_apps_stellar_operations_layout_confirm_manage_data_op + 5, + .line_info_top = fun_data_apps_stellar_operations_layout_confirm_manage_data_op + 14, + .opcodes = fun_data_apps_stellar_operations_layout_confirm_manage_data_op + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/layout.py, scope apps_stellar_operations_layout_confirm_path_payment_strict_receive_op +static const byte fun_data_apps_stellar_operations_layout_confirm_path_payment_strict_receive_op[90] = { + 0xa9,0x40,0x1a, // prelude + 0x42,0x7f, // names: confirm_path_payment_strict_receive_op, op + 0x80,0xb5,0x22,0x23,0x75,0x4b,0x22,0x22,0x2a,0x22,0x48, // code info + 0x12,0x05, // LOAD_GLOBAL 'confirm_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'destination_account' + 0x12,0x0b, // LOAD_GLOBAL 'format_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x43, // LOAD_ATTR 'destination_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x44, // LOAD_ATTR 'destination_asset' + 0x34,0x02, // CALL_FUNCTION 2 + 0x10,0x45, // LOAD_CONST_STRING 'title' + 0x10,0x46, // LOAD_CONST_STRING 'Path Pay' + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x77, // LOAD_GLOBAL 'confirm_asset_issuer' + 0xb0, // LOAD_FAST 0 + 0x13,0x44, // LOAD_ATTR 'destination_asset' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'confirm_amount' + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0x12,0x0b, // LOAD_GLOBAL 'format_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x47, // LOAD_ATTR 'send_max' + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'send_asset' + 0x34,0x02, // CALL_FUNCTION 2 + 0x23,0x17, // LOAD_CONST_OBJ 23 + 0x23,0x18, // LOAD_CONST_OBJ 24 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x77, // LOAD_GLOBAL 'confirm_asset_issuer' + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'send_asset' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_layout_confirm_path_payment_strict_receive_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_operations_layout_confirm_path_payment_strict_receive_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 90, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 66, + .line_info = fun_data_apps_stellar_operations_layout_confirm_path_payment_strict_receive_op + 5, + .line_info_top = fun_data_apps_stellar_operations_layout_confirm_path_payment_strict_receive_op + 16, + .opcodes = fun_data_apps_stellar_operations_layout_confirm_path_payment_strict_receive_op + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/layout.py, scope apps_stellar_operations_layout_confirm_path_payment_strict_send_op +static const byte fun_data_apps_stellar_operations_layout_confirm_path_payment_strict_send_op[90] = { + 0xa9,0x40,0x1a, // prelude + 0x49,0x7f, // names: confirm_path_payment_strict_send_op, op + 0x80,0xc8,0x22,0x23,0x2c,0x49,0x4b,0x22,0x22,0x4c,0x48, // code info + 0x12,0x05, // LOAD_GLOBAL 'confirm_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'destination_account' + 0x12,0x0b, // LOAD_GLOBAL 'format_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x4a, // LOAD_ATTR 'destination_min' + 0xb0, // LOAD_FAST 0 + 0x13,0x44, // LOAD_ATTR 'destination_asset' + 0x34,0x02, // CALL_FUNCTION 2 + 0x10,0x45, // LOAD_CONST_STRING 'title' + 0x23,0x19, // LOAD_CONST_OBJ 25 + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x77, // LOAD_GLOBAL 'confirm_asset_issuer' + 0xb0, // LOAD_FAST 0 + 0x13,0x44, // LOAD_ATTR 'destination_asset' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'confirm_amount' + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0x12,0x0b, // LOAD_GLOBAL 'format_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x4b, // LOAD_ATTR 'send_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'send_asset' + 0x34,0x02, // CALL_FUNCTION 2 + 0x10,0x4c, // LOAD_CONST_STRING 'Pay:' + 0x23,0x1a, // LOAD_CONST_OBJ 26 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x77, // LOAD_GLOBAL 'confirm_asset_issuer' + 0xb0, // LOAD_FAST 0 + 0x13,0x48, // LOAD_ATTR 'send_asset' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_layout_confirm_path_payment_strict_send_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_operations_layout_confirm_path_payment_strict_send_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 90, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 73, + .line_info = fun_data_apps_stellar_operations_layout_confirm_path_payment_strict_send_op + 5, + .line_info_top = fun_data_apps_stellar_operations_layout_confirm_path_payment_strict_send_op + 16, + .opcodes = fun_data_apps_stellar_operations_layout_confirm_path_payment_strict_send_op + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/layout.py, scope apps_stellar_operations_layout_confirm_payment_op +static const byte fun_data_apps_stellar_operations_layout_confirm_payment_op[44] = { + 0xa9,0x40,0x0e, // prelude + 0x4d,0x7f, // names: confirm_payment_op, op + 0x80,0xd9,0x22,0x23,0x50, // code info + 0x12,0x05, // LOAD_GLOBAL 'confirm_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'destination_account' + 0x12,0x0b, // LOAD_GLOBAL 'format_amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'amount' + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'asset' + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x77, // LOAD_GLOBAL 'confirm_asset_issuer' + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'asset' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_layout_confirm_payment_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_operations_layout_confirm_payment_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 77, + .line_info = fun_data_apps_stellar_operations_layout_confirm_payment_op + 5, + .line_info_top = fun_data_apps_stellar_operations_layout_confirm_payment_op + 10, + .opcodes = fun_data_apps_stellar_operations_layout_confirm_payment_op + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/layout.py, scope apps_stellar_operations_layout_confirm_set_options_op +static const byte fun_data_apps_stellar_operations_layout_confirm_set_options_op[435] = { + 0xa1,0x50,0x66, // prelude + 0x4e,0x7f, // names: confirm_set_options_op, op + 0x80,0xe1,0x2b,0x50,0x4b,0x25,0x44,0x23,0x22,0x68,0x25,0x28,0x4f,0x25,0x28,0x4f,0x23,0x24,0x28,0x30,0x28,0x30,0x28,0x30,0x28,0x50,0x23,0x4d,0x25,0x2e,0x24,0x44,0x27,0x2c,0x47,0x27,0x45,0x23,0x23,0x27,0x23,0x29,0x27,0x23,0x24,0x27,0x23,0x44,0x47, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x4f, // LOAD_CONST_STRING 'StellarSignerType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x50, // IMPORT_NAME 'trezor.enums' + 0x1c,0x4f, // IMPORT_FROM 'StellarSignerType' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x51, // LOAD_CONST_STRING 'confirm_blob' + 0x10,0x52, // LOAD_CONST_STRING 'confirm_text' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x07, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x51, // IMPORT_FROM 'confirm_blob' + 0xc2, // STORE_FAST 2 + 0x1c,0x52, // IMPORT_FROM 'confirm_text' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x53, // LOAD_CONST_STRING 'helpers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x54, // IMPORT_NAME '' + 0x1c,0x53, // IMPORT_FROM 'helpers' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x55, // LOAD_ATTR 'inflation_destination_account' + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x12,0x02, // LOAD_GLOBAL 'confirm_address' + 0x10,0x56, // LOAD_CONST_STRING 'Inflation' + 0xb0, // LOAD_FAST 0 + 0x13,0x55, // LOAD_ATTR 'inflation_destination_account' + 0x23,0x1b, // LOAD_CONST_OBJ 27 + 0x23,0x1c, // LOAD_CONST_OBJ 28 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x57, // LOAD_ATTR 'clear_flags' + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0x12,0x70, // LOAD_GLOBAL '_format_flags' + 0xb0, // LOAD_FAST 0 + 0x13,0x57, // LOAD_ATTR 'clear_flags' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x23,0x1d, // LOAD_CONST_OBJ 29 + 0x23,0x1e, // LOAD_CONST_OBJ 30 + 0x10,0x58, // LOAD_CONST_STRING 'data' + 0xb5, // LOAD_FAST 5 + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x59, // LOAD_ATTR 'set_flags' + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0x12,0x70, // LOAD_GLOBAL '_format_flags' + 0xb0, // LOAD_FAST 0 + 0x13,0x59, // LOAD_ATTR 'set_flags' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x23,0x1d, // LOAD_CONST_OBJ 29 + 0x10,0x5a, // LOAD_CONST_STRING 'Set flags' + 0x10,0x58, // LOAD_CONST_STRING 'data' + 0xb5, // LOAD_FAST 5 + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x2b,0x00, // BUILD_LIST 0 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x13,0x5b, // LOAD_ATTR 'append' + 0xc7, // STORE_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x5c, // LOAD_ATTR 'master_weight' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb7, // LOAD_FAST 7 + 0x23,0x1f, // LOAD_CONST_OBJ 31 + 0x12,0x81,0x00, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x5c, // LOAD_ATTR 'master_weight' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x5d, // LOAD_ATTR 'low_threshold' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb7, // LOAD_FAST 7 + 0x10,0x5e, // LOAD_CONST_STRING 'Low:' + 0x12,0x81,0x00, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x5d, // LOAD_ATTR 'low_threshold' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x5f, // LOAD_ATTR 'medium_threshold' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb7, // LOAD_FAST 7 + 0x10,0x60, // LOAD_CONST_STRING 'Medium:' + 0x12,0x81,0x00, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x5f, // LOAD_ATTR 'medium_threshold' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x61, // LOAD_ATTR 'high_threshold' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb7, // LOAD_FAST 7 + 0x10,0x62, // LOAD_CONST_STRING 'High:' + 0x12,0x81,0x00, // LOAD_GLOBAL 'str' + 0xb0, // LOAD_FAST 0 + 0x13,0x61, // LOAD_ATTR 'high_threshold' + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x06, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x20, // LOAD_CONST_OBJ 32 + 0x23,0x21, // LOAD_CONST_OBJ 33 + 0xb6, // LOAD_FAST 6 + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x63, // LOAD_ATTR 'home_domain' + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb3, // LOAD_FAST 3 + 0x23,0x22, // LOAD_CONST_OBJ 34 + 0x23,0x23, // LOAD_CONST_OBJ 35 + 0xb0, // LOAD_FAST 0 + 0x13,0x63, // LOAD_ATTR 'home_domain' + 0x34,0x03, // CALL_FUNCTION 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x64, // LOAD_ATTR 'signer_type' + 0xc8, // STORE_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x65, // LOAD_ATTR 'signer_key' + 0xc9, // STORE_FAST 9 + 0xb8, // LOAD_FAST 8 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0xee,0x80, // POP_JUMP_IF_FALSE 110 + 0xb9, // LOAD_FAST 9 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x66, // LOAD_ATTR 'signer_weight' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x08, // LOAD_GLOBAL 'DataError' + 0x23,0x24, // LOAD_CONST_OBJ 36 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x66, // LOAD_ATTR 'signer_weight' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x10,0x67, // LOAD_CONST_STRING 'Add Signer' + 0xca, // STORE_FAST 10 + 0x42,0x43, // JUMP 3 + 0x23,0x25, // LOAD_CONST_OBJ 37 + 0xca, // STORE_FAST 10 + 0x10,0x54, // LOAD_CONST_STRING '' + 0xcb, // STORE_FAST 11 + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x68, // LOAD_ATTR 'ACCOUNT' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x10,0x69, // LOAD_CONST_STRING 'Account:' + 0xcc, // STORE_FAST 12 + 0xb4, // LOAD_FAST 4 + 0x14,0x6a, // LOAD_METHOD 'address_from_public_key' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0xcb, // STORE_FAST 11 + 0x42,0x63, // JUMP 35 + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x6b, // LOAD_ATTR 'PRE_AUTH' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x23,0x26, // LOAD_CONST_OBJ 38 + 0xcc, // STORE_FAST 12 + 0xb9, // LOAD_FAST 9 + 0xcb, // STORE_FAST 11 + 0x42,0x55, // JUMP 21 + 0xb8, // LOAD_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x13,0x6c, // LOAD_ATTR 'HASH' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x10,0x6d, // LOAD_CONST_STRING 'Hash:' + 0xcc, // STORE_FAST 12 + 0xb9, // LOAD_FAST 9 + 0xcb, // STORE_FAST 11 + 0x42,0x47, // JUMP 7 + 0x12,0x09, // LOAD_GLOBAL 'ProcessError' + 0x23,0x27, // LOAD_CONST_OBJ 39 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x10,0x6e, // LOAD_CONST_STRING 'op_signer' + 0x10,0x45, // LOAD_CONST_STRING 'title' + 0xba, // LOAD_FAST 10 + 0x10,0x6f, // LOAD_CONST_STRING 'description' + 0xbc, // LOAD_FAST 12 + 0x10,0x58, // LOAD_CONST_STRING 'data' + 0xbb, // LOAD_FAST 11 + 0x34,0x86,0x01, // CALL_FUNCTION 769 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_layout_confirm_set_options_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_operations_layout_confirm_set_options_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 435, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 21, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 78, + .line_info = fun_data_apps_stellar_operations_layout_confirm_set_options_op + 5, + .line_info_top = fun_data_apps_stellar_operations_layout_confirm_set_options_op + 54, + .opcodes = fun_data_apps_stellar_operations_layout_confirm_set_options_op + 54, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/layout.py, scope apps_stellar_operations_layout__format_flags +static const byte fun_data_apps_stellar_operations_layout__format_flags[98] = { + 0x29,0x1e, // prelude + 0x70,0x81,0x01, // names: _format_flags, flags + 0x90,0x27,0x4b,0x27,0x27,0x23,0x27,0x28,0x27,0x28,0x27,0x28, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x71, // LOAD_CONST_STRING 'consts' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x54, // IMPORT_NAME '' + 0x1c,0x71, // IMPORT_FROM 'consts' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x72, // LOAD_ATTR 'FLAGS_MAX_SIZE' + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x09, // LOAD_GLOBAL 'ProcessError' + 0x23,0x28, // LOAD_CONST_OBJ 40 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x2b,0x00, // BUILD_LIST 0 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x73, // LOAD_ATTR 'FLAG_AUTH_REQUIRED' + 0xef, // BINARY_OP 24 __and__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x5b, // LOAD_METHOD 'append' + 0x23,0x29, // LOAD_CONST_OBJ 41 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x74, // LOAD_ATTR 'FLAG_AUTH_REVOCABLE' + 0xef, // BINARY_OP 24 __and__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x5b, // LOAD_METHOD 'append' + 0x23,0x2a, // LOAD_CONST_OBJ 42 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x75, // LOAD_ATTR 'FLAG_AUTH_IMMUTABLE' + 0xef, // BINARY_OP 24 __and__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x5b, // LOAD_METHOD 'append' + 0x23,0x2b, // LOAD_CONST_OBJ 43 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x10,0x54, // LOAD_CONST_STRING '' + 0x14,0x76, // LOAD_METHOD 'join' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_layout__format_flags = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_operations_layout__format_flags, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 98, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 112, + .line_info = fun_data_apps_stellar_operations_layout__format_flags + 5, + .line_info_top = fun_data_apps_stellar_operations_layout__format_flags + 17, + .opcodes = fun_data_apps_stellar_operations_layout__format_flags + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_layout__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/layout.py, scope apps_stellar_operations_layout_confirm_asset_issuer +static const byte fun_data_apps_stellar_operations_layout_confirm_asset_issuer[84] = { + 0xb9,0x40,0x18, // prelude + 0x77,0x1b, // names: confirm_asset_issuer, asset + 0x90,0x36,0x4b,0x29,0x22,0x2e,0x27,0x22,0x22,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x78, // LOAD_CONST_STRING 'StellarAssetType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x50, // IMPORT_NAME 'trezor.enums' + 0x1c,0x78, // IMPORT_FROM 'StellarAssetType' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x79, // LOAD_ATTR 'type' + 0xb1, // LOAD_FAST 1 + 0x13,0x7a, // LOAD_ATTR 'NATIVE' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x7b, // LOAD_ATTR 'issuer' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x7c, // LOAD_ATTR 'code' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x08, // LOAD_GLOBAL 'DataError' + 0x23,0x2c, // LOAD_CONST_OBJ 44 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x02, // LOAD_GLOBAL 'confirm_address' + 0x23,0x2d, // LOAD_CONST_OBJ 45 + 0xb0, // LOAD_FAST 0 + 0x13,0x7b, // LOAD_ATTR 'issuer' + 0x10,0x7d, // LOAD_CONST_STRING '{} issuer:' + 0x14,0x29, // LOAD_METHOD 'format' + 0xb0, // LOAD_FAST 0 + 0x13,0x7c, // LOAD_ATTR 'code' + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x77, // LOAD_CONST_STRING 'confirm_asset_issuer' + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_layout_confirm_asset_issuer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_stellar_operations_layout_confirm_asset_issuer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 84, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 119, + .line_info = fun_data_apps_stellar_operations_layout_confirm_asset_issuer + 5, + .line_info_top = fun_data_apps_stellar_operations_layout_confirm_asset_issuer + 15, + .opcodes = fun_data_apps_stellar_operations_layout_confirm_asset_issuer + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_stellar_operations_layout__lt_module_gt_[] = { + &raw_code_apps_stellar_operations_layout_confirm_source_account, + &raw_code_apps_stellar_operations_layout_confirm_allow_trust_op, + &raw_code_apps_stellar_operations_layout_confirm_account_merge_op, + &raw_code_apps_stellar_operations_layout_confirm_bump_sequence_op, + &raw_code_apps_stellar_operations_layout_confirm_change_trust_op, + &raw_code_apps_stellar_operations_layout_confirm_create_account_op, + &raw_code_apps_stellar_operations_layout_confirm_create_passive_sell_offer_op, + &raw_code_apps_stellar_operations_layout_confirm_manage_buy_offer_op, + &raw_code_apps_stellar_operations_layout_confirm_manage_sell_offer_op, + &raw_code_apps_stellar_operations_layout__confirm_manage_offer_op_common, + &raw_code_apps_stellar_operations_layout__confirm_offer, + &raw_code_apps_stellar_operations_layout_confirm_manage_data_op, + &raw_code_apps_stellar_operations_layout_confirm_path_payment_strict_receive_op, + &raw_code_apps_stellar_operations_layout_confirm_path_payment_strict_send_op, + &raw_code_apps_stellar_operations_layout_confirm_payment_op, + &raw_code_apps_stellar_operations_layout_confirm_set_options_op, + &raw_code_apps_stellar_operations_layout__format_flags, + &raw_code_apps_stellar_operations_layout_confirm_asset_issuer, +}; + +static const mp_raw_code_t raw_code_apps_stellar_operations_layout__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_stellar_operations_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 185, + #endif + .children = (void *)&children_apps_stellar_operations_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 18, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_stellar_operations_layout__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_stellar_operations_layout__lt_module_gt_ + 45, + .opcodes = fun_data_apps_stellar_operations_layout__lt_module_gt_ + 45, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_stellar_operations_layout[130] = { + MP_QSTR_apps_slash_stellar_slash_operations_slash_layout_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_confirm_address, + MP_QSTR_confirm_amount, + MP_QSTR_confirm_metadata, + MP_QSTR_confirm_output, + MP_QSTR_confirm_properties, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_DataError, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_format_amount, + MP_QSTR_layout, + MP_QSTR_confirm_source_account, + MP_QSTR_confirm_allow_trust_op, + MP_QSTR_is_authorized, + MP_QSTR_Asset, + MP_QSTR_asset_code, + MP_QSTR_trusted_account, + MP_QSTR_confirm_account_merge_op, + MP_QSTR_destination_account, + MP_QSTR_confirm_bump_sequence_op, + MP_QSTR_op_bump, + MP_QSTR_bump_to, + MP_QSTR_confirm_change_trust_op, + MP_QSTR_limit, + MP_QSTR_Add_space_trust, + MP_QSTR_asset, + MP_QSTR_Limit_colon_, + MP_QSTR_confirm_create_account_op, + MP_QSTR_Account, + MP_QSTR_new_account, + MP_QSTR_starting_balance, + MP_QSTR_confirm_create_passive_sell_offer_op, + MP_QSTR_amount, + MP_QSTR_confirm_manage_buy_offer_op, + MP_QSTR_confirm_manage_sell_offer_op, + MP_QSTR__confirm_manage_offer_op_common, + MP_QSTR_offer_id, + MP_QSTR_New_space_Offer, + MP_QSTR__brace_open__brace_close__space__hash__brace_open__brace_close_, + MP_QSTR_format, + MP_QSTR_Delete, + MP_QSTR_Update, + MP_QSTR__confirm_offer, + MP_QSTR_StellarManageBuyOfferOp, + MP_QSTR_trezor_dot_messages, + MP_QSTR_format_asset, + MP_QSTR_buying_asset, + MP_QSTR_selling_asset, + MP_QSTR_is_type_of, + MP_QSTR_Buying_colon_, + MP_QSTR_Selling_colon_, + MP_QSTR_price_n, + MP_QSTR_price_d, + MP_QSTR_op_offer, + MP_QSTR_confirm_manage_data_op, + MP_QSTR_sha256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_value, + MP_QSTR_digest, + MP_QSTR_op_data, + MP_QSTR_Set_space_data, + MP_QSTR_Key_colon_, + MP_QSTR_key, + MP_QSTR_Clear_space_data, + MP_QSTR_confirm_path_payment_strict_receive_op, + MP_QSTR_destination_amount, + MP_QSTR_destination_asset, + MP_QSTR_title, + MP_QSTR_Path_space_Pay, + MP_QSTR_send_max, + MP_QSTR_send_asset, + MP_QSTR_confirm_path_payment_strict_send_op, + MP_QSTR_destination_min, + MP_QSTR_send_amount, + MP_QSTR_Pay_colon_, + MP_QSTR_confirm_payment_op, + MP_QSTR_confirm_set_options_op, + MP_QSTR_StellarSignerType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_confirm_blob, + MP_QSTR_confirm_text, + MP_QSTR_helpers, + MP_QSTR_, + MP_QSTR_inflation_destination_account, + MP_QSTR_Inflation, + MP_QSTR_clear_flags, + MP_QSTR_data, + MP_QSTR_set_flags, + MP_QSTR_Set_space_flags, + MP_QSTR_append, + MP_QSTR_master_weight, + MP_QSTR_low_threshold, + MP_QSTR_Low_colon_, + MP_QSTR_medium_threshold, + MP_QSTR_Medium_colon_, + MP_QSTR_high_threshold, + MP_QSTR_High_colon_, + MP_QSTR_home_domain, + MP_QSTR_signer_type, + MP_QSTR_signer_key, + MP_QSTR_signer_weight, + MP_QSTR_Add_space_Signer, + MP_QSTR_ACCOUNT, + MP_QSTR_Account_colon_, + MP_QSTR_address_from_public_key, + MP_QSTR_PRE_AUTH, + MP_QSTR_HASH, + MP_QSTR_Hash_colon_, + MP_QSTR_op_signer, + MP_QSTR_description, + MP_QSTR__format_flags, + MP_QSTR_consts, + MP_QSTR_FLAGS_MAX_SIZE, + MP_QSTR_FLAG_AUTH_REQUIRED, + MP_QSTR_FLAG_AUTH_REVOCABLE, + MP_QSTR_FLAG_AUTH_IMMUTABLE, + MP_QSTR_join, + MP_QSTR_confirm_asset_issuer, + MP_QSTR_StellarAssetType, + MP_QSTR_type, + MP_QSTR_NATIVE, + MP_QSTR_issuer, + MP_QSTR_code, + MP_QSTR__brace_open__brace_close__space_issuer_colon_, + MP_QSTR_source_account, + MP_QSTR_op, + MP_QSTR_str, + MP_QSTR_flags, +}; + +// constants +static const mp_obj_str_t const_obj_apps_stellar_operations_layout_21 = {{&mp_type_str}, 55174, 34, (const byte*)"\x44\x6f\x20\x79\x6f\x75\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x63\x6c\x65\x61\x72\x20\x76\x61\x6c\x75\x65\x20\x6b\x65\x79\x20\x7b\x7d\x3f"}; +static const mp_obj_str_t const_obj_apps_stellar_operations_layout_24 = {{&mp_type_str}, 54669, 30, (const byte*)"\x6f\x70\x5f\x70\x61\x74\x68\x5f\x70\x61\x79\x6d\x65\x6e\x74\x5f\x73\x74\x72\x69\x63\x74\x5f\x72\x65\x63\x65\x69\x76\x65"}; +static const mp_obj_str_t const_obj_apps_stellar_operations_layout_26 = {{&mp_type_str}, 17946, 27, (const byte*)"\x6f\x70\x5f\x70\x61\x74\x68\x5f\x70\x61\x79\x6d\x65\x6e\x74\x5f\x73\x74\x72\x69\x63\x74\x5f\x73\x65\x6e\x64"}; +static const mp_obj_str_t const_obj_apps_stellar_operations_layout_36 = {{&mp_type_str}, 41542, 36, (const byte*)"\x53\x74\x65\x6c\x6c\x61\x72\x3a\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x73\x69\x67\x6e\x65\x72\x20\x6f\x70\x74\x69\x6f\x6e\x20\x64\x61\x74\x61\x2e"}; +static const mp_obj_str_t const_obj_apps_stellar_operations_layout_39 = {{&mp_type_str}, 771, 28, (const byte*)"\x53\x74\x65\x6c\x6c\x61\x72\x3a\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x73\x69\x67\x6e\x65\x72\x20\x74\x79\x70\x65"}; +static const mp_obj_str_t const_obj_apps_stellar_operations_layout_44 = {{&mp_type_str}, 64474, 33, (const byte*)"\x53\x74\x65\x6c\x6c\x61\x72\x3a\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x61\x73\x73\x65\x74\x20\x64\x65\x66\x69\x6e\x69\x74\x69\x6f\x6e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_stellar_operations_layout[46] = { + MP_ROM_QSTR(MP_QSTR_Confirm_space_operation), + MP_ROM_QSTR(MP_QSTR_Source_space_account_colon_), + MP_ROM_QSTR(MP_QSTR_op_source_account), + MP_ROM_QSTR(MP_QSTR_op_allow_trust), + MP_ROM_QSTR(MP_QSTR_Allow_space_trust), + MP_ROM_QSTR(MP_QSTR_Revoke_space_trust), + MP_ROM_QSTR(MP_QSTR_Trusted_space_Account), + MP_ROM_QSTR(MP_QSTR_Account_space_Merge), + MP_ROM_QSTR(MP_QSTR_All_space_XLM_space_will_space_be_space_sent_space_to_colon_), + MP_ROM_QSTR(MP_QSTR_op_account_merge), + MP_ROM_QSTR(MP_QSTR_Bump_space_Sequence), + MP_ROM_QSTR(MP_QSTR_Set_space_sequence_space_to_space__brace_open__brace_close__question_), + MP_ROM_QSTR(MP_QSTR_Delete_space_trust), + MP_ROM_QSTR(MP_QSTR_op_change_trust), + MP_ROM_QSTR(MP_QSTR_op_create_account), + MP_ROM_QSTR(MP_QSTR_Create_space_Account), + MP_ROM_QSTR(MP_QSTR_Initial_space_Balance), + MP_ROM_QSTR(MP_QSTR_Delete_space_Passive_space_Offer), + MP_ROM_QSTR(MP_QSTR_New_space_Passive_space_Offer), + MP_ROM_QSTR(MP_QSTR_Price_space_per_space__brace_open__brace_close__colon_), + MP_ROM_QSTR(MP_QSTR_Value_space__paren_open_SHA_hyphen_256_paren_close__colon_), + MP_ROM_PTR(&const_obj_apps_stellar_operations_layout_21), + MP_ROM_QSTR(MP_QSTR_Debited_space_amount), + MP_ROM_QSTR(MP_QSTR_Pay_space_at_space_most_colon_), + MP_ROM_PTR(&const_obj_apps_stellar_operations_layout_24), + MP_ROM_QSTR(MP_QSTR_Path_space_Pay_space_at_space_least), + MP_ROM_PTR(&const_obj_apps_stellar_operations_layout_26), + MP_ROM_QSTR(MP_QSTR_Destination_colon_), + MP_ROM_QSTR(MP_QSTR_op_inflation), + MP_ROM_QSTR(MP_QSTR_op_set_options), + MP_ROM_QSTR(MP_QSTR_Clear_space_flags), + MP_ROM_QSTR(MP_QSTR_Master_space_Weight_colon_), + MP_ROM_QSTR(MP_QSTR_op_thresholds), + MP_ROM_QSTR(MP_QSTR_Account_space_Thresholds), + MP_ROM_QSTR(MP_QSTR_op_home_domain), + MP_ROM_QSTR(MP_QSTR_Home_space_Domain), + MP_ROM_PTR(&const_obj_apps_stellar_operations_layout_36), + MP_ROM_QSTR(MP_QSTR_Remove_space_Signer), + MP_ROM_QSTR(MP_QSTR_Pre_hyphen_auth_space_transaction_colon_), + MP_ROM_PTR(&const_obj_apps_stellar_operations_layout_39), + MP_ROM_QSTR(MP_QSTR_Stellar_colon__space_invalid_space_flags), + MP_ROM_QSTR(MP_QSTR_AUTH_REQUIRED_0x0a_), + MP_ROM_QSTR(MP_QSTR_AUTH_REVOCABLE_0x0a_), + MP_ROM_QSTR(MP_QSTR_AUTH_IMMUTABLE_0x0a_), + MP_ROM_PTR(&const_obj_apps_stellar_operations_layout_44), + MP_ROM_QSTR(MP_QSTR_Confirm_space_Issuer), +}; + +static const mp_frozen_module_t frozen_module_apps_stellar_operations_layout = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_stellar_operations_layout, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_stellar_operations_layout, + }, + .rc = &raw_code_apps_stellar_operations_layout__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_stellar_operations_serialize +// - original source file: build/firmware/src/apps/stellar/operations/serialize.mpy +// - frozen file name: apps/stellar/operations/serialize.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/stellar/operations/serialize.py, scope apps_stellar_operations_serialize__lt_module_gt_ +static const byte fun_data_apps_stellar_operations_serialize__lt_module_gt_[185] = { + 0x30,0x52, // prelude + 0x01, // names: + 0x40,0x2c,0x52,0x1f,0x8b,0x09,0x80,0x14,0x64,0x20,0x84,0x09,0x64,0x20,0x64,0x40,0x64,0x40,0x84,0x0a,0x84,0x09,0x64,0x20,0x64,0x20,0x84,0x0b,0x84,0x0e,0x84,0x0e,0x64,0x60,0x84,0x31,0x84,0x08,0x84,0x18, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'StellarAssetType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x02, // IMPORT_FROM 'StellarAssetType' + 0x16,0x02, // STORE_NAME 'StellarAssetType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'DataError' + 0x10,0x05, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x06, // IMPORT_NAME 'trezor.wire' + 0x1c,0x04, // IMPORT_FROM 'DataError' + 0x16,0x04, // STORE_NAME 'DataError' + 0x1c,0x05, // IMPORT_FROM 'ProcessError' + 0x16,0x05, // STORE_NAME 'ProcessError' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x07, // LOAD_CONST_STRING 'write_bool' + 0x10,0x08, // LOAD_CONST_STRING 'write_bytes_fixed' + 0x10,0x09, // LOAD_CONST_STRING 'write_pubkey' + 0x10,0x0a, // LOAD_CONST_STRING 'write_string' + 0x10,0x0b, // LOAD_CONST_STRING 'write_uint32' + 0x10,0x0c, // LOAD_CONST_STRING 'write_uint64' + 0x2a,0x06, // BUILD_TUPLE 6 + 0x1b,0x0d, // IMPORT_NAME 'writers' + 0x1c,0x07, // IMPORT_FROM 'write_bool' + 0x16,0x07, // STORE_NAME 'write_bool' + 0x1c,0x08, // IMPORT_FROM 'write_bytes_fixed' + 0x16,0x08, // STORE_NAME 'write_bytes_fixed' + 0x1c,0x09, // IMPORT_FROM 'write_pubkey' + 0x16,0x09, // STORE_NAME 'write_pubkey' + 0x1c,0x0a, // IMPORT_FROM 'write_string' + 0x16,0x0a, // STORE_NAME 'write_string' + 0x1c,0x0b, // IMPORT_FROM 'write_uint32' + 0x16,0x0b, // STORE_NAME 'write_uint32' + 0x1c,0x0c, // IMPORT_FROM 'write_uint64' + 0x16,0x0c, // STORE_NAME 'write_uint64' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x0e, // STORE_NAME 'write_account_merge_op' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x10, // STORE_NAME 'write_allow_trust_op' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x15, // STORE_NAME 'write_bump_sequence_op' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x17, // STORE_NAME 'write_change_trust_op' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x1a, // STORE_NAME 'write_create_account_op' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x1d, // STORE_NAME 'write_create_passive_sell_offer_op' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x23, // STORE_NAME 'write_manage_data_op' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x26, // STORE_NAME 'write_manage_buy_offer_op' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x27, // STORE_NAME 'write_manage_sell_offer_op' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x28, // STORE_NAME '_write_manage_offer_op_common' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x2a, // STORE_NAME 'write_path_payment_strict_receive_op' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x30, // STORE_NAME 'write_path_payment_strict_send_op' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x33, // STORE_NAME 'write_payment_op' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x34, // STORE_NAME 'write_set_options_op' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x16,0x40, // STORE_NAME 'write_account' + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x16,0x41, // STORE_NAME '_write_asset_code' + 0x32,0x10, // MAKE_FUNCTION 16 + 0x16,0x46, // STORE_NAME '_write_asset' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_stellar_operations_serialize__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/serialize.py, scope apps_stellar_operations_serialize_write_account_merge_op +static const byte fun_data_apps_stellar_operations_serialize_write_account_merge_op[18] = { + 0x22,0x0a, // prelude + 0x0e,0x4a,0x4b, // names: write_account_merge_op, w, msg + 0x80,0x23, // code info + 0x12,0x09, // LOAD_GLOBAL 'write_pubkey' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'destination_account' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_serialize_write_account_merge_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_operations_serialize_write_account_merge_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_stellar_operations_serialize_write_account_merge_op + 5, + .line_info_top = fun_data_apps_stellar_operations_serialize_write_account_merge_op + 7, + .opcodes = fun_data_apps_stellar_operations_serialize_write_account_merge_op + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_serialize__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/serialize.py, scope apps_stellar_operations_serialize_write_allow_trust_op +static const byte fun_data_apps_stellar_operations_serialize_write_allow_trust_op[51] = { + 0x2a,0x10, // prelude + 0x10,0x4a,0x4b, // names: write_allow_trust_op, w, msg + 0x80,0x28,0x29,0x29,0x4c, // code info + 0x12,0x09, // LOAD_GLOBAL 'write_pubkey' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x11, // LOAD_ATTR 'trusted_account' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x12, // LOAD_ATTR 'asset_type' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x41, // LOAD_GLOBAL '_write_asset_code' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x12, // LOAD_ATTR 'asset_type' + 0xb1, // LOAD_FAST 1 + 0x13,0x13, // LOAD_ATTR 'asset_code' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'write_bool' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x14, // LOAD_ATTR 'is_authorized' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_serialize_write_allow_trust_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_operations_serialize_write_allow_trust_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_stellar_operations_serialize_write_allow_trust_op + 5, + .line_info_top = fun_data_apps_stellar_operations_serialize_write_allow_trust_op + 10, + .opcodes = fun_data_apps_stellar_operations_serialize_write_allow_trust_op + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_serialize__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/serialize.py, scope apps_stellar_operations_serialize_write_bump_sequence_op +static const byte fun_data_apps_stellar_operations_serialize_write_bump_sequence_op[18] = { + 0x22,0x0a, // prelude + 0x15,0x4a,0x4b, // names: write_bump_sequence_op, w, msg + 0x80,0x30, // code info + 0x12,0x0c, // LOAD_GLOBAL 'write_uint64' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x16, // LOAD_ATTR 'bump_to' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_serialize_write_bump_sequence_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_operations_serialize_write_bump_sequence_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_stellar_operations_serialize_write_bump_sequence_op + 5, + .line_info_top = fun_data_apps_stellar_operations_serialize_write_bump_sequence_op + 7, + .opcodes = fun_data_apps_stellar_operations_serialize_write_bump_sequence_op + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_serialize__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/serialize.py, scope apps_stellar_operations_serialize_write_change_trust_op +static const byte fun_data_apps_stellar_operations_serialize_write_change_trust_op[28] = { + 0x22,0x0c, // prelude + 0x17,0x4a,0x4b, // names: write_change_trust_op, w, msg + 0x80,0x34,0x29, // code info + 0x12,0x46, // LOAD_GLOBAL '_write_asset' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'asset' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'write_uint64' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x19, // LOAD_ATTR 'limit' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_serialize_write_change_trust_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_operations_serialize_write_change_trust_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_stellar_operations_serialize_write_change_trust_op + 5, + .line_info_top = fun_data_apps_stellar_operations_serialize_write_change_trust_op + 8, + .opcodes = fun_data_apps_stellar_operations_serialize_write_change_trust_op + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_serialize__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/serialize.py, scope apps_stellar_operations_serialize_write_create_account_op +static const byte fun_data_apps_stellar_operations_serialize_write_create_account_op[28] = { + 0x22,0x0c, // prelude + 0x1a,0x4a,0x4b, // names: write_create_account_op, w, msg + 0x80,0x39,0x29, // code info + 0x12,0x09, // LOAD_GLOBAL 'write_pubkey' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'new_account' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'write_uint64' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1c, // LOAD_ATTR 'starting_balance' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_serialize_write_create_account_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_operations_serialize_write_create_account_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 26, + .line_info = fun_data_apps_stellar_operations_serialize_write_create_account_op + 5, + .line_info_top = fun_data_apps_stellar_operations_serialize_write_create_account_op + 8, + .opcodes = fun_data_apps_stellar_operations_serialize_write_create_account_op + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_serialize__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/serialize.py, scope apps_stellar_operations_serialize_write_create_passive_sell_offer_op +static const byte fun_data_apps_stellar_operations_serialize_write_create_passive_sell_offer_op[58] = { + 0x22,0x12, // prelude + 0x1d,0x4a,0x4b, // names: write_create_passive_sell_offer_op, w, msg + 0x80,0x40,0x29,0x29,0x29,0x29, // code info + 0x12,0x46, // LOAD_GLOBAL '_write_asset' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1e, // LOAD_ATTR 'selling_asset' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x46, // LOAD_GLOBAL '_write_asset' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1f, // LOAD_ATTR 'buying_asset' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'write_uint64' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x20, // LOAD_ATTR 'amount' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'price_n' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x22, // LOAD_ATTR 'price_d' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_serialize_write_create_passive_sell_offer_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_operations_serialize_write_create_passive_sell_offer_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 58, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_apps_stellar_operations_serialize_write_create_passive_sell_offer_op + 5, + .line_info_top = fun_data_apps_stellar_operations_serialize_write_create_passive_sell_offer_op + 11, + .opcodes = fun_data_apps_stellar_operations_serialize_write_create_passive_sell_offer_op + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_serialize__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/serialize.py, scope apps_stellar_operations_serialize_write_manage_data_op +static const byte fun_data_apps_stellar_operations_serialize_write_manage_data_op[70] = { + 0x2a,0x14, // prelude + 0x23,0x4a,0x4b, // names: write_manage_data_op, w, msg + 0x80,0x48,0x2d,0x27,0x29,0x2d,0x25, // code info + 0x12,0x4c, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x24, // LOAD_ATTR 'key' + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x05, // LOAD_GLOBAL 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x0a, // LOAD_GLOBAL 'write_string' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x24, // LOAD_ATTR 'key' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'write_bool' + 0xb0, // LOAD_FAST 0 + 0x12,0x4d, // LOAD_GLOBAL 'bool' + 0xb1, // LOAD_FAST 1 + 0x13,0x25, // LOAD_ATTR 'value' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x25, // LOAD_ATTR 'value' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x0a, // LOAD_GLOBAL 'write_string' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x25, // LOAD_ATTR 'value' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_serialize_write_manage_data_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_operations_serialize_write_manage_data_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_stellar_operations_serialize_write_manage_data_op + 5, + .line_info_top = fun_data_apps_stellar_operations_serialize_write_manage_data_op + 12, + .opcodes = fun_data_apps_stellar_operations_serialize_write_manage_data_op + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_serialize__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/serialize.py, scope apps_stellar_operations_serialize_write_manage_buy_offer_op +static const byte fun_data_apps_stellar_operations_serialize_write_manage_buy_offer_op[16] = { + 0x22,0x0a, // prelude + 0x26,0x4a,0x4b, // names: write_manage_buy_offer_op, w, msg + 0x80,0x51, // code info + 0x12,0x28, // LOAD_GLOBAL '_write_manage_offer_op_common' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_serialize_write_manage_buy_offer_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_operations_serialize_write_manage_buy_offer_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 38, + .line_info = fun_data_apps_stellar_operations_serialize_write_manage_buy_offer_op + 5, + .line_info_top = fun_data_apps_stellar_operations_serialize_write_manage_buy_offer_op + 7, + .opcodes = fun_data_apps_stellar_operations_serialize_write_manage_buy_offer_op + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_serialize__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/serialize.py, scope apps_stellar_operations_serialize_write_manage_sell_offer_op +static const byte fun_data_apps_stellar_operations_serialize_write_manage_sell_offer_op[16] = { + 0x22,0x0a, // prelude + 0x27,0x4a,0x4b, // names: write_manage_sell_offer_op, w, msg + 0x80,0x55, // code info + 0x12,0x28, // LOAD_GLOBAL '_write_manage_offer_op_common' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_serialize_write_manage_sell_offer_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_operations_serialize_write_manage_sell_offer_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_stellar_operations_serialize_write_manage_sell_offer_op + 5, + .line_info_top = fun_data_apps_stellar_operations_serialize_write_manage_sell_offer_op + 7, + .opcodes = fun_data_apps_stellar_operations_serialize_write_manage_sell_offer_op + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_serialize__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/serialize.py, scope apps_stellar_operations_serialize__write_manage_offer_op_common +static const byte fun_data_apps_stellar_operations_serialize__write_manage_offer_op_common[68] = { + 0x22,0x14, // prelude + 0x28,0x4a,0x4b, // names: _write_manage_offer_op_common, w, msg + 0x80,0x5b,0x29,0x29,0x29,0x29,0x29, // code info + 0x12,0x46, // LOAD_GLOBAL '_write_asset' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1e, // LOAD_ATTR 'selling_asset' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x46, // LOAD_GLOBAL '_write_asset' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x1f, // LOAD_ATTR 'buying_asset' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'write_uint64' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x20, // LOAD_ATTR 'amount' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x21, // LOAD_ATTR 'price_n' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x22, // LOAD_ATTR 'price_d' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'write_uint64' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x29, // LOAD_ATTR 'offer_id' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_serialize__write_manage_offer_op_common = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_operations_serialize__write_manage_offer_op_common, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 68, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_stellar_operations_serialize__write_manage_offer_op_common + 5, + .line_info_top = fun_data_apps_stellar_operations_serialize__write_manage_offer_op_common + 12, + .opcodes = fun_data_apps_stellar_operations_serialize__write_manage_offer_op_common + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_serialize__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/serialize.py, scope apps_stellar_operations_serialize_write_path_payment_strict_receive_op +static const byte fun_data_apps_stellar_operations_serialize_write_path_payment_strict_receive_op[90] = { + 0x4a,0x18, // prelude + 0x2a,0x4a,0x4b, // names: write_path_payment_strict_receive_op, w, msg + 0x80,0x66,0x29,0x29,0x49,0x29,0x29,0x2d,0x27, // code info + 0x12,0x46, // LOAD_GLOBAL '_write_asset' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x2b, // LOAD_ATTR 'send_asset' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'write_uint64' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x2c, // LOAD_ATTR 'send_max' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'write_pubkey' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'destination_account' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x46, // LOAD_GLOBAL '_write_asset' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x2d, // LOAD_ATTR 'destination_asset' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'write_uint64' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x2e, // LOAD_ATTR 'destination_amount' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0x12,0x4c, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x2f, // LOAD_ATTR 'paths' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x2f, // LOAD_ATTR 'paths' + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc2, // STORE_FAST 2 + 0x12,0x46, // LOAD_GLOBAL '_write_asset' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_serialize_write_path_payment_strict_receive_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_operations_serialize_write_path_payment_strict_receive_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 90, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_stellar_operations_serialize_write_path_payment_strict_receive_op + 5, + .line_info_top = fun_data_apps_stellar_operations_serialize_write_path_payment_strict_receive_op + 14, + .opcodes = fun_data_apps_stellar_operations_serialize_write_path_payment_strict_receive_op + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_serialize__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/serialize.py, scope apps_stellar_operations_serialize_write_path_payment_strict_send_op +static const byte fun_data_apps_stellar_operations_serialize_write_path_payment_strict_send_op[90] = { + 0x4a,0x18, // prelude + 0x30,0x4a,0x4b, // names: write_path_payment_strict_send_op, w, msg + 0x80,0x74,0x29,0x29,0x49,0x29,0x29,0x2d,0x27, // code info + 0x12,0x46, // LOAD_GLOBAL '_write_asset' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x2b, // LOAD_ATTR 'send_asset' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'write_uint64' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x31, // LOAD_ATTR 'send_amount' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'write_pubkey' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'destination_account' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x46, // LOAD_GLOBAL '_write_asset' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x2d, // LOAD_ATTR 'destination_asset' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'write_uint64' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'destination_min' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0x12,0x4c, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x2f, // LOAD_ATTR 'paths' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x2f, // LOAD_ATTR 'paths' + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc2, // STORE_FAST 2 + 0x12,0x46, // LOAD_GLOBAL '_write_asset' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_serialize_write_path_payment_strict_send_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_operations_serialize_write_path_payment_strict_send_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 90, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 48, + .line_info = fun_data_apps_stellar_operations_serialize_write_path_payment_strict_send_op + 5, + .line_info_top = fun_data_apps_stellar_operations_serialize_write_path_payment_strict_send_op + 14, + .opcodes = fun_data_apps_stellar_operations_serialize_write_path_payment_strict_send_op + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_serialize__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/serialize.py, scope apps_stellar_operations_serialize_write_payment_op +static const byte fun_data_apps_stellar_operations_serialize_write_payment_op[38] = { + 0x22,0x0e, // prelude + 0x33,0x4a,0x4b, // names: write_payment_op, w, msg + 0x80,0x80,0x29,0x29, // code info + 0x12,0x09, // LOAD_GLOBAL 'write_pubkey' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'destination_account' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x46, // LOAD_GLOBAL '_write_asset' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x18, // LOAD_ATTR 'asset' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'write_uint64' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x20, // LOAD_ATTR 'amount' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_serialize_write_payment_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_operations_serialize_write_payment_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 51, + .line_info = fun_data_apps_stellar_operations_serialize_write_payment_op + 5, + .line_info_top = fun_data_apps_stellar_operations_serialize_write_payment_op + 9, + .opcodes = fun_data_apps_stellar_operations_serialize_write_payment_op + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_serialize__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/serialize.py, scope apps_stellar_operations_serialize_write_set_options_op +static const byte fun_data_apps_stellar_operations_serialize_write_set_options_op[246] = { + 0x4a,0x44, // prelude + 0x34,0x4a,0x4b, // names: write_set_options_op, w, msg + 0x80,0x87,0x27,0x49,0x27,0x69,0x40,0x43,0x43,0x23,0x23,0x23,0x49,0x25,0x49,0x27,0x69,0x27,0x49,0x27,0x2b,0x27,0x69,0x27,0x49,0x2e,0x22,0x45,0x27,0x29,0x2a, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x35, // LOAD_ATTR 'inflation_destination_account' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x07, // LOAD_GLOBAL 'write_bool' + 0xb0, // LOAD_FAST 0 + 0x50, // LOAD_CONST_FALSE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x50, // JUMP 16 + 0x12,0x07, // LOAD_GLOBAL 'write_bool' + 0xb0, // LOAD_FAST 0 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'write_pubkey' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x35, // LOAD_ATTR 'inflation_destination_account' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x36, // LOAD_ATTR 'clear_flags' + 0xb1, // LOAD_FAST 1 + 0x13,0x37, // LOAD_ATTR 'set_flags' + 0xb1, // LOAD_FAST 1 + 0x13,0x38, // LOAD_ATTR 'master_weight' + 0xb1, // LOAD_FAST 1 + 0x13,0x39, // LOAD_ATTR 'low_threshold' + 0xb1, // LOAD_FAST 1 + 0x13,0x3a, // LOAD_ATTR 'medium_threshold' + 0xb1, // LOAD_FAST 1 + 0x13,0x3b, // LOAD_ATTR 'high_threshold' + 0x2a,0x06, // BUILD_TUPLE 6 + 0x5f, // GET_ITER_STACK + 0x4b,0x1f, // FOR_ITER 31 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x07, // LOAD_GLOBAL 'write_bool' + 0xb0, // LOAD_FAST 0 + 0x50, // LOAD_CONST_FALSE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x4e, // JUMP 14 + 0x12,0x07, // LOAD_GLOBAL 'write_bool' + 0xb0, // LOAD_FAST 0 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x1f, // JUMP -33 + 0xb1, // LOAD_FAST 1 + 0x13,0x3c, // LOAD_ATTR 'home_domain' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x07, // LOAD_GLOBAL 'write_bool' + 0xb0, // LOAD_FAST 0 + 0x50, // LOAD_CONST_FALSE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x62, // JUMP 34 + 0x12,0x07, // LOAD_GLOBAL 'write_bool' + 0xb0, // LOAD_FAST 0 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x4c, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x3c, // LOAD_ATTR 'home_domain' + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x05, // LOAD_GLOBAL 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x0a, // LOAD_GLOBAL 'write_string' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x3c, // LOAD_ATTR 'home_domain' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x3d, // LOAD_ATTR 'signer_type' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x07, // LOAD_GLOBAL 'write_bool' + 0xb0, // LOAD_FAST 0 + 0x50, // LOAD_CONST_FALSE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x78, // JUMP 56 + 0xb1, // LOAD_FAST 1 + 0x13,0x3e, // LOAD_ATTR 'signer_key' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0xb1, // LOAD_FAST 1 + 0x13,0x3f, // LOAD_ATTR 'signer_weight' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x07, // LOAD_GLOBAL 'write_bool' + 0xb0, // LOAD_FAST 0 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x3d, // LOAD_ATTR 'signer_type' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x3e, // LOAD_ATTR 'signer_key' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x3f, // LOAD_ATTR 'signer_weight' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_serialize_write_set_options_op = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_operations_serialize_write_set_options_op, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 246, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 52, + .line_info = fun_data_apps_stellar_operations_serialize_write_set_options_op + 5, + .line_info_top = fun_data_apps_stellar_operations_serialize_write_set_options_op + 36, + .opcodes = fun_data_apps_stellar_operations_serialize_write_set_options_op + 36, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_serialize__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/serialize.py, scope apps_stellar_operations_serialize_write_account +static const byte fun_data_apps_stellar_operations_serialize_write_account[40] = { + 0x22,0x10, // prelude + 0x40,0x4a,0x4e, // names: write_account, w, source_account + 0x80,0xb7,0x25,0x49,0x27, // code info + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x07, // LOAD_GLOBAL 'write_bool' + 0xb0, // LOAD_FAST 0 + 0x50, // LOAD_CONST_FALSE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x4e, // JUMP 14 + 0x12,0x07, // LOAD_GLOBAL 'write_bool' + 0xb0, // LOAD_FAST 0 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'write_pubkey' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_serialize_write_account = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_operations_serialize_write_account, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 40, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_apps_stellar_operations_serialize_write_account + 5, + .line_info_top = fun_data_apps_stellar_operations_serialize_write_account + 10, + .opcodes = fun_data_apps_stellar_operations_serialize_write_account + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_serialize__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/serialize.py, scope apps_stellar_operations_serialize__write_asset_code +static const byte fun_data_apps_stellar_operations_serialize__write_asset_code[158] = { + 0x5b,0x26, // prelude + 0x41,0x4a,0x12,0x13, // names: _write_asset_code, w, asset_type, asset_code + 0x80,0xc1,0x28,0x42,0x25,0x47,0x26,0x28,0x29,0x47,0x3a,0x28,0x29,0x47,0x5a, // code info + 0xb1, // LOAD_FAST 1 + 0x12,0x02, // LOAD_GLOBAL 'StellarAssetType' + 0x13,0x42, // LOAD_ATTR 'NATIVE' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb2, // LOAD_FAST 2 + 0x14,0x43, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x12,0x02, // LOAD_GLOBAL 'StellarAssetType' + 0x13,0x44, // LOAD_ATTR 'ALPHANUM4' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6a, // POP_JUMP_IF_FALSE 42 + 0x12,0x4c, // LOAD_GLOBAL 'len' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x08, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x12,0x4f, // LOAD_GLOBAL 'bytes' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x01, // BUILD_LIST 1 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x12,0x4c, // LOAD_GLOBAL 'len' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xf4, // BINARY_OP 29 __mul__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x79, // JUMP 57 + 0xb1, // LOAD_FAST 1 + 0x12,0x02, // LOAD_GLOBAL 'StellarAssetType' + 0x13,0x45, // LOAD_ATTR 'ALPHANUM12' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6a, // POP_JUMP_IF_FALSE 42 + 0x12,0x4c, // LOAD_GLOBAL 'len' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x08, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x12,0x4f, // LOAD_GLOBAL 'bytes' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x01, // BUILD_LIST 1 + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0x12,0x4c, // LOAD_GLOBAL 'len' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf3, // BINARY_OP 28 __sub__ + 0xf4, // BINARY_OP 29 __mul__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0x12,0x05, // LOAD_GLOBAL 'ProcessError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_serialize__write_asset_code = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_stellar_operations_serialize__write_asset_code, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 158, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 65, + .line_info = fun_data_apps_stellar_operations_serialize__write_asset_code + 6, + .line_info_top = fun_data_apps_stellar_operations_serialize__write_asset_code + 21, + .opcodes = fun_data_apps_stellar_operations_serialize__write_asset_code + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_stellar_operations_serialize__lt_module_gt_ +// frozen bytecode for file apps/stellar/operations/serialize.py, scope apps_stellar_operations_serialize__write_asset +static const byte fun_data_apps_stellar_operations_serialize__write_asset[86] = { + 0x2a,0x18, // prelude + 0x46,0x4a,0x18, // names: _write_asset, w, asset + 0x80,0xd7,0x2a,0x27,0x22,0x2e,0x27,0x29,0x2c, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x47, // LOAD_ATTR 'type' + 0x12,0x02, // LOAD_GLOBAL 'StellarAssetType' + 0x13,0x42, // LOAD_ATTR 'NATIVE' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x0b, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x48, // LOAD_ATTR 'code' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0xb1, // LOAD_FAST 1 + 0x13,0x49, // LOAD_ATTR 'issuer' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x0b, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x47, // LOAD_ATTR 'type' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x41, // LOAD_GLOBAL '_write_asset_code' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x47, // LOAD_ATTR 'type' + 0xb1, // LOAD_FAST 1 + 0x13,0x48, // LOAD_ATTR 'code' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'write_pubkey' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x49, // LOAD_ATTR 'issuer' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_stellar_operations_serialize__write_asset = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_stellar_operations_serialize__write_asset, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 86, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 70, + .line_info = fun_data_apps_stellar_operations_serialize__write_asset + 5, + .line_info_top = fun_data_apps_stellar_operations_serialize__write_asset + 14, + .opcodes = fun_data_apps_stellar_operations_serialize__write_asset + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_stellar_operations_serialize__lt_module_gt_[] = { + &raw_code_apps_stellar_operations_serialize_write_account_merge_op, + &raw_code_apps_stellar_operations_serialize_write_allow_trust_op, + &raw_code_apps_stellar_operations_serialize_write_bump_sequence_op, + &raw_code_apps_stellar_operations_serialize_write_change_trust_op, + &raw_code_apps_stellar_operations_serialize_write_create_account_op, + &raw_code_apps_stellar_operations_serialize_write_create_passive_sell_offer_op, + &raw_code_apps_stellar_operations_serialize_write_manage_data_op, + &raw_code_apps_stellar_operations_serialize_write_manage_buy_offer_op, + &raw_code_apps_stellar_operations_serialize_write_manage_sell_offer_op, + &raw_code_apps_stellar_operations_serialize__write_manage_offer_op_common, + &raw_code_apps_stellar_operations_serialize_write_path_payment_strict_receive_op, + &raw_code_apps_stellar_operations_serialize_write_path_payment_strict_send_op, + &raw_code_apps_stellar_operations_serialize_write_payment_op, + &raw_code_apps_stellar_operations_serialize_write_set_options_op, + &raw_code_apps_stellar_operations_serialize_write_account, + &raw_code_apps_stellar_operations_serialize__write_asset_code, + &raw_code_apps_stellar_operations_serialize__write_asset, +}; + +static const mp_raw_code_t raw_code_apps_stellar_operations_serialize__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_stellar_operations_serialize__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 185, + #endif + .children = (void *)&children_apps_stellar_operations_serialize__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 17, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_stellar_operations_serialize__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_stellar_operations_serialize__lt_module_gt_ + 43, + .opcodes = fun_data_apps_stellar_operations_serialize__lt_module_gt_ + 43, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_stellar_operations_serialize[80] = { + MP_QSTR_apps_slash_stellar_slash_operations_slash_serialize_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_StellarAssetType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_DataError, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_write_bool, + MP_QSTR_write_bytes_fixed, + MP_QSTR_write_pubkey, + MP_QSTR_write_string, + MP_QSTR_write_uint32, + MP_QSTR_write_uint64, + MP_QSTR_writers, + MP_QSTR_write_account_merge_op, + MP_QSTR_destination_account, + MP_QSTR_write_allow_trust_op, + MP_QSTR_trusted_account, + MP_QSTR_asset_type, + MP_QSTR_asset_code, + MP_QSTR_is_authorized, + MP_QSTR_write_bump_sequence_op, + MP_QSTR_bump_to, + MP_QSTR_write_change_trust_op, + MP_QSTR_asset, + MP_QSTR_limit, + MP_QSTR_write_create_account_op, + MP_QSTR_new_account, + MP_QSTR_starting_balance, + MP_QSTR_write_create_passive_sell_offer_op, + MP_QSTR_selling_asset, + MP_QSTR_buying_asset, + MP_QSTR_amount, + MP_QSTR_price_n, + MP_QSTR_price_d, + MP_QSTR_write_manage_data_op, + MP_QSTR_key, + MP_QSTR_value, + MP_QSTR_write_manage_buy_offer_op, + MP_QSTR_write_manage_sell_offer_op, + MP_QSTR__write_manage_offer_op_common, + MP_QSTR_offer_id, + MP_QSTR_write_path_payment_strict_receive_op, + MP_QSTR_send_asset, + MP_QSTR_send_max, + MP_QSTR_destination_asset, + MP_QSTR_destination_amount, + MP_QSTR_paths, + MP_QSTR_write_path_payment_strict_send_op, + MP_QSTR_send_amount, + MP_QSTR_destination_min, + MP_QSTR_write_payment_op, + MP_QSTR_write_set_options_op, + MP_QSTR_inflation_destination_account, + MP_QSTR_clear_flags, + MP_QSTR_set_flags, + MP_QSTR_master_weight, + MP_QSTR_low_threshold, + MP_QSTR_medium_threshold, + MP_QSTR_high_threshold, + MP_QSTR_home_domain, + MP_QSTR_signer_type, + MP_QSTR_signer_key, + MP_QSTR_signer_weight, + MP_QSTR_write_account, + MP_QSTR__write_asset_code, + MP_QSTR_NATIVE, + MP_QSTR_encode, + MP_QSTR_ALPHANUM4, + MP_QSTR_ALPHANUM12, + MP_QSTR__write_asset, + MP_QSTR_type, + MP_QSTR_code, + MP_QSTR_issuer, + MP_QSTR_w, + MP_QSTR_msg, + MP_QSTR_len, + MP_QSTR_bool, + MP_QSTR_source_account, + MP_QSTR_bytes, +}; + +// constants +static const mp_obj_str_t const_obj_apps_stellar_operations_serialize_0 = {{&mp_type_str}, 51896, 40, (const byte*)"\x53\x74\x65\x6c\x6c\x61\x72\x3a\x20\x6d\x61\x78\x20\x6c\x65\x6e\x67\x74\x68\x20\x6f\x66\x20\x61\x20\x6b\x65\x79\x20\x69\x73\x20\x36\x34\x20\x62\x79\x74\x65\x73"}; +static const mp_obj_str_t const_obj_apps_stellar_operations_serialize_1 = {{&mp_type_str}, 2211, 48, (const byte*)"\x53\x74\x65\x6c\x6c\x61\x72\x3a\x20\x6d\x61\x78\x20\x6c\x65\x6e\x67\x74\x68\x20\x6f\x66\x20\x61\x20\x68\x6f\x6d\x65\x20\x64\x6f\x6d\x61\x69\x6e\x20\x69\x73\x20\x33\x32\x20\x62\x79\x74\x65\x73"}; +static const mp_obj_str_t const_obj_apps_stellar_operations_serialize_2 = {{&mp_type_str}, 62034, 68, (const byte*)"\x53\x74\x65\x6c\x6c\x61\x72\x3a\x20\x73\x69\x67\x6e\x65\x72\x5f\x74\x79\x70\x65\x2c\x20\x73\x69\x67\x6e\x65\x72\x5f\x6b\x65\x79\x2c\x20\x73\x69\x67\x6e\x65\x72\x5f\x77\x65\x69\x67\x68\x74\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x73\x65\x74\x20\x74\x6f\x67\x65\x74\x68\x65\x72"}; +static const mp_obj_str_t const_obj_apps_stellar_operations_serialize_4 = {{&mp_type_str}, 4096, 42, (const byte*)"\x53\x74\x65\x6c\x6c\x61\x72\x3a\x20\x61\x73\x73\x65\x74\x20\x63\x6f\x64\x65\x20\x74\x6f\x6f\x20\x6c\x6f\x6e\x67\x20\x66\x6f\x72\x20\x41\x4c\x50\x48\x41\x4e\x55\x4d\x34"}; +static const mp_obj_str_t const_obj_apps_stellar_operations_serialize_5 = {{&mp_type_str}, 4247, 43, (const byte*)"\x53\x74\x65\x6c\x6c\x61\x72\x3a\x20\x61\x73\x73\x65\x74\x20\x63\x6f\x64\x65\x20\x74\x6f\x6f\x20\x6c\x6f\x6e\x67\x20\x66\x6f\x72\x20\x41\x4c\x50\x48\x41\x4e\x55\x4d\x31\x32"}; +static const mp_obj_str_t const_obj_apps_stellar_operations_serialize_6 = {{&mp_type_str}, 9847, 27, (const byte*)"\x53\x74\x65\x6c\x6c\x61\x72\x3a\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x61\x73\x73\x65\x74\x20\x74\x79\x70\x65"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_stellar_operations_serialize[7] = { + MP_ROM_PTR(&const_obj_apps_stellar_operations_serialize_0), + MP_ROM_PTR(&const_obj_apps_stellar_operations_serialize_1), + MP_ROM_PTR(&const_obj_apps_stellar_operations_serialize_2), + MP_ROM_QSTR(MP_QSTR_Stellar_colon__space_invalid_space_asset), + MP_ROM_PTR(&const_obj_apps_stellar_operations_serialize_4), + MP_ROM_PTR(&const_obj_apps_stellar_operations_serialize_5), + MP_ROM_PTR(&const_obj_apps_stellar_operations_serialize_6), +}; + +static const mp_frozen_module_t frozen_module_apps_stellar_operations_serialize = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_stellar_operations_serialize, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_stellar_operations_serialize, + }, + .rc = &raw_code_apps_stellar_operations_serialize__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_StellarAssetType +// - original source file: build/firmware/src/trezor/enums/StellarAssetType.mpy +// - frozen file name: trezor/enums/StellarAssetType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/StellarAssetType.py, scope trezor_enums_StellarAssetType__lt_module_gt_ +static const byte fun_data_trezor_enums_StellarAssetType__lt_module_gt_[18] = { + 0x00,0x0a, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'NATIVE' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'ALPHANUM4' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'ALPHANUM12' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_StellarAssetType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_StellarAssetType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_StellarAssetType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_StellarAssetType__lt_module_gt_ + 7, + .opcodes = fun_data_trezor_enums_StellarAssetType__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_StellarAssetType[5] = { + MP_QSTR_trezor_slash_enums_slash_StellarAssetType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_NATIVE, + MP_QSTR_ALPHANUM4, + MP_QSTR_ALPHANUM12, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_StellarAssetType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_StellarAssetType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_StellarAssetType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_StellarMemoType +// - original source file: build/firmware/src/trezor/enums/StellarMemoType.mpy +// - frozen file name: trezor/enums/StellarMemoType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/StellarMemoType.py, scope trezor_enums_StellarMemoType__lt_module_gt_ +static const byte fun_data_trezor_enums_StellarMemoType__lt_module_gt_[26] = { + 0x00,0x0e, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'NONE' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'TEXT' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'ID' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x05, // STORE_NAME 'HASH' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x16,0x06, // STORE_NAME 'RETURN' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_StellarMemoType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_StellarMemoType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_StellarMemoType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_StellarMemoType__lt_module_gt_ + 9, + .opcodes = fun_data_trezor_enums_StellarMemoType__lt_module_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_StellarMemoType[7] = { + MP_QSTR_trezor_slash_enums_slash_StellarMemoType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_NONE, + MP_QSTR_TEXT, + MP_QSTR_ID, + MP_QSTR_HASH, + MP_QSTR_RETURN, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_StellarMemoType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_StellarMemoType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_StellarMemoType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_StellarSignerType +// - original source file: build/firmware/src/trezor/enums/StellarSignerType.mpy +// - frozen file name: trezor/enums/StellarSignerType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/StellarSignerType.py, scope trezor_enums_StellarSignerType__lt_module_gt_ +static const byte fun_data_trezor_enums_StellarSignerType__lt_module_gt_[18] = { + 0x00,0x0a, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'ACCOUNT' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'PRE_AUTH' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'HASH' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_StellarSignerType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_StellarSignerType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_StellarSignerType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_StellarSignerType__lt_module_gt_ + 7, + .opcodes = fun_data_trezor_enums_StellarSignerType__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_StellarSignerType[5] = { + MP_QSTR_trezor_slash_enums_slash_StellarSignerType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ACCOUNT, + MP_QSTR_PRE_AUTH, + MP_QSTR_HASH, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_StellarSignerType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_StellarSignerType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_StellarSignerType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_tezos___init__ +// - original source file: build/firmware/src/apps/tezos/__init__.mpy +// - frozen file name: apps/tezos/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/tezos/__init__.py, scope apps_tezos___init____lt_module_gt_ +static const byte fun_data_apps_tezos___init____lt_module_gt_[38] = { + 0x08,0x0a, // prelude + 0x01, // names: + 0x4c,0x24,0x25,0x42, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'PATTERN_SEP5' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x02, // IMPORT_FROM 'PATTERN_SEP5' + 0x16,0x02, // STORE_NAME 'PATTERN_SEP5' + 0x59, // POP_TOP + 0x10,0x04, // LOAD_CONST_STRING 'ed25519' + 0x16,0x05, // STORE_NAME 'CURVE' + 0x22,0x8d,0x41, // LOAD_CONST_SMALL_INT 1729 + 0x16,0x06, // STORE_NAME 'SLIP44_ID' + 0x11,0x02, // LOAD_NAME 'PATTERN_SEP5' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x16,0x07, // STORE_NAME 'PATTERNS' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_tezos___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_tezos___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_tezos___init____lt_module_gt_ + 7, + .opcodes = fun_data_apps_tezos___init____lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_tezos___init__[8] = { + MP_QSTR_apps_slash_tezos_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_PATTERN_SEP5, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_ed25519, + MP_QSTR_CURVE, + MP_QSTR_SLIP44_ID, + MP_QSTR_PATTERNS, +}; + +// constants +static const mp_obj_str_t const_obj_apps_tezos___init___0 = {{&mp_type_str}, 47029, 28, (const byte*)"\x6d\x2f\x34\x34\x27\x2f\x63\x6f\x69\x6e\x5f\x74\x79\x70\x65\x27\x2f\x30\x27\x2f\x61\x63\x63\x6f\x75\x6e\x74\x27"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_tezos___init__[1] = { + MP_ROM_PTR(&const_obj_apps_tezos___init___0), +}; + +static const mp_frozen_module_t frozen_module_apps_tezos___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_tezos___init__, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_tezos___init__, + }, + .rc = &raw_code_apps_tezos___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_tezos_get_address +// - original source file: build/firmware/src/apps/tezos/get_address.mpy +// - frozen file name: apps/tezos/get_address.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/tezos/get_address.py, scope apps_tezos_get_address__lt_module_gt_ +static const byte fun_data_apps_tezos_get_address__lt_module_gt_[68] = { + 0x30,0x0c, // prelude + 0x01, // names: + 0x40,0x4c,0x58,0x60,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'with_slip44_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x02, // IMPORT_FROM 'with_slip44_keychain' + 0x16,0x02, // STORE_NAME 'with_slip44_keychain' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING 'CURVE' + 0x10,0x05, // LOAD_CONST_STRING 'PATTERNS' + 0x10,0x06, // LOAD_CONST_STRING 'SLIP44_ID' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x07, // IMPORT_NAME '' + 0x1c,0x04, // IMPORT_FROM 'CURVE' + 0x16,0x04, // STORE_NAME 'CURVE' + 0x1c,0x05, // IMPORT_FROM 'PATTERNS' + 0x16,0x05, // STORE_NAME 'PATTERNS' + 0x1c,0x06, // IMPORT_FROM 'SLIP44_ID' + 0x16,0x06, // STORE_NAME 'SLIP44_ID' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'with_slip44_keychain' + 0x11,0x05, // LOAD_NAME 'PATTERNS' + 0x10,0x08, // LOAD_CONST_STRING 'slip44_id' + 0x11,0x06, // LOAD_NAME 'SLIP44_ID' + 0x10,0x09, // LOAD_CONST_STRING 'curve' + 0x11,0x04, // LOAD_NAME 'CURVE' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x35,0x84,0x01, // CALL_FUNCTION_VAR_KW 513 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x0a, // STORE_NAME 'get_address' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_tezos_get_address__lt_module_gt_ +// frozen bytecode for file apps/tezos/get_address.py, scope apps_tezos_get_address_get_address +static const byte fun_data_apps_tezos_get_address_get_address[212] = { + 0xca,0x50,0x2c, // prelude + 0x0a,0x28,0x29, // names: get_address, msg, keychain + 0x80,0x0e,0x2b,0x2b,0x4b,0x50,0x4b,0x44,0x4b,0x47,0x2b,0x31,0x4a,0x25,0x50,0x44,0x28,0x2c,0x6e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'hashlib' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x0b, // IMPORT_FROM 'hashlib' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'TezosAddress' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0d, // IMPORT_FROM 'TezosAddress' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0f, // LOAD_CONST_STRING 'show_address' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x0f, // IMPORT_FROM 'show_address' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'paths' + 0x10,0x12, // LOAD_CONST_STRING 'seed' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x13, // IMPORT_NAME 'apps.common' + 0x1c,0x11, // IMPORT_FROM 'paths' + 0xc5, // STORE_FAST 5 + 0x1c,0x12, // IMPORT_FROM 'seed' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x14, // LOAD_CONST_STRING 'helpers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME '' + 0x1c,0x14, // IMPORT_FROM 'helpers' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x15, // LOAD_ATTR 'address_n' + 0xc8, // STORE_FAST 8 + 0xb5, // LOAD_FAST 5 + 0x14,0x16, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb8, // LOAD_FAST 8 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x17, // LOAD_METHOD 'derive' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0xc9, // STORE_FAST 9 + 0xb6, // LOAD_FAST 6 + 0x14,0x18, // LOAD_METHOD 'remove_ed25519_prefix' + 0xb9, // LOAD_FAST 9 + 0x14,0x19, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0xca, // STORE_FAST 10 + 0xb2, // LOAD_FAST 2 + 0x14,0x1a, // LOAD_METHOD 'blake2b' + 0xba, // LOAD_FAST 10 + 0x10,0x1b, // LOAD_CONST_STRING 'outlen' + 0xb7, // LOAD_FAST 7 + 0x13,0x1c, // LOAD_ATTR 'PUBLIC_KEY_HASH_SIZE' + 0x36,0x82,0x01, // CALL_METHOD 257 + 0x14,0x1d, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xcb, // STORE_FAST 11 + 0xb7, // LOAD_FAST 7 + 0x14,0x1e, // LOAD_METHOD 'base58_encode_check' + 0xbb, // LOAD_FAST 11 + 0xb7, // LOAD_FAST 7 + 0x13,0x1f, // LOAD_ATTR 'TEZOS_ED25519_ADDRESS_PREFIX' + 0x36,0x02, // CALL_METHOD 2 + 0xcc, // STORE_FAST 12 + 0xb0, // LOAD_FAST 0 + 0x13,0x20, // LOAD_ATTR 'show_display' + 0x44,0x76, // POP_JUMP_IF_FALSE 54 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x05, // LOAD_CONST_STRING 'PATTERNS' + 0x10,0x06, // LOAD_CONST_STRING 'SLIP44_ID' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x07, // IMPORT_NAME '' + 0x1c,0x05, // IMPORT_FROM 'PATTERNS' + 0xcd, // STORE_FAST 13 + 0x1c,0x06, // IMPORT_FROM 'SLIP44_ID' + 0xce, // STORE_FAST 14 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xbc, // LOAD_FAST 12 + 0x10,0x21, // LOAD_CONST_STRING 'path' + 0xb5, // LOAD_FAST 5 + 0x14,0x22, // LOAD_METHOD 'address_n_to_str' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0x10,0x23, // LOAD_CONST_STRING 'account' + 0xb5, // LOAD_FAST 5 + 0x14,0x24, // LOAD_METHOD 'get_account_name' + 0x10,0x25, // LOAD_CONST_STRING 'XTZ' + 0xb8, // LOAD_FAST 8 + 0xbd, // LOAD_FAST 13 + 0xbe, // LOAD_FAST 14 + 0x36,0x04, // CALL_METHOD 4 + 0x10,0x26, // LOAD_CONST_STRING 'chunkify' + 0x12,0x2a, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'chunkify' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x86,0x01, // CALL_FUNCTION 769 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x27, // LOAD_CONST_STRING 'address' + 0xbc, // LOAD_FAST 12 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_get_address_get_address = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_tezos_get_address_get_address, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 212, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 26, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_tezos_get_address_get_address + 6, + .line_info_top = fun_data_apps_tezos_get_address_get_address + 25, + .opcodes = fun_data_apps_tezos_get_address_get_address + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_tezos_get_address__lt_module_gt_[] = { + &raw_code_apps_tezos_get_address_get_address, +}; + +static const mp_raw_code_t raw_code_apps_tezos_get_address__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_tezos_get_address__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 68, + #endif + .children = (void *)&children_apps_tezos_get_address__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_tezos_get_address__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_tezos_get_address__lt_module_gt_ + 8, + .opcodes = fun_data_apps_tezos_get_address__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_tezos_get_address[43] = { + MP_QSTR_apps_slash_tezos_slash_get_address_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_with_slip44_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_CURVE, + MP_QSTR_PATTERNS, + MP_QSTR_SLIP44_ID, + MP_QSTR_, + MP_QSTR_slip44_id, + MP_QSTR_curve, + MP_QSTR_get_address, + MP_QSTR_hashlib, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_TezosAddress, + MP_QSTR_trezor_dot_messages, + MP_QSTR_show_address, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_paths, + MP_QSTR_seed, + MP_QSTR_apps_dot_common, + MP_QSTR_helpers, + MP_QSTR_address_n, + MP_QSTR_validate_path, + MP_QSTR_derive, + MP_QSTR_remove_ed25519_prefix, + MP_QSTR_public_key, + MP_QSTR_blake2b, + MP_QSTR_outlen, + MP_QSTR_PUBLIC_KEY_HASH_SIZE, + MP_QSTR_digest, + MP_QSTR_base58_encode_check, + MP_QSTR_TEZOS_ED25519_ADDRESS_PREFIX, + MP_QSTR_show_display, + MP_QSTR_path, + MP_QSTR_address_n_to_str, + MP_QSTR_account, + MP_QSTR_get_account_name, + MP_QSTR_XTZ, + MP_QSTR_chunkify, + MP_QSTR_address, + MP_QSTR_msg, + MP_QSTR_keychain, + MP_QSTR_bool, +}; + +static const mp_frozen_module_t frozen_module_apps_tezos_get_address = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_tezos_get_address, + .obj_table = NULL, + }, + .rc = &raw_code_apps_tezos_get_address__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_tezos_get_public_key +// - original source file: build/firmware/src/apps/tezos/get_public_key.mpy +// - frozen file name: apps/tezos/get_public_key.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/tezos/get_public_key.py, scope apps_tezos_get_public_key__lt_module_gt_ +static const byte fun_data_apps_tezos_get_public_key__lt_module_gt_[68] = { + 0x30,0x0c, // prelude + 0x01, // names: + 0x40,0x4c,0x58,0x60,0x60, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'with_slip44_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x02, // IMPORT_FROM 'with_slip44_keychain' + 0x16,0x02, // STORE_NAME 'with_slip44_keychain' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING 'CURVE' + 0x10,0x05, // LOAD_CONST_STRING 'PATTERNS' + 0x10,0x06, // LOAD_CONST_STRING 'SLIP44_ID' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x07, // IMPORT_NAME '' + 0x1c,0x04, // IMPORT_FROM 'CURVE' + 0x16,0x04, // STORE_NAME 'CURVE' + 0x1c,0x05, // IMPORT_FROM 'PATTERNS' + 0x16,0x05, // STORE_NAME 'PATTERNS' + 0x1c,0x06, // IMPORT_FROM 'SLIP44_ID' + 0x16,0x06, // STORE_NAME 'SLIP44_ID' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'with_slip44_keychain' + 0x11,0x05, // LOAD_NAME 'PATTERNS' + 0x10,0x08, // LOAD_CONST_STRING 'slip44_id' + 0x11,0x06, // LOAD_NAME 'SLIP44_ID' + 0x10,0x09, // LOAD_CONST_STRING 'curve' + 0x11,0x04, // LOAD_NAME 'CURVE' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x35,0x84,0x01, // CALL_FUNCTION_VAR_KW 513 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x0a, // STORE_NAME 'get_public_key' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_tezos_get_public_key__lt_module_gt_ +// frozen bytecode for file apps/tezos/get_public_key.py, scope apps_tezos_get_public_key_get_public_key +static const byte fun_data_apps_tezos_get_public_key_get_public_key[179] = { + 0x9a,0x50,0x24, // prelude + 0x0a,0x20,0x21, // names: get_public_key, msg, keychain + 0x80,0x0e,0x2b,0x4b,0x50,0x4b,0x4d,0x29,0x2b,0x4a,0x25,0x50,0x2d,0x29,0x4f, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'TezosPublicKey' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.messages' + 0x1c,0x0b, // IMPORT_FROM 'TezosPublicKey' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'show_pubkey' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x0d, // IMPORT_FROM 'show_pubkey' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0f, // LOAD_CONST_STRING 'paths' + 0x10,0x10, // LOAD_CONST_STRING 'seed' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x11, // IMPORT_NAME 'apps.common' + 0x1c,0x0f, // IMPORT_FROM 'paths' + 0xc4, // STORE_FAST 4 + 0x1c,0x10, // IMPORT_FROM 'seed' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x12, // LOAD_CONST_STRING 'helpers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME '' + 0x1c,0x12, // IMPORT_FROM 'helpers' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x13, // LOAD_METHOD 'validate_path' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'address_n' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x15, // LOAD_METHOD 'derive' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xc7, // STORE_FAST 7 + 0xb5, // LOAD_FAST 5 + 0x14,0x16, // LOAD_METHOD 'remove_ed25519_prefix' + 0xb7, // LOAD_FAST 7 + 0x14,0x17, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc8, // STORE_FAST 8 + 0xb6, // LOAD_FAST 6 + 0x14,0x18, // LOAD_METHOD 'base58_encode_check' + 0xb8, // LOAD_FAST 8 + 0xb6, // LOAD_FAST 6 + 0x13,0x19, // LOAD_ATTR 'TEZOS_PUBLICKEY_PREFIX' + 0x36,0x02, // CALL_METHOD 2 + 0xc9, // STORE_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'show_display' + 0x44,0x75, // POP_JUMP_IF_FALSE 53 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x05, // LOAD_CONST_STRING 'PATTERNS' + 0x10,0x06, // LOAD_CONST_STRING 'SLIP44_ID' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x07, // IMPORT_NAME '' + 0x1c,0x05, // IMPORT_FROM 'PATTERNS' + 0xca, // STORE_FAST 10 + 0x1c,0x06, // IMPORT_FROM 'SLIP44_ID' + 0xcb, // STORE_FAST 11 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x1b, // LOAD_METHOD 'get_account_name' + 0x10,0x1c, // LOAD_CONST_STRING 'XTZ' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'address_n' + 0xba, // LOAD_FAST 10 + 0xbb, // LOAD_FAST 11 + 0x36,0x04, // CALL_METHOD 4 + 0xcc, // STORE_FAST 12 + 0xb4, // LOAD_FAST 4 + 0x14,0x1d, // LOAD_METHOD 'address_n_to_str' + 0xb0, // LOAD_FAST 0 + 0x13,0x14, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xcd, // STORE_FAST 13 + 0xb3, // LOAD_FAST 3 + 0xb9, // LOAD_FAST 9 + 0x10,0x1e, // LOAD_CONST_STRING 'account' + 0xbc, // LOAD_FAST 12 + 0x10,0x1f, // LOAD_CONST_STRING 'path' + 0xbd, // LOAD_FAST 13 + 0x34,0x84,0x01, // CALL_FUNCTION 513 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x10,0x17, // LOAD_CONST_STRING 'public_key' + 0xb9, // LOAD_FAST 9 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_get_public_key_get_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_tezos_get_public_key_get_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 179, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 20, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 10, + .line_info = fun_data_apps_tezos_get_public_key_get_public_key + 6, + .line_info_top = fun_data_apps_tezos_get_public_key_get_public_key + 21, + .opcodes = fun_data_apps_tezos_get_public_key_get_public_key + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_tezos_get_public_key__lt_module_gt_[] = { + &raw_code_apps_tezos_get_public_key_get_public_key, +}; + +static const mp_raw_code_t raw_code_apps_tezos_get_public_key__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_tezos_get_public_key__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 68, + #endif + .children = (void *)&children_apps_tezos_get_public_key__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_tezos_get_public_key__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_tezos_get_public_key__lt_module_gt_ + 8, + .opcodes = fun_data_apps_tezos_get_public_key__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_tezos_get_public_key[34] = { + MP_QSTR_apps_slash_tezos_slash_get_public_key_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_with_slip44_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_CURVE, + MP_QSTR_PATTERNS, + MP_QSTR_SLIP44_ID, + MP_QSTR_, + MP_QSTR_slip44_id, + MP_QSTR_curve, + MP_QSTR_get_public_key, + MP_QSTR_TezosPublicKey, + MP_QSTR_trezor_dot_messages, + MP_QSTR_show_pubkey, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_paths, + MP_QSTR_seed, + MP_QSTR_apps_dot_common, + MP_QSTR_helpers, + MP_QSTR_validate_path, + MP_QSTR_address_n, + MP_QSTR_derive, + MP_QSTR_remove_ed25519_prefix, + MP_QSTR_public_key, + MP_QSTR_base58_encode_check, + MP_QSTR_TEZOS_PUBLICKEY_PREFIX, + MP_QSTR_show_display, + MP_QSTR_get_account_name, + MP_QSTR_XTZ, + MP_QSTR_address_n_to_str, + MP_QSTR_account, + MP_QSTR_path, + MP_QSTR_msg, + MP_QSTR_keychain, +}; + +static const mp_frozen_module_t frozen_module_apps_tezos_get_public_key = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_tezos_get_public_key, + .obj_table = NULL, + }, + .rc = &raw_code_apps_tezos_get_public_key__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_tezos_helpers +// - original source file: build/firmware/src/apps/tezos/helpers.mpy +// - frozen file name: apps/tezos/helpers.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/tezos/helpers.py, scope apps_tezos_helpers__lt_module_gt_ +static const byte fun_data_apps_tezos_helpers__lt_module_gt_[361] = { + 0x10,0x84,0x02, // prelude + 0x01, // names: + 0x6c,0x32,0x4c,0x4c,0x60,0x20,0x23,0x24,0x24,0x24,0x24,0x42,0x25,0x25,0x25,0x45,0x45,0x45,0x45,0x67,0x22,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x65,0x67,0x23,0x23,0x23,0x23,0x23,0x23,0x63,0x40,0x22,0x23,0x23,0x65,0x23,0x23,0x25,0x25,0x25,0x65,0x40,0x88,0x09,0x64,0x60,0x64,0x60,0x84,0x0b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'BufferReader' + 0x10,0x05, // LOAD_CONST_STRING 'ensure' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x06, // IMPORT_NAME 'trezor.utils' + 0x1c,0x04, // IMPORT_FROM 'BufferReader' + 0x16,0x04, // STORE_NAME 'BufferReader' + 0x1c,0x05, // IMPORT_FROM 'ensure' + 0x16,0x05, // STORE_NAME 'ensure' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.wire' + 0x1c,0x07, // IMPORT_FROM 'DataError' + 0x16,0x07, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'read_uint32_be' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'apps.common.readers' + 0x1c,0x09, // IMPORT_FROM 'read_uint32_be' + 0x16,0x09, // STORE_NAME 'read_uint32_be' + 0x59, // POP_TOP + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x16,0x2e, // STORE_NAME 'TEZOS_AMOUNT_DECIMALS' + 0x10,0x0b, // LOAD_CONST_STRING 'tz1' + 0x16,0x2f, // STORE_NAME 'TEZOS_ED25519_ADDRESS_PREFIX' + 0x10,0x0c, // LOAD_CONST_STRING 'KT1' + 0x16,0x30, // STORE_NAME 'TEZOS_ORIGINATED_ADDRESS_PREFIX' + 0x10,0x0d, // LOAD_CONST_STRING 'edpk' + 0x16,0x31, // STORE_NAME 'TEZOS_PUBLICKEY_PREFIX' + 0x10,0x0e, // LOAD_CONST_STRING 'edsig' + 0x16,0x32, // STORE_NAME 'TEZOS_SIGNATURE_PREFIX' + 0x2c,0x08, // BUILD_MAP 8 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x10,0x0b, // LOAD_CONST_STRING 'tz1' + 0x62, // STORE_MAP + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x10,0x0f, // LOAD_CONST_STRING 'tz2' + 0x62, // STORE_MAP + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x10,0x10, // LOAD_CONST_STRING 'tz3' + 0x62, // STORE_MAP + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x10,0x0c, // LOAD_CONST_STRING 'KT1' + 0x62, // STORE_MAP + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x10,0x0d, // LOAD_CONST_STRING 'edpk' + 0x62, // STORE_MAP + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x10,0x0e, // LOAD_CONST_STRING 'edsig' + 0x62, // STORE_MAP + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x10,0x11, // LOAD_CONST_STRING 'o' + 0x62, // STORE_MAP + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x10,0x12, // LOAD_CONST_STRING 'P' + 0x62, // STORE_MAP + 0x16,0x33, // STORE_NAME 'TEZOS_PREFIX_BYTES' + 0x2c,0x11, // BUILD_MAP 17 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x10,0x13, // LOAD_CONST_STRING 'DROP' + 0x62, // STORE_MAP + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x10,0x14, // LOAD_CONST_STRING 'NIL' + 0x62, // STORE_MAP + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x10,0x15, // LOAD_CONST_STRING 'operation' + 0x62, // STORE_MAP + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x10,0x16, // LOAD_CONST_STRING 'NONE' + 0x62, // STORE_MAP + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x10,0x17, // LOAD_CONST_STRING 'key_hash' + 0x62, // STORE_MAP + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x62, // STORE_MAP + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x10,0x18, // LOAD_CONST_STRING 'CONS' + 0x62, // STORE_MAP + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x62, // STORE_MAP + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x10,0x19, // LOAD_CONST_STRING 'PUSH' + 0x62, // STORE_MAP + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x10,0x1a, // LOAD_CONST_STRING 'mutez' + 0x62, // STORE_MAP + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0x10,0x1b, // LOAD_CONST_STRING 'UNIT' + 0x62, // STORE_MAP + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0x62, // STORE_MAP + 0x23,0x17, // LOAD_CONST_OBJ 23 + 0x10,0x1c, // LOAD_CONST_STRING 'SOME' + 0x62, // STORE_MAP + 0x23,0x18, // LOAD_CONST_OBJ 24 + 0x10,0x1d, // LOAD_CONST_STRING 'address' + 0x62, // STORE_MAP + 0x23,0x19, // LOAD_CONST_OBJ 25 + 0x10,0x1e, // LOAD_CONST_STRING 'CONTRACT' + 0x62, // STORE_MAP + 0x23,0x1a, // LOAD_CONST_OBJ 26 + 0x10,0x1f, // LOAD_CONST_STRING 'unit' + 0x62, // STORE_MAP + 0x23,0x1b, // LOAD_CONST_OBJ 27 + 0x23,0x1c, // LOAD_CONST_OBJ 28 + 0x62, // STORE_MAP + 0x16,0x34, // STORE_NAME 'MICHELSON_INSTRUCTION_BYTES' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x35, // STORE_NAME 'DO_ENTRYPOINT_TAG' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x36, // STORE_NAME 'MICHELSON_SEQUENCE_TAG' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x16,0x37, // STORE_NAME 'BRANCH_HASH_SIZE' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x16,0x38, // STORE_NAME 'PROPOSAL_HASH_SIZE' + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x16,0x39, // STORE_NAME 'PUBLIC_KEY_HASH_SIZE' + 0x95, // LOAD_CONST_SMALL_INT 21 + 0x16,0x3a, // STORE_NAME 'TAGGED_PUBKEY_HASH_SIZE' + 0x96, // LOAD_CONST_SMALL_INT 22 + 0x16,0x3b, // STORE_NAME 'CONTRACT_ID_SIZE' + 0x2c,0x03, // BUILD_MAP 3 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x62, // STORE_MAP + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x62, // STORE_MAP + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x62, // STORE_MAP + 0x16,0x3c, // STORE_NAME 'PUBLIC_KEY_TAG_TO_SIZE' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x16,0x3d, // STORE_NAME 'OP_TAG_PROPOSALS' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x16,0x3e, // STORE_NAME 'OP_TAG_BALLOT' + 0x22,0x80,0x6b, // LOAD_CONST_SMALL_INT 107 + 0x16,0x3f, // STORE_NAME 'OP_TAG_REVEAL' + 0x22,0x80,0x6c, // LOAD_CONST_SMALL_INT 108 + 0x16,0x40, // STORE_NAME 'OP_TAG_TRANSACTION' + 0x22,0x80,0x6d, // LOAD_CONST_SMALL_INT 109 + 0x16,0x41, // STORE_NAME 'OP_TAG_ORIGINATION' + 0x22,0x80,0x6e, // LOAD_CONST_SMALL_INT 110 + 0x16,0x42, // STORE_NAME 'OP_TAG_DELEGATION' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x20, // STORE_NAME 'base58_encode_check' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x24, // STORE_NAME 'write_bool' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x27, // STORE_NAME 'write_instruction' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x29, // STORE_NAME 'check_script_size' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x2c, // STORE_NAME 'check_tx_params_size' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_tezos_helpers__lt_module_gt_ +// frozen bytecode for file apps/tezos/helpers.py, scope apps_tezos_helpers_base58_encode_check +static const byte fun_data_apps_tezos_helpers_base58_encode_check[45] = { + 0xb2,0x01,0x12, // prelude + 0x20,0x43,0x44, // names: base58_encode_check, payload, prefix + 0x80,0x53,0x4b,0x22,0x26,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x21, // LOAD_CONST_STRING 'base58' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x22, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x21, // IMPORT_FROM 'base58' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x33, // LOAD_GLOBAL 'TEZOS_PREFIX_BYTES' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0xb0, // LOAD_FAST 0 + 0xf2, // BINARY_OP 27 __add__ + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x14,0x23, // LOAD_METHOD 'encode_check' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_helpers_base58_encode_check = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_tezos_helpers_base58_encode_check, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_tezos_helpers_base58_encode_check + 6, + .line_info_top = fun_data_apps_tezos_helpers_base58_encode_check + 12, + .opcodes = fun_data_apps_tezos_helpers_base58_encode_check + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_helpers__lt_module_gt_ +// frozen bytecode for file apps/tezos/helpers.py, scope apps_tezos_helpers_write_bool +static const byte fun_data_apps_tezos_helpers_write_bool[35] = { + 0x2a,0x0c, // prelude + 0x24,0x45,0x46, // names: write_bool, w, boolean + 0x80,0x5c,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x25, // LOAD_CONST_STRING 'write_uint8' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x26, // IMPORT_NAME 'apps.common.writers' + 0x1c,0x25, // IMPORT_FROM 'write_uint8' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0x42,0x41, // JUMP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_helpers_write_bool = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_tezos_helpers_write_bool, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_tezos_helpers_write_bool + 5, + .line_info_top = fun_data_apps_tezos_helpers_write_bool + 8, + .opcodes = fun_data_apps_tezos_helpers_write_bool + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_helpers__lt_module_gt_ +// frozen bytecode for file apps/tezos/helpers.py, scope apps_tezos_helpers_write_instruction +static const byte fun_data_apps_tezos_helpers_write_instruction[30] = { + 0x32,0x0c, // prelude + 0x27,0x45,0x47, // names: write_instruction, w, instruction + 0x80,0x62,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x28, // LOAD_CONST_STRING 'write_bytes_unchecked' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x26, // IMPORT_NAME 'apps.common.writers' + 0x1c,0x28, // IMPORT_FROM 'write_bytes_unchecked' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x12,0x34, // LOAD_GLOBAL 'MICHELSON_INSTRUCTION_BYTES' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_helpers_write_instruction = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_tezos_helpers_write_instruction, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_tezos_helpers_write_instruction + 5, + .line_info_top = fun_data_apps_tezos_helpers_write_instruction + 8, + .opcodes = fun_data_apps_tezos_helpers_write_instruction + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_helpers__lt_module_gt_ +// frozen bytecode for file apps/tezos/helpers.py, scope apps_tezos_helpers_check_script_size +static const byte fun_data_apps_tezos_helpers_check_script_size[77] = { + 0x4d,0x16, // prelude + 0x29,0x48, // names: check_script_size, script + 0x80,0x68,0x22,0x26,0x26,0x27,0x26,0x2f,0x2a, // code info + 0x48,0x27, // SETUP_EXCEPT 39 + 0x12,0x04, // LOAD_GLOBAL 'BufferReader' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0x12,0x09, // LOAD_GLOBAL 'read_uint32_be' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x14,0x2a, // LOAD_METHOD 'read' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'read_uint32_be' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x12,0x05, // LOAD_GLOBAL 'ensure' + 0xb1, // LOAD_FAST 1 + 0x14,0x2b, // LOAD_METHOD 'remaining_count' + 0x36,0x00, // CALL_METHOD 0 + 0xb2, // LOAD_FAST 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x4a,0x15, // POP_EXCEPT_JUMP 21 + 0x57, // DUP_TOP + 0x12,0x49, // LOAD_GLOBAL 'AssertionError' + 0x12,0x4a, // LOAD_GLOBAL 'EOFError' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'DataError' + 0x23,0x1d, // LOAD_CONST_OBJ 29 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_helpers_check_script_size = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_tezos_helpers_check_script_size, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 77, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_tezos_helpers_check_script_size + 4, + .line_info_top = fun_data_apps_tezos_helpers_check_script_size + 13, + .opcodes = fun_data_apps_tezos_helpers_check_script_size + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_helpers__lt_module_gt_ +// frozen bytecode for file apps/tezos/helpers.py, scope apps_tezos_helpers_check_tx_params_size +static const byte fun_data_apps_tezos_helpers_check_tx_params_size[110] = { + 0x55,0x1e, // prelude + 0x2c,0x4b, // names: check_tx_params_size, params + 0x80,0x73,0x22,0x26,0x26,0x27,0x26,0x29,0x25,0x29,0x26,0x2f,0x2a, // code info + 0x48,0x44, // SETUP_EXCEPT 68 + 0x12,0x04, // LOAD_GLOBAL 'BufferReader' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x2d, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x7f, // LOAD_CONST_SMALL_INT 255 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb1, // LOAD_FAST 1 + 0x14,0x2d, // LOAD_METHOD 'get' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x14,0x2a, // LOAD_METHOD 'read' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x4e, // JUMP 14 + 0xb2, // LOAD_FAST 2 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x07, // LOAD_GLOBAL 'DataError' + 0x23,0x1e, // LOAD_CONST_OBJ 30 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x40, // JUMP 0 + 0x12,0x09, // LOAD_GLOBAL 'read_uint32_be' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x12,0x05, // LOAD_GLOBAL 'ensure' + 0xb1, // LOAD_FAST 1 + 0x14,0x2b, // LOAD_METHOD 'remaining_count' + 0x36,0x00, // CALL_METHOD 0 + 0xb3, // LOAD_FAST 3 + 0xd9, // BINARY_OP 2 __eq__ + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x4a,0x15, // POP_EXCEPT_JUMP 21 + 0x57, // DUP_TOP + 0x12,0x49, // LOAD_GLOBAL 'AssertionError' + 0x12,0x4a, // LOAD_GLOBAL 'EOFError' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'DataError' + 0x23,0x1f, // LOAD_CONST_OBJ 31 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_helpers_check_tx_params_size = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_tezos_helpers_check_tx_params_size, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 110, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 44, + .line_info = fun_data_apps_tezos_helpers_check_tx_params_size + 4, + .line_info_top = fun_data_apps_tezos_helpers_check_tx_params_size + 17, + .opcodes = fun_data_apps_tezos_helpers_check_tx_params_size + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_tezos_helpers__lt_module_gt_[] = { + &raw_code_apps_tezos_helpers_base58_encode_check, + &raw_code_apps_tezos_helpers_write_bool, + &raw_code_apps_tezos_helpers_write_instruction, + &raw_code_apps_tezos_helpers_check_script_size, + &raw_code_apps_tezos_helpers_check_tx_params_size, +}; + +static const mp_raw_code_t raw_code_apps_tezos_helpers__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_tezos_helpers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 361, + #endif + .children = (void *)&children_apps_tezos_helpers__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_tezos_helpers__lt_module_gt_ + 4, + .line_info_top = fun_data_apps_tezos_helpers__lt_module_gt_ + 69, + .opcodes = fun_data_apps_tezos_helpers__lt_module_gt_ + 69, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_tezos_helpers[76] = { + MP_QSTR_apps_slash_tezos_slash_helpers_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_BufferReader, + MP_QSTR_ensure, + MP_QSTR_trezor_dot_utils, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_read_uint32_be, + MP_QSTR_apps_dot_common_dot_readers, + MP_QSTR_tz1, + MP_QSTR_KT1, + MP_QSTR_edpk, + MP_QSTR_edsig, + MP_QSTR_tz2, + MP_QSTR_tz3, + MP_QSTR_o, + MP_QSTR_P, + MP_QSTR_DROP, + MP_QSTR_NIL, + MP_QSTR_operation, + MP_QSTR_NONE, + MP_QSTR_key_hash, + MP_QSTR_CONS, + MP_QSTR_PUSH, + MP_QSTR_mutez, + MP_QSTR_UNIT, + MP_QSTR_SOME, + MP_QSTR_address, + MP_QSTR_CONTRACT, + MP_QSTR_unit, + MP_QSTR_base58_encode_check, + MP_QSTR_base58, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_encode_check, + MP_QSTR_write_bool, + MP_QSTR_write_uint8, + MP_QSTR_apps_dot_common_dot_writers, + MP_QSTR_write_instruction, + MP_QSTR_write_bytes_unchecked, + MP_QSTR_check_script_size, + MP_QSTR_read, + MP_QSTR_remaining_count, + MP_QSTR_check_tx_params_size, + MP_QSTR_get, + MP_QSTR_TEZOS_AMOUNT_DECIMALS, + MP_QSTR_TEZOS_ED25519_ADDRESS_PREFIX, + MP_QSTR_TEZOS_ORIGINATED_ADDRESS_PREFIX, + MP_QSTR_TEZOS_PUBLICKEY_PREFIX, + MP_QSTR_TEZOS_SIGNATURE_PREFIX, + MP_QSTR_TEZOS_PREFIX_BYTES, + MP_QSTR_MICHELSON_INSTRUCTION_BYTES, + MP_QSTR_DO_ENTRYPOINT_TAG, + MP_QSTR_MICHELSON_SEQUENCE_TAG, + MP_QSTR_BRANCH_HASH_SIZE, + MP_QSTR_PROPOSAL_HASH_SIZE, + MP_QSTR_PUBLIC_KEY_HASH_SIZE, + MP_QSTR_TAGGED_PUBKEY_HASH_SIZE, + MP_QSTR_CONTRACT_ID_SIZE, + MP_QSTR_PUBLIC_KEY_TAG_TO_SIZE, + MP_QSTR_OP_TAG_PROPOSALS, + MP_QSTR_OP_TAG_BALLOT, + MP_QSTR_OP_TAG_REVEAL, + MP_QSTR_OP_TAG_TRANSACTION, + MP_QSTR_OP_TAG_ORIGINATION, + MP_QSTR_OP_TAG_DELEGATION, + MP_QSTR_payload, + MP_QSTR_prefix, + MP_QSTR_w, + MP_QSTR_boolean, + MP_QSTR_instruction, + MP_QSTR_script, + MP_QSTR_AssertionError, + MP_QSTR_EOFError, + MP_QSTR_params, +}; + +// constants +static const mp_obj_str_t const_obj_apps_tezos_helpers_0 = {{&mp_type_bytes}, 48765, 3, (const byte*)"\x06\xa1\x9f"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_1 = {{&mp_type_bytes}, 48707, 3, (const byte*)"\x06\xa1\xa1"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_2 = {{&mp_type_bytes}, 48710, 3, (const byte*)"\x06\xa1\xa4"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_3 = {{&mp_type_bytes}, 50692, 3, (const byte*)"\x02\x5a\x79"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_4 = {{&mp_type_bytes}, 45883, 4, (const byte*)"\x0d\x0f\x25\xd9"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_5 = {{&mp_type_bytes}, 12896, 5, (const byte*)"\x09\xf5\xcd\x86\x12"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_6 = {{&mp_type_bytes}, 27092, 2, (const byte*)"\x05\x74"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_7 = {{&mp_type_bytes}, 27181, 2, (const byte*)"\x02\xaa"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_8 = {{&mp_type_bytes}, 27206, 2, (const byte*)"\x03\x20"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_9 = {{&mp_type_bytes}, 27037, 2, (const byte*)"\x05\x3d"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_10 = {{&mp_type_bytes}, 27147, 2, (const byte*)"\x03\x6d"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_11 = {{&mp_type_bytes}, 27038, 2, (const byte*)"\x05\x3e"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_12 = {{&mp_type_bytes}, 27195, 2, (const byte*)"\x03\x5d"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_13 = {{&mp_type_bytes}, 27176, 2, (const byte*)"\x03\x4e"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_15 = {{&mp_type_bytes}, 27261, 2, (const byte*)"\x03\x1b"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_16 = {{&mp_type_bytes}, 27256, 2, (const byte*)"\x03\x1e"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_18 = {{&mp_type_bytes}, 27041, 2, (const byte*)"\x07\x43"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_19 = {{&mp_type_bytes}, 27148, 2, (const byte*)"\x03\x6a"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_20 = {{&mp_type_bytes}, 27177, 2, (const byte*)"\x03\x4f"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_21 = {{&mp_type_bytes}, 27179, 2, (const byte*)"\x03\x4d"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_23 = {{&mp_type_bytes}, 27168, 2, (const byte*)"\x03\x46"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_24 = {{&mp_type_bytes}, 27144, 2, (const byte*)"\x03\x6e"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_25 = {{&mp_type_bytes}, 27125, 2, (const byte*)"\x05\x55"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_26 = {{&mp_type_bytes}, 27146, 2, (const byte*)"\x03\x6c"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_27 = {{&mp_type_bytes}, 33565, 26, (const byte*)"\x02\x00\x00\x00\x15\x07\x2f\x02\x00\x00\x00\x09\x02\x00\x00\x00\x04\x03\x4f\x03\x27\x02\x00\x00\x00\x00"}; +static const mp_obj_str_t const_obj_apps_tezos_helpers_31 = {{&mp_type_str}, 47978, 30, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_tezos_helpers[32] = { + MP_ROM_PTR(&const_obj_apps_tezos_helpers_0), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_1), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_2), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_3), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_4), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_5), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_6), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_7), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_8), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_9), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_10), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_11), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_12), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_13), + MP_ROM_QSTR(MP_QSTR_SET_DELEGATE), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_15), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_16), + MP_ROM_QSTR(MP_QSTR_IMPLICIT_ACCOUNT), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_18), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_19), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_20), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_21), + MP_ROM_QSTR(MP_QSTR_TRANSFER_TOKENS), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_23), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_24), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_25), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_26), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_27), + MP_ROM_QSTR(MP_QSTR_ASSERT_SOME), + MP_ROM_QSTR(MP_QSTR_Invalid_space_script), + MP_ROM_QSTR(MP_QSTR_Unknown_space_entrypoint_space_tag), + MP_ROM_PTR(&const_obj_apps_tezos_helpers_31), +}; + +static const mp_frozen_module_t frozen_module_apps_tezos_helpers = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_tezos_helpers, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_tezos_helpers, + }, + .rc = &raw_code_apps_tezos_helpers__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_tezos_layout +// - original source file: build/firmware/src/apps/tezos/layout.mpy +// - frozen file name: apps/tezos/layout.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/tezos/layout.py, scope apps_tezos_layout__lt_module_gt_ +static const byte fun_data_apps_tezos_layout__lt_module_gt_[124] = { + 0x18,0x34, // prelude + 0x01, // names: + 0x2c,0x58,0x66,0x88,0x0b,0x84,0x0a,0x84,0x0a,0x84,0x0c,0x84,0x0a,0x84,0x0b,0x84,0x0d,0x84,0x09,0x84,0x0d,0x84,0x0a,0x84,0x0a, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'ButtonRequestType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x02, // IMPORT_FROM 'ButtonRequestType' + 0x16,0x02, // STORE_NAME 'ButtonRequestType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'confirm_address' + 0x10,0x05, // LOAD_CONST_STRING 'confirm_metadata' + 0x10,0x06, // LOAD_CONST_STRING 'confirm_properties' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x07, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x04, // IMPORT_FROM 'confirm_address' + 0x16,0x04, // STORE_NAME 'confirm_address' + 0x1c,0x05, // IMPORT_FROM 'confirm_metadata' + 0x16,0x05, // STORE_NAME 'confirm_metadata' + 0x1c,0x06, // IMPORT_FROM 'confirm_properties' + 0x16,0x06, // STORE_NAME 'confirm_properties' + 0x59, // POP_TOP + 0x11,0x02, // LOAD_NAME 'ButtonRequestType' + 0x13,0x08, // LOAD_ATTR 'SignTx' + 0x16,0x2a, // STORE_NAME 'BR_SIGN_TX' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x00, // MAKE_FUNCTION_DEFARGS 0 + 0x16,0x09, // STORE_NAME 'require_confirm_tx' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0d, // STORE_NAME 'require_confirm_fee' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x11, // STORE_NAME 'require_confirm_origination' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x13, // STORE_NAME 'require_confirm_origination_fee' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x17, // STORE_NAME 'require_confirm_delegation_baker' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x18, // STORE_NAME 'require_confirm_set_delegate' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x1a, // STORE_NAME 'require_confirm_register_delegate' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x1b, // STORE_NAME 'format_tezos_amount' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x21, // STORE_NAME 'require_confirm_ballot' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x24, // STORE_NAME 'require_confirm_proposals' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x25, // STORE_NAME 'require_confirm_delegation_manager_withdraw' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x27, // STORE_NAME 'require_confirm_manager_remove_delegate' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_tezos_layout__lt_module_gt_ +// frozen bytecode for file apps/tezos/layout.py, scope apps_tezos_layout_require_confirm_tx +static const byte fun_data_apps_tezos_layout_require_confirm_tx[45] = { + 0xd3,0x41,0x10, // prelude + 0x09,0x2b,0x2c,0x0c, // names: require_confirm_tx, to, value, chunkify + 0x80,0x07,0x4b,0x42, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'confirm_output' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x0a, // IMPORT_FROM 'confirm_output' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x12,0x1b, // LOAD_GLOBAL 'format_tezos_amount' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x0b, // LOAD_CONST_STRING 'br_code' + 0x12,0x2a, // LOAD_GLOBAL 'BR_SIGN_TX' + 0x10,0x0c, // LOAD_CONST_STRING 'chunkify' + 0xb2, // LOAD_FAST 2 + 0x34,0x84,0x02, // CALL_FUNCTION 514 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_layout_require_confirm_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_tezos_layout_require_confirm_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_tezos_layout_require_confirm_tx + 7, + .line_info_top = fun_data_apps_tezos_layout_require_confirm_tx + 11, + .opcodes = fun_data_apps_tezos_layout_require_confirm_tx + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_layout__lt_module_gt_ +// frozen bytecode for file apps/tezos/layout.py, scope apps_tezos_layout_require_confirm_fee +static const byte fun_data_apps_tezos_layout_require_confirm_fee[46] = { + 0xba,0x40,0x10, // prelude + 0x0d,0x2c,0x2d, // names: require_confirm_fee, value, fee + 0x80,0x12,0x4b,0x21,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0e, // LOAD_CONST_STRING 'confirm_total' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x0e, // IMPORT_FROM 'confirm_total' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x12,0x1b, // LOAD_GLOBAL 'format_tezos_amount' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x1b, // LOAD_GLOBAL 'format_tezos_amount' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x0f, // LOAD_CONST_STRING 'total_label' + 0x10,0x10, // LOAD_CONST_STRING 'Amount:' + 0x34,0x82,0x02, // CALL_FUNCTION 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_layout_require_confirm_fee = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_tezos_layout_require_confirm_fee, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_tezos_layout_require_confirm_fee + 6, + .line_info_top = fun_data_apps_tezos_layout_require_confirm_fee + 11, + .opcodes = fun_data_apps_tezos_layout_require_confirm_fee + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_layout__lt_module_gt_ +// frozen bytecode for file apps/tezos/layout.py, scope apps_tezos_layout_require_confirm_origination +static const byte fun_data_apps_tezos_layout_require_confirm_origination[28] = { + 0xb1,0x40,0x0c, // prelude + 0x11,0x2e, // names: require_confirm_origination, address + 0x80,0x1c,0x22,0x65, // code info + 0x12,0x04, // LOAD_GLOBAL 'confirm_address' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xb0, // LOAD_FAST 0 + 0x10,0x12, // LOAD_CONST_STRING 'Address:' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x12,0x2a, // LOAD_GLOBAL 'BR_SIGN_TX' + 0x34,0x05, // CALL_FUNCTION 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_layout_require_confirm_origination = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_tezos_layout_require_confirm_origination, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_apps_tezos_layout_require_confirm_origination + 5, + .line_info_top = fun_data_apps_tezos_layout_require_confirm_origination + 9, + .opcodes = fun_data_apps_tezos_layout_require_confirm_origination + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_layout__lt_module_gt_ +// frozen bytecode for file apps/tezos/layout.py, scope apps_tezos_layout_require_confirm_origination_fee +static const byte fun_data_apps_tezos_layout_require_confirm_origination_fee[51] = { + 0xc2,0x40,0x14, // prelude + 0x13,0x2f,0x2d, // names: require_confirm_origination_fee, balance, fee + 0x80,0x26,0x22,0x22,0x22,0x20,0x29, // code info + 0x12,0x06, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x10,0x14, // LOAD_CONST_STRING 'Balance:' + 0x12,0x1b, // LOAD_GLOBAL 'format_tezos_amount' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x15, // LOAD_CONST_STRING 'Fee:' + 0x12,0x1b, // LOAD_GLOBAL 'format_tezos_amount' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x16, // LOAD_CONST_STRING 'hold' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_layout_require_confirm_origination_fee = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_tezos_layout_require_confirm_origination_fee, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_tezos_layout_require_confirm_origination_fee + 6, + .line_info_top = fun_data_apps_tezos_layout_require_confirm_origination_fee + 13, + .opcodes = fun_data_apps_tezos_layout_require_confirm_origination_fee + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_layout__lt_module_gt_ +// frozen bytecode for file apps/tezos/layout.py, scope apps_tezos_layout_require_confirm_delegation_baker +static const byte fun_data_apps_tezos_layout_require_confirm_delegation_baker[29] = { + 0xb1,0x40,0x0e, // prelude + 0x17,0x30, // names: require_confirm_delegation_baker, baker + 0x80,0x32,0x22,0x43,0x22, // code info + 0x12,0x04, // LOAD_GLOBAL 'confirm_address' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xb0, // LOAD_FAST 0 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x12,0x2a, // LOAD_GLOBAL 'BR_SIGN_TX' + 0x34,0x05, // CALL_FUNCTION 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_layout_require_confirm_delegation_baker = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_tezos_layout_require_confirm_delegation_baker, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_tezos_layout_require_confirm_delegation_baker + 5, + .line_info_top = fun_data_apps_tezos_layout_require_confirm_delegation_baker + 10, + .opcodes = fun_data_apps_tezos_layout_require_confirm_delegation_baker + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_layout__lt_module_gt_ +// frozen bytecode for file apps/tezos/layout.py, scope apps_tezos_layout_require_confirm_set_delegate +static const byte fun_data_apps_tezos_layout_require_confirm_set_delegate[37] = { + 0xc1,0x40,0x0e, // prelude + 0x18,0x2d, // names: require_confirm_set_delegate, fee + 0x80,0x3c,0x22,0x22,0x44, // code info + 0x12,0x05, // LOAD_GLOBAL 'confirm_metadata' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x10,0x19, // LOAD_CONST_STRING 'Fee:\n{}' + 0x12,0x1b, // LOAD_GLOBAL 'format_tezos_amount' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x2a, // LOAD_GLOBAL 'BR_SIGN_TX' + 0x10,0x16, // LOAD_CONST_STRING 'hold' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x05, // CALL_FUNCTION 261 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_layout_require_confirm_set_delegate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_tezos_layout_require_confirm_set_delegate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 24, + .line_info = fun_data_apps_tezos_layout_require_confirm_set_delegate + 5, + .line_info_top = fun_data_apps_tezos_layout_require_confirm_set_delegate + 10, + .opcodes = fun_data_apps_tezos_layout_require_confirm_set_delegate + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_layout__lt_module_gt_ +// frozen bytecode for file apps/tezos/layout.py, scope apps_tezos_layout_require_confirm_register_delegate +static const byte fun_data_apps_tezos_layout_require_confirm_register_delegate[51] = { + 0xca,0x40,0x14, // prelude + 0x1a,0x2e,0x2d, // names: require_confirm_register_delegate, address, fee + 0x80,0x47,0x22,0x22,0x22,0x20,0x29, // code info + 0x12,0x06, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x10,0x15, // LOAD_CONST_STRING 'Fee:' + 0x12,0x1b, // LOAD_GLOBAL 'format_tezos_amount' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x12, // LOAD_CONST_STRING 'Address:' + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x16, // LOAD_CONST_STRING 'hold' + 0x52, // LOAD_CONST_TRUE + 0x10,0x0b, // LOAD_CONST_STRING 'br_code' + 0x12,0x2a, // LOAD_GLOBAL 'BR_SIGN_TX' + 0x34,0x84,0x03, // CALL_FUNCTION 515 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_layout_require_confirm_register_delegate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_tezos_layout_require_confirm_register_delegate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 26, + .line_info = fun_data_apps_tezos_layout_require_confirm_register_delegate + 6, + .line_info_top = fun_data_apps_tezos_layout_require_confirm_register_delegate + 13, + .opcodes = fun_data_apps_tezos_layout_require_confirm_register_delegate + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_layout__lt_module_gt_ +// frozen bytecode for file apps/tezos/layout.py, scope apps_tezos_layout_format_tezos_amount +static const byte fun_data_apps_tezos_layout_format_tezos_amount[42] = { + 0x31,0x0e, // prelude + 0x1b,0x2c, // names: format_tezos_amount, value + 0x80,0x54,0x4b,0x4b,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1c, // LOAD_CONST_STRING 'format_amount' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1d, // IMPORT_NAME 'trezor.strings' + 0x1c,0x1c, // IMPORT_FROM 'format_amount' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1e, // LOAD_CONST_STRING 'TEZOS_AMOUNT_DECIMALS' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1f, // IMPORT_NAME 'helpers' + 0x1c,0x1e, // IMPORT_FROM 'TEZOS_AMOUNT_DECIMALS' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x10,0x20, // LOAD_CONST_STRING ' XTZ' + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_layout_format_tezos_amount = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_tezos_layout_format_tezos_amount, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 27, + .line_info = fun_data_apps_tezos_layout_format_tezos_amount + 4, + .line_info_top = fun_data_apps_tezos_layout_format_tezos_amount + 9, + .opcodes = fun_data_apps_tezos_layout_format_tezos_amount + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_layout__lt_module_gt_ +// frozen bytecode for file apps/tezos/layout.py, scope apps_tezos_layout_require_confirm_ballot +static const byte fun_data_apps_tezos_layout_require_confirm_ballot[47] = { + 0xca,0x40,0x14, // prelude + 0x21,0x31,0x32, // names: require_confirm_ballot, proposal, ballot + 0x80,0x5d,0x22,0x22,0x22,0x20,0x25, // code info + 0x12,0x06, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x10,0x22, // LOAD_CONST_STRING 'Ballot:' + 0xb1, // LOAD_FAST 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x23, // LOAD_CONST_STRING 'Proposal:' + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x16, // LOAD_CONST_STRING 'hold' + 0x52, // LOAD_CONST_TRUE + 0x10,0x0b, // LOAD_CONST_STRING 'br_code' + 0x12,0x2a, // LOAD_GLOBAL 'BR_SIGN_TX' + 0x34,0x84,0x03, // CALL_FUNCTION 515 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_layout_require_confirm_ballot = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_tezos_layout_require_confirm_ballot, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_tezos_layout_require_confirm_ballot + 6, + .line_info_top = fun_data_apps_tezos_layout_require_confirm_ballot + 13, + .opcodes = fun_data_apps_tezos_layout_require_confirm_ballot + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_layout__lt_module_gt_ +// frozen bytecode for file apps/tezos/layout.py, scope apps_tezos_layout_require_confirm_proposals +static const byte fun_data_apps_tezos_layout_require_confirm_proposals[55] = { + 0xc1,0x40,0x0e, // prelude + 0x24,0x33, // names: require_confirm_proposals, proposals + 0x80,0x6a,0x22,0x22,0x2f, // code info + 0x12,0x06, // LOAD_GLOBAL 'confirm_properties' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x12,0x34, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x42,0x42, // JUMP 2 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x12,0x35, // LOAD_GLOBAL 'enumerate' + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x16, // LOAD_CONST_STRING 'hold' + 0x52, // LOAD_CONST_TRUE + 0x10,0x0b, // LOAD_CONST_STRING 'br_code' + 0x12,0x2a, // LOAD_GLOBAL 'BR_SIGN_TX' + 0x34,0x84,0x03, // CALL_FUNCTION 515 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_tezos_layout_require_confirm_proposals +// frozen bytecode for file apps/tezos/layout.py, scope apps_tezos_layout_require_confirm_proposals__lt_listcomp_gt_ +static const byte fun_data_apps_tezos_layout_require_confirm_proposals__lt_listcomp_gt_[32] = { + 0x51,0x08, // prelude + 0x28,0x36, // names: , * + 0x80,0x6d, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x13, // FOR_ITER 19 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc1, // STORE_FAST 1 + 0xc2, // STORE_FAST 2 + 0x10,0x29, // LOAD_CONST_STRING 'Proposal ' + 0x12,0x37, // LOAD_GLOBAL 'str' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x2b, // JUMP -21 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_layout_require_confirm_proposals__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_tezos_layout_require_confirm_proposals__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_tezos_layout_require_confirm_proposals__lt_listcomp_gt_ + 4, + .line_info_top = fun_data_apps_tezos_layout_require_confirm_proposals__lt_listcomp_gt_ + 6, + .opcodes = fun_data_apps_tezos_layout_require_confirm_proposals__lt_listcomp_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_tezos_layout_require_confirm_proposals[] = { + &raw_code_apps_tezos_layout_require_confirm_proposals__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_apps_tezos_layout_require_confirm_proposals = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_tezos_layout_require_confirm_proposals, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = (void *)&children_apps_tezos_layout_require_confirm_proposals, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_tezos_layout_require_confirm_proposals + 5, + .line_info_top = fun_data_apps_tezos_layout_require_confirm_proposals + 10, + .opcodes = fun_data_apps_tezos_layout_require_confirm_proposals + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_layout__lt_module_gt_ +// frozen bytecode for file apps/tezos/layout.py, scope apps_tezos_layout_require_confirm_delegation_manager_withdraw +static const byte fun_data_apps_tezos_layout_require_confirm_delegation_manager_withdraw[28] = { + 0xb1,0x40,0x0c, // prelude + 0x25,0x2e, // names: require_confirm_delegation_manager_withdraw, address + 0x80,0x74,0x22,0x65, // code info + 0x12,0x04, // LOAD_GLOBAL 'confirm_address' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0xb0, // LOAD_FAST 0 + 0x10,0x26, // LOAD_CONST_STRING 'Delegator:' + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x12,0x2a, // LOAD_GLOBAL 'BR_SIGN_TX' + 0x34,0x05, // CALL_FUNCTION 5 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_layout_require_confirm_delegation_manager_withdraw = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_tezos_layout_require_confirm_delegation_manager_withdraw, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_tezos_layout_require_confirm_delegation_manager_withdraw + 5, + .line_info_top = fun_data_apps_tezos_layout_require_confirm_delegation_manager_withdraw + 9, + .opcodes = fun_data_apps_tezos_layout_require_confirm_delegation_manager_withdraw + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_layout__lt_module_gt_ +// frozen bytecode for file apps/tezos/layout.py, scope apps_tezos_layout_require_confirm_manager_remove_delegate +static const byte fun_data_apps_tezos_layout_require_confirm_manager_remove_delegate[37] = { + 0xc1,0x40,0x0e, // prelude + 0x27,0x2d, // names: require_confirm_manager_remove_delegate, fee + 0x80,0x7e,0x22,0x22,0x44, // code info + 0x12,0x05, // LOAD_GLOBAL 'confirm_metadata' + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x10,0x19, // LOAD_CONST_STRING 'Fee:\n{}' + 0x12,0x1b, // LOAD_GLOBAL 'format_tezos_amount' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x2a, // LOAD_GLOBAL 'BR_SIGN_TX' + 0x10,0x16, // LOAD_CONST_STRING 'hold' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x05, // CALL_FUNCTION 261 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_layout_require_confirm_manager_remove_delegate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_tezos_layout_require_confirm_manager_remove_delegate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_tezos_layout_require_confirm_manager_remove_delegate + 5, + .line_info_top = fun_data_apps_tezos_layout_require_confirm_manager_remove_delegate + 10, + .opcodes = fun_data_apps_tezos_layout_require_confirm_manager_remove_delegate + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_tezos_layout__lt_module_gt_[] = { + &raw_code_apps_tezos_layout_require_confirm_tx, + &raw_code_apps_tezos_layout_require_confirm_fee, + &raw_code_apps_tezos_layout_require_confirm_origination, + &raw_code_apps_tezos_layout_require_confirm_origination_fee, + &raw_code_apps_tezos_layout_require_confirm_delegation_baker, + &raw_code_apps_tezos_layout_require_confirm_set_delegate, + &raw_code_apps_tezos_layout_require_confirm_register_delegate, + &raw_code_apps_tezos_layout_format_tezos_amount, + &raw_code_apps_tezos_layout_require_confirm_ballot, + &raw_code_apps_tezos_layout_require_confirm_proposals, + &raw_code_apps_tezos_layout_require_confirm_delegation_manager_withdraw, + &raw_code_apps_tezos_layout_require_confirm_manager_remove_delegate, +}; + +static const mp_raw_code_t raw_code_apps_tezos_layout__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_tezos_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 124, + #endif + .children = (void *)&children_apps_tezos_layout__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 12, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_tezos_layout__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_tezos_layout__lt_module_gt_ + 28, + .opcodes = fun_data_apps_tezos_layout__lt_module_gt_ + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_tezos_layout[56] = { + MP_QSTR_apps_slash_tezos_slash_layout_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ButtonRequestType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_confirm_address, + MP_QSTR_confirm_metadata, + MP_QSTR_confirm_properties, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_SignTx, + MP_QSTR_require_confirm_tx, + MP_QSTR_confirm_output, + MP_QSTR_br_code, + MP_QSTR_chunkify, + MP_QSTR_require_confirm_fee, + MP_QSTR_confirm_total, + MP_QSTR_total_label, + MP_QSTR_Amount_colon_, + MP_QSTR_require_confirm_origination, + MP_QSTR_Address_colon_, + MP_QSTR_require_confirm_origination_fee, + MP_QSTR_Balance_colon_, + MP_QSTR_Fee_colon_, + MP_QSTR_hold, + MP_QSTR_require_confirm_delegation_baker, + MP_QSTR_require_confirm_set_delegate, + MP_QSTR_Fee_colon__0x0a__brace_open__brace_close_, + MP_QSTR_require_confirm_register_delegate, + MP_QSTR_format_tezos_amount, + MP_QSTR_format_amount, + MP_QSTR_trezor_dot_strings, + MP_QSTR_TEZOS_AMOUNT_DECIMALS, + MP_QSTR_helpers, + MP_QSTR__space_XTZ, + MP_QSTR_require_confirm_ballot, + MP_QSTR_Ballot_colon_, + MP_QSTR_Proposal_colon_, + MP_QSTR_require_confirm_proposals, + MP_QSTR_require_confirm_delegation_manager_withdraw, + MP_QSTR_Delegator_colon_, + MP_QSTR_require_confirm_manager_remove_delegate, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_Proposal_space_, + MP_QSTR_BR_SIGN_TX, + MP_QSTR_to, + MP_QSTR_value, + MP_QSTR_fee, + MP_QSTR_address, + MP_QSTR_balance, + MP_QSTR_baker, + MP_QSTR_proposal, + MP_QSTR_ballot, + MP_QSTR_proposals, + MP_QSTR_len, + MP_QSTR_enumerate, + MP_QSTR__star_, + MP_QSTR_str, +}; + +// constants +static const mp_obj_str_t const_obj_apps_tezos_layout_2 = {{&mp_type_str}, 63538, 25, (const byte*)"\x63\x6f\x6e\x66\x69\x72\x6d\x5f\x6f\x72\x69\x67\x69\x6e\x61\x74\x69\x6f\x6e\x5f\x66\x69\x6e\x61\x6c"}; +static const mp_obj_str_t const_obj_apps_tezos_layout_7 = {{&mp_type_str}, 40417, 25, (const byte*)"\x63\x6f\x6e\x66\x69\x72\x6d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x5f\x64\x65\x6c\x65\x67\x61\x74\x65"}; +static const mp_obj_str_t const_obj_apps_tezos_layout_16 = {{&mp_type_str}, 12530, 26, (const byte*)"\x63\x6f\x6e\x66\x69\x72\x6d\x5f\x75\x6e\x64\x65\x6c\x65\x67\x61\x74\x69\x6f\x6e\x5f\x66\x69\x6e\x61\x6c"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_tezos_layout[17] = { + MP_ROM_QSTR(MP_QSTR_Confirm_space_origination), + MP_ROM_QSTR(MP_QSTR_confirm_origination), + MP_ROM_PTR(&const_obj_apps_tezos_layout_2), + MP_ROM_QSTR(MP_QSTR_Confirm_space_delegation), + MP_ROM_QSTR(MP_QSTR_Baker_space_address_colon_), + MP_ROM_QSTR(MP_QSTR_confirm_delegation), + MP_ROM_QSTR(MP_QSTR_confirm_delegation_final), + MP_ROM_PTR(&const_obj_apps_tezos_layout_7), + MP_ROM_QSTR(MP_QSTR_Register_space_delegate), + MP_ROM_QSTR(MP_QSTR_confirm_ballot), + MP_ROM_QSTR(MP_QSTR_Submit_space_ballot), + MP_ROM_QSTR(MP_QSTR_confirm_proposals), + MP_ROM_QSTR(MP_QSTR_Submit_space_proposals), + MP_ROM_QSTR(MP_QSTR_Submit_space_proposal), + MP_ROM_QSTR(MP_QSTR_Remove_space_delegation), + MP_ROM_QSTR(MP_QSTR_confirm_undelegation), + MP_ROM_PTR(&const_obj_apps_tezos_layout_16), +}; + +static const mp_frozen_module_t frozen_module_apps_tezos_layout = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_tezos_layout, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_tezos_layout, + }, + .rc = &raw_code_apps_tezos_layout__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_tezos_sign_tx +// - original source file: build/firmware/src/apps/tezos/sign_tx.mpy +// - frozen file name: apps/tezos/sign_tx.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/tezos/sign_tx.py, scope apps_tezos_sign_tx__lt_module_gt_ +static const byte fun_data_apps_tezos_sign_tx__lt_module_gt_[217] = { + 0x30,0x3a, // prelude + 0x01, // names: + 0x40,0x2c,0x4c,0x2c,0x58,0x3e,0x1f,0x85,0x08,0x80,0x0f,0x76,0x80,0x7f,0x84,0x09,0x84,0x0c,0x84,0x86,0x84,0x19,0x84,0x0a,0x84,0x0c,0x84,0x10, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'TezosContractType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x02, // IMPORT_FROM 'TezosContractType' + 0x16,0x02, // STORE_NAME 'TezosContractType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.wire' + 0x1c,0x04, // IMPORT_FROM 'DataError' + 0x16,0x04, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'with_slip44_keychain' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'apps.common.keychain' + 0x1c,0x06, // IMPORT_FROM 'with_slip44_keychain' + 0x16,0x06, // STORE_NAME 'with_slip44_keychain' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'write_bytes_fixed' + 0x10,0x09, // LOAD_CONST_STRING 'write_uint8' + 0x10,0x0a, // LOAD_CONST_STRING 'write_uint32_be' + 0x2a,0x03, // BUILD_TUPLE 3 + 0x1b,0x0b, // IMPORT_NAME 'apps.common.writers' + 0x1c,0x08, // IMPORT_FROM 'write_bytes_fixed' + 0x16,0x08, // STORE_NAME 'write_bytes_fixed' + 0x1c,0x09, // IMPORT_FROM 'write_uint8' + 0x16,0x09, // STORE_NAME 'write_uint8' + 0x1c,0x0a, // IMPORT_FROM 'write_uint32_be' + 0x16,0x0a, // STORE_NAME 'write_uint32_be' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0c, // LOAD_CONST_STRING 'CURVE' + 0x10,0x0d, // LOAD_CONST_STRING 'PATTERNS' + 0x10,0x0e, // LOAD_CONST_STRING 'SLIP44_ID' + 0x10,0x0f, // LOAD_CONST_STRING 'helpers' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x10, // IMPORT_NAME '' + 0x1c,0x0c, // IMPORT_FROM 'CURVE' + 0x16,0x0c, // STORE_NAME 'CURVE' + 0x1c,0x0d, // IMPORT_FROM 'PATTERNS' + 0x16,0x0d, // STORE_NAME 'PATTERNS' + 0x1c,0x0e, // IMPORT_FROM 'SLIP44_ID' + 0x16,0x0e, // STORE_NAME 'SLIP44_ID' + 0x1c,0x0f, // IMPORT_FROM 'helpers' + 0x16,0x0f, // STORE_NAME 'helpers' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x11, // LOAD_CONST_STRING 'CONTRACT_ID_SIZE' + 0x10,0x12, // LOAD_CONST_STRING 'TAGGED_PUBKEY_HASH_SIZE' + 0x10,0x13, // LOAD_CONST_STRING 'base58_encode_check' + 0x10,0x14, // LOAD_CONST_STRING 'write_bool' + 0x10,0x15, // LOAD_CONST_STRING 'write_instruction' + 0x2a,0x05, // BUILD_TUPLE 5 + 0x1b,0x0f, // IMPORT_NAME 'helpers' + 0x1c,0x11, // IMPORT_FROM 'CONTRACT_ID_SIZE' + 0x16,0x11, // STORE_NAME 'CONTRACT_ID_SIZE' + 0x1c,0x12, // IMPORT_FROM 'TAGGED_PUBKEY_HASH_SIZE' + 0x16,0x12, // STORE_NAME 'TAGGED_PUBKEY_HASH_SIZE' + 0x1c,0x13, // IMPORT_FROM 'base58_encode_check' + 0x16,0x13, // STORE_NAME 'base58_encode_check' + 0x1c,0x14, // IMPORT_FROM 'write_bool' + 0x16,0x14, // STORE_NAME 'write_bool' + 0x1c,0x15, // IMPORT_FROM 'write_instruction' + 0x16,0x15, // STORE_NAME 'write_instruction' + 0x59, // POP_TOP + 0x11,0x06, // LOAD_NAME 'with_slip44_keychain' + 0x11,0x0d, // LOAD_NAME 'PATTERNS' + 0x10,0x16, // LOAD_CONST_STRING 'slip44_id' + 0x11,0x0e, // LOAD_NAME 'SLIP44_ID' + 0x10,0x17, // LOAD_CONST_STRING 'curve' + 0x11,0x0c, // LOAD_NAME 'CURVE' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x35,0x84,0x01, // CALL_FUNCTION_VAR_KW 513 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x18, // STORE_NAME 'sign_tx' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x52, // STORE_NAME '_get_address_by_tag' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x56, // STORE_NAME '_get_address_from_contract' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x5c, // STORE_NAME '_get_operation_bytes' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x6e, // STORE_NAME '_encode_common' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x76, // STORE_NAME '_encode_data_with_bool_prefix' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x77, // STORE_NAME '_encode_zarith' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x78, // STORE_NAME '_encode_natural' + 0x50, // LOAD_CONST_FALSE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x08, // MAKE_FUNCTION_DEFARGS 8 + 0x16,0x79, // STORE_NAME '_encode_manager_common' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_tezos_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/tezos/sign_tx.py, scope apps_tezos_sign_tx_sign_tx +static const byte fun_data_apps_tezos_sign_tx_sign_tx[827] = { + 0xba,0x60,0xa6,0x02, // prelude + 0x18,0x81,0x02,0x81,0x03, // names: sign_tx, msg, keychain + 0x80,0x22,0x2b,0x2b,0x2b,0x4b,0x4b,0x4b,0x4b,0x29,0x24,0x24,0x44,0x27,0x24,0x64,0x27,0x64,0x28,0x28,0x2a,0x6d,0x28,0x29,0x2b,0x6c,0x26,0x29,0x25,0x54,0x71,0x29,0x25,0x54,0x50,0x27,0x29,0x6b,0x28,0x28,0x4a,0x23,0x6f,0x27,0x49,0x23,0x28,0x49,0x2e,0x2b,0x6e,0x51,0x28,0x62,0x49,0x4e,0x49,0x6d,0x2b,0x26,0x2b,0x26,0x2b,0x46,0x44,0x6f,0x47,0x27,0x48,0x69,0x2a,0x27,0x51,0x4e,0x27,0x31,0x4a,0x4c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x19, // LOAD_CONST_STRING 'hashlib' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1a, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x19, // IMPORT_FROM 'hashlib' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1b, // LOAD_CONST_STRING 'ed25519' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1c, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x1b, // IMPORT_FROM 'ed25519' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1d, // LOAD_CONST_STRING 'TezosBallotType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.enums' + 0x1c,0x1d, // IMPORT_FROM 'TezosBallotType' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1e, // LOAD_CONST_STRING 'TezosSignedTx' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1f, // IMPORT_NAME 'trezor.messages' + 0x1c,0x1e, // IMPORT_FROM 'TezosSignedTx' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x20, // LOAD_CONST_STRING 'validate_path' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x21, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x20, // IMPORT_FROM 'validate_path' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x22, // LOAD_CONST_STRING 'layout' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME '' + 0x1c,0x22, // IMPORT_FROM 'layout' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'address_n' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x24, // LOAD_METHOD 'derive' + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xc8, // STORE_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'transaction' + 0xc9, // STORE_FAST 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'origination' + 0xca, // STORE_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'delegation' + 0xcb, // STORE_FAST 11 + 0xb9, // LOAD_FAST 9 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0xcd,0x81, // POP_JUMP_IF_FALSE 205 + 0xb9, // LOAD_FAST 9 + 0x13,0x28, // LOAD_ATTR 'fee' + 0xcc, // STORE_FAST 12 + 0xb9, // LOAD_FAST 9 + 0x13,0x29, // LOAD_ATTR 'parameters_manager' + 0xcd, // STORE_FAST 13 + 0xbd, // LOAD_FAST 13 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x8c,0x81, // POP_JUMP_IF_FALSE 140 + 0xbd, // LOAD_FAST 13 + 0x13,0x2a, // LOAD_ATTR 'transfer' + 0xce, // STORE_FAST 14 + 0xbd, // LOAD_FAST 13 + 0x13,0x2b, // LOAD_ATTR 'set_delegate' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x5f, // POP_JUMP_IF_FALSE 31 + 0x12,0x52, // LOAD_GLOBAL '_get_address_by_tag' + 0xbd, // LOAD_FAST 13 + 0x13,0x2b, // LOAD_ATTR 'set_delegate' + 0x34,0x01, // CALL_FUNCTION 1 + 0xcf, // STORE_FAST 15 + 0xb7, // LOAD_FAST 7 + 0x14,0x2c, // LOAD_METHOD 'require_confirm_delegation_baker' + 0xbf, // LOAD_FAST 15 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x2d, // LOAD_METHOD 'require_confirm_set_delegate' + 0xbc, // LOAD_FAST 12 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0xdf,0x80, // JUMP 95 + 0xbd, // LOAD_FAST 13 + 0x13,0x2e, // LOAD_ATTR 'cancel_delegate' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0x12,0x56, // LOAD_GLOBAL '_get_address_from_contract' + 0xb9, // LOAD_FAST 9 + 0x13,0x2f, // LOAD_ATTR 'destination' + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x10, // STORE_FAST_N 16 + 0xb7, // LOAD_FAST 7 + 0x14,0x30, // LOAD_METHOD 'require_confirm_delegation_manager_withdraw' + 0x24,0x10, // LOAD_FAST_N 16 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x31, // LOAD_METHOD 'require_confirm_manager_remove_delegate' + 0xbc, // LOAD_FAST 12 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x77, // JUMP 55 + 0xbe, // LOAD_FAST 14 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x71, // POP_JUMP_IF_FALSE 49 + 0x12,0x56, // LOAD_GLOBAL '_get_address_from_contract' + 0xbe, // LOAD_FAST 14 + 0x13,0x2f, // LOAD_ATTR 'destination' + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x11, // STORE_FAST_N 17 + 0xb7, // LOAD_FAST 7 + 0x14,0x32, // LOAD_METHOD 'require_confirm_tx' + 0x24,0x11, // LOAD_FAST_N 17 + 0xbe, // LOAD_FAST 14 + 0x13,0x33, // LOAD_ATTR 'amount' + 0x10,0x34, // LOAD_CONST_STRING 'chunkify' + 0x12,0x81,0x04, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'chunkify' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x82,0x02, // CALL_METHOD 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x35, // LOAD_METHOD 'require_confirm_fee' + 0xbe, // LOAD_FAST 14 + 0x13,0x33, // LOAD_ATTR 'amount' + 0xbc, // LOAD_FAST 12 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x40, // JUMP 0 + 0x42,0x6f, // JUMP 47 + 0x12,0x56, // LOAD_GLOBAL '_get_address_from_contract' + 0xb9, // LOAD_FAST 9 + 0x13,0x2f, // LOAD_ATTR 'destination' + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x11, // STORE_FAST_N 17 + 0xb7, // LOAD_FAST 7 + 0x14,0x32, // LOAD_METHOD 'require_confirm_tx' + 0x24,0x11, // LOAD_FAST_N 17 + 0xb9, // LOAD_FAST 9 + 0x13,0x33, // LOAD_ATTR 'amount' + 0x10,0x34, // LOAD_CONST_STRING 'chunkify' + 0x12,0x81,0x04, // LOAD_GLOBAL 'bool' + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'chunkify' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x82,0x02, // CALL_METHOD 258 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x35, // LOAD_METHOD 'require_confirm_fee' + 0xb9, // LOAD_FAST 9 + 0x13,0x33, // LOAD_ATTR 'amount' + 0xbc, // LOAD_FAST 12 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0xa7,0x82, // JUMP 295 + 0xba, // LOAD_FAST 10 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0xc0,0x80, // POP_JUMP_IF_FALSE 64 + 0x12,0x52, // LOAD_GLOBAL '_get_address_by_tag' + 0xba, // LOAD_FAST 10 + 0x13,0x36, // LOAD_ATTR 'source' + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x12, // STORE_FAST_N 18 + 0xb7, // LOAD_FAST 7 + 0x14,0x37, // LOAD_METHOD 'require_confirm_origination' + 0x24,0x12, // LOAD_FAST_N 18 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xba, // LOAD_FAST 10 + 0x13,0x38, // LOAD_ATTR 'delegate' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x52, // LOAD_GLOBAL '_get_address_by_tag' + 0xba, // LOAD_FAST 10 + 0x13,0x38, // LOAD_ATTR 'delegate' + 0x34,0x01, // CALL_FUNCTION 1 + 0xcf, // STORE_FAST 15 + 0xb7, // LOAD_FAST 7 + 0x14,0x2c, // LOAD_METHOD 'require_confirm_delegation_baker' + 0xbf, // LOAD_FAST 15 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x39, // LOAD_METHOD 'require_confirm_origination_fee' + 0xba, // LOAD_FAST 10 + 0x13,0x3a, // LOAD_ATTR 'balance' + 0xba, // LOAD_FAST 10 + 0x13,0x28, // LOAD_ATTR 'fee' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0xe0,0x81, // JUMP 224 + 0xbb, // LOAD_FAST 11 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0xd5,0x80, // POP_JUMP_IF_FALSE 85 + 0x12,0x52, // LOAD_GLOBAL '_get_address_by_tag' + 0xbb, // LOAD_FAST 11 + 0x13,0x36, // LOAD_ATTR 'source' + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x12, // STORE_FAST_N 18 + 0x51, // LOAD_CONST_NONE + 0x26,0x13, // STORE_FAST_N 19 + 0xbb, // LOAD_FAST 11 + 0x13,0x38, // LOAD_ATTR 'delegate' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x52, // LOAD_GLOBAL '_get_address_by_tag' + 0xbb, // LOAD_FAST 11 + 0x13,0x38, // LOAD_ATTR 'delegate' + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x13, // STORE_FAST_N 19 + 0x24,0x13, // LOAD_FAST_N 19 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0x24,0x12, // LOAD_FAST_N 18 + 0x24,0x13, // LOAD_FAST_N 19 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb7, // LOAD_FAST 7 + 0x14,0x2c, // LOAD_METHOD 'require_confirm_delegation_baker' + 0x24,0x13, // LOAD_FAST_N 19 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x2d, // LOAD_METHOD 'require_confirm_set_delegate' + 0xbb, // LOAD_FAST 11 + 0x13,0x28, // LOAD_ATTR 'fee' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x4e, // JUMP 14 + 0xb7, // LOAD_FAST 7 + 0x14,0x3b, // LOAD_METHOD 'require_confirm_register_delegate' + 0x24,0x12, // LOAD_FAST_N 18 + 0xbb, // LOAD_FAST 11 + 0x13,0x28, // LOAD_ATTR 'fee' + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x84,0x81, // JUMP 132 + 0xb0, // LOAD_FAST 0 + 0x13,0x3c, // LOAD_ATTR 'proposal' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x3c, // LOAD_ATTR 'proposal' + 0x13,0x3d, // LOAD_ATTR 'proposals' + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x14, // STORE_FAST_N 20 + 0xb7, // LOAD_FAST 7 + 0x14,0x3e, // LOAD_METHOD 'require_confirm_proposals' + 0x24,0x14, // LOAD_FAST_N 20 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0xe3,0x80, // JUMP 99 + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'ballot' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0xd3,0x80, // POP_JUMP_IF_FALSE 83 + 0x12,0x13, // LOAD_GLOBAL 'base58_encode_check' + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'ballot' + 0x13,0x3c, // LOAD_ATTR 'proposal' + 0x10,0x40, // LOAD_CONST_STRING 'P' + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x15, // STORE_FAST_N 21 + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'ballot' + 0x13,0x3f, // LOAD_ATTR 'ballot' + 0xb4, // LOAD_FAST 4 + 0x13,0x41, // LOAD_ATTR 'Yay' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x10,0x42, // LOAD_CONST_STRING 'yay' + 0x26,0x16, // STORE_FAST_N 22 + 0x42,0x66, // JUMP 38 + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'ballot' + 0x13,0x3f, // LOAD_ATTR 'ballot' + 0xb4, // LOAD_FAST 4 + 0x13,0x43, // LOAD_ATTR 'Nay' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x10,0x44, // LOAD_CONST_STRING 'nay' + 0x26,0x16, // STORE_FAST_N 22 + 0x42,0x55, // JUMP 21 + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'ballot' + 0x13,0x3f, // LOAD_ATTR 'ballot' + 0xb4, // LOAD_FAST 4 + 0x13,0x45, // LOAD_ATTR 'Pass' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x10,0x46, // LOAD_CONST_STRING 'pass' + 0x26,0x16, // STORE_FAST_N 22 + 0x42,0x44, // JUMP 4 + 0x12,0x81,0x05, // LOAD_GLOBAL 'RuntimeError' + 0x65, // RAISE_OBJ + 0xb7, // LOAD_FAST 7 + 0x14,0x47, // LOAD_METHOD 'require_confirm_ballot' + 0x24,0x15, // LOAD_FAST_N 21 + 0x24,0x16, // LOAD_FAST_N 22 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x81,0x06, // LOAD_GLOBAL 'bytearray' + 0x34,0x00, // CALL_FUNCTION 0 + 0x26,0x17, // STORE_FAST_N 23 + 0x12,0x5c, // LOAD_GLOBAL '_get_operation_bytes' + 0x24,0x17, // LOAD_FAST_N 23 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x81,0x07, // LOAD_GLOBAL 'bytes' + 0x24,0x17, // LOAD_FAST_N 23 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x18, // STORE_FAST_N 24 + 0x12,0x81,0x07, // LOAD_GLOBAL 'bytes' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x26,0x19, // STORE_FAST_N 25 + 0x24,0x19, // LOAD_FAST_N 25 + 0x24,0x18, // LOAD_FAST_N 24 + 0xf2, // BINARY_OP 27 __add__ + 0x26,0x1a, // STORE_FAST_N 26 + 0xb2, // LOAD_FAST 2 + 0x14,0x48, // LOAD_METHOD 'blake2b' + 0x24,0x1a, // LOAD_FAST_N 26 + 0x10,0x49, // LOAD_CONST_STRING 'outlen' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x82,0x01, // CALL_METHOD 257 + 0x14,0x4a, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x1b, // STORE_FAST_N 27 + 0xb3, // LOAD_FAST 3 + 0x14,0x4b, // LOAD_METHOD 'sign' + 0xb8, // LOAD_FAST 8 + 0x14,0x4c, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0x24,0x1b, // LOAD_FAST_N 27 + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x1c, // STORE_FAST_N 28 + 0x24,0x18, // LOAD_FAST_N 24 + 0x24,0x1c, // LOAD_FAST_N 28 + 0xf2, // BINARY_OP 27 __add__ + 0x26,0x1d, // STORE_FAST_N 29 + 0xb2, // LOAD_FAST 2 + 0x14,0x48, // LOAD_METHOD 'blake2b' + 0x24,0x1d, // LOAD_FAST_N 29 + 0x10,0x49, // LOAD_CONST_STRING 'outlen' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x36,0x82,0x01, // CALL_METHOD 257 + 0x14,0x4a, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x1e, // STORE_FAST_N 30 + 0x12,0x13, // LOAD_GLOBAL 'base58_encode_check' + 0x24,0x1e, // LOAD_FAST_N 30 + 0x10,0x4d, // LOAD_CONST_STRING 'o' + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x1f, // STORE_FAST_N 31 + 0x12,0x13, // LOAD_GLOBAL 'base58_encode_check' + 0x24,0x1c, // LOAD_FAST_N 28 + 0x12,0x0f, // LOAD_GLOBAL 'helpers' + 0x13,0x4e, // LOAD_ATTR 'TEZOS_SIGNATURE_PREFIX' + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x20, // STORE_FAST_N 32 + 0xb5, // LOAD_FAST 5 + 0x10,0x4f, // LOAD_CONST_STRING 'signature' + 0x24,0x20, // LOAD_FAST_N 32 + 0x10,0x50, // LOAD_CONST_STRING 'sig_op_contents' + 0x24,0x1d, // LOAD_FAST_N 29 + 0x10,0x51, // LOAD_CONST_STRING 'operation_hash' + 0x24,0x1f, // LOAD_FAST_N 31 + 0x34,0x86,0x00, // CALL_FUNCTION 768 + 0x63, // RETURN_VALUE +}; +// child of apps_tezos_sign_tx_sign_tx +// frozen bytecode for file apps/tezos/sign_tx.py, scope apps_tezos_sign_tx_sign_tx__lt_listcomp_gt_ +static const byte fun_data_apps_tezos_sign_tx_sign_tx__lt_listcomp_gt_[27] = { + 0x49,0x0c, // prelude + 0x81,0x01,0x81,0x12, // names: , * + 0x80,0x73, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0c, // FOR_ITER 12 + 0xc1, // STORE_FAST 1 + 0x12,0x13, // LOAD_GLOBAL 'base58_encode_check' + 0xb1, // LOAD_FAST 1 + 0x10,0x40, // LOAD_CONST_STRING 'P' + 0x34,0x02, // CALL_FUNCTION 2 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x32, // JUMP -14 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_sign_tx_sign_tx__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_tezos_sign_tx_sign_tx__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 129, + .line_info = fun_data_apps_tezos_sign_tx_sign_tx__lt_listcomp_gt_ + 6, + .line_info_top = fun_data_apps_tezos_sign_tx_sign_tx__lt_listcomp_gt_ + 8, + .opcodes = fun_data_apps_tezos_sign_tx_sign_tx__lt_listcomp_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_tezos_sign_tx_sign_tx[] = { + &raw_code_apps_tezos_sign_tx_sign_tx__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_apps_tezos_sign_tx_sign_tx = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_tezos_sign_tx_sign_tx, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 827, + #endif + .children = (void *)&children_apps_tezos_sign_tx_sign_tx, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 40, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 24, + .line_info = fun_data_apps_tezos_sign_tx_sign_tx + 9, + .line_info_top = fun_data_apps_tezos_sign_tx_sign_tx + 87, + .opcodes = fun_data_apps_tezos_sign_tx_sign_tx + 87, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/tezos/sign_tx.py, scope apps_tezos_sign_tx__get_address_by_tag +static const byte fun_data_apps_tezos_sign_tx__get_address_by_tag[72] = { + 0x31,0x12, // prelude + 0x52,0x81,0x08, // names: _get_address_by_tag, address_hash + 0x80,0xa3,0x29,0x49,0x34,0x2e, // code info + 0x10,0x53, // LOAD_CONST_STRING 'tz1' + 0x10,0x54, // LOAD_CONST_STRING 'tz2' + 0x10,0x55, // LOAD_CONST_STRING 'tz3' + 0x2b,0x03, // BUILD_LIST 3 + 0xc1, // STORE_FAST 1 + 0x12,0x81,0x09, // LOAD_GLOBAL 'int' + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb2, // LOAD_FAST 2 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x09, // JUMP_IF_FALSE_OR_POP 9 + 0x12,0x81,0x0a, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xd7, // BINARY_OP 0 __lt__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x13, // LOAD_GLOBAL 'base58_encode_check' + 0xb0, // LOAD_FAST 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_sign_tx__get_address_by_tag = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_tezos_sign_tx__get_address_by_tag, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 82, + .line_info = fun_data_apps_tezos_sign_tx__get_address_by_tag + 5, + .line_info_top = fun_data_apps_tezos_sign_tx__get_address_by_tag + 11, + .opcodes = fun_data_apps_tezos_sign_tx__get_address_by_tag + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/tezos/sign_tx.py, scope apps_tezos_sign_tx__get_address_from_contract +static const byte fun_data_apps_tezos_sign_tx__get_address_from_contract[65] = { + 0x21,0x12, // prelude + 0x56,0x7f, // names: _get_address_from_contract, address + 0x80,0xac,0x2a,0x48,0x2a,0x22,0x6f, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x57, // LOAD_ATTR 'tag' + 0x12,0x02, // LOAD_GLOBAL 'TezosContractType' + 0x13,0x58, // LOAD_ATTR 'Implicit' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x52, // LOAD_GLOBAL '_get_address_by_tag' + 0xb0, // LOAD_FAST 0 + 0x13,0x59, // LOAD_ATTR 'hash' + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x57, // LOAD_ATTR 'tag' + 0x12,0x02, // LOAD_GLOBAL 'TezosContractType' + 0x13,0x5a, // LOAD_ATTR 'Originated' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x12,0x13, // LOAD_GLOBAL 'base58_encode_check' + 0xb0, // LOAD_FAST 0 + 0x13,0x59, // LOAD_ATTR 'hash' + 0x51, // LOAD_CONST_NONE + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x12,0x0f, // LOAD_GLOBAL 'helpers' + 0x13,0x5b, // LOAD_ATTR 'TEZOS_ORIGINATED_ADDRESS_PREFIX' + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_sign_tx__get_address_from_contract = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_tezos_sign_tx__get_address_from_contract, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 65, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 86, + .line_info = fun_data_apps_tezos_sign_tx__get_address_from_contract + 4, + .line_info_top = fun_data_apps_tezos_sign_tx__get_address_from_contract + 11, + .opcodes = fun_data_apps_tezos_sign_tx__get_address_from_contract + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/tezos/sign_tx.py, scope apps_tezos_sign_tx__get_operation_bytes +static const byte fun_data_apps_tezos_sign_tx__get_operation_bytes[905] = { + 0xee,0x10,0xcc,0x02, // prelude + 0x5c,0x81,0x0b,0x81,0x02, // names: _get_operation_bytes, w, msg + 0x80,0xb8,0x4b,0x4b,0x44,0x6d,0x20,0x26,0x29,0x4b,0x22,0x51,0x4a,0x6c,0x29,0x24,0x29,0x69,0x24,0x29,0x6d,0x29,0x24,0x44,0x48,0x24,0x22,0x29,0x29,0x26,0x2c,0x48,0x22,0x29,0x26,0x2c,0x27,0x20,0x4d,0x22,0x23,0x26,0x29,0x4a,0x2a,0x23,0x4a,0x26,0x29,0x29,0x26,0x6c,0x22,0x44,0x26,0x29,0x4a,0x6e,0x24,0x29,0x4d,0x26,0x29,0x29,0x26,0x4d,0x25,0x24,0x27,0x29,0x49,0x4a,0x28,0x25,0x2a,0x2a,0x2c,0x2b,0x6c,0x28,0x2b,0x23,0x4d,0x49,0x25,0x2a,0x2c,0x2a,0x31,0x29,0x2e,0x48,0x25,0x2a,0x2c,0x2a,0x2b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x5d, // LOAD_CONST_STRING 'write_bytes_unchecked' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'apps.common.writers' + 0x1c,0x5d, // IMPORT_FROM 'write_bytes_unchecked' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x5e, // LOAD_CONST_STRING 'PROPOSAL_HASH_SIZE' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0f, // IMPORT_NAME 'helpers' + 0x1c,0x5e, // IMPORT_FROM 'PROPOSAL_HASH_SIZE' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x5f, // LOAD_ATTR 'reveal' + 0xc4, // STORE_FAST 4 + 0x12,0x08, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x60, // LOAD_ATTR 'branch' + 0x12,0x0f, // LOAD_GLOBAL 'helpers' + 0x13,0x61, // LOAD_ATTR 'BRANCH_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x7d, // POP_JUMP_IF_FALSE 61 + 0x12,0x6e, // LOAD_GLOBAL '_encode_common' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x10,0x5f, // LOAD_CONST_STRING 'reveal' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x81,0x09, // LOAD_GLOBAL 'int' + 0xb4, // LOAD_FAST 4 + 0x13,0x62, // LOAD_ATTR 'public_key' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0x48,0x09, // SETUP_EXCEPT 9 + 0x12,0x0f, // LOAD_GLOBAL 'helpers' + 0x13,0x63, // LOAD_ATTR 'PUBLIC_KEY_TAG_TO_SIZE' + 0xb5, // LOAD_FAST 5 + 0x55, // LOAD_SUBSCR + 0xc6, // STORE_FAST 6 + 0x4a,0x12, // POP_EXCEPT_JUMP 18 + 0x57, // DUP_TOP + 0x12,0x81,0x0c, // LOAD_GLOBAL 'KeyError' + 0xdf, // BINARY_OP 8 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x12,0x08, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x13,0x62, // LOAD_ATTR 'public_key' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb6, // LOAD_FAST 6 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x25, // LOAD_ATTR 'transaction' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0xa9,0x83, // POP_JUMP_IF_FALSE 425 + 0xb1, // LOAD_FAST 1 + 0x13,0x25, // LOAD_ATTR 'transaction' + 0xc7, // STORE_FAST 7 + 0x12,0x6e, // LOAD_GLOBAL '_encode_common' + 0xb0, // LOAD_FAST 0 + 0xb7, // LOAD_FAST 7 + 0x10,0x25, // LOAD_CONST_STRING 'transaction' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x77, // LOAD_GLOBAL '_encode_zarith' + 0xb0, // LOAD_FAST 0 + 0xb7, // LOAD_FAST 7 + 0x13,0x33, // LOAD_ATTR 'amount' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x13,0x2f, // LOAD_ATTR 'destination' + 0xc8, // STORE_FAST 8 + 0x12,0x09, // LOAD_GLOBAL 'write_uint8' + 0xb0, // LOAD_FAST 0 + 0xb8, // LOAD_FAST 8 + 0x13,0x57, // LOAD_ATTR 'tag' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0xb8, // LOAD_FAST 8 + 0x13,0x59, // LOAD_ATTR 'hash' + 0x12,0x11, // LOAD_GLOBAL 'CONTRACT_ID_SIZE' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x13,0x29, // LOAD_ATTR 'parameters_manager' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0xc4,0x82, // POP_JUMP_IF_FALSE 324 + 0xb7, // LOAD_FAST 7 + 0x13,0x29, // LOAD_ATTR 'parameters_manager' + 0xc9, // STORE_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x13,0x2a, // LOAD_ATTR 'transfer' + 0xca, // STORE_FAST 10 + 0xb9, // LOAD_FAST 9 + 0x13,0x2b, // LOAD_ATTR 'set_delegate' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x6a, // POP_JUMP_IF_FALSE 42 + 0xb9, // LOAD_FAST 9 + 0x13,0x2b, // LOAD_ATTR 'set_delegate' + 0xcb, // STORE_FAST 11 + 0xaa, // LOAD_CONST_SMALL_INT 42 + 0xcc, // STORE_FAST 12 + 0x12,0x79, // LOAD_GLOBAL '_encode_manager_common' + 0xb0, // LOAD_FAST 0 + 0xbc, // LOAD_FAST 12 + 0x10,0x64, // LOAD_CONST_STRING 'PUSH' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0xbb, // LOAD_FAST 11 + 0x12,0x12, // LOAD_GLOBAL 'TAGGED_PUBKEY_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xcd, // STORE_FAST 13 + 0x12,0x15, // LOAD_GLOBAL 'write_instruction' + 0xb0, // LOAD_FAST 0 + 0xbd, // LOAD_FAST 13 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x42,0x88,0x82, // JUMP 264 + 0xb9, // LOAD_FAST 9 + 0x13,0x2e, // LOAD_ATTR 'cancel_delegate' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x5d, // POP_JUMP_IF_FALSE 29 + 0x8e, // LOAD_CONST_SMALL_INT 14 + 0xcc, // STORE_FAST 12 + 0x12,0x79, // LOAD_GLOBAL '_encode_manager_common' + 0xb0, // LOAD_FAST 0 + 0xbc, // LOAD_FAST 12 + 0x10,0x65, // LOAD_CONST_STRING 'NONE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xcd, // STORE_FAST 13 + 0x12,0x15, // LOAD_GLOBAL 'write_instruction' + 0xb0, // LOAD_FAST 0 + 0xbd, // LOAD_FAST 13 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x42,0xe3,0x81, // JUMP 227 + 0xba, // LOAD_FAST 10 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0xdc,0x81, // POP_JUMP_IF_FALSE 220 + 0xba, // LOAD_FAST 10 + 0x13,0x2f, // LOAD_ATTR 'destination' + 0x13,0x57, // LOAD_ATTR 'tag' + 0x12,0x02, // LOAD_GLOBAL 'TezosContractType' + 0x13,0x58, // LOAD_ATTR 'Implicit' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xdf,0x80, // POP_JUMP_IF_FALSE 95 + 0xba, // LOAD_FAST 10 + 0xce, // STORE_FAST 14 + 0x22,0x30, // LOAD_CONST_SMALL_INT 48 + 0xcc, // STORE_FAST 12 + 0x12,0x81,0x06, // LOAD_GLOBAL 'bytearray' + 0x34,0x00, // CALL_FUNCTION 0 + 0xcf, // STORE_FAST 15 + 0x12,0x78, // LOAD_GLOBAL '_encode_natural' + 0xbf, // LOAD_FAST 15 + 0xbe, // LOAD_FAST 14 + 0x13,0x33, // LOAD_ATTR 'amount' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbc, // LOAD_FAST 12 + 0x12,0x81,0x0a, // LOAD_GLOBAL 'len' + 0xbf, // LOAD_FAST 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x26,0x10, // STORE_FAST_N 16 + 0x12,0x79, // LOAD_GLOBAL '_encode_manager_common' + 0xb0, // LOAD_FAST 0 + 0x24,0x10, // LOAD_FAST_N 16 + 0x10,0x64, // LOAD_CONST_STRING 'PUSH' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0xbe, // LOAD_FAST 14 + 0x13,0x2f, // LOAD_ATTR 'destination' + 0x13,0x59, // LOAD_ATTR 'hash' + 0x12,0x12, // LOAD_GLOBAL 'TAGGED_PUBKEY_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xcd, // STORE_FAST 13 + 0x12,0x15, // LOAD_GLOBAL 'write_instruction' + 0xb0, // LOAD_FAST 0 + 0xbd, // LOAD_FAST 13 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x12,0x78, // LOAD_GLOBAL '_encode_natural' + 0xb0, // LOAD_FAST 0 + 0xbe, // LOAD_FAST 14 + 0x13,0x33, // LOAD_ATTR 'amount' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xcd, // STORE_FAST 13 + 0x12,0x15, // LOAD_GLOBAL 'write_instruction' + 0xb0, // LOAD_FAST 0 + 0xbd, // LOAD_FAST 13 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x42,0xee,0x80, // JUMP 110 + 0xba, // LOAD_FAST 10 + 0xce, // STORE_FAST 14 + 0x22,0x80,0x4d, // LOAD_CONST_SMALL_INT 77 + 0xcc, // STORE_FAST 12 + 0x12,0x81,0x06, // LOAD_GLOBAL 'bytearray' + 0x34,0x00, // CALL_FUNCTION 0 + 0xcf, // STORE_FAST 15 + 0x12,0x78, // LOAD_GLOBAL '_encode_natural' + 0xbf, // LOAD_FAST 15 + 0xbe, // LOAD_FAST 14 + 0x13,0x33, // LOAD_ATTR 'amount' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xbc, // LOAD_FAST 12 + 0x12,0x81,0x0a, // LOAD_GLOBAL 'len' + 0xbf, // LOAD_FAST 15 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x26,0x10, // STORE_FAST_N 16 + 0x12,0x79, // LOAD_GLOBAL '_encode_manager_common' + 0xb0, // LOAD_FAST 0 + 0x24,0x10, // LOAD_FAST_N 16 + 0x10,0x64, // LOAD_CONST_STRING 'PUSH' + 0x10,0x66, // LOAD_CONST_STRING 'to_contract' + 0x52, // LOAD_CONST_TRUE + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x59, // POP_TOP + 0xbe, // LOAD_FAST 14 + 0x13,0x2f, // LOAD_ATTR 'destination' + 0xc8, // STORE_FAST 8 + 0x12,0x09, // LOAD_GLOBAL 'write_uint8' + 0xb0, // LOAD_FAST 0 + 0xb8, // LOAD_FAST 8 + 0x13,0x57, // LOAD_ATTR 'tag' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0xb8, // LOAD_FAST 8 + 0x13,0x59, // LOAD_ATTR 'hash' + 0x12,0x11, // LOAD_GLOBAL 'CONTRACT_ID_SIZE' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xcd, // STORE_FAST 13 + 0x12,0x15, // LOAD_GLOBAL 'write_instruction' + 0xb0, // LOAD_FAST 0 + 0xbd, // LOAD_FAST 13 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x12,0x78, // LOAD_GLOBAL '_encode_natural' + 0xb0, // LOAD_FAST 0 + 0xbe, // LOAD_FAST 14 + 0x13,0x33, // LOAD_ATTR 'amount' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xcd, // STORE_FAST 13 + 0x12,0x15, // LOAD_GLOBAL 'write_instruction' + 0xb0, // LOAD_FAST 0 + 0xbd, // LOAD_FAST 13 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x42,0x40, // JUMP 0 + 0x42,0x69, // JUMP 41 + 0xb7, // LOAD_FAST 7 + 0x13,0x67, // LOAD_ATTR 'parameters' + 0x26,0x11, // STORE_FAST_N 17 + 0x24,0x11, // LOAD_FAST_N 17 + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0x12,0x14, // LOAD_GLOBAL 'write_bool' + 0xb0, // LOAD_FAST 0 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'helpers' + 0x14,0x68, // LOAD_METHOD 'check_tx_params_size' + 0x24,0x11, // LOAD_FAST_N 17 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x24,0x11, // LOAD_FAST_N 17 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0x12,0x14, // LOAD_GLOBAL 'write_bool' + 0xb0, // LOAD_FAST 0 + 0x50, // LOAD_CONST_FALSE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x81,0x82, // JUMP 257 + 0xb1, // LOAD_FAST 1 + 0x13,0x26, // LOAD_ATTR 'origination' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x7c, // POP_JUMP_IF_FALSE 60 + 0xb1, // LOAD_FAST 1 + 0x13,0x26, // LOAD_ATTR 'origination' + 0x26,0x12, // STORE_FAST_N 18 + 0x12,0x6e, // LOAD_GLOBAL '_encode_common' + 0xb0, // LOAD_FAST 0 + 0x24,0x12, // LOAD_FAST_N 18 + 0x10,0x26, // LOAD_CONST_STRING 'origination' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x77, // LOAD_GLOBAL '_encode_zarith' + 0xb0, // LOAD_FAST 0 + 0x24,0x12, // LOAD_FAST_N 18 + 0x13,0x3a, // LOAD_ATTR 'balance' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x76, // LOAD_GLOBAL '_encode_data_with_bool_prefix' + 0xb0, // LOAD_FAST 0 + 0x24,0x12, // LOAD_FAST_N 18 + 0x13,0x38, // LOAD_ATTR 'delegate' + 0x12,0x12, // LOAD_GLOBAL 'TAGGED_PUBKEY_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'helpers' + 0x14,0x69, // LOAD_METHOD 'check_script_size' + 0x24,0x12, // LOAD_FAST_N 18 + 0x13,0x6a, // LOAD_ATTR 'script' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x24,0x12, // LOAD_FAST_N 18 + 0x13,0x6a, // LOAD_ATTR 'script' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0xbd,0x81, // JUMP 189 + 0xb1, // LOAD_FAST 1 + 0x13,0x27, // LOAD_ATTR 'delegation' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x5b, // POP_JUMP_IF_FALSE 27 + 0x12,0x6e, // LOAD_GLOBAL '_encode_common' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x27, // LOAD_ATTR 'delegation' + 0x10,0x27, // LOAD_CONST_STRING 'delegation' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x76, // LOAD_GLOBAL '_encode_data_with_bool_prefix' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x27, // LOAD_ATTR 'delegation' + 0x13,0x38, // LOAD_ATTR 'delegate' + 0x12,0x12, // LOAD_GLOBAL 'TAGGED_PUBKEY_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x9a,0x81, // JUMP 154 + 0xb1, // LOAD_FAST 1 + 0x13,0x3c, // LOAD_ATTR 'proposal' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0xcd,0x80, // POP_JUMP_IF_FALSE 77 + 0xb1, // LOAD_FAST 1 + 0x13,0x3c, // LOAD_ATTR 'proposal' + 0x26,0x13, // STORE_FAST_N 19 + 0x12,0x09, // LOAD_GLOBAL 'write_uint8' + 0xb0, // LOAD_FAST 0 + 0x12,0x0f, // LOAD_GLOBAL 'helpers' + 0x13,0x6b, // LOAD_ATTR 'OP_TAG_PROPOSALS' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0x24,0x13, // LOAD_FAST_N 19 + 0x13,0x36, // LOAD_ATTR 'source' + 0x12,0x12, // LOAD_GLOBAL 'TAGGED_PUBKEY_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'write_uint32_be' + 0xb0, // LOAD_FAST 0 + 0x24,0x13, // LOAD_FAST_N 19 + 0x13,0x6c, // LOAD_ATTR 'period' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'write_uint32_be' + 0xb0, // LOAD_FAST 0 + 0x12,0x81,0x0a, // LOAD_GLOBAL 'len' + 0x24,0x13, // LOAD_FAST_N 19 + 0x13,0x3d, // LOAD_ATTR 'proposals' + 0x34,0x01, // CALL_FUNCTION 1 + 0xb3, // LOAD_FAST 3 + 0xf4, // BINARY_OP 29 __mul__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x24,0x13, // LOAD_FAST_N 19 + 0x13,0x3d, // LOAD_ATTR 'proposals' + 0x5f, // GET_ITER_STACK + 0x4b,0x0d, // FOR_ITER 13 + 0x26,0x14, // STORE_FAST_N 20 + 0x12,0x08, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0x24,0x14, // LOAD_FAST_N 20 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x31, // JUMP -15 + 0x42,0xc4,0x80, // JUMP 68 + 0xb1, // LOAD_FAST 1 + 0x13,0x3f, // LOAD_ATTR 'ballot' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x7c, // POP_JUMP_IF_FALSE 60 + 0xb1, // LOAD_FAST 1 + 0x13,0x3f, // LOAD_ATTR 'ballot' + 0x26,0x15, // STORE_FAST_N 21 + 0x12,0x09, // LOAD_GLOBAL 'write_uint8' + 0xb0, // LOAD_FAST 0 + 0x12,0x0f, // LOAD_GLOBAL 'helpers' + 0x13,0x6d, // LOAD_ATTR 'OP_TAG_BALLOT' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0x24,0x15, // LOAD_FAST_N 21 + 0x13,0x36, // LOAD_ATTR 'source' + 0x12,0x12, // LOAD_GLOBAL 'TAGGED_PUBKEY_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'write_uint32_be' + 0xb0, // LOAD_FAST 0 + 0x24,0x15, // LOAD_FAST_N 21 + 0x13,0x6c, // LOAD_ATTR 'period' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0x24,0x15, // LOAD_FAST_N 21 + 0x13,0x3c, // LOAD_ATTR 'proposal' + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'write_uint8' + 0xb0, // LOAD_FAST 0 + 0x24,0x15, // LOAD_FAST_N 21 + 0x13,0x3f, // LOAD_ATTR 'ballot' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x40, // JUMP 0 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_sign_tx__get_operation_bytes = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_tezos_sign_tx__get_operation_bytes, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 905, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 30, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 92, + .line_info = fun_data_apps_tezos_sign_tx__get_operation_bytes + 9, + .line_info_top = fun_data_apps_tezos_sign_tx__get_operation_bytes + 106, + .opcodes = fun_data_apps_tezos_sign_tx__get_operation_bytes + 106, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/tezos/sign_tx.py, scope apps_tezos_sign_tx__encode_common +static const byte fun_data_apps_tezos_sign_tx__encode_common[102] = { + 0x5b,0x28, // prelude + 0x6e,0x81,0x0b,0x7e,0x81,0x0d, // names: _encode_common, w, operation, str_operation + 0x90,0x45,0x22,0x27,0x27,0x27,0x48,0x29,0x2b,0x20,0x23,0x23,0x23,0x49, // code info + 0x2c,0x04, // BUILD_MAP 4 + 0x12,0x0f, // LOAD_GLOBAL 'helpers' + 0x13,0x6f, // LOAD_ATTR 'OP_TAG_REVEAL' + 0x10,0x5f, // LOAD_CONST_STRING 'reveal' + 0x62, // STORE_MAP + 0x12,0x0f, // LOAD_GLOBAL 'helpers' + 0x13,0x70, // LOAD_ATTR 'OP_TAG_TRANSACTION' + 0x10,0x25, // LOAD_CONST_STRING 'transaction' + 0x62, // STORE_MAP + 0x12,0x0f, // LOAD_GLOBAL 'helpers' + 0x13,0x71, // LOAD_ATTR 'OP_TAG_ORIGINATION' + 0x10,0x26, // LOAD_CONST_STRING 'origination' + 0x62, // STORE_MAP + 0x12,0x0f, // LOAD_GLOBAL 'helpers' + 0x13,0x72, // LOAD_ATTR 'OP_TAG_DELEGATION' + 0x10,0x27, // LOAD_CONST_STRING 'delegation' + 0x62, // STORE_MAP + 0xc3, // STORE_FAST 3 + 0x12,0x09, // LOAD_GLOBAL 'write_uint8' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x36, // LOAD_ATTR 'source' + 0x12,0x12, // LOAD_GLOBAL 'TAGGED_PUBKEY_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x28, // LOAD_ATTR 'fee' + 0xb1, // LOAD_FAST 1 + 0x13,0x73, // LOAD_ATTR 'counter' + 0xb1, // LOAD_FAST 1 + 0x13,0x74, // LOAD_ATTR 'gas_limit' + 0xb1, // LOAD_FAST 1 + 0x13,0x75, // LOAD_ATTR 'storage_limit' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc4, // STORE_FAST 4 + 0x12,0x77, // LOAD_GLOBAL '_encode_zarith' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_sign_tx__encode_common = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_tezos_sign_tx__encode_common, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 102, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 110, + .line_info = fun_data_apps_tezos_sign_tx__encode_common + 8, + .line_info_top = fun_data_apps_tezos_sign_tx__encode_common + 22, + .opcodes = fun_data_apps_tezos_sign_tx__encode_common + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/tezos/sign_tx.py, scope apps_tezos_sign_tx__encode_data_with_bool_prefix +static const byte fun_data_apps_tezos_sign_tx__encode_data_with_bool_prefix[47] = { + 0x33,0x18, // prelude + 0x76,0x81,0x0b,0x81,0x0e,0x81,0x0f, // names: _encode_data_with_bool_prefix, w, data, expected_length + 0x90,0x59,0x23,0x29,0x4a, // code info + 0xb1, // LOAD_FAST 1 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x0f, // LOAD_GLOBAL 'helpers' + 0x14,0x14, // LOAD_METHOD 'write_bool' + 0xb0, // LOAD_FAST 0 + 0x52, // LOAD_CONST_TRUE + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x49, // JUMP 9 + 0x12,0x0f, // LOAD_GLOBAL 'helpers' + 0x14,0x14, // LOAD_METHOD 'write_bool' + 0xb0, // LOAD_FAST 0 + 0x50, // LOAD_CONST_FALSE + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_sign_tx__encode_data_with_bool_prefix = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_tezos_sign_tx__encode_data_with_bool_prefix, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 118, + .line_info = fun_data_apps_tezos_sign_tx__encode_data_with_bool_prefix + 9, + .line_info_top = fun_data_apps_tezos_sign_tx__encode_data_with_bool_prefix + 14, + .opcodes = fun_data_apps_tezos_sign_tx__encode_data_with_bool_prefix + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/tezos/sign_tx.py, scope apps_tezos_sign_tx__encode_zarith +static const byte fun_data_apps_tezos_sign_tx__encode_zarith[54] = { + 0x32,0x1a, // prelude + 0x77,0x81,0x0b,0x81,0x10, // names: _encode_zarith, w, num + 0x90,0x61,0x20,0x26,0x44,0x25,0x27,0x42, // code info + 0xb1, // LOAD_FAST 1 + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0xef, // BINARY_OP 24 __and__ + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xf1, // BINARY_OP 26 __rshift__ + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x09, // LOAD_GLOBAL 'write_uint8' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x4d, // JUMP 13 + 0x12,0x09, // LOAD_GLOBAL 'write_uint8' + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xb2, // LOAD_FAST 2 + 0xed, // BINARY_OP 22 __or__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x1b, // JUMP -37 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_sign_tx__encode_zarith = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_tezos_sign_tx__encode_zarith, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 54, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 119, + .line_info = fun_data_apps_tezos_sign_tx__encode_zarith + 7, + .line_info_top = fun_data_apps_tezos_sign_tx__encode_zarith + 15, + .opcodes = fun_data_apps_tezos_sign_tx__encode_zarith + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/tezos/sign_tx.py, scope apps_tezos_sign_tx__encode_natural +static const byte fun_data_apps_tezos_sign_tx__encode_natural[68] = { + 0x42,0x1c, // prelude + 0x78,0x81,0x0b,0x81,0x10, // names: _encode_natural, w, num + 0x90,0x6f,0x22,0x47,0x25,0x44,0x25,0x49,0x2b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc2, // STORE_FAST 2 + 0x12,0x09, // LOAD_GLOBAL 'write_uint8' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x22,0x3f, // LOAD_CONST_SMALL_INT 63 + 0xef, // BINARY_OP 24 __and__ + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0xf1, // BINARY_OP 26 __rshift__ + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x09, // LOAD_GLOBAL 'write_uint8' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x52, // JUMP 18 + 0x12,0x09, // LOAD_GLOBAL 'write_uint8' + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xb3, // LOAD_FAST 3 + 0xed, // BINARY_OP 22 __or__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x77, // LOAD_GLOBAL '_encode_zarith' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_sign_tx__encode_natural = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_tezos_sign_tx__encode_natural, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 68, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 120, + .line_info = fun_data_apps_tezos_sign_tx__encode_natural + 7, + .line_info_top = fun_data_apps_tezos_sign_tx__encode_natural + 16, + .opcodes = fun_data_apps_tezos_sign_tx__encode_natural + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_tezos_sign_tx__lt_module_gt_ +// frozen bytecode for file apps/tezos/sign_tx.py, scope apps_tezos_sign_tx__encode_manager_common +static const byte fun_data_apps_tezos_sign_tx__encode_manager_common[152] = { + 0xe0,0x05,0x30, // prelude + 0x79,0x81,0x0b,0x81,0x11,0x7e,0x66, // names: _encode_manager_common, w, sequence_length, operation, to_contract + 0x90,0x80,0x44,0x27,0x2a,0x27,0x2a,0x27,0x2d,0x29,0x23,0x4a,0x29,0x26,0x27,0x23,0x4a, // code info + 0xb1, // LOAD_FAST 1 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xf2, // BINARY_OP 27 __add__ + 0xc4, // STORE_FAST 4 + 0x12,0x14, // LOAD_GLOBAL 'write_bool' + 0xb0, // LOAD_FAST 0 + 0x52, // LOAD_CONST_TRUE + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'write_uint8' + 0xb0, // LOAD_FAST 0 + 0x12,0x0f, // LOAD_GLOBAL 'helpers' + 0x13,0x7a, // LOAD_ATTR 'DO_ENTRYPOINT_TAG' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'write_uint32_be' + 0xb0, // LOAD_FAST 0 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'write_uint8' + 0xb0, // LOAD_FAST 0 + 0x12,0x0f, // LOAD_GLOBAL 'helpers' + 0x13,0x7b, // LOAD_ATTR 'MICHELSON_SEQUENCE_TAG' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'write_uint32_be' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x10,0x7c, // LOAD_CONST_STRING 'DROP' + 0x10,0x7d, // LOAD_CONST_STRING 'NIL' + 0x10,0x7e, // LOAD_CONST_STRING 'operation' + 0xb2, // LOAD_FAST 2 + 0x2a,0x04, // BUILD_TUPLE 4 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc5, // STORE_FAST 5 + 0x12,0x15, // LOAD_GLOBAL 'write_instruction' + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0xb3, // LOAD_FAST 3 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x15, // LOAD_GLOBAL 'write_instruction' + 0xb0, // LOAD_FAST 0 + 0x10,0x7f, // LOAD_CONST_STRING 'address' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x49, // JUMP 9 + 0x12,0x15, // LOAD_GLOBAL 'write_instruction' + 0xb0, // LOAD_FAST 0 + 0x10,0x81,0x00, // LOAD_CONST_STRING 'key_hash' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x10,0x64, // LOAD_CONST_STRING 'PUSH' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0x12,0x09, // LOAD_GLOBAL 'write_uint8' + 0xb0, // LOAD_FAST 0 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x0a, // LOAD_GLOBAL 'write_uint32_be' + 0xb0, // LOAD_FAST 0 + 0x12,0x11, // LOAD_GLOBAL 'CONTRACT_ID_SIZE' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x48, // JUMP 8 + 0x12,0x0a, // LOAD_GLOBAL 'write_uint32_be' + 0xb0, // LOAD_FAST 0 + 0x12,0x12, // LOAD_GLOBAL 'TAGGED_PUBKEY_HASH_SIZE' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_tezos_sign_tx__encode_manager_common = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_tezos_sign_tx__encode_manager_common, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 152, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 121, + .line_info = fun_data_apps_tezos_sign_tx__encode_manager_common + 10, + .line_info_top = fun_data_apps_tezos_sign_tx__encode_manager_common + 27, + .opcodes = fun_data_apps_tezos_sign_tx__encode_manager_common + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_tezos_sign_tx__lt_module_gt_[] = { + &raw_code_apps_tezos_sign_tx_sign_tx, + &raw_code_apps_tezos_sign_tx__get_address_by_tag, + &raw_code_apps_tezos_sign_tx__get_address_from_contract, + &raw_code_apps_tezos_sign_tx__get_operation_bytes, + &raw_code_apps_tezos_sign_tx__encode_common, + &raw_code_apps_tezos_sign_tx__encode_data_with_bool_prefix, + &raw_code_apps_tezos_sign_tx__encode_zarith, + &raw_code_apps_tezos_sign_tx__encode_natural, + &raw_code_apps_tezos_sign_tx__encode_manager_common, +}; + +static const mp_raw_code_t raw_code_apps_tezos_sign_tx__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_tezos_sign_tx__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 217, + #endif + .children = (void *)&children_apps_tezos_sign_tx__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 9, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_tezos_sign_tx__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_tezos_sign_tx__lt_module_gt_ + 31, + .opcodes = fun_data_apps_tezos_sign_tx__lt_module_gt_ + 31, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_tezos_sign_tx[147] = { + MP_QSTR_apps_slash_tezos_slash_sign_tx_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_TezosContractType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_with_slip44_keychain, + MP_QSTR_apps_dot_common_dot_keychain, + MP_QSTR_write_bytes_fixed, + MP_QSTR_write_uint8, + MP_QSTR_write_uint32_be, + MP_QSTR_apps_dot_common_dot_writers, + MP_QSTR_CURVE, + MP_QSTR_PATTERNS, + MP_QSTR_SLIP44_ID, + MP_QSTR_helpers, + MP_QSTR_, + MP_QSTR_CONTRACT_ID_SIZE, + MP_QSTR_TAGGED_PUBKEY_HASH_SIZE, + MP_QSTR_base58_encode_check, + MP_QSTR_write_bool, + MP_QSTR_write_instruction, + MP_QSTR_slip44_id, + MP_QSTR_curve, + MP_QSTR_sign_tx, + MP_QSTR_hashlib, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_ed25519, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_TezosBallotType, + MP_QSTR_TezosSignedTx, + MP_QSTR_trezor_dot_messages, + MP_QSTR_validate_path, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_layout, + MP_QSTR_address_n, + MP_QSTR_derive, + MP_QSTR_transaction, + MP_QSTR_origination, + MP_QSTR_delegation, + MP_QSTR_fee, + MP_QSTR_parameters_manager, + MP_QSTR_transfer, + MP_QSTR_set_delegate, + MP_QSTR_require_confirm_delegation_baker, + MP_QSTR_require_confirm_set_delegate, + MP_QSTR_cancel_delegate, + MP_QSTR_destination, + MP_QSTR_require_confirm_delegation_manager_withdraw, + MP_QSTR_require_confirm_manager_remove_delegate, + MP_QSTR_require_confirm_tx, + MP_QSTR_amount, + MP_QSTR_chunkify, + MP_QSTR_require_confirm_fee, + MP_QSTR_source, + MP_QSTR_require_confirm_origination, + MP_QSTR_delegate, + MP_QSTR_require_confirm_origination_fee, + MP_QSTR_balance, + MP_QSTR_require_confirm_register_delegate, + MP_QSTR_proposal, + MP_QSTR_proposals, + MP_QSTR_require_confirm_proposals, + MP_QSTR_ballot, + MP_QSTR_P, + MP_QSTR_Yay, + MP_QSTR_yay, + MP_QSTR_Nay, + MP_QSTR_nay, + MP_QSTR_Pass, + MP_QSTR_pass, + MP_QSTR_require_confirm_ballot, + MP_QSTR_blake2b, + MP_QSTR_outlen, + MP_QSTR_digest, + MP_QSTR_sign, + MP_QSTR_private_key, + MP_QSTR_o, + MP_QSTR_TEZOS_SIGNATURE_PREFIX, + MP_QSTR_signature, + MP_QSTR_sig_op_contents, + MP_QSTR_operation_hash, + MP_QSTR__get_address_by_tag, + MP_QSTR_tz1, + MP_QSTR_tz2, + MP_QSTR_tz3, + MP_QSTR__get_address_from_contract, + MP_QSTR_tag, + MP_QSTR_Implicit, + MP_QSTR_hash, + MP_QSTR_Originated, + MP_QSTR_TEZOS_ORIGINATED_ADDRESS_PREFIX, + MP_QSTR__get_operation_bytes, + MP_QSTR_write_bytes_unchecked, + MP_QSTR_PROPOSAL_HASH_SIZE, + MP_QSTR_reveal, + MP_QSTR_branch, + MP_QSTR_BRANCH_HASH_SIZE, + MP_QSTR_public_key, + MP_QSTR_PUBLIC_KEY_TAG_TO_SIZE, + MP_QSTR_PUSH, + MP_QSTR_NONE, + MP_QSTR_to_contract, + MP_QSTR_parameters, + MP_QSTR_check_tx_params_size, + MP_QSTR_check_script_size, + MP_QSTR_script, + MP_QSTR_OP_TAG_PROPOSALS, + MP_QSTR_period, + MP_QSTR_OP_TAG_BALLOT, + MP_QSTR__encode_common, + MP_QSTR_OP_TAG_REVEAL, + MP_QSTR_OP_TAG_TRANSACTION, + MP_QSTR_OP_TAG_ORIGINATION, + MP_QSTR_OP_TAG_DELEGATION, + MP_QSTR_counter, + MP_QSTR_gas_limit, + MP_QSTR_storage_limit, + MP_QSTR__encode_data_with_bool_prefix, + MP_QSTR__encode_zarith, + MP_QSTR__encode_natural, + MP_QSTR__encode_manager_common, + MP_QSTR_DO_ENTRYPOINT_TAG, + MP_QSTR_MICHELSON_SEQUENCE_TAG, + MP_QSTR_DROP, + MP_QSTR_NIL, + MP_QSTR_operation, + MP_QSTR_address, + MP_QSTR_key_hash, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_msg, + MP_QSTR_keychain, + MP_QSTR_bool, + MP_QSTR_RuntimeError, + MP_QSTR_bytearray, + MP_QSTR_bytes, + MP_QSTR_address_hash, + MP_QSTR_int, + MP_QSTR_len, + MP_QSTR_w, + MP_QSTR_KeyError, + MP_QSTR_str_operation, + MP_QSTR_data, + MP_QSTR_expected_length, + MP_QSTR_num, + MP_QSTR_sequence_length, + MP_QSTR__star_, +}; + +// constants +static const mp_obj_str_t const_obj_apps_tezos_sign_tx_1 = {{&mp_type_str}, 16901, 27, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x74\x61\x67\x20\x69\x6e\x20\x61\x64\x64\x72\x65\x73\x73\x20\x68\x61\x73\x68"}; +static const mp_obj_str_t const_obj_apps_tezos_sign_tx_3 = {{&mp_type_str}, 55703, 25, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x74\x61\x67\x20\x69\x6e\x20\x70\x75\x62\x6c\x69\x63\x20\x6b\x65\x79"}; +static const mp_rom_obj_tuple_t const_obj_apps_tezos_sign_tx_4 = {{&mp_type_tuple}, 3, { + MP_ROM_QSTR(MP_QSTR_SOME), + MP_ROM_QSTR(MP_QSTR_SET_DELEGATE), + MP_ROM_QSTR(MP_QSTR_CONS), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_tezos_sign_tx_5 = {{&mp_type_tuple}, 2, { + MP_ROM_QSTR(MP_QSTR_SET_DELEGATE), + MP_ROM_QSTR(MP_QSTR_CONS), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_tezos_sign_tx_6 = {{&mp_type_tuple}, 3, { + MP_ROM_QSTR(MP_QSTR_IMPLICIT_ACCOUNT), + MP_ROM_QSTR(MP_QSTR_PUSH), + MP_ROM_QSTR(MP_QSTR_mutez), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_tezos_sign_tx_7 = {{&mp_type_tuple}, 3, { + MP_ROM_QSTR(MP_QSTR_UNIT), + MP_ROM_QSTR(MP_QSTR_TRANSFER_TOKENS), + MP_ROM_QSTR(MP_QSTR_CONS), +}}; +static const mp_rom_obj_tuple_t const_obj_apps_tezos_sign_tx_8 = {{&mp_type_tuple}, 5, { + MP_ROM_QSTR(MP_QSTR_CONTRACT), + MP_ROM_QSTR(MP_QSTR_unit), + MP_ROM_QSTR(MP_QSTR_ASSERT_SOME), + MP_ROM_QSTR(MP_QSTR_PUSH), + MP_ROM_QSTR(MP_QSTR_mutez), +}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_tezos_sign_tx[9] = { + MP_ROM_QSTR(MP_QSTR_Invalid_space_operation), + MP_ROM_PTR(&const_obj_apps_tezos_sign_tx_1), + MP_ROM_QSTR(MP_QSTR_Invalid_space_contract_space_type), + MP_ROM_PTR(&const_obj_apps_tezos_sign_tx_3), + MP_ROM_PTR(&const_obj_apps_tezos_sign_tx_4), + MP_ROM_PTR(&const_obj_apps_tezos_sign_tx_5), + MP_ROM_PTR(&const_obj_apps_tezos_sign_tx_6), + MP_ROM_PTR(&const_obj_apps_tezos_sign_tx_7), + MP_ROM_PTR(&const_obj_apps_tezos_sign_tx_8), +}; + +static const mp_frozen_module_t frozen_module_apps_tezos_sign_tx = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_tezos_sign_tx, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_tezos_sign_tx, + }, + .rc = &raw_code_apps_tezos_sign_tx__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_TezosBallotType +// - original source file: build/firmware/src/trezor/enums/TezosBallotType.mpy +// - frozen file name: trezor/enums/TezosBallotType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/TezosBallotType.py, scope trezor_enums_TezosBallotType__lt_module_gt_ +static const byte fun_data_trezor_enums_TezosBallotType__lt_module_gt_[18] = { + 0x00,0x0a, // prelude + 0x01, // names: + 0x60,0x20,0x23,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'Yay' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'Nay' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x04, // STORE_NAME 'Pass' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_TezosBallotType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_TezosBallotType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_TezosBallotType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_TezosBallotType__lt_module_gt_ + 7, + .opcodes = fun_data_trezor_enums_TezosBallotType__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_TezosBallotType[5] = { + MP_QSTR_trezor_slash_enums_slash_TezosBallotType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_Yay, + MP_QSTR_Nay, + MP_QSTR_Pass, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_TezosBallotType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_TezosBallotType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_TezosBallotType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module trezor_enums_TezosContractType +// - original source file: build/firmware/src/trezor/enums/TezosContractType.mpy +// - frozen file name: trezor/enums/TezosContractType.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file trezor/enums/TezosContractType.py, scope trezor_enums_TezosContractType__lt_module_gt_ +static const byte fun_data_trezor_enums_TezosContractType__lt_module_gt_[14] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x60,0x20,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x02, // STORE_NAME 'Implicit' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x03, // STORE_NAME 'Originated' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_trezor_enums_TezosContractType__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_trezor_enums_TezosContractType__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_trezor_enums_TezosContractType__lt_module_gt_ + 3, + .line_info_top = fun_data_trezor_enums_TezosContractType__lt_module_gt_ + 6, + .opcodes = fun_data_trezor_enums_TezosContractType__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_trezor_enums_TezosContractType[4] = { + MP_QSTR_trezor_slash_enums_slash_TezosContractType_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_Implicit, + MP_QSTR_Originated, +}; + +static const mp_frozen_module_t frozen_module_trezor_enums_TezosContractType = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_trezor_enums_TezosContractType, + .obj_table = NULL, + }, + .rc = &raw_code_trezor_enums_TezosContractType__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_zcash___init__ +// - original source file: build/firmware/src/apps/zcash/__init__.mpy +// - frozen file name: apps/zcash/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/zcash/__init__.py, scope apps_zcash___init____lt_module_gt_ +static const byte fun_data_apps_zcash___init____lt_module_gt_[5] = { + 0x00,0x02, // prelude + 0x01, // names: + // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_zcash___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 5, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_zcash___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_zcash___init____lt_module_gt_ + 3, + .opcodes = fun_data_apps_zcash___init____lt_module_gt_ + 3, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_zcash___init__[2] = { + MP_QSTR_apps_slash_zcash_slash___init___dot_py, + MP_QSTR__lt_module_gt_, +}; + +static const mp_frozen_module_t frozen_module_apps_zcash___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_zcash___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps_zcash___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_zcash_f4jumble +// - original source file: build/firmware/src/apps/zcash/f4jumble.mpy +// - frozen file name: apps/zcash/f4jumble.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/zcash/f4jumble.py, scope apps_zcash_f4jumble__lt_module_gt_ +static const byte fun_data_apps_zcash_f4jumble__lt_module_gt_[62] = { + 0x08,0x1c, // prelude + 0x01, // names: + 0x60,0x60,0x4c,0x6c,0x40,0x64,0x40,0x84,0x09,0x84,0x09,0x84,0x0c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'blake2b' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x04, // IMPORT_FROM 'blake2b' + 0x16,0x04, // STORE_NAME 'blake2b' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x06, // STORE_NAME 'xor' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x07, // STORE_NAME 'G_round' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0d, // STORE_NAME 'H_round' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x0f, // STORE_NAME 'f4jumble' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x10, // STORE_NAME 'f4unjumble' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_zcash_f4jumble__lt_module_gt_ +// frozen bytecode for file apps/zcash/f4jumble.py, scope apps_zcash_f4jumble_xor +static const byte fun_data_apps_zcash_f4jumble_xor[39] = { + 0x4a,0x0c, // prelude + 0x06,0x11,0x12, // names: xor, target, mask + 0x80,0x0e,0x2a, // code info + 0x12,0x13, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x4e, // JUMP 14 + 0x57, // DUP_TOP + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x58, // DUP_TOP_TWO + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x55, // LOAD_SUBSCR + 0xe1, // BINARY_OP 10 __ixor__ + 0x5b, // ROT_THREE + 0x56, // STORE_SUBSCR + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x2d, // POP_JUMP_IF_TRUE -19 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_f4jumble_xor = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_zcash_f4jumble_xor, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 6, + .line_info = fun_data_apps_zcash_f4jumble_xor + 5, + .line_info_top = fun_data_apps_zcash_f4jumble_xor + 8, + .opcodes = fun_data_apps_zcash_f4jumble_xor + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_f4jumble__lt_module_gt_ +// frozen bytecode for file apps/zcash/f4jumble.py, scope apps_zcash_f4jumble_G_round +static const byte fun_data_apps_zcash_f4jumble_G_round[105] = { + 0x6b,0x14, // prelude + 0x07,0x14,0x15,0x16, // names: G_round, i, left, right + 0x80,0x13,0x35,0x24,0x35,0x4d, // code info + 0x12,0x13, // LOAD_GLOBAL 'len' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xf2, // BINARY_OP 27 __add__ + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xc0,0x80, // JUMP 64 + 0x57, // DUP_TOP + 0xc3, // STORE_FAST 3 + 0x12,0x04, // LOAD_GLOBAL 'blake2b' + 0x10,0x08, // LOAD_CONST_STRING 'personal' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x12,0x17, // LOAD_GLOBAL 'bytes' + 0xb0, // LOAD_FAST 0 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb3, // LOAD_FAST 3 + 0x14,0x09, // LOAD_METHOD 'to_bytes' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x0a, // LOAD_CONST_STRING 'little' + 0x36,0x02, // CALL_METHOD 2 + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x0b, // LOAD_CONST_STRING 'data' + 0x12,0x17, // LOAD_GLOBAL 'bytes' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x14,0x0c, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0x12,0x06, // LOAD_GLOBAL 'xor' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xf4, // BINARY_OP 29 __mul__ + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xf4, // BINARY_OP 29 __mul__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xba,0x7f, // POP_JUMP_IF_TRUE -70 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_f4jumble_G_round = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_zcash_f4jumble_G_round, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 105, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_zcash_f4jumble_G_round + 6, + .line_info_top = fun_data_apps_zcash_f4jumble_G_round + 12, + .opcodes = fun_data_apps_zcash_f4jumble_G_round + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_f4jumble__lt_module_gt_ +// frozen bytecode for file apps/zcash/f4jumble.py, scope apps_zcash_f4jumble_H_round +static const byte fun_data_apps_zcash_f4jumble_H_round[59] = { + 0x5b,0x14, // prelude + 0x0d,0x14,0x15,0x16, // names: H_round, i, left, right + 0x80,0x1c,0x24,0x2e,0x27,0x4d, // code info + 0x12,0x04, // LOAD_GLOBAL 'blake2b' + 0x10,0x08, // LOAD_CONST_STRING 'personal' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x12,0x17, // LOAD_GLOBAL 'bytes' + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x03, // BUILD_LIST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x10,0x0e, // LOAD_CONST_STRING 'outlen' + 0x12,0x13, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x0b, // LOAD_CONST_STRING 'data' + 0x12,0x17, // LOAD_GLOBAL 'bytes' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x86,0x00, // CALL_FUNCTION 768 + 0x14,0x0c, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0x12,0x06, // LOAD_GLOBAL 'xor' + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_f4jumble_H_round = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_zcash_f4jumble_H_round, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_zcash_f4jumble_H_round + 6, + .line_info_top = fun_data_apps_zcash_f4jumble_H_round + 12, + .opcodes = fun_data_apps_zcash_f4jumble_H_round + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_f4jumble__lt_module_gt_ +// frozen bytecode for file apps/zcash/f4jumble.py, scope apps_zcash_f4jumble_f4jumble +static const byte fun_data_apps_zcash_f4jumble_f4jumble[76] = { + 0x39,0x16, // prelude + 0x0f,0x18, // names: f4jumble, message + 0x80,0x25,0x20,0x4f,0x27,0x27,0x28,0x28,0x28, // code info + 0x12,0x19, // LOAD_GLOBAL 'min' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x12,0x13, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x34,0x02, // CALL_FUNCTION 2 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc3, // STORE_FAST 3 + 0x12,0x07, // LOAD_GLOBAL 'G_round' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x0d, // LOAD_GLOBAL 'H_round' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'G_round' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x0d, // LOAD_GLOBAL 'H_round' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_f4jumble_f4jumble = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_zcash_f4jumble_f4jumble, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 76, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_zcash_f4jumble_f4jumble + 4, + .line_info_top = fun_data_apps_zcash_f4jumble_f4jumble + 13, + .opcodes = fun_data_apps_zcash_f4jumble_f4jumble + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_f4jumble__lt_module_gt_ +// frozen bytecode for file apps/zcash/f4jumble.py, scope apps_zcash_f4jumble_f4unjumble +static const byte fun_data_apps_zcash_f4jumble_f4unjumble[76] = { + 0x39,0x16, // prelude + 0x10,0x18, // names: f4unjumble, message + 0x80,0x31,0x20,0x4f,0x27,0x27,0x28,0x28,0x28, // code info + 0x12,0x19, // LOAD_GLOBAL 'min' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x12,0x13, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xf6, // BINARY_OP 31 __floordiv__ + 0x34,0x02, // CALL_FUNCTION 2 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc3, // STORE_FAST 3 + 0x12,0x0d, // LOAD_GLOBAL 'H_round' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'G_round' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x0d, // LOAD_GLOBAL 'H_round' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x07, // LOAD_GLOBAL 'G_round' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_f4jumble_f4unjumble = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_zcash_f4jumble_f4unjumble, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 76, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_zcash_f4jumble_f4unjumble + 4, + .line_info_top = fun_data_apps_zcash_f4jumble_f4unjumble + 13, + .opcodes = fun_data_apps_zcash_f4jumble_f4unjumble + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_zcash_f4jumble__lt_module_gt_[] = { + &raw_code_apps_zcash_f4jumble_xor, + &raw_code_apps_zcash_f4jumble_G_round, + &raw_code_apps_zcash_f4jumble_H_round, + &raw_code_apps_zcash_f4jumble_f4jumble, + &raw_code_apps_zcash_f4jumble_f4unjumble, +}; + +static const mp_raw_code_t raw_code_apps_zcash_f4jumble__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_zcash_f4jumble__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 62, + #endif + .children = (void *)&children_apps_zcash_f4jumble__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_zcash_f4jumble__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_zcash_f4jumble__lt_module_gt_ + 16, + .opcodes = fun_data_apps_zcash_f4jumble__lt_module_gt_ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_zcash_f4jumble[26] = { + MP_QSTR_apps_slash_zcash_slash_f4jumble_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_blake2b, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_xor, + MP_QSTR_G_round, + MP_QSTR_personal, + MP_QSTR_to_bytes, + MP_QSTR_little, + MP_QSTR_data, + MP_QSTR_digest, + MP_QSTR_H_round, + MP_QSTR_outlen, + MP_QSTR_f4jumble, + MP_QSTR_f4unjumble, + MP_QSTR_target, + MP_QSTR_mask, + MP_QSTR_len, + MP_QSTR_i, + MP_QSTR_left, + MP_QSTR_right, + MP_QSTR_bytes, + MP_QSTR_message, + MP_QSTR_min, +}; + +// constants +static const mp_obj_str_t const_obj_apps_zcash_f4jumble_0 = {{&mp_type_bytes}, 39773, 13, (const byte*)"\x55\x41\x5f\x46\x34\x4a\x75\x6d\x62\x6c\x65\x5f\x47"}; +static const mp_obj_str_t const_obj_apps_zcash_f4jumble_1 = {{&mp_type_bytes}, 39762, 13, (const byte*)"\x55\x41\x5f\x46\x34\x4a\x75\x6d\x62\x6c\x65\x5f\x48"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_zcash_f4jumble[2] = { + MP_ROM_PTR(&const_obj_apps_zcash_f4jumble_0), + MP_ROM_PTR(&const_obj_apps_zcash_f4jumble_1), +}; + +static const mp_frozen_module_t frozen_module_apps_zcash_f4jumble = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_zcash_f4jumble, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_zcash_f4jumble, + }, + .rc = &raw_code_apps_zcash_f4jumble__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_zcash_hasher +// - original source file: build/firmware/src/apps/zcash/hasher.mpy +// - frozen file name: apps/zcash/hasher.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher__lt_module_gt_ +static const byte fun_data_apps_zcash_hasher__lt_module_gt_[157] = { + 0x40,0x34, // prelude + 0x01, // names: + 0x80,0x09,0x4c,0x1f,0x77,0x80,0x08,0x80,0x0a,0x64,0x20,0x64,0x40,0x64,0x60,0x89,0x54,0x89,0x19,0x89,0x4f,0x84,0x17,0x89,0x0e, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'blake2b' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x02, // IMPORT_FROM 'blake2b' + 0x16,0x02, // STORE_NAME 'blake2b' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'TX_HASH_SIZE' + 0x10,0x05, // LOAD_CONST_STRING 'write_bytes_fixed' + 0x10,0x06, // LOAD_CONST_STRING 'write_bytes_prefixed' + 0x10,0x07, // LOAD_CONST_STRING 'write_bytes_reversed' + 0x10,0x08, // LOAD_CONST_STRING 'write_tx_output' + 0x10,0x09, // LOAD_CONST_STRING 'write_uint8' + 0x10,0x0a, // LOAD_CONST_STRING 'write_uint32' + 0x10,0x0b, // LOAD_CONST_STRING 'write_uint64' + 0x2a,0x08, // BUILD_TUPLE 8 + 0x1b,0x0c, // IMPORT_NAME 'apps.bitcoin.writers' + 0x1c,0x04, // IMPORT_FROM 'TX_HASH_SIZE' + 0x16,0x04, // STORE_NAME 'TX_HASH_SIZE' + 0x1c,0x05, // IMPORT_FROM 'write_bytes_fixed' + 0x16,0x05, // STORE_NAME 'write_bytes_fixed' + 0x1c,0x06, // IMPORT_FROM 'write_bytes_prefixed' + 0x16,0x06, // STORE_NAME 'write_bytes_prefixed' + 0x1c,0x07, // IMPORT_FROM 'write_bytes_reversed' + 0x16,0x07, // STORE_NAME 'write_bytes_reversed' + 0x1c,0x08, // IMPORT_FROM 'write_tx_output' + 0x16,0x08, // STORE_NAME 'write_tx_output' + 0x1c,0x09, // IMPORT_FROM 'write_uint8' + 0x16,0x09, // STORE_NAME 'write_uint8' + 0x1c,0x0a, // IMPORT_FROM 'write_uint32' + 0x16,0x0a, // STORE_NAME 'write_uint32' + 0x1c,0x0b, // IMPORT_FROM 'write_uint64' + 0x16,0x0b, // STORE_NAME 'write_uint64' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x12, // STORE_NAME 'write_hash' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x13, // STORE_NAME 'write_prevout' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x16, // STORE_NAME 'blake_hash_writer_32' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x03, // MAKE_FUNCTION 3 + 0x10,0x0d, // LOAD_CONST_STRING 'ZcashHasher' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x0d, // STORE_NAME 'ZcashHasher' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x04, // MAKE_FUNCTION 4 + 0x10,0x0e, // LOAD_CONST_STRING 'HeaderHasher' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x0e, // STORE_NAME 'HeaderHasher' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x05, // MAKE_FUNCTION 5 + 0x10,0x0f, // LOAD_CONST_STRING 'TransparentHasher' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x0f, // STORE_NAME 'TransparentHasher' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x1b, // STORE_NAME '_txin_sig_digest' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x07, // MAKE_FUNCTION 7 + 0x10,0x10, // LOAD_CONST_STRING 'SaplingHasher' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x10, // STORE_NAME 'SaplingHasher' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x08, // MAKE_FUNCTION 8 + 0x10,0x11, // LOAD_CONST_STRING 'OrchardHasher' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x11, // STORE_NAME 'OrchardHasher' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_zcash_hasher__lt_module_gt_ +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_write_hash +static const byte fun_data_apps_zcash_hasher_write_hash[18] = { + 0x2a,0x0a, // prelude + 0x12,0x3c,0x3d, // names: write_hash, w, hash + 0x80,0x21, // code info + 0x12,0x05, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x12,0x04, // LOAD_GLOBAL 'TX_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher_write_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_zcash_hasher_write_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_zcash_hasher_write_hash + 5, + .line_info_top = fun_data_apps_zcash_hasher_write_hash + 7, + .opcodes = fun_data_apps_zcash_hasher_write_hash + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_hasher__lt_module_gt_ +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_write_prevout +static const byte fun_data_apps_zcash_hasher_write_prevout[30] = { + 0x2a,0x0c, // prelude + 0x13,0x3c,0x3e, // names: write_prevout, w, txi + 0x80,0x25,0x2b, // code info + 0x12,0x07, // LOAD_GLOBAL 'write_bytes_reversed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x14, // LOAD_ATTR 'prev_hash' + 0x12,0x04, // LOAD_GLOBAL 'TX_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x15, // LOAD_ATTR 'prev_index' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher_write_prevout = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_zcash_hasher_write_prevout, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_zcash_hasher_write_prevout + 5, + .line_info_top = fun_data_apps_zcash_hasher_write_prevout + 8, + .opcodes = fun_data_apps_zcash_hasher_write_prevout + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_hasher__lt_module_gt_ +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_blake_hash_writer_32 +static const byte fun_data_apps_zcash_hasher_blake_hash_writer_32[33] = { + 0x39,0x0a, // prelude + 0x16,0x1a, // names: blake_hash_writer_32, personal + 0x80,0x2a,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING 'HashWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME 'trezor.utils' + 0x1c,0x17, // IMPORT_FROM 'HashWriter' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x12,0x02, // LOAD_GLOBAL 'blake2b' + 0x10,0x19, // LOAD_CONST_STRING 'outlen' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x10,0x1a, // LOAD_CONST_STRING 'personal' + 0xb0, // LOAD_FAST 0 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher_blake_hash_writer_32 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_zcash_hasher_blake_hash_writer_32, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 22, + .line_info = fun_data_apps_zcash_hasher_blake_hash_writer_32 + 4, + .line_info_top = fun_data_apps_zcash_hasher_blake_hash_writer_32 + 7, + .opcodes = fun_data_apps_zcash_hasher_blake_hash_writer_32 + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_hasher__lt_module_gt_ +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_ZcashHasher +static const byte fun_data_apps_zcash_hasher_ZcashHasher[55] = { + 0x00,0x1e, // prelude + 0x0d, // names: ZcashHasher + 0x88,0x30,0x84,0x10,0x80,0x0f,0x84,0x13,0x64,0x64,0x84,0x0b,0x84,0x08, // code info + 0x11,0x3f, // LOAD_NAME '__name__' + 0x16,0x40, // STORE_NAME '__module__' + 0x10,0x0d, // LOAD_CONST_STRING 'ZcashHasher' + 0x16,0x41, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x1f, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x27, // STORE_NAME 'signature_digest' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x2a, // STORE_NAME 'add_input' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x2b, // STORE_NAME 'add_output' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x2c, // STORE_NAME 'hash143' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x2d, // STORE_NAME 'hash341' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x2e, // STORE_NAME 'hash_zip244' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_zcash_hasher_ZcashHasher +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_ZcashHasher___init__ +static const byte fun_data_apps_zcash_hasher_ZcashHasher___init__[89] = { + 0x3a,0x1c, // prelude + 0x1f,0x43,0x44, // names: __init__, self, tx + 0x80,0x31,0x4b,0x28,0x27,0x27,0x47,0x20,0x25,0x29,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x20, // LOAD_CONST_STRING 'empty_bytearray' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME 'trezor.utils' + 0x1c,0x20, // IMPORT_FROM 'empty_bytearray' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'HeaderHasher' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x21, // STORE_ATTR 'header' + 0x12,0x0f, // LOAD_GLOBAL 'TransparentHasher' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x22, // STORE_ATTR 'transparent' + 0x12,0x10, // LOAD_GLOBAL 'SaplingHasher' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x23, // STORE_ATTR 'sapling' + 0x12,0x11, // LOAD_GLOBAL 'OrchardHasher' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x24, // STORE_ATTR 'orchard' + 0xb2, // LOAD_FAST 2 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x12,0x05, // LOAD_GLOBAL 'write_bytes_fixed' + 0xb3, // LOAD_FAST 3 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'write_uint32' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x25, // LOAD_ATTR 'branch_id' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x45, // LOAD_GLOBAL 'bytes' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x26, // STORE_ATTR 'tx_hash_person' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher_ZcashHasher___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_zcash_hasher_ZcashHasher___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 89, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_zcash_hasher_ZcashHasher___init__ + 5, + .line_info_top = fun_data_apps_zcash_hasher_ZcashHasher___init__ + 16, + .opcodes = fun_data_apps_zcash_hasher_ZcashHasher___init__ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_hasher_ZcashHasher +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_ZcashHasher_signature_digest +static const byte fun_data_apps_zcash_hasher_ZcashHasher_signature_digest[83] = { + 0x4b,0x1a, // prelude + 0x27,0x43,0x3e,0x42, // names: signature_digest, self, txi, script_pubkey + 0x80,0x52,0x60,0x40,0x48,0x2d,0x2f,0x2d,0x4d, // code info + 0x12,0x16, // LOAD_GLOBAL 'blake_hash_writer_32' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'tx_hash_person' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0x12,0x12, // LOAD_GLOBAL 'write_hash' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x21, // LOAD_ATTR 'header' + 0x14,0x28, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'write_hash' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'transparent' + 0x14,0x29, // LOAD_METHOD 'sig_digest' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'write_hash' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'sapling' + 0x14,0x28, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'write_hash' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x24, // LOAD_ATTR 'orchard' + 0x14,0x28, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x1e, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher_ZcashHasher_signature_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_zcash_hasher_ZcashHasher_signature_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 83, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_zcash_hasher_ZcashHasher_signature_digest + 6, + .line_info_top = fun_data_apps_zcash_hasher_ZcashHasher_signature_digest + 15, + .opcodes = fun_data_apps_zcash_hasher_ZcashHasher_signature_digest + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_hasher_ZcashHasher +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_ZcashHasher_add_input +static const byte fun_data_apps_zcash_hasher_ZcashHasher_add_input[20] = { + 0x33,0x0c, // prelude + 0x2a,0x43,0x3e,0x42, // names: add_input, self, txi, script_pubkey + 0x80,0x63, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'transparent' + 0x14,0x2a, // LOAD_METHOD 'add_input' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher_ZcashHasher_add_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_zcash_hasher_ZcashHasher_add_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_zcash_hasher_ZcashHasher_add_input + 6, + .line_info_top = fun_data_apps_zcash_hasher_ZcashHasher_add_input + 8, + .opcodes = fun_data_apps_zcash_hasher_ZcashHasher_add_input + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_hasher_ZcashHasher +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_ZcashHasher_add_output +static const byte fun_data_apps_zcash_hasher_ZcashHasher_add_output[20] = { + 0x33,0x0c, // prelude + 0x2b,0x43,0x46,0x42, // names: add_output, self, txo, script_pubkey + 0x80,0x66, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x22, // LOAD_ATTR 'transparent' + 0x14,0x2b, // LOAD_METHOD 'add_output' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher_ZcashHasher_add_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_zcash_hasher_ZcashHasher_add_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_apps_zcash_hasher_ZcashHasher_add_output + 6, + .line_info_top = fun_data_apps_zcash_hasher_ZcashHasher_add_output + 8, + .opcodes = fun_data_apps_zcash_hasher_ZcashHasher_add_output + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_hasher_ZcashHasher +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_ZcashHasher_hash143 +static const byte fun_data_apps_zcash_hasher_ZcashHasher_hash143[18] = { + 0xbb,0x04,0x14, // prelude + 0x2c,0x43,0x3e,0x47,0x48,0x44,0x49,0x4a, // names: hash143, self, txi, public_keys, threshold, tx, coin, hash_type + 0x80,0x71, // code info + 0x12,0x4b, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher_ZcashHasher_hash143 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 7, + .fun_data = fun_data_apps_zcash_hasher_ZcashHasher_hash143, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 44, + .line_info = fun_data_apps_zcash_hasher_ZcashHasher_hash143 + 11, + .line_info_top = fun_data_apps_zcash_hasher_ZcashHasher_hash143 + 13, + .opcodes = fun_data_apps_zcash_hasher_ZcashHasher_hash143 + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_hasher_ZcashHasher +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_ZcashHasher_hash341 +static const byte fun_data_apps_zcash_hasher_ZcashHasher_hash341[15] = { + 0xa0,0x04,0x0e, // prelude + 0x2d,0x43,0x4c,0x44,0x4d, // names: hash341, self, i, tx, sighash_type + 0x80,0x79, // code info + 0x12,0x4b, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher_ZcashHasher_hash341 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_zcash_hasher_ZcashHasher_hash341, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_zcash_hasher_ZcashHasher_hash341 + 8, + .line_info_top = fun_data_apps_zcash_hasher_ZcashHasher_hash341 + 10, + .opcodes = fun_data_apps_zcash_hasher_ZcashHasher_hash341 + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_hasher_ZcashHasher +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_ZcashHasher_hash_zip244 +static const byte fun_data_apps_zcash_hasher_ZcashHasher_hash_zip244[16] = { + 0x33,0x0c, // prelude + 0x2e,0x43,0x3e,0x42, // names: hash_zip244, self, txi, script_pubkey + 0x80,0x80, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x27, // LOAD_METHOD 'signature_digest' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher_ZcashHasher_hash_zip244 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_zcash_hasher_ZcashHasher_hash_zip244, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_zcash_hasher_ZcashHasher_hash_zip244 + 6, + .line_info_top = fun_data_apps_zcash_hasher_ZcashHasher_hash_zip244 + 8, + .opcodes = fun_data_apps_zcash_hasher_ZcashHasher_hash_zip244 + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_zcash_hasher_ZcashHasher[] = { + &raw_code_apps_zcash_hasher_ZcashHasher___init__, + &raw_code_apps_zcash_hasher_ZcashHasher_signature_digest, + &raw_code_apps_zcash_hasher_ZcashHasher_add_input, + &raw_code_apps_zcash_hasher_ZcashHasher_add_output, + &raw_code_apps_zcash_hasher_ZcashHasher_hash143, + &raw_code_apps_zcash_hasher_ZcashHasher_hash341, + &raw_code_apps_zcash_hasher_ZcashHasher_hash_zip244, +}; + +static const mp_raw_code_t raw_code_apps_zcash_hasher_ZcashHasher = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_zcash_hasher_ZcashHasher, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 55, + #endif + .children = (void *)&children_apps_zcash_hasher_ZcashHasher, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 7, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_zcash_hasher_ZcashHasher + 3, + .line_info_top = fun_data_apps_zcash_hasher_ZcashHasher + 17, + .opcodes = fun_data_apps_zcash_hasher_ZcashHasher + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_hasher__lt_module_gt_ +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_HeaderHasher +static const byte fun_data_apps_zcash_hasher_HeaderHasher[25] = { + 0x00,0x0a, // prelude + 0x0e, // names: HeaderHasher + 0x88,0x84,0x84,0x0f, // code info + 0x11,0x3f, // LOAD_NAME '__name__' + 0x16,0x40, // STORE_NAME '__module__' + 0x10,0x0e, // LOAD_CONST_STRING 'HeaderHasher' + 0x16,0x41, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x1f, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x28, // STORE_NAME 'digest' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_zcash_hasher_HeaderHasher +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_HeaderHasher___init__ +static const byte fun_data_apps_zcash_hasher_HeaderHasher___init__[81] = { + 0x32,0x1c, // prelude + 0x1f,0x43,0x44, // names: __init__, self, tx + 0x80,0x85,0x47,0x20,0x20,0x40,0x2c,0x29,0x29,0x29,0x49, // code info + 0x12,0x16, // LOAD_GLOBAL 'blake_hash_writer_32' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0x12,0x0a, // LOAD_GLOBAL 'write_uint32' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x2f, // LOAD_ATTR 'version' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xed, // BINARY_OP 22 __or__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'write_uint32' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x30, // LOAD_ATTR 'version_group_id' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'write_uint32' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x25, // LOAD_ATTR 'branch_id' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'write_uint32' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x31, // LOAD_ATTR 'lock_time' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'write_uint32' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x32, // LOAD_ATTR 'expiry' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x1e, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x33, // STORE_ATTR '_digest' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher_HeaderHasher___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_zcash_hasher_HeaderHasher___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 81, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_zcash_hasher_HeaderHasher___init__ + 5, + .line_info_top = fun_data_apps_zcash_hasher_HeaderHasher___init__ + 16, + .opcodes = fun_data_apps_zcash_hasher_HeaderHasher___init__ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_hasher_HeaderHasher +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_HeaderHasher_digest +static const byte fun_data_apps_zcash_hasher_HeaderHasher_digest[12] = { + 0x09,0x0c, // prelude + 0x28,0x43, // names: digest, self + 0x80,0x94,0x60,0x40, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x33, // LOAD_ATTR '_digest' + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher_HeaderHasher_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_zcash_hasher_HeaderHasher_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_zcash_hasher_HeaderHasher_digest + 4, + .line_info_top = fun_data_apps_zcash_hasher_HeaderHasher_digest + 8, + .opcodes = fun_data_apps_zcash_hasher_HeaderHasher_digest + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_zcash_hasher_HeaderHasher[] = { + &raw_code_apps_zcash_hasher_HeaderHasher___init__, + &raw_code_apps_zcash_hasher_HeaderHasher_digest, +}; + +static const mp_raw_code_t raw_code_apps_zcash_hasher_HeaderHasher = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_zcash_hasher_HeaderHasher, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = (void *)&children_apps_zcash_hasher_HeaderHasher, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_zcash_hasher_HeaderHasher + 3, + .line_info_top = fun_data_apps_zcash_hasher_HeaderHasher + 7, + .opcodes = fun_data_apps_zcash_hasher_HeaderHasher + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_hasher__lt_module_gt_ +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_TransparentHasher +static const byte fun_data_apps_zcash_hasher_TransparentHasher[43] = { + 0x00,0x16, // prelude + 0x0f, // names: TransparentHasher + 0x88,0x9d,0x84,0x12,0x84,0x08,0x64,0x40,0x84,0x0f, // code info + 0x11,0x3f, // LOAD_NAME '__name__' + 0x16,0x40, // STORE_NAME '__module__' + 0x10,0x0f, // LOAD_CONST_STRING 'TransparentHasher' + 0x16,0x41, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x1f, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x2a, // STORE_NAME 'add_input' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x2b, // STORE_NAME 'add_output' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x28, // STORE_NAME 'digest' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x29, // STORE_NAME 'sig_digest' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_zcash_hasher_TransparentHasher +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_TransparentHasher___init__ +static const byte fun_data_apps_zcash_hasher_TransparentHasher___init__[62] = { + 0x11,0x12, // prelude + 0x1f,0x43, // names: __init__, self + 0x80,0x9f,0x69,0x69,0x69,0x69,0x49, // code info + 0x12,0x16, // LOAD_GLOBAL 'blake_hash_writer_32' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x34, // STORE_ATTR 'prevouts' + 0x12,0x16, // LOAD_GLOBAL 'blake_hash_writer_32' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x35, // STORE_ATTR 'amounts' + 0x12,0x16, // LOAD_GLOBAL 'blake_hash_writer_32' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x36, // STORE_ATTR 'scriptpubkeys' + 0x12,0x16, // LOAD_GLOBAL 'blake_hash_writer_32' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x1d, // STORE_ATTR 'sequence' + 0x12,0x16, // LOAD_GLOBAL 'blake_hash_writer_32' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x37, // STORE_ATTR 'outputs' + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x38, // STORE_ATTR 'empty' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher_TransparentHasher___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_zcash_hasher_TransparentHasher___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 62, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_zcash_hasher_TransparentHasher___init__ + 4, + .line_info_top = fun_data_apps_zcash_hasher_TransparentHasher___init__ + 11, + .opcodes = fun_data_apps_zcash_hasher_TransparentHasher___init__ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_hasher_TransparentHasher +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_TransparentHasher_add_input +static const byte fun_data_apps_zcash_hasher_TransparentHasher_add_input[58] = { + 0x2b,0x14, // prelude + 0x2a,0x43,0x3e,0x42, // names: add_input, self, txi, script_pubkey + 0x80,0xb0,0x44,0x29,0x2b,0x29, // code info + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x38, // STORE_ATTR 'empty' + 0x12,0x13, // LOAD_GLOBAL 'write_prevout' + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'prevouts' + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'write_uint64' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'amounts' + 0xb1, // LOAD_FAST 1 + 0x13,0x1c, // LOAD_ATTR 'amount' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'scriptpubkeys' + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'sequence' + 0xb1, // LOAD_FAST 1 + 0x13,0x1d, // LOAD_ATTR 'sequence' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher_TransparentHasher_add_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_zcash_hasher_TransparentHasher_add_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 58, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_zcash_hasher_TransparentHasher_add_input + 6, + .line_info_top = fun_data_apps_zcash_hasher_TransparentHasher_add_input + 12, + .opcodes = fun_data_apps_zcash_hasher_TransparentHasher_add_input + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_hasher_TransparentHasher +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_TransparentHasher_add_output +static const byte fun_data_apps_zcash_hasher_TransparentHasher_add_output[25] = { + 0x33,0x0e, // prelude + 0x2b,0x43,0x46,0x42, // names: add_output, self, txo, script_pubkey + 0x80,0xb8,0x44, // code info + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x38, // STORE_ATTR 'empty' + 0x12,0x08, // LOAD_GLOBAL 'write_tx_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'outputs' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher_TransparentHasher_add_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_zcash_hasher_TransparentHasher_add_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_apps_zcash_hasher_TransparentHasher_add_output + 6, + .line_info_top = fun_data_apps_zcash_hasher_TransparentHasher_add_output + 9, + .opcodes = fun_data_apps_zcash_hasher_TransparentHasher_add_output + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_hasher_TransparentHasher +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_TransparentHasher_digest +static const byte fun_data_apps_zcash_hasher_TransparentHasher_digest[70] = { + 0x29,0x16, // prelude + 0x28,0x43, // names: digest, self + 0x80,0xbd,0x60,0x40,0x47,0x25,0x2d,0x2d,0x4d, // code info + 0x12,0x16, // LOAD_GLOBAL 'blake_hash_writer_32' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'empty' + 0x43,0x67, // POP_JUMP_IF_TRUE 39 + 0x12,0x12, // LOAD_GLOBAL 'write_hash' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'prevouts' + 0x14,0x1e, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'write_hash' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'sequence' + 0x14,0x1e, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'write_hash' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'outputs' + 0x14,0x1e, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x1e, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher_TransparentHasher_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_zcash_hasher_TransparentHasher_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_zcash_hasher_TransparentHasher_digest + 4, + .line_info_top = fun_data_apps_zcash_hasher_TransparentHasher_digest + 13, + .opcodes = fun_data_apps_zcash_hasher_TransparentHasher_digest + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_hasher_TransparentHasher +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_TransparentHasher_sig_digest +static const byte fun_data_apps_zcash_hasher_TransparentHasher_sig_digest[144] = { + 0x4b,0x2a, // prelude + 0x29,0x43,0x3e,0x42, // names: sig_digest, self, txi, script_pubkey + 0x80,0xd0,0x60,0x60,0x4b,0x25,0x20,0x20,0x46,0x67,0x29,0x2d,0x2d,0x2d,0x2d,0x2d,0x4c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x39, // LOAD_CONST_STRING 'SigHashType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x3a, // IMPORT_NAME 'apps.bitcoin.common' + 0x1c,0x39, // IMPORT_FROM 'SigHashType' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x38, // LOAD_ATTR 'empty' + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb0, // LOAD_FAST 0 + 0x14,0x28, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE + 0x12,0x16, // LOAD_GLOBAL 'blake_hash_writer_32' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0x12,0x09, // LOAD_GLOBAL 'write_uint8' + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x13,0x3b, // LOAD_ATTR 'SIGHASH_ALL' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'write_hash' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x34, // LOAD_ATTR 'prevouts' + 0x14,0x1e, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'write_hash' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'amounts' + 0x14,0x1e, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'write_hash' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x36, // LOAD_ATTR 'scriptpubkeys' + 0x14,0x1e, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'write_hash' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'sequence' + 0x14,0x1e, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'write_hash' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'outputs' + 0x14,0x1e, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'write_hash' + 0xb4, // LOAD_FAST 4 + 0x12,0x1b, // LOAD_GLOBAL '_txin_sig_digest' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x1e, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher_TransparentHasher_sig_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_zcash_hasher_TransparentHasher_sig_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 144, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_zcash_hasher_TransparentHasher_sig_digest + 6, + .line_info_top = fun_data_apps_zcash_hasher_TransparentHasher_sig_digest + 23, + .opcodes = fun_data_apps_zcash_hasher_TransparentHasher_sig_digest + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_zcash_hasher_TransparentHasher[] = { + &raw_code_apps_zcash_hasher_TransparentHasher___init__, + &raw_code_apps_zcash_hasher_TransparentHasher_add_input, + &raw_code_apps_zcash_hasher_TransparentHasher_add_output, + &raw_code_apps_zcash_hasher_TransparentHasher_digest, + &raw_code_apps_zcash_hasher_TransparentHasher_sig_digest, +}; + +static const mp_raw_code_t raw_code_apps_zcash_hasher_TransparentHasher = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_zcash_hasher_TransparentHasher, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 43, + #endif + .children = (void *)&children_apps_zcash_hasher_TransparentHasher, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_zcash_hasher_TransparentHasher + 3, + .line_info_top = fun_data_apps_zcash_hasher_TransparentHasher + 13, + .opcodes = fun_data_apps_zcash_hasher_TransparentHasher + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_hasher__lt_module_gt_ +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher__txin_sig_digest +static const byte fun_data_apps_zcash_hasher__txin_sig_digest[67] = { + 0x2a,0x1c, // prelude + 0x1b,0x3e,0x42, // names: _txin_sig_digest, txi, script_pubkey + 0x80,0xef,0x60,0x60,0x47,0x26,0x40,0x27,0x29,0x27,0x49, // code info + 0x12,0x16, // LOAD_GLOBAL 'blake_hash_writer_32' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x60, // POP_JUMP_IF_FALSE 32 + 0x12,0x13, // LOAD_GLOBAL 'write_prevout' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0b, // LOAD_GLOBAL 'write_uint64' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x1c, // LOAD_ATTR 'amount' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'write_bytes_prefixed' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0a, // LOAD_GLOBAL 'write_uint32' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'sequence' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x1e, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher__txin_sig_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_zcash_hasher__txin_sig_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 67, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 27, + .line_info = fun_data_apps_zcash_hasher__txin_sig_digest + 5, + .line_info_top = fun_data_apps_zcash_hasher__txin_sig_digest + 16, + .opcodes = fun_data_apps_zcash_hasher__txin_sig_digest + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_hasher__lt_module_gt_ +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_SaplingHasher +static const byte fun_data_apps_zcash_hasher_SaplingHasher[21] = { + 0x00,0x0a, // prelude + 0x10, // names: SaplingHasher + 0x98,0x03,0x60,0x20, // code info + 0x11,0x3f, // LOAD_NAME '__name__' + 0x16,0x40, // STORE_NAME '__module__' + 0x10,0x10, // LOAD_CONST_STRING 'SaplingHasher' + 0x16,0x41, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x28, // STORE_NAME 'digest' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_zcash_hasher_SaplingHasher +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_SaplingHasher_digest +static const byte fun_data_apps_zcash_hasher_SaplingHasher_digest[25] = { + 0x29,0x0c, // prelude + 0x28,0x43, // names: digest, self + 0x90,0x08,0x60,0x40, // code info + 0x12,0x02, // LOAD_GLOBAL 'blake2b' + 0x10,0x19, // LOAD_CONST_STRING 'outlen' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x10,0x1a, // LOAD_CONST_STRING 'personal' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x14,0x28, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher_SaplingHasher_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_zcash_hasher_SaplingHasher_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_zcash_hasher_SaplingHasher_digest + 4, + .line_info_top = fun_data_apps_zcash_hasher_SaplingHasher_digest + 8, + .opcodes = fun_data_apps_zcash_hasher_SaplingHasher_digest + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_zcash_hasher_SaplingHasher[] = { + &raw_code_apps_zcash_hasher_SaplingHasher_digest, +}; + +static const mp_raw_code_t raw_code_apps_zcash_hasher_SaplingHasher = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_zcash_hasher_SaplingHasher, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = (void *)&children_apps_zcash_hasher_SaplingHasher, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_zcash_hasher_SaplingHasher + 3, + .line_info_top = fun_data_apps_zcash_hasher_SaplingHasher + 7, + .opcodes = fun_data_apps_zcash_hasher_SaplingHasher + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_hasher__lt_module_gt_ +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_OrchardHasher +static const byte fun_data_apps_zcash_hasher_OrchardHasher[21] = { + 0x00,0x0a, // prelude + 0x11, // names: OrchardHasher + 0x98,0x11,0x60,0x20, // code info + 0x11,0x3f, // LOAD_NAME '__name__' + 0x16,0x40, // STORE_NAME '__module__' + 0x10,0x11, // LOAD_CONST_STRING 'OrchardHasher' + 0x16,0x41, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x28, // STORE_NAME 'digest' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_zcash_hasher_OrchardHasher +// frozen bytecode for file apps/zcash/hasher.py, scope apps_zcash_hasher_OrchardHasher_digest +static const byte fun_data_apps_zcash_hasher_OrchardHasher_digest[25] = { + 0x29,0x0c, // prelude + 0x28,0x43, // names: digest, self + 0x90,0x16,0x60,0x40, // code info + 0x12,0x02, // LOAD_GLOBAL 'blake2b' + 0x10,0x19, // LOAD_CONST_STRING 'outlen' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x10,0x1a, // LOAD_CONST_STRING 'personal' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x14,0x28, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_hasher_OrchardHasher_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_zcash_hasher_OrchardHasher_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_zcash_hasher_OrchardHasher_digest + 4, + .line_info_top = fun_data_apps_zcash_hasher_OrchardHasher_digest + 8, + .opcodes = fun_data_apps_zcash_hasher_OrchardHasher_digest + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_zcash_hasher_OrchardHasher[] = { + &raw_code_apps_zcash_hasher_OrchardHasher_digest, +}; + +static const mp_raw_code_t raw_code_apps_zcash_hasher_OrchardHasher = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_zcash_hasher_OrchardHasher, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = (void *)&children_apps_zcash_hasher_OrchardHasher, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_apps_zcash_hasher_OrchardHasher + 3, + .line_info_top = fun_data_apps_zcash_hasher_OrchardHasher + 7, + .opcodes = fun_data_apps_zcash_hasher_OrchardHasher + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_zcash_hasher__lt_module_gt_[] = { + &raw_code_apps_zcash_hasher_write_hash, + &raw_code_apps_zcash_hasher_write_prevout, + &raw_code_apps_zcash_hasher_blake_hash_writer_32, + &raw_code_apps_zcash_hasher_ZcashHasher, + &raw_code_apps_zcash_hasher_HeaderHasher, + &raw_code_apps_zcash_hasher_TransparentHasher, + &raw_code_apps_zcash_hasher__txin_sig_digest, + &raw_code_apps_zcash_hasher_SaplingHasher, + &raw_code_apps_zcash_hasher_OrchardHasher, +}; + +static const mp_raw_code_t raw_code_apps_zcash_hasher__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_zcash_hasher__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 157, + #endif + .children = (void *)&children_apps_zcash_hasher__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 9, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_zcash_hasher__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_zcash_hasher__lt_module_gt_ + 28, + .opcodes = fun_data_apps_zcash_hasher__lt_module_gt_ + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_zcash_hasher[78] = { + MP_QSTR_apps_slash_zcash_slash_hasher_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_blake2b, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_TX_HASH_SIZE, + MP_QSTR_write_bytes_fixed, + MP_QSTR_write_bytes_prefixed, + MP_QSTR_write_bytes_reversed, + MP_QSTR_write_tx_output, + MP_QSTR_write_uint8, + MP_QSTR_write_uint32, + MP_QSTR_write_uint64, + MP_QSTR_apps_dot_bitcoin_dot_writers, + MP_QSTR_ZcashHasher, + MP_QSTR_HeaderHasher, + MP_QSTR_TransparentHasher, + MP_QSTR_SaplingHasher, + MP_QSTR_OrchardHasher, + MP_QSTR_write_hash, + MP_QSTR_write_prevout, + MP_QSTR_prev_hash, + MP_QSTR_prev_index, + MP_QSTR_blake_hash_writer_32, + MP_QSTR_HashWriter, + MP_QSTR_trezor_dot_utils, + MP_QSTR_outlen, + MP_QSTR_personal, + MP_QSTR__txin_sig_digest, + MP_QSTR_amount, + MP_QSTR_sequence, + MP_QSTR_get_digest, + MP_QSTR___init__, + MP_QSTR_empty_bytearray, + MP_QSTR_header, + MP_QSTR_transparent, + MP_QSTR_sapling, + MP_QSTR_orchard, + MP_QSTR_branch_id, + MP_QSTR_tx_hash_person, + MP_QSTR_signature_digest, + MP_QSTR_digest, + MP_QSTR_sig_digest, + MP_QSTR_add_input, + MP_QSTR_add_output, + MP_QSTR_hash143, + MP_QSTR_hash341, + MP_QSTR_hash_zip244, + MP_QSTR_version, + MP_QSTR_version_group_id, + MP_QSTR_lock_time, + MP_QSTR_expiry, + MP_QSTR__digest, + MP_QSTR_prevouts, + MP_QSTR_amounts, + MP_QSTR_scriptpubkeys, + MP_QSTR_outputs, + MP_QSTR_empty, + MP_QSTR_SigHashType, + MP_QSTR_apps_dot_bitcoin_dot_common, + MP_QSTR_SIGHASH_ALL, + MP_QSTR_w, + MP_QSTR_hash, + MP_QSTR_txi, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_script_pubkey, + MP_QSTR_self, + MP_QSTR_tx, + MP_QSTR_bytes, + MP_QSTR_txo, + MP_QSTR_public_keys, + MP_QSTR_threshold, + MP_QSTR_coin, + MP_QSTR_hash_type, + MP_QSTR_NotImplementedError, + MP_QSTR_i, + MP_QSTR_sighash_type, +}; + +// constants +static const mp_obj_str_t const_obj_apps_zcash_hasher_0 = {{&mp_type_bytes}, 37600, 16, (const byte*)"\x5a\x63\x61\x73\x68\x5f\x5f\x5f\x54\x78\x49\x6e\x48\x61\x73\x68"}; +static const mp_obj_str_t const_obj_apps_zcash_hasher_1 = {{&mp_type_bytes}, 19271, 12, (const byte*)"\x5a\x63\x61\x73\x68\x54\x78\x48\x61\x73\x68\x5f"}; +static const mp_obj_str_t const_obj_apps_zcash_hasher_2 = {{&mp_type_bytes}, 47456, 16, (const byte*)"\x5a\x54\x78\x49\x64\x48\x65\x61\x64\x65\x72\x73\x48\x61\x73\x68"}; +static const mp_obj_int_t const_obj_apps_zcash_hasher_3 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0x0,0x8000}}}; +static const mp_obj_str_t const_obj_apps_zcash_hasher_4 = {{&mp_type_bytes}, 36275, 16, (const byte*)"\x5a\x54\x78\x49\x64\x50\x72\x65\x76\x6f\x75\x74\x48\x61\x73\x68"}; +static const mp_obj_str_t const_obj_apps_zcash_hasher_5 = {{&mp_type_bytes}, 33944, 16, (const byte*)"\x5a\x54\x78\x54\x72\x41\x6d\x6f\x75\x6e\x74\x73\x48\x61\x73\x68"}; +static const mp_obj_str_t const_obj_apps_zcash_hasher_6 = {{&mp_type_bytes}, 3355, 16, (const byte*)"\x5a\x54\x78\x54\x72\x53\x63\x72\x69\x70\x74\x73\x48\x61\x73\x68"}; +static const mp_obj_str_t const_obj_apps_zcash_hasher_7 = {{&mp_type_bytes}, 2710, 16, (const byte*)"\x5a\x54\x78\x49\x64\x53\x65\x71\x75\x65\x6e\x63\x48\x61\x73\x68"}; +static const mp_obj_str_t const_obj_apps_zcash_hasher_8 = {{&mp_type_bytes}, 26464, 16, (const byte*)"\x5a\x54\x78\x49\x64\x4f\x75\x74\x70\x75\x74\x73\x48\x61\x73\x68"}; +static const mp_obj_str_t const_obj_apps_zcash_hasher_9 = {{&mp_type_bytes}, 6919, 16, (const byte*)"\x5a\x54\x78\x49\x64\x54\x72\x61\x6e\x73\x70\x61\x48\x61\x73\x68"}; +static const mp_obj_str_t const_obj_apps_zcash_hasher_10 = {{&mp_type_bytes}, 36514, 16, (const byte*)"\x5a\x54\x78\x49\x64\x53\x61\x70\x6c\x69\x6e\x67\x48\x61\x73\x68"}; +static const mp_obj_str_t const_obj_apps_zcash_hasher_11 = {{&mp_type_bytes}, 39053, 16, (const byte*)"\x5a\x54\x78\x49\x64\x4f\x72\x63\x68\x61\x72\x64\x48\x61\x73\x68"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_zcash_hasher[12] = { + MP_ROM_PTR(&const_obj_apps_zcash_hasher_0), + MP_ROM_PTR(&const_obj_apps_zcash_hasher_1), + MP_ROM_PTR(&const_obj_apps_zcash_hasher_2), + MP_ROM_PTR(&const_obj_apps_zcash_hasher_3), + MP_ROM_PTR(&const_obj_apps_zcash_hasher_4), + MP_ROM_PTR(&const_obj_apps_zcash_hasher_5), + MP_ROM_PTR(&const_obj_apps_zcash_hasher_6), + MP_ROM_PTR(&const_obj_apps_zcash_hasher_7), + MP_ROM_PTR(&const_obj_apps_zcash_hasher_8), + MP_ROM_PTR(&const_obj_apps_zcash_hasher_9), + MP_ROM_PTR(&const_obj_apps_zcash_hasher_10), + MP_ROM_PTR(&const_obj_apps_zcash_hasher_11), +}; + +static const mp_frozen_module_t frozen_module_apps_zcash_hasher = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_zcash_hasher, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_zcash_hasher, + }, + .rc = &raw_code_apps_zcash_hasher__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_zcash_signer +// - original source file: build/firmware/src/apps/zcash/signer.mpy +// - frozen file name: apps/zcash/signer.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/zcash/signer.py, scope apps_zcash_signer__lt_module_gt_ +static const byte fun_data_apps_zcash_signer__lt_module_gt_[57] = { + 0x18,0x0c, // prelude + 0x01, // names: + 0x6c,0x4c,0x4c,0x80,0x11, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.wire' + 0x1c,0x04, // IMPORT_FROM 'DataError' + 0x16,0x04, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'Bitcoinlike' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'apps.bitcoin.sign_tx.bitcoinlike' + 0x1c,0x06, // IMPORT_FROM 'Bitcoinlike' + 0x16,0x06, // STORE_NAME 'Bitcoinlike' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x08, // LOAD_CONST_STRING 'Zcash' + 0x11,0x06, // LOAD_NAME 'Bitcoinlike' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x08, // STORE_NAME 'Zcash' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_zcash_signer__lt_module_gt_ +// frozen bytecode for file apps/zcash/signer.py, scope apps_zcash_signer_Zcash +static const byte fun_data_apps_zcash_signer_Zcash[96] = { + 0x10,0x2f, // prelude + 0x08, // names: Zcash + 0x88,0x19,0x86,0x0f,0x64,0x40,0x64,0x40,0x86,0x0a,0x66,0x64,0x84,0x0a,0x84,0x07,0x88,0x0c,0x84,0x13,0x84,0x09,0x00, // code info + 0x11,0x3d, // LOAD_NAME '__name__' + 0x16,0x3e, // STORE_NAME '__module__' + 0x10,0x08, // LOAD_CONST_STRING 'Zcash' + 0x16,0x3f, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x09, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0e, // STORE_NAME 'create_sig_hasher' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x11, // STORE_NAME 'create_hash_writer' + 0xb0, // LOAD_FAST 0 + 0x20,0x03,0x01, // MAKE_CLOSURE 3 + 0x16,0x12, // STORE_NAME 'step3_verify_inputs' + 0xb0, // LOAD_FAST 0 + 0x20,0x04,0x01, // MAKE_CLOSURE 4 + 0x16,0x14, // STORE_NAME 'step5_serialize_outputs' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x15, // STORE_NAME 'sign_nonsegwit_input' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x17, // STORE_NAME 'sign_bip143_input' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x22, // STORE_NAME 'process_original_input' + 0x51, // LOAD_CONST_NONE + 0x2a,0x01, // BUILD_TUPLE 1 + 0x53, // LOAD_NULL + 0x33,0x08, // MAKE_FUNCTION_DEFARGS 8 + 0x16,0x24, // STORE_NAME 'get_tx_digest' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x25, // STORE_NAME 'write_tx_header' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x2c, // STORE_NAME 'write_tx_footer' + 0xb0, // LOAD_FAST 0 + 0x20,0x0b,0x01, // MAKE_CLOSURE 11 + 0x16,0x2e, // STORE_NAME 'output_derive_script' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_zcash_signer_Zcash +// frozen bytecode for file apps/zcash/signer.py, scope apps_zcash_signer_Zcash___init__ +static const byte fun_data_apps_zcash_signer_Zcash___init__[64] = { + 0xe2,0x04,0x1a, // prelude + 0x09,0x40,0x41,0x42,0x1a,0x38,0x43, // names: __init__, *, self, tx, keychain, coin, approver + 0x80,0x20,0x4b,0x27,0x27,0x47, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'ensure' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0b, // IMPORT_NAME 'trezor.utils' + 0x1c,0x0a, // IMPORT_FROM 'ensure' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x13,0x0c, // LOAD_ATTR 'overwintered' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x0d, // LOAD_ATTR 'version' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x44, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x09, // LOAD_SUPER_METHOD '__init__' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_signer_Zcash___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 6, + .fun_data = fun_data_apps_zcash_signer_Zcash___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 64, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 9, + .line_info = fun_data_apps_zcash_signer_Zcash___init__ + 10, + .line_info_top = fun_data_apps_zcash_signer_Zcash___init__ + 16, + .opcodes = fun_data_apps_zcash_signer_Zcash___init__ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_signer_Zcash +// frozen bytecode for file apps/zcash/signer.py, scope apps_zcash_signer_Zcash_create_sig_hasher +static const byte fun_data_apps_zcash_signer_Zcash_create_sig_hasher[24] = { + 0x22,0x0c, // prelude + 0x0e,0x41,0x42, // names: create_sig_hasher, self, tx + 0x80,0x29,0x4b, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0f, // LOAD_CONST_STRING 'ZcashHasher' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'hasher' + 0x1c,0x0f, // IMPORT_FROM 'ZcashHasher' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_signer_Zcash_create_sig_hasher = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_zcash_signer_Zcash_create_sig_hasher, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_zcash_signer_Zcash_create_sig_hasher + 5, + .line_info_top = fun_data_apps_zcash_signer_Zcash_create_sig_hasher + 8, + .opcodes = fun_data_apps_zcash_signer_Zcash_create_sig_hasher + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_signer_Zcash +// frozen bytecode for file apps/zcash/signer.py, scope apps_zcash_signer_Zcash_create_hash_writer +static const byte fun_data_apps_zcash_signer_Zcash_create_hash_writer[11] = { + 0x09,0x08, // prelude + 0x11,0x41, // names: create_hash_writer, self + 0x80,0x30, // code info + 0x12,0x45, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_signer_Zcash_create_hash_writer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_zcash_signer_Zcash_create_hash_writer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 11, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 17, + .line_info = fun_data_apps_zcash_signer_Zcash_create_hash_writer + 4, + .line_info_top = fun_data_apps_zcash_signer_Zcash_create_hash_writer + 6, + .opcodes = fun_data_apps_zcash_signer_Zcash_create_hash_writer + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_signer_Zcash +// frozen bytecode for file apps/zcash/signer.py, scope apps_zcash_signer_Zcash_step3_verify_inputs +static const byte fun_data_apps_zcash_signer_Zcash_step3_verify_inputs[33] = { + 0xa2,0x40,0x0e, // prelude + 0x12,0x40,0x41, // names: step3_verify_inputs, *, self + 0x80,0x38,0x24,0x2d, // code info + 0x52, // LOAD_CONST_TRUE + 0xb1, // LOAD_FAST 1 + 0x18,0x13, // STORE_ATTR 'taproot_only' + 0x12,0x44, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x12, // LOAD_SUPER_METHOD 'step3_verify_inputs' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x50, // LOAD_CONST_FALSE + 0xb1, // LOAD_FAST 1 + 0x18,0x13, // STORE_ATTR 'taproot_only' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_signer_Zcash_step3_verify_inputs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_zcash_signer_Zcash_step3_verify_inputs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_zcash_signer_Zcash_step3_verify_inputs + 6, + .line_info_top = fun_data_apps_zcash_signer_Zcash_step3_verify_inputs + 10, + .opcodes = fun_data_apps_zcash_signer_Zcash_step3_verify_inputs + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_signer_Zcash +// frozen bytecode for file apps/zcash/signer.py, scope apps_zcash_signer_Zcash_step5_serialize_outputs +static const byte fun_data_apps_zcash_signer_Zcash_step5_serialize_outputs[23] = { + 0xa2,0x40,0x0a, // prelude + 0x14,0x40,0x41, // names: step5_serialize_outputs, *, self + 0x80,0x3d, // code info + 0x12,0x44, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x14, // LOAD_SUPER_METHOD 'step5_serialize_outputs' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_signer_Zcash_step5_serialize_outputs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_zcash_signer_Zcash_step5_serialize_outputs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 20, + .line_info = fun_data_apps_zcash_signer_Zcash_step5_serialize_outputs + 6, + .line_info_top = fun_data_apps_zcash_signer_Zcash_step5_serialize_outputs + 8, + .opcodes = fun_data_apps_zcash_signer_Zcash_step5_serialize_outputs + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_signer_Zcash +// frozen bytecode for file apps/zcash/signer.py, scope apps_zcash_signer_Zcash_sign_nonsegwit_input +static const byte fun_data_apps_zcash_signer_Zcash_sign_nonsegwit_input[20] = { + 0xa2,0x40,0x0a, // prelude + 0x15,0x41,0x46, // names: sign_nonsegwit_input, self, i_sign + 0x80,0x40, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x16, // LOAD_METHOD 'sign_nonsegwit_bip143_input' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_signer_Zcash_sign_nonsegwit_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_zcash_signer_Zcash_sign_nonsegwit_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 20, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 21, + .line_info = fun_data_apps_zcash_signer_Zcash_sign_nonsegwit_input + 6, + .line_info_top = fun_data_apps_zcash_signer_Zcash_sign_nonsegwit_input + 8, + .opcodes = fun_data_apps_zcash_signer_Zcash_sign_nonsegwit_input + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_signer_Zcash +// frozen bytecode for file apps/zcash/signer.py, scope apps_zcash_signer_Zcash_sign_bip143_input +static const byte fun_data_apps_zcash_signer_Zcash_sign_bip143_input[68] = { + 0x6b,0x16, // prelude + 0x17,0x41,0x47,0x48, // names: sign_bip143_input, self, i, txi + 0x80,0x43,0x4b,0x2b,0x28,0x4a,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x18, // LOAD_CONST_STRING 'ecdsa_sign' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x19, // IMPORT_NAME 'apps.bitcoin.common' + 0x1c,0x18, // IMPORT_FROM 'ecdsa_sign' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x1a, // LOAD_ATTR 'keychain' + 0x14,0x1b, // LOAD_METHOD 'derive' + 0xb2, // LOAD_FAST 2 + 0x13,0x1c, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'tx_info' + 0x13,0x1e, // LOAD_ATTR 'sig_hasher' + 0x14,0x1f, // LOAD_METHOD 'hash_zip244' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x14,0x20, // LOAD_METHOD 'input_derive_script' + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x36,0x02, // CALL_METHOD 2 + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x14,0x21, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0xb6, // LOAD_FAST 6 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_signer_Zcash_sign_bip143_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_zcash_signer_Zcash_sign_bip143_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 68, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 23, + .line_info = fun_data_apps_zcash_signer_Zcash_sign_bip143_input + 6, + .line_info_top = fun_data_apps_zcash_signer_Zcash_sign_bip143_input + 13, + .opcodes = fun_data_apps_zcash_signer_Zcash_sign_bip143_input + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_signer_Zcash +// frozen bytecode for file apps/zcash/signer.py, scope apps_zcash_signer_Zcash_process_original_input +static const byte fun_data_apps_zcash_signer_Zcash_process_original_input[29] = { + 0xab,0x40,0x0e, // prelude + 0x22,0x41,0x48,0x49, // names: process_original_input, self, txi, script_pubkey + 0x80,0x4d,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x23, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.wire' + 0x1c,0x23, // IMPORT_FROM 'ProcessError' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_signer_Zcash_process_original_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_zcash_signer_Zcash_process_original_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_apps_zcash_signer_Zcash_process_original_input + 7, + .line_info_top = fun_data_apps_zcash_signer_Zcash_process_original_input + 10, + .opcodes = fun_data_apps_zcash_signer_Zcash_process_original_input + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_signer_Zcash +// frozen bytecode for file apps/zcash/signer.py, scope apps_zcash_signer_Zcash_get_tx_digest +static const byte fun_data_apps_zcash_signer_Zcash_get_tx_digest[27] = { + 0xd8,0xc1,0x04,0x16, // prelude + 0x24,0x41,0x47,0x48,0x1d,0x4a,0x4b,0x49,0x4c, // names: get_tx_digest, self, i, txi, tx_info, public_keys, threshold, script_pubkey, tx_hash + 0x80,0x5d, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x1d, // LOAD_ATTR 'tx_info' + 0x13,0x1e, // LOAD_ATTR 'sig_hasher' + 0x14,0x1f, // LOAD_METHOD 'hash_zip244' + 0xb2, // LOAD_FAST 2 + 0xb6, // LOAD_FAST 6 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_signer_Zcash_get_tx_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 8, + .fun_data = fun_data_apps_zcash_signer_Zcash_get_tx_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 8, + .n_kwonly_args = 0, + .n_def_pos_args = 1, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_zcash_signer_Zcash_get_tx_digest + 13, + .line_info_top = fun_data_apps_zcash_signer_Zcash_get_tx_digest + 15, + .opcodes = fun_data_apps_zcash_signer_Zcash_get_tx_digest + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_signer_Zcash +// frozen bytecode for file apps/zcash/signer.py, scope apps_zcash_signer_Zcash_write_tx_header +static const byte fun_data_apps_zcash_signer_Zcash_write_tx_header[65] = { + 0xe0,0x04,0x22, // prelude + 0x25,0x41,0x4d,0x42,0x4e, // names: write_tx_header, self, w, tx, witness_marker + 0x80,0x62,0x6b,0x20,0x20,0x40,0x20,0x26,0x23,0x23,0x23,0x49, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x26, // LOAD_CONST_STRING 'write_uint32_le' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x27, // IMPORT_NAME 'apps.common.writers' + 0x1c,0x26, // IMPORT_FROM 'write_uint32_le' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x0d, // LOAD_ATTR 'version' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xed, // BINARY_OP 22 __or__ + 0xb2, // LOAD_FAST 2 + 0x13,0x28, // LOAD_ATTR 'version_group_id' + 0xb2, // LOAD_FAST 2 + 0x13,0x29, // LOAD_ATTR 'branch_id' + 0xb2, // LOAD_FAST 2 + 0x13,0x2a, // LOAD_ATTR 'lock_time' + 0xb2, // LOAD_FAST 2 + 0x13,0x2b, // LOAD_ATTR 'expiry' + 0x2a,0x05, // BUILD_TUPLE 5 + 0x5f, // GET_ITER_STACK + 0x4b,0x09, // FOR_ITER 9 + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x42,0x35, // JUMP -11 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_signer_Zcash_write_tx_header = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_zcash_signer_Zcash_write_tx_header, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 65, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_zcash_signer_Zcash_write_tx_header + 8, + .line_info_top = fun_data_apps_zcash_signer_Zcash_write_tx_header + 20, + .opcodes = fun_data_apps_zcash_signer_Zcash_write_tx_header + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_signer_Zcash +// frozen bytecode for file apps/zcash/signer.py, scope apps_zcash_signer_Zcash_write_tx_footer +static const byte fun_data_apps_zcash_signer_Zcash_write_tx_footer[42] = { + 0x33,0x12, // prelude + 0x2c,0x41,0x4d,0x42, // names: write_tx_footer, self, w, tx + 0x80,0x73,0x6b,0x26,0x46, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2d, // LOAD_CONST_STRING 'write_compact_size' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x27, // IMPORT_NAME 'apps.common.writers' + 0x1c,0x2d, // IMPORT_FROM 'write_compact_size' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_signer_Zcash_write_tx_footer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_zcash_signer_Zcash_write_tx_footer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 44, + .line_info = fun_data_apps_zcash_signer_Zcash_write_tx_footer + 6, + .line_info_top = fun_data_apps_zcash_signer_Zcash_write_tx_footer + 11, + .opcodes = fun_data_apps_zcash_signer_Zcash_write_tx_footer + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_signer_Zcash +// frozen bytecode for file apps/zcash/signer.py, scope apps_zcash_signer_Zcash_output_derive_script +static const byte fun_data_apps_zcash_signer_Zcash_output_derive_script[146] = { + 0x63,0x26, // prelude + 0x2e,0x40,0x41,0x4f, // names: output_derive_script, *, self, txo + 0x80,0x7c,0x4b,0x4b,0x70,0x33,0x40,0x2a,0x27,0x26,0x27,0x27,0x26,0x27,0x67, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x2f, // LOAD_CONST_STRING 'OutputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x30, // IMPORT_NAME 'trezor.enums' + 0x1c,0x2f, // IMPORT_FROM 'OutputScriptType' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x31, // LOAD_CONST_STRING 'scripts' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x32, // IMPORT_NAME 'apps.bitcoin' + 0x1c,0x31, // IMPORT_FROM 'scripts' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x33, // LOAD_CONST_STRING 'Typecode' + 0x10,0x34, // LOAD_CONST_STRING 'decode' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x35, // IMPORT_NAME 'unified_addresses' + 0x1c,0x33, // IMPORT_FROM 'Typecode' + 0xc5, // STORE_FAST 5 + 0x1c,0x34, // IMPORT_FROM 'decode' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x36, // LOAD_ATTR 'address' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0xc3,0x80, // POP_JUMP_IF_FALSE 67 + 0xb2, // LOAD_FAST 2 + 0x13,0x36, // LOAD_ATTR 'address' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x10,0x37, // LOAD_CONST_STRING 'u' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x79, // POP_JUMP_IF_FALSE 57 + 0xb6, // LOAD_FAST 6 + 0xb2, // LOAD_FAST 2 + 0x13,0x36, // LOAD_ATTR 'address' + 0xb1, // LOAD_FAST 1 + 0x13,0x38, // LOAD_ATTR 'coin' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc7, // STORE_FAST 7 + 0xb5, // LOAD_FAST 5 + 0x13,0x39, // LOAD_ATTR 'P2PKH' + 0xb7, // LOAD_FAST 7 + 0xdd, // BINARY_OP 6 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb7, // LOAD_FAST 7 + 0xb5, // LOAD_FAST 5 + 0x13,0x39, // LOAD_ATTR 'P2PKH' + 0x55, // LOAD_SUBSCR + 0xc8, // STORE_FAST 8 + 0xb4, // LOAD_FAST 4 + 0x14,0x3a, // LOAD_METHOD 'output_script_p2pkh' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0xb5, // LOAD_FAST 5 + 0x13,0x3b, // LOAD_ATTR 'P2SH' + 0xb7, // LOAD_FAST 7 + 0xdd, // BINARY_OP 6 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb7, // LOAD_FAST 7 + 0xb5, // LOAD_FAST 5 + 0x13,0x3b, // LOAD_ATTR 'P2SH' + 0x55, // LOAD_SUBSCR + 0xc9, // STORE_FAST 9 + 0xb4, // LOAD_FAST 4 + 0x14,0x3c, // LOAD_METHOD 'output_script_p2sh' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0x12,0x04, // LOAD_GLOBAL 'DataError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x44, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x2e, // LOAD_SUPER_METHOD 'output_derive_script' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_signer_Zcash_output_derive_script = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_zcash_signer_Zcash_output_derive_script, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 146, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_zcash_signer_Zcash_output_derive_script + 6, + .line_info_top = fun_data_apps_zcash_signer_Zcash_output_derive_script + 21, + .opcodes = fun_data_apps_zcash_signer_Zcash_output_derive_script + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_zcash_signer_Zcash[] = { + &raw_code_apps_zcash_signer_Zcash___init__, + &raw_code_apps_zcash_signer_Zcash_create_sig_hasher, + &raw_code_apps_zcash_signer_Zcash_create_hash_writer, + &raw_code_apps_zcash_signer_Zcash_step3_verify_inputs, + &raw_code_apps_zcash_signer_Zcash_step5_serialize_outputs, + &raw_code_apps_zcash_signer_Zcash_sign_nonsegwit_input, + &raw_code_apps_zcash_signer_Zcash_sign_bip143_input, + &raw_code_apps_zcash_signer_Zcash_process_original_input, + &raw_code_apps_zcash_signer_Zcash_get_tx_digest, + &raw_code_apps_zcash_signer_Zcash_write_tx_header, + &raw_code_apps_zcash_signer_Zcash_write_tx_footer, + &raw_code_apps_zcash_signer_Zcash_output_derive_script, +}; + +static const mp_raw_code_t raw_code_apps_zcash_signer_Zcash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_zcash_signer_Zcash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 96, + #endif + .children = (void *)&children_apps_zcash_signer_Zcash, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 12, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_zcash_signer_Zcash + 3, + .line_info_top = fun_data_apps_zcash_signer_Zcash + 25, + .opcodes = fun_data_apps_zcash_signer_Zcash + 26, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_zcash_signer__lt_module_gt_[] = { + &raw_code_apps_zcash_signer_Zcash, +}; + +static const mp_raw_code_t raw_code_apps_zcash_signer__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_zcash_signer__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = (void *)&children_apps_zcash_signer__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_zcash_signer__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_zcash_signer__lt_module_gt_ + 8, + .opcodes = fun_data_apps_zcash_signer__lt_module_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_zcash_signer[80] = { + MP_QSTR_apps_slash_zcash_slash_signer_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_Bitcoinlike, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_bitcoinlike, + MP_QSTR_Zcash, + MP_QSTR___init__, + MP_QSTR_ensure, + MP_QSTR_trezor_dot_utils, + MP_QSTR_overwintered, + MP_QSTR_version, + MP_QSTR_create_sig_hasher, + MP_QSTR_ZcashHasher, + MP_QSTR_hasher, + MP_QSTR_create_hash_writer, + MP_QSTR_step3_verify_inputs, + MP_QSTR_taproot_only, + MP_QSTR_step5_serialize_outputs, + MP_QSTR_sign_nonsegwit_input, + MP_QSTR_sign_nonsegwit_bip143_input, + MP_QSTR_sign_bip143_input, + MP_QSTR_ecdsa_sign, + MP_QSTR_apps_dot_bitcoin_dot_common, + MP_QSTR_keychain, + MP_QSTR_derive, + MP_QSTR_address_n, + MP_QSTR_tx_info, + MP_QSTR_sig_hasher, + MP_QSTR_hash_zip244, + MP_QSTR_input_derive_script, + MP_QSTR_public_key, + MP_QSTR_process_original_input, + MP_QSTR_ProcessError, + MP_QSTR_get_tx_digest, + MP_QSTR_write_tx_header, + MP_QSTR_write_uint32_le, + MP_QSTR_apps_dot_common_dot_writers, + MP_QSTR_version_group_id, + MP_QSTR_branch_id, + MP_QSTR_lock_time, + MP_QSTR_expiry, + MP_QSTR_write_tx_footer, + MP_QSTR_write_compact_size, + MP_QSTR_output_derive_script, + MP_QSTR_OutputScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_scripts, + MP_QSTR_apps_dot_bitcoin, + MP_QSTR_Typecode, + MP_QSTR_decode, + MP_QSTR_unified_addresses, + MP_QSTR_address, + MP_QSTR_u, + MP_QSTR_coin, + MP_QSTR_P2PKH, + MP_QSTR_output_script_p2pkh, + MP_QSTR_P2SH, + MP_QSTR_output_script_p2sh, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR__star_, + MP_QSTR_self, + MP_QSTR_tx, + MP_QSTR_approver, + MP_QSTR_super, + MP_QSTR_NotImplementedError, + MP_QSTR_i_sign, + MP_QSTR_i, + MP_QSTR_txi, + MP_QSTR_script_pubkey, + MP_QSTR_public_keys, + MP_QSTR_threshold, + MP_QSTR_tx_hash, + MP_QSTR_w, + MP_QSTR_witness_marker, + MP_QSTR_txo, +}; + +// constants +static const mp_obj_str_t const_obj_apps_zcash_signer_0 = {{&mp_type_str}, 37726, 31, (const byte*)"\x45\x78\x70\x65\x63\x74\x65\x64\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x35\x2e"}; +static const mp_obj_str_t const_obj_apps_zcash_signer_1 = {{&mp_type_str}, 4015, 43, (const byte*)"\x52\x65\x70\x6c\x61\x63\x65\x6d\x65\x6e\x74\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x73\x20\x61\x72\x65\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x2e"}; +static const mp_obj_int_t const_obj_apps_zcash_signer_2 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0x0,0x8000}}}; +static const mp_obj_str_t const_obj_apps_zcash_signer_3 = {{&mp_type_str}, 24107, 56, (const byte*)"\x55\x6e\x69\x66\x69\x65\x64\x20\x61\x64\x64\x72\x65\x73\x73\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x69\x6e\x63\x6c\x75\x64\x65\x20\x61\x20\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x20\x72\x65\x63\x65\x69\x76\x65\x72\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_zcash_signer[4] = { + MP_ROM_PTR(&const_obj_apps_zcash_signer_0), + MP_ROM_PTR(&const_obj_apps_zcash_signer_1), + MP_ROM_PTR(&const_obj_apps_zcash_signer_2), + MP_ROM_PTR(&const_obj_apps_zcash_signer_3), +}; + +static const mp_frozen_module_t frozen_module_apps_zcash_signer = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_zcash_signer, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_zcash_signer, + }, + .rc = &raw_code_apps_zcash_signer__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_zcash_unified_addresses +// - original source file: build/firmware/src/apps/zcash/unified_addresses.mpy +// - frozen file name: apps/zcash/unified_addresses.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/zcash/unified_addresses.py, scope apps_zcash_unified_addresses__lt_module_gt_ +static const byte fun_data_apps_zcash_unified_addresses__lt_module_gt_[115] = { + 0x18,0x30, // prelude + 0x01, // names: + 0x80,0x08,0x52,0x60,0x40,0x64,0x40,0x22,0x25,0x67,0x20,0x8b,0x09,0x22,0x26,0x26,0x26,0x68,0x20,0x64,0x40,0x84,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'Encoding' + 0x10,0x03, // LOAD_CONST_STRING 'convertbits' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x04, // IMPORT_NAME 'trezor.crypto.bech32' + 0x1c,0x02, // IMPORT_FROM 'Encoding' + 0x16,0x02, // STORE_NAME 'Encoding' + 0x1c,0x03, // IMPORT_FROM 'convertbits' + 0x16,0x03, // STORE_NAME 'convertbits' + 0x59, // POP_TOP + 0x11,0x27, // LOAD_NAME 'object' + 0x16,0x28, // STORE_NAME 'IntEnum' + 0x2c,0x02, // BUILD_MAP 2 + 0x10,0x05, // LOAD_CONST_STRING 'u' + 0x10,0x06, // LOAD_CONST_STRING 'Zcash' + 0x62, // STORE_MAP + 0x10,0x07, // LOAD_CONST_STRING 'utest' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x62, // STORE_MAP + 0x16,0x29, // STORE_NAME 'PREFIXES' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x08, // LOAD_CONST_STRING 'Typecode' + 0x11,0x28, // LOAD_NAME 'IntEnum' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x08, // STORE_NAME 'Typecode' + 0x2c,0x04, // BUILD_MAP 4 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x11,0x08, // LOAD_NAME 'Typecode' + 0x13,0x09, // LOAD_ATTR 'P2PKH' + 0x62, // STORE_MAP + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x11,0x08, // LOAD_NAME 'Typecode' + 0x13,0x0a, // LOAD_ATTR 'P2SH' + 0x62, // STORE_MAP + 0xab, // LOAD_CONST_SMALL_INT 43 + 0x11,0x08, // LOAD_NAME 'Typecode' + 0x13,0x0b, // LOAD_ATTR 'SAPLING' + 0x62, // STORE_MAP + 0xab, // LOAD_CONST_SMALL_INT 43 + 0x11,0x08, // LOAD_NAME 'Typecode' + 0x13,0x0c, // LOAD_ATTR 'ORCHARD' + 0x62, // STORE_MAP + 0x16,0x2a, // STORE_NAME 'RECEIVER_LENGTHS' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0d, // STORE_NAME 'padding' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0e, // STORE_NAME 'encode' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x1c, // STORE_NAME 'decode' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_zcash_unified_addresses__lt_module_gt_ +// frozen bytecode for file apps/zcash/unified_addresses.py, scope apps_zcash_unified_addresses_Typecode +static const byte fun_data_apps_zcash_unified_addresses_Typecode[30] = { + 0x00,0x0c, // prelude + 0x08, // names: Typecode + 0x88,0x1b,0x23,0x23,0x23, // code info + 0x11,0x2b, // LOAD_NAME '__name__' + 0x16,0x2c, // STORE_NAME '__module__' + 0x10,0x08, // LOAD_CONST_STRING 'Typecode' + 0x16,0x2d, // STORE_NAME '__qualname__' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x16,0x09, // STORE_NAME 'P2PKH' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x0a, // STORE_NAME 'P2SH' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x0b, // STORE_NAME 'SAPLING' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x0c, // STORE_NAME 'ORCHARD' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_unified_addresses_Typecode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_zcash_unified_addresses_Typecode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_zcash_unified_addresses_Typecode + 3, + .line_info_top = fun_data_apps_zcash_unified_addresses_Typecode + 8, + .opcodes = fun_data_apps_zcash_unified_addresses_Typecode + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_unified_addresses__lt_module_gt_ +// frozen bytecode for file apps/zcash/unified_addresses.py, scope apps_zcash_unified_addresses_padding +static const byte fun_data_apps_zcash_unified_addresses_padding[25] = { + 0x29,0x0a, // prelude + 0x0d,0x2e, // names: padding, hrp + 0x80,0x2c,0x20, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x0e, // LOAD_METHOD 'encode' + 0x36,0x00, // CALL_METHOD 0 + 0x12,0x2f, // LOAD_GLOBAL 'bytes' + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x12,0x30, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf3, // BINARY_OP 28 __sub__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_unified_addresses_padding = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_zcash_unified_addresses_padding, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 13, + .line_info = fun_data_apps_zcash_unified_addresses_padding + 4, + .line_info_top = fun_data_apps_zcash_unified_addresses_padding + 7, + .opcodes = fun_data_apps_zcash_unified_addresses_padding + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_unified_addresses__lt_module_gt_ +// frozen bytecode for file apps/zcash/unified_addresses.py, scope apps_zcash_unified_addresses_encode +static const byte fun_data_apps_zcash_unified_addresses_encode[214] = { + 0xb2,0x10,0x36, // prelude + 0x0e,0x31,0x32, // names: encode, receivers, coin + 0x80,0x31,0x2b,0x4b,0x50,0x6b,0x40,0x40,0x22,0x29,0x24,0x4a,0x65,0x2a,0x46,0x28,0x2f,0x26,0x26,0x49,0x27,0x2b,0x29,0x28, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0f, // LOAD_CONST_STRING 'bech32_encode' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor.crypto.bech32' + 0x1c,0x0f, // IMPORT_FROM 'bech32_encode' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x10, // LOAD_CONST_STRING 'empty_bytearray' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'trezor.utils' + 0x1c,0x10, // IMPORT_FROM 'empty_bytearray' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x12, // LOAD_CONST_STRING 'write_bytes_fixed' + 0x10,0x13, // LOAD_CONST_STRING 'write_compact_size' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x14, // IMPORT_NAME 'apps.common.writers' + 0x1c,0x12, // IMPORT_FROM 'write_bytes_fixed' + 0xc4, // STORE_FAST 4 + 0x1c,0x13, // IMPORT_FROM 'write_compact_size' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x15, // LOAD_CONST_STRING 'f4jumble' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x15, // IMPORT_NAME 'f4jumble' + 0x1c,0x15, // IMPORT_FROM 'f4jumble' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xc7, // STORE_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x14,0x16, // LOAD_METHOD 'values' + 0x36,0x00, // CALL_METHOD 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0f, // FOR_ITER 15 + 0xc8, // STORE_FAST 8 + 0xb7, // LOAD_FAST 7 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x12,0x30, // LOAD_GLOBAL 'len' + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc7, // STORE_FAST 7 + 0x42,0x2f, // JUMP -17 + 0xb3, // LOAD_FAST 3 + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0x12,0x33, // LOAD_GLOBAL 'list' + 0xb0, // LOAD_FAST 0 + 0x14,0x17, // LOAD_METHOD 'items' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0x14,0x18, // LOAD_METHOD 'sort' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xba, // LOAD_FAST 10 + 0x5f, // GET_ITER_STACK + 0x4b,0x28, // FOR_ITER 40 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xcb, // STORE_FAST 11 + 0xcc, // STORE_FAST 12 + 0x12,0x2a, // LOAD_GLOBAL 'RECEIVER_LENGTHS' + 0x14,0x19, // LOAD_METHOD 'get' + 0xbb, // LOAD_FAST 11 + 0x36,0x01, // CALL_METHOD 1 + 0x45,0x05, // JUMP_IF_TRUE_OR_POP 5 + 0x12,0x30, // LOAD_GLOBAL 'len' + 0xbc, // LOAD_FAST 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc7, // STORE_FAST 7 + 0xb5, // LOAD_FAST 5 + 0xb9, // LOAD_FAST 9 + 0xbb, // LOAD_FAST 11 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0xb9, // LOAD_FAST 9 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb9, // LOAD_FAST 9 + 0xbc, // LOAD_FAST 12 + 0xb7, // LOAD_FAST 7 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x16, // JUMP -42 + 0x12,0x29, // LOAD_GLOBAL 'PREFIXES' + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'coin_name' + 0x55, // LOAD_SUBSCR + 0xcd, // STORE_FAST 13 + 0xb4, // LOAD_FAST 4 + 0xb9, // LOAD_FAST 9 + 0x12,0x0d, // LOAD_GLOBAL 'padding' + 0xbd, // LOAD_FAST 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x12,0x34, // LOAD_GLOBAL 'memoryview' + 0xb9, // LOAD_FAST 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x03, // LOAD_GLOBAL 'convertbits' + 0xb9, // LOAD_FAST 9 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x34,0x03, // CALL_FUNCTION 3 + 0xce, // STORE_FAST 14 + 0xb2, // LOAD_FAST 2 + 0xbd, // LOAD_FAST 13 + 0xbe, // LOAD_FAST 14 + 0x12,0x02, // LOAD_GLOBAL 'Encoding' + 0x13,0x1b, // LOAD_ATTR 'BECH32M' + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_unified_addresses_encode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_zcash_unified_addresses_encode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 214, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 23, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_zcash_unified_addresses_encode + 6, + .line_info_top = fun_data_apps_zcash_unified_addresses_encode + 30, + .opcodes = fun_data_apps_zcash_unified_addresses_encode + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_zcash_unified_addresses__lt_module_gt_ +// frozen bytecode for file apps/zcash/unified_addresses.py, scope apps_zcash_unified_addresses_decode +static const byte fun_data_apps_zcash_unified_addresses_decode[419] = { + 0xbe,0x10,0x62, // prelude + 0x1c,0x35,0x32, // names: decode, addr_str, coin + 0x80,0x56,0x2b,0x2b,0x4b,0x4b,0x4b,0x22,0x55,0x29,0x20,0x20,0x20,0x2a,0x26,0x28,0x46,0x2d,0x69,0x2e,0x46,0x4a,0x22,0x25,0x23,0x25,0x25,0x26,0x29,0x26,0x2b,0x26,0x42,0x45,0x2d,0x2d,0x46,0x29,0x46,0x53,0x30,0x46,0x29,0x2d,0x2f,0x46, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1d, // LOAD_CONST_STRING 'bech32_decode' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'trezor.crypto.bech32' + 0x1c,0x1d, // IMPORT_FROM 'bech32_decode' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1e, // LOAD_CONST_STRING 'BufferReader' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x11, // IMPORT_NAME 'trezor.utils' + 0x1c,0x1e, // IMPORT_FROM 'BufferReader' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x1f, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x20, // IMPORT_NAME 'trezor.wire' + 0x1c,0x1f, // IMPORT_FROM 'DataError' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x21, // LOAD_CONST_STRING 'read_compact_size' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x22, // IMPORT_NAME 'apps.common.readers' + 0x1c,0x21, // IMPORT_FROM 'read_compact_size' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x23, // LOAD_CONST_STRING 'f4unjumble' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x15, // IMPORT_NAME 'f4jumble' + 0x1c,0x23, // IMPORT_FROM 'f4unjumble' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x48,0x0e, // SETUP_EXCEPT 14 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x22,0x87,0x68, // LOAD_CONST_SMALL_INT 1000 + 0x34,0x02, // CALL_FUNCTION 2 + 0x30,0x03, // UNPACK_SEQUENCE 3 + 0xc7, // STORE_FAST 7 + 0xc8, // STORE_FAST 8 + 0xc9, // STORE_FAST 9 + 0x4a,0x10, // POP_EXCEPT_JUMP 16 + 0x57, // DUP_TOP + 0x12,0x36, // LOAD_GLOBAL 'ValueError' + 0xdf, // BINARY_OP 8 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb7, // LOAD_FAST 7 + 0x12,0x29, // LOAD_GLOBAL 'PREFIXES' + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'coin_name' + 0x55, // LOAD_SUBSCR + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb9, // LOAD_FAST 9 + 0x12,0x02, // LOAD_GLOBAL 'Encoding' + 0x13,0x1b, // LOAD_ATTR 'BECH32M' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x37, // LOAD_GLOBAL 'bytearray' + 0x12,0x03, // LOAD_GLOBAL 'convertbits' + 0xb8, // LOAD_FAST 8 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x50, // LOAD_CONST_FALSE + 0x34,0x04, // CALL_FUNCTION 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0xca, // STORE_FAST 10 + 0xb6, // LOAD_FAST 6 + 0x12,0x34, // LOAD_GLOBAL 'memoryview' + 0xba, // LOAD_FAST 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0xba, // LOAD_FAST 10 + 0x70, // LOAD_CONST_SMALL_INT -16 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x12,0x0d, // LOAD_GLOBAL 'padding' + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0xba, // LOAD_FAST 10 + 0x51, // LOAD_CONST_NONE + 0x70, // LOAD_CONST_SMALL_INT -16 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0xcb, // STORE_FAST 11 + 0x51, // LOAD_CONST_NONE + 0xcc, // STORE_FAST 12 + 0x12,0x38, // LOAD_GLOBAL 'dict' + 0x34,0x00, // CALL_FUNCTION 0 + 0xcd, // STORE_FAST 13 + 0x42,0xef,0x80, // JUMP 111 + 0xb5, // LOAD_FAST 5 + 0xbb, // LOAD_FAST 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0xce, // STORE_FAST 14 + 0xbe, // LOAD_FAST 14 + 0xbd, // LOAD_FAST 13 + 0xdd, // BINARY_OP 6 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbe, // LOAD_FAST 14 + 0x22,0x90,0x80,0x80,0x00, // LOAD_CONST_SMALL_INT 33554432 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbc, // LOAD_FAST 12 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xbe, // LOAD_FAST 14 + 0xbc, // LOAD_FAST 12 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbe, // LOAD_FAST 14 + 0xcc, // STORE_FAST 12 + 0xb5, // LOAD_FAST 5 + 0xbb, // LOAD_FAST 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcf, // STORE_FAST 15 + 0x12,0x2a, // LOAD_GLOBAL 'RECEIVER_LENGTHS' + 0x14,0x19, // LOAD_METHOD 'get' + 0x12,0x08, // LOAD_GLOBAL 'Typecode' + 0xbe, // LOAD_FAST 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x10, // STORE_FAST_N 16 + 0x24,0x10, // LOAD_FAST_N 16 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xbf, // LOAD_FAST 15 + 0x24,0x10, // LOAD_FAST_N 16 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbb, // LOAD_FAST 11 + 0x14,0x24, // LOAD_METHOD 'remaining_count' + 0x36,0x00, // CALL_METHOD 0 + 0xbf, // LOAD_FAST 15 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbb, // LOAD_FAST 11 + 0x14,0x25, // LOAD_METHOD 'read' + 0xbf, // LOAD_FAST 15 + 0x36,0x01, // CALL_METHOD 1 + 0xbd, // LOAD_FAST 13 + 0xbe, // LOAD_FAST 14 + 0x56, // STORE_SUBSCR + 0xbb, // LOAD_FAST 11 + 0x14,0x24, // LOAD_METHOD 'remaining_count' + 0x36,0x00, // CALL_METHOD 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x43,0x87,0x7f, // POP_JUMP_IF_TRUE -121 + 0x12,0x08, // LOAD_GLOBAL 'Typecode' + 0x13,0x09, // LOAD_ATTR 'P2PKH' + 0xbd, // LOAD_FAST 13 + 0xdd, // BINARY_OP 6 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x12,0x08, // LOAD_GLOBAL 'Typecode' + 0x13,0x0a, // LOAD_ATTR 'P2SH' + 0xbd, // LOAD_FAST 13 + 0xdd, // BINARY_OP 6 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x30, // LOAD_GLOBAL 'len' + 0xbd, // LOAD_FAST 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x62, // POP_JUMP_IF_FALSE 34 + 0x12,0x33, // LOAD_GLOBAL 'list' + 0xbd, // LOAD_FAST 13 + 0x14,0x26, // LOAD_METHOD 'keys' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x26,0x11, // STORE_FAST_N 17 + 0x24,0x11, // LOAD_FAST_N 17 + 0x12,0x08, // LOAD_GLOBAL 'Typecode' + 0x13,0x09, // LOAD_ATTR 'P2PKH' + 0x12,0x08, // LOAD_GLOBAL 'Typecode' + 0x13,0x0a, // LOAD_ATTR 'P2SH' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdd, // BINARY_OP 6 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0xb4, // LOAD_FAST 4 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xbd, // LOAD_FAST 13 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_zcash_unified_addresses_decode = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_zcash_unified_addresses_decode, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 419, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 24, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 28, + .line_info = fun_data_apps_zcash_unified_addresses_decode + 6, + .line_info_top = fun_data_apps_zcash_unified_addresses_decode + 52, + .opcodes = fun_data_apps_zcash_unified_addresses_decode + 52, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_zcash_unified_addresses__lt_module_gt_[] = { + &raw_code_apps_zcash_unified_addresses_Typecode, + &raw_code_apps_zcash_unified_addresses_padding, + &raw_code_apps_zcash_unified_addresses_encode, + &raw_code_apps_zcash_unified_addresses_decode, +}; + +static const mp_raw_code_t raw_code_apps_zcash_unified_addresses__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_zcash_unified_addresses__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 115, + #endif + .children = (void *)&children_apps_zcash_unified_addresses__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_zcash_unified_addresses__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_zcash_unified_addresses__lt_module_gt_ + 26, + .opcodes = fun_data_apps_zcash_unified_addresses__lt_module_gt_ + 26, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_zcash_unified_addresses[57] = { + MP_QSTR_apps_slash_zcash_slash_unified_addresses_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_Encoding, + MP_QSTR_convertbits, + MP_QSTR_trezor_dot_crypto_dot_bech32, + MP_QSTR_u, + MP_QSTR_Zcash, + MP_QSTR_utest, + MP_QSTR_Typecode, + MP_QSTR_P2PKH, + MP_QSTR_P2SH, + MP_QSTR_SAPLING, + MP_QSTR_ORCHARD, + MP_QSTR_padding, + MP_QSTR_encode, + MP_QSTR_bech32_encode, + MP_QSTR_empty_bytearray, + MP_QSTR_trezor_dot_utils, + MP_QSTR_write_bytes_fixed, + MP_QSTR_write_compact_size, + MP_QSTR_apps_dot_common_dot_writers, + MP_QSTR_f4jumble, + MP_QSTR_values, + MP_QSTR_items, + MP_QSTR_sort, + MP_QSTR_get, + MP_QSTR_coin_name, + MP_QSTR_BECH32M, + MP_QSTR_decode, + MP_QSTR_bech32_decode, + MP_QSTR_BufferReader, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_read_compact_size, + MP_QSTR_apps_dot_common_dot_readers, + MP_QSTR_f4unjumble, + MP_QSTR_remaining_count, + MP_QSTR_read, + MP_QSTR_keys, + MP_QSTR_object, + MP_QSTR_IntEnum, + MP_QSTR_PREFIXES, + MP_QSTR_RECEIVER_LENGTHS, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_hrp, + MP_QSTR_bytes, + MP_QSTR_len, + MP_QSTR_receivers, + MP_QSTR_coin, + MP_QSTR_list, + MP_QSTR_memoryview, + MP_QSTR_addr_str, + MP_QSTR_ValueError, + MP_QSTR_bytearray, + MP_QSTR_dict, +}; + +// constants +static const mp_obj_str_t const_obj_apps_zcash_unified_addresses_2 = {{&mp_type_str}, 61512, 26, (const byte*)"\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x61\x64\x64\x72\x65\x73\x73\x20\x70\x72\x65\x66\x69\x78\x2e"}; +static const mp_obj_str_t const_obj_apps_zcash_unified_addresses_3 = {{&mp_type_str}, 24385, 26, (const byte*)"\x42\x65\x63\x68\x33\x32\x6d\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x72\x65\x71\x75\x69\x72\x65\x64\x2e"}; +static const mp_obj_str_t const_obj_apps_zcash_unified_addresses_8 = {{&mp_type_str}, 25509, 26, (const byte*)"\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x72\x65\x63\x65\x69\x76\x65\x72\x20\x6c\x65\x6e\x67\x74\x68"}; +static const mp_obj_str_t const_obj_apps_zcash_unified_addresses_10 = {{&mp_type_str}, 15353, 30, (const byte*)"\x4d\x75\x6c\x74\x69\x70\x6c\x65\x20\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x20\x72\x65\x63\x65\x69\x76\x65\x72\x73"}; +static const mp_obj_str_t const_obj_apps_zcash_unified_addresses_11 = {{&mp_type_str}, 38574, 25, (const byte*)"\x4f\x6e\x6c\x79\x20\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x20\x72\x65\x63\x65\x69\x76\x65\x72"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_zcash_unified_addresses[12] = { + MP_ROM_QSTR(MP_QSTR_Zcash_space_Testnet), + MP_ROM_QSTR(MP_QSTR_Bech32m_space_decoding_space_failed_dot_), + MP_ROM_PTR(&const_obj_apps_zcash_unified_addresses_2), + MP_ROM_PTR(&const_obj_apps_zcash_unified_addresses_3), + MP_ROM_QSTR(MP_QSTR_Invalid_space_padding_space_bytes), + MP_ROM_QSTR(MP_QSTR_Duplicated_space_typecode), + MP_ROM_QSTR(MP_QSTR_Invalid_space_typecode), + MP_ROM_QSTR(MP_QSTR_Invalid_space_receivers_space_order), + MP_ROM_PTR(&const_obj_apps_zcash_unified_addresses_8), + MP_ROM_QSTR(MP_QSTR_Invalid_space_receiver_space_length), + MP_ROM_PTR(&const_obj_apps_zcash_unified_addresses_10), + MP_ROM_PTR(&const_obj_apps_zcash_unified_addresses_11), +}; + +static const mp_frozen_module_t frozen_module_apps_zcash_unified_addresses = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_zcash_unified_addresses, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_zcash_unified_addresses, + }, + .rc = &raw_code_apps_zcash_unified_addresses__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_webauthn___init__ +// - original source file: build/firmware/src/apps/webauthn/__init__.mpy +// - frozen file name: apps/webauthn/__init__.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/webauthn/__init__.py, scope apps_webauthn___init____lt_module_gt_ +static const byte fun_data_apps_webauthn___init____lt_module_gt_[9] = { + 0x00,0x02, // prelude + 0x01, // names: + // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'boot' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn___init____lt_module_gt_ +// frozen bytecode for file apps/webauthn/__init__.py, scope apps_webauthn___init___boot +static const byte fun_data_apps_webauthn___init___boot[48] = { + 0x30,0x0a, // prelude + 0x02, // names: boot + 0x20,0x25,0x4b,0x4b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'usb' + 0xc0, // STORE_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'loop' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor' + 0x1c,0x04, // IMPORT_FROM 'loop' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x06, // LOAD_CONST_STRING 'handle_reports' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'fido2' + 0x1c,0x06, // IMPORT_FROM 'handle_reports' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x08, // LOAD_METHOD 'schedule' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x09, // LOAD_ATTR 'iface_webauthn' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn___init___boot = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn___init___boot, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 48, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_webauthn___init___boot + 3, + .line_info_top = fun_data_apps_webauthn___init___boot + 7, + .opcodes = fun_data_apps_webauthn___init___boot + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn___init____lt_module_gt_[] = { + &raw_code_apps_webauthn___init___boot, +}; + +static const mp_raw_code_t raw_code_apps_webauthn___init____lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 9, + #endif + .children = (void *)&children_apps_webauthn___init____lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_webauthn___init____lt_module_gt_ + 3, + .line_info_top = fun_data_apps_webauthn___init____lt_module_gt_ + 3, + .opcodes = fun_data_apps_webauthn___init____lt_module_gt_ + 3, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_webauthn___init__[10] = { + MP_QSTR_apps_slash_webauthn_slash___init___dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_boot, + MP_QSTR_usb, + MP_QSTR_loop, + MP_QSTR_trezor, + MP_QSTR_handle_reports, + MP_QSTR_fido2, + MP_QSTR_schedule, + MP_QSTR_iface_webauthn, +}; + +static const mp_frozen_module_t frozen_module_apps_webauthn___init__ = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_webauthn___init__, + .obj_table = NULL, + }, + .rc = &raw_code_apps_webauthn___init____lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_webauthn_add_resident_credential +// - original source file: build/firmware/src/apps/webauthn/add_resident_credential.mpy +// - frozen file name: apps/webauthn/add_resident_credential.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/webauthn/add_resident_credential.py, scope apps_webauthn_add_resident_credential__lt_module_gt_ +static const byte fun_data_apps_webauthn_add_resident_credential__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'add_resident_credential' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_add_resident_credential__lt_module_gt_ +// frozen bytecode for file apps/webauthn/add_resident_credential.py, scope apps_webauthn_add_resident_credential_add_resident_credential +static const byte fun_data_apps_webauthn_add_resident_credential_add_resident_credential[221] = { + 0xf5,0x40,0x36, // prelude + 0x02,0x1a, // names: add_resident_credential, msg + 0x80,0x07,0x27,0x2b,0x2b,0x2b,0x4b,0x2b,0x4b,0x27,0x28,0x25,0x48,0x22,0x57,0x21,0x22,0x6b,0x21,0x22,0x25,0x25,0x6d,0x26,0x49, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'storage.device' + 0x13,0x04, // LOAD_ATTR 'device' + 0xc1, // STORE_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x05, // IMPORT_FROM 'wire' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'Success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.messages' + 0x1c,0x07, // IMPORT_FROM 'Success' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'show_error_and_raise' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x09, // IMPORT_FROM 'show_error_and_raise' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'confirm_fido' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'trezor.ui.layouts.fido' + 0x1c,0x0b, // IMPORT_FROM 'confirm_fido' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0d, // LOAD_CONST_STRING 'Fido2Credential' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'credential' + 0x1c,0x0d, // IMPORT_FROM 'Fido2Credential' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0f, // LOAD_CONST_STRING 'store_resident_credential' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'resident_credentials' + 0x1c,0x0f, // IMPORT_FROM 'store_resident_credential' + 0xc7, // STORE_FAST 7 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x11, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x12, // LOAD_METHOD 'NotInitialized' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'credential_id' + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x14, // LOAD_METHOD 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x48,0x10, // SETUP_EXCEPT 16 + 0xb6, // LOAD_FAST 6 + 0x14,0x15, // LOAD_METHOD 'from_cred_id' + 0x12,0x1b, // LOAD_GLOBAL 'bytes' + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'credential_id' + 0x34,0x01, // CALL_FUNCTION 1 + 0x51, // LOAD_CONST_NONE + 0x36,0x02, // CALL_METHOD 2 + 0xc8, // STORE_FAST 8 + 0x4a,0x15, // POP_EXCEPT_JUMP 21 + 0x57, // DUP_TOP + 0x12,0x1c, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb5, // LOAD_FAST 5 + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0xb8, // LOAD_FAST 8 + 0x14,0x16, // LOAD_METHOD 'app_name' + 0x36,0x00, // CALL_METHOD 0 + 0xb8, // LOAD_FAST 8 + 0x14,0x17, // LOAD_METHOD 'icon_name' + 0x36,0x00, // CALL_METHOD 0 + 0xb8, // LOAD_FAST 8 + 0x14,0x18, // LOAD_METHOD 'account_name' + 0x36,0x00, // CALL_METHOD 0 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb3, // LOAD_FAST 3 + 0x10,0x19, // LOAD_CONST_STRING 'message' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x14,0x14, // LOAD_METHOD 'ProcessError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_add_resident_credential_add_resident_credential = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_add_resident_credential_add_resident_credential, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 221, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_webauthn_add_resident_credential_add_resident_credential + 5, + .line_info_top = fun_data_apps_webauthn_add_resident_credential_add_resident_credential + 30, + .opcodes = fun_data_apps_webauthn_add_resident_credential_add_resident_credential + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_add_resident_credential__lt_module_gt_[] = { + &raw_code_apps_webauthn_add_resident_credential_add_resident_credential, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_add_resident_credential__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_add_resident_credential__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_webauthn_add_resident_credential__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_webauthn_add_resident_credential__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_webauthn_add_resident_credential__lt_module_gt_ + 6, + .opcodes = fun_data_apps_webauthn_add_resident_credential__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_webauthn_add_resident_credential[29] = { + MP_QSTR_apps_slash_webauthn_slash_add_resident_credential_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_add_resident_credential, + MP_QSTR_storage_dot_device, + MP_QSTR_device, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_Success, + MP_QSTR_trezor_dot_messages, + MP_QSTR_show_error_and_raise, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_confirm_fido, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_fido, + MP_QSTR_Fido2Credential, + MP_QSTR_credential, + MP_QSTR_store_resident_credential, + MP_QSTR_resident_credentials, + MP_QSTR_is_initialized, + MP_QSTR_NotInitialized, + MP_QSTR_credential_id, + MP_QSTR_ProcessError, + MP_QSTR_from_cred_id, + MP_QSTR_app_name, + MP_QSTR_icon_name, + MP_QSTR_account_name, + MP_QSTR_message, + MP_QSTR_msg, + MP_QSTR_bytes, + MP_QSTR_Exception, +}; + +// constants +static const mp_obj_str_t const_obj_apps_webauthn_add_resident_credential_0 = {{&mp_type_str}, 4478, 25, (const byte*)"\x44\x65\x76\x69\x63\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64"}; +static const mp_obj_str_t const_obj_apps_webauthn_add_resident_credential_1 = {{&mp_type_str}, 768, 32, (const byte*)"\x4d\x69\x73\x73\x69\x6e\x67\x20\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x20\x49\x44\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x2e"}; +static const mp_obj_str_t const_obj_apps_webauthn_add_resident_credential_3 = {{&mp_type_str}, 28786, 78, (const byte*)"\x54\x68\x65\x20\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x20\x79\x6f\x75\x20\x61\x72\x65\x20\x74\x72\x79\x69\x6e\x67\x20\x74\x6f\x20\x69\x6d\x70\x6f\x72\x74\x20\x64\x6f\x65\x73\x0a\x6e\x6f\x74\x20\x62\x65\x6c\x6f\x6e\x67\x20\x74\x6f\x20\x74\x68\x69\x73\x20\x61\x75\x74\x68\x65\x6e\x74\x69\x63\x61\x74\x6f\x72\x2e"}; +static const mp_obj_str_t const_obj_apps_webauthn_add_resident_credential_6 = {{&mp_type_str}, 10967, 36, (const byte*)"\x49\x6e\x74\x65\x72\x6e\x61\x6c\x20\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x20\x73\x74\x6f\x72\x61\x67\x65\x20\x69\x73\x20\x66\x75\x6c\x6c\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_webauthn_add_resident_credential[7] = { + MP_ROM_PTR(&const_obj_apps_webauthn_add_resident_credential_0), + MP_ROM_PTR(&const_obj_apps_webauthn_add_resident_credential_1), + MP_ROM_QSTR(MP_QSTR_warning_credential), + MP_ROM_PTR(&const_obj_apps_webauthn_add_resident_credential_3), + MP_ROM_QSTR(MP_QSTR_Import_space_credential), + MP_ROM_QSTR(MP_QSTR_Credential_space_added), + MP_ROM_PTR(&const_obj_apps_webauthn_add_resident_credential_6), +}; + +static const mp_frozen_module_t frozen_module_apps_webauthn_add_resident_credential = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_webauthn_add_resident_credential, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_webauthn_add_resident_credential, + }, + .rc = &raw_code_apps_webauthn_add_resident_credential__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_webauthn_common +// - original source file: build/firmware/src/apps/webauthn/common.mpy +// - frozen file name: apps/webauthn/common.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/webauthn/common.py, scope apps_webauthn_common__lt_module_gt_ +static const byte fun_data_apps_webauthn_common__lt_module_gt_[66] = { + 0x08,0x1a, // prelude + 0x01, // names: + 0x6c,0x23,0x23,0x23,0x23,0x63,0x23,0x23,0x64,0x23,0x63,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x04, // STORE_NAME 'COSE_KEY_KTY' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x16,0x05, // STORE_NAME 'COSE_KEY_ALG' + 0x7f, // LOAD_CONST_SMALL_INT -1 + 0x16,0x06, // STORE_NAME 'COSE_KEY_CRV' + 0x7e, // LOAD_CONST_SMALL_INT -2 + 0x16,0x07, // STORE_NAME 'COSE_KEY_X' + 0x7d, // LOAD_CONST_SMALL_INT -3 + 0x16,0x08, // STORE_NAME 'COSE_KEY_Y' + 0x79, // LOAD_CONST_SMALL_INT -7 + 0x16,0x09, // STORE_NAME 'COSE_ALG_ES256' + 0x78, // LOAD_CONST_SMALL_INT -8 + 0x16,0x0a, // STORE_NAME 'COSE_ALG_EDDSA' + 0x22,0x67, // LOAD_CONST_SMALL_INT -25 + 0x16,0x0b, // STORE_NAME 'COSE_ALG_ECDH_ES_HKDF_256' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x0c, // STORE_NAME 'COSE_KEYTYPE_OKP' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x16,0x0d, // STORE_NAME 'COSE_KEYTYPE_EC2' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x16,0x0e, // STORE_NAME 'COSE_CURVE_P256' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x16,0x0f, // STORE_NAME 'COSE_CURVE_ED25519' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_common__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_common__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 66, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_webauthn_common__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_webauthn_common__lt_module_gt_ + 15, + .opcodes = fun_data_apps_webauthn_common__lt_module_gt_ + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_webauthn_common[16] = { + MP_QSTR_apps_slash_webauthn_slash_common_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_COSE_KEY_KTY, + MP_QSTR_COSE_KEY_ALG, + MP_QSTR_COSE_KEY_CRV, + MP_QSTR_COSE_KEY_X, + MP_QSTR_COSE_KEY_Y, + MP_QSTR_COSE_ALG_ES256, + MP_QSTR_COSE_ALG_EDDSA, + MP_QSTR_COSE_ALG_ECDH_ES_HKDF_256, + MP_QSTR_COSE_KEYTYPE_OKP, + MP_QSTR_COSE_KEYTYPE_EC2, + MP_QSTR_COSE_CURVE_P256, + MP_QSTR_COSE_CURVE_ED25519, +}; + +static const mp_frozen_module_t frozen_module_apps_webauthn_common = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_webauthn_common, + .obj_table = NULL, + }, + .rc = &raw_code_apps_webauthn_common__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_webauthn_credential +// - original source file: build/firmware/src/apps/webauthn/credential.mpy +// - frozen file name: apps/webauthn/credential.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential__lt_module_gt_ +static const byte fun_data_apps_webauthn_credential__lt_module_gt_[257] = { + 0x28,0x36, // prelude + 0x01, // names: + 0x26,0x4c,0x4c,0x28,0x2c,0x1f,0x25,0x52,0x32,0x4c,0x5e,0x80,0x07,0x44,0x85,0x17,0x24,0x64,0x22,0x25,0x87,0x07,0x89,0x38,0x9b,0x07, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'ustruct' + 0x16,0x02, // STORE_NAME 'ustruct' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'micropython' + 0x1c,0x03, // IMPORT_FROM 'const' + 0x16,0x03, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'hexlify' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'ubinascii' + 0x1c,0x05, // IMPORT_FROM 'hexlify' + 0x16,0x05, // STORE_NAME 'hexlify' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x07, // IMPORT_NAME 'storage.device' + 0x13,0x08, // LOAD_ATTR 'device' + 0x16,0x73, // STORE_NAME 'storage_device' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'utils' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor' + 0x1c,0x09, // IMPORT_FROM 'utils' + 0x16,0x09, // STORE_NAME 'utils' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0b, // LOAD_CONST_STRING 'chacha20poly1305' + 0x10,0x0c, // LOAD_CONST_STRING 'der' + 0x10,0x0d, // LOAD_CONST_STRING 'hashlib' + 0x10,0x0e, // LOAD_CONST_STRING 'hmac' + 0x10,0x0f, // LOAD_CONST_STRING 'random' + 0x2a,0x05, // BUILD_TUPLE 5 + 0x1b,0x10, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x0b, // IMPORT_FROM 'chacha20poly1305' + 0x16,0x0b, // STORE_NAME 'chacha20poly1305' + 0x1c,0x0c, // IMPORT_FROM 'der' + 0x16,0x0c, // STORE_NAME 'der' + 0x1c,0x0d, // IMPORT_FROM 'hashlib' + 0x16,0x0d, // STORE_NAME 'hashlib' + 0x1c,0x0e, // IMPORT_FROM 'hmac' + 0x16,0x0e, // STORE_NAME 'hmac' + 0x1c,0x0f, // IMPORT_FROM 'random' + 0x16,0x0f, // STORE_NAME 'random' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'ed25519' + 0x10,0x12, // LOAD_CONST_STRING 'nist256p1' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x13, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x11, // IMPORT_FROM 'ed25519' + 0x16,0x11, // STORE_NAME 'ed25519' + 0x1c,0x12, // IMPORT_FROM 'nist256p1' + 0x16,0x12, // STORE_NAME 'nist256p1' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x14, // LOAD_CONST_STRING 'cbor' + 0x10,0x15, // LOAD_CONST_STRING 'seed' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x16, // IMPORT_NAME 'apps.common' + 0x1c,0x14, // IMPORT_FROM 'cbor' + 0x16,0x14, // STORE_NAME 'cbor' + 0x1c,0x15, // IMPORT_FROM 'seed' + 0x16,0x15, // STORE_NAME 'seed' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING 'HARDENED' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME 'apps.common.paths' + 0x1c,0x17, // IMPORT_FROM 'HARDENED' + 0x16,0x17, // STORE_NAME 'HARDENED' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x19, // LOAD_CONST_STRING 'COSE_ALG_EDDSA' + 0x10,0x1a, // LOAD_CONST_STRING 'COSE_ALG_ES256' + 0x10,0x1b, // LOAD_CONST_STRING 'COSE_CURVE_ED25519' + 0x10,0x1c, // LOAD_CONST_STRING 'COSE_CURVE_P256' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x1d, // IMPORT_NAME 'common' + 0x1c,0x19, // IMPORT_FROM 'COSE_ALG_EDDSA' + 0x16,0x19, // STORE_NAME 'COSE_ALG_EDDSA' + 0x1c,0x1a, // IMPORT_FROM 'COSE_ALG_ES256' + 0x16,0x1a, // STORE_NAME 'COSE_ALG_ES256' + 0x1c,0x1b, // IMPORT_FROM 'COSE_CURVE_ED25519' + 0x16,0x1b, // STORE_NAME 'COSE_CURVE_ED25519' + 0x1c,0x1c, // IMPORT_FROM 'COSE_CURVE_P256' + 0x16,0x1c, // STORE_NAME 'COSE_CURVE_P256' + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x74, // STORE_NAME '_CRED_ID_VERSION' + 0x22,0x88,0x00, // LOAD_CONST_SMALL_INT 1024 + 0x16,0x75, // STORE_NAME 'CRED_ID_MAX_LENGTH' + 0x11,0x1a, // LOAD_NAME 'COSE_ALG_ES256' + 0x16,0x76, // STORE_NAME '_DEFAULT_ALGORITHM' + 0x11,0x1c, // LOAD_NAME 'COSE_CURVE_P256' + 0x16,0x77, // STORE_NAME '_DEFAULT_CURVE' + 0x2c,0x02, // BUILD_MAP 2 + 0x10,0x11, // LOAD_CONST_STRING 'ed25519' + 0x11,0x1b, // LOAD_NAME 'COSE_CURVE_ED25519' + 0x62, // STORE_MAP + 0x10,0x12, // LOAD_CONST_STRING 'nist256p1' + 0x11,0x1c, // LOAD_NAME 'COSE_CURVE_P256' + 0x62, // STORE_MAP + 0x16,0x78, // STORE_NAME '_CURVE_NAME' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x1e, // LOAD_CONST_STRING 'Credential' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x1e, // STORE_NAME 'Credential' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x1f, // LOAD_CONST_STRING 'Fido2Credential' + 0x11,0x1e, // LOAD_NAME 'Credential' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x1f, // STORE_NAME 'Fido2Credential' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x02, // MAKE_FUNCTION 2 + 0x10,0x20, // LOAD_CONST_STRING 'U2fCredential' + 0x11,0x1e, // LOAD_NAME 'Credential' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x20, // STORE_NAME 'U2fCredential' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_credential__lt_module_gt_ +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Credential +static const byte fun_data_apps_webauthn_credential_Credential[86] = { + 0x08,0x24, // prelude + 0x1e, // names: Credential + 0x88,0x3d,0x84,0x07,0x64,0x64,0x64,0x60,0x64,0x64,0x64,0x64,0x84,0x07,0x64,0x64,0x64, // code info + 0x11,0x79, // LOAD_NAME '__name__' + 0x16,0x7a, // STORE_NAME '__module__' + 0x10,0x1e, // LOAD_CONST_STRING 'Credential' + 0x16,0x7b, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x21, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x28, // STORE_NAME '__lt__' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x29, // STORE_NAME 'app_name' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x2a, // STORE_NAME 'icon_name' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x2d, // STORE_NAME 'account_name' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x2e, // STORE_NAME 'public_key' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x2f, // STORE_NAME '_private_key' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x30, // STORE_NAME 'sign' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x31, // STORE_NAME '_u2f_sign' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x36, // STORE_NAME 'bogus_signature' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x37, // STORE_NAME 'hmac_secret_key' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x38, // STORE_NAME 'next_signature_counter' + 0x11,0x7c, // LOAD_NAME 'staticmethod' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x3a, // STORE_NAME 'from_bytes' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_credential_Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Credential___init__ +static const byte fun_data_apps_webauthn_credential_Credential___init__[35] = { + 0x11,0x10, // prelude + 0x21,0x7e, // names: __init__, self + 0x80,0x3e,0x24,0x25,0x25,0x25, // code info + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x22, // STORE_ATTR 'index' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x23, // STORE_ATTR 'id' + 0x10,0x24, // LOAD_CONST_STRING '' + 0xb0, // LOAD_FAST 0 + 0x18,0x25, // STORE_ATTR 'rp_id' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x26, // STORE_ATTR 'rp_id_hash' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x27, // STORE_ATTR 'user_id' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Credential___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Credential___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_webauthn_credential_Credential___init__ + 4, + .line_info_top = fun_data_apps_webauthn_credential_Credential___init__ + 10, + .opcodes = fun_data_apps_webauthn_credential_Credential___init__ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Credential___lt__ +static const byte fun_data_apps_webauthn_credential_Credential___lt__[13] = { + 0x12,0x0a, // prelude + 0x28,0x7e,0x7f, // names: __lt__, self, other + 0x80,0x45, // code info + 0x12,0x81,0x00, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Credential___lt__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_credential_Credential___lt__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_webauthn_credential_Credential___lt__ + 5, + .line_info_top = fun_data_apps_webauthn_credential_Credential___lt__ + 7, + .opcodes = fun_data_apps_webauthn_credential_Credential___lt__ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Credential_app_name +static const byte fun_data_apps_webauthn_credential_Credential_app_name[12] = { + 0x09,0x08, // prelude + 0x29,0x7e, // names: app_name, self + 0x80,0x48, // code info + 0x12,0x81,0x00, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Credential_app_name = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Credential_app_name, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_webauthn_credential_Credential_app_name + 4, + .line_info_top = fun_data_apps_webauthn_credential_Credential_app_name + 6, + .opcodes = fun_data_apps_webauthn_credential_Credential_app_name + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Credential_icon_name +static const byte fun_data_apps_webauthn_credential_Credential_icon_name[39] = { + 0x29,0x0c, // prelude + 0x2a,0x7e, // names: icon_name, self + 0x80,0x4b,0x4b,0x29, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x2b, // LOAD_CONST_STRING 'knownapps' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x24, // IMPORT_NAME '' + 0x1c,0x2b, // IMPORT_FROM 'knownapps' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x2c, // LOAD_METHOD 'by_rp_id_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'rp_id_hash' + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x13,0x2a, // LOAD_ATTR 'icon_name' + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Credential_icon_name = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Credential_icon_name, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_webauthn_credential_Credential_icon_name + 4, + .line_info_top = fun_data_apps_webauthn_credential_Credential_icon_name + 8, + .opcodes = fun_data_apps_webauthn_credential_Credential_icon_name + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Credential_account_name +static const byte fun_data_apps_webauthn_credential_Credential_account_name[8] = { + 0x09,0x08, // prelude + 0x2d,0x7e, // names: account_name, self + 0x80,0x51, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Credential_account_name = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Credential_account_name, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 8, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_webauthn_credential_Credential_account_name + 4, + .line_info_top = fun_data_apps_webauthn_credential_Credential_account_name + 6, + .opcodes = fun_data_apps_webauthn_credential_Credential_account_name + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Credential_public_key +static const byte fun_data_apps_webauthn_credential_Credential_public_key[12] = { + 0x09,0x08, // prelude + 0x2e,0x7e, // names: public_key, self + 0x80,0x54, // code info + 0x12,0x81,0x00, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Credential_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Credential_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_webauthn_credential_Credential_public_key + 4, + .line_info_top = fun_data_apps_webauthn_credential_Credential_public_key + 6, + .opcodes = fun_data_apps_webauthn_credential_Credential_public_key + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Credential__private_key +static const byte fun_data_apps_webauthn_credential_Credential__private_key[12] = { + 0x09,0x08, // prelude + 0x2f,0x7e, // names: _private_key, self + 0x80,0x57, // code info + 0x12,0x81,0x00, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Credential__private_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Credential__private_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_apps_webauthn_credential_Credential__private_key + 4, + .line_info_top = fun_data_apps_webauthn_credential_Credential__private_key + 6, + .opcodes = fun_data_apps_webauthn_credential_Credential__private_key + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Credential_sign +static const byte fun_data_apps_webauthn_credential_Credential_sign[14] = { + 0x12,0x0c, // prelude + 0x30,0x7e,0x81,0x01, // names: sign, self, data + 0x80,0x5a, // code info + 0x12,0x81,0x00, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Credential_sign = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_credential_Credential_sign, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 48, + .line_info = fun_data_apps_webauthn_credential_Credential_sign + 6, + .line_info_top = fun_data_apps_webauthn_credential_Credential_sign + 8, + .opcodes = fun_data_apps_webauthn_credential_Credential_sign + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Credential__u2f_sign +static const byte fun_data_apps_webauthn_credential_Credential__u2f_sign[72] = { + 0x5a,0x14, // prelude + 0x31,0x7e,0x81,0x01, // names: _u2f_sign, self, data + 0x80,0x5d,0x27,0x25,0x29,0x32, // code info + 0x12,0x0d, // LOAD_GLOBAL 'hashlib' + 0x14,0x32, // LOAD_METHOD 'sha256' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x0a, // FOR_ITER 10 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x14,0x33, // LOAD_METHOD 'update' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x34, // JUMP -12 + 0x12,0x12, // LOAD_GLOBAL 'nist256p1' + 0x14,0x30, // LOAD_METHOD 'sign' + 0xb0, // LOAD_FAST 0 + 0x14,0x2f, // LOAD_METHOD '_private_key' + 0x36,0x00, // CALL_METHOD 0 + 0xb2, // LOAD_FAST 2 + 0x14,0x34, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x50, // LOAD_CONST_FALSE + 0x36,0x03, // CALL_METHOD 3 + 0xc4, // STORE_FAST 4 + 0x12,0x0c, // LOAD_GLOBAL 'der' + 0x14,0x35, // LOAD_METHOD 'encode_seq' + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb4, // LOAD_FAST 4 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Credential__u2f_sign = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_credential_Credential__u2f_sign, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 49, + .line_info = fun_data_apps_webauthn_credential_Credential__u2f_sign + 6, + .line_info_top = fun_data_apps_webauthn_credential_Credential__u2f_sign + 12, + .opcodes = fun_data_apps_webauthn_credential_Credential__u2f_sign + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Credential_bogus_signature +static const byte fun_data_apps_webauthn_credential_Credential_bogus_signature[12] = { + 0x09,0x08, // prelude + 0x36,0x7e, // names: bogus_signature, self + 0x80,0x64, // code info + 0x12,0x81,0x00, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Credential_bogus_signature = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Credential_bogus_signature, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 54, + .line_info = fun_data_apps_webauthn_credential_Credential_bogus_signature + 4, + .line_info_top = fun_data_apps_webauthn_credential_Credential_bogus_signature + 6, + .opcodes = fun_data_apps_webauthn_credential_Credential_bogus_signature + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Credential_hmac_secret_key +static const byte fun_data_apps_webauthn_credential_Credential_hmac_secret_key[8] = { + 0x09,0x08, // prelude + 0x37,0x7e, // names: hmac_secret_key, self + 0x80,0x67, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Credential_hmac_secret_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Credential_hmac_secret_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 8, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 55, + .line_info = fun_data_apps_webauthn_credential_Credential_hmac_secret_key + 4, + .line_info_top = fun_data_apps_webauthn_credential_Credential_hmac_secret_key + 6, + .opcodes = fun_data_apps_webauthn_credential_Credential_hmac_secret_key + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Credential_next_signature_counter +static const byte fun_data_apps_webauthn_credential_Credential_next_signature_counter[16] = { + 0x11,0x08, // prelude + 0x38,0x7e, // names: next_signature_counter, self + 0x80,0x6a, // code info + 0x12,0x73, // LOAD_GLOBAL 'storage_device' + 0x14,0x39, // LOAD_METHOD 'next_u2f_counter' + 0x36,0x00, // CALL_METHOD 0 + 0x45,0x01, // JUMP_IF_TRUE_OR_POP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Credential_next_signature_counter = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Credential_next_signature_counter, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 56, + .line_info = fun_data_apps_webauthn_credential_Credential_next_signature_counter + 4, + .line_info_top = fun_data_apps_webauthn_credential_Credential_next_signature_counter + 6, + .opcodes = fun_data_apps_webauthn_credential_Credential_next_signature_counter + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Credential_from_bytes +static const byte fun_data_apps_webauthn_credential_Credential_from_bytes[45] = { + 0x46,0x10, // prelude + 0x3a,0x81,0x01,0x26, // names: from_bytes, data, rp_id_hash + 0x80,0x6e,0x22,0x53, // code info + 0x48,0x0b, // SETUP_EXCEPT 11 + 0x12,0x1f, // LOAD_GLOBAL 'Fido2Credential' + 0x14,0x3b, // LOAD_METHOD 'from_cred_id' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE + 0x4a,0x14, // POP_EXCEPT_JUMP 20 + 0x57, // DUP_TOP + 0x12,0x81,0x02, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x59, // POP_TOP + 0x12,0x20, // LOAD_GLOBAL 'U2fCredential' + 0x14,0x3c, // LOAD_METHOD 'from_key_handle' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Credential_from_bytes = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_credential_Credential_from_bytes, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 58, + .line_info = fun_data_apps_webauthn_credential_Credential_from_bytes + 6, + .line_info_top = fun_data_apps_webauthn_credential_Credential_from_bytes + 10, + .opcodes = fun_data_apps_webauthn_credential_Credential_from_bytes + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_credential_Credential[] = { + &raw_code_apps_webauthn_credential_Credential___init__, + &raw_code_apps_webauthn_credential_Credential___lt__, + &raw_code_apps_webauthn_credential_Credential_app_name, + &raw_code_apps_webauthn_credential_Credential_icon_name, + &raw_code_apps_webauthn_credential_Credential_account_name, + &raw_code_apps_webauthn_credential_Credential_public_key, + &raw_code_apps_webauthn_credential_Credential__private_key, + &raw_code_apps_webauthn_credential_Credential_sign, + &raw_code_apps_webauthn_credential_Credential__u2f_sign, + &raw_code_apps_webauthn_credential_Credential_bogus_signature, + &raw_code_apps_webauthn_credential_Credential_hmac_secret_key, + &raw_code_apps_webauthn_credential_Credential_next_signature_counter, + &raw_code_apps_webauthn_credential_Credential_from_bytes, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_credential_Credential = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_credential_Credential, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 86, + #endif + .children = (void *)&children_apps_webauthn_credential_Credential, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 13, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_apps_webauthn_credential_Credential + 3, + .line_info_top = fun_data_apps_webauthn_credential_Credential + 20, + .opcodes = fun_data_apps_webauthn_credential_Credential + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential__lt_module_gt_ +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Fido2Credential +static const byte fun_data_apps_webauthn_credential_Fido2Credential[114] = { + 0x10,0x43, // prelude + 0x1f, // names: Fido2Credential + 0x88,0x75,0x60,0x40,0x86,0x0b,0x84,0x08,0x84,0x26,0x88,0x3f,0x84,0x0c,0x84,0x08,0x84,0x0f,0x84,0x09,0x84,0x0a,0x84,0x07,0x84,0x1c,0x84,0x10,0x84,0x0e,0x84,0x0c,0x00, // code info + 0x11,0x79, // LOAD_NAME '__name__' + 0x16,0x7a, // STORE_NAME '__module__' + 0x10,0x1f, // LOAD_CONST_STRING 'Fido2Credential' + 0x16,0x7b, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x21, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x28, // STORE_NAME '__lt__' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x45, // STORE_NAME 'generate_id' + 0x11,0x7d, // LOAD_NAME 'classmethod' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x3b, // STORE_NAME 'from_cred_id' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x53, // STORE_NAME 'truncate_names' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x46, // STORE_NAME 'check_required_fields' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x52, // STORE_NAME 'check_data_types' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x29, // STORE_NAME 'app_name' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x2d, // STORE_NAME 'account_name' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x2f, // STORE_NAME '_private_key' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x2e, // STORE_NAME 'public_key' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x30, // STORE_NAME 'sign' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x36, // STORE_NAME 'bogus_signature' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x37, // STORE_NAME 'hmac_secret_key' + 0xb0, // LOAD_FAST 0 + 0x20,0x0e,0x01, // MAKE_CLOSURE 14 + 0x16,0x38, // STORE_NAME 'next_signature_counter' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_credential_Fido2Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Fido2Credential___init__ +static const byte fun_data_apps_webauthn_credential_Fido2Credential___init__[63] = { + 0x22,0x1c, // prelude + 0x21,0x81,0x03,0x7e, // names: __init__, *, self + 0x80,0x7b,0x2b,0x24,0x24,0x24,0x24,0x24,0x24,0x25, // code info + 0x12,0x81,0x04, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x21, // LOAD_SUPER_METHOD '__init__' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x18,0x3d, // STORE_ATTR 'rp_name' + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x18,0x3e, // STORE_ATTR 'user_name' + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x18,0x3f, // STORE_ATTR 'user_display_name' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x40, // STORE_ATTR 'creation_time' + 0x50, // LOAD_CONST_FALSE + 0xb1, // LOAD_FAST 1 + 0x18,0x41, // STORE_ATTR 'hmac_secret' + 0x50, // LOAD_CONST_FALSE + 0xb1, // LOAD_FAST 1 + 0x18,0x42, // STORE_ATTR 'use_sign_count' + 0x12,0x76, // LOAD_GLOBAL '_DEFAULT_ALGORITHM' + 0xb1, // LOAD_FAST 1 + 0x18,0x43, // STORE_ATTR 'algorithm' + 0x12,0x77, // LOAD_GLOBAL '_DEFAULT_CURVE' + 0xb1, // LOAD_FAST 1 + 0x18,0x44, // STORE_ATTR 'curve' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Fido2Credential___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_credential_Fido2Credential___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 63, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_webauthn_credential_Fido2Credential___init__ + 6, + .line_info_top = fun_data_apps_webauthn_credential_Fido2Credential___init__ + 16, + .opcodes = fun_data_apps_webauthn_credential_Fido2Credential___init__ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Fido2Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Fido2Credential___lt__ +static const byte fun_data_apps_webauthn_credential_Fido2Credential___lt__[29] = { + 0x22,0x0e, // prelude + 0x28,0x7e,0x7f, // names: __lt__, self, other + 0x80,0x87,0x2a,0x68, // code info + 0x12,0x81,0x05, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x1f, // LOAD_GLOBAL 'Fido2Credential' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x40, // LOAD_ATTR 'creation_time' + 0xb1, // LOAD_FAST 1 + 0x13,0x40, // LOAD_ATTR 'creation_time' + 0xd8, // BINARY_OP 1 __gt__ + 0x63, // RETURN_VALUE + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Fido2Credential___lt__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_credential_Fido2Credential___lt__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_webauthn_credential_Fido2Credential___lt__ + 5, + .line_info_top = fun_data_apps_webauthn_credential_Fido2Credential___lt__ + 9, + .opcodes = fun_data_apps_webauthn_credential_Fido2Credential___lt__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Fido2Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Fido2Credential_generate_id +static const byte fun_data_apps_webauthn_credential_Fido2Credential_generate_id[232] = { + 0x81,0x10,0x3c, // prelude + 0x45,0x7e, // names: generate_id, self + 0x80,0x8e,0x4c,0x27,0x44,0x42,0x20,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x6b,0x40,0x30,0x26,0x46,0x24,0x4f,0x28,0x27,0x29,0x2d,0x26,0x4b,0x2e, // code info + 0x12,0x73, // LOAD_GLOBAL 'storage_device' + 0x14,0x39, // LOAD_METHOD 'next_u2f_counter' + 0x36,0x00, // CALL_METHOD 0 + 0x45,0x01, // JUMP_IF_TRUE_OR_POP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x40, // STORE_ATTR 'creation_time' + 0xb0, // LOAD_FAST 0 + 0x14,0x46, // LOAD_METHOD 'check_required_fields' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0x12,0x81,0x06, // LOAD_GLOBAL 'AssertionError' + 0x65, // RAISE_OBJ + 0x32,0x00, // MAKE_FUNCTION 0 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'rp_id' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x3d, // LOAD_ATTR 'rp_name' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'user_id' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x3e, // LOAD_ATTR 'user_name' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'user_display_name' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x40, // LOAD_ATTR 'creation_time' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x41, // LOAD_ATTR 'hmac_secret' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x42, // LOAD_ATTR 'use_sign_count' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x2a,0x08, // BUILD_TUPLE 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x43, // LOAD_ATTR 'algorithm' + 0x12,0x76, // LOAD_GLOBAL '_DEFAULT_ALGORITHM' + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x44, // LOAD_ATTR 'curve' + 0x12,0x77, // LOAD_GLOBAL '_DEFAULT_CURVE' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb0, // LOAD_FAST 0 + 0x13,0x43, // LOAD_ATTR 'algorithm' + 0xb1, // LOAD_FAST 1 + 0x89, // LOAD_CONST_SMALL_INT 9 + 0x56, // STORE_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x13,0x44, // LOAD_ATTR 'curve' + 0xb1, // LOAD_FAST 1 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x56, // STORE_SUBSCR + 0x12,0x15, // LOAD_GLOBAL 'seed' + 0x14,0x47, // LOAD_METHOD 'derive_slip21_node_without_passphrase' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x12,0x74, // LOAD_GLOBAL '_CRED_ID_VERSION' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x2b,0x03, // BUILD_LIST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x48, // LOAD_METHOD 'key' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0x12,0x0f, // LOAD_GLOBAL 'random' + 0x14,0x49, // LOAD_METHOD 'bytes' + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x12,0x0b, // LOAD_GLOBAL 'chacha20poly1305' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x14,0x4a, // LOAD_METHOD 'auth' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'rp_id_hash' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x4b, // LOAD_METHOD 'encrypt' + 0x12,0x14, // LOAD_GLOBAL 'cbor' + 0x14,0x4c, // LOAD_METHOD 'encode' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0x14,0x4d, // LOAD_METHOD 'finish' + 0x36,0x00, // CALL_METHOD 0 + 0xc6, // STORE_FAST 6 + 0x12,0x74, // LOAD_GLOBAL '_CRED_ID_VERSION' + 0xb3, // LOAD_FAST 3 + 0xf2, // BINARY_OP 27 __add__ + 0xb5, // LOAD_FAST 5 + 0xf2, // BINARY_OP 27 __add__ + 0xb6, // LOAD_FAST 6 + 0xf2, // BINARY_OP 27 __add__ + 0xb0, // LOAD_FAST 0 + 0x18,0x23, // STORE_ATTR 'id' + 0x12,0x81,0x07, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'id' + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x88,0x00, // LOAD_CONST_SMALL_INT 1024 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x12,0x81,0x06, // LOAD_GLOBAL 'AssertionError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_credential_Fido2Credential_generate_id +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Fido2Credential_generate_id__lt_dictcomp_gt_ +static const byte fun_data_apps_webauthn_credential_Fido2Credential_generate_id__lt_dictcomp_gt_[27] = { + 0x49,0x0a, // prelude + 0x6f,0x81,0x03, // names: , * + 0x80,0x94, // code info + 0x2c,0x00, // BUILD_MAP 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0d, // FOR_ITER 13 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc1, // STORE_FAST 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x44,0x37, // POP_JUMP_IF_FALSE -9 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x2f,0x19, // STORE_COMP 25 + 0x42,0x31, // JUMP -15 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Fido2Credential_generate_id__lt_dictcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Fido2Credential_generate_id__lt_dictcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 27, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 111, + .line_info = fun_data_apps_webauthn_credential_Fido2Credential_generate_id__lt_dictcomp_gt_ + 5, + .line_info_top = fun_data_apps_webauthn_credential_Fido2Credential_generate_id__lt_dictcomp_gt_ + 7, + .opcodes = fun_data_apps_webauthn_credential_Fido2Credential_generate_id__lt_dictcomp_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_credential_Fido2Credential_generate_id[] = { + &raw_code_apps_webauthn_credential_Fido2Credential_generate_id__lt_dictcomp_gt_, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_credential_Fido2Credential_generate_id = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Fido2Credential_generate_id, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 232, + #endif + .children = (void *)&children_apps_webauthn_credential_Fido2Credential_generate_id, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 69, + .line_info = fun_data_apps_webauthn_credential_Fido2Credential_generate_id + 5, + .line_info_top = fun_data_apps_webauthn_credential_Fido2Credential_generate_id + 33, + .opcodes = fun_data_apps_webauthn_credential_Fido2Credential_generate_id + 33, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Fido2Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Fido2Credential_from_cred_id +static const byte fun_data_apps_webauthn_credential_Fido2Credential_from_cred_id[428] = { + 0x93,0x12,0x68, // prelude + 0x3b,0x81,0x08,0x81,0x09,0x26, // names: from_cred_id, cls, cred_id, rp_id_hash + 0x80,0xb7,0x35,0x44,0x24,0x53,0x27,0x27,0x47,0x26,0x27,0x27,0x22,0x56,0x2e,0x4c,0x27,0x27,0x27,0x2e,0x44,0x22,0x54,0x4e,0x2b,0x44,0x44,0x24,0x28,0x24,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x29,0x29,0x44,0x20,0x29,0x27,0x27,0x51,0x44, // code info + 0x12,0x81,0x07, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x12,0x74, // LOAD_GLOBAL '_CRED_ID_VERSION' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x12,0x81,0x0a, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x15, // LOAD_GLOBAL 'seed' + 0x14,0x47, // LOAD_METHOD 'derive_slip21_node_without_passphrase' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x2b,0x03, // BUILD_LIST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x48, // LOAD_METHOD 'key' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x70, // LOAD_CONST_SMALL_INT -16 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x70, // LOAD_CONST_SMALL_INT -16 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc6, // STORE_FAST 6 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0xc0,0x80, // POP_JUMP_IF_FALSE 64 + 0x12,0x0b, // LOAD_GLOBAL 'chacha20poly1305' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x14,0x4e, // LOAD_METHOD 'decrypt' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0xc8, // STORE_FAST 8 + 0x48,0x0c, // SETUP_EXCEPT 12 + 0x12,0x14, // LOAD_GLOBAL 'cbor' + 0x14,0x4f, // LOAD_METHOD 'decode' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0xc9, // STORE_FAST 9 + 0x4a,0x18, // POP_EXCEPT_JUMP 24 + 0x57, // DUP_TOP + 0x12,0x81,0x02, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xca, // STORE_FAST 10 + 0x49,0x06, // SETUP_FINALLY 6 + 0x12,0x81,0x0a, // LOAD_GLOBAL 'ValueError' + 0xba, // LOAD_FAST 10 + 0x66, // RAISE_FROM + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xca, // STORE_FAST 10 + 0x28,0x0a, // DELETE_FAST 10 + 0x5d, // END_FINALLY + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x12,0x0d, // LOAD_GLOBAL 'hashlib' + 0x14,0x32, // LOAD_METHOD 'sha256' + 0xb9, // LOAD_FAST 9 + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x34, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0x12,0x0b, // LOAD_GLOBAL 'chacha20poly1305' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x14,0x4a, // LOAD_METHOD 'auth' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb7, // LOAD_FAST 7 + 0x14,0x4e, // LOAD_METHOD 'decrypt' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0xc8, // STORE_FAST 8 + 0x12,0x09, // LOAD_GLOBAL 'utils' + 0x14,0x50, // LOAD_METHOD 'consteq' + 0xb7, // LOAD_FAST 7 + 0x14,0x4d, // LOAD_METHOD 'finish' + 0x36,0x00, // CALL_METHOD 0 + 0xb6, // LOAD_FAST 6 + 0x36,0x02, // CALL_METHOD 2 + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0x12,0x81,0x0a, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x48,0x0a, // SETUP_EXCEPT 10 + 0x12,0x14, // LOAD_GLOBAL 'cbor' + 0x14,0x4f, // LOAD_METHOD 'decode' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0xc8, // STORE_FAST 8 + 0x4a,0x18, // POP_EXCEPT_JUMP 24 + 0x57, // DUP_TOP + 0x12,0x81,0x02, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xca, // STORE_FAST 10 + 0x49,0x06, // SETUP_FINALLY 6 + 0x12,0x81,0x0a, // LOAD_GLOBAL 'ValueError' + 0xba, // LOAD_FAST 10 + 0x66, // RAISE_FROM + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xca, // STORE_FAST 10 + 0x28,0x0a, // DELETE_FAST 10 + 0x5d, // END_FINALLY + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x12,0x81,0x05, // LOAD_GLOBAL 'isinstance' + 0xb8, // LOAD_FAST 8 + 0x12,0x81,0x0b, // LOAD_GLOBAL 'dict' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0x12,0x81,0x0a, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xb8, // LOAD_FAST 8 + 0x13,0x51, // LOAD_ATTR 'get' + 0xcb, // STORE_FAST 11 + 0xb0, // LOAD_FAST 0 + 0x34,0x00, // CALL_FUNCTION 0 + 0xcc, // STORE_FAST 12 + 0xbb, // LOAD_FAST 11 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x51, // LOAD_CONST_NONE + 0x34,0x02, // CALL_FUNCTION 2 + 0xbc, // LOAD_FAST 12 + 0x18,0x25, // STORE_ATTR 'rp_id' + 0xb2, // LOAD_FAST 2 + 0xbc, // LOAD_FAST 12 + 0x18,0x26, // STORE_ATTR 'rp_id_hash' + 0xbb, // LOAD_FAST 11 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x51, // LOAD_CONST_NONE + 0x34,0x02, // CALL_FUNCTION 2 + 0xbc, // LOAD_FAST 12 + 0x18,0x3d, // STORE_ATTR 'rp_name' + 0xbb, // LOAD_FAST 11 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x51, // LOAD_CONST_NONE + 0x34,0x02, // CALL_FUNCTION 2 + 0xbc, // LOAD_FAST 12 + 0x18,0x27, // STORE_ATTR 'user_id' + 0xbb, // LOAD_FAST 11 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x51, // LOAD_CONST_NONE + 0x34,0x02, // CALL_FUNCTION 2 + 0xbc, // LOAD_FAST 12 + 0x18,0x3e, // STORE_ATTR 'user_name' + 0xbb, // LOAD_FAST 11 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x51, // LOAD_CONST_NONE + 0x34,0x02, // CALL_FUNCTION 2 + 0xbc, // LOAD_FAST 12 + 0x18,0x3f, // STORE_ATTR 'user_display_name' + 0xbb, // LOAD_FAST 11 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0xbc, // LOAD_FAST 12 + 0x18,0x40, // STORE_ATTR 'creation_time' + 0xbb, // LOAD_FAST 11 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x50, // LOAD_CONST_FALSE + 0x34,0x02, // CALL_FUNCTION 2 + 0xbc, // LOAD_FAST 12 + 0x18,0x41, // STORE_ATTR 'hmac_secret' + 0xbb, // LOAD_FAST 11 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x50, // LOAD_CONST_FALSE + 0x34,0x02, // CALL_FUNCTION 2 + 0xbc, // LOAD_FAST 12 + 0x18,0x42, // STORE_ATTR 'use_sign_count' + 0xbb, // LOAD_FAST 11 + 0x89, // LOAD_CONST_SMALL_INT 9 + 0x12,0x76, // LOAD_GLOBAL '_DEFAULT_ALGORITHM' + 0x34,0x02, // CALL_FUNCTION 2 + 0xbc, // LOAD_FAST 12 + 0x18,0x43, // STORE_ATTR 'algorithm' + 0xbb, // LOAD_FAST 11 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x12,0x77, // LOAD_GLOBAL '_DEFAULT_CURVE' + 0x34,0x02, // CALL_FUNCTION 2 + 0xbc, // LOAD_FAST 12 + 0x18,0x44, // STORE_ATTR 'curve' + 0xb1, // LOAD_FAST 1 + 0xbc, // LOAD_FAST 12 + 0x18,0x23, // STORE_ATTR 'id' + 0x89, // LOAD_CONST_SMALL_INT 9 + 0xb8, // LOAD_FAST 8 + 0xdd, // BINARY_OP 6 + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0xb8, // LOAD_FAST 8 + 0xdd, // BINARY_OP 6 + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x5f, // POP_JUMP_IF_TRUE 31 + 0xbc, // LOAD_FAST 12 + 0x14,0x46, // LOAD_METHOD 'check_required_fields' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0xbc, // LOAD_FAST 12 + 0x14,0x52, // LOAD_METHOD 'check_data_types' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x12,0x0d, // LOAD_GLOBAL 'hashlib' + 0x14,0x32, // LOAD_METHOD 'sha256' + 0xbc, // LOAD_FAST 12 + 0x13,0x25, // LOAD_ATTR 'rp_id' + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x34, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xb2, // LOAD_FAST 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x12,0x81,0x0a, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0xbc, // LOAD_FAST 12 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Fido2Credential_from_cred_id = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_webauthn_credential_Fido2Credential_from_cred_id, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 428, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 2, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 59, + .line_info = fun_data_apps_webauthn_credential_Fido2Credential_from_cred_id + 9, + .line_info_top = fun_data_apps_webauthn_credential_Fido2Credential_from_cred_id + 55, + .opcodes = fun_data_apps_webauthn_credential_Fido2Credential_from_cred_id + 55, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Fido2Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Fido2Credential_truncate_names +static const byte fun_data_apps_webauthn_credential_Fido2Credential_truncate_names[64] = { + 0x51,0x14, // prelude + 0x53,0x7e, // names: truncate_names, self + 0x80,0xf3,0x26,0x28,0x23,0x47,0x64,0x2b, // code info + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x5f, // GET_ITER_STACK + 0x4b,0x2d, // FOR_ITER 45 + 0xc1, // STORE_FAST 1 + 0x12,0x81,0x0c, // LOAD_GLOBAL 'getattr' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x44,0x5f, // POP_JUMP_IF_FALSE 31 + 0xb2, // LOAD_FAST 2 + 0x14,0x54, // LOAD_METHOD 'isspace' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x51, // LOAD_CONST_NONE + 0xc2, // STORE_FAST 2 + 0x42,0x4b, // JUMP 11 + 0x12,0x09, // LOAD_GLOBAL 'utils' + 0x14,0x55, // LOAD_METHOD 'truncate_utf8' + 0xb2, // LOAD_FAST 2 + 0x22,0x80,0x64, // LOAD_CONST_SMALL_INT 100 + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0x12,0x81,0x0d, // LOAD_GLOBAL 'setattr' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x42,0x11, // JUMP -47 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Fido2Credential_truncate_names = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Fido2Credential_truncate_names, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 64, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 83, + .line_info = fun_data_apps_webauthn_credential_Fido2Credential_truncate_names + 4, + .line_info_top = fun_data_apps_webauthn_credential_Fido2Credential_truncate_names + 12, + .opcodes = fun_data_apps_webauthn_credential_Fido2Credential_truncate_names + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Fido2Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Fido2Credential_check_required_fields +static const byte fun_data_apps_webauthn_credential_Fido2Credential_check_required_fields[47] = { + 0x11,0x10, // prelude + 0x46,0x7e, // names: check_required_fields, self + 0x80,0xff,0x20,0x28,0x28,0x2e, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'rp_id' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x46,0x1c, // JUMP_IF_FALSE_OR_POP 28 + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'user_id' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x46,0x14, // JUMP_IF_FALSE_OR_POP 20 + 0x12,0x81,0x07, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'user_id' + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xda, // BINARY_OP 3 __le__ + 0x46,0x06, // JUMP_IF_FALSE_OR_POP 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x40, // LOAD_ATTR 'creation_time' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Fido2Credential_check_required_fields = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Fido2Credential_check_required_fields, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 70, + .line_info = fun_data_apps_webauthn_credential_Fido2Credential_check_required_fields + 4, + .line_info_top = fun_data_apps_webauthn_credential_Fido2Credential_check_required_fields + 10, + .opcodes = fun_data_apps_webauthn_credential_Fido2Credential_check_required_fields + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Fido2Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Fido2Credential_check_data_types +static const byte fun_data_apps_webauthn_credential_Fido2Credential_check_data_types[208] = { + 0x29,0x1e, // prelude + 0x52,0x7e, // names: check_data_types, self + 0x90,0x07,0x20,0x2e,0x36,0x2d,0x35,0x35,0x2d,0x2d,0x35,0x35,0x35, // code info + 0x12,0x81,0x05, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'rp_id' + 0x12,0x81,0x0e, // LOAD_GLOBAL 'str' + 0x34,0x02, // CALL_FUNCTION 2 + 0x46,0xb0,0x01, // JUMP_IF_FALSE_OR_POP 176 + 0x12,0x81,0x05, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x13,0x3d, // LOAD_ATTR 'rp_name' + 0x12,0x81,0x0e, // LOAD_GLOBAL 'str' + 0x12,0x81,0x0f, // LOAD_GLOBAL 'type' + 0x51, // LOAD_CONST_NONE + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x46,0x9a,0x01, // JUMP_IF_FALSE_OR_POP 154 + 0x12,0x81,0x05, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'user_id' + 0x12,0x49, // LOAD_GLOBAL 'bytes' + 0x34,0x02, // CALL_FUNCTION 2 + 0x46,0x8d,0x01, // JUMP_IF_FALSE_OR_POP 141 + 0x12,0x81,0x05, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x13,0x3e, // LOAD_ATTR 'user_name' + 0x12,0x81,0x0e, // LOAD_GLOBAL 'str' + 0x12,0x81,0x0f, // LOAD_GLOBAL 'type' + 0x51, // LOAD_CONST_NONE + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x46,0x78, // JUMP_IF_FALSE_OR_POP 120 + 0x12,0x81,0x05, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'user_display_name' + 0x12,0x81,0x0e, // LOAD_GLOBAL 'str' + 0x12,0x81,0x0f, // LOAD_GLOBAL 'type' + 0x51, // LOAD_CONST_NONE + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x46,0x63, // JUMP_IF_FALSE_OR_POP 99 + 0x12,0x81,0x05, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x13,0x41, // LOAD_ATTR 'hmac_secret' + 0x12,0x81,0x10, // LOAD_GLOBAL 'bool' + 0x34,0x02, // CALL_FUNCTION 2 + 0x46,0x56, // JUMP_IF_FALSE_OR_POP 86 + 0x12,0x81,0x05, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x13,0x42, // LOAD_ATTR 'use_sign_count' + 0x12,0x81,0x10, // LOAD_GLOBAL 'bool' + 0x34,0x02, // CALL_FUNCTION 2 + 0x46,0x49, // JUMP_IF_FALSE_OR_POP 73 + 0x12,0x81,0x05, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x13,0x40, // LOAD_ATTR 'creation_time' + 0x12,0x81,0x11, // LOAD_GLOBAL 'int' + 0x12,0x81,0x0f, // LOAD_GLOBAL 'type' + 0x51, // LOAD_CONST_NONE + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x46,0x34, // JUMP_IF_FALSE_OR_POP 52 + 0x12,0x81,0x05, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x13,0x43, // LOAD_ATTR 'algorithm' + 0x12,0x81,0x11, // LOAD_GLOBAL 'int' + 0x12,0x81,0x0f, // LOAD_GLOBAL 'type' + 0x51, // LOAD_CONST_NONE + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x46,0x1f, // JUMP_IF_FALSE_OR_POP 31 + 0x12,0x81,0x05, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x13,0x44, // LOAD_ATTR 'curve' + 0x12,0x81,0x11, // LOAD_GLOBAL 'int' + 0x12,0x81,0x0f, // LOAD_GLOBAL 'type' + 0x51, // LOAD_CONST_NONE + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x46,0x0a, // JUMP_IF_FALSE_OR_POP 10 + 0x12,0x81,0x05, // LOAD_GLOBAL 'isinstance' + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'id' + 0x12,0x49, // LOAD_GLOBAL 'bytes' + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Fido2Credential_check_data_types = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Fido2Credential_check_data_types, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 208, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 82, + .line_info = fun_data_apps_webauthn_credential_Fido2Credential_check_data_types + 4, + .line_info_top = fun_data_apps_webauthn_credential_Fido2Credential_check_data_types + 17, + .opcodes = fun_data_apps_webauthn_credential_Fido2Credential_check_data_types + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Fido2Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Fido2Credential_app_name +static const byte fun_data_apps_webauthn_credential_Fido2Credential_app_name[44] = { + 0x29,0x10, // prelude + 0x29,0x7e, // names: app_name, self + 0x90,0x16,0x4b,0x29,0x26,0x44, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x2b, // LOAD_CONST_STRING 'knownapps' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x24, // IMPORT_NAME '' + 0x1c,0x2b, // IMPORT_FROM 'knownapps' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x2c, // LOAD_METHOD 'by_rp_id_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'rp_id_hash' + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x56, // LOAD_ATTR 'label' + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x25, // LOAD_ATTR 'rp_id' + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Fido2Credential_app_name = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Fido2Credential_app_name, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_webauthn_credential_Fido2Credential_app_name + 4, + .line_info_top = fun_data_apps_webauthn_credential_Fido2Credential_app_name + 10, + .opcodes = fun_data_apps_webauthn_credential_Fido2Credential_app_name + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Fido2Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Fido2Credential_account_name +static const byte fun_data_apps_webauthn_credential_Fido2Credential_account_name[51] = { + 0x11,0x14, // prelude + 0x2d,0x7e, // names: account_name, self + 0x90,0x1f,0x25,0x24,0x25,0x24,0x25,0x4c, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x3e, // LOAD_ATTR 'user_name' + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x3e, // LOAD_ATTR 'user_name' + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'user_display_name' + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x3f, // LOAD_ATTR 'user_display_name' + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'user_id' + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x05, // LOAD_GLOBAL 'hexlify' + 0xb0, // LOAD_FAST 0 + 0x13,0x27, // LOAD_ATTR 'user_id' + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x4f, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Fido2Credential_account_name = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Fido2Credential_account_name, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_webauthn_credential_Fido2Credential_account_name + 4, + .line_info_top = fun_data_apps_webauthn_credential_Fido2Credential_account_name + 12, + .opcodes = fun_data_apps_webauthn_credential_Fido2Credential_account_name + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Fido2Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Fido2Credential__private_key +static const byte fun_data_apps_webauthn_credential_Fido2Credential__private_key[80] = { + 0x51,0x0e, // prelude + 0x2f,0x7e, // names: _private_key, self + 0x90,0x29,0x3f,0x54,0x2e, // code info + 0x12,0x17, // LOAD_GLOBAL 'HARDENED' + 0x22,0x80,0xce,0x26, // LOAD_CONST_SMALL_INT 10022 + 0xed, // BINARY_OP 22 __or__ + 0x12,0x17, // LOAD_GLOBAL 'HARDENED' + 0x12,0x81,0x11, // LOAD_GLOBAL 'int' + 0x14,0x3a, // LOAD_METHOD 'from_bytes' + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'id' + 0x51, // LOAD_CONST_NONE + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x10,0x57, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0xed, // BINARY_OP 22 __or__ + 0x2b,0x02, // BUILD_LIST 2 + 0x32,0x00, // MAKE_FUNCTION 0 + 0x12,0x02, // LOAD_GLOBAL 'ustruct' + 0x14,0x58, // LOAD_METHOD 'unpack' + 0x10,0x59, // LOAD_CONST_STRING '>4L' + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'id' + 0x70, // LOAD_CONST_SMALL_INT -16 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc1, // STORE_FAST 1 + 0x12,0x15, // LOAD_GLOBAL 'seed' + 0x14,0x5a, // LOAD_METHOD 'derive_node_without_passphrase' + 0xb1, // LOAD_FAST 1 + 0x12,0x78, // LOAD_GLOBAL '_CURVE_NAME' + 0xb0, // LOAD_FAST 0 + 0x13,0x44, // LOAD_ATTR 'curve' + 0x55, // LOAD_SUBSCR + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x14,0x5b, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_credential_Fido2Credential__private_key +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Fido2Credential__private_key__lt_listcomp_gt_ +static const byte fun_data_apps_webauthn_credential_Fido2Credential__private_key__lt_listcomp_gt_[23] = { + 0x41,0x0a, // prelude + 0x70,0x81,0x03, // names: , * + 0x90,0x2a, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x09, // FOR_ITER 9 + 0xc1, // STORE_FAST 1 + 0x12,0x17, // LOAD_GLOBAL 'HARDENED' + 0xb1, // LOAD_FAST 1 + 0xed, // BINARY_OP 22 __or__ + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x35, // JUMP -11 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Fido2Credential__private_key__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Fido2Credential__private_key__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 112, + .line_info = fun_data_apps_webauthn_credential_Fido2Credential__private_key__lt_listcomp_gt_ + 5, + .line_info_top = fun_data_apps_webauthn_credential_Fido2Credential__private_key__lt_listcomp_gt_ + 7, + .opcodes = fun_data_apps_webauthn_credential_Fido2Credential__private_key__lt_listcomp_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_credential_Fido2Credential__private_key[] = { + &raw_code_apps_webauthn_credential_Fido2Credential__private_key__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_credential_Fido2Credential__private_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Fido2Credential__private_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 80, + #endif + .children = (void *)&children_apps_webauthn_credential_Fido2Credential__private_key, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_apps_webauthn_credential_Fido2Credential__private_key + 4, + .line_info_top = fun_data_apps_webauthn_credential_Fido2Credential__private_key + 9, + .opcodes = fun_data_apps_webauthn_credential_Fido2Credential__private_key + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Fido2Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Fido2Credential_public_key +static const byte fun_data_apps_webauthn_credential_Fido2Credential_public_key[164] = { + 0x49,0x2e, // prelude + 0x2e,0x7e, // names: public_key, self + 0x90,0x30,0x4b,0x44,0x26,0x2d,0x24,0x22,0x27,0x27,0x25,0x2a,0x6d,0x26,0x2c,0x24,0x22,0x27,0x27,0x25,0x68, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1d, // LOAD_CONST_STRING 'common' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x24, // IMPORT_NAME '' + 0x1c,0x1d, // IMPORT_FROM 'common' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x44, // LOAD_ATTR 'curve' + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x12,0x1c, // LOAD_GLOBAL 'COSE_CURVE_P256' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7d, // POP_JUMP_IF_FALSE 61 + 0x12,0x12, // LOAD_GLOBAL 'nist256p1' + 0x14,0x5c, // LOAD_METHOD 'publickey' + 0xb0, // LOAD_FAST 0 + 0x14,0x2f, // LOAD_METHOD '_private_key' + 0x36,0x00, // CALL_METHOD 0 + 0x50, // LOAD_CONST_FALSE + 0x36,0x02, // CALL_METHOD 2 + 0xc3, // STORE_FAST 3 + 0x12,0x14, // LOAD_GLOBAL 'cbor' + 0x14,0x4c, // LOAD_METHOD 'encode' + 0x2c,0x05, // BUILD_MAP 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x43, // LOAD_ATTR 'algorithm' + 0xb1, // LOAD_FAST 1 + 0x13,0x5d, // LOAD_ATTR 'COSE_KEY_ALG' + 0x62, // STORE_MAP + 0xb1, // LOAD_FAST 1 + 0x13,0x5e, // LOAD_ATTR 'COSE_KEYTYPE_EC2' + 0xb1, // LOAD_FAST 1 + 0x13,0x5f, // LOAD_ATTR 'COSE_KEY_KTY' + 0x62, // STORE_MAP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x60, // LOAD_ATTR 'COSE_KEY_CRV' + 0x62, // STORE_MAP + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0x13,0x61, // LOAD_ATTR 'COSE_KEY_X' + 0x62, // STORE_MAP + 0xb3, // LOAD_FAST 3 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb1, // LOAD_FAST 1 + 0x13,0x62, // LOAD_ATTR 'COSE_KEY_Y' + 0x62, // STORE_MAP + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0xb2, // LOAD_FAST 2 + 0x12,0x1b, // LOAD_GLOBAL 'COSE_CURVE_ED25519' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x6d, // POP_JUMP_IF_FALSE 45 + 0x12,0x11, // LOAD_GLOBAL 'ed25519' + 0x14,0x5c, // LOAD_METHOD 'publickey' + 0xb0, // LOAD_FAST 0 + 0x14,0x2f, // LOAD_METHOD '_private_key' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0x12,0x14, // LOAD_GLOBAL 'cbor' + 0x14,0x4c, // LOAD_METHOD 'encode' + 0x2c,0x04, // BUILD_MAP 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x43, // LOAD_ATTR 'algorithm' + 0xb1, // LOAD_FAST 1 + 0x13,0x5d, // LOAD_ATTR 'COSE_KEY_ALG' + 0x62, // STORE_MAP + 0xb1, // LOAD_FAST 1 + 0x13,0x63, // LOAD_ATTR 'COSE_KEYTYPE_OKP' + 0xb1, // LOAD_FAST 1 + 0x13,0x5f, // LOAD_ATTR 'COSE_KEY_KTY' + 0x62, // STORE_MAP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x60, // LOAD_ATTR 'COSE_KEY_CRV' + 0x62, // STORE_MAP + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x61, // LOAD_ATTR 'COSE_KEY_X' + 0x62, // STORE_MAP + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0x12,0x81,0x12, // LOAD_GLOBAL 'TypeError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Fido2Credential_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Fido2Credential_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 164, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_webauthn_credential_Fido2Credential_public_key + 4, + .line_info_top = fun_data_apps_webauthn_credential_Fido2Credential_public_key + 25, + .opcodes = fun_data_apps_webauthn_credential_Fido2Credential_public_key + 25, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Fido2Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Fido2Credential_sign +static const byte fun_data_apps_webauthn_credential_Fido2Credential_sign[86] = { + 0x42,0x1a, // prelude + 0x30,0x7e,0x81,0x01, // names: sign, self, data + 0x90,0x4c,0x71,0x20,0x27,0x71,0x20,0x24,0x74, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x43, // LOAD_ATTR 'algorithm' + 0xb0, // LOAD_FAST 0 + 0x13,0x44, // LOAD_ATTR 'curve' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x12,0x1a, // LOAD_GLOBAL 'COSE_ALG_ES256' + 0x12,0x1c, // LOAD_GLOBAL 'COSE_CURVE_P256' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb0, // LOAD_FAST 0 + 0x14,0x31, // LOAD_METHOD '_u2f_sign' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x43, // LOAD_ATTR 'algorithm' + 0xb0, // LOAD_FAST 0 + 0x13,0x44, // LOAD_ATTR 'curve' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x12,0x19, // LOAD_GLOBAL 'COSE_ALG_EDDSA' + 0x12,0x1b, // LOAD_GLOBAL 'COSE_CURVE_ED25519' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0x12,0x11, // LOAD_GLOBAL 'ed25519' + 0x14,0x30, // LOAD_METHOD 'sign' + 0xb0, // LOAD_FAST 0 + 0x14,0x2f, // LOAD_METHOD '_private_key' + 0x36,0x00, // CALL_METHOD 0 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x14,0x64, // LOAD_METHOD 'join' + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x5e, // GET_ITER + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE + 0x12,0x81,0x12, // LOAD_GLOBAL 'TypeError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_credential_Fido2Credential_sign +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Fido2Credential_sign__lt_genexpr_gt_ +static const byte fun_data_apps_webauthn_credential_Fido2Credential_sign__lt_genexpr_gt_[22] = { + 0xb1,0x40,0x0a, // prelude + 0x71,0x81,0x03, // names: , * + 0x90,0x56, // code info + 0x53, // LOAD_NULL + 0xb0, // LOAD_FAST 0 + 0x53, // LOAD_NULL + 0x53, // LOAD_NULL + 0x4b,0x06, // FOR_ITER 6 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0x38, // JUMP -8 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Fido2Credential_sign__lt_genexpr_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Fido2Credential_sign__lt_genexpr_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 113, + .line_info = fun_data_apps_webauthn_credential_Fido2Credential_sign__lt_genexpr_gt_ + 6, + .line_info_top = fun_data_apps_webauthn_credential_Fido2Credential_sign__lt_genexpr_gt_ + 8, + .opcodes = fun_data_apps_webauthn_credential_Fido2Credential_sign__lt_genexpr_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_credential_Fido2Credential_sign[] = { + &raw_code_apps_webauthn_credential_Fido2Credential_sign__lt_genexpr_gt_, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_credential_Fido2Credential_sign = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_credential_Fido2Credential_sign, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 86, + #endif + .children = (void *)&children_apps_webauthn_credential_Fido2Credential_sign, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 48, + .line_info = fun_data_apps_webauthn_credential_Fido2Credential_sign + 6, + .line_info_top = fun_data_apps_webauthn_credential_Fido2Credential_sign + 15, + .opcodes = fun_data_apps_webauthn_credential_Fido2Credential_sign + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Fido2Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Fido2Credential_bogus_signature +static const byte fun_data_apps_webauthn_credential_Fido2Credential_bogus_signature[76] = { + 0x29,0x14, // prelude + 0x36,0x7e, // names: bogus_signature, self + 0x90,0x5c,0x71,0x20,0x31,0x71,0x20,0x47, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x43, // LOAD_ATTR 'algorithm' + 0xb0, // LOAD_FAST 0 + 0x13,0x44, // LOAD_ATTR 'curve' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x12,0x1a, // LOAD_GLOBAL 'COSE_ALG_ES256' + 0x12,0x1c, // LOAD_GLOBAL 'COSE_CURVE_P256' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x12,0x0c, // LOAD_GLOBAL 'der' + 0x14,0x35, // LOAD_METHOD 'encode_seq' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf4, // BINARY_OP 29 __mul__ + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf4, // BINARY_OP 29 __mul__ + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x43, // LOAD_ATTR 'algorithm' + 0xb0, // LOAD_FAST 0 + 0x13,0x44, // LOAD_ATTR 'curve' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x12,0x19, // LOAD_GLOBAL 'COSE_ALG_EDDSA' + 0x12,0x1b, // LOAD_GLOBAL 'COSE_CURVE_ED25519' + 0x2a,0x02, // BUILD_TUPLE 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xf4, // BINARY_OP 29 __mul__ + 0x63, // RETURN_VALUE + 0x12,0x81,0x12, // LOAD_GLOBAL 'TypeError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Fido2Credential_bogus_signature = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Fido2Credential_bogus_signature, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 76, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 54, + .line_info = fun_data_apps_webauthn_credential_Fido2Credential_bogus_signature + 4, + .line_info_top = fun_data_apps_webauthn_credential_Fido2Credential_bogus_signature + 12, + .opcodes = fun_data_apps_webauthn_credential_Fido2Credential_bogus_signature + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Fido2Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Fido2Credential_hmac_secret_key +static const byte fun_data_apps_webauthn_credential_Fido2Credential_hmac_secret_key[47] = { + 0x39,0x10, // prelude + 0x37,0x7e, // names: hmac_secret_key, self + 0x90,0x6c,0x25,0x42,0x24,0x74, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x41, // LOAD_ATTR 'hmac_secret' + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x15, // LOAD_GLOBAL 'seed' + 0x14,0x47, // LOAD_METHOD 'derive_slip21_node_without_passphrase' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'id' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'id' + 0x2b,0x04, // BUILD_LIST 4 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x48, // LOAD_METHOD 'key' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Fido2Credential_hmac_secret_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_Fido2Credential_hmac_secret_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 55, + .line_info = fun_data_apps_webauthn_credential_Fido2Credential_hmac_secret_key + 4, + .line_info_top = fun_data_apps_webauthn_credential_Fido2Credential_hmac_secret_key + 10, + .opcodes = fun_data_apps_webauthn_credential_Fido2Credential_hmac_secret_key + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_Fido2Credential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_Fido2Credential_next_signature_counter +static const byte fun_data_apps_webauthn_credential_Fido2Credential_next_signature_counter[28] = { + 0x22,0x10, // prelude + 0x38,0x81,0x03,0x7e, // names: next_signature_counter, *, self + 0x90,0x76,0x25,0x22, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x42, // LOAD_ATTR 'use_sign_count' + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x63, // RETURN_VALUE + 0x12,0x81,0x04, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x38, // LOAD_SUPER_METHOD 'next_signature_counter' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_Fido2Credential_next_signature_counter = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_credential_Fido2Credential_next_signature_counter, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 56, + .line_info = fun_data_apps_webauthn_credential_Fido2Credential_next_signature_counter + 6, + .line_info_top = fun_data_apps_webauthn_credential_Fido2Credential_next_signature_counter + 10, + .opcodes = fun_data_apps_webauthn_credential_Fido2Credential_next_signature_counter + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_credential_Fido2Credential[] = { + &raw_code_apps_webauthn_credential_Fido2Credential___init__, + &raw_code_apps_webauthn_credential_Fido2Credential___lt__, + &raw_code_apps_webauthn_credential_Fido2Credential_generate_id, + &raw_code_apps_webauthn_credential_Fido2Credential_from_cred_id, + &raw_code_apps_webauthn_credential_Fido2Credential_truncate_names, + &raw_code_apps_webauthn_credential_Fido2Credential_check_required_fields, + &raw_code_apps_webauthn_credential_Fido2Credential_check_data_types, + &raw_code_apps_webauthn_credential_Fido2Credential_app_name, + &raw_code_apps_webauthn_credential_Fido2Credential_account_name, + &raw_code_apps_webauthn_credential_Fido2Credential__private_key, + &raw_code_apps_webauthn_credential_Fido2Credential_public_key, + &raw_code_apps_webauthn_credential_Fido2Credential_sign, + &raw_code_apps_webauthn_credential_Fido2Credential_bogus_signature, + &raw_code_apps_webauthn_credential_Fido2Credential_hmac_secret_key, + &raw_code_apps_webauthn_credential_Fido2Credential_next_signature_counter, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_credential_Fido2Credential = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_credential_Fido2Credential, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 114, + #endif + .children = (void *)&children_apps_webauthn_credential_Fido2Credential, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 15, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_webauthn_credential_Fido2Credential + 3, + .line_info_top = fun_data_apps_webauthn_credential_Fido2Credential + 35, + .opcodes = fun_data_apps_webauthn_credential_Fido2Credential + 36, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential__lt_module_gt_ +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_U2fCredential +static const byte fun_data_apps_webauthn_credential_U2fCredential[81] = { + 0x10,0x25, // prelude + 0x20, // names: U2fCredential + 0x98,0x7c,0x66,0x20,0x84,0x08,0x64,0x40,0x64,0x64,0x64,0x84,0x11,0x84,0x0b,0x88,0x16,0x00, // code info + 0x11,0x79, // LOAD_NAME '__name__' + 0x16,0x7a, // STORE_NAME '__module__' + 0x10,0x20, // LOAD_CONST_STRING 'U2fCredential' + 0x16,0x7b, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x21, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x28, // STORE_NAME '__lt__' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x2f, // STORE_NAME '_private_key' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x2e, // STORE_NAME 'public_key' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x30, // STORE_NAME 'sign' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x36, // STORE_NAME 'bogus_signature' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x66, // STORE_NAME 'generate_key_handle' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x29, // STORE_NAME 'app_name' + 0x11,0x7c, // LOAD_NAME 'staticmethod' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x3c, // STORE_NAME 'from_key_handle' + 0x11,0x7c, // LOAD_NAME 'staticmethod' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x6c, // STORE_NAME '_node_from_key_handle' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_credential_U2fCredential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_U2fCredential___init__ +static const byte fun_data_apps_webauthn_credential_U2fCredential___init__[26] = { + 0x22,0x0e, // prelude + 0x21,0x81,0x03,0x7e, // names: __init__, *, self + 0x90,0x7d,0x2b, // code info + 0x12,0x81,0x04, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x21, // LOAD_SUPER_METHOD '__init__' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x18,0x65, // STORE_ATTR 'node' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_U2fCredential___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_credential_U2fCredential___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_webauthn_credential_U2fCredential___init__ + 6, + .line_info_top = fun_data_apps_webauthn_credential_U2fCredential___init__ + 9, + .opcodes = fun_data_apps_webauthn_credential_U2fCredential___init__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_U2fCredential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_U2fCredential___lt__ +static const byte fun_data_apps_webauthn_credential_U2fCredential___lt__[29] = { + 0x22,0x0e, // prelude + 0x28,0x7e,0x7f, // names: __lt__, self, other + 0x90,0x82,0x2a,0x62, // code info + 0x12,0x81,0x05, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x1f, // LOAD_GLOBAL 'Fido2Credential' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x23, // LOAD_ATTR 'id' + 0xb1, // LOAD_FAST 1 + 0x13,0x23, // LOAD_ATTR 'id' + 0xd7, // BINARY_OP 0 __lt__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_U2fCredential___lt__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_credential_U2fCredential___lt__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_webauthn_credential_U2fCredential___lt__ + 5, + .line_info_top = fun_data_apps_webauthn_credential_U2fCredential___lt__ + 9, + .opcodes = fun_data_apps_webauthn_credential_U2fCredential___lt__ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_U2fCredential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_U2fCredential__private_key +static const byte fun_data_apps_webauthn_credential_U2fCredential__private_key[26] = { + 0x11,0x0c, // prelude + 0x2f,0x7e, // names: _private_key, self + 0x90,0x89,0x27,0x23, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x65, // LOAD_ATTR 'node' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x65, // LOAD_ATTR 'node' + 0x14,0x5b, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_U2fCredential__private_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_U2fCredential__private_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_apps_webauthn_credential_U2fCredential__private_key + 4, + .line_info_top = fun_data_apps_webauthn_credential_U2fCredential__private_key + 8, + .opcodes = fun_data_apps_webauthn_credential_U2fCredential__private_key + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_U2fCredential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_U2fCredential_public_key +static const byte fun_data_apps_webauthn_credential_U2fCredential_public_key[19] = { + 0x21,0x08, // prelude + 0x2e,0x7e, // names: public_key, self + 0x90,0x8e, // code info + 0x12,0x12, // LOAD_GLOBAL 'nist256p1' + 0x14,0x5c, // LOAD_METHOD 'publickey' + 0xb0, // LOAD_FAST 0 + 0x14,0x2f, // LOAD_METHOD '_private_key' + 0x36,0x00, // CALL_METHOD 0 + 0x50, // LOAD_CONST_FALSE + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_U2fCredential_public_key = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_U2fCredential_public_key, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_webauthn_credential_U2fCredential_public_key + 4, + .line_info_top = fun_data_apps_webauthn_credential_U2fCredential_public_key + 6, + .opcodes = fun_data_apps_webauthn_credential_U2fCredential_public_key + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_U2fCredential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_U2fCredential_sign +static const byte fun_data_apps_webauthn_credential_U2fCredential_sign[15] = { + 0x22,0x0c, // prelude + 0x30,0x7e,0x81,0x01, // names: sign, self, data + 0x90,0x91, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x31, // LOAD_METHOD '_u2f_sign' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_U2fCredential_sign = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_credential_U2fCredential_sign, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 48, + .line_info = fun_data_apps_webauthn_credential_U2fCredential_sign + 6, + .line_info_top = fun_data_apps_webauthn_credential_U2fCredential_sign + 8, + .opcodes = fun_data_apps_webauthn_credential_U2fCredential_sign + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_U2fCredential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_U2fCredential_bogus_signature +static const byte fun_data_apps_webauthn_credential_U2fCredential_bogus_signature[23] = { + 0x29,0x08, // prelude + 0x36,0x7e, // names: bogus_signature, self + 0x90,0x94, // code info + 0x12,0x0c, // LOAD_GLOBAL 'der' + 0x14,0x35, // LOAD_METHOD 'encode_seq' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf4, // BINARY_OP 29 __mul__ + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf4, // BINARY_OP 29 __mul__ + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_U2fCredential_bogus_signature = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_U2fCredential_bogus_signature, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 54, + .line_info = fun_data_apps_webauthn_credential_U2fCredential_bogus_signature + 4, + .line_info_top = fun_data_apps_webauthn_credential_U2fCredential_bogus_signature + 6, + .opcodes = fun_data_apps_webauthn_credential_U2fCredential_bogus_signature + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_U2fCredential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_U2fCredential_generate_key_handle +static const byte fun_data_apps_webauthn_credential_U2fCredential_generate_key_handle[92] = { + 0x49,0x14, // prelude + 0x66,0x7e, // names: generate_key_handle, self + 0x90,0x98,0x2c,0x67,0x6c,0x6b,0x33,0x47, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x12,0x81,0x13, // LOAD_GLOBAL 'range' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x2b,0x01, // BUILD_LIST 1 + 0xb1, // LOAD_FAST 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc2, // STORE_FAST 2 + 0x12,0x15, // LOAD_GLOBAL 'seed' + 0x14,0x5a, // LOAD_METHOD 'derive_node_without_passphrase' + 0xb2, // LOAD_FAST 2 + 0x10,0x12, // LOAD_CONST_STRING 'nist256p1' + 0x36,0x02, // CALL_METHOD 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x65, // STORE_ATTR 'node' + 0x12,0x02, // LOAD_GLOBAL 'ustruct' + 0x14,0x67, // LOAD_METHOD 'pack' + 0x10,0x68, // LOAD_CONST_STRING '<8L' + 0xb1, // LOAD_FAST 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x37,0x02, // CALL_METHOD_VAR_KW 2 + 0xc3, // STORE_FAST 3 + 0x12,0x0e, // LOAD_GLOBAL 'hmac' + 0x12,0x0e, // LOAD_GLOBAL 'hmac' + 0x13,0x69, // LOAD_ATTR 'SHA256' + 0xb0, // LOAD_FAST 0 + 0x13,0x65, // LOAD_ATTR 'node' + 0x14,0x5b, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'rp_id_hash' + 0x34,0x03, // CALL_FUNCTION 3 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x14,0x33, // LOAD_METHOD 'update' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x14,0x34, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xf2, // BINARY_OP 27 __add__ + 0xb0, // LOAD_FAST 0 + 0x18,0x23, // STORE_ATTR 'id' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_credential_U2fCredential_generate_key_handle +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_U2fCredential_generate_key_handle__lt_listcomp_gt_ +static const byte fun_data_apps_webauthn_credential_U2fCredential_generate_key_handle__lt_listcomp_gt_[30] = { + 0x51,0x0a, // prelude + 0x70,0x81,0x03, // names: , * + 0x90,0x98, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x10, // FOR_ITER 16 + 0xc1, // STORE_FAST 1 + 0x12,0x17, // LOAD_GLOBAL 'HARDENED' + 0x12,0x0f, // LOAD_GLOBAL 'random' + 0x14,0x72, // LOAD_METHOD 'uniform' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x36,0x01, // CALL_METHOD 1 + 0xed, // BINARY_OP 22 __or__ + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x2e, // JUMP -18 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_U2fCredential_generate_key_handle__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_U2fCredential_generate_key_handle__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 112, + .line_info = fun_data_apps_webauthn_credential_U2fCredential_generate_key_handle__lt_listcomp_gt_ + 5, + .line_info_top = fun_data_apps_webauthn_credential_U2fCredential_generate_key_handle__lt_listcomp_gt_ + 7, + .opcodes = fun_data_apps_webauthn_credential_U2fCredential_generate_key_handle__lt_listcomp_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_credential_U2fCredential_generate_key_handle[] = { + &raw_code_apps_webauthn_credential_U2fCredential_generate_key_handle__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_credential_U2fCredential_generate_key_handle = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_U2fCredential_generate_key_handle, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 92, + #endif + .children = (void *)&children_apps_webauthn_credential_U2fCredential_generate_key_handle, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 102, + .line_info = fun_data_apps_webauthn_credential_U2fCredential_generate_key_handle + 4, + .line_info_top = fun_data_apps_webauthn_credential_U2fCredential_generate_key_handle + 12, + .opcodes = fun_data_apps_webauthn_credential_U2fCredential_generate_key_handle + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_U2fCredential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_U2fCredential_app_name +static const byte fun_data_apps_webauthn_credential_U2fCredential_app_name[85] = { + 0x41,0x14, // prelude + 0x29,0x7e, // names: app_name, self + 0x90,0xa8,0x4b,0x29,0x26,0x44,0x31,0x31, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x2b, // LOAD_CONST_STRING 'knownapps' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x24, // IMPORT_NAME '' + 0x1c,0x2b, // IMPORT_FROM 'knownapps' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x2c, // LOAD_METHOD 'by_rp_id_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'rp_id_hash' + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb2, // LOAD_FAST 2 + 0x13,0x56, // LOAD_ATTR 'label' + 0x63, // RETURN_VALUE + 0x12,0x05, // LOAD_GLOBAL 'hexlify' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'rp_id_hash' + 0x51, // LOAD_CONST_NONE + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x4f, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0xc3, // STORE_FAST 3 + 0x12,0x05, // LOAD_GLOBAL 'hexlify' + 0xb0, // LOAD_FAST 0 + 0x13,0x26, // LOAD_ATTR 'rp_id_hash' + 0x7c, // LOAD_CONST_SMALL_INT -4 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x4f, // LOAD_METHOD 'decode' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0x10,0x6a, // LOAD_CONST_STRING '{}...{}' + 0x14,0x6b, // LOAD_METHOD 'format' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_U2fCredential_app_name = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_credential_U2fCredential_app_name, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 85, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_webauthn_credential_U2fCredential_app_name + 4, + .line_info_top = fun_data_apps_webauthn_credential_U2fCredential_app_name + 12, + .opcodes = fun_data_apps_webauthn_credential_U2fCredential_app_name + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_U2fCredential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_U2fCredential_from_key_handle +static const byte fun_data_apps_webauthn_credential_U2fCredential_from_key_handle[91] = { + 0x42,0x24, // prelude + 0x3c,0x81,0x14,0x26, // names: from_key_handle, key_handle, rp_id_hash + 0x90,0xb4,0x2c,0x64,0x2b,0x65,0x20,0x2b,0x45,0x44,0x25,0x24,0x24,0x24, // code info + 0x12,0x81,0x07, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x12,0x81,0x0a, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x20, // LOAD_GLOBAL 'U2fCredential' + 0x14,0x6c, // LOAD_METHOD '_node_from_key_handle' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x10,0x68, // LOAD_CONST_STRING '<8L' + 0x36,0x03, // CALL_METHOD 3 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x20, // LOAD_GLOBAL 'U2fCredential' + 0x14,0x6c, // LOAD_METHOD '_node_from_key_handle' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x10,0x6d, // LOAD_CONST_STRING '>8L' + 0x36,0x03, // CALL_METHOD 3 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x12,0x81,0x0a, // LOAD_GLOBAL 'ValueError' + 0x65, // RAISE_OBJ + 0x12,0x20, // LOAD_GLOBAL 'U2fCredential' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0x18,0x23, // STORE_ATTR 'id' + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x18,0x26, // STORE_ATTR 'rp_id_hash' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x18,0x65, // STORE_ATTR 'node' + 0xb3, // LOAD_FAST 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_U2fCredential_from_key_handle = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_credential_U2fCredential_from_key_handle, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 91, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 60, + .line_info = fun_data_apps_webauthn_credential_U2fCredential_from_key_handle + 6, + .line_info_top = fun_data_apps_webauthn_credential_U2fCredential_from_key_handle + 20, + .opcodes = fun_data_apps_webauthn_credential_U2fCredential_from_key_handle + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_credential_U2fCredential +// frozen bytecode for file apps/webauthn/credential.py, scope apps_webauthn_credential_U2fCredential__node_from_key_handle +static const byte fun_data_apps_webauthn_credential_U2fCredential__node_from_key_handle[133] = { + 0x7b,0x2c, // prelude + 0x6c,0x26,0x81,0x15,0x81,0x16, // names: _node_from_key_handle, rp_id_hash, keyhandle, pathformat + 0x90,0xcc,0x6b,0x27,0x69,0x25,0x26,0x40,0x64,0x2c,0x6a,0x2f,0x67,0x33,0x40,0x42, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x6e, // LOAD_CONST_STRING 'log' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor' + 0x1c,0x6e, // IMPORT_FROM 'log' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc4, // STORE_FAST 4 + 0x12,0x02, // LOAD_GLOBAL 'ustruct' + 0x14,0x58, // LOAD_METHOD 'unpack' + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x5f, // GET_ITER_STACK + 0x4b,0x0b, // FOR_ITER 11 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x12,0x17, // LOAD_GLOBAL 'HARDENED' + 0xef, // BINARY_OP 24 __and__ + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x42,0x33, // JUMP -13 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x2b,0x01, // BUILD_LIST 1 + 0x12,0x81,0x17, // LOAD_GLOBAL 'list' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc7, // STORE_FAST 7 + 0x12,0x15, // LOAD_GLOBAL 'seed' + 0x14,0x5a, // LOAD_METHOD 'derive_node_without_passphrase' + 0xb7, // LOAD_FAST 7 + 0x10,0x12, // LOAD_CONST_STRING 'nist256p1' + 0x36,0x02, // CALL_METHOD 2 + 0xc8, // STORE_FAST 8 + 0x12,0x0e, // LOAD_GLOBAL 'hmac' + 0x12,0x0e, // LOAD_GLOBAL 'hmac' + 0x13,0x69, // LOAD_ATTR 'SHA256' + 0xb8, // LOAD_FAST 8 + 0x14,0x5b, // LOAD_METHOD 'private_key' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc9, // STORE_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x14,0x33, // LOAD_METHOD 'update' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x09, // LOAD_GLOBAL 'utils' + 0x14,0x50, // LOAD_METHOD 'consteq' + 0xb9, // LOAD_FAST 9 + 0x14,0x34, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xb1, // LOAD_FAST 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x36,0x02, // CALL_METHOD 2 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb8, // LOAD_FAST 8 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_credential_U2fCredential__node_from_key_handle = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_webauthn_credential_U2fCredential__node_from_key_handle, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 133, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 108, + .line_info = fun_data_apps_webauthn_credential_U2fCredential__node_from_key_handle + 8, + .line_info_top = fun_data_apps_webauthn_credential_U2fCredential__node_from_key_handle + 24, + .opcodes = fun_data_apps_webauthn_credential_U2fCredential__node_from_key_handle + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_credential_U2fCredential[] = { + &raw_code_apps_webauthn_credential_U2fCredential___init__, + &raw_code_apps_webauthn_credential_U2fCredential___lt__, + &raw_code_apps_webauthn_credential_U2fCredential__private_key, + &raw_code_apps_webauthn_credential_U2fCredential_public_key, + &raw_code_apps_webauthn_credential_U2fCredential_sign, + &raw_code_apps_webauthn_credential_U2fCredential_bogus_signature, + &raw_code_apps_webauthn_credential_U2fCredential_generate_key_handle, + &raw_code_apps_webauthn_credential_U2fCredential_app_name, + &raw_code_apps_webauthn_credential_U2fCredential_from_key_handle, + &raw_code_apps_webauthn_credential_U2fCredential__node_from_key_handle, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_credential_U2fCredential = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_credential_U2fCredential, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 81, + #endif + .children = (void *)&children_apps_webauthn_credential_U2fCredential, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 10, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_webauthn_credential_U2fCredential + 3, + .line_info_top = fun_data_apps_webauthn_credential_U2fCredential + 20, + .opcodes = fun_data_apps_webauthn_credential_U2fCredential + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_credential__lt_module_gt_[] = { + &raw_code_apps_webauthn_credential_Credential, + &raw_code_apps_webauthn_credential_Fido2Credential, + &raw_code_apps_webauthn_credential_U2fCredential, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_credential__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_credential__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 257, + #endif + .children = (void *)&children_apps_webauthn_credential__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_webauthn_credential__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_webauthn_credential__lt_module_gt_ + 29, + .opcodes = fun_data_apps_webauthn_credential__lt_module_gt_ + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_webauthn_credential[152] = { + MP_QSTR_apps_slash_webauthn_slash_credential_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_ustruct, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_hexlify, + MP_QSTR_ubinascii, + MP_QSTR_storage_dot_device, + MP_QSTR_device, + MP_QSTR_utils, + MP_QSTR_trezor, + MP_QSTR_chacha20poly1305, + MP_QSTR_der, + MP_QSTR_hashlib, + MP_QSTR_hmac, + MP_QSTR_random, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_ed25519, + MP_QSTR_nist256p1, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_cbor, + MP_QSTR_seed, + MP_QSTR_apps_dot_common, + MP_QSTR_HARDENED, + MP_QSTR_apps_dot_common_dot_paths, + MP_QSTR_COSE_ALG_EDDSA, + MP_QSTR_COSE_ALG_ES256, + MP_QSTR_COSE_CURVE_ED25519, + MP_QSTR_COSE_CURVE_P256, + MP_QSTR_common, + MP_QSTR_Credential, + MP_QSTR_Fido2Credential, + MP_QSTR_U2fCredential, + MP_QSTR___init__, + MP_QSTR_index, + MP_QSTR_id, + MP_QSTR_, + MP_QSTR_rp_id, + MP_QSTR_rp_id_hash, + MP_QSTR_user_id, + MP_QSTR___lt__, + MP_QSTR_app_name, + MP_QSTR_icon_name, + MP_QSTR_knownapps, + MP_QSTR_by_rp_id_hash, + MP_QSTR_account_name, + MP_QSTR_public_key, + MP_QSTR__private_key, + MP_QSTR_sign, + MP_QSTR__u2f_sign, + MP_QSTR_sha256, + MP_QSTR_update, + MP_QSTR_digest, + MP_QSTR_encode_seq, + MP_QSTR_bogus_signature, + MP_QSTR_hmac_secret_key, + MP_QSTR_next_signature_counter, + MP_QSTR_next_u2f_counter, + MP_QSTR_from_bytes, + MP_QSTR_from_cred_id, + MP_QSTR_from_key_handle, + MP_QSTR_rp_name, + MP_QSTR_user_name, + MP_QSTR_user_display_name, + MP_QSTR_creation_time, + MP_QSTR_hmac_secret, + MP_QSTR_use_sign_count, + MP_QSTR_algorithm, + MP_QSTR_curve, + MP_QSTR_generate_id, + MP_QSTR_check_required_fields, + MP_QSTR_derive_slip21_node_without_passphrase, + MP_QSTR_key, + MP_QSTR_bytes, + MP_QSTR_auth, + MP_QSTR_encrypt, + MP_QSTR_encode, + MP_QSTR_finish, + MP_QSTR_decrypt, + MP_QSTR_decode, + MP_QSTR_consteq, + MP_QSTR_get, + MP_QSTR_check_data_types, + MP_QSTR_truncate_names, + MP_QSTR_isspace, + MP_QSTR_truncate_utf8, + MP_QSTR_label, + MP_QSTR_big, + MP_QSTR_unpack, + MP_QSTR__gt_4L, + MP_QSTR_derive_node_without_passphrase, + MP_QSTR_private_key, + MP_QSTR_publickey, + MP_QSTR_COSE_KEY_ALG, + MP_QSTR_COSE_KEYTYPE_EC2, + MP_QSTR_COSE_KEY_KTY, + MP_QSTR_COSE_KEY_CRV, + MP_QSTR_COSE_KEY_X, + MP_QSTR_COSE_KEY_Y, + MP_QSTR_COSE_KEYTYPE_OKP, + MP_QSTR_join, + MP_QSTR_node, + MP_QSTR_generate_key_handle, + MP_QSTR_pack, + MP_QSTR__lt_8L, + MP_QSTR_SHA256, + MP_QSTR__brace_open__brace_close__dot__dot__dot__brace_open__brace_close_, + MP_QSTR_format, + MP_QSTR__node_from_key_handle, + MP_QSTR__gt_8L, + MP_QSTR_log, + MP_QSTR__lt_dictcomp_gt_, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR__lt_genexpr_gt_, + MP_QSTR_uniform, + MP_QSTR_storage_device, + MP_QSTR__CRED_ID_VERSION, + MP_QSTR_CRED_ID_MAX_LENGTH, + MP_QSTR__DEFAULT_ALGORITHM, + MP_QSTR__DEFAULT_CURVE, + MP_QSTR__CURVE_NAME, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_staticmethod, + MP_QSTR_classmethod, + MP_QSTR_self, + MP_QSTR_other, + MP_QSTR_NotImplementedError, + MP_QSTR_data, + MP_QSTR_Exception, + MP_QSTR__star_, + MP_QSTR_super, + MP_QSTR_isinstance, + MP_QSTR_AssertionError, + MP_QSTR_len, + MP_QSTR_cls, + MP_QSTR_cred_id, + MP_QSTR_ValueError, + MP_QSTR_dict, + MP_QSTR_getattr, + MP_QSTR_setattr, + MP_QSTR_str, + MP_QSTR_type, + MP_QSTR_bool, + MP_QSTR_int, + MP_QSTR_TypeError, + MP_QSTR_range, + MP_QSTR_key_handle, + MP_QSTR_keyhandle, + MP_QSTR_pathformat, + MP_QSTR_list, +}; + +// constants +static const mp_obj_str_t const_obj_apps_webauthn_credential_0 = {{&mp_type_bytes}, 12358, 4, (const byte*)"\xf1\xd0\x02\x00"}; +static const mp_obj_str_t const_obj_apps_webauthn_credential_2 = {{&mp_type_bytes}, 13710, 9, (const byte*)"\x53\x4c\x49\x50\x2d\x30\x30\x32\x32"}; +static const mp_obj_str_t const_obj_apps_webauthn_credential_3 = {{&mp_type_bytes}, 3741, 14, (const byte*)"\x45\x6e\x63\x72\x79\x70\x74\x69\x6f\x6e\x20\x6b\x65\x79"}; +static const mp_rom_obj_tuple_t const_obj_apps_webauthn_credential_4 = {{&mp_type_tuple}, 3, { + MP_ROM_QSTR(MP_QSTR_rp_name), + MP_ROM_QSTR(MP_QSTR_user_name), + MP_ROM_QSTR(MP_QSTR_user_display_name), +}}; +static const mp_obj_str_t const_obj_apps_webauthn_credential_5 = {{&mp_type_bytes}, 46511, 1, (const byte*)"\x0a"}; +static const mp_obj_str_t const_obj_apps_webauthn_credential_6 = {{&mp_type_bytes}, 27321, 11, (const byte*)"\x68\x6d\x61\x63\x2d\x73\x65\x63\x72\x65\x74"}; +static const mp_obj_int_t const_obj_apps_webauthn_credential_7 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0x3246,0x8055}}}; +static const mp_obj_int_t const_obj_apps_webauthn_credential_8 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0x0,0x8000}}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_webauthn_credential[9] = { + MP_ROM_PTR(&const_obj_apps_webauthn_credential_0), + MP_ROM_PTR(&mp_const_empty_bytes_obj), + MP_ROM_PTR(&const_obj_apps_webauthn_credential_2), + MP_ROM_PTR(&const_obj_apps_webauthn_credential_3), + MP_ROM_PTR(&const_obj_apps_webauthn_credential_4), + MP_ROM_PTR(&const_obj_apps_webauthn_credential_5), + MP_ROM_PTR(&const_obj_apps_webauthn_credential_6), + MP_ROM_PTR(&const_obj_apps_webauthn_credential_7), + MP_ROM_PTR(&const_obj_apps_webauthn_credential_8), +}; + +static const mp_frozen_module_t frozen_module_apps_webauthn_credential = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_webauthn_credential, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_webauthn_credential, + }, + .rc = &raw_code_apps_webauthn_credential__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_webauthn_fido2 +// - original source file: build/firmware/src/apps/webauthn/fido2.mpy +// - frozen file name: apps/webauthn/fido2.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__lt_module_gt_ +static const byte fun_data_apps_webauthn_fido2__lt_module_gt_[755] = { + 0x38,0x9e,0x04, // prelude + 0x01, // names: + 0x26,0x26,0x26,0x6c,0x29,0x1f,0x31,0x2c,0x2c,0x4c,0x2c,0x4c,0x2c,0x52,0x80,0x93,0x25,0x25,0x25,0x27,0x27,0x2b,0x85,0x2a,0x64,0x64,0x6c,0x60,0x84,0x0e,0x84,0x0b,0x84,0x14,0x84,0x1c,0x84,0x0b,0x84,0x0e,0x84,0x07,0x64,0x60,0x89,0x0d,0x89,0x16,0x84,0x6b,0x84,0x23,0x84,0x1c,0x84,0x12,0x89,0x09,0x84,0x12,0x84,0x14,0x84,0x08,0x84,0x11,0x89,0x21,0x8b,0x10,0x8b,0x0e,0x8b,0x0b,0x8b,0x14,0x8b,0x1e,0x8b,0x1e,0x8b,0x2e,0x8b,0x12,0x8b,0x3d,0x8b,0x16,0x8b,0x17,0x8b,0x0f,0x89,0x6d,0x84,0x64,0x85,0x1a,0x85,0x0a,0x85,0x3a,0x85,0x0a,0x85,0x15,0x85,0x50,0x85,0x16,0x65,0x20,0x65,0x20,0x65,0x20,0x85,0x15,0x85,0x11,0x85,0x10,0x85,0x0f,0x85,0x7b,0x85,0x39,0x85,0x0f,0x85,0x71,0x85,0x34,0x85,0x38,0x85,0x15,0x85,0x24,0x85,0x0c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x02, // IMPORT_NAME 'uctypes' + 0x16,0x02, // STORE_NAME 'uctypes' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'ustruct' + 0x16,0x03, // STORE_NAME 'ustruct' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x04, // IMPORT_NAME 'utime' + 0x16,0x04, // STORE_NAME 'utime' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'micropython' + 0x1c,0x05, // IMPORT_FROM 'const' + 0x16,0x05, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x07, // IMPORT_NAME 'storage.device' + 0x13,0x08, // LOAD_ATTR 'device' + 0x16,0x82,0x29, // STORE_NAME 'storage_device' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'config' + 0x10,0x0a, // LOAD_CONST_STRING 'io' + 0x10,0x0b, // LOAD_CONST_STRING 'log' + 0x10,0x0c, // LOAD_CONST_STRING 'loop' + 0x10,0x0d, // LOAD_CONST_STRING 'utils' + 0x10,0x0e, // LOAD_CONST_STRING 'wire' + 0x10,0x0f, // LOAD_CONST_STRING 'workflow' + 0x2a,0x07, // BUILD_TUPLE 7 + 0x1b,0x10, // IMPORT_NAME 'trezor' + 0x1c,0x09, // IMPORT_FROM 'config' + 0x16,0x09, // STORE_NAME 'config' + 0x1c,0x0a, // IMPORT_FROM 'io' + 0x16,0x0a, // STORE_NAME 'io' + 0x1c,0x0b, // IMPORT_FROM 'log' + 0x16,0x0b, // STORE_NAME 'log' + 0x1c,0x0c, // IMPORT_FROM 'loop' + 0x16,0x0c, // STORE_NAME 'loop' + 0x1c,0x0d, // IMPORT_FROM 'utils' + 0x16,0x0d, // STORE_NAME 'utils' + 0x1c,0x0e, // IMPORT_FROM 'wire' + 0x16,0x0e, // STORE_NAME 'wire' + 0x1c,0x0f, // IMPORT_FROM 'workflow' + 0x16,0x0f, // STORE_NAME 'workflow' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x11, // LOAD_CONST_STRING 'hashlib' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x12, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x11, // IMPORT_FROM 'hashlib' + 0x16,0x11, // STORE_NAME 'hashlib' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x13, // LOAD_CONST_STRING 'nist256p1' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x14, // IMPORT_NAME 'trezor.crypto.curve' + 0x1c,0x13, // IMPORT_FROM 'nist256p1' + 0x16,0x13, // STORE_NAME 'nist256p1' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x15, // LOAD_CONST_STRING 'show_error_popup' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x16, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x15, // IMPORT_FROM 'show_error_popup' + 0x16,0x15, // STORE_NAME 'show_error_popup' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x17, // LOAD_CONST_STRING 'set_homescreen' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x18, // IMPORT_NAME 'apps.base' + 0x1c,0x17, // IMPORT_FROM 'set_homescreen' + 0x16,0x17, // STORE_NAME 'set_homescreen' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x19, // LOAD_CONST_STRING 'cbor' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1a, // IMPORT_NAME 'apps.common' + 0x1c,0x19, // IMPORT_FROM 'cbor' + 0x16,0x19, // STORE_NAME 'cbor' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1b, // LOAD_CONST_STRING 'common' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1c, // IMPORT_NAME '' + 0x1c,0x1b, // IMPORT_FROM 'common' + 0x16,0x1b, // STORE_NAME 'common' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1d, // LOAD_CONST_STRING 'Credential' + 0x10,0x1e, // LOAD_CONST_STRING 'Fido2Credential' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x1f, // IMPORT_NAME 'credential' + 0x1c,0x1d, // IMPORT_FROM 'Credential' + 0x16,0x1d, // STORE_NAME 'Credential' + 0x1c,0x1e, // IMPORT_FROM 'Fido2Credential' + 0x16,0x1e, // STORE_NAME 'Fido2Credential' + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x82,0x2a, // STORE_NAME '_FIDO_ATT_PRIV_KEY' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x16,0x82,0x2b, // STORE_NAME '_FIDO_ATT_CERT' + 0x10,0x20, // LOAD_CONST_STRING '.dummy' + 0x16,0x82,0x2c, // STORE_NAME '_BOGUS_RP_ID' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf4, // BINARY_OP 29 __mul__ + 0x16,0x82,0x2d, // STORE_NAME '_BOGUS_APPID_CHROME' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xf4, // BINARY_OP 29 __mul__ + 0x16,0x82,0x2e, // STORE_NAME '_BOGUS_APPID_FIREFOX' + 0x11,0x82,0x2d, // LOAD_NAME '_BOGUS_APPID_CHROME' + 0x11,0x82,0x2e, // LOAD_NAME '_BOGUS_APPID_FIREFOX' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x16,0x82,0x2f, // STORE_NAME '_BOGUS_APPIDS' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x16,0x82,0x30, // STORE_NAME '_AAGUID' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x17,0x82,0x31, // STORE_GLOBAL '_last_wink_cid' + 0x50, // LOAD_CONST_FALSE + 0x17,0x82,0x32, // STORE_GLOBAL '_last_auth_valid' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x21, // LOAD_CONST_STRING 'CborError' + 0x11,0x82,0x33, // LOAD_NAME 'Exception' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x21, // STORE_NAME 'CborError' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x33, // STORE_NAME 'frame_init' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x3c, // STORE_NAME 'frame_cont' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x3e, // STORE_NAME '_resp_cmd_init' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x41, // STORE_NAME '_resp_cmd_register' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x48, // STORE_NAME '_req_cmd_authenticate' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x4b, // STORE_NAME '_resp_cmd_authenticate' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x4e, // STORE_NAME 'overlay_struct' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x54, // STORE_NAME 'make_struct' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x09, // MAKE_FUNCTION 9 + 0x10,0x22, // LOAD_CONST_STRING 'Msg' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x22, // STORE_NAME 'Msg' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x10,0x23, // LOAD_CONST_STRING 'Cmd' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x23, // STORE_NAME 'Cmd' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x55, // STORE_NAME '_read_cmd' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x5d, // STORE_NAME 'send_cmd' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x16,0x60, // STORE_NAME 'send_cmd_sync' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x16,0x62, // STORE_NAME 'handle_reports' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x10,0x24, // LOAD_CONST_STRING 'KeepaliveCallback' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x24, // STORE_NAME 'KeepaliveCallback' + 0x32,0x10, // MAKE_FUNCTION 16 + 0x16,0x65, // STORE_NAME 'verify_user' + 0x32,0x11, // MAKE_FUNCTION 17 + 0x16,0x6f, // STORE_NAME '_confirm_fido_choose' + 0x32,0x12, // MAKE_FUNCTION 18 + 0x16,0x77, // STORE_NAME '_confirm_fido' + 0x32,0x13, // MAKE_FUNCTION 19 + 0x16,0x79, // STORE_NAME '_confirm_bogus_app' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x14, // MAKE_FUNCTION 20 + 0x10,0x25, // LOAD_CONST_STRING 'State' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x25, // STORE_NAME 'State' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x15, // MAKE_FUNCTION 21 + 0x10,0x26, // LOAD_CONST_STRING 'U2fState' + 0x11,0x25, // LOAD_NAME 'State' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x26, // STORE_NAME 'U2fState' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x16, // MAKE_FUNCTION 22 + 0x10,0x27, // LOAD_CONST_STRING 'U2fConfirmRegister' + 0x11,0x26, // LOAD_NAME 'U2fState' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x27, // STORE_NAME 'U2fConfirmRegister' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x17, // MAKE_FUNCTION 23 + 0x10,0x28, // LOAD_CONST_STRING 'U2fConfirmAuthenticate' + 0x11,0x26, // LOAD_NAME 'U2fState' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x28, // STORE_NAME 'U2fConfirmAuthenticate' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x18, // MAKE_FUNCTION 24 + 0x10,0x29, // LOAD_CONST_STRING 'U2fUnlock' + 0x11,0x25, // LOAD_NAME 'State' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x29, // STORE_NAME 'U2fUnlock' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x19, // MAKE_FUNCTION 25 + 0x10,0x2a, // LOAD_CONST_STRING 'Fido2State' + 0x11,0x25, // LOAD_NAME 'State' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x2a, // STORE_NAME 'Fido2State' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x1a, // MAKE_FUNCTION 26 + 0x10,0x2b, // LOAD_CONST_STRING 'Fido2Unlock' + 0x11,0x2a, // LOAD_NAME 'Fido2State' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x2b, // STORE_NAME 'Fido2Unlock' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x1b, // MAKE_FUNCTION 27 + 0x10,0x2c, // LOAD_CONST_STRING 'Fido2ConfirmMakeCredential' + 0x11,0x2a, // LOAD_NAME 'Fido2State' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x2c, // STORE_NAME 'Fido2ConfirmMakeCredential' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x1c, // MAKE_FUNCTION 28 + 0x10,0x2d, // LOAD_CONST_STRING 'Fido2ConfirmExcluded' + 0x11,0x2c, // LOAD_NAME 'Fido2ConfirmMakeCredential' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x2d, // STORE_NAME 'Fido2ConfirmExcluded' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x1d, // MAKE_FUNCTION 29 + 0x10,0x2e, // LOAD_CONST_STRING 'Fido2ConfirmGetAssertion' + 0x11,0x2a, // LOAD_NAME 'Fido2State' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x2e, // STORE_NAME 'Fido2ConfirmGetAssertion' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x1e, // MAKE_FUNCTION 30 + 0x10,0x2f, // LOAD_CONST_STRING 'Fido2ConfirmNoPin' + 0x11,0x25, // LOAD_NAME 'State' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x2f, // STORE_NAME 'Fido2ConfirmNoPin' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x1f, // MAKE_FUNCTION 31 + 0x10,0x30, // LOAD_CONST_STRING 'Fido2ConfirmNoCredentials' + 0x11,0x2e, // LOAD_NAME 'Fido2ConfirmGetAssertion' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x30, // STORE_NAME 'Fido2ConfirmNoCredentials' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x20, // MAKE_FUNCTION 32 + 0x10,0x31, // LOAD_CONST_STRING 'Fido2ConfirmReset' + 0x11,0x2a, // LOAD_NAME 'Fido2State' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x31, // STORE_NAME 'Fido2ConfirmReset' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x21, // MAKE_FUNCTION 33 + 0x10,0x32, // LOAD_CONST_STRING 'DialogManager' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x32, // STORE_NAME 'DialogManager' + 0x32,0x22, // MAKE_FUNCTION 34 + 0x16,0x7b, // STORE_NAME '_dispatch_cmd' + 0x32,0x23, // MAKE_FUNCTION 35 + 0x16,0x81,0x03, // STORE_NAME 'cmd_init' + 0x32,0x24, // MAKE_FUNCTION 36 + 0x16,0x81,0x0a, // STORE_NAME '_cmd_wink' + 0x32,0x25, // MAKE_FUNCTION 37 + 0x16,0x81,0x0d, // STORE_NAME '_msg_register' + 0x32,0x26, // MAKE_FUNCTION 38 + 0x16,0x81,0x14, // STORE_NAME 'basic_attestation_sign' + 0x32,0x27, // MAKE_FUNCTION 39 + 0x16,0x81,0x1b, // STORE_NAME '_msg_register_sign' + 0x32,0x28, // MAKE_FUNCTION 40 + 0x16,0x81,0x1f, // STORE_NAME '_msg_authenticate' + 0x32,0x29, // MAKE_FUNCTION 41 + 0x16,0x81,0x23, // STORE_NAME '_msg_authenticate_sign' + 0x32,0x2a, // MAKE_FUNCTION 42 + 0x16,0x81,0x27, // STORE_NAME 'msg_error' + 0x32,0x2b, // MAKE_FUNCTION 43 + 0x16,0x81,0x29, // STORE_NAME 'cmd_error' + 0x32,0x2c, // MAKE_FUNCTION 44 + 0x16,0x81,0x2b, // STORE_NAME 'cbor_error' + 0x32,0x2d, // MAKE_FUNCTION 45 + 0x16,0x81,0x2c, // STORE_NAME 'credentials_from_descriptor_list' + 0x32,0x2e, // MAKE_FUNCTION 46 + 0x16,0x81,0x2f, // STORE_NAME '_distinguishable_cred_list' + 0x32,0x2f, // MAKE_FUNCTION 47 + 0x16,0x81,0x32, // STORE_NAME '_algorithms_from_pub_key_cred_params' + 0x32,0x30, // MAKE_FUNCTION 48 + 0x16,0x81,0x34, // STORE_NAME '_cbor_make_credential' + 0x32,0x31, // MAKE_FUNCTION 49 + 0x16,0x81,0x35, // STORE_NAME '_cbor_make_credential_process' + 0x32,0x32, // MAKE_FUNCTION 50 + 0x16,0x81,0x50, // STORE_NAME '_cbor_make_credential_sign' + 0x32,0x33, // MAKE_FUNCTION 51 + 0x16,0x81,0x57, // STORE_NAME '_cbor_get_assertion' + 0x32,0x34, // MAKE_FUNCTION 52 + 0x16,0x81,0x58, // STORE_NAME '_cbor_get_assertion_process' + 0x32,0x35, // MAKE_FUNCTION 53 + 0x16,0x81,0x5c, // STORE_NAME '_cbor_get_assertion_hmac_secret' + 0x32,0x36, // MAKE_FUNCTION 54 + 0x16,0x81,0x6d, // STORE_NAME 'cbor_get_assertion_sign' + 0x32,0x37, // MAKE_FUNCTION 55 + 0x16,0x81,0x6f, // STORE_NAME '_cbor_get_info' + 0x32,0x38, // MAKE_FUNCTION 56 + 0x16,0x81,0x73, // STORE_NAME '_cbor_client_pin' + 0x32,0x39, // MAKE_FUNCTION 57 + 0x16,0x81,0x77, // STORE_NAME '_cbor_reset' + 0x32,0x3a, // MAKE_FUNCTION 58 + 0x16,0x81,0x78, // STORE_NAME 'cmd_keepalive' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_CborError +static const byte fun_data_apps_webauthn_fido2_CborError[26] = { + 0x08,0x07, // prelude + 0x21, // names: CborError + 0x8b,0xdc,0x00, // code info + 0x11,0x82,0x34, // LOAD_NAME '__name__' + 0x16,0x82,0x35, // STORE_NAME '__module__' + 0x10,0x21, // LOAD_CONST_STRING 'CborError' + 0x16,0x82,0x36, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x81,0x79, // STORE_NAME '__init__' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2_CborError +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_CborError___init__ +static const byte fun_data_apps_webauthn_fido2_CborError___init__[32] = { + 0x2b,0x16, // prelude + 0x81,0x79,0x82,0x53,0x82,0x54,0x81,0x7a, // names: __init__, *, self, code + 0x80,0xdd,0x2c, // code info + 0x12,0x82,0x55, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x81,0x79, // LOAD_SUPER_METHOD '__init__' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x7a, // STORE_ATTR 'code' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_CborError___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_webauthn_fido2_CborError___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 249, + .line_info = fun_data_apps_webauthn_fido2_CborError___init__ + 10, + .line_info_top = fun_data_apps_webauthn_fido2_CborError___init__ + 13, + .opcodes = fun_data_apps_webauthn_fido2_CborError___init__ + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2_CborError[] = { + &raw_code_apps_webauthn_fido2_CborError___init__, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2_CborError = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_CborError, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = (void *)&children_apps_webauthn_fido2_CborError, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_webauthn_fido2_CborError + 3, + .line_info_top = fun_data_apps_webauthn_fido2_CborError + 5, + .opcodes = fun_data_apps_webauthn_fido2_CborError + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_frame_init +static const byte fun_data_apps_webauthn_fido2_frame_init[57] = { + 0x18,0x0e, // prelude + 0x33, // names: frame_init + 0x80,0xe7,0x22,0x29,0x29,0x29, // code info + 0x2c,0x04, // BUILD_MAP 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x34, // LOAD_ATTR 'UINT32' + 0xed, // BINARY_OP 22 __or__ + 0x10,0x35, // LOAD_CONST_STRING 'cid' + 0x62, // STORE_MAP + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x36, // LOAD_ATTR 'UINT8' + 0xed, // BINARY_OP 22 __or__ + 0x10,0x37, // LOAD_CONST_STRING 'cmd' + 0x62, // STORE_MAP + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x38, // LOAD_ATTR 'UINT16' + 0xed, // BINARY_OP 22 __or__ + 0x10,0x39, // LOAD_CONST_STRING 'bcnt' + 0x62, // STORE_MAP + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x3a, // LOAD_ATTR 'ARRAY' + 0xed, // BINARY_OP 22 __or__ + 0x22,0x39, // LOAD_CONST_SMALL_INT 57 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x36, // LOAD_ATTR 'UINT8' + 0xed, // BINARY_OP 22 __or__ + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x3b, // LOAD_CONST_STRING 'data' + 0x62, // STORE_MAP + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_frame_init = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_frame_init, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 51, + .line_info = fun_data_apps_webauthn_fido2_frame_init + 3, + .line_info_top = fun_data_apps_webauthn_fido2_frame_init + 9, + .opcodes = fun_data_apps_webauthn_fido2_frame_init + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_frame_cont +static const byte fun_data_apps_webauthn_fido2_frame_cont[47] = { + 0x18,0x0c, // prelude + 0x3c, // names: frame_cont + 0x80,0xf3,0x22,0x29,0x29, // code info + 0x2c,0x03, // BUILD_MAP 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x34, // LOAD_ATTR 'UINT32' + 0xed, // BINARY_OP 22 __or__ + 0x10,0x35, // LOAD_CONST_STRING 'cid' + 0x62, // STORE_MAP + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x36, // LOAD_ATTR 'UINT8' + 0xed, // BINARY_OP 22 __or__ + 0x10,0x3d, // LOAD_CONST_STRING 'seq' + 0x62, // STORE_MAP + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x3a, // LOAD_ATTR 'ARRAY' + 0xed, // BINARY_OP 22 __or__ + 0x22,0x3b, // LOAD_CONST_SMALL_INT 59 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x36, // LOAD_ATTR 'UINT8' + 0xed, // BINARY_OP 22 __or__ + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x3b, // LOAD_CONST_STRING 'data' + 0x62, // STORE_MAP + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_frame_cont = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_frame_cont, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 60, + .line_info = fun_data_apps_webauthn_fido2_frame_cont + 3, + .line_info_top = fun_data_apps_webauthn_fido2_frame_cont + 8, + .opcodes = fun_data_apps_webauthn_fido2_frame_cont + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__resp_cmd_init +static const byte fun_data_apps_webauthn_fido2__resp_cmd_init[75] = { + 0x20,0x18, // prelude + 0x3e, // names: _resp_cmd_init + 0x80,0xfb,0x85,0x08,0x22,0x2e,0x29,0x26,0x26,0x26,0x26, // code info + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x36, // LOAD_ATTR 'UINT8' + 0xc0, // STORE_FAST 0 + 0x2c,0x07, // BUILD_MAP 7 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x3a, // LOAD_ATTR 'ARRAY' + 0xed, // BINARY_OP 22 __or__ + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xb0, // LOAD_FAST 0 + 0xed, // BINARY_OP 22 __or__ + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x3f, // LOAD_CONST_STRING 'nonce' + 0x62, // STORE_MAP + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x34, // LOAD_ATTR 'UINT32' + 0xed, // BINARY_OP 22 __or__ + 0x10,0x35, // LOAD_CONST_STRING 'cid' + 0x62, // STORE_MAP + 0x8c, // LOAD_CONST_SMALL_INT 12 + 0xb0, // LOAD_FAST 0 + 0xed, // BINARY_OP 22 __or__ + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x62, // STORE_MAP + 0x8d, // LOAD_CONST_SMALL_INT 13 + 0xb0, // LOAD_FAST 0 + 0xed, // BINARY_OP 22 __or__ + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x62, // STORE_MAP + 0x8e, // LOAD_CONST_SMALL_INT 14 + 0xb0, // LOAD_FAST 0 + 0xed, // BINARY_OP 22 __or__ + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x62, // STORE_MAP + 0x8f, // LOAD_CONST_SMALL_INT 15 + 0xb0, // LOAD_FAST 0 + 0xed, // BINARY_OP 22 __or__ + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x62, // STORE_MAP + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xb0, // LOAD_FAST 0 + 0xed, // BINARY_OP 22 __or__ + 0x10,0x40, // LOAD_CONST_STRING 'capFlags' + 0x62, // STORE_MAP + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__resp_cmd_init = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2__resp_cmd_init, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 75, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 62, + .line_info = fun_data_apps_webauthn_fido2__resp_cmd_init + 3, + .line_info_top = fun_data_apps_webauthn_fido2__resp_cmd_init + 14, + .opcodes = fun_data_apps_webauthn_fido2__resp_cmd_init + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__resp_cmd_register +static const byte fun_data_apps_webauthn_fido2__resp_cmd_register[122] = { + 0x5b,0x2c, // prelude + 0x41,0x82,0x37,0x82,0x38,0x82,0x39, // names: _resp_cmd_register, khlen, certlen, siglen + 0x90,0x0f,0x26,0x24,0x24,0x25,0x85,0x08,0x22,0x26,0x2d,0x28,0x2d,0x2b,0x2b, // code info + 0x22,0x80,0x43, // LOAD_CONST_SMALL_INT 67 + 0xb0, // LOAD_FAST 0 + 0xf2, // BINARY_OP 27 __add__ + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0xb2, // LOAD_FAST 2 + 0xf2, // BINARY_OP 27 __add__ + 0xc5, // STORE_FAST 5 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x36, // LOAD_ATTR 'UINT8' + 0xc6, // STORE_FAST 6 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x3a, // LOAD_ATTR 'ARRAY' + 0xc7, // STORE_FAST 7 + 0x2c,0x07, // BUILD_MAP 7 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb6, // LOAD_FAST 6 + 0xed, // BINARY_OP 22 __or__ + 0x10,0x42, // LOAD_CONST_STRING 'registerId' + 0x62, // STORE_MAP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb7, // LOAD_FAST 7 + 0xed, // BINARY_OP 22 __or__ + 0x22,0x80,0x41, // LOAD_CONST_SMALL_INT 65 + 0xb6, // LOAD_FAST 6 + 0xed, // BINARY_OP 22 __or__ + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x43, // LOAD_CONST_STRING 'pubKey' + 0x62, // STORE_MAP + 0x22,0x80,0x42, // LOAD_CONST_SMALL_INT 66 + 0xb6, // LOAD_FAST 6 + 0xed, // BINARY_OP 22 __or__ + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x62, // STORE_MAP + 0x22,0x80,0x43, // LOAD_CONST_SMALL_INT 67 + 0xb7, // LOAD_FAST 7 + 0xed, // BINARY_OP 22 __or__ + 0xb0, // LOAD_FAST 0 + 0xb6, // LOAD_FAST 6 + 0xed, // BINARY_OP 22 __or__ + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x44, // LOAD_CONST_STRING 'keyHandle' + 0x62, // STORE_MAP + 0xb3, // LOAD_FAST 3 + 0xb7, // LOAD_FAST 7 + 0xed, // BINARY_OP 22 __or__ + 0xb1, // LOAD_FAST 1 + 0xb6, // LOAD_FAST 6 + 0xed, // BINARY_OP 22 __or__ + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x45, // LOAD_CONST_STRING 'cert' + 0x62, // STORE_MAP + 0xb4, // LOAD_FAST 4 + 0xb7, // LOAD_FAST 7 + 0xed, // BINARY_OP 22 __or__ + 0xb2, // LOAD_FAST 2 + 0xb6, // LOAD_FAST 6 + 0xed, // BINARY_OP 22 __or__ + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x46, // LOAD_CONST_STRING 'sig' + 0x62, // STORE_MAP + 0xb5, // LOAD_FAST 5 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x38, // LOAD_ATTR 'UINT16' + 0xed, // BINARY_OP 22 __or__ + 0x10,0x47, // LOAD_CONST_STRING 'status' + 0x62, // STORE_MAP + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__resp_cmd_register = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_webauthn_fido2__resp_cmd_register, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 122, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 65, + .line_info = fun_data_apps_webauthn_fido2__resp_cmd_register + 9, + .line_info_top = fun_data_apps_webauthn_fido2__resp_cmd_register + 24, + .opcodes = fun_data_apps_webauthn_fido2__resp_cmd_register + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__req_cmd_authenticate +static const byte fun_data_apps_webauthn_fido2__req_cmd_authenticate[69] = { + 0x31,0x16, // prelude + 0x48,0x82,0x37, // names: _req_cmd_authenticate, khlen + 0x90,0x2b,0x25,0x25,0x22,0x2b,0x2b,0x28, // code info + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x36, // LOAD_ATTR 'UINT8' + 0xc1, // STORE_FAST 1 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x3a, // LOAD_ATTR 'ARRAY' + 0xc2, // STORE_FAST 2 + 0x2c,0x04, // BUILD_MAP 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb2, // LOAD_FAST 2 + 0xed, // BINARY_OP 22 __or__ + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xb1, // LOAD_FAST 1 + 0xed, // BINARY_OP 22 __or__ + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x49, // LOAD_CONST_STRING 'chal' + 0x62, // STORE_MAP + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xb2, // LOAD_FAST 2 + 0xed, // BINARY_OP 22 __or__ + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xb1, // LOAD_FAST 1 + 0xed, // BINARY_OP 22 __or__ + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x4a, // LOAD_CONST_STRING 'appId' + 0x62, // STORE_MAP + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xb1, // LOAD_FAST 1 + 0xed, // BINARY_OP 22 __or__ + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x62, // STORE_MAP + 0x22,0x80,0x41, // LOAD_CONST_SMALL_INT 65 + 0xb2, // LOAD_FAST 2 + 0xed, // BINARY_OP 22 __or__ + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xed, // BINARY_OP 22 __or__ + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x44, // LOAD_CONST_STRING 'keyHandle' + 0x62, // STORE_MAP + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__req_cmd_authenticate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2__req_cmd_authenticate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 69, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 72, + .line_info = fun_data_apps_webauthn_fido2__req_cmd_authenticate + 5, + .line_info_top = fun_data_apps_webauthn_fido2__req_cmd_authenticate + 13, + .opcodes = fun_data_apps_webauthn_fido2__req_cmd_authenticate + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__resp_cmd_authenticate +static const byte fun_data_apps_webauthn_fido2__resp_cmd_authenticate[64] = { + 0x29,0x16, // prelude + 0x4b,0x82,0x39, // names: _resp_cmd_authenticate, siglen + 0x90,0x36,0x64,0x40,0x22,0x29,0x29,0x31, // code info + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xb0, // LOAD_FAST 0 + 0xf2, // BINARY_OP 27 __add__ + 0xc1, // STORE_FAST 1 + 0x2c,0x04, // BUILD_MAP 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x36, // LOAD_ATTR 'UINT8' + 0xed, // BINARY_OP 22 __or__ + 0x10,0x4c, // LOAD_CONST_STRING 'flags' + 0x62, // STORE_MAP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x34, // LOAD_ATTR 'UINT32' + 0xed, // BINARY_OP 22 __or__ + 0x10,0x4d, // LOAD_CONST_STRING 'ctr' + 0x62, // STORE_MAP + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x3a, // LOAD_ATTR 'ARRAY' + 0xed, // BINARY_OP 22 __or__ + 0xb0, // LOAD_FAST 0 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x36, // LOAD_ATTR 'UINT8' + 0xed, // BINARY_OP 22 __or__ + 0x2a,0x02, // BUILD_TUPLE 2 + 0x10,0x46, // LOAD_CONST_STRING 'sig' + 0x62, // STORE_MAP + 0xb1, // LOAD_FAST 1 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x38, // LOAD_ATTR 'UINT16' + 0xed, // BINARY_OP 22 __or__ + 0x10,0x47, // LOAD_CONST_STRING 'status' + 0x62, // STORE_MAP + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__resp_cmd_authenticate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2__resp_cmd_authenticate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 64, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 75, + .line_info = fun_data_apps_webauthn_fido2__resp_cmd_authenticate + 5, + .line_info_top = fun_data_apps_webauthn_fido2__resp_cmd_authenticate + 13, + .opcodes = fun_data_apps_webauthn_fido2__resp_cmd_authenticate + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_overlay_struct +static const byte fun_data_apps_webauthn_fido2_overlay_struct[72] = { + 0x42,0x14, // prelude + 0x4e,0x82,0x3a,0x82,0x3b, // names: overlay_struct, buf, desc + 0x90,0x44,0x2c,0x2a,0x33, // code info + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x14,0x4f, // LOAD_METHOD 'sizeof' + 0xb1, // LOAD_FAST 1 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x50, // LOAD_ATTR 'BIG_ENDIAN' + 0x36,0x02, // CALL_METHOD 2 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x82,0x3d, // LOAD_GLOBAL 'ValueError' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x14,0x51, // LOAD_METHOD 'format' + 0xb2, // LOAD_FAST 2 + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x14,0x52, // LOAD_METHOD 'struct' + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x14,0x53, // LOAD_METHOD 'addressof' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xb1, // LOAD_FAST 1 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x50, // LOAD_ATTR 'BIG_ENDIAN' + 0x36,0x03, // CALL_METHOD 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_overlay_struct = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2_overlay_struct, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 78, + .line_info = fun_data_apps_webauthn_fido2_overlay_struct + 7, + .line_info_top = fun_data_apps_webauthn_fido2_overlay_struct + 12, + .opcodes = fun_data_apps_webauthn_fido2_overlay_struct + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_make_struct +static const byte fun_data_apps_webauthn_fido2_make_struct[50] = { + 0x41,0x0e, // prelude + 0x54,0x82,0x3b, // names: make_struct, desc + 0x90,0x4b,0x2c,0x27, // code info + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x14,0x4f, // LOAD_METHOD 'sizeof' + 0xb0, // LOAD_FAST 0 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x50, // LOAD_ATTR 'BIG_ENDIAN' + 0x36,0x02, // CALL_METHOD 2 + 0xc1, // STORE_FAST 1 + 0x12,0x82,0x3e, // LOAD_GLOBAL 'bytearray' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x14,0x52, // LOAD_METHOD 'struct' + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x14,0x53, // LOAD_METHOD 'addressof' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xb0, // LOAD_FAST 0 + 0x12,0x02, // LOAD_GLOBAL 'uctypes' + 0x13,0x50, // LOAD_ATTR 'BIG_ENDIAN' + 0x36,0x03, // CALL_METHOD 3 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_make_struct = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_make_struct, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 84, + .line_info = fun_data_apps_webauthn_fido2_make_struct + 5, + .line_info_top = fun_data_apps_webauthn_fido2_make_struct + 9, + .opcodes = fun_data_apps_webauthn_fido2_make_struct + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Msg +static const byte fun_data_apps_webauthn_fido2_Msg[23] = { + 0x00,0x06, // prelude + 0x22, // names: Msg + 0x9b,0x51, // code info + 0x11,0x82,0x34, // LOAD_NAME '__name__' + 0x16,0x82,0x35, // STORE_NAME '__module__' + 0x10,0x22, // LOAD_CONST_STRING 'Msg' + 0x16,0x82,0x36, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x79, // STORE_NAME '__init__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2_Msg +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Msg___init__ +static const byte fun_data_apps_webauthn_fido2_Msg___init__[59] = { + 0xc8,0x80,0x04,0x2c, // prelude + 0x81,0x79,0x82,0x54,0x35,0x7f,0x7e,0x81,0x22,0x81,0x7b,0x81,0x00,0x3b, // names: __init__, self, cid, cla, ins, p1, p2, lc, data + 0x90,0x54,0x24,0x24,0x24,0x25,0x25,0x25, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x35, // STORE_ATTR 'cid' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x7f, // STORE_ATTR 'cla' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x7e, // STORE_ATTR 'ins' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x22, // STORE_ATTR 'p1' + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x7b, // STORE_ATTR 'p2' + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x00, // STORE_ATTR 'lc' + 0xb7, // LOAD_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x18,0x3b, // STORE_ATTR 'data' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Msg___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 8, + .fun_data = fun_data_apps_webauthn_fido2_Msg___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 8, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 249, + .line_info = fun_data_apps_webauthn_fido2_Msg___init__ + 18, + .line_info_top = fun_data_apps_webauthn_fido2_Msg___init__ + 26, + .opcodes = fun_data_apps_webauthn_fido2_Msg___init__ + 26, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2_Msg[] = { + &raw_code_apps_webauthn_fido2_Msg___init__, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Msg = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_Msg, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = (void *)&children_apps_webauthn_fido2_Msg, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 34, + .line_info = fun_data_apps_webauthn_fido2_Msg + 3, + .line_info_top = fun_data_apps_webauthn_fido2_Msg + 5, + .opcodes = fun_data_apps_webauthn_fido2_Msg + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Cmd +static const byte fun_data_apps_webauthn_fido2_Cmd[29] = { + 0x00,0x0a, // prelude + 0x23, // names: Cmd + 0x9b,0x5e,0x65,0x40, // code info + 0x11,0x82,0x34, // LOAD_NAME '__name__' + 0x16,0x82,0x35, // STORE_NAME '__module__' + 0x10,0x23, // LOAD_CONST_STRING 'Cmd' + 0x16,0x82,0x36, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x79, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x7d, // STORE_NAME 'to_msg' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2_Cmd +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Cmd___init__ +static const byte fun_data_apps_webauthn_fido2_Cmd___init__[28] = { + 0xa8,0x04,0x16, // prelude + 0x81,0x79,0x82,0x54,0x35,0x37,0x3b, // names: __init__, self, cid, cmd, data + 0x90,0x5f,0x24,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x35, // STORE_ATTR 'cid' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x37, // STORE_ATTR 'cmd' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x3b, // STORE_ATTR 'data' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Cmd___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_webauthn_fido2_Cmd___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 249, + .line_info = fun_data_apps_webauthn_fido2_Cmd___init__ + 10, + .line_info_top = fun_data_apps_webauthn_fido2_Cmd___init__ + 14, + .opcodes = fun_data_apps_webauthn_fido2_Cmd___init__ + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_Cmd +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Cmd_to_msg +static const byte fun_data_apps_webauthn_fido2_Cmd_to_msg[76] = { + 0x79,0x1e, // prelude + 0x7d,0x82,0x54, // names: to_msg, self + 0x90,0x64,0x44,0x24,0x24,0x24,0x24,0x20,0x25,0x26,0x45,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'data' + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x55, // LOAD_SUBSCR + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x55, // LOAD_SUBSCR + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xf0, // BINARY_OP 25 __lshift__ + 0xb1, // LOAD_FAST 1 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x55, // LOAD_SUBSCR + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf0, // BINARY_OP 25 __lshift__ + 0xf2, // BINARY_OP 27 __add__ + 0xb1, // LOAD_FAST 1 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x55, // LOAD_SUBSCR + 0xf2, // BINARY_OP 27 __add__ + 0xc6, // STORE_FAST 6 + 0xb1, // LOAD_FAST 1 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xb6, // LOAD_FAST 6 + 0xf2, // BINARY_OP 27 __add__ + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc7, // STORE_FAST 7 + 0x12,0x22, // LOAD_GLOBAL 'Msg' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x34,0x07, // CALL_FUNCTION 7 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Cmd_to_msg = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_Cmd_to_msg, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 76, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 125, + .line_info = fun_data_apps_webauthn_fido2_Cmd_to_msg + 5, + .line_info_top = fun_data_apps_webauthn_fido2_Cmd_to_msg + 17, + .opcodes = fun_data_apps_webauthn_fido2_Cmd_to_msg + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2_Cmd[] = { + &raw_code_apps_webauthn_fido2_Cmd___init__, + &raw_code_apps_webauthn_fido2_Cmd_to_msg, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Cmd = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_Cmd, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = (void *)&children_apps_webauthn_fido2_Cmd, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_webauthn_fido2_Cmd + 3, + .line_info_top = fun_data_apps_webauthn_fido2_Cmd + 7, + .opcodes = fun_data_apps_webauthn_fido2_Cmd + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__read_cmd +static const byte fun_data_apps_webauthn_fido2__read_cmd[503] = { + 0xb9,0x50,0x88,0x02, // prelude + 0x55,0x81,0x10, // names: _read_cmd, iface + 0x90,0x74,0x25,0x25,0x51,0x25,0x20,0x2c,0x24,0x24,0x27,0x22,0x24,0x45,0x4b,0x40,0x42,0x54,0x30,0x42,0x47,0x40,0x30,0x42,0x25,0x27,0x2c,0x44,0x47,0x23,0x34,0x2b,0x40,0x30,0x42,0x2c,0x44,0x29,0x45,0x60,0x40,0x65,0x60,0x40,0x2c,0x22,0x23,0x1f,0x61,0x20,0x43,0x65,0x2d,0x60,0x40,0x52,0x60,0x20,0x42,0x67,0x40,0x30,0x42,0x32,0x4a, // code info + 0x12,0x33, // LOAD_GLOBAL 'frame_init' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc1, // STORE_FAST 1 + 0x12,0x3c, // LOAD_GLOBAL 'frame_cont' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc2, // STORE_FAST 2 + 0x12,0x0c, // LOAD_GLOBAL 'loop' + 0x14,0x56, // LOAD_METHOD 'wait' + 0xb0, // LOAD_FAST 0 + 0x14,0x57, // LOAD_METHOD 'iface_num' + 0x36,0x00, // CALL_METHOD 0 + 0x12,0x0a, // LOAD_GLOBAL 'io' + 0x13,0x58, // LOAD_ATTR 'POLL_READ' + 0xed, // BINARY_OP 22 __or__ + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0x12,0x4e, // LOAD_GLOBAL 'overlay_struct' + 0x12,0x82,0x3e, // LOAD_GLOBAL 'bytearray' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x13,0x39, // LOAD_ATTR 'bcnt' + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x13,0x3b, // LOAD_ATTR 'data' + 0xc7, // STORE_FAST 7 + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc9, // STORE_FAST 9 + 0xb5, // LOAD_FAST 5 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xca, // STORE_FAST 10 + 0x12,0x0b, // LOAD_GLOBAL 'log' + 0x13,0x59, // LOAD_ATTR 'warning' + 0xcb, // STORE_FAST 11 + 0xb5, // LOAD_FAST 5 + 0x13,0x37, // LOAD_ATTR 'cmd' + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xef, // BINARY_OP 24 __and__ + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xba, // LOAD_FAST 10 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x43,0x4f, // POP_JUMP_IF_TRUE 15 + 0xba, // LOAD_FAST 10 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5b, // POP_JUMP_IF_FALSE 27 + 0xb5, // LOAD_FAST 5 + 0x13,0x37, // LOAD_ATTR 'cmd' + 0x22,0x81,0x06, // LOAD_CONST_SMALL_INT 134 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x5d, // LOAD_GLOBAL 'send_cmd' + 0x12,0x81,0x29, // LOAD_GLOBAL 'cmd_error' + 0xba, // LOAD_FAST 10 + 0x8b, // LOAD_CONST_SMALL_INT 11 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb6, // LOAD_FAST 6 + 0x22,0xbb,0x39, // LOAD_CONST_SMALL_INT 7609 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x5d, // LOAD_GLOBAL 'send_cmd' + 0x12,0x81,0x29, // LOAD_GLOBAL 'cmd_error' + 0xba, // LOAD_FAST 10 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb8, // LOAD_FAST 8 + 0xb6, // LOAD_FAST 6 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0x12,0x82,0x3e, // LOAD_GLOBAL 'bytearray' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcc, // STORE_FAST 12 + 0x12,0x0d, // LOAD_GLOBAL 'utils' + 0x14,0x5a, // LOAD_METHOD 'memcpy' + 0xbc, // LOAD_FAST 12 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb7, // LOAD_FAST 7 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb6, // LOAD_FAST 6 + 0x36,0x05, // CALL_METHOD 5 + 0x59, // POP_TOP + 0xbc, // LOAD_FAST 12 + 0xc7, // STORE_FAST 7 + 0x42,0x47, // JUMP 7 + 0xb7, // LOAD_FAST 7 + 0x51, // LOAD_CONST_NONE + 0xb6, // LOAD_FAST 6 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc7, // STORE_FAST 7 + 0x42,0xdd,0x81, // JUMP 221 + 0x12,0x0c, // LOAD_GLOBAL 'loop' + 0x14,0x5b, // LOAD_METHOD 'race' + 0xb3, // LOAD_FAST 3 + 0x12,0x0c, // LOAD_GLOBAL 'loop' + 0x14,0x5c, // LOAD_METHOD 'sleep' + 0x22,0x83,0x74, // LOAD_CONST_SMALL_INT 500 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc4, // STORE_FAST 4 + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0xb4, // LOAD_FAST 4 + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x52, // POP_JUMP_IF_TRUE 18 + 0x12,0x5d, // LOAD_GLOBAL 'send_cmd' + 0x12,0x81,0x29, // LOAD_GLOBAL 'cmd_error' + 0xba, // LOAD_FAST 10 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x4e, // LOAD_GLOBAL 'overlay_struct' + 0x12,0x82,0x3e, // LOAD_GLOBAL 'bytearray' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0xcd, // STORE_FAST 13 + 0xbd, // LOAD_FAST 13 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xce, // STORE_FAST 14 + 0xbd, // LOAD_FAST 13 + 0x13,0x3d, // LOAD_ATTR 'seq' + 0x22,0x81,0x06, // LOAD_CONST_SMALL_INT 134 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x7e, // POP_JUMP_IF_FALSE 62 + 0xbe, // LOAD_FAST 14 + 0xba, // LOAD_FAST 10 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x42,0xa0,0x81, // JUMP 160 + 0x42,0x74, // JUMP 52 + 0x12,0x4e, // LOAD_GLOBAL 'overlay_struct' + 0x12,0x82,0x3e, // LOAD_GLOBAL 'bytearray' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xcd, // STORE_FAST 13 + 0x12,0x5d, // LOAD_GLOBAL 'send_cmd' + 0x12,0x81,0x03, // LOAD_GLOBAL 'cmd_init' + 0x12,0x23, // LOAD_GLOBAL 'Cmd' + 0xbe, // LOAD_FAST 14 + 0xbd, // LOAD_FAST 13 + 0x13,0x37, // LOAD_ATTR 'cmd' + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0xbd, // LOAD_FAST 13 + 0x13,0x3b, // LOAD_ATTR 'data' + 0x51, // LOAD_CONST_NONE + 0xbd, // LOAD_FAST 13 + 0x13,0x39, // LOAD_ATTR 'bcnt' + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0xd5,0x80, // JUMP 85 + 0xbe, // LOAD_FAST 14 + 0xba, // LOAD_FAST 10 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x61, // POP_JUMP_IF_FALSE 33 + 0xbd, // LOAD_FAST 13 + 0x13,0x3d, // LOAD_ATTR 'seq' + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xef, // BINARY_OP 24 __and__ + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x5d, // LOAD_GLOBAL 'send_cmd' + 0x12,0x81,0x29, // LOAD_GLOBAL 'cmd_error' + 0xbe, // LOAD_FAST 14 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x40, // JUMP 0 + 0x42,0x6f, // JUMP 47 + 0xbd, // LOAD_FAST 13 + 0x13,0x3d, // LOAD_ATTR 'seq' + 0xb9, // LOAD_FAST 9 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x52, // POP_JUMP_IF_FALSE 18 + 0x12,0x5d, // LOAD_GLOBAL 'send_cmd' + 0x12,0x81,0x29, // LOAD_GLOBAL 'cmd_error' + 0xbe, // LOAD_FAST 14 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb8, // LOAD_FAST 8 + 0x12,0x0d, // LOAD_GLOBAL 'utils' + 0x14,0x5a, // LOAD_METHOD 'memcpy' + 0xb7, // LOAD_FAST 7 + 0xb8, // LOAD_FAST 8 + 0xbd, // LOAD_FAST 13 + 0x13,0x3b, // LOAD_ATTR 'data' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0xf3, // BINARY_OP 28 __sub__ + 0x36,0x05, // CALL_METHOD 5 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc8, // STORE_FAST 8 + 0xb9, // LOAD_FAST 9 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc9, // STORE_FAST 9 + 0xb8, // LOAD_FAST 8 + 0xb6, // LOAD_FAST 6 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x9d,0x7e, // POP_JUMP_IF_TRUE -227 + 0x12,0x23, // LOAD_GLOBAL 'Cmd' + 0xba, // LOAD_FAST 10 + 0xb5, // LOAD_FAST 5 + 0x13,0x37, // LOAD_ATTR 'cmd' + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE + 0x42,0xf3,0x7c, // JUMP -397 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__read_cmd = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2__read_cmd, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 503, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 24, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 85, + .line_info = fun_data_apps_webauthn_fido2__read_cmd + 7, + .line_info_top = fun_data_apps_webauthn_fido2__read_cmd + 72, + .opcodes = fun_data_apps_webauthn_fido2__read_cmd + 72, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_send_cmd +static const byte fun_data_apps_webauthn_fido2_send_cmd[243] = { + 0x9a,0x50,0x40, // prelude + 0x5d,0x37,0x81,0x10, // names: send_cmd, cmd, iface + 0x90,0xdf,0x25,0x25,0x22,0x22,0x49,0x29,0x26,0x26,0x44,0x32,0x47,0x25,0x47,0x31,0x23,0x24,0x30,0x24,0x26,0x31,0x20,0x34,0x26,0x44,0x2a,0x24, // code info + 0x12,0x33, // LOAD_GLOBAL 'frame_init' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc2, // STORE_FAST 2 + 0x12,0x3c, // LOAD_GLOBAL 'frame_cont' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc3, // STORE_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc4, // STORE_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc5, // STORE_FAST 5 + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'data' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc6, // STORE_FAST 6 + 0x12,0x54, // LOAD_GLOBAL 'make_struct' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc7, // STORE_FAST 7 + 0xc8, // STORE_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xb8, // LOAD_FAST 8 + 0x18,0x35, // STORE_ATTR 'cid' + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'cmd' + 0xb8, // LOAD_FAST 8 + 0x18,0x37, // STORE_ATTR 'cmd' + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0x18,0x39, // STORE_ATTR 'bcnt' + 0xb4, // LOAD_FAST 4 + 0x12,0x0d, // LOAD_GLOBAL 'utils' + 0x14,0x5a, // LOAD_METHOD 'memcpy' + 0xb8, // LOAD_FAST 8 + 0x13,0x3b, // LOAD_ATTR 'data' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'data' + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0x36,0x05, // CALL_METHOD 5 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x14,0x5e, // LOAD_METHOD 'write' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x4e, // LOAD_GLOBAL 'overlay_struct' + 0xb7, // LOAD_FAST 7 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc8, // STORE_FAST 8 + 0x12,0x0c, // LOAD_GLOBAL 'loop' + 0x14,0x56, // LOAD_METHOD 'wait' + 0xb1, // LOAD_FAST 1 + 0x14,0x57, // LOAD_METHOD 'iface_num' + 0x36,0x00, // CALL_METHOD 0 + 0x12,0x0a, // LOAD_GLOBAL 'io' + 0x13,0x5f, // LOAD_ATTR 'POLL_WRITE' + 0xed, // BINARY_OP 22 __or__ + 0x36,0x01, // CALL_METHOD 1 + 0xc9, // STORE_FAST 9 + 0x42,0xdf,0x80, // JUMP 95 + 0xb5, // LOAD_FAST 5 + 0xb8, // LOAD_FAST 8 + 0x18,0x3d, // STORE_ATTR 'seq' + 0x12,0x0d, // LOAD_GLOBAL 'utils' + 0x14,0x5a, // LOAD_METHOD 'memcpy' + 0xb8, // LOAD_FAST 8 + 0x13,0x3b, // LOAD_ATTR 'data' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'data' + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0x36,0x05, // CALL_METHOD 5 + 0xca, // STORE_FAST 10 + 0xb4, // LOAD_FAST 4 + 0xba, // LOAD_FAST 10 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc4, // STORE_FAST 4 + 0xba, // LOAD_FAST 10 + 0x22,0x3b, // LOAD_CONST_SMALL_INT 59 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x12,0x82,0x3e, // LOAD_GLOBAL 'bytearray' + 0x22,0x3b, // LOAD_CONST_SMALL_INT 59 + 0xba, // LOAD_FAST 10 + 0xf3, // BINARY_OP 28 __sub__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xb8, // LOAD_FAST 8 + 0x13,0x3b, // LOAD_ATTR 'data' + 0xba, // LOAD_FAST 10 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0x12,0x0c, // LOAD_GLOBAL 'loop' + 0x14,0x5b, // LOAD_METHOD 'race' + 0xb9, // LOAD_FAST 9 + 0x12,0x0c, // LOAD_GLOBAL 'loop' + 0x14,0x5c, // LOAD_METHOD 'sleep' + 0x22,0x83,0x74, // LOAD_CONST_SMALL_INT 500 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xcb, // STORE_FAST 11 + 0xbb, // LOAD_FAST 11 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x12,0x82,0x41, // LOAD_GLOBAL 'TimeoutError' + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x14,0x5e, // LOAD_METHOD 'write' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x42, // JUMP 2 + 0x42,0x14, // JUMP -44 + 0xb5, // LOAD_FAST 5 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x9b,0x7f, // POP_JUMP_IF_TRUE -101 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_send_cmd = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2_send_cmd, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 243, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 20, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 93, + .line_info = fun_data_apps_webauthn_fido2_send_cmd + 7, + .line_info_top = fun_data_apps_webauthn_fido2_send_cmd + 35, + .opcodes = fun_data_apps_webauthn_fido2_send_cmd + 35, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_send_cmd_sync +static const byte fun_data_apps_webauthn_fido2_send_cmd_sync[185] = { + 0x8a,0x10,0x34, // prelude + 0x60,0x37,0x81,0x10, // names: send_cmd_sync, cmd, iface + 0xa0,0x02,0x25,0x25,0x22,0x22,0x49,0x29,0x26,0x26,0x44,0x32,0x47,0x25,0x47,0x22,0x24,0x30,0x24,0x26,0x31,0x2a, // code info + 0x12,0x33, // LOAD_GLOBAL 'frame_init' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc2, // STORE_FAST 2 + 0x12,0x3c, // LOAD_GLOBAL 'frame_cont' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc3, // STORE_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc4, // STORE_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc5, // STORE_FAST 5 + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'data' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc6, // STORE_FAST 6 + 0x12,0x54, // LOAD_GLOBAL 'make_struct' + 0xb2, // LOAD_FAST 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc7, // STORE_FAST 7 + 0xc8, // STORE_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xb8, // LOAD_FAST 8 + 0x18,0x35, // STORE_ATTR 'cid' + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'cmd' + 0xb8, // LOAD_FAST 8 + 0x18,0x37, // STORE_ATTR 'cmd' + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0x18,0x39, // STORE_ATTR 'bcnt' + 0xb4, // LOAD_FAST 4 + 0x12,0x0d, // LOAD_GLOBAL 'utils' + 0x14,0x5a, // LOAD_METHOD 'memcpy' + 0xb8, // LOAD_FAST 8 + 0x13,0x3b, // LOAD_ATTR 'data' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'data' + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0x36,0x05, // CALL_METHOD 5 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x14,0x5e, // LOAD_METHOD 'write' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x4e, // LOAD_GLOBAL 'overlay_struct' + 0xb7, // LOAD_FAST 7 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc8, // STORE_FAST 8 + 0x42,0x7d, // JUMP 61 + 0xb5, // LOAD_FAST 5 + 0xb8, // LOAD_FAST 8 + 0x18,0x3d, // STORE_ATTR 'seq' + 0x12,0x0d, // LOAD_GLOBAL 'utils' + 0x14,0x5a, // LOAD_METHOD 'memcpy' + 0xb8, // LOAD_FAST 8 + 0x13,0x3b, // LOAD_ATTR 'data' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'data' + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0x36,0x05, // CALL_METHOD 5 + 0xc9, // STORE_FAST 9 + 0xb4, // LOAD_FAST 4 + 0xb9, // LOAD_FAST 9 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc4, // STORE_FAST 4 + 0xb9, // LOAD_FAST 9 + 0x22,0x3b, // LOAD_CONST_SMALL_INT 59 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x12,0x82,0x3e, // LOAD_GLOBAL 'bytearray' + 0x22,0x3b, // LOAD_CONST_SMALL_INT 59 + 0xb9, // LOAD_FAST 9 + 0xf3, // BINARY_OP 28 __sub__ + 0x34,0x01, // CALL_FUNCTION 1 + 0xb8, // LOAD_FAST 8 + 0x13,0x3b, // LOAD_ATTR 'data' + 0xb9, // LOAD_FAST 9 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x56, // STORE_SUBSCR + 0xb1, // LOAD_FAST 1 + 0x14,0x61, // LOAD_METHOD 'write_blocking' + 0xb7, // LOAD_FAST 7 + 0x22,0x87,0x68, // LOAD_CONST_SMALL_INT 1000 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0xb6, // LOAD_FAST 6 + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xbd,0x7f, // POP_JUMP_IF_TRUE -67 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_send_cmd_sync = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2_send_cmd_sync, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 185, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 96, + .line_info = fun_data_apps_webauthn_fido2_send_cmd_sync + 7, + .line_info_top = fun_data_apps_webauthn_fido2_send_cmd_sync + 29, + .opcodes = fun_data_apps_webauthn_fido2_send_cmd_sync + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_handle_reports +static const byte fun_data_apps_webauthn_fido2_handle_reports[127] = { + 0xd9,0x42,0x20, // prelude + 0x62,0x81,0x10, // names: handle_reports, iface + 0xa0,0x1e,0x46,0x20,0x22,0x29,0x25,0x24,0x2a,0x4c,0x27,0x26,0x56, // code info + 0x12,0x32, // LOAD_GLOBAL 'DialogManager' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc1, // STORE_FAST 1 + 0x48,0x41, // SETUP_EXCEPT 65 + 0x12,0x55, // LOAD_GLOBAL '_read_cmd' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0x40,0xce,0x80,0x01, // UNWIND_JUMP 78 + 0xb1, // LOAD_FAST 1 + 0x14,0x63, // LOAD_METHOD 'allow_cid' + 0xb2, // LOAD_FAST 2 + 0x13,0x35, // LOAD_ATTR 'cid' + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x4c, // POP_JUMP_IF_TRUE 12 + 0x12,0x81,0x29, // LOAD_GLOBAL 'cmd_error' + 0xb2, // LOAD_FAST 2 + 0x13,0x35, // LOAD_ATTR 'cid' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc3, // STORE_FAST 3 + 0x42,0x47, // JUMP 7 + 0x12,0x7b, // LOAD_GLOBAL '_dispatch_cmd' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x5d, // LOAD_GLOBAL 'send_cmd' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x4a,0x1e, // POP_EXCEPT_JUMP 30 + 0x57, // DUP_TOP + 0x12,0x82,0x33, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0xc4, // STORE_FAST 4 + 0x49,0x0c, // SETUP_FINALLY 12 + 0x12,0x0b, // LOAD_GLOBAL 'log' + 0x14,0x64, // LOAD_METHOD 'exception' + 0x12,0x82,0x34, // LOAD_GLOBAL '__name__' + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xc4, // STORE_FAST 4 + 0x28,0x04, // DELETE_FAST 4 + 0x5d, // END_FINALLY + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x42,0x9c,0x7f, // JUMP -100 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_handle_reports = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_handle_reports, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 127, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 2, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 98, + .line_info = fun_data_apps_webauthn_fido2_handle_reports + 6, + .line_info_top = fun_data_apps_webauthn_fido2_handle_reports + 19, + .opcodes = fun_data_apps_webauthn_fido2_handle_reports + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_KeepaliveCallback +static const byte fun_data_apps_webauthn_fido2_KeepaliveCallback[30] = { + 0x00,0x0a, // prelude + 0x24, // names: KeepaliveCallback + 0xab,0x30,0x65,0x20, // code info + 0x11,0x82,0x34, // LOAD_NAME '__name__' + 0x16,0x82,0x35, // STORE_NAME '__module__' + 0x10,0x24, // LOAD_CONST_STRING 'KeepaliveCallback' + 0x16,0x82,0x36, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x79, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x81,0x7c, // STORE_NAME '__call__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2_KeepaliveCallback +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_KeepaliveCallback___init__ +static const byte fun_data_apps_webauthn_fido2_KeepaliveCallback___init__[23] = { + 0x23,0x14, // prelude + 0x81,0x79,0x82,0x54,0x35,0x81,0x10, // names: __init__, self, cid, iface + 0xa0,0x31,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x35, // STORE_ATTR 'cid' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x10, // STORE_ATTR 'iface' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_KeepaliveCallback___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_webauthn_fido2_KeepaliveCallback___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 249, + .line_info = fun_data_apps_webauthn_fido2_KeepaliveCallback___init__ + 9, + .line_info_top = fun_data_apps_webauthn_fido2_KeepaliveCallback___init__ + 12, + .opcodes = fun_data_apps_webauthn_fido2_KeepaliveCallback___init__ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_KeepaliveCallback +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_KeepaliveCallback___call__ +static const byte fun_data_apps_webauthn_fido2_KeepaliveCallback___call__[28] = { + 0x21,0x0c, // prelude + 0x81,0x7c,0x82,0x54, // names: __call__, self + 0xa0,0x35, // code info + 0x12,0x60, // LOAD_GLOBAL 'send_cmd_sync' + 0x12,0x81,0x78, // LOAD_GLOBAL 'cmd_keepalive' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_KeepaliveCallback___call__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_KeepaliveCallback___call__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 28, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 252, + .line_info = fun_data_apps_webauthn_fido2_KeepaliveCallback___call__ + 6, + .line_info_top = fun_data_apps_webauthn_fido2_KeepaliveCallback___call__ + 8, + .opcodes = fun_data_apps_webauthn_fido2_KeepaliveCallback___call__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2_KeepaliveCallback[] = { + &raw_code_apps_webauthn_fido2_KeepaliveCallback___init__, + &raw_code_apps_webauthn_fido2_KeepaliveCallback___call__, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2_KeepaliveCallback = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_KeepaliveCallback, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = (void *)&children_apps_webauthn_fido2_KeepaliveCallback, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_webauthn_fido2_KeepaliveCallback + 3, + .line_info_top = fun_data_apps_webauthn_fido2_KeepaliveCallback + 7, + .opcodes = fun_data_apps_webauthn_fido2_KeepaliveCallback + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_verify_user +static const byte fun_data_apps_webauthn_fido2_verify_user[101] = { + 0xe1,0x42,0x1c, // prelude + 0x65,0x6d, // names: verify_user, keepalive_callback + 0xa0,0x39,0x25,0x50,0x4b,0x24,0x26,0x2e,0x25,0x28,0x46,0x47, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x66, // IMPORT_NAME 'trezor.pin' + 0xc1, // STORE_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x67, // LOAD_CONST_STRING 'PinCancelled' + 0x10,0x68, // LOAD_CONST_STRING 'PinInvalid' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x69, // IMPORT_NAME 'trezor.wire' + 0x1c,0x67, // IMPORT_FROM 'PinCancelled' + 0xc2, // STORE_FAST 2 + 0x1c,0x68, // IMPORT_FROM 'PinInvalid' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x6a, // LOAD_CONST_STRING 'verify_user_pin' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x6b, // IMPORT_NAME 'apps.common.request_pin' + 0x1c,0x6a, // IMPORT_FROM 'verify_user_pin' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x49,0x29, // SETUP_FINALLY 41 + 0x48,0x18, // SETUP_EXCEPT 24 + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x6c, // LOAD_ATTR 'pin' + 0x18,0x6d, // STORE_ATTR 'keepalive_callback' + 0xb4, // LOAD_FAST 4 + 0x10,0x6e, // LOAD_CONST_STRING 'cache_time_ms' + 0x22,0x8a,0xfe,0x20, // LOAD_CONST_SMALL_INT 180000 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0xc5, // STORE_FAST 5 + 0x4a,0x0e, // POP_EXCEPT_JUMP 14 + 0x57, // DUP_TOP + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdf, // BINARY_OP 8 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x59, // POP_TOP + 0x50, // LOAD_CONST_FALSE + 0xc5, // STORE_FAST 5 + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x13,0x6c, // LOAD_ATTR 'pin' + 0x18,0x6d, // STORE_ATTR 'keepalive_callback' + 0x5d, // END_FINALLY + 0xb5, // LOAD_FAST 5 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_verify_user = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_verify_user, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 101, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 2, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 101, + .line_info = fun_data_apps_webauthn_fido2_verify_user + 5, + .line_info_top = fun_data_apps_webauthn_fido2_verify_user + 17, + .opcodes = fun_data_apps_webauthn_fido2_verify_user + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__confirm_fido_choose +static const byte fun_data_apps_webauthn_fido2__confirm_fido_choose[84] = { + 0x6a,0x22, // prelude + 0x6f,0x82,0x42,0x82,0x43, // names: _confirm_fido_choose, title, credentials + 0xa0,0x4b,0x4b,0x4b,0x20,0x44,0x60,0x20,0x26,0x29,0x2c,0x24, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x70, // LOAD_CONST_STRING 'confirm_fido' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x71, // IMPORT_NAME 'trezor.ui.layouts.fido' + 0x1c,0x70, // IMPORT_FROM 'confirm_fido' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x72, // LOAD_CONST_STRING 'knownapps' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1c, // IMPORT_NAME '' + 0x1c,0x72, // IMPORT_FROM 'knownapps' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x14,0x73, // LOAD_METHOD 'app_name' + 0x36,0x00, // CALL_METHOD 0 + 0xc5, // STORE_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x14,0x74, // LOAD_METHOD 'by_rp_id_hash' + 0xb4, // LOAD_FAST 4 + 0x13,0x75, // LOAD_ATTR 'rp_id_hash' + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x43, // POP_JUMP_IF_FALSE 3 + 0x51, // LOAD_CONST_NONE + 0x42,0x43, // JUMP 3 + 0xb6, // LOAD_FAST 6 + 0x13,0x76, // LOAD_ATTR 'icon_name' + 0xc7, // STORE_FAST 7 + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0xb7, // LOAD_FAST 7 + 0x32,0x00, // MAKE_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x04, // CALL_FUNCTION 4 + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2__confirm_fido_choose +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__confirm_fido_choose__lt_listcomp_gt_ +static const byte fun_data_apps_webauthn_fido2__confirm_fido_choose__lt_listcomp_gt_[26] = { + 0x41,0x0c, // prelude + 0x81,0x7d,0x82,0x53, // names: , * + 0xa0,0x5a, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0b, // FOR_ITER 11 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x30, // LOAD_METHOD 'account_name' + 0x36,0x00, // CALL_METHOD 0 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0x33, // JUMP -13 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__confirm_fido_choose__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2__confirm_fido_choose__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 253, + .line_info = fun_data_apps_webauthn_fido2__confirm_fido_choose__lt_listcomp_gt_ + 6, + .line_info_top = fun_data_apps_webauthn_fido2__confirm_fido_choose__lt_listcomp_gt_ + 8, + .opcodes = fun_data_apps_webauthn_fido2__confirm_fido_choose__lt_listcomp_gt_ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2__confirm_fido_choose[] = { + &raw_code_apps_webauthn_fido2__confirm_fido_choose__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2__confirm_fido_choose = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2__confirm_fido_choose, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 84, + #endif + .children = (void *)&children_apps_webauthn_fido2__confirm_fido_choose, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 111, + .line_info = fun_data_apps_webauthn_fido2__confirm_fido_choose + 7, + .line_info_top = fun_data_apps_webauthn_fido2__confirm_fido_choose + 19, + .opcodes = fun_data_apps_webauthn_fido2__confirm_fido_choose + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__confirm_fido +static const byte fun_data_apps_webauthn_fido2__confirm_fido[47] = { + 0xbe,0x40,0x14, // prelude + 0x77,0x82,0x42,0x1f, // names: _confirm_fido, title, credential + 0xa0,0x5f,0x22,0x2c,0x25,0x28, // code info + 0x48,0x10, // SETUP_EXCEPT 16 + 0x12,0x6f, // LOAD_GLOBAL '_confirm_fido_choose' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE + 0x4a,0x0e, // POP_EXCEPT_JUMP 14 + 0x57, // DUP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'wire' + 0x13,0x78, // LOAD_ATTR 'ActionCancelled' + 0xdf, // BINARY_OP 8 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x59, // POP_TOP + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__confirm_fido = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2__confirm_fido, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 119, + .line_info = fun_data_apps_webauthn_fido2__confirm_fido + 7, + .line_info_top = fun_data_apps_webauthn_fido2__confirm_fido + 13, + .opcodes = fun_data_apps_webauthn_fido2__confirm_fido + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__confirm_bogus_app +static const byte fun_data_apps_webauthn_fido2__confirm_bogus_app[62] = { + 0xb1,0x40,0x18, // prelude + 0x79,0x82,0x42, // names: _confirm_bogus_app, title + 0xa0,0x67,0x25,0x43,0x22,0x70,0x20,0x43,0x22, // code info + 0x12,0x82,0x32, // LOAD_GLOBAL '_last_auth_valid' + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x12,0x15, // LOAD_GLOBAL 'show_error_popup' + 0xb0, // LOAD_FAST 0 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0x10,0x7a, // LOAD_CONST_STRING 'timeout_ms' + 0x22,0x9f,0x20, // LOAD_CONST_SMALL_INT 4000 + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x53, // JUMP 19 + 0x12,0x15, // LOAD_GLOBAL 'show_error_popup' + 0xb0, // LOAD_FAST 0 + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0x10,0x7a, // LOAD_CONST_STRING 'timeout_ms' + 0x22,0x9f,0x20, // LOAD_CONST_SMALL_INT 4000 + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__confirm_bogus_app = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2__confirm_bogus_app, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 62, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 121, + .line_info = fun_data_apps_webauthn_fido2__confirm_bogus_app + 6, + .line_info_top = fun_data_apps_webauthn_fido2__confirm_bogus_app + 15, + .opcodes = fun_data_apps_webauthn_fido2__confirm_bogus_app + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_State +static const byte fun_data_apps_webauthn_fido2_State[72] = { + 0x00,0x1c, // prelude + 0x25, // names: State + 0xab,0x78,0x65,0x40,0x64,0x20,0x65,0x20,0x64,0x65,0x65,0x65,0x65, // code info + 0x11,0x82,0x34, // LOAD_NAME '__name__' + 0x16,0x82,0x35, // STORE_NAME '__module__' + 0x10,0x25, // LOAD_CONST_STRING 'State' + 0x16,0x82,0x36, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x79, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x63, // STORE_NAME 'allow_cid' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x81,0x7f, // STORE_NAME 'keepalive_status' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x7a, // STORE_NAME 'timeout_ms' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x82,0x00, // STORE_NAME 'confirm_dialog' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x82,0x01, // STORE_NAME 'on_confirm' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x82,0x02, // STORE_NAME 'on_decline' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x82,0x03, // STORE_NAME 'on_timeout' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x82,0x04, // STORE_NAME 'on_cancel' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2_State +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_State___init__ +static const byte fun_data_apps_webauthn_fido2_State___init__[29] = { + 0x23,0x16, // prelude + 0x81,0x79,0x82,0x54,0x35,0x81,0x10, // names: __init__, self, cid, iface + 0xa0,0x79,0x24,0x25, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x35, // STORE_ATTR 'cid' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x10, // STORE_ATTR 'iface' + 0x50, // LOAD_CONST_FALSE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x7e, // STORE_ATTR 'finished' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_State___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_webauthn_fido2_State___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 249, + .line_info = fun_data_apps_webauthn_fido2_State___init__ + 9, + .line_info_top = fun_data_apps_webauthn_fido2_State___init__ + 13, + .opcodes = fun_data_apps_webauthn_fido2_State___init__ + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_State +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_State_allow_cid +static const byte fun_data_apps_webauthn_fido2_State_allow_cid[10] = { + 0x12,0x0c, // prelude + 0x63,0x82,0x54,0x35, // names: allow_cid, self, cid + 0xa0,0x7f, // code info + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_State_allow_cid = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2_State_allow_cid, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 10, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 99, + .line_info = fun_data_apps_webauthn_fido2_State_allow_cid + 6, + .line_info_top = fun_data_apps_webauthn_fido2_State_allow_cid + 8, + .opcodes = fun_data_apps_webauthn_fido2_State_allow_cid + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_State +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_State_keepalive_status +static const byte fun_data_apps_webauthn_fido2_State_keepalive_status[10] = { + 0x09,0x0c, // prelude + 0x81,0x7f,0x82,0x54, // names: keepalive_status, self + 0xa0,0x83, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_State_keepalive_status = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_State_keepalive_status, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 10, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 255, + .line_info = fun_data_apps_webauthn_fido2_State_keepalive_status + 6, + .line_info_top = fun_data_apps_webauthn_fido2_State_keepalive_status + 8, + .opcodes = fun_data_apps_webauthn_fido2_State_keepalive_status + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_State +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_State_timeout_ms +static const byte fun_data_apps_webauthn_fido2_State_timeout_ms[13] = { + 0x09,0x0a, // prelude + 0x7a,0x82,0x54, // names: timeout_ms, self + 0xa0,0x86, // code info + 0x12,0x82,0x56, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_State_timeout_ms = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_State_timeout_ms, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 13, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 122, + .line_info = fun_data_apps_webauthn_fido2_State_timeout_ms + 5, + .line_info_top = fun_data_apps_webauthn_fido2_State_timeout_ms + 7, + .opcodes = fun_data_apps_webauthn_fido2_State_timeout_ms + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_State +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_State_confirm_dialog +static const byte fun_data_apps_webauthn_fido2_State_confirm_dialog[15] = { + 0x89,0x40,0x0c, // prelude + 0x82,0x00,0x82,0x54, // names: confirm_dialog, self + 0xa0,0x89, // code info + 0x12,0x82,0x56, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_State_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_State_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 15, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 256, + .line_info = fun_data_apps_webauthn_fido2_State_confirm_dialog + 7, + .line_info_top = fun_data_apps_webauthn_fido2_State_confirm_dialog + 9, + .opcodes = fun_data_apps_webauthn_fido2_State_confirm_dialog + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_State +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_State_on_confirm +static const byte fun_data_apps_webauthn_fido2_State_on_confirm[11] = { + 0x89,0x40,0x0c, // prelude + 0x82,0x01,0x82,0x54, // names: on_confirm, self + 0xa0,0x8c, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_State_on_confirm = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_State_on_confirm, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 11, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 257, + .line_info = fun_data_apps_webauthn_fido2_State_on_confirm + 7, + .line_info_top = fun_data_apps_webauthn_fido2_State_on_confirm + 9, + .opcodes = fun_data_apps_webauthn_fido2_State_on_confirm + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_State +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_State_on_decline +static const byte fun_data_apps_webauthn_fido2_State_on_decline[11] = { + 0x89,0x40,0x0c, // prelude + 0x82,0x02,0x82,0x54, // names: on_decline, self + 0xa0,0x8f, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_State_on_decline = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_State_on_decline, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 11, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 258, + .line_info = fun_data_apps_webauthn_fido2_State_on_decline + 7, + .line_info_top = fun_data_apps_webauthn_fido2_State_on_decline + 9, + .opcodes = fun_data_apps_webauthn_fido2_State_on_decline + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_State +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_State_on_timeout +static const byte fun_data_apps_webauthn_fido2_State_on_timeout[11] = { + 0x89,0x40,0x0c, // prelude + 0x82,0x03,0x82,0x54, // names: on_timeout, self + 0xa0,0x92, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_State_on_timeout = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_State_on_timeout, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 11, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 259, + .line_info = fun_data_apps_webauthn_fido2_State_on_timeout + 7, + .line_info_top = fun_data_apps_webauthn_fido2_State_on_timeout + 9, + .opcodes = fun_data_apps_webauthn_fido2_State_on_timeout + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_State +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_State_on_cancel +static const byte fun_data_apps_webauthn_fido2_State_on_cancel[11] = { + 0x89,0x40,0x0c, // prelude + 0x82,0x04,0x82,0x54, // names: on_cancel, self + 0xa0,0x95, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_State_on_cancel = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_State_on_cancel, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 11, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 260, + .line_info = fun_data_apps_webauthn_fido2_State_on_cancel + 7, + .line_info_top = fun_data_apps_webauthn_fido2_State_on_cancel + 9, + .opcodes = fun_data_apps_webauthn_fido2_State_on_cancel + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2_State[] = { + &raw_code_apps_webauthn_fido2_State___init__, + &raw_code_apps_webauthn_fido2_State_allow_cid, + &raw_code_apps_webauthn_fido2_State_keepalive_status, + &raw_code_apps_webauthn_fido2_State_timeout_ms, + &raw_code_apps_webauthn_fido2_State_confirm_dialog, + &raw_code_apps_webauthn_fido2_State_on_confirm, + &raw_code_apps_webauthn_fido2_State_on_decline, + &raw_code_apps_webauthn_fido2_State_on_timeout, + &raw_code_apps_webauthn_fido2_State_on_cancel, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2_State = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_State, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = (void *)&children_apps_webauthn_fido2_State, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 9, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 37, + .line_info = fun_data_apps_webauthn_fido2_State + 3, + .line_info_top = fun_data_apps_webauthn_fido2_State + 16, + .opcodes = fun_data_apps_webauthn_fido2_State + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_U2fState +static const byte fun_data_apps_webauthn_fido2_U2fState[40] = { + 0x00,0x0e, // prelude + 0x26, // names: U2fState + 0xab,0x99,0x65,0x40,0x64,0x64, // code info + 0x11,0x82,0x34, // LOAD_NAME '__name__' + 0x16,0x82,0x35, // STORE_NAME '__module__' + 0x10,0x26, // LOAD_CONST_STRING 'U2fState' + 0x16,0x82,0x36, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x79, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x7a, // STORE_NAME 'timeout_ms' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x73, // STORE_NAME 'app_name' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x81,0x30, // STORE_NAME 'account_name' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2_U2fState +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_U2fState___init__ +static const byte fun_data_apps_webauthn_fido2_U2fState___init__[41] = { + 0xc9,0x04,0x1e, // prelude + 0x81,0x79,0x82,0x54,0x35,0x81,0x10,0x82,0x57,0x82,0x46, // names: __init__, self, cid, iface, req_data, cred + 0xa0,0x9a,0x2b,0x25, // code info + 0x12,0x25, // LOAD_GLOBAL 'State' + 0x14,0x81,0x79, // LOAD_METHOD '__init__' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x05, // STORE_ATTR '_cred' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x06, // STORE_ATTR '_req_data' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_U2fState___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_webauthn_fido2_U2fState___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 249, + .line_info = fun_data_apps_webauthn_fido2_U2fState___init__ + 14, + .line_info_top = fun_data_apps_webauthn_fido2_U2fState___init__ + 18, + .opcodes = fun_data_apps_webauthn_fido2_U2fState___init__ + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_U2fState +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_U2fState_timeout_ms +static const byte fun_data_apps_webauthn_fido2_U2fState_timeout_ms[11] = { + 0x09,0x0a, // prelude + 0x7a,0x82,0x54, // names: timeout_ms, self + 0xa0,0x9f, // code info + 0x22,0x97,0x38, // LOAD_CONST_SMALL_INT 3000 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_U2fState_timeout_ms = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_U2fState_timeout_ms, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 11, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 122, + .line_info = fun_data_apps_webauthn_fido2_U2fState_timeout_ms + 5, + .line_info_top = fun_data_apps_webauthn_fido2_U2fState_timeout_ms + 7, + .opcodes = fun_data_apps_webauthn_fido2_U2fState_timeout_ms + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_U2fState +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_U2fState_app_name +static const byte fun_data_apps_webauthn_fido2_U2fState_app_name[16] = { + 0x11,0x0a, // prelude + 0x73,0x82,0x54, // names: app_name, self + 0xa0,0xa2, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x05, // LOAD_ATTR '_cred' + 0x14,0x73, // LOAD_METHOD 'app_name' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_U2fState_app_name = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_U2fState_app_name, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 115, + .line_info = fun_data_apps_webauthn_fido2_U2fState_app_name + 5, + .line_info_top = fun_data_apps_webauthn_fido2_U2fState_app_name + 7, + .opcodes = fun_data_apps_webauthn_fido2_U2fState_app_name + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_U2fState +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_U2fState_account_name +static const byte fun_data_apps_webauthn_fido2_U2fState_account_name[18] = { + 0x11,0x0c, // prelude + 0x81,0x30,0x82,0x54, // names: account_name, self + 0xa0,0xa5, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x05, // LOAD_ATTR '_cred' + 0x14,0x81,0x30, // LOAD_METHOD 'account_name' + 0x36,0x00, // CALL_METHOD 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_U2fState_account_name = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_U2fState_account_name, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 18, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 176, + .line_info = fun_data_apps_webauthn_fido2_U2fState_account_name + 6, + .line_info_top = fun_data_apps_webauthn_fido2_U2fState_account_name + 8, + .opcodes = fun_data_apps_webauthn_fido2_U2fState_account_name + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2_U2fState[] = { + &raw_code_apps_webauthn_fido2_U2fState___init__, + &raw_code_apps_webauthn_fido2_U2fState_timeout_ms, + &raw_code_apps_webauthn_fido2_U2fState_app_name, + &raw_code_apps_webauthn_fido2_U2fState_account_name, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2_U2fState = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_U2fState, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 40, + #endif + .children = (void *)&children_apps_webauthn_fido2_U2fState, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 38, + .line_info = fun_data_apps_webauthn_fido2_U2fState + 3, + .line_info_top = fun_data_apps_webauthn_fido2_U2fState + 9, + .opcodes = fun_data_apps_webauthn_fido2_U2fState + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_U2fConfirmRegister +static const byte fun_data_apps_webauthn_fido2_U2fConfirmRegister[30] = { + 0x00,0x0a, // prelude + 0x27, // names: U2fConfirmRegister + 0xab,0xa9,0x85,0x07, // code info + 0x11,0x82,0x34, // LOAD_NAME '__name__' + 0x16,0x82,0x35, // STORE_NAME '__module__' + 0x10,0x27, // LOAD_CONST_STRING 'U2fConfirmRegister' + 0x16,0x82,0x36, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x82,0x00, // STORE_NAME 'confirm_dialog' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x82,0x08, // STORE_NAME '__eq__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2_U2fConfirmRegister +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_U2fConfirmRegister_confirm_dialog +static const byte fun_data_apps_webauthn_fido2_U2fConfirmRegister_confirm_dialog[53] = { + 0x99,0x40,0x12, // prelude + 0x82,0x00,0x82,0x54, // names: confirm_dialog, self + 0xa0,0xaa,0x2c,0x2b,0x42, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x05, // LOAD_ATTR '_cred' + 0x13,0x75, // LOAD_ATTR 'rp_id_hash' + 0x12,0x82,0x2f, // LOAD_GLOBAL '_BOGUS_APPIDS' + 0xdd, // BINARY_OP 6 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x79, // LOAD_GLOBAL '_confirm_bogus_app' + 0x10,0x82,0x07, // LOAD_CONST_STRING 'U2F' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0x12,0x77, // LOAD_GLOBAL '_confirm_fido' + 0x23,0x17, // LOAD_CONST_OBJ 23 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x05, // LOAD_ATTR '_cred' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_U2fConfirmRegister_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_U2fConfirmRegister_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 53, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 256, + .line_info = fun_data_apps_webauthn_fido2_U2fConfirmRegister_confirm_dialog + 7, + .line_info_top = fun_data_apps_webauthn_fido2_U2fConfirmRegister_confirm_dialog + 12, + .opcodes = fun_data_apps_webauthn_fido2_U2fConfirmRegister_confirm_dialog + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_U2fConfirmRegister +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_U2fConfirmRegister___eq__ +static const byte fun_data_apps_webauthn_fido2_U2fConfirmRegister___eq__[31] = { + 0x22,0x12, // prelude + 0x82,0x08,0x82,0x54,0x82,0x58, // names: __eq__, self, other + 0xa0,0xb1,0x20, // code info + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x27, // LOAD_GLOBAL 'U2fConfirmRegister' + 0x34,0x02, // CALL_FUNCTION 2 + 0x46,0x09, // JUMP_IF_FALSE_OR_POP 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x06, // LOAD_ATTR '_req_data' + 0xb1, // LOAD_FAST 1 + 0x13,0x82,0x06, // LOAD_ATTR '_req_data' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_U2fConfirmRegister___eq__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2_U2fConfirmRegister___eq__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 264, + .line_info = fun_data_apps_webauthn_fido2_U2fConfirmRegister___eq__ + 8, + .line_info_top = fun_data_apps_webauthn_fido2_U2fConfirmRegister___eq__ + 11, + .opcodes = fun_data_apps_webauthn_fido2_U2fConfirmRegister___eq__ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2_U2fConfirmRegister[] = { + &raw_code_apps_webauthn_fido2_U2fConfirmRegister_confirm_dialog, + &raw_code_apps_webauthn_fido2_U2fConfirmRegister___eq__, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2_U2fConfirmRegister = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_U2fConfirmRegister, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = (void *)&children_apps_webauthn_fido2_U2fConfirmRegister, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_webauthn_fido2_U2fConfirmRegister + 3, + .line_info_top = fun_data_apps_webauthn_fido2_U2fConfirmRegister + 7, + .opcodes = fun_data_apps_webauthn_fido2_U2fConfirmRegister + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_U2fConfirmAuthenticate +static const byte fun_data_apps_webauthn_fido2_U2fConfirmAuthenticate[29] = { + 0x00,0x08, // prelude + 0x28, // names: U2fConfirmAuthenticate + 0xab,0xb7,0x65, // code info + 0x11,0x82,0x34, // LOAD_NAME '__name__' + 0x16,0x82,0x35, // STORE_NAME '__module__' + 0x10,0x28, // LOAD_CONST_STRING 'U2fConfirmAuthenticate' + 0x16,0x82,0x36, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x82,0x00, // STORE_NAME 'confirm_dialog' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x82,0x08, // STORE_NAME '__eq__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2_U2fConfirmAuthenticate +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_U2fConfirmAuthenticate_confirm_dialog +static const byte fun_data_apps_webauthn_fido2_U2fConfirmAuthenticate_confirm_dialog[23] = { + 0x99,0x40,0x0c, // prelude + 0x82,0x00,0x82,0x54, // names: confirm_dialog, self + 0xa0,0xb8, // code info + 0x12,0x77, // LOAD_GLOBAL '_confirm_fido' + 0x23,0x18, // LOAD_CONST_OBJ 24 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x05, // LOAD_ATTR '_cred' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_U2fConfirmAuthenticate_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_U2fConfirmAuthenticate_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 23, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 256, + .line_info = fun_data_apps_webauthn_fido2_U2fConfirmAuthenticate_confirm_dialog + 7, + .line_info_top = fun_data_apps_webauthn_fido2_U2fConfirmAuthenticate_confirm_dialog + 9, + .opcodes = fun_data_apps_webauthn_fido2_U2fConfirmAuthenticate_confirm_dialog + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_U2fConfirmAuthenticate +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_U2fConfirmAuthenticate___eq__ +static const byte fun_data_apps_webauthn_fido2_U2fConfirmAuthenticate___eq__[32] = { + 0x22,0x14, // prelude + 0x82,0x08,0x82,0x54,0x82,0x58, // names: __eq__, self, other + 0xa0,0xbb,0x20,0x2a, // code info + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x28, // LOAD_GLOBAL 'U2fConfirmAuthenticate' + 0x34,0x02, // CALL_FUNCTION 2 + 0x46,0x09, // JUMP_IF_FALSE_OR_POP 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x06, // LOAD_ATTR '_req_data' + 0xb1, // LOAD_FAST 1 + 0x13,0x82,0x06, // LOAD_ATTR '_req_data' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_U2fConfirmAuthenticate___eq__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2_U2fConfirmAuthenticate___eq__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 264, + .line_info = fun_data_apps_webauthn_fido2_U2fConfirmAuthenticate___eq__ + 8, + .line_info_top = fun_data_apps_webauthn_fido2_U2fConfirmAuthenticate___eq__ + 12, + .opcodes = fun_data_apps_webauthn_fido2_U2fConfirmAuthenticate___eq__ + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2_U2fConfirmAuthenticate[] = { + &raw_code_apps_webauthn_fido2_U2fConfirmAuthenticate_confirm_dialog, + &raw_code_apps_webauthn_fido2_U2fConfirmAuthenticate___eq__, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2_U2fConfirmAuthenticate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_U2fConfirmAuthenticate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = (void *)&children_apps_webauthn_fido2_U2fConfirmAuthenticate, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 40, + .line_info = fun_data_apps_webauthn_fido2_U2fConfirmAuthenticate + 3, + .line_info_top = fun_data_apps_webauthn_fido2_U2fConfirmAuthenticate + 6, + .opcodes = fun_data_apps_webauthn_fido2_U2fConfirmAuthenticate + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_U2fUnlock +static const byte fun_data_apps_webauthn_fido2_U2fUnlock[35] = { + 0x00,0x0c, // prelude + 0x29, // names: U2fUnlock + 0xab,0xc2,0x64,0x85,0x0c, // code info + 0x11,0x82,0x34, // LOAD_NAME '__name__' + 0x16,0x82,0x35, // STORE_NAME '__module__' + 0x10,0x29, // LOAD_CONST_STRING 'U2fUnlock' + 0x16,0x82,0x36, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x7a, // STORE_NAME 'timeout_ms' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x82,0x00, // STORE_NAME 'confirm_dialog' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x82,0x08, // STORE_NAME '__eq__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2_U2fUnlock +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_U2fUnlock_timeout_ms +static const byte fun_data_apps_webauthn_fido2_U2fUnlock_timeout_ms[11] = { + 0x09,0x0a, // prelude + 0x7a,0x82,0x54, // names: timeout_ms, self + 0xa0,0xc3, // code info + 0x22,0x97,0x38, // LOAD_CONST_SMALL_INT 3000 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_U2fUnlock_timeout_ms = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_U2fUnlock_timeout_ms, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 11, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 122, + .line_info = fun_data_apps_webauthn_fido2_U2fUnlock_timeout_ms + 5, + .line_info_top = fun_data_apps_webauthn_fido2_U2fUnlock_timeout_ms + 7, + .opcodes = fun_data_apps_webauthn_fido2_U2fUnlock_timeout_ms + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_U2fUnlock +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_U2fUnlock_confirm_dialog +static const byte fun_data_apps_webauthn_fido2_U2fUnlock_confirm_dialog[75] = { + 0xd5,0x40,0x1a, // prelude + 0x82,0x00,0x82,0x54, // names: confirm_dialog, self + 0xa0,0xc6,0x50,0x4b,0x22,0x27,0x28,0x28,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x67, // LOAD_CONST_STRING 'PinCancelled' + 0x10,0x68, // LOAD_CONST_STRING 'PinInvalid' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x69, // IMPORT_NAME 'trezor.wire' + 0x1c,0x67, // IMPORT_FROM 'PinCancelled' + 0xc1, // STORE_FAST 1 + 0x1c,0x68, // IMPORT_FROM 'PinInvalid' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x6a, // LOAD_CONST_STRING 'verify_user_pin' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x6b, // IMPORT_NAME 'apps.common.request_pin' + 0x1c,0x6a, // IMPORT_FROM 'verify_user_pin' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x48,0x0e, // SETUP_EXCEPT 14 + 0xb3, // LOAD_FAST 3 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x17, // LOAD_GLOBAL 'set_homescreen' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0x4a,0x0e, // POP_EXCEPT_JUMP 14 + 0x57, // DUP_TOP + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x2a,0x02, // BUILD_TUPLE 2 + 0xdf, // BINARY_OP 8 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x59, // POP_TOP + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_U2fUnlock_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_U2fUnlock_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 75, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 11, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 256, + .line_info = fun_data_apps_webauthn_fido2_U2fUnlock_confirm_dialog + 7, + .line_info_top = fun_data_apps_webauthn_fido2_U2fUnlock_confirm_dialog + 16, + .opcodes = fun_data_apps_webauthn_fido2_U2fUnlock_confirm_dialog + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_U2fUnlock +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_U2fUnlock___eq__ +static const byte fun_data_apps_webauthn_fido2_U2fUnlock___eq__[19] = { + 0x22,0x10, // prelude + 0x82,0x08,0x82,0x54,0x82,0x58, // names: __eq__, self, other + 0xa0,0xd2, // code info + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x29, // LOAD_GLOBAL 'U2fUnlock' + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_U2fUnlock___eq__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2_U2fUnlock___eq__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 264, + .line_info = fun_data_apps_webauthn_fido2_U2fUnlock___eq__ + 8, + .line_info_top = fun_data_apps_webauthn_fido2_U2fUnlock___eq__ + 10, + .opcodes = fun_data_apps_webauthn_fido2_U2fUnlock___eq__ + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2_U2fUnlock[] = { + &raw_code_apps_webauthn_fido2_U2fUnlock_timeout_ms, + &raw_code_apps_webauthn_fido2_U2fUnlock_confirm_dialog, + &raw_code_apps_webauthn_fido2_U2fUnlock___eq__, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2_U2fUnlock = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_U2fUnlock, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = (void *)&children_apps_webauthn_fido2_U2fUnlock, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_webauthn_fido2_U2fUnlock + 3, + .line_info_top = fun_data_apps_webauthn_fido2_U2fUnlock + 8, + .opcodes = fun_data_apps_webauthn_fido2_U2fUnlock + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2State +static const byte fun_data_apps_webauthn_fido2_Fido2State[60] = { + 0x00,0x18, // prelude + 0x2a, // names: Fido2State + 0xab,0xd6,0x64,0x20,0x65,0x64,0x65,0x40,0x65,0x40,0x65, // code info + 0x11,0x82,0x34, // LOAD_NAME '__name__' + 0x16,0x82,0x35, // STORE_NAME '__module__' + 0x10,0x2a, // LOAD_CONST_STRING 'Fido2State' + 0x16,0x82,0x36, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x63, // STORE_NAME 'allow_cid' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x81,0x7f, // STORE_NAME 'keepalive_status' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x7a, // STORE_NAME 'timeout_ms' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x82,0x01, // STORE_NAME 'on_confirm' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x82,0x02, // STORE_NAME 'on_decline' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x82,0x03, // STORE_NAME 'on_timeout' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x82,0x04, // STORE_NAME 'on_cancel' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2_Fido2State +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2State_allow_cid +static const byte fun_data_apps_webauthn_fido2_Fido2State_allow_cid[14] = { + 0x1a,0x0c, // prelude + 0x63,0x82,0x54,0x35, // names: allow_cid, self, cid + 0xa0,0xd8, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2State_allow_cid = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2_Fido2State_allow_cid, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 99, + .line_info = fun_data_apps_webauthn_fido2_Fido2State_allow_cid + 6, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2State_allow_cid + 8, + .opcodes = fun_data_apps_webauthn_fido2_Fido2State_allow_cid + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_Fido2State +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2State_keepalive_status +static const byte fun_data_apps_webauthn_fido2_Fido2State_keepalive_status[10] = { + 0x09,0x0c, // prelude + 0x81,0x7f,0x82,0x54, // names: keepalive_status, self + 0xa0,0xdb, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2State_keepalive_status = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_Fido2State_keepalive_status, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 10, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 255, + .line_info = fun_data_apps_webauthn_fido2_Fido2State_keepalive_status + 6, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2State_keepalive_status + 8, + .opcodes = fun_data_apps_webauthn_fido2_Fido2State_keepalive_status + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_Fido2State +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2State_timeout_ms +static const byte fun_data_apps_webauthn_fido2_Fido2State_timeout_ms[12] = { + 0x09,0x0a, // prelude + 0x7a,0x82,0x54, // names: timeout_ms, self + 0xa0,0xde, // code info + 0x22,0x83,0xd4,0x60, // LOAD_CONST_SMALL_INT 60000 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2State_timeout_ms = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_Fido2State_timeout_ms, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 122, + .line_info = fun_data_apps_webauthn_fido2_Fido2State_timeout_ms + 5, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2State_timeout_ms + 7, + .opcodes = fun_data_apps_webauthn_fido2_Fido2State_timeout_ms + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_Fido2State +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2State_on_confirm +static const byte fun_data_apps_webauthn_fido2_Fido2State_on_confirm[41] = { + 0xa1,0x40,0x10, // prelude + 0x82,0x01,0x82,0x54, // names: on_confirm, self + 0xa0,0xe1,0x2a,0x2d, // code info + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xa7, // LOAD_CONST_SMALL_INT 39 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc1, // STORE_FAST 1 + 0x12,0x5d, // LOAD_GLOBAL 'send_cmd' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x7e, // STORE_ATTR 'finished' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2State_on_confirm = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_Fido2State_on_confirm, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 257, + .line_info = fun_data_apps_webauthn_fido2_Fido2State_on_confirm + 7, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2State_on_confirm + 11, + .opcodes = fun_data_apps_webauthn_fido2_Fido2State_on_confirm + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_Fido2State +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2State_on_decline +static const byte fun_data_apps_webauthn_fido2_Fido2State_on_decline[41] = { + 0xa1,0x40,0x10, // prelude + 0x82,0x02,0x82,0x54, // names: on_decline, self + 0xa0,0xe6,0x2a,0x2d, // code info + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xa7, // LOAD_CONST_SMALL_INT 39 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc1, // STORE_FAST 1 + 0x12,0x5d, // LOAD_GLOBAL 'send_cmd' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x7e, // STORE_ATTR 'finished' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2State_on_decline = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_Fido2State_on_decline, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 258, + .line_info = fun_data_apps_webauthn_fido2_Fido2State_on_decline + 7, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2State_on_decline + 11, + .opcodes = fun_data_apps_webauthn_fido2_Fido2State_on_decline + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_Fido2State +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2State_on_timeout +static const byte fun_data_apps_webauthn_fido2_Fido2State_on_timeout[21] = { + 0x91,0x40,0x0c, // prelude + 0x82,0x03,0x82,0x54, // names: on_timeout, self + 0xa0,0xeb, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x82,0x02, // LOAD_METHOD 'on_decline' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2State_on_timeout = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_Fido2State_on_timeout, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 259, + .line_info = fun_data_apps_webauthn_fido2_Fido2State_on_timeout + 7, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2State_on_timeout + 9, + .opcodes = fun_data_apps_webauthn_fido2_Fido2State_on_timeout + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_Fido2State +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2State_on_cancel +static const byte fun_data_apps_webauthn_fido2_Fido2State_on_cancel[41] = { + 0xa1,0x40,0x10, // prelude + 0x82,0x04,0x82,0x54, // names: on_cancel, self + 0xa0,0xee,0x2a,0x2d, // code info + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xad, // LOAD_CONST_SMALL_INT 45 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc1, // STORE_FAST 1 + 0x12,0x5d, // LOAD_GLOBAL 'send_cmd' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x7e, // STORE_ATTR 'finished' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2State_on_cancel = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_Fido2State_on_cancel, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 41, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 260, + .line_info = fun_data_apps_webauthn_fido2_Fido2State_on_cancel + 7, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2State_on_cancel + 11, + .opcodes = fun_data_apps_webauthn_fido2_Fido2State_on_cancel + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2_Fido2State[] = { + &raw_code_apps_webauthn_fido2_Fido2State_allow_cid, + &raw_code_apps_webauthn_fido2_Fido2State_keepalive_status, + &raw_code_apps_webauthn_fido2_Fido2State_timeout_ms, + &raw_code_apps_webauthn_fido2_Fido2State_on_confirm, + &raw_code_apps_webauthn_fido2_Fido2State_on_decline, + &raw_code_apps_webauthn_fido2_Fido2State_on_timeout, + &raw_code_apps_webauthn_fido2_Fido2State_on_cancel, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2State = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_Fido2State, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 60, + #endif + .children = (void *)&children_apps_webauthn_fido2_Fido2State, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 7, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_webauthn_fido2_Fido2State + 3, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2State + 14, + .opcodes = fun_data_apps_webauthn_fido2_Fido2State + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2Unlock +static const byte fun_data_apps_webauthn_fido2_Fido2Unlock[40] = { + 0x08,0x0f, // prelude + 0x2b, // names: Fido2Unlock + 0xab,0xf4,0x87,0x0c,0x85,0x0c,0x00, // code info + 0x11,0x82,0x34, // LOAD_NAME '__name__' + 0x16,0x82,0x35, // STORE_NAME '__module__' + 0x10,0x2b, // LOAD_CONST_STRING 'Fido2Unlock' + 0x16,0x82,0x36, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x81,0x79, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x82,0x00, // STORE_NAME 'confirm_dialog' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x82,0x01, // STORE_NAME 'on_confirm' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2_Fido2Unlock +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2Unlock___init__ +static const byte fun_data_apps_webauthn_fido2_Fido2Unlock___init__[62] = { + 0xc1,0x04,0x24, // prelude + 0x81,0x79,0x82,0x53,0x82,0x54,0x82,0x09,0x82,0x0a,0x82,0x0c, // names: __init__, *, self, process_func, req, dialog_mgr + 0xa0,0xfa,0x33,0x25,0x25,0x25, // code info + 0x12,0x82,0x55, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x81,0x79, // LOAD_SUPER_METHOD '__init__' + 0xb3, // LOAD_FAST 3 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x18,0x82,0x09, // STORE_ATTR 'process_func' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x18,0x82,0x0a, // STORE_ATTR 'req' + 0x51, // LOAD_CONST_NONE + 0xb1, // LOAD_FAST 1 + 0x18,0x82,0x0b, // STORE_ATTR 'resp' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x18,0x82,0x0c, // STORE_ATTR 'dialog_mgr' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2Unlock___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_webauthn_fido2_Fido2Unlock___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 62, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 249, + .line_info = fun_data_apps_webauthn_fido2_Fido2Unlock___init__ + 15, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2Unlock___init__ + 21, + .opcodes = fun_data_apps_webauthn_fido2_Fido2Unlock___init__ + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_Fido2Unlock +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2Unlock_confirm_dialog +static const byte fun_data_apps_webauthn_fido2_Fido2Unlock_confirm_dialog[79] = { + 0xa9,0x40,0x1a, // prelude + 0x82,0x00,0x82,0x54, // names: confirm_dialog, self + 0xb0,0x01,0x34,0x42,0x25,0x2f,0x2a,0x42,0x25, // code info + 0x12,0x65, // LOAD_GLOBAL 'verify_user' + 0x12,0x24, // LOAD_GLOBAL 'KeepaliveCallback' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0x12,0x17, // LOAD_GLOBAL 'set_homescreen' + 0x34,0x00, // CALL_FUNCTION 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x82,0x09, // LOAD_METHOD 'process_func' + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x0a, // LOAD_ATTR 'req' + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x0c, // LOAD_ATTR 'dialog_mgr' + 0x36,0x02, // CALL_METHOD 2 + 0xc1, // STORE_FAST 1 + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x25, // LOAD_GLOBAL 'State' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x0b, // STORE_ATTR 'resp' + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2Unlock_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_Fido2Unlock_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 79, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 256, + .line_info = fun_data_apps_webauthn_fido2_Fido2Unlock_confirm_dialog + 7, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2Unlock_confirm_dialog + 16, + .opcodes = fun_data_apps_webauthn_fido2_Fido2Unlock_confirm_dialog + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_Fido2Unlock +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2Unlock_on_confirm +static const byte fun_data_apps_webauthn_fido2_Fido2Unlock_on_confirm[34] = { + 0x99,0x40,0x0e, // prelude + 0x82,0x01,0x82,0x54, // names: on_confirm, self + 0xb0,0x0d,0x26, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x0b, // LOAD_ATTR 'resp' + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0x12,0x5d, // LOAD_GLOBAL 'send_cmd' + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x0b, // LOAD_ATTR 'resp' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2Unlock_on_confirm = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_Fido2Unlock_on_confirm, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 257, + .line_info = fun_data_apps_webauthn_fido2_Fido2Unlock_on_confirm + 7, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2Unlock_on_confirm + 10, + .opcodes = fun_data_apps_webauthn_fido2_Fido2Unlock_on_confirm + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2_Fido2Unlock[] = { + &raw_code_apps_webauthn_fido2_Fido2Unlock___init__, + &raw_code_apps_webauthn_fido2_Fido2Unlock_confirm_dialog, + &raw_code_apps_webauthn_fido2_Fido2Unlock_on_confirm, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2Unlock = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_Fido2Unlock, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 40, + #endif + .children = (void *)&children_apps_webauthn_fido2_Fido2Unlock, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 43, + .line_info = fun_data_apps_webauthn_fido2_Fido2Unlock + 3, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2Unlock + 9, + .opcodes = fun_data_apps_webauthn_fido2_Fido2Unlock + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmMakeCredential +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential[37] = { + 0x00,0x0e, // prelude + 0x2c, // names: Fido2ConfirmMakeCredential + 0xbb,0x12,0x85,0x0f,0x85,0x0a, // code info + 0x11,0x82,0x34, // LOAD_NAME '__name__' + 0x16,0x82,0x35, // STORE_NAME '__module__' + 0x10,0x2c, // LOAD_CONST_STRING 'Fido2ConfirmMakeCredential' + 0x16,0x82,0x36, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x79, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x82,0x00, // STORE_NAME 'confirm_dialog' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x82,0x01, // STORE_NAME 'on_confirm' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2_Fido2ConfirmMakeCredential +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmMakeCredential___init__ +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential___init__[57] = { + 0xdb,0x04,0x2a, // prelude + 0x81,0x79,0x82,0x54,0x35,0x81,0x10,0x82,0x4f,0x82,0x46,0x82,0x13,0x82,0x14, // names: __init__, self, cid, iface, client_data_hash, cred, resident, user_verification + 0xb0,0x1b,0x2b,0x25,0x25,0x25, // code info + 0x12,0x2a, // LOAD_GLOBAL 'Fido2State' + 0x14,0x81,0x79, // LOAD_METHOD '__init__' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x0d, // STORE_ATTR '_client_data_hash' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x05, // STORE_ATTR '_cred' + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x0e, // STORE_ATTR '_resident' + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x0f, // STORE_ATTR '_user_verification' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmMakeCredential___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 7, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 57, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 249, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential___init__ + 18, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential___init__ + 24, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential___init__ + 24, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_Fido2ConfirmMakeCredential +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmMakeCredential_confirm_dialog +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential_confirm_dialog[86] = { + 0xa1,0x40,0x1a, // prelude + 0x82,0x00,0x82,0x54, // names: confirm_dialog, self + 0xb0,0x22,0x2d,0x2b,0x22,0x2f,0x22,0x26,0x33, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x05, // LOAD_ATTR '_cred' + 0x13,0x81,0x38, // LOAD_ATTR 'rp_id' + 0x12,0x82,0x2c, // LOAD_GLOBAL '_BOGUS_RP_ID' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x79, // LOAD_GLOBAL '_confirm_bogus_app' + 0x10,0x82,0x10, // LOAD_CONST_STRING 'FIDO2' + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE + 0x12,0x77, // LOAD_GLOBAL '_confirm_fido' + 0x23,0x19, // LOAD_CONST_OBJ 25 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x05, // LOAD_ATTR '_cred' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x0f, // LOAD_ATTR '_user_verification' + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x65, // LOAD_GLOBAL 'verify_user' + 0x12,0x24, // LOAD_GLOBAL 'KeepaliveCallback' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmMakeCredential_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 86, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 256, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential_confirm_dialog + 7, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential_confirm_dialog + 16, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential_confirm_dialog + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_Fido2ConfirmMakeCredential +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmMakeCredential_on_confirm +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential_on_confirm[161] = { + 0xc9,0x40,0x24, // prelude + 0x82,0x01,0x82,0x54, // names: on_confirm, self + 0xb0,0x2c,0x4e,0x44,0x2a,0x30,0x23,0x6f,0x33,0x26,0x30,0x29,0x28,0x2d, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x82,0x11, // LOAD_CONST_STRING 'store_resident_credential' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x81,0x5a, // IMPORT_NAME 'resident_credentials' + 0x1c,0x82,0x11, // IMPORT_FROM 'store_resident_credential' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x05, // LOAD_ATTR '_cred' + 0x14,0x82,0x12, // LOAD_METHOD 'generate_id' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x60, // LOAD_GLOBAL 'send_cmd_sync' + 0x12,0x81,0x78, // LOAD_GLOBAL 'cmd_keepalive' + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x81,0x50, // LOAD_GLOBAL '_cbor_make_credential_sign' + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x0d, // LOAD_ATTR '_client_data_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x05, // LOAD_ATTR '_cred' + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x0f, // LOAD_ATTR '_user_verification' + 0x34,0x03, // CALL_FUNCTION 3 + 0xc3, // STORE_FAST 3 + 0x12,0x23, // LOAD_GLOBAL 'Cmd' + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x10, // LOAD_CONST_SMALL_INT 144 + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb3, // LOAD_FAST 3 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x03, // CALL_FUNCTION 3 + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x0e, // LOAD_ATTR '_resident' + 0x44,0x61, // POP_JUMP_IF_FALSE 33 + 0x12,0x60, // LOAD_GLOBAL 'send_cmd_sync' + 0x12,0x81,0x78, // LOAD_GLOBAL 'cmd_keepalive' + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x05, // LOAD_ATTR '_cred' + 0x34,0x01, // CALL_FUNCTION 1 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb2, // LOAD_FAST 2 + 0xa8, // LOAD_CONST_SMALL_INT 40 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc4, // STORE_FAST 4 + 0x12,0x5d, // LOAD_GLOBAL 'send_cmd' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x7e, // STORE_ATTR 'finished' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmMakeCredential_on_confirm = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential_on_confirm, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 161, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 257, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential_on_confirm + 7, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential_on_confirm + 21, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential_on_confirm + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2_Fido2ConfirmMakeCredential[] = { + &raw_code_apps_webauthn_fido2_Fido2ConfirmMakeCredential___init__, + &raw_code_apps_webauthn_fido2_Fido2ConfirmMakeCredential_confirm_dialog, + &raw_code_apps_webauthn_fido2_Fido2ConfirmMakeCredential_on_confirm, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmMakeCredential = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = (void *)&children_apps_webauthn_fido2_Fido2ConfirmMakeCredential, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 44, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential + 3, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential + 9, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmMakeCredential + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmExcluded +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmExcluded[32] = { + 0x08,0x09, // prelude + 0x2d, // names: Fido2ConfirmExcluded + 0xbb,0x40,0x67,0x00, // code info + 0x11,0x82,0x34, // LOAD_NAME '__name__' + 0x16,0x82,0x35, // STORE_NAME '__module__' + 0x10,0x2d, // LOAD_CONST_STRING 'Fido2ConfirmExcluded' + 0x16,0x82,0x36, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x81,0x79, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x82,0x01, // STORE_NAME 'on_confirm' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2_Fido2ConfirmExcluded +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmExcluded___init__ +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmExcluded___init__[44] = { + 0xf1,0x04,0x1a, // prelude + 0x81,0x79,0x82,0x53,0x82,0x54,0x35,0x81,0x10,0x82,0x46, // names: __init__, *, self, cid, iface, cred + 0xb0,0x41, // code info + 0x12,0x82,0x55, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x81,0x79, // LOAD_SUPER_METHOD '__init__' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0xb4, // LOAD_FAST 4 + 0x10,0x82,0x13, // LOAD_CONST_STRING 'resident' + 0x50, // LOAD_CONST_FALSE + 0x10,0x82,0x14, // LOAD_CONST_STRING 'user_verification' + 0x50, // LOAD_CONST_FALSE + 0x36,0x84,0x04, // CALL_METHOD 516 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmExcluded___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmExcluded___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 249, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmExcluded___init__ + 14, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmExcluded___init__ + 16, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmExcluded___init__ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_Fido2ConfirmExcluded +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmExcluded_on_confirm +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmExcluded_on_confirm[73] = { + 0xc1,0x40,0x1a, // prelude + 0x82,0x01,0x82,0x54, // names: on_confirm, self + 0xb0,0x44,0x2a,0x2d,0x45,0x22,0x22,0x22,0x22, // code info + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0x99, // LOAD_CONST_SMALL_INT 25 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc1, // STORE_FAST 1 + 0x12,0x5d, // LOAD_GLOBAL 'send_cmd' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x7e, // STORE_ATTR 'finished' + 0x12,0x15, // LOAD_GLOBAL 'show_error_popup' + 0x23,0x19, // LOAD_CONST_OBJ 25 + 0x23,0x1a, // LOAD_CONST_OBJ 26 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x05, // LOAD_ATTR '_cred' + 0x13,0x81,0x38, // LOAD_ATTR 'rp_id' + 0x10,0x7a, // LOAD_CONST_STRING 'timeout_ms' + 0x22,0x9f,0x20, // LOAD_CONST_SMALL_INT 4000 + 0x34,0x82,0x04, // CALL_FUNCTION 260 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmExcluded_on_confirm = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmExcluded_on_confirm, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 73, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 257, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmExcluded_on_confirm + 7, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmExcluded_on_confirm + 16, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmExcluded_on_confirm + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2_Fido2ConfirmExcluded[] = { + &raw_code_apps_webauthn_fido2_Fido2ConfirmExcluded___init__, + &raw_code_apps_webauthn_fido2_Fido2ConfirmExcluded_on_confirm, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmExcluded = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmExcluded, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 32, + #endif + .children = (void *)&children_apps_webauthn_fido2_Fido2ConfirmExcluded, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmExcluded + 3, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmExcluded + 6, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmExcluded + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmGetAssertion +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion[37] = { + 0x00,0x0e, // prelude + 0x2e, // names: Fido2ConfirmGetAssertion + 0xbb,0x52,0x85,0x12,0x85,0x0c, // code info + 0x11,0x82,0x34, // LOAD_NAME '__name__' + 0x16,0x82,0x35, // STORE_NAME '__module__' + 0x10,0x2e, // LOAD_CONST_STRING 'Fido2ConfirmGetAssertion' + 0x16,0x82,0x36, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x79, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x82,0x00, // STORE_NAME 'confirm_dialog' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x82,0x01, // STORE_NAME 'on_confirm' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2_Fido2ConfirmGetAssertion +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmGetAssertion___init__ +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion___init__[72] = { + 0xe0,0x80,0x04,0x32, // prelude + 0x81,0x79,0x82,0x54,0x35,0x81,0x10,0x82,0x4f,0x82,0x59,0x81,0x49,0x82,0x13,0x82,0x14, // names: __init__, self, cid, iface, client_data_hash, creds, hmac_secret, resident, user_verification + 0xb0,0x5c,0x2b,0x25,0x25,0x25,0x25,0x25, // code info + 0x12,0x2a, // LOAD_GLOBAL 'Fido2State' + 0x14,0x81,0x79, // LOAD_METHOD '__init__' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x0d, // STORE_ATTR '_client_data_hash' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x15, // STORE_ATTR '_creds' + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x16, // STORE_ATTR '_hmac_secret' + 0xb6, // LOAD_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x0e, // STORE_ATTR '_resident' + 0xb7, // LOAD_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x0f, // STORE_ATTR '_user_verification' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x17, // STORE_ATTR '_selected_cred' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmGetAssertion___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 8, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 8, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 249, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion___init__ + 21, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion___init__ + 29, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion___init__ + 29, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_Fido2ConfirmGetAssertion +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmGetAssertion_confirm_dialog +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion_confirm_dialog[85] = { + 0xbd,0x40,0x1a, // prelude + 0x82,0x00,0x82,0x54, // names: confirm_dialog, self + 0xb0,0x66,0x22,0x31,0x28,0x45,0x2a,0x26,0x33, // code info + 0x48,0x10, // SETUP_EXCEPT 16 + 0x12,0x6f, // LOAD_GLOBAL '_confirm_fido_choose' + 0x23,0x1b, // LOAD_CONST_OBJ 27 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x15, // LOAD_ATTR '_creds' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc1, // STORE_FAST 1 + 0x4a,0x0e, // POP_EXCEPT_JUMP 14 + 0x57, // DUP_TOP + 0x12,0x0e, // LOAD_GLOBAL 'wire' + 0x13,0x78, // LOAD_ATTR 'ActionCancelled' + 0xdf, // BINARY_OP 8 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x59, // POP_TOP + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x15, // LOAD_ATTR '_creds' + 0xb1, // LOAD_FAST 1 + 0x55, // LOAD_SUBSCR + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x17, // STORE_ATTR '_selected_cred' + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x0f, // LOAD_ATTR '_user_verification' + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x65, // LOAD_GLOBAL 'verify_user' + 0x12,0x24, // LOAD_GLOBAL 'KeepaliveCallback' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmGetAssertion_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 85, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 256, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion_confirm_dialog + 7, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion_confirm_dialog + 16, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion_confirm_dialog + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_Fido2ConfirmGetAssertion +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmGetAssertion_on_confirm +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion_on_confirm[197] = { + 0xe1,0x42,0x2e, // prelude + 0x82,0x01,0x82,0x54, // names: on_confirm, self + 0xb0,0x71,0x44,0x20,0x22,0x30,0x23,0x24,0x26,0x24,0x24,0x45,0x47,0x5e,0x5b,0x74,0x40,0x53,0x2d, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xc1, // STORE_FAST 1 + 0x48,0x46, // SETUP_EXCEPT 70 + 0x12,0x60, // LOAD_GLOBAL 'send_cmd_sync' + 0x12,0x81,0x78, // LOAD_GLOBAL 'cmd_keepalive' + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x81,0x6d, // LOAD_GLOBAL 'cbor_get_assertion_sign' + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x0d, // LOAD_ATTR '_client_data_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x17, // LOAD_ATTR '_selected_cred' + 0x13,0x75, // LOAD_ATTR 'rp_id_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x17, // LOAD_ATTR '_selected_cred' + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x16, // LOAD_ATTR '_hmac_secret' + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x0e, // LOAD_ATTR '_resident' + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x0f, // LOAD_ATTR '_user_verification' + 0x34,0x07, // CALL_FUNCTION 7 + 0xc2, // STORE_FAST 2 + 0x12,0x23, // LOAD_GLOBAL 'Cmd' + 0xb1, // LOAD_FAST 1 + 0x22,0x81,0x10, // LOAD_CONST_SMALL_INT 144 + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb2, // LOAD_FAST 2 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x03, // CALL_FUNCTION 3 + 0xc3, // STORE_FAST 3 + 0x4a,0x4b, // POP_EXCEPT_JUMP 75 + 0x57, // DUP_TOP + 0x12,0x21, // LOAD_GLOBAL 'CborError' + 0xdf, // BINARY_OP 8 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0xc4, // STORE_FAST 4 + 0x49,0x0c, // SETUP_FINALLY 12 + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x7a, // LOAD_ATTR 'code' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc3, // STORE_FAST 3 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xc4, // STORE_FAST 4 + 0x28,0x04, // DELETE_FAST 4 + 0x5d, // END_FINALLY + 0x4a,0x2f, // POP_EXCEPT_JUMP 47 + 0x57, // DUP_TOP + 0x12,0x82,0x4d, // LOAD_GLOBAL 'KeyError' + 0xdf, // BINARY_OP 8 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x59, // POP_TOP + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb1, // LOAD_FAST 1 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc3, // STORE_FAST 3 + 0x4a,0x1d, // POP_EXCEPT_JUMP 29 + 0x57, // DUP_TOP + 0x12,0x82,0x33, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0xc4, // STORE_FAST 4 + 0x49,0x0b, // SETUP_FINALLY 11 + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb1, // LOAD_FAST 1 + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc3, // STORE_FAST 3 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xc4, // STORE_FAST 4 + 0x28,0x04, // DELETE_FAST 4 + 0x5d, // END_FINALLY + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x12,0x5d, // LOAD_GLOBAL 'send_cmd' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x7e, // STORE_ATTR 'finished' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmGetAssertion_on_confirm = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion_on_confirm, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 197, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 2, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 257, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion_on_confirm + 7, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion_on_confirm + 26, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion_on_confirm + 26, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2_Fido2ConfirmGetAssertion[] = { + &raw_code_apps_webauthn_fido2_Fido2ConfirmGetAssertion___init__, + &raw_code_apps_webauthn_fido2_Fido2ConfirmGetAssertion_confirm_dialog, + &raw_code_apps_webauthn_fido2_Fido2ConfirmGetAssertion_on_confirm, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmGetAssertion = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 37, + #endif + .children = (void *)&children_apps_webauthn_fido2_Fido2ConfirmGetAssertion, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 46, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion + 3, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion + 9, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmGetAssertion + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmNoPin +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin[34] = { + 0x00,0x0c, // prelude + 0x2f, // names: Fido2ConfirmNoPin + 0xbb,0x8f,0x64,0x20,0x64, // code info + 0x11,0x82,0x34, // LOAD_NAME '__name__' + 0x16,0x82,0x35, // STORE_NAME '__module__' + 0x10,0x2f, // LOAD_CONST_STRING 'Fido2ConfirmNoPin' + 0x16,0x82,0x36, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x63, // STORE_NAME 'allow_cid' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x7a, // STORE_NAME 'timeout_ms' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x82,0x00, // STORE_NAME 'confirm_dialog' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2_Fido2ConfirmNoPin +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmNoPin_allow_cid +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin_allow_cid[14] = { + 0x1a,0x0c, // prelude + 0x63,0x82,0x54,0x35, // names: allow_cid, self, cid + 0xb0,0x91, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xd9, // BINARY_OP 2 __eq__ + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmNoPin_allow_cid = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin_allow_cid, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 99, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin_allow_cid + 6, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin_allow_cid + 8, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin_allow_cid + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_Fido2ConfirmNoPin +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmNoPin_timeout_ms +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin_timeout_ms[12] = { + 0x09,0x0a, // prelude + 0x7a,0x82,0x54, // names: timeout_ms, self + 0xb0,0x94, // code info + 0x22,0x83,0xd4,0x60, // LOAD_CONST_SMALL_INT 60000 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmNoPin_timeout_ms = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin_timeout_ms, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 122, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin_timeout_ms + 5, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin_timeout_ms + 7, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin_timeout_ms + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_Fido2ConfirmNoPin +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmNoPin_confirm_dialog +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin_confirm_dialog[66] = { + 0xb9,0x40,0x1a, // prelude + 0x82,0x00,0x82,0x54, // names: confirm_dialog, self + 0xb0,0x97,0x2a,0x2d,0x45,0x22,0x22,0x22,0x6e, // code info + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xab, // LOAD_CONST_SMALL_INT 43 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc1, // STORE_FAST 1 + 0x12,0x5d, // LOAD_GLOBAL 'send_cmd' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x7e, // STORE_ATTR 'finished' + 0x12,0x15, // LOAD_GLOBAL 'show_error_popup' + 0x23,0x1c, // LOAD_CONST_OBJ 28 + 0x23,0x1d, // LOAD_CONST_OBJ 29 + 0x23,0x1e, // LOAD_CONST_OBJ 30 + 0x10,0x7a, // LOAD_CONST_STRING 'timeout_ms' + 0x22,0x9f,0x20, // LOAD_CONST_SMALL_INT 4000 + 0x34,0x82,0x03, // CALL_FUNCTION 259 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmNoPin_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 66, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 256, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin_confirm_dialog + 7, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin_confirm_dialog + 16, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin_confirm_dialog + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2_Fido2ConfirmNoPin[] = { + &raw_code_apps_webauthn_fido2_Fido2ConfirmNoPin_allow_cid, + &raw_code_apps_webauthn_fido2_Fido2ConfirmNoPin_timeout_ms, + &raw_code_apps_webauthn_fido2_Fido2ConfirmNoPin_confirm_dialog, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmNoPin = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = (void *)&children_apps_webauthn_fido2_Fido2ConfirmNoPin, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 47, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin + 3, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin + 8, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmNoPin + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmNoCredentials +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmNoCredentials[33] = { + 0x08,0x0b, // prelude + 0x30, // names: Fido2ConfirmNoCredentials + 0xbb,0xa5,0x87,0x08,0x00, // code info + 0x11,0x82,0x34, // LOAD_NAME '__name__' + 0x16,0x82,0x35, // STORE_NAME '__module__' + 0x10,0x30, // LOAD_CONST_STRING 'Fido2ConfirmNoCredentials' + 0x16,0x82,0x36, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x81,0x79, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x82,0x01, // STORE_NAME 'on_confirm' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2_Fido2ConfirmNoCredentials +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmNoCredentials___init__ +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmNoCredentials___init__[78] = { + 0x81,0x14,0x22, // prelude + 0x81,0x79,0x82,0x53,0x82,0x54,0x35,0x81,0x10,0x81,0x38, // names: __init__, *, self, cid, iface, rp_id + 0xb0,0xa6,0x25,0x25,0x30,0x2b, // code info + 0x12,0x1e, // LOAD_GLOBAL 'Fido2Credential' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc5, // STORE_FAST 5 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x18,0x81,0x38, // STORE_ATTR 'rp_id' + 0x12,0x11, // LOAD_GLOBAL 'hashlib' + 0x14,0x81,0x16, // LOAD_METHOD 'sha256' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x81,0x19, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xb5, // LOAD_FAST 5 + 0x18,0x75, // STORE_ATTR 'rp_id_hash' + 0x12,0x82,0x55, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x81,0x79, // LOAD_SUPER_METHOD '__init__' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0xb5, // LOAD_FAST 5 + 0x2b,0x01, // BUILD_LIST 1 + 0x2c,0x00, // BUILD_MAP 0 + 0x10,0x82,0x13, // LOAD_CONST_STRING 'resident' + 0x50, // LOAD_CONST_FALSE + 0x10,0x82,0x14, // LOAD_CONST_STRING 'user_verification' + 0x50, // LOAD_CONST_FALSE + 0x36,0x84,0x05, // CALL_METHOD 517 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmNoCredentials___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmNoCredentials___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 78, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 249, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmNoCredentials___init__ + 14, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmNoCredentials___init__ + 20, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmNoCredentials___init__ + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_Fido2ConfirmNoCredentials +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmNoCredentials_on_confirm +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmNoCredentials_on_confirm[76] = { + 0xc1,0x40,0x1a, // prelude + 0x82,0x01,0x82,0x54, // names: on_confirm, self + 0xb0,0xae,0x2a,0x2d,0x45,0x22,0x22,0x22,0x22, // code info + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xae, // LOAD_CONST_SMALL_INT 46 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc1, // STORE_FAST 1 + 0x12,0x5d, // LOAD_GLOBAL 'send_cmd' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x7e, // STORE_ATTR 'finished' + 0x12,0x15, // LOAD_GLOBAL 'show_error_popup' + 0x23,0x1b, // LOAD_CONST_OBJ 27 + 0x23,0x1f, // LOAD_CONST_OBJ 31 + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x15, // LOAD_ATTR '_creds' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0x14,0x73, // LOAD_METHOD 'app_name' + 0x36,0x00, // CALL_METHOD 0 + 0x10,0x7a, // LOAD_CONST_STRING 'timeout_ms' + 0x22,0x9f,0x20, // LOAD_CONST_SMALL_INT 4000 + 0x34,0x82,0x04, // CALL_FUNCTION 260 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmNoCredentials_on_confirm = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmNoCredentials_on_confirm, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 76, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 257, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmNoCredentials_on_confirm + 7, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmNoCredentials_on_confirm + 16, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmNoCredentials_on_confirm + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2_Fido2ConfirmNoCredentials[] = { + &raw_code_apps_webauthn_fido2_Fido2ConfirmNoCredentials___init__, + &raw_code_apps_webauthn_fido2_Fido2ConfirmNoCredentials_on_confirm, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmNoCredentials = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmNoCredentials, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 33, + #endif + .children = (void *)&children_apps_webauthn_fido2_Fido2ConfirmNoCredentials, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 48, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmNoCredentials + 3, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmNoCredentials + 7, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmNoCredentials + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmReset +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmReset[30] = { + 0x00,0x0a, // prelude + 0x31, // names: Fido2ConfirmReset + 0xbb,0xbc,0x65,0x40, // code info + 0x11,0x82,0x34, // LOAD_NAME '__name__' + 0x16,0x82,0x35, // STORE_NAME '__module__' + 0x10,0x31, // LOAD_CONST_STRING 'Fido2ConfirmReset' + 0x16,0x82,0x36, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x82,0x00, // STORE_NAME 'confirm_dialog' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x82,0x01, // STORE_NAME 'on_confirm' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2_Fido2ConfirmReset +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmReset_confirm_dialog +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmReset_confirm_dialog[30] = { + 0x99,0x40,0x0e, // prelude + 0x82,0x00,0x82,0x54, // names: confirm_dialog, self + 0xb0,0xbd,0x4d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x82,0x18, // LOAD_CONST_STRING 'confirm_fido_reset' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x71, // IMPORT_NAME 'trezor.ui.layouts.fido' + 0x1c,0x82,0x18, // IMPORT_FROM 'confirm_fido_reset' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x34,0x00, // CALL_FUNCTION 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmReset_confirm_dialog = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmReset_confirm_dialog, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 256, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmReset_confirm_dialog + 7, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmReset_confirm_dialog + 10, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmReset_confirm_dialog + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_Fido2ConfirmReset +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_Fido2ConfirmReset_on_confirm +static const byte fun_data_apps_webauthn_fido2_Fido2ConfirmReset_on_confirm[68] = { + 0xb9,0x40,0x14, // prelude + 0x82,0x01,0x82,0x54, // names: on_confirm, self + 0xb0,0xc2,0x46,0x2a,0x33,0x2d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x82,0x19, // IMPORT_NAME 'storage.resident_credentials' + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x5a, // LOAD_ATTR 'resident_credentials' + 0x14,0x82,0x1a, // LOAD_METHOD 'delete_all' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x23, // LOAD_GLOBAL 'Cmd' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0x22,0x81,0x10, // LOAD_CONST_SMALL_INT 144 + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc2, // STORE_FAST 2 + 0x12,0x5d, // LOAD_GLOBAL 'send_cmd' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x7e, // STORE_ATTR 'finished' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmReset_on_confirm = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmReset_on_confirm, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 68, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 257, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmReset_on_confirm + 7, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmReset_on_confirm + 13, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmReset_on_confirm + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2_Fido2ConfirmReset[] = { + &raw_code_apps_webauthn_fido2_Fido2ConfirmReset_confirm_dialog, + &raw_code_apps_webauthn_fido2_Fido2ConfirmReset_on_confirm, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2_Fido2ConfirmReset = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_Fido2ConfirmReset, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 30, + #endif + .children = (void *)&children_apps_webauthn_fido2_Fido2ConfirmReset, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 49, + .line_info = fun_data_apps_webauthn_fido2_Fido2ConfirmReset + 3, + .line_info_top = fun_data_apps_webauthn_fido2_Fido2ConfirmReset + 7, + .opcodes = fun_data_apps_webauthn_fido2_Fido2ConfirmReset + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_DialogManager +static const byte fun_data_apps_webauthn_fido2_DialogManager[84] = { + 0x00,0x28, // prelude + 0x32, // names: DialogManager + 0xbb,0xcb,0x65,0x20,0x85,0x07,0x65,0x65,0x20,0x85,0x07,0x84,0x07,0x85,0x0d,0x85,0x10,0x85,0x11, // code info + 0x11,0x82,0x34, // LOAD_NAME '__name__' + 0x16,0x82,0x35, // STORE_NAME '__module__' + 0x10,0x32, // LOAD_CONST_STRING 'DialogManager' + 0x16,0x82,0x36, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x81,0x79, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x82,0x1b, // STORE_NAME '_clear' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x82,0x1f, // STORE_NAME '_workflow_is_running' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x82,0x20, // STORE_NAME 'reset_timeout' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x81,0x02, // STORE_NAME 'reset' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x63, // STORE_NAME 'allow_cid' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x82,0x23, // STORE_NAME 'is_busy' + 0x32,0x07, // MAKE_FUNCTION 7 + 0x16,0x81,0x11, // STORE_NAME 'set_state' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x82,0x25, // STORE_NAME 'keepalive_loop' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x82,0x28, // STORE_NAME 'dialog_workflow' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_fido2_DialogManager +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_DialogManager___init__ +static const byte fun_data_apps_webauthn_fido2_DialogManager___init__[25] = { + 0x1a,0x12, // prelude + 0x81,0x79,0x82,0x54,0x81,0x10, // names: __init__, self, iface + 0xb0,0xcc,0x25, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x10, // STORE_ATTR 'iface' + 0xb0, // LOAD_FAST 0 + 0x14,0x82,0x1b, // LOAD_METHOD '_clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_DialogManager___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2_DialogManager___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 249, + .line_info = fun_data_apps_webauthn_fido2_DialogManager___init__ + 8, + .line_info_top = fun_data_apps_webauthn_fido2_DialogManager___init__ + 11, + .opcodes = fun_data_apps_webauthn_fido2_DialogManager___init__ + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_DialogManager +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_DialogManager__clear +static const byte fun_data_apps_webauthn_fido2_DialogManager__clear[38] = { + 0x11,0x14, // prelude + 0x82,0x1b,0x82,0x54, // names: _clear, self + 0xb0,0xd0,0x25,0x25,0x25,0x24, // code info + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x1c, // STORE_ATTR 'state' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x1d, // STORE_ATTR 'deadline' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x01, // STORE_ATTR 'result' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x0f, // STORE_ATTR 'workflow' + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x1e, // STORE_ATTR 'keepalive' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_DialogManager__clear = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_DialogManager__clear, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 283, + .line_info = fun_data_apps_webauthn_fido2_DialogManager__clear + 6, + .line_info_top = fun_data_apps_webauthn_fido2_DialogManager__clear + 12, + .opcodes = fun_data_apps_webauthn_fido2_DialogManager__clear + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_DialogManager +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_DialogManager__workflow_is_running +static const byte fun_data_apps_webauthn_fido2_DialogManager__workflow_is_running[24] = { + 0x11,0x0c, // prelude + 0x82,0x1f,0x82,0x54, // names: _workflow_is_running, self + 0xb0,0xd7, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'workflow' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x46,0x07, // JUMP_IF_FALSE_OR_POP 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'workflow' + 0x13,0x81,0x7e, // LOAD_ATTR 'finished' + 0xd3, // UNARY_OP 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_DialogManager__workflow_is_running = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_DialogManager__workflow_is_running, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 287, + .line_info = fun_data_apps_webauthn_fido2_DialogManager__workflow_is_running + 6, + .line_info_top = fun_data_apps_webauthn_fido2_DialogManager__workflow_is_running + 8, + .opcodes = fun_data_apps_webauthn_fido2_DialogManager__workflow_is_running + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_DialogManager +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_DialogManager_reset_timeout +static const byte fun_data_apps_webauthn_fido2_DialogManager_reset_timeout[40] = { + 0x19,0x0e, // prelude + 0x82,0x20,0x82,0x54, // names: reset_timeout, self + 0xb0,0xda,0x29, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x1c, // LOAD_ATTR 'state' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x04, // LOAD_GLOBAL 'utime' + 0x14,0x82,0x21, // LOAD_METHOD 'ticks_ms' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x1c, // LOAD_ATTR 'state' + 0x14,0x7a, // LOAD_METHOD 'timeout_ms' + 0x36,0x00, // CALL_METHOD 0 + 0xf2, // BINARY_OP 27 __add__ + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x1d, // STORE_ATTR 'deadline' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_DialogManager_reset_timeout = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_DialogManager_reset_timeout, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 40, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 288, + .line_info = fun_data_apps_webauthn_fido2_DialogManager_reset_timeout + 6, + .line_info_top = fun_data_apps_webauthn_fido2_DialogManager_reset_timeout + 9, + .opcodes = fun_data_apps_webauthn_fido2_DialogManager_reset_timeout + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_DialogManager +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_DialogManager_reset +static const byte fun_data_apps_webauthn_fido2_DialogManager_reset[59] = { + 0x19,0x14, // prelude + 0x81,0x02,0x82,0x54, // names: reset, self + 0xb0,0xde,0x28,0x29,0x29,0x2c, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'workflow' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'workflow' + 0x14,0x82,0x22, // LOAD_METHOD 'close' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x1e, // LOAD_ATTR 'keepalive' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x0c, // LOAD_GLOBAL 'loop' + 0x14,0x82,0x22, // LOAD_METHOD 'close' + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x1e, // LOAD_ATTR 'keepalive' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x82,0x1b, // LOAD_METHOD '_clear' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_DialogManager_reset = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_DialogManager_reset, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 59, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 130, + .line_info = fun_data_apps_webauthn_fido2_DialogManager_reset + 6, + .line_info_top = fun_data_apps_webauthn_fido2_DialogManager_reset + 12, + .opcodes = fun_data_apps_webauthn_fido2_DialogManager_reset + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_DialogManager +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_DialogManager_allow_cid +static const byte fun_data_apps_webauthn_fido2_DialogManager_allow_cid[45] = { + 0x22,0x12, // prelude + 0x63,0x82,0x54,0x35, // names: allow_cid, self, cid + 0xb0,0xe5,0x20,0x29,0x26, // code info + 0xb0, // LOAD_FAST 0 + 0x14,0x82,0x23, // LOAD_METHOD 'is_busy' + 0x36,0x00, // CALL_METHOD 0 + 0xd3, // UNARY_OP 3 + 0x45,0x18, // JUMP_IF_TRUE_OR_POP 24 + 0xb1, // LOAD_FAST 1 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0xd9, // BINARY_OP 2 __eq__ + 0x45,0x12, // JUMP_IF_TRUE_OR_POP 18 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x1c, // LOAD_ATTR 'state' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x46,0x09, // JUMP_IF_FALSE_OR_POP 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x1c, // LOAD_ATTR 'state' + 0x14,0x63, // LOAD_METHOD 'allow_cid' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_DialogManager_allow_cid = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2_DialogManager_allow_cid, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 45, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 99, + .line_info = fun_data_apps_webauthn_fido2_DialogManager_allow_cid + 6, + .line_info_top = fun_data_apps_webauthn_fido2_DialogManager_allow_cid + 11, + .opcodes = fun_data_apps_webauthn_fido2_DialogManager_allow_cid + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_DialogManager +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_DialogManager_is_busy +static const byte fun_data_apps_webauthn_fido2_DialogManager_is_busy[83] = { + 0x11,0x1a, // prelude + 0x82,0x23,0x82,0x54, // names: is_busy, self + 0xb0,0xec,0x2e,0x47,0x28,0x4b,0x31,0x27,0x42, // code info + 0x12,0x04, // LOAD_GLOBAL 'utime' + 0x14,0x82,0x21, // LOAD_METHOD 'ticks_ms' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x1d, // LOAD_ATTR 'deadline' + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x02, // LOAD_METHOD 'reset' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x82,0x1f, // LOAD_METHOD '_workflow_is_running' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0x12,0x82,0x4e, // LOAD_GLOBAL 'bool' + 0x12,0x0f, // LOAD_GLOBAL 'workflow' + 0x13,0x82,0x24, // LOAD_ATTR 'tasks' + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x1c, // LOAD_ATTR 'state' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x43,0x49, // POP_JUMP_IF_TRUE 9 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x1c, // LOAD_ATTR 'state' + 0x13,0x81,0x7e, // LOAD_ATTR 'finished' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x02, // LOAD_METHOD 'reset' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_DialogManager_is_busy = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_DialogManager_is_busy, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 83, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 291, + .line_info = fun_data_apps_webauthn_fido2_DialogManager_is_busy + 6, + .line_info_top = fun_data_apps_webauthn_fido2_DialogManager_is_busy + 15, + .opcodes = fun_data_apps_webauthn_fido2_DialogManager_is_busy + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_DialogManager +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_DialogManager_set_state +static const byte fun_data_apps_webauthn_fido2_DialogManager_set_state[119] = { + 0x2a,0x26, // prelude + 0x81,0x11,0x82,0x54,0x82,0x1c, // names: set_state, self, state + 0xb0,0xf9,0x36,0x27,0x42,0x28,0x42,0x25,0x27,0x25,0x2a,0x2c,0x30, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x1c, // LOAD_ATTR 'state' + 0xb1, // LOAD_FAST 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0x12,0x04, // LOAD_GLOBAL 'utime' + 0x14,0x82,0x21, // LOAD_METHOD 'ticks_ms' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x1d, // LOAD_ATTR 'deadline' + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb0, // LOAD_FAST 0 + 0x14,0x82,0x20, // LOAD_METHOD 'reset_timeout' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x14,0x82,0x23, // LOAD_METHOD 'is_busy' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x1c, // STORE_ATTR 'state' + 0xb0, // LOAD_FAST 0 + 0x14,0x82,0x20, // LOAD_METHOD 'reset_timeout' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x01, // STORE_ATTR 'result' + 0xb0, // LOAD_FAST 0 + 0x14,0x82,0x25, // LOAD_METHOD 'keepalive_loop' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x1e, // STORE_ATTR 'keepalive' + 0x12,0x0c, // LOAD_GLOBAL 'loop' + 0x14,0x82,0x26, // LOAD_METHOD 'schedule' + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x1e, // LOAD_ATTR 'keepalive' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'workflow' + 0x14,0x82,0x27, // LOAD_METHOD 'spawn' + 0xb0, // LOAD_FAST 0 + 0x14,0x82,0x28, // LOAD_METHOD 'dialog_workflow' + 0x36,0x00, // CALL_METHOD 0 + 0x36,0x01, // CALL_METHOD 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x0f, // STORE_ATTR 'workflow' + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_DialogManager_set_state = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2_DialogManager_set_state, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 119, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 145, + .line_info = fun_data_apps_webauthn_fido2_DialogManager_set_state + 8, + .line_info_top = fun_data_apps_webauthn_fido2_DialogManager_set_state + 21, + .opcodes = fun_data_apps_webauthn_fido2_DialogManager_set_state + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_DialogManager +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_DialogManager_keepalive_loop +static const byte fun_data_apps_webauthn_fido2_DialogManager_keepalive_loop[121] = { + 0xcd,0x40,0x22, // prelude + 0x82,0x25,0x82,0x54, // names: keepalive_loop, self + 0xc0,0x09,0x45,0x22,0x23,0x22,0x22,0x2a,0x2f,0x2d,0x5d,0x46,0x25, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x1c, // LOAD_ATTR 'state' + 0xc1, // STORE_FAST 1 + 0x49,0x4a, // SETUP_FINALLY 74 + 0xb1, // LOAD_FAST 1 + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x42,0x73, // JUMP 51 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x7f, // LOAD_METHOD 'keepalive_status' + 0x36,0x00, // CALL_METHOD 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0x12,0x81,0x78, // LOAD_GLOBAL 'cmd_keepalive' + 0xb1, // LOAD_FAST 1 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x7f, // LOAD_METHOD 'keepalive_status' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc2, // STORE_FAST 2 + 0x12,0x5d, // LOAD_GLOBAL 'send_cmd' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'loop' + 0x14,0x5c, // LOAD_METHOD 'sleep' + 0x22,0x80,0x50, // LOAD_CONST_SMALL_INT 80 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'utime' + 0x14,0x82,0x21, // LOAD_METHOD 'ticks_ms' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x1d, // LOAD_ATTR 'deadline' + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xbe,0x7f, // POP_JUMP_IF_TRUE -66 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x1e, // STORE_ATTR 'keepalive' + 0x5d, // END_FINALLY + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x01, // STORE_ATTR 'result' + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x02, // LOAD_METHOD 'reset' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_DialogManager_keepalive_loop = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_DialogManager_keepalive_loop, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 121, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 293, + .line_info = fun_data_apps_webauthn_fido2_DialogManager_keepalive_loop + 7, + .line_info_top = fun_data_apps_webauthn_fido2_DialogManager_keepalive_loop + 20, + .opcodes = fun_data_apps_webauthn_fido2_DialogManager_keepalive_loop + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2_DialogManager +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_DialogManager_dialog_workflow +static const byte fun_data_apps_webauthn_fido2_DialogManager_dialog_workflow[202] = { + 0xc5,0x40,0x36, // prelude + 0x82,0x28,0x82,0x54, // names: dialog_workflow, self + 0xc0,0x1a,0x28,0x42,0x22,0x22,0x2d,0x2a,0x25,0x29,0x25,0x47,0x4e,0x29,0x2c,0x25,0x45,0x25,0x2c,0x25,0x2c,0x25,0x4c, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x1c, // LOAD_ATTR 'state' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x49,0x41, // SETUP_FINALLY 65 + 0x42,0x76, // JUMP 54 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x1c, // LOAD_ATTR 'state' + 0x14,0x82,0x00, // LOAD_METHOD 'confirm_dialog' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc1, // STORE_FAST 1 + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0xb1, // LOAD_FAST 1 + 0x12,0x25, // LOAD_GLOBAL 'State' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x82,0x1c, // STORE_ATTR 'state' + 0xb0, // LOAD_FAST 0 + 0x14,0x82,0x20, // LOAD_METHOD 'reset_timeout' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x42,0x51, // JUMP 17 + 0xb1, // LOAD_FAST 1 + 0x52, // LOAD_CONST_TRUE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x01, // STORE_ATTR 'result' + 0x42,0x45, // JUMP 5 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x81,0x01, // STORE_ATTR 'result' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x01, // LOAD_ATTR 'result' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xde, // BINARY_OP 7 + 0x43,0x02, // POP_JUMP_IF_TRUE -62 + 0x51, // LOAD_CONST_NONE + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x1e, // LOAD_ATTR 'keepalive' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x0c, // LOAD_GLOBAL 'loop' + 0x14,0x82,0x22, // LOAD_METHOD 'close' + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x1e, // LOAD_ATTR 'keepalive' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x01, // LOAD_ATTR 'result' + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x82,0x1c, // LOAD_ATTR 'state' + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb2, // LOAD_FAST 2 + 0x14,0x82,0x01, // LOAD_METHOD 'on_confirm' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x6c, // JUMP 44 + 0xb1, // LOAD_FAST 1 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb2, // LOAD_FAST 2 + 0x14,0x82,0x04, // LOAD_METHOD 'on_cancel' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x5b, // JUMP 27 + 0xb1, // LOAD_FAST 1 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb2, // LOAD_FAST 2 + 0x14,0x82,0x03, // LOAD_METHOD 'on_timeout' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x4a, // JUMP 10 + 0xb2, // LOAD_FAST 2 + 0x14,0x82,0x02, // LOAD_METHOD 'on_decline' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x5d, // END_FINALLY + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_DialogManager_dialog_workflow = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_DialogManager_dialog_workflow, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 202, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 296, + .line_info = fun_data_apps_webauthn_fido2_DialogManager_dialog_workflow + 7, + .line_info_top = fun_data_apps_webauthn_fido2_DialogManager_dialog_workflow + 30, + .opcodes = fun_data_apps_webauthn_fido2_DialogManager_dialog_workflow + 30, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2_DialogManager[] = { + &raw_code_apps_webauthn_fido2_DialogManager___init__, + &raw_code_apps_webauthn_fido2_DialogManager__clear, + &raw_code_apps_webauthn_fido2_DialogManager__workflow_is_running, + &raw_code_apps_webauthn_fido2_DialogManager_reset_timeout, + &raw_code_apps_webauthn_fido2_DialogManager_reset, + &raw_code_apps_webauthn_fido2_DialogManager_allow_cid, + &raw_code_apps_webauthn_fido2_DialogManager_is_busy, + &raw_code_apps_webauthn_fido2_DialogManager_set_state, + &raw_code_apps_webauthn_fido2_DialogManager_keepalive_loop, + &raw_code_apps_webauthn_fido2_DialogManager_dialog_workflow, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2_DialogManager = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2_DialogManager, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 84, + #endif + .children = (void *)&children_apps_webauthn_fido2_DialogManager, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 10, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 50, + .line_info = fun_data_apps_webauthn_fido2_DialogManager + 3, + .line_info_top = fun_data_apps_webauthn_fido2_DialogManager + 22, + .opcodes = fun_data_apps_webauthn_fido2_DialogManager + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__dispatch_cmd +static const byte fun_data_apps_webauthn_fido2__dispatch_cmd[442] = { + 0x76,0x94,0x02, // prelude + 0x7b,0x82,0x0a,0x82,0x0c, // names: _dispatch_cmd, req, dialog_mgr + 0xc0,0x38,0x25,0x25,0x24,0x44,0x28,0x22,0x50,0x2b,0x44,0x27,0x40,0x4b,0x31,0x40,0x4b,0x25,0x40,0x28,0x25,0x40,0x28,0x25,0x60,0x25,0x2d,0x4d,0x40,0x4e,0x27,0x40,0x27,0x27,0x40,0x22,0x29,0x40,0x27,0x28,0x25,0x28,0x26,0x25,0x40,0x28,0x25,0x40,0x28,0x25,0x40,0x27,0x25,0x40,0x27,0x25,0x40,0x28,0x25,0x40,0x49,0x40,0x4a,0x27,0x40,0x25,0x27,0x42,0x40, // code info + 0x12,0x0b, // LOAD_GLOBAL 'log' + 0x13,0x7c, // LOAD_ATTR 'debug' + 0xc2, // STORE_FAST 2 + 0x12,0x0b, // LOAD_GLOBAL 'log' + 0x13,0x59, // LOAD_ATTR 'warning' + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xc4, // STORE_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'cmd' + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x22,0x81,0x03, // LOAD_CONST_SMALL_INT 131 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x9b,0x81, // POP_JUMP_IF_FALSE 155 + 0x48,0x08, // SETUP_EXCEPT 8 + 0xb0, // LOAD_FAST 0 + 0x14,0x7d, // LOAD_METHOD 'to_msg' + 0x36,0x00, // CALL_METHOD 0 + 0xc6, // STORE_FAST 6 + 0x4a,0x13, // POP_EXCEPT_JUMP 19 + 0x57, // DUP_TOP + 0x12,0x82,0x44, // LOAD_GLOBAL 'IndexError' + 0xdf, // BINARY_OP 8 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x59, // POP_TOP + 0x12,0x81,0x29, // LOAD_GLOBAL 'cmd_error' + 0xb4, // LOAD_FAST 4 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb6, // LOAD_FAST 6 + 0x13,0x7e, // LOAD_ATTR 'ins' + 0xc7, // STORE_FAST 7 + 0xb6, // LOAD_FAST 6 + 0x13,0x7f, // LOAD_ATTR 'cla' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x81,0x27, // LOAD_GLOBAL 'msg_error' + 0xb4, // LOAD_FAST 4 + 0x22,0x81,0xdc,0x00, // LOAD_CONST_SMALL_INT 28160 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb6, // LOAD_FAST 6 + 0x13,0x81,0x00, // LOAD_ATTR 'lc' + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xf2, // BINARY_OP 27 __add__ + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'data' + 0x34,0x01, // CALL_FUNCTION 1 + 0xd8, // BINARY_OP 1 __gt__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x81,0x27, // LOAD_GLOBAL 'msg_error' + 0xb4, // LOAD_FAST 4 + 0x22,0x81,0xce,0x00, // LOAD_CONST_SMALL_INT 26368 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb7, // LOAD_FAST 7 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x81,0x0d, // LOAD_GLOBAL '_msg_register' + 0xb6, // LOAD_FAST 6 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb7, // LOAD_FAST 7 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x81,0x1f, // LOAD_GLOBAL '_msg_authenticate' + 0xb6, // LOAD_FAST 6 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb7, // LOAD_FAST 7 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5f, // POP_JUMP_IF_FALSE 31 + 0xb6, // LOAD_FAST 6 + 0x13,0x3b, // LOAD_ATTR 'data' + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x12,0x81,0x27, // LOAD_GLOBAL 'msg_error' + 0xb6, // LOAD_FAST 6 + 0x13,0x35, // LOAD_ATTR 'cid' + 0x22,0x81,0xce,0x00, // LOAD_CONST_SMALL_INT 26368 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x12,0x23, // LOAD_GLOBAL 'Cmd' + 0xb6, // LOAD_FAST 6 + 0x13,0x35, // LOAD_ATTR 'cid' + 0x22,0x81,0x03, // LOAD_CONST_SMALL_INT 131 + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE + 0x12,0x81,0x27, // LOAD_GLOBAL 'msg_error' + 0xb4, // LOAD_FAST 4 + 0x22,0x81,0xda,0x00, // LOAD_CONST_SMALL_INT 27904 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x42,0xb6,0x81, // JUMP 182 + 0xb5, // LOAD_FAST 5 + 0x22,0x81,0x06, // LOAD_CONST_SMALL_INT 134 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x81,0x03, // LOAD_GLOBAL 'cmd_init' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0xb5, // LOAD_FAST 5 + 0x22,0x81,0x01, // LOAD_CONST_SMALL_INT 129 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE + 0xb5, // LOAD_FAST 5 + 0x22,0x81,0x08, // LOAD_CONST_SMALL_INT 136 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x42,0x47, // JUMP 7 + 0x12,0x81,0x0a, // LOAD_GLOBAL '_cmd_wink' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0xb5, // LOAD_FAST 5 + 0x22,0x81,0x10, // LOAD_CONST_SMALL_INT 144 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0xea,0x80, // POP_JUMP_IF_FALSE 106 + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'data' + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0x12,0x81,0x29, // LOAD_GLOBAL 'cmd_error' + 0xb4, // LOAD_FAST 4 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'data' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x81,0x34, // LOAD_GLOBAL '_cbor_make_credential' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb8, // LOAD_FAST 8 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x81,0x57, // LOAD_GLOBAL '_cbor_get_assertion' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb8, // LOAD_FAST 8 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x81,0x6f, // LOAD_GLOBAL '_cbor_get_info' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0xb8, // LOAD_FAST 8 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x81,0x73, // LOAD_GLOBAL '_cbor_client_pin' + 0xb0, // LOAD_FAST 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE + 0xb8, // LOAD_FAST 8 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x81,0x77, // LOAD_GLOBAL '_cbor_reset' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb8, // LOAD_FAST 8 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb4, // LOAD_FAST 4 + 0x22,0x30, // LOAD_CONST_SMALL_INT 48 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x42,0x5d, // JUMP 29 + 0xb5, // LOAD_FAST 5 + 0x22,0x81,0x11, // LOAD_CONST_SMALL_INT 145 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xb1, // LOAD_FAST 1 + 0x18,0x81,0x01, // STORE_ATTR 'result' + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x02, // LOAD_METHOD 'reset' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x81,0x29, // LOAD_GLOBAL 'cmd_error' + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__dispatch_cmd = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2__dispatch_cmd, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 442, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 123, + .line_info = fun_data_apps_webauthn_fido2__dispatch_cmd + 8, + .line_info_top = fun_data_apps_webauthn_fido2__dispatch_cmd + 77, + .opcodes = fun_data_apps_webauthn_fido2__dispatch_cmd + 77, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_cmd_init +static const byte fun_data_apps_webauthn_fido2_cmd_init[159] = { + 0x69,0x2a, // prelude + 0x81,0x03,0x82,0x0a, // names: cmd_init, req + 0xc0,0x9c,0x4d,0x44,0x46,0x4d,0x42,0x2c,0x48,0x2c,0x37,0x24,0x25,0x25,0x25,0x25,0x44, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x04, // LOAD_CONST_STRING 'random' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x12, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x81,0x04, // IMPORT_FROM 'random' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x05, // LOAD_METHOD 'uniform' + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0x36,0x01, // CALL_METHOD 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xf2, // BINARY_OP 27 __add__ + 0xc3, // STORE_FAST 3 + 0x42,0x42, // JUMP 2 + 0xb2, // LOAD_FAST 2 + 0xc3, // STORE_FAST 3 + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'data' + 0x34,0x01, // CALL_FUNCTION 1 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x81,0x29, // LOAD_GLOBAL 'cmd_error' + 0xb2, // LOAD_FAST 2 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x12,0x54, // LOAD_GLOBAL 'make_struct' + 0x12,0x3e, // LOAD_GLOBAL '_resp_cmd_init' + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc4, // STORE_FAST 4 + 0xc5, // STORE_FAST 5 + 0x12,0x0d, // LOAD_GLOBAL 'utils' + 0x14,0x5a, // LOAD_METHOD 'memcpy' + 0xb5, // LOAD_FAST 5 + 0x13,0x3f, // LOAD_ATTR 'nonce' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'data' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'data' + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x05, // CALL_METHOD 5 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0x18,0x35, // STORE_ATTR 'cid' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xb5, // LOAD_FAST 5 + 0x18,0x81,0x06, // STORE_ATTR 'versionInterface' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xb5, // LOAD_FAST 5 + 0x18,0x81,0x07, // STORE_ATTR 'versionMajor' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb5, // LOAD_FAST 5 + 0x18,0x81,0x08, // STORE_ATTR 'versionMinor' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb5, // LOAD_FAST 5 + 0x18,0x81,0x09, // STORE_ATTR 'versionBuild' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xb5, // LOAD_FAST 5 + 0x18,0x40, // STORE_ATTR 'capFlags' + 0x12,0x23, // LOAD_GLOBAL 'Cmd' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x37, // LOAD_ATTR 'cmd' + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_cmd_init = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_cmd_init, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 159, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 131, + .line_info = fun_data_apps_webauthn_fido2_cmd_init + 6, + .line_info_top = fun_data_apps_webauthn_fido2_cmd_init + 23, + .opcodes = fun_data_apps_webauthn_fido2_cmd_init + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__cmd_wink +static const byte fun_data_apps_webauthn_fido2__cmd_wink[50] = { + 0x19,0x16, // prelude + 0x81,0x0a,0x82,0x0a, // names: _cmd_wink, req + 0xc0,0xb6,0x4d,0x20,0x29,0x26,0x27, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x0b, // LOAD_CONST_STRING 'ui' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'trezor' + 0x1c,0x81,0x0b, // IMPORT_FROM 'ui' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x82,0x31, // LOAD_GLOBAL '_last_wink_cid' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0x17,0x82,0x31, // STORE_GLOBAL '_last_wink_cid' + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x0c, // LOAD_METHOD 'alert' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__cmd_wink = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2__cmd_wink, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 50, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 138, + .line_info = fun_data_apps_webauthn_fido2__cmd_wink + 6, + .line_info_top = fun_data_apps_webauthn_fido2__cmd_wink + 13, + .opcodes = fun_data_apps_webauthn_fido2__cmd_wink + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__msg_register +static const byte fun_data_apps_webauthn_fido2__msg_register[260] = { + 0x6a,0x4e, // prelude + 0x81,0x0d,0x82,0x0a,0x82,0x0c, // names: _msg_register, req, dialog_mgr + 0xc0,0xc0,0x4d,0x24,0x44,0x29,0x2a,0x28,0x4b,0x2a,0x60,0x20,0x68,0x2c,0x40,0x6b,0x27,0x24,0x29,0x67,0x2c,0x29,0x6b,0x28,0x40,0x4b,0x28,0x60,0x20,0x68,0x40,0x48,0x47, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x81,0x0e, // LOAD_CONST_STRING 'U2fCredential' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1f, // IMPORT_NAME 'credential' + 0x1c,0x81,0x0e, // IMPORT_FROM 'U2fCredential' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xc3, // STORE_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'data' + 0xc4, // STORE_FAST 4 + 0x12,0x09, // LOAD_GLOBAL 'config' + 0x14,0x81,0x0f, // LOAD_METHOD 'is_unlocked' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x5d, // POP_JUMP_IF_TRUE 29 + 0x12,0x29, // LOAD_GLOBAL 'U2fUnlock' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x11, // LOAD_METHOD 'set_state' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x81,0x27, // LOAD_GLOBAL 'msg_error' + 0xb3, // LOAD_FAST 3 + 0x22,0x81,0xd3,0x05, // LOAD_CONST_SMALL_INT 27013 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x12,0x82,0x29, // LOAD_GLOBAL 'storage_device' + 0x14,0x81,0x12, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0x12,0x81,0x29, // LOAD_GLOBAL 'cmd_error' + 0xb3, // LOAD_FAST 3 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x81,0x27, // LOAD_GLOBAL 'msg_error' + 0xb3, // LOAD_FAST 3 + 0x22,0x81,0xce,0x00, // LOAD_CONST_SMALL_INT 26368 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb4, // LOAD_FAST 4 + 0x51, // LOAD_CONST_NONE + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc6, // STORE_FAST 6 + 0xb2, // LOAD_FAST 2 + 0x34,0x00, // CALL_FUNCTION 0 + 0xc7, // STORE_FAST 7 + 0xb4, // LOAD_FAST 4 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb7, // LOAD_FAST 7 + 0x18,0x75, // STORE_ATTR 'rp_id_hash' + 0xb7, // LOAD_FAST 7 + 0x14,0x81,0x13, // LOAD_METHOD 'generate_key_handle' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x27, // LOAD_GLOBAL 'U2fConfirmRegister' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0xb4, // LOAD_FAST 4 + 0xb7, // LOAD_FAST 7 + 0x34,0x04, // CALL_FUNCTION 4 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x11, // LOAD_METHOD 'set_state' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0x12,0x81,0x27, // LOAD_GLOBAL 'msg_error' + 0xb3, // LOAD_FAST 3 + 0x22,0x81,0xd3,0x05, // LOAD_CONST_SMALL_INT 27013 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x01, // LOAD_ATTR 'result' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x81,0x27, // LOAD_GLOBAL 'msg_error' + 0xb3, // LOAD_FAST 3 + 0x22,0x81,0xd3,0x05, // LOAD_CONST_SMALL_INT 27013 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x01, // LOAD_ATTR 'result' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x81,0x29, // LOAD_GLOBAL 'cmd_error' + 0xb3, // LOAD_FAST 3 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x12,0x81,0x1b, // LOAD_GLOBAL '_msg_register_sign' + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc8, // STORE_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x02, // LOAD_METHOD 'reset' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x23, // LOAD_GLOBAL 'Cmd' + 0xb3, // LOAD_FAST 3 + 0x22,0x81,0x03, // LOAD_CONST_SMALL_INT 131 + 0xb8, // LOAD_FAST 8 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__msg_register = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2__msg_register, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 260, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 141, + .line_info = fun_data_apps_webauthn_fido2__msg_register + 8, + .line_info_top = fun_data_apps_webauthn_fido2__msg_register + 41, + .opcodes = fun_data_apps_webauthn_fido2__msg_register + 41, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_basic_attestation_sign +static const byte fun_data_apps_webauthn_fido2_basic_attestation_sign[87] = { + 0x59,0x14, // prelude + 0x81,0x14,0x3b, // names: basic_attestation_sign, data + 0xc0,0xfa,0x4d,0x28,0x25,0x2a,0x32, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x15, // LOAD_CONST_STRING 'der' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x12, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x81,0x15, // IMPORT_FROM 'der' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x12,0x11, // LOAD_GLOBAL 'hashlib' + 0x14,0x81,0x16, // LOAD_METHOD 'sha256' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x0b, // FOR_ITER 11 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x14,0x81,0x17, // LOAD_METHOD 'update' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x33, // JUMP -13 + 0x12,0x13, // LOAD_GLOBAL 'nist256p1' + 0x14,0x81,0x18, // LOAD_METHOD 'sign' + 0x12,0x82,0x2a, // LOAD_GLOBAL '_FIDO_ATT_PRIV_KEY' + 0xb2, // LOAD_FAST 2 + 0x14,0x81,0x19, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x50, // LOAD_CONST_FALSE + 0x36,0x03, // CALL_METHOD 3 + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x1a, // LOAD_METHOD 'encode_seq' + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb4, // LOAD_FAST 4 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_basic_attestation_sign = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2_basic_attestation_sign, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 87, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 148, + .line_info = fun_data_apps_webauthn_fido2_basic_attestation_sign + 5, + .line_info_top = fun_data_apps_webauthn_fido2_basic_attestation_sign + 12, + .opcodes = fun_data_apps_webauthn_fido2_basic_attestation_sign + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__msg_register_sign +static const byte fun_data_apps_webauthn_fido2__msg_register_sign[184] = { + 0x72,0x2a, // prelude + 0x81,0x1b,0x82,0x45,0x82,0x46, // names: _msg_register_sign, challenge, cred + 0xd0,0x04,0x25,0x45,0x47,0x70,0x1f,0x21,0x24,0x30,0x2a,0x30,0x34,0x30,0x47, // code info + 0x12,0x0d, // LOAD_GLOBAL 'utils' + 0x13,0x5a, // LOAD_ATTR 'memcpy' + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x1c, // LOAD_ATTR 'id' + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x1d, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0x12,0x81,0x14, // LOAD_GLOBAL 'basic_attestation_sign' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x75, // LOAD_ATTR 'rp_id_hash' + 0xb0, // LOAD_FAST 0 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x2a,0x05, // BUILD_TUPLE 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc5, // STORE_FAST 5 + 0x12,0x54, // LOAD_GLOBAL 'make_struct' + 0x12,0x41, // LOAD_GLOBAL '_resp_cmd_register' + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0x12,0x82,0x2b, // LOAD_GLOBAL '_FIDO_ATT_CERT' + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc6, // STORE_FAST 6 + 0xc7, // STORE_FAST 7 + 0x85, // LOAD_CONST_SMALL_INT 5 + 0xb7, // LOAD_FAST 7 + 0x18,0x42, // STORE_ATTR 'registerId' + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x13,0x43, // LOAD_ATTR 'pubKey' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb4, // LOAD_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb4, // LOAD_FAST 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb7, // LOAD_FAST 7 + 0x18,0x81,0x1e, // STORE_ATTR 'keyHandleLen' + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x13,0x44, // LOAD_ATTR 'keyHandle' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x13,0x45, // LOAD_ATTR 'cert' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x82,0x2b, // LOAD_GLOBAL '_FIDO_ATT_CERT' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0x12,0x82,0x2b, // LOAD_GLOBAL '_FIDO_ATT_CERT' + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x13,0x46, // LOAD_ATTR 'sig' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb5, // LOAD_FAST 5 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb5, // LOAD_FAST 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x05, // CALL_FUNCTION 5 + 0x59, // POP_TOP + 0x22,0x82,0xa0,0x00, // LOAD_CONST_SMALL_INT 36864 + 0xb7, // LOAD_FAST 7 + 0x18,0x47, // STORE_ATTR 'status' + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__msg_register_sign = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2__msg_register_sign, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 184, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 15, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 155, + .line_info = fun_data_apps_webauthn_fido2__msg_register_sign + 8, + .line_info_top = fun_data_apps_webauthn_fido2__msg_register_sign + 23, + .opcodes = fun_data_apps_webauthn_fido2__msg_register_sign + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__msg_authenticate +static const byte fun_data_apps_webauthn_fido2__msg_authenticate[374] = { + 0x96,0x10,0x66, // prelude + 0x81,0x1f,0x82,0x0a,0x82,0x0c, // names: _msg_authenticate, req, dialog_mgr + 0xd0,0x19,0x20,0x44,0x24,0x24,0x46,0x29,0x2a,0x28,0x4b,0x2a,0x60,0x6b,0x2c,0x40,0x6b,0x26,0x30,0x29,0x29,0x49,0x22,0x74,0x4e,0x64,0x28,0x40,0x6b,0x28,0x40,0x6b,0x2c,0x29,0x6b,0x28,0x40,0x4b,0x28,0x60,0x20,0x68,0x40,0x49,0x47, // code info + 0x50, // LOAD_CONST_FALSE + 0x17,0x82,0x32, // STORE_GLOBAL '_last_auth_valid' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'data' + 0xc3, // STORE_FAST 3 + 0x12,0x0b, // LOAD_GLOBAL 'log' + 0x13,0x81,0x20, // LOAD_ATTR 'info' + 0xc4, // STORE_FAST 4 + 0x12,0x09, // LOAD_GLOBAL 'config' + 0x14,0x81,0x0f, // LOAD_METHOD 'is_unlocked' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x5d, // POP_JUMP_IF_TRUE 29 + 0x12,0x29, // LOAD_GLOBAL 'U2fUnlock' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x11, // LOAD_METHOD 'set_state' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x12,0x81,0x27, // LOAD_GLOBAL 'msg_error' + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0xd3,0x05, // LOAD_CONST_SMALL_INT 27013 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x12,0x82,0x29, // LOAD_GLOBAL 'storage_device' + 0x14,0x81,0x12, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0x12,0x81,0x27, // LOAD_GLOBAL 'msg_error' + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0xd5,0x00, // LOAD_CONST_SMALL_INT 27264 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xda, // BINARY_OP 3 __le__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x81,0x27, // LOAD_GLOBAL 'msg_error' + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0xce,0x00, // LOAD_CONST_SMALL_INT 26368 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb3, // LOAD_FAST 3 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0x55, // LOAD_SUBSCR + 0xc6, // STORE_FAST 6 + 0x12,0x4e, // LOAD_GLOBAL 'overlay_struct' + 0x12,0x82,0x3e, // LOAD_GLOBAL 'bytearray' + 0xb3, // LOAD_FAST 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x48, // LOAD_GLOBAL '_req_cmd_authenticate' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc7, // STORE_FAST 7 + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0xb7, // LOAD_FAST 7 + 0x13,0x49, // LOAD_ATTR 'chal' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0xb7, // LOAD_FAST 7 + 0x13,0x4a, // LOAD_ATTR 'appId' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc9, // STORE_FAST 9 + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0xb7, // LOAD_FAST 7 + 0x13,0x44, // LOAD_ATTR 'keyHandle' + 0x34,0x01, // CALL_FUNCTION 1 + 0xca, // STORE_FAST 10 + 0x48,0x0c, // SETUP_EXCEPT 12 + 0x12,0x1d, // LOAD_GLOBAL 'Credential' + 0x14,0x81,0x21, // LOAD_METHOD 'from_bytes' + 0xba, // LOAD_FAST 10 + 0xb9, // LOAD_FAST 9 + 0x36,0x02, // CALL_METHOD 2 + 0xcb, // STORE_FAST 11 + 0x4a,0x16, // POP_EXCEPT_JUMP 22 + 0x57, // DUP_TOP + 0x12,0x82,0x33, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0x59, // POP_TOP + 0x12,0x81,0x27, // LOAD_GLOBAL 'msg_error' + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0xd5,0x00, // LOAD_CONST_SMALL_INT 27264 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x52, // LOAD_CONST_TRUE + 0x17,0x82,0x32, // STORE_GLOBAL '_last_auth_valid' + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x22, // LOAD_ATTR 'p1' + 0x87, // LOAD_CONST_SMALL_INT 7 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x81,0x27, // LOAD_GLOBAL 'msg_error' + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0xd3,0x05, // LOAD_CONST_SMALL_INT 27013 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x22, // LOAD_ATTR 'p1' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x81,0x27, // LOAD_GLOBAL 'msg_error' + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0xd5,0x00, // LOAD_CONST_SMALL_INT 27264 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x12,0x28, // LOAD_GLOBAL 'U2fConfirmAuthenticate' + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0xb3, // LOAD_FAST 3 + 0xbb, // LOAD_FAST 11 + 0x34,0x04, // CALL_FUNCTION 4 + 0xc5, // STORE_FAST 5 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x11, // LOAD_METHOD 'set_state' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0x12,0x81,0x27, // LOAD_GLOBAL 'msg_error' + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0xd3,0x05, // LOAD_CONST_SMALL_INT 27013 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x01, // LOAD_ATTR 'result' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x81,0x27, // LOAD_GLOBAL 'msg_error' + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0xd3,0x05, // LOAD_CONST_SMALL_INT 27013 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x01, // LOAD_ATTR 'result' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x81,0x29, // LOAD_GLOBAL 'cmd_error' + 0xb2, // LOAD_FAST 2 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x12,0x81,0x23, // LOAD_GLOBAL '_msg_authenticate_sign' + 0xb8, // LOAD_FAST 8 + 0xb9, // LOAD_FAST 9 + 0xbb, // LOAD_FAST 11 + 0x34,0x03, // CALL_FUNCTION 3 + 0xcc, // STORE_FAST 12 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x02, // LOAD_METHOD 'reset' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x23, // LOAD_GLOBAL 'Cmd' + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x03, // LOAD_CONST_SMALL_INT 131 + 0xbc, // LOAD_FAST 12 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__msg_authenticate = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2__msg_authenticate, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 374, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 19, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 159, + .line_info = fun_data_apps_webauthn_fido2__msg_authenticate + 9, + .line_info_top = fun_data_apps_webauthn_fido2__msg_authenticate + 54, + .opcodes = fun_data_apps_webauthn_fido2__msg_authenticate + 54, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__msg_authenticate_sign +static const byte fun_data_apps_webauthn_fido2__msg_authenticate_sign[123] = { + 0x83,0x10,0x24, // prelude + 0x81,0x23,0x82,0x45,0x75,0x82,0x46, // names: _msg_authenticate_sign, challenge, rp_id_hash, cred + 0xd0,0x6b,0x69,0x27,0x6c,0x6d,0x32,0x26,0x24,0x33,0x47, // code info + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc3, // STORE_FAST 3 + 0xb2, // LOAD_FAST 2 + 0x14,0x81,0x24, // LOAD_METHOD 'next_signature_counter' + 0x36,0x00, // CALL_METHOD 0 + 0xc4, // STORE_FAST 4 + 0x12,0x03, // LOAD_GLOBAL 'ustruct' + 0x14,0x81,0x25, // LOAD_METHOD 'pack' + 0x10,0x81,0x26, // LOAD_CONST_STRING '>L' + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0xc5, // STORE_FAST 5 + 0xb2, // LOAD_FAST 2 + 0x14,0x81,0x18, // LOAD_METHOD 'sign' + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x2a,0x04, // BUILD_TUPLE 4 + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0x12,0x54, // LOAD_GLOBAL 'make_struct' + 0x12,0x4b, // LOAD_GLOBAL '_resp_cmd_authenticate' + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc7, // STORE_FAST 7 + 0xc8, // STORE_FAST 8 + 0xb3, // LOAD_FAST 3 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xb8, // LOAD_FAST 8 + 0x18,0x4c, // STORE_ATTR 'flags' + 0xb4, // LOAD_FAST 4 + 0xb8, // LOAD_FAST 8 + 0x18,0x4d, // STORE_ATTR 'ctr' + 0x12,0x0d, // LOAD_GLOBAL 'utils' + 0x14,0x5a, // LOAD_METHOD 'memcpy' + 0xb8, // LOAD_FAST 8 + 0x13,0x46, // LOAD_ATTR 'sig' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb6, // LOAD_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x36,0x05, // CALL_METHOD 5 + 0x59, // POP_TOP + 0x22,0x82,0xa0,0x00, // LOAD_CONST_SMALL_INT 36864 + 0xb8, // LOAD_FAST 8 + 0x18,0x47, // STORE_ATTR 'status' + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__msg_authenticate_sign = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_webauthn_fido2__msg_authenticate_sign, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 123, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 17, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 163, + .line_info = fun_data_apps_webauthn_fido2__msg_authenticate_sign + 10, + .line_info_top = fun_data_apps_webauthn_fido2__msg_authenticate_sign + 21, + .opcodes = fun_data_apps_webauthn_fido2__msg_authenticate_sign + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_msg_error +static const byte fun_data_apps_webauthn_fido2_msg_error[29] = { + 0x42,0x0e, // prelude + 0x81,0x27,0x35,0x81,0x7a, // names: msg_error, cid, code + 0xd0,0x7f, // code info + 0x12,0x23, // LOAD_GLOBAL 'Cmd' + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x03, // LOAD_CONST_SMALL_INT 131 + 0x12,0x03, // LOAD_GLOBAL 'ustruct' + 0x14,0x81,0x25, // LOAD_METHOD 'pack' + 0x10,0x81,0x28, // LOAD_CONST_STRING '>H' + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_msg_error = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2_msg_error, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 167, + .line_info = fun_data_apps_webauthn_fido2_msg_error + 7, + .line_info_top = fun_data_apps_webauthn_fido2_msg_error + 9, + .opcodes = fun_data_apps_webauthn_fido2_msg_error + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_cmd_error +static const byte fun_data_apps_webauthn_fido2_cmd_error[29] = { + 0x42,0x0e, // prelude + 0x81,0x29,0x35,0x81,0x7a, // names: cmd_error, cid, code + 0xd0,0x83, // code info + 0x12,0x23, // LOAD_GLOBAL 'Cmd' + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x3f, // LOAD_CONST_SMALL_INT 191 + 0x12,0x03, // LOAD_GLOBAL 'ustruct' + 0x14,0x81,0x25, // LOAD_METHOD 'pack' + 0x10,0x81,0x2a, // LOAD_CONST_STRING '>B' + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_cmd_error = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2_cmd_error, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 169, + .line_info = fun_data_apps_webauthn_fido2_cmd_error + 7, + .line_info_top = fun_data_apps_webauthn_fido2_cmd_error + 9, + .opcodes = fun_data_apps_webauthn_fido2_cmd_error + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_cbor_error +static const byte fun_data_apps_webauthn_fido2_cbor_error[29] = { + 0x42,0x0e, // prelude + 0x81,0x2b,0x35,0x81,0x7a, // names: cbor_error, cid, code + 0xd0,0x87, // code info + 0x12,0x23, // LOAD_GLOBAL 'Cmd' + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x10, // LOAD_CONST_SMALL_INT 144 + 0x12,0x03, // LOAD_GLOBAL 'ustruct' + 0x14,0x81,0x25, // LOAD_METHOD 'pack' + 0x10,0x81,0x2a, // LOAD_CONST_STRING '>B' + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_cbor_error = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2_cbor_error, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 171, + .line_info = fun_data_apps_webauthn_fido2_cbor_error + 7, + .line_info_top = fun_data_apps_webauthn_fido2_cbor_error + 9, + .opcodes = fun_data_apps_webauthn_fido2_cbor_error + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_credentials_from_descriptor_list +static const byte fun_data_apps_webauthn_fido2_credentials_from_descriptor_list[115] = { + 0xfe,0x40,0x26, // prelude + 0x81,0x2c,0x82,0x47,0x75, // names: credentials_from_descriptor_list, descriptor_list, rp_id_hash + 0xd0,0x8d,0x25,0x26,0x2b,0x24,0x27,0x42,0x26,0x2b,0x24,0x22,0x54,0x47, // code info + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x57, // FOR_ITER 87 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x10,0x81,0x2d, // LOAD_CONST_STRING 'type' + 0x55, // LOAD_SUBSCR + 0xc3, // STORE_FAST 3 + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0xb3, // LOAD_FAST 3 + 0x12,0x82,0x48, // LOAD_GLOBAL 'str' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0x12,0x82,0x49, // LOAD_GLOBAL 'TypeError' + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x10,0x81,0x2e, // LOAD_CONST_STRING 'public-key' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x1f, // JUMP -33 + 0xb2, // LOAD_FAST 2 + 0x10,0x81,0x1c, // LOAD_CONST_STRING 'id' + 0x55, // LOAD_SUBSCR + 0xc4, // STORE_FAST 4 + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0xb4, // LOAD_FAST 4 + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0x12,0x82,0x49, // LOAD_GLOBAL 'TypeError' + 0x65, // RAISE_OBJ + 0x48,0x0c, // SETUP_EXCEPT 12 + 0x12,0x1d, // LOAD_GLOBAL 'Credential' + 0x14,0x81,0x21, // LOAD_METHOD 'from_bytes' + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x36,0x02, // CALL_METHOD 2 + 0xc5, // STORE_FAST 5 + 0x4a,0x0f, // POP_EXCEPT_JUMP 15 + 0x57, // DUP_TOP + 0x12,0x82,0x33, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x59, // POP_TOP + 0x40,0xb1,0x7f,0x01, // UNWIND_JUMP -79 + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb5, // LOAD_FAST 5 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x42,0xa7,0x7f, // JUMP -89 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_credentials_from_descriptor_list = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2_credentials_from_descriptor_list, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 115, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 1, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 172, + .line_info = fun_data_apps_webauthn_fido2_credentials_from_descriptor_list + 8, + .line_info_top = fun_data_apps_webauthn_fido2_credentials_from_descriptor_list + 22, + .opcodes = fun_data_apps_webauthn_fido2_credentials_from_descriptor_list + 22, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__distinguishable_cred_list +static const byte fun_data_apps_webauthn_fido2__distinguishable_cred_list[93] = { + 0x79,0x1e, // prelude + 0x81,0x2f,0x82,0x43, // names: _distinguishable_cred_list, credentials + 0xd0,0xa0,0x40,0x23,0x25,0x2d,0x6f,0x2f,0x24,0x48,0x2b, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x43, // FOR_ITER 67 + 0xc2, // STORE_FAST 2 + 0x12,0x82,0x4a, // LOAD_GLOBAL 'enumerate' + 0xb1, // LOAD_FAST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x2e, // FOR_ITER 46 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc3, // STORE_FAST 3 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x14,0x81,0x30, // LOAD_METHOD 'account_name' + 0x36,0x00, // CALL_METHOD 0 + 0xb2, // LOAD_FAST 2 + 0x14,0x81,0x30, // LOAD_METHOD 'account_name' + 0x36,0x00, // CALL_METHOD 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0xb2, // LOAD_FAST 2 + 0x12,0x1e, // LOAD_GLOBAL 'Fido2Credential' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0xd7, // BINARY_OP 0 __lt__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb2, // LOAD_FAST 2 + 0xb1, // LOAD_FAST 1 + 0xb3, // LOAD_FAST 3 + 0x56, // STORE_SUBSCR + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x42,0x4a, // JUMP 10 + 0x42,0x10, // JUMP -48 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x31, // LOAD_METHOD 'append' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0xbb,0x7f, // JUMP -69 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__distinguishable_cred_list = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2__distinguishable_cred_list, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 93, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 16, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 175, + .line_info = fun_data_apps_webauthn_fido2__distinguishable_cred_list + 6, + .line_info_top = fun_data_apps_webauthn_fido2__distinguishable_cred_list + 17, + .opcodes = fun_data_apps_webauthn_fido2__distinguishable_cred_list + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__algorithms_from_pub_key_cred_params +static const byte fun_data_apps_webauthn_fido2__algorithms_from_pub_key_cred_params[90] = { + 0x59,0x22, // prelude + 0x81,0x32,0x82,0x4b, // names: _algorithms_from_pub_key_cred_params, pub_key_cred_params + 0xd0,0xb1,0x23,0x25,0x26,0x2b,0x24,0x27,0x42,0x26,0x2b,0x24,0x2a, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x5f, // GET_ITER_STACK + 0x4b,0x3e, // FOR_ITER 62 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x10,0x81,0x2d, // LOAD_CONST_STRING 'type' + 0x55, // LOAD_SUBSCR + 0xc3, // STORE_FAST 3 + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0xb3, // LOAD_FAST 3 + 0x12,0x82,0x48, // LOAD_GLOBAL 'str' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0x12,0x82,0x49, // LOAD_GLOBAL 'TypeError' + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0x10,0x81,0x2e, // LOAD_CONST_STRING 'public-key' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x1f, // JUMP -33 + 0xb2, // LOAD_FAST 2 + 0x10,0x81,0x33, // LOAD_CONST_STRING 'alg' + 0x55, // LOAD_SUBSCR + 0xc4, // STORE_FAST 4 + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0xb4, // LOAD_FAST 4 + 0x12,0x82,0x4c, // LOAD_GLOBAL 'int' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x44, // POP_JUMP_IF_TRUE 4 + 0x12,0x82,0x49, // LOAD_GLOBAL 'TypeError' + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x31, // LOAD_METHOD 'append' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0x42,0x00, // JUMP -64 + 0xb1, // LOAD_FAST 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__algorithms_from_pub_key_cred_params = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2__algorithms_from_pub_key_cred_params, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 90, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 178, + .line_info = fun_data_apps_webauthn_fido2__algorithms_from_pub_key_cred_params + 6, + .line_info_top = fun_data_apps_webauthn_fido2__algorithms_from_pub_key_cred_params + 19, + .opcodes = fun_data_apps_webauthn_fido2__algorithms_from_pub_key_cred_params + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__cbor_make_credential +static const byte fun_data_apps_webauthn_fido2__cbor_make_credential[83] = { + 0x32,0x1e, // prelude + 0x81,0x34,0x82,0x0a,0x82,0x0c, // names: _cbor_make_credential, req, dialog_mgr + 0xd0,0xc1,0x29,0x4a,0x4a,0x2a,0x29,0x42,0x4c, // code info + 0x12,0x09, // LOAD_GLOBAL 'config' + 0x14,0x81,0x0f, // LOAD_METHOD 'is_unlocked' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x81,0x35, // LOAD_GLOBAL '_cbor_make_credential_process' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc2, // STORE_FAST 2 + 0x42,0x4a, // JUMP 10 + 0x12,0x2b, // LOAD_GLOBAL 'Fido2Unlock' + 0x12,0x81,0x35, // LOAD_GLOBAL '_cbor_make_credential_process' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc2, // STORE_FAST 2 + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0xb2, // LOAD_FAST 2 + 0x12,0x25, // LOAD_GLOBAL 'State' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x11, // LOAD_METHOD 'set_state' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x81,0x29, // LOAD_GLOBAL 'cmd_error' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x42,0x42, // JUMP 2 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__cbor_make_credential = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2__cbor_make_credential, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 83, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 180, + .line_info = fun_data_apps_webauthn_fido2__cbor_make_credential + 8, + .line_info_top = fun_data_apps_webauthn_fido2__cbor_make_credential + 17, + .opcodes = fun_data_apps_webauthn_fido2__cbor_make_credential + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__cbor_make_credential_process +static const byte fun_data_apps_webauthn_fido2__cbor_make_credential_process[737] = { + 0xce,0x10,0x9e,0x02, // prelude + 0x81,0x35,0x82,0x0a,0x82,0x0c, // names: _cbor_make_credential_process, req, dialog_mgr + 0xd0,0xd0,0x4b,0x44,0x2a,0x40,0x4a,0x23,0x30,0x24,0x26,0x6e,0x24,0x25,0x25,0x24,0x2e,0x29,0x2e,0x2d,0x67,0x2a,0x28,0x4a,0x6b,0x24,0x2a,0x29,0x25,0x29,0x28,0x29,0x25,0x29,0x4b,0x68,0x2a,0x2b,0x6c,0x2c,0x69,0x4f,0x52,0x52,0x4b,0x28,0x31,0x4b,0x4a,0x6e,0x20,0x23,0x65,0x65,0x26,0x65,0x20,0x29,0x35,0x35,0x2c,0x2b,0x4c,0x68,0x27,0x48,0x25,0x48,0x4d,0x6a,0x25,0x69,0x43, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x72, // LOAD_CONST_STRING 'knownapps' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1c, // IMPORT_NAME '' + 0x1c,0x72, // IMPORT_FROM 'knownapps' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xc3, // STORE_FAST 3 + 0x12,0x82,0x29, // LOAD_GLOBAL 'storage_device' + 0x14,0x81,0x12, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x4a, // POP_JUMP_IF_TRUE 10 + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb3, // LOAD_FAST 3 + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x48,0xae,0x02, // SETUP_EXCEPT 302 + 0x12,0x19, // LOAD_GLOBAL 'cbor' + 0x14,0x81,0x36, // LOAD_METHOD 'decode' + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'data' + 0x10,0x81,0x37, // LOAD_CONST_STRING 'offset' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x36,0x82,0x01, // CALL_METHOD 257 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x10,0x81,0x1c, // LOAD_CONST_STRING 'id' + 0x55, // LOAD_SUBSCR + 0xc6, // STORE_FAST 6 + 0x12,0x11, // LOAD_GLOBAL 'hashlib' + 0x14,0x81,0x16, // LOAD_METHOD 'sha256' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x81,0x19, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc7, // STORE_FAST 7 + 0xb4, // LOAD_FAST 4 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x55, // LOAD_SUBSCR + 0xc8, // STORE_FAST 8 + 0x12,0x1e, // LOAD_GLOBAL 'Fido2Credential' + 0x34,0x00, // CALL_FUNCTION 0 + 0xc9, // STORE_FAST 9 + 0xb6, // LOAD_FAST 6 + 0xb9, // LOAD_FAST 9 + 0x18,0x81,0x38, // STORE_ATTR 'rp_id' + 0xb7, // LOAD_FAST 7 + 0xb9, // LOAD_FAST 9 + 0x18,0x75, // STORE_ATTR 'rp_id_hash' + 0xb5, // LOAD_FAST 5 + 0x14,0x81,0x39, // LOAD_METHOD 'get' + 0x10,0x81,0x3a, // LOAD_CONST_STRING 'name' + 0x51, // LOAD_CONST_NONE + 0x36,0x02, // CALL_METHOD 2 + 0xb9, // LOAD_FAST 9 + 0x18,0x81,0x3b, // STORE_ATTR 'rp_name' + 0xb8, // LOAD_FAST 8 + 0x10,0x81,0x1c, // LOAD_CONST_STRING 'id' + 0x55, // LOAD_SUBSCR + 0xb9, // LOAD_FAST 9 + 0x18,0x81,0x3c, // STORE_ATTR 'user_id' + 0xb8, // LOAD_FAST 8 + 0x14,0x81,0x39, // LOAD_METHOD 'get' + 0x10,0x81,0x3a, // LOAD_CONST_STRING 'name' + 0x51, // LOAD_CONST_NONE + 0x36,0x02, // CALL_METHOD 2 + 0xb9, // LOAD_FAST 9 + 0x18,0x81,0x3d, // STORE_ATTR 'user_name' + 0xb8, // LOAD_FAST 8 + 0x14,0x81,0x39, // LOAD_METHOD 'get' + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x51, // LOAD_CONST_NONE + 0x36,0x02, // CALL_METHOD 2 + 0xb9, // LOAD_FAST 9 + 0x18,0x81,0x3e, // STORE_ATTR 'user_display_name' + 0xb9, // LOAD_FAST 9 + 0x14,0x81,0x3f, // LOAD_METHOD 'truncate_names' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0x14,0x81,0x39, // LOAD_METHOD 'get' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x2b,0x00, // BUILD_LIST 0 + 0x36,0x02, // CALL_METHOD 2 + 0xca, // STORE_FAST 10 + 0x12,0x81,0x2c, // LOAD_GLOBAL 'credentials_from_descriptor_list' + 0xba, // LOAD_FAST 10 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0xcb, // STORE_FAST 11 + 0x12,0x0d, // LOAD_GLOBAL 'utils' + 0x14,0x81,0x40, // LOAD_METHOD 'is_empty_iterator' + 0xbb, // LOAD_FAST 11 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x4b, // POP_JUMP_IF_TRUE 11 + 0x12,0x2d, // LOAD_GLOBAL 'Fido2ConfirmExcluded' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0xb9, // LOAD_FAST 9 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE + 0xb4, // LOAD_FAST 4 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x55, // LOAD_SUBSCR + 0xcc, // STORE_FAST 12 + 0x12,0x81,0x32, // LOAD_GLOBAL '_algorithms_from_pub_key_cred_params' + 0xbc, // LOAD_FAST 12 + 0x34,0x01, // CALL_FUNCTION 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x42, // FOR_ITER 66 + 0xcd, // STORE_FAST 13 + 0xbd, // LOAD_FAST 13 + 0x12,0x1b, // LOAD_GLOBAL 'common' + 0x13,0x81,0x41, // LOAD_ATTR 'COSE_ALG_ES256' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0xbd, // LOAD_FAST 13 + 0xb9, // LOAD_FAST 9 + 0x18,0x81,0x42, // STORE_ATTR 'algorithm' + 0x12,0x1b, // LOAD_GLOBAL 'common' + 0x13,0x81,0x43, // LOAD_ATTR 'COSE_CURVE_P256' + 0xb9, // LOAD_FAST 9 + 0x18,0x81,0x44, // STORE_ATTR 'curve' + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x42,0x6c, // JUMP 44 + 0x42,0x5f, // JUMP 31 + 0xbd, // LOAD_FAST 13 + 0x12,0x1b, // LOAD_GLOBAL 'common' + 0x13,0x81,0x45, // LOAD_ATTR 'COSE_ALG_EDDSA' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0xbd, // LOAD_FAST 13 + 0xb9, // LOAD_FAST 9 + 0x18,0x81,0x42, // STORE_ATTR 'algorithm' + 0x12,0x1b, // LOAD_GLOBAL 'common' + 0x13,0x81,0x46, // LOAD_ATTR 'COSE_CURVE_ED25519' + 0xb9, // LOAD_FAST 9 + 0x18,0x81,0x44, // STORE_ATTR 'curve' + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x42,0x4d, // JUMP 13 + 0x42,0x40, // JUMP 0 + 0x42,0xbc,0x7f, // JUMP -68 + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb3, // LOAD_FAST 3 + 0xa6, // LOAD_CONST_SMALL_INT 38 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb4, // LOAD_FAST 4 + 0x14,0x81,0x39, // LOAD_METHOD 'get' + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x2c,0x00, // BUILD_MAP 0 + 0x36,0x02, // CALL_METHOD 2 + 0xce, // STORE_FAST 14 + 0xbe, // LOAD_FAST 14 + 0x14,0x81,0x39, // LOAD_METHOD 'get' + 0x10,0x81,0x47, // LOAD_CONST_STRING 'rk' + 0x50, // LOAD_CONST_FALSE + 0x36,0x02, // CALL_METHOD 2 + 0xcf, // STORE_FAST 15 + 0xbe, // LOAD_FAST 14 + 0x14,0x81,0x39, // LOAD_METHOD 'get' + 0x10,0x81,0x48, // LOAD_CONST_STRING 'uv' + 0x50, // LOAD_CONST_FALSE + 0x36,0x02, // CALL_METHOD 2 + 0x26,0x10, // STORE_FAST_N 16 + 0xb4, // LOAD_FAST 4 + 0x14,0x81,0x39, // LOAD_METHOD 'get' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x2c,0x00, // BUILD_MAP 0 + 0x36,0x02, // CALL_METHOD 2 + 0x14,0x81,0x39, // LOAD_METHOD 'get' + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x50, // LOAD_CONST_FALSE + 0x36,0x02, // CALL_METHOD 2 + 0xb9, // LOAD_FAST 9 + 0x18,0x81,0x49, // STORE_ATTR 'hmac_secret' + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0x26,0x11, // STORE_FAST_N 17 + 0x4a,0x37, // POP_EXCEPT_JUMP 55 + 0x57, // DUP_TOP + 0x12,0x82,0x49, // LOAD_GLOBAL 'TypeError' + 0xdf, // BINARY_OP 8 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x59, // POP_TOP + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb3, // LOAD_FAST 3 + 0x91, // LOAD_CONST_SMALL_INT 17 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x4a,0x25, // POP_EXCEPT_JUMP 37 + 0x57, // DUP_TOP + 0x12,0x82,0x4d, // LOAD_GLOBAL 'KeyError' + 0xdf, // BINARY_OP 8 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x59, // POP_TOP + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb3, // LOAD_FAST 3 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x4a,0x13, // POP_EXCEPT_JUMP 19 + 0x57, // DUP_TOP + 0x12,0x82,0x33, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x59, // POP_TOP + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb3, // LOAD_FAST 3 + 0x92, // LOAD_CONST_SMALL_INT 18 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb2, // LOAD_FAST 2 + 0x14,0x74, // LOAD_METHOD 'by_rp_id_hash' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0x26,0x12, // STORE_FAST_N 18 + 0x24,0x12, // LOAD_FAST_N 18 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x55, // POP_JUMP_IF_FALSE 21 + 0x24,0x12, // LOAD_FAST_N 18 + 0x13,0x81,0x4a, // LOAD_ATTR 'use_sign_count' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x24,0x12, // LOAD_FAST_N 18 + 0x13,0x81,0x4a, // LOAD_ATTR 'use_sign_count' + 0xb9, // LOAD_FAST 9 + 0x18,0x81,0x4a, // STORE_ATTR 'use_sign_count' + 0x42,0x4a, // JUMP 10 + 0x12,0x82,0x4e, // LOAD_GLOBAL 'bool' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb9, // LOAD_FAST 9 + 0x18,0x81,0x4a, // STORE_ATTR 'use_sign_count' + 0x24,0x12, // LOAD_FAST_N 18 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x5f, // POP_JUMP_IF_FALSE 31 + 0x24,0x12, // LOAD_FAST_N 18 + 0x13,0x81,0x4b, // LOAD_ATTR 'use_compact' + 0x44,0x58, // POP_JUMP_IF_FALSE 24 + 0xbf, // LOAD_FAST 15 + 0x43,0x45, // POP_JUMP_IF_TRUE 5 + 0x51, // LOAD_CONST_NONE + 0xb9, // LOAD_FAST 9 + 0x18,0x81,0x3c, // STORE_ATTR 'user_id' + 0x51, // LOAD_CONST_NONE + 0xb9, // LOAD_FAST 9 + 0x18,0x81,0x3b, // STORE_ATTR 'rp_name' + 0xb9, // LOAD_FAST 9 + 0x13,0x81,0x3d, // LOAD_ATTR 'user_name' + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0x51, // LOAD_CONST_NONE + 0xb9, // LOAD_FAST 9 + 0x18,0x81,0x3e, // STORE_ATTR 'user_display_name' + 0xb9, // LOAD_FAST 9 + 0x14,0x81,0x4c, // LOAD_METHOD 'check_data_types' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0xcd,0x80, // POP_JUMP_IF_FALSE 77 + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0xb8, // LOAD_FAST 8 + 0x14,0x81,0x39, // LOAD_METHOD 'get' + 0x10,0x81,0x4d, // LOAD_CONST_STRING 'icon' + 0x10,0x1c, // LOAD_CONST_STRING '' + 0x36,0x02, // CALL_METHOD 2 + 0x12,0x82,0x48, // LOAD_GLOBAL 'str' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x78, // POP_JUMP_IF_FALSE 56 + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0xb5, // LOAD_FAST 5 + 0x14,0x81,0x39, // LOAD_METHOD 'get' + 0x10,0x81,0x4d, // LOAD_CONST_STRING 'icon' + 0x10,0x1c, // LOAD_CONST_STRING '' + 0x36,0x02, // CALL_METHOD 2 + 0x12,0x82,0x48, // LOAD_GLOBAL 'str' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x63, // POP_JUMP_IF_FALSE 35 + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0x24,0x11, // LOAD_FAST_N 17 + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0xbf, // LOAD_FAST 15 + 0x12,0x82,0x4e, // LOAD_GLOBAL 'bool' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0x24,0x10, // LOAD_FAST_N 16 + 0x12,0x82,0x4e, // LOAD_GLOBAL 'bool' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb3, // LOAD_FAST 3 + 0x91, // LOAD_CONST_SMALL_INT 17 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x10,0x81,0x4e, // LOAD_CONST_STRING 'up' + 0xbe, // LOAD_FAST 14 + 0xdd, // BINARY_OP 6 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb3, // LOAD_FAST 3 + 0xac, // LOAD_CONST_SMALL_INT 44 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xbf, // LOAD_FAST 15 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x42,0x48, // JUMP 8 + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb3, // LOAD_FAST 3 + 0xab, // LOAD_CONST_SMALL_INT 43 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x24,0x10, // LOAD_FAST_N 16 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x09, // LOAD_GLOBAL 'config' + 0x14,0x81,0x4f, // LOAD_METHOD 'has_pin' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x4a, // POP_JUMP_IF_TRUE 10 + 0x12,0x2f, // LOAD_GLOBAL 'Fido2ConfirmNoPin' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xb4, // LOAD_FAST 4 + 0xdd, // BINARY_OP 6 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb3, // LOAD_FAST 3 + 0x22,0x33, // LOAD_CONST_SMALL_INT 51 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x12,0x2c, // LOAD_GLOBAL 'Fido2ConfirmMakeCredential' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x24,0x11, // LOAD_FAST_N 17 + 0xb9, // LOAD_FAST 9 + 0xbf, // LOAD_FAST 15 + 0x24,0x10, // LOAD_FAST_N 16 + 0x34,0x06, // CALL_FUNCTION 6 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__cbor_make_credential_process = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2__cbor_make_credential_process, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 737, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 26, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 181, + .line_info = fun_data_apps_webauthn_fido2__cbor_make_credential_process + 10, + .line_info_top = fun_data_apps_webauthn_fido2__cbor_make_credential_process + 83, + .opcodes = fun_data_apps_webauthn_fido2__cbor_make_credential_process + 83, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__cbor_make_credential_sign +static const byte fun_data_apps_webauthn_fido2__cbor_make_credential_sign[288] = { + 0x8b,0x10,0x58, // prelude + 0x81,0x50,0x82,0x4f,0x82,0x46,0x82,0x14, // names: _cbor_make_credential_sign, client_data_hash, cred, user_verification + 0xe0,0x4d,0x4b,0x24,0x23,0x64,0x20,0x1f,0x64,0x23,0x26,0x2e,0x46,0x47,0x20,0x23,0x29,0x70,0x60,0x29,0x2f,0x47,0x42,0x23,0x2b,0x51,0x2a,0x22,0x29,0x24,0x6a,0x20,0x25,0x22,0x25,0x23, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x72, // LOAD_CONST_STRING 'knownapps' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1c, // IMPORT_NAME '' + 0x1c,0x72, // IMPORT_FROM 'knownapps' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x22,0x80,0x41, // LOAD_CONST_SMALL_INT 65 + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb4, // LOAD_FAST 4 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xe0, // BINARY_OP 9 __ior__ + 0xc4, // STORE_FAST 4 + 0x12,0x82,0x30, // LOAD_GLOBAL '_AAGUID' + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x1c, // LOAD_ATTR 'id' + 0x34,0x01, // CALL_FUNCTION 1 + 0x14,0x81,0x51, // LOAD_METHOD 'to_bytes' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x81,0x52, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0xf2, // BINARY_OP 27 __add__ + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x1c, // LOAD_ATTR 'id' + 0xf2, // BINARY_OP 27 __add__ + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x1d, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0xf2, // BINARY_OP 27 __add__ + 0xc5, // STORE_FAST 5 + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0xc6, // STORE_FAST 6 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x49, // LOAD_ATTR 'hmac_secret' + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x19, // LOAD_GLOBAL 'cbor' + 0x14,0x81,0x53, // LOAD_METHOD 'encode' + 0x2c,0x01, // BUILD_MAP 1 + 0x52, // LOAD_CONST_TRUE + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x62, // STORE_MAP + 0x36,0x01, // CALL_METHOD 1 + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xe0, // BINARY_OP 9 __ior__ + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x24, // LOAD_METHOD 'next_signature_counter' + 0x36,0x00, // CALL_METHOD 0 + 0xc7, // STORE_FAST 7 + 0xb1, // LOAD_FAST 1 + 0x13,0x75, // LOAD_ATTR 'rp_id_hash' + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0xb4, // LOAD_FAST 4 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0xb7, // LOAD_FAST 7 + 0x14,0x81,0x51, // LOAD_METHOD 'to_bytes' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x10,0x81,0x52, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0xf2, // BINARY_OP 27 __add__ + 0xb5, // LOAD_FAST 5 + 0xf2, // BINARY_OP 27 __add__ + 0xb6, // LOAD_FAST 6 + 0xf2, // BINARY_OP 27 __add__ + 0xc8, // STORE_FAST 8 + 0xb3, // LOAD_FAST 3 + 0x14,0x74, // LOAD_METHOD 'by_rp_id_hash' + 0xb1, // LOAD_FAST 1 + 0x13,0x75, // LOAD_ATTR 'rp_id_hash' + 0x36,0x01, // CALL_METHOD 1 + 0xc9, // STORE_FAST 9 + 0xb9, // LOAD_FAST 9 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x50, // POP_JUMP_IF_FALSE 16 + 0xb9, // LOAD_FAST 9 + 0x13,0x81,0x54, // LOAD_ATTR 'use_self_attestation' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0xb9, // LOAD_FAST 9 + 0x13,0x81,0x54, // LOAD_ATTR 'use_self_attestation' + 0xca, // STORE_FAST 10 + 0x42,0x42, // JUMP 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0x44,0x5c, // POP_JUMP_IF_FALSE 28 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x18, // LOAD_METHOD 'sign' + 0xb8, // LOAD_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0xcb, // STORE_FAST 11 + 0x2c,0x02, // BUILD_MAP 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x42, // LOAD_ATTR 'algorithm' + 0x10,0x81,0x33, // LOAD_CONST_STRING 'alg' + 0x62, // STORE_MAP + 0xbb, // LOAD_FAST 11 + 0x10,0x46, // LOAD_CONST_STRING 'sig' + 0x62, // STORE_MAP + 0xcc, // STORE_FAST 12 + 0x42,0x63, // JUMP 35 + 0x12,0x81,0x14, // LOAD_GLOBAL 'basic_attestation_sign' + 0xb8, // LOAD_FAST 8 + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0xcb, // STORE_FAST 11 + 0x2c,0x03, // BUILD_MAP 3 + 0x12,0x1b, // LOAD_GLOBAL 'common' + 0x13,0x81,0x41, // LOAD_ATTR 'COSE_ALG_ES256' + 0x10,0x81,0x33, // LOAD_CONST_STRING 'alg' + 0x62, // STORE_MAP + 0xbb, // LOAD_FAST 11 + 0x10,0x46, // LOAD_CONST_STRING 'sig' + 0x62, // STORE_MAP + 0x12,0x82,0x2b, // LOAD_GLOBAL '_FIDO_ATT_CERT' + 0x2b,0x01, // BUILD_LIST 1 + 0x10,0x81,0x55, // LOAD_CONST_STRING 'x5c' + 0x62, // STORE_MAP + 0xcc, // STORE_FAST 12 + 0x12,0x19, // LOAD_GLOBAL 'cbor' + 0x14,0x81,0x53, // LOAD_METHOD 'encode' + 0x2c,0x03, // BUILD_MAP 3 + 0x10,0x81,0x56, // LOAD_CONST_STRING 'packed' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x62, // STORE_MAP + 0xb8, // LOAD_FAST 8 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x62, // STORE_MAP + 0xbc, // LOAD_FAST 12 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x62, // STORE_MAP + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__cbor_make_credential_sign = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_webauthn_fido2__cbor_make_credential_sign, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 288, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 208, + .line_info = fun_data_apps_webauthn_fido2__cbor_make_credential_sign + 11, + .line_info_top = fun_data_apps_webauthn_fido2__cbor_make_credential_sign + 47, + .opcodes = fun_data_apps_webauthn_fido2__cbor_make_credential_sign + 47, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__cbor_get_assertion +static const byte fun_data_apps_webauthn_fido2__cbor_get_assertion[83] = { + 0x32,0x1e, // prelude + 0x81,0x57,0x82,0x0a,0x82,0x0c, // names: _cbor_get_assertion, req, dialog_mgr + 0xe0,0x84,0x29,0x4a,0x4a,0x2a,0x29,0x42,0x4c, // code info + 0x12,0x09, // LOAD_GLOBAL 'config' + 0x14,0x81,0x0f, // LOAD_METHOD 'is_unlocked' + 0x36,0x00, // CALL_METHOD 0 + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0x12,0x81,0x58, // LOAD_GLOBAL '_cbor_get_assertion_process' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc2, // STORE_FAST 2 + 0x42,0x4a, // JUMP 10 + 0x12,0x2b, // LOAD_GLOBAL 'Fido2Unlock' + 0x12,0x81,0x58, // LOAD_GLOBAL '_cbor_get_assertion_process' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0xc2, // STORE_FAST 2 + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0xb2, // LOAD_FAST 2 + 0x12,0x25, // LOAD_GLOBAL 'State' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x11, // LOAD_METHOD 'set_state' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x81,0x29, // LOAD_GLOBAL 'cmd_error' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x42,0x42, // JUMP 2 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__cbor_get_assertion = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2__cbor_get_assertion, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 83, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 215, + .line_info = fun_data_apps_webauthn_fido2__cbor_get_assertion + 8, + .line_info_top = fun_data_apps_webauthn_fido2__cbor_get_assertion + 17, + .opcodes = fun_data_apps_webauthn_fido2__cbor_get_assertion + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__cbor_get_assertion_process +static const byte fun_data_apps_webauthn_fido2__cbor_get_assertion_process[576] = { + 0xd2,0x12,0x82,0x02, // prelude + 0x81,0x58,0x82,0x0a,0x82,0x0c, // names: _cbor_get_assertion_process, req, dialog_mgr + 0xe0,0x93,0x4e,0x44,0x2a,0x40,0x4a,0x23,0x30,0x24,0x4e,0x2a,0x20,0x43,0x28,0x27,0x25,0x28,0x27,0x64,0x20,0x6a,0x62,0x67,0x25,0x69,0x2a,0x2b,0x6b,0x52,0x4f,0x52,0x52,0x6b,0x20,0x33,0x2c,0x2b,0x4b,0x68,0x27,0x48,0x4c,0x4a,0x20,0x49,0x43,0x23,0x4b,0x73,0x22,0x66,0x6b,0x60,0x1f,0x62,0x40,0x76,0x43, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x81,0x59, // LOAD_CONST_STRING 'find_by_rp_id_hash' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x81,0x5a, // IMPORT_NAME 'resident_credentials' + 0x1c,0x81,0x59, // IMPORT_FROM 'find_by_rp_id_hash' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xc3, // STORE_FAST 3 + 0x12,0x82,0x29, // LOAD_GLOBAL 'storage_device' + 0x14,0x81,0x12, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x4a, // POP_JUMP_IF_TRUE 10 + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb3, // LOAD_FAST 3 + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x48,0xb0,0x01, // SETUP_EXCEPT 176 + 0x12,0x19, // LOAD_GLOBAL 'cbor' + 0x14,0x81,0x36, // LOAD_METHOD 'decode' + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'data' + 0x10,0x81,0x37, // LOAD_CONST_STRING 'offset' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x36,0x82,0x01, // CALL_METHOD 257 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0x12,0x11, // LOAD_GLOBAL 'hashlib' + 0x14,0x81,0x16, // LOAD_METHOD 'sha256' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x81,0x19, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc6, // STORE_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x14,0x81,0x39, // LOAD_METHOD 'get' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x2b,0x00, // BUILD_LIST 0 + 0x36,0x02, // CALL_METHOD 2 + 0xc7, // STORE_FAST 7 + 0xb7, // LOAD_FAST 7 + 0x44,0x67, // POP_JUMP_IF_FALSE 39 + 0x12,0x81,0x2c, // LOAD_GLOBAL 'credentials_from_descriptor_list' + 0xb7, // LOAD_FAST 7 + 0xb6, // LOAD_FAST 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc9, // STORE_FAST 9 + 0x12,0x81,0x2f, // LOAD_GLOBAL '_distinguishable_cred_list' + 0xb9, // LOAD_FAST 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x5f, // GET_ITER_STACK + 0x4b,0x10, // FOR_ITER 16 + 0xca, // STORE_FAST 10 + 0xba, // LOAD_FAST 10 + 0x13,0x81,0x38, // LOAD_ATTR 'rp_id' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb5, // LOAD_FAST 5 + 0xba, // LOAD_FAST 10 + 0x18,0x81,0x38, // STORE_ATTR 'rp_id' + 0x42,0x2e, // JUMP -18 + 0x50, // LOAD_CONST_FALSE + 0xcb, // STORE_FAST 11 + 0x42,0x4c, // JUMP 12 + 0x12,0x82,0x50, // LOAD_GLOBAL 'list' + 0xb2, // LOAD_FAST 2 + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc8, // STORE_FAST 8 + 0x52, // LOAD_CONST_TRUE + 0xcb, // STORE_FAST 11 + 0xb8, // LOAD_FAST 8 + 0x14,0x81,0x5b, // LOAD_METHOD 'sort' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x86, // LOAD_CONST_SMALL_INT 6 + 0xb4, // LOAD_FAST 4 + 0xdd, // BINARY_OP 6 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb3, // LOAD_FAST 3 + 0x22,0x33, // LOAD_CONST_SMALL_INT 51 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb4, // LOAD_FAST 4 + 0x14,0x81,0x39, // LOAD_METHOD 'get' + 0x85, // LOAD_CONST_SMALL_INT 5 + 0x2c,0x00, // BUILD_MAP 0 + 0x36,0x02, // CALL_METHOD 2 + 0xcc, // STORE_FAST 12 + 0xbc, // LOAD_FAST 12 + 0x14,0x81,0x39, // LOAD_METHOD 'get' + 0x10,0x81,0x4e, // LOAD_CONST_STRING 'up' + 0x52, // LOAD_CONST_TRUE + 0x36,0x02, // CALL_METHOD 2 + 0xcd, // STORE_FAST 13 + 0xbc, // LOAD_FAST 12 + 0x14,0x81,0x39, // LOAD_METHOD 'get' + 0x10,0x81,0x48, // LOAD_CONST_STRING 'uv' + 0x50, // LOAD_CONST_FALSE + 0x36,0x02, // CALL_METHOD 2 + 0xce, // STORE_FAST 14 + 0xb4, // LOAD_FAST 4 + 0x14,0x81,0x39, // LOAD_METHOD 'get' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x2c,0x00, // BUILD_MAP 0 + 0x36,0x02, // CALL_METHOD 2 + 0x14,0x81,0x39, // LOAD_METHOD 'get' + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x51, // LOAD_CONST_NONE + 0x36,0x02, // CALL_METHOD 2 + 0xcf, // STORE_FAST 15 + 0xb4, // LOAD_FAST 4 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x55, // LOAD_SUBSCR + 0x26,0x10, // STORE_FAST_N 16 + 0x4a,0x37, // POP_EXCEPT_JUMP 55 + 0x57, // DUP_TOP + 0x12,0x82,0x49, // LOAD_GLOBAL 'TypeError' + 0xdf, // BINARY_OP 8 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x59, // POP_TOP + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb3, // LOAD_FAST 3 + 0x91, // LOAD_CONST_SMALL_INT 17 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x4a,0x25, // POP_EXCEPT_JUMP 37 + 0x57, // DUP_TOP + 0x12,0x82,0x4d, // LOAD_GLOBAL 'KeyError' + 0xdf, // BINARY_OP 8 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x59, // POP_TOP + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb3, // LOAD_FAST 3 + 0x94, // LOAD_CONST_SMALL_INT 20 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x4a,0x13, // POP_EXCEPT_JUMP 19 + 0x57, // DUP_TOP + 0x12,0x82,0x33, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x59, // POP_TOP + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb3, // LOAD_FAST 3 + 0x92, // LOAD_CONST_SMALL_INT 18 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0xbf, // LOAD_FAST 15 + 0x12,0x82,0x51, // LOAD_GLOBAL 'dict' + 0x12,0x81,0x2d, // LOAD_GLOBAL 'type' + 0x51, // LOAD_CONST_NONE + 0x34,0x01, // CALL_FUNCTION 1 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x62, // POP_JUMP_IF_FALSE 34 + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0x24,0x10, // LOAD_FAST_N 16 + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0xbd, // LOAD_FAST 13 + 0x12,0x82,0x4e, // LOAD_GLOBAL 'bool' + 0x34,0x02, // CALL_FUNCTION 2 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x82,0x3f, // LOAD_GLOBAL 'isinstance' + 0xbe, // LOAD_FAST 14 + 0x12,0x82,0x4e, // LOAD_GLOBAL 'bool' + 0x34,0x02, // CALL_FUNCTION 2 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb3, // LOAD_FAST 3 + 0x91, // LOAD_CONST_SMALL_INT 17 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x10,0x81,0x47, // LOAD_CONST_STRING 'rk' + 0xbc, // LOAD_FAST 12 + 0xdd, // BINARY_OP 6 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb3, // LOAD_FAST 3 + 0xac, // LOAD_CONST_SMALL_INT 44 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xbe, // LOAD_FAST 14 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x09, // LOAD_GLOBAL 'config' + 0x14,0x81,0x4f, // LOAD_METHOD 'has_pin' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x4a, // POP_JUMP_IF_TRUE 10 + 0x12,0x2f, // LOAD_GLOBAL 'Fido2ConfirmNoPin' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x12,0x82,0x4e, // LOAD_GLOBAL 'bool' + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x17,0x82,0x32, // STORE_GLOBAL '_last_auth_valid' + 0xb8, // LOAD_FAST 8 + 0x43,0x59, // POP_JUMP_IF_TRUE 25 + 0xbd, // LOAD_FAST 13 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x30, // LOAD_GLOBAL 'Fido2ConfirmNoCredentials' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0xb5, // LOAD_FAST 5 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb3, // LOAD_FAST 3 + 0xae, // LOAD_CONST_SMALL_INT 46 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x42,0xe2,0x80, // JUMP 98 + 0xbd, // LOAD_FAST 13 + 0x43,0xce,0x80, // POP_JUMP_IF_TRUE 78 + 0xbe, // LOAD_FAST 14 + 0x43,0xca,0x80, // POP_JUMP_IF_TRUE 74 + 0x48,0x27, // SETUP_EXCEPT 39 + 0x12,0x81,0x6d, // LOAD_GLOBAL 'cbor_get_assertion_sign' + 0x24,0x10, // LOAD_FAST_N 16 + 0xb6, // LOAD_FAST 6 + 0xb8, // LOAD_FAST 8 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x55, // LOAD_SUBSCR + 0xbf, // LOAD_FAST 15 + 0xbb, // LOAD_FAST 11 + 0xbd, // LOAD_FAST 13 + 0xbe, // LOAD_FAST 14 + 0x34,0x07, // CALL_FUNCTION 7 + 0x26,0x11, // STORE_FAST_N 17 + 0x12,0x23, // LOAD_GLOBAL 'Cmd' + 0xb3, // LOAD_FAST 3 + 0x22,0x81,0x10, // LOAD_CONST_SMALL_INT 144 + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x24,0x11, // LOAD_FAST_N 17 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE + 0x4a,0x1f, // POP_EXCEPT_JUMP 31 + 0x57, // DUP_TOP + 0x12,0x82,0x33, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0x26,0x12, // STORE_FAST_N 18 + 0x49,0x0b, // SETUP_FINALLY 11 + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb3, // LOAD_FAST 3 + 0x22,0x80,0x7f, // LOAD_CONST_SMALL_INT 127 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x26,0x12, // STORE_FAST_N 18 + 0x28,0x12, // DELETE_FAST 18 + 0x5d, // END_FINALLY + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0x42,0x50, // JUMP 16 + 0x12,0x2e, // LOAD_GLOBAL 'Fido2ConfirmGetAssertion' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x24,0x10, // LOAD_FAST_N 16 + 0xb8, // LOAD_FAST 8 + 0xbf, // LOAD_FAST 15 + 0xbb, // LOAD_FAST 11 + 0xbe, // LOAD_FAST 14 + 0x34,0x07, // CALL_FUNCTION 7 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__cbor_get_assertion_process = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2__cbor_get_assertion_process, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 576, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 27, + .n_exc_stack = 2, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 216, + .line_info = fun_data_apps_webauthn_fido2__cbor_get_assertion_process + 10, + .line_info_top = fun_data_apps_webauthn_fido2__cbor_get_assertion_process + 69, + .opcodes = fun_data_apps_webauthn_fido2__cbor_get_assertion_process + 69, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__cbor_get_assertion_hmac_secret +static const byte fun_data_apps_webauthn_fido2__cbor_get_assertion_hmac_secret[353] = { + 0xb2,0x10,0x4a, // prelude + 0x81,0x5c,0x82,0x46,0x81,0x49, // names: _cbor_get_assertion_hmac_secret, cred, hmac_secret + 0xf0,0x06,0x2e,0x54,0x64,0x20,0x2f,0x4f,0x42,0x28,0x28,0x24,0x24,0x20,0x2a,0x2a,0x2a,0x4c,0x66,0x2f,0x73,0x34,0x2b,0x28,0x6f,0x27,0x45,0x62,0x34,0x2c,0x76, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x5d, // LOAD_CONST_STRING 'KEY_AGREEMENT_PRIVKEY' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x81,0x5e, // IMPORT_NAME 'storage.fido2' + 0x1c,0x81,0x5d, // IMPORT_FROM 'KEY_AGREEMENT_PRIVKEY' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x5f, // LOAD_CONST_STRING 'aes' + 0x10,0x81,0x60, // LOAD_CONST_STRING 'hmac' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x12, // IMPORT_NAME 'trezor.crypto' + 0x1c,0x81,0x5f, // IMPORT_FROM 'aes' + 0xc3, // STORE_FAST 3 + 0x1c,0x81,0x60, // IMPORT_FROM 'hmac' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0x12,0x1b, // LOAD_GLOBAL 'common' + 0x13,0x81,0x61, // LOAD_ATTR 'COSE_KEY_KTY' + 0x55, // LOAD_SUBSCR + 0x12,0x1b, // LOAD_GLOBAL 'common' + 0x13,0x81,0x62, // LOAD_ATTR 'COSE_KEYTYPE_EC2' + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x4f, // POP_JUMP_IF_TRUE 15 + 0xb5, // LOAD_FAST 5 + 0x12,0x1b, // LOAD_GLOBAL 'common' + 0x13,0x81,0x63, // LOAD_ATTR 'COSE_KEY_CRV' + 0x55, // LOAD_SUBSCR + 0x12,0x1b, // LOAD_GLOBAL 'common' + 0x13,0x81,0x43, // LOAD_ATTR 'COSE_CURVE_P256' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb5, // LOAD_FAST 5 + 0x12,0x1b, // LOAD_GLOBAL 'common' + 0x13,0x81,0x64, // LOAD_ATTR 'COSE_KEY_X' + 0x55, // LOAD_SUBSCR + 0xc6, // STORE_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x12,0x1b, // LOAD_GLOBAL 'common' + 0x13,0x81,0x65, // LOAD_ATTR 'COSE_KEY_Y' + 0x55, // LOAD_SUBSCR + 0xc7, // STORE_FAST 7 + 0xb1, // LOAD_FAST 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x55, // LOAD_SUBSCR + 0xc8, // STORE_FAST 8 + 0xb1, // LOAD_FAST 1 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x55, // LOAD_SUBSCR + 0xc9, // STORE_FAST 9 + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb6, // LOAD_FAST 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x60, // POP_JUMP_IF_TRUE 32 + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x56, // POP_JUMP_IF_TRUE 22 + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb9, // LOAD_FAST 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xdc, // BINARY_OP 5 __ne__ + 0x43,0x4c, // POP_JUMP_IF_TRUE 12 + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xb8, // LOAD_FAST 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x46, // POP_JUMP_IF_FALSE 6 + 0x12,0x21, // LOAD_GLOBAL 'CborError' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x13, // LOAD_GLOBAL 'nist256p1' + 0x14,0x81,0x66, // LOAD_METHOD 'multiply' + 0xb2, // LOAD_FAST 2 + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0xb6, // LOAD_FAST 6 + 0xf2, // BINARY_OP 27 __add__ + 0xb7, // LOAD_FAST 7 + 0xf2, // BINARY_OP 27 __add__ + 0x36,0x02, // CALL_METHOD 2 + 0xca, // STORE_FAST 10 + 0x12,0x11, // LOAD_GLOBAL 'hashlib' + 0x14,0x81,0x16, // LOAD_METHOD 'sha256' + 0xba, // LOAD_FAST 10 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x36,0x01, // CALL_METHOD 1 + 0x14,0x81,0x19, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xcb, // STORE_FAST 11 + 0xb4, // LOAD_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x67, // LOAD_ATTR 'SHA256' + 0xbb, // LOAD_FAST 11 + 0xb8, // LOAD_FAST 8 + 0x34,0x03, // CALL_FUNCTION 3 + 0x14,0x81,0x19, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0x51, // LOAD_CONST_NONE + 0x90, // LOAD_CONST_SMALL_INT 16 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xcc, // STORE_FAST 12 + 0x12,0x0d, // LOAD_GLOBAL 'utils' + 0x14,0x81,0x68, // LOAD_METHOD 'consteq' + 0xbc, // LOAD_FAST 12 + 0xb9, // LOAD_FAST 9 + 0x36,0x02, // CALL_METHOD 2 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0x12,0x21, // LOAD_GLOBAL 'CborError' + 0x22,0x81,0x60, // LOAD_CONST_SMALL_INT 224 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb3, // LOAD_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x13,0x81,0x69, // LOAD_ATTR 'CBC' + 0xbb, // LOAD_FAST 11 + 0x34,0x02, // CALL_FUNCTION 2 + 0x14,0x81,0x6a, // LOAD_METHOD 'decrypt' + 0xb8, // LOAD_FAST 8 + 0x36,0x01, // CALL_METHOD 1 + 0xcd, // STORE_FAST 13 + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x6b, // LOAD_METHOD 'hmac_secret_key' + 0x36,0x00, // CALL_METHOD 0 + 0xce, // STORE_FAST 14 + 0xbe, // LOAD_FAST 14 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0xb4, // LOAD_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x67, // LOAD_ATTR 'SHA256' + 0xbe, // LOAD_FAST 14 + 0xbd, // LOAD_FAST 13 + 0x51, // LOAD_CONST_NONE + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0x14,0x81,0x19, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xcf, // STORE_FAST 15 + 0x12,0x82,0x3c, // LOAD_GLOBAL 'len' + 0xbd, // LOAD_FAST 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0xbf, // LOAD_FAST 15 + 0xb4, // LOAD_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x13,0x81,0x67, // LOAD_ATTR 'SHA256' + 0xbe, // LOAD_FAST 14 + 0xbd, // LOAD_FAST 13 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x34,0x03, // CALL_FUNCTION 3 + 0x14,0x81,0x19, // LOAD_METHOD 'digest' + 0x36,0x00, // CALL_METHOD 0 + 0xe5, // BINARY_OP 14 __iadd__ + 0xcf, // STORE_FAST 15 + 0xb3, // LOAD_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x13,0x81,0x69, // LOAD_ATTR 'CBC' + 0xbb, // LOAD_FAST 11 + 0x34,0x02, // CALL_FUNCTION 2 + 0x14,0x81,0x6c, // LOAD_METHOD 'encrypt' + 0xbf, // LOAD_FAST 15 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__cbor_get_assertion_hmac_secret = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2__cbor_get_assertion_hmac_secret, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 353, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 23, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 220, + .line_info = fun_data_apps_webauthn_fido2__cbor_get_assertion_hmac_secret + 9, + .line_info_top = fun_data_apps_webauthn_fido2__cbor_get_assertion_hmac_secret + 40, + .opcodes = fun_data_apps_webauthn_fido2__cbor_get_assertion_hmac_secret + 40, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_cbor_get_assertion_sign +static const byte fun_data_apps_webauthn_fido2_cbor_get_assertion_sign[231] = { + 0x9b,0x14,0x58, // prelude + 0x81,0x6d,0x82,0x4f,0x75,0x82,0x46,0x81,0x49,0x82,0x13,0x82,0x52,0x82,0x14, // names: cbor_get_assertion_sign, client_data_hash, rp_id_hash, cred, hmac_secret, resident, user_presence, user_verification + 0xf0,0x41,0x63,0x26,0x28,0x26,0x65,0x22,0x23,0x24,0x23,0x44,0x23,0x23,0x26,0x49,0x47,0x20,0x78,0x20,0x23,0x6d,0x67,0x22,0x33,0x23,0x64,0x2f,0x4d, // code info + 0x2c,0x00, // BUILD_MAP 0 + 0xc7, // STORE_FAST 7 + 0xb3, // LOAD_FAST 3 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0xb5, // LOAD_FAST 5 + 0x44,0x53, // POP_JUMP_IF_FALSE 19 + 0x12,0x81,0x5c, // LOAD_GLOBAL '_cbor_get_assertion_hmac_secret' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc8, // STORE_FAST 8 + 0xb8, // LOAD_FAST 8 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x45, // POP_JUMP_IF_FALSE 5 + 0xb8, // LOAD_FAST 8 + 0xb7, // LOAD_FAST 7 + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x56, // STORE_SUBSCR + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc9, // STORE_FAST 9 + 0xb5, // LOAD_FAST 5 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb9, // LOAD_FAST 9 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe0, // BINARY_OP 9 __ior__ + 0xc9, // STORE_FAST 9 + 0xb6, // LOAD_FAST 6 + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb9, // LOAD_FAST 9 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xe0, // BINARY_OP 9 __ior__ + 0xc9, // STORE_FAST 9 + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0xca, // STORE_FAST 10 + 0xb7, // LOAD_FAST 7 + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb9, // LOAD_FAST 9 + 0x22,0x81,0x00, // LOAD_CONST_SMALL_INT 128 + 0xe0, // BINARY_OP 9 __ior__ + 0xc9, // STORE_FAST 9 + 0x12,0x19, // LOAD_GLOBAL 'cbor' + 0x14,0x81,0x53, // LOAD_METHOD 'encode' + 0xb7, // LOAD_FAST 7 + 0x36,0x01, // CALL_METHOD 1 + 0xca, // STORE_FAST 10 + 0xb2, // LOAD_FAST 2 + 0x14,0x81,0x24, // LOAD_METHOD 'next_signature_counter' + 0x36,0x00, // CALL_METHOD 0 + 0xcb, // STORE_FAST 11 + 0xb1, // LOAD_FAST 1 + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0xb9, // LOAD_FAST 9 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0xf2, // BINARY_OP 27 __add__ + 0xbb, // LOAD_FAST 11 + 0x14,0x81,0x51, // LOAD_METHOD 'to_bytes' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x10,0x81,0x52, // LOAD_CONST_STRING 'big' + 0x36,0x02, // CALL_METHOD 2 + 0xf2, // BINARY_OP 27 __add__ + 0xba, // LOAD_FAST 10 + 0xf2, // BINARY_OP 27 __add__ + 0xcc, // STORE_FAST 12 + 0xb5, // LOAD_FAST 5 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb2, // LOAD_FAST 2 + 0x14,0x81,0x18, // LOAD_METHOD 'sign' + 0xbc, // LOAD_FAST 12 + 0xb0, // LOAD_FAST 0 + 0x2a,0x02, // BUILD_TUPLE 2 + 0x36,0x01, // CALL_METHOD 1 + 0xcd, // STORE_FAST 13 + 0x42,0x47, // JUMP 7 + 0xb2, // LOAD_FAST 2 + 0x14,0x81,0x6e, // LOAD_METHOD 'bogus_signature' + 0x36,0x00, // CALL_METHOD 0 + 0xcd, // STORE_FAST 13 + 0x2c,0x03, // BUILD_MAP 3 + 0x2c,0x02, // BUILD_MAP 2 + 0x10,0x81,0x2e, // LOAD_CONST_STRING 'public-key' + 0x10,0x81,0x2d, // LOAD_CONST_STRING 'type' + 0x62, // STORE_MAP + 0xb2, // LOAD_FAST 2 + 0x13,0x81,0x1c, // LOAD_ATTR 'id' + 0x10,0x81,0x1c, // LOAD_CONST_STRING 'id' + 0x62, // STORE_MAP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x62, // STORE_MAP + 0xbc, // LOAD_FAST 12 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x62, // STORE_MAP + 0xbd, // LOAD_FAST 13 + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x62, // STORE_MAP + 0xce, // STORE_FAST 14 + 0xb4, // LOAD_FAST 4 + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb5, // LOAD_FAST 5 + 0x44,0x56, // POP_JUMP_IF_FALSE 22 + 0xb2, // LOAD_FAST 2 + 0x13,0x81,0x3c, // LOAD_ATTR 'user_id' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0x2c,0x01, // BUILD_MAP 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x81,0x3c, // LOAD_ATTR 'user_id' + 0x10,0x81,0x1c, // LOAD_CONST_STRING 'id' + 0x62, // STORE_MAP + 0xbe, // LOAD_FAST 14 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x56, // STORE_SUBSCR + 0x12,0x19, // LOAD_GLOBAL 'cbor' + 0x14,0x81,0x53, // LOAD_METHOD 'encode' + 0xbe, // LOAD_FAST 14 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_cbor_get_assertion_sign = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 7, + .fun_data = fun_data_apps_webauthn_fido2_cbor_get_assertion_sign, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 231, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 20, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 237, + .line_info = fun_data_apps_webauthn_fido2_cbor_get_assertion_sign + 18, + .line_info_top = fun_data_apps_webauthn_fido2_cbor_get_assertion_sign + 47, + .opcodes = fun_data_apps_webauthn_fido2_cbor_get_assertion_sign + 47, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__cbor_get_info +static const byte fun_data_apps_webauthn_fido2__cbor_get_info[121] = { + 0x49,0x26, // prelude + 0x81,0x6f,0x82,0x0a, // names: _cbor_get_info, req + 0xf0,0x70,0x6d,0x20,0x22,0x2a,0x26,0x25,0x22,0x2a,0x25,0x47,0x25,0x23,0x44, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x81,0x70, // LOAD_CONST_STRING 'CRED_ID_MAX_LENGTH' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1f, // IMPORT_NAME 'credential' + 0x1c,0x81,0x70, // IMPORT_FROM 'CRED_ID_MAX_LENGTH' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x2c,0x07, // BUILD_MAP 7 + 0x10,0x81,0x71, // LOAD_CONST_STRING 'U2F_V2' + 0x10,0x81,0x72, // LOAD_CONST_STRING 'FIDO_2_0' + 0x2b,0x02, // BUILD_LIST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x62, // STORE_MAP + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0x2b,0x01, // BUILD_LIST 1 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x62, // STORE_MAP + 0x12,0x82,0x30, // LOAD_GLOBAL '_AAGUID' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0x62, // STORE_MAP + 0x2c,0x03, // BUILD_MAP 3 + 0x12,0x82,0x4e, // LOAD_GLOBAL 'bool' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x10,0x81,0x47, // LOAD_CONST_STRING 'rk' + 0x62, // STORE_MAP + 0x52, // LOAD_CONST_TRUE + 0x10,0x81,0x4e, // LOAD_CONST_STRING 'up' + 0x62, // STORE_MAP + 0x52, // LOAD_CONST_TRUE + 0x10,0x81,0x48, // LOAD_CONST_STRING 'uv' + 0x62, // STORE_MAP + 0x84, // LOAD_CONST_SMALL_INT 4 + 0x62, // STORE_MAP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x2b,0x01, // BUILD_LIST 1 + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x62, // STORE_MAP + 0x8a, // LOAD_CONST_SMALL_INT 10 + 0x87, // LOAD_CONST_SMALL_INT 7 + 0x62, // STORE_MAP + 0xb1, // LOAD_FAST 1 + 0x88, // LOAD_CONST_SMALL_INT 8 + 0x62, // STORE_MAP + 0xc2, // STORE_FAST 2 + 0x12,0x23, // LOAD_GLOBAL 'Cmd' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0x22,0x81,0x10, // LOAD_CONST_SMALL_INT 144 + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x19, // LOAD_GLOBAL 'cbor' + 0x14,0x81,0x53, // LOAD_METHOD 'encode' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__cbor_get_info = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2__cbor_get_info, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 121, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 239, + .line_info = fun_data_apps_webauthn_fido2__cbor_get_info + 6, + .line_info_top = fun_data_apps_webauthn_fido2__cbor_get_info + 21, + .opcodes = fun_data_apps_webauthn_fido2__cbor_get_info + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__cbor_client_pin +static const byte fun_data_apps_webauthn_fido2__cbor_client_pin[210] = { + 0x6d,0x34, // prelude + 0x81,0x73,0x82,0x0a, // names: _cbor_client_pin, req + 0xf0,0x85,0x4e,0x44,0x22,0x30,0x24,0x4e,0x4b,0x25,0x69,0x25,0x68,0x60,0x22,0x22,0x2b,0x2b,0x2b,0x2c,0x6f,0x20, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x81,0x74, // LOAD_CONST_STRING 'KEY_AGREEMENT_PUBKEY' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x81,0x5e, // IMPORT_NAME 'storage.fido2' + 0x1c,0x81,0x74, // IMPORT_FROM 'KEY_AGREEMENT_PUBKEY' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xc2, // STORE_FAST 2 + 0x48,0x1a, // SETUP_EXCEPT 26 + 0x12,0x19, // LOAD_GLOBAL 'cbor' + 0x14,0x81,0x36, // LOAD_METHOD 'decode' + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'data' + 0x10,0x81,0x37, // LOAD_CONST_STRING 'offset' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x36,0x82,0x01, // CALL_METHOD 257 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x55, // LOAD_SUBSCR + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x55, // LOAD_SUBSCR + 0xc5, // STORE_FAST 5 + 0x4a,0x13, // POP_EXCEPT_JUMP 19 + 0x57, // DUP_TOP + 0x12,0x82,0x33, // LOAD_GLOBAL 'Exception' + 0xdf, // BINARY_OP 8 + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x59, // POP_TOP + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb2, // LOAD_FAST 2 + 0x92, // LOAD_CONST_SMALL_INT 18 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x4a,0x01, // POP_EXCEPT_JUMP 1 + 0x5d, // END_FINALLY + 0xb4, // LOAD_FAST 4 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb2, // LOAD_FAST 2 + 0x22,0x33, // LOAD_CONST_SMALL_INT 51 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb5, // LOAD_FAST 5 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb2, // LOAD_FAST 2 + 0xab, // LOAD_CONST_SMALL_INT 43 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x2c,0x01, // BUILD_MAP 1 + 0x2c,0x05, // BUILD_MAP 5 + 0x12,0x1b, // LOAD_GLOBAL 'common' + 0x13,0x81,0x75, // LOAD_ATTR 'COSE_ALG_ECDH_ES_HKDF_256' + 0x12,0x1b, // LOAD_GLOBAL 'common' + 0x13,0x81,0x76, // LOAD_ATTR 'COSE_KEY_ALG' + 0x62, // STORE_MAP + 0x12,0x1b, // LOAD_GLOBAL 'common' + 0x13,0x81,0x62, // LOAD_ATTR 'COSE_KEYTYPE_EC2' + 0x12,0x1b, // LOAD_GLOBAL 'common' + 0x13,0x81,0x61, // LOAD_ATTR 'COSE_KEY_KTY' + 0x62, // STORE_MAP + 0x12,0x1b, // LOAD_GLOBAL 'common' + 0x13,0x81,0x43, // LOAD_ATTR 'COSE_CURVE_P256' + 0x12,0x1b, // LOAD_GLOBAL 'common' + 0x13,0x81,0x63, // LOAD_ATTR 'COSE_KEY_CRV' + 0x62, // STORE_MAP + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x12,0x1b, // LOAD_GLOBAL 'common' + 0x13,0x81,0x64, // LOAD_ATTR 'COSE_KEY_X' + 0x62, // STORE_MAP + 0xb1, // LOAD_FAST 1 + 0xa1, // LOAD_CONST_SMALL_INT 33 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0x12,0x1b, // LOAD_GLOBAL 'common' + 0x13,0x81,0x65, // LOAD_ATTR 'COSE_KEY_Y' + 0x62, // STORE_MAP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x62, // STORE_MAP + 0xc6, // STORE_FAST 6 + 0x12,0x23, // LOAD_GLOBAL 'Cmd' + 0xb2, // LOAD_FAST 2 + 0x22,0x81,0x10, // LOAD_CONST_SMALL_INT 144 + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x12,0x19, // LOAD_GLOBAL 'cbor' + 0x14,0x81,0x53, // LOAD_METHOD 'encode' + 0xb6, // LOAD_FAST 6 + 0x36,0x01, // CALL_METHOD 1 + 0xf2, // BINARY_OP 27 __add__ + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__cbor_client_pin = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_fido2__cbor_client_pin, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 210, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 1, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 243, + .line_info = fun_data_apps_webauthn_fido2__cbor_client_pin + 6, + .line_info_top = fun_data_apps_webauthn_fido2__cbor_client_pin + 28, + .opcodes = fun_data_apps_webauthn_fido2__cbor_client_pin + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2__cbor_reset +static const byte fun_data_apps_webauthn_fido2__cbor_reset[66] = { + 0x32,0x1a, // prelude + 0x81,0x77,0x82,0x0a,0x82,0x0c, // names: _cbor_reset, req, dialog_mgr + 0xf0,0xa9,0x2a,0x60,0x4a,0x33,0x2a, // code info + 0x12,0x82,0x29, // LOAD_GLOBAL 'storage_device' + 0x14,0x81,0x12, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x4a, // POP_JUMP_IF_TRUE 10 + 0x12,0x81,0x2b, // LOAD_GLOBAL 'cbor_error' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x11, // LOAD_METHOD 'set_state' + 0x12,0x31, // LOAD_GLOBAL 'Fido2ConfirmReset' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x10, // LOAD_ATTR 'iface' + 0x34,0x02, // CALL_FUNCTION 2 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x4a, // POP_JUMP_IF_TRUE 10 + 0x12,0x81,0x29, // LOAD_GLOBAL 'cmd_error' + 0xb0, // LOAD_FAST 0 + 0x13,0x35, // LOAD_ATTR 'cid' + 0x86, // LOAD_CONST_SMALL_INT 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2__cbor_reset = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2__cbor_reset, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 66, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 247, + .line_info = fun_data_apps_webauthn_fido2__cbor_reset + 8, + .line_info_top = fun_data_apps_webauthn_fido2__cbor_reset + 15, + .opcodes = fun_data_apps_webauthn_fido2__cbor_reset + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_fido2__lt_module_gt_ +// frozen bytecode for file apps/webauthn/fido2.py, scope apps_webauthn_fido2_cmd_keepalive +static const byte fun_data_apps_webauthn_fido2_cmd_keepalive[25] = { + 0x32,0x0c, // prelude + 0x81,0x78,0x35,0x47, // names: cmd_keepalive, cid, status + 0xf0,0xb5, // code info + 0x12,0x23, // LOAD_GLOBAL 'Cmd' + 0xb0, // LOAD_FAST 0 + 0x22,0x81,0x3b, // LOAD_CONST_SMALL_INT 187 + 0x12,0x82,0x40, // LOAD_GLOBAL 'bytes' + 0xb1, // LOAD_FAST 1 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x34,0x03, // CALL_FUNCTION 3 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_fido2_cmd_keepalive = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_fido2_cmd_keepalive, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 248, + .line_info = fun_data_apps_webauthn_fido2_cmd_keepalive + 6, + .line_info_top = fun_data_apps_webauthn_fido2_cmd_keepalive + 8, + .opcodes = fun_data_apps_webauthn_fido2_cmd_keepalive + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_fido2__lt_module_gt_[] = { + &raw_code_apps_webauthn_fido2_CborError, + &raw_code_apps_webauthn_fido2_frame_init, + &raw_code_apps_webauthn_fido2_frame_cont, + &raw_code_apps_webauthn_fido2__resp_cmd_init, + &raw_code_apps_webauthn_fido2__resp_cmd_register, + &raw_code_apps_webauthn_fido2__req_cmd_authenticate, + &raw_code_apps_webauthn_fido2__resp_cmd_authenticate, + &raw_code_apps_webauthn_fido2_overlay_struct, + &raw_code_apps_webauthn_fido2_make_struct, + &raw_code_apps_webauthn_fido2_Msg, + &raw_code_apps_webauthn_fido2_Cmd, + &raw_code_apps_webauthn_fido2__read_cmd, + &raw_code_apps_webauthn_fido2_send_cmd, + &raw_code_apps_webauthn_fido2_send_cmd_sync, + &raw_code_apps_webauthn_fido2_handle_reports, + &raw_code_apps_webauthn_fido2_KeepaliveCallback, + &raw_code_apps_webauthn_fido2_verify_user, + &raw_code_apps_webauthn_fido2__confirm_fido_choose, + &raw_code_apps_webauthn_fido2__confirm_fido, + &raw_code_apps_webauthn_fido2__confirm_bogus_app, + &raw_code_apps_webauthn_fido2_State, + &raw_code_apps_webauthn_fido2_U2fState, + &raw_code_apps_webauthn_fido2_U2fConfirmRegister, + &raw_code_apps_webauthn_fido2_U2fConfirmAuthenticate, + &raw_code_apps_webauthn_fido2_U2fUnlock, + &raw_code_apps_webauthn_fido2_Fido2State, + &raw_code_apps_webauthn_fido2_Fido2Unlock, + &raw_code_apps_webauthn_fido2_Fido2ConfirmMakeCredential, + &raw_code_apps_webauthn_fido2_Fido2ConfirmExcluded, + &raw_code_apps_webauthn_fido2_Fido2ConfirmGetAssertion, + &raw_code_apps_webauthn_fido2_Fido2ConfirmNoPin, + &raw_code_apps_webauthn_fido2_Fido2ConfirmNoCredentials, + &raw_code_apps_webauthn_fido2_Fido2ConfirmReset, + &raw_code_apps_webauthn_fido2_DialogManager, + &raw_code_apps_webauthn_fido2__dispatch_cmd, + &raw_code_apps_webauthn_fido2_cmd_init, + &raw_code_apps_webauthn_fido2__cmd_wink, + &raw_code_apps_webauthn_fido2__msg_register, + &raw_code_apps_webauthn_fido2_basic_attestation_sign, + &raw_code_apps_webauthn_fido2__msg_register_sign, + &raw_code_apps_webauthn_fido2__msg_authenticate, + &raw_code_apps_webauthn_fido2__msg_authenticate_sign, + &raw_code_apps_webauthn_fido2_msg_error, + &raw_code_apps_webauthn_fido2_cmd_error, + &raw_code_apps_webauthn_fido2_cbor_error, + &raw_code_apps_webauthn_fido2_credentials_from_descriptor_list, + &raw_code_apps_webauthn_fido2__distinguishable_cred_list, + &raw_code_apps_webauthn_fido2__algorithms_from_pub_key_cred_params, + &raw_code_apps_webauthn_fido2__cbor_make_credential, + &raw_code_apps_webauthn_fido2__cbor_make_credential_process, + &raw_code_apps_webauthn_fido2__cbor_make_credential_sign, + &raw_code_apps_webauthn_fido2__cbor_get_assertion, + &raw_code_apps_webauthn_fido2__cbor_get_assertion_process, + &raw_code_apps_webauthn_fido2__cbor_get_assertion_hmac_secret, + &raw_code_apps_webauthn_fido2_cbor_get_assertion_sign, + &raw_code_apps_webauthn_fido2__cbor_get_info, + &raw_code_apps_webauthn_fido2__cbor_client_pin, + &raw_code_apps_webauthn_fido2__cbor_reset, + &raw_code_apps_webauthn_fido2_cmd_keepalive, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_fido2__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_fido2__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 755, + #endif + .children = (void *)&children_apps_webauthn_fido2__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 59, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_webauthn_fido2__lt_module_gt_ + 4, + .line_info_top = fun_data_apps_webauthn_fido2__lt_module_gt_ + 146, + .opcodes = fun_data_apps_webauthn_fido2__lt_module_gt_ + 146, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_webauthn_fido2[346] = { + MP_QSTR_apps_slash_webauthn_slash_fido2_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_uctypes, + MP_QSTR_ustruct, + MP_QSTR_utime, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_storage_dot_device, + MP_QSTR_device, + MP_QSTR_config, + MP_QSTR_io, + MP_QSTR_log, + MP_QSTR_loop, + MP_QSTR_utils, + MP_QSTR_wire, + MP_QSTR_workflow, + MP_QSTR_trezor, + MP_QSTR_hashlib, + MP_QSTR_trezor_dot_crypto, + MP_QSTR_nist256p1, + MP_QSTR_trezor_dot_crypto_dot_curve, + MP_QSTR_show_error_popup, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_set_homescreen, + MP_QSTR_apps_dot_base, + MP_QSTR_cbor, + MP_QSTR_apps_dot_common, + MP_QSTR_common, + MP_QSTR_, + MP_QSTR_Credential, + MP_QSTR_Fido2Credential, + MP_QSTR_credential, + MP_QSTR__dot_dummy, + MP_QSTR_CborError, + MP_QSTR_Msg, + MP_QSTR_Cmd, + MP_QSTR_KeepaliveCallback, + MP_QSTR_State, + MP_QSTR_U2fState, + MP_QSTR_U2fConfirmRegister, + MP_QSTR_U2fConfirmAuthenticate, + MP_QSTR_U2fUnlock, + MP_QSTR_Fido2State, + MP_QSTR_Fido2Unlock, + MP_QSTR_Fido2ConfirmMakeCredential, + MP_QSTR_Fido2ConfirmExcluded, + MP_QSTR_Fido2ConfirmGetAssertion, + MP_QSTR_Fido2ConfirmNoPin, + MP_QSTR_Fido2ConfirmNoCredentials, + MP_QSTR_Fido2ConfirmReset, + MP_QSTR_DialogManager, + MP_QSTR_frame_init, + MP_QSTR_UINT32, + MP_QSTR_cid, + MP_QSTR_UINT8, + MP_QSTR_cmd, + MP_QSTR_UINT16, + MP_QSTR_bcnt, + MP_QSTR_ARRAY, + MP_QSTR_data, + MP_QSTR_frame_cont, + MP_QSTR_seq, + MP_QSTR__resp_cmd_init, + MP_QSTR_nonce, + MP_QSTR_capFlags, + MP_QSTR__resp_cmd_register, + MP_QSTR_registerId, + MP_QSTR_pubKey, + MP_QSTR_keyHandle, + MP_QSTR_cert, + MP_QSTR_sig, + MP_QSTR_status, + MP_QSTR__req_cmd_authenticate, + MP_QSTR_chal, + MP_QSTR_appId, + MP_QSTR__resp_cmd_authenticate, + MP_QSTR_flags, + MP_QSTR_ctr, + MP_QSTR_overlay_struct, + MP_QSTR_sizeof, + MP_QSTR_BIG_ENDIAN, + MP_QSTR_format, + MP_QSTR_struct, + MP_QSTR_addressof, + MP_QSTR_make_struct, + MP_QSTR__read_cmd, + MP_QSTR_wait, + MP_QSTR_iface_num, + MP_QSTR_POLL_READ, + MP_QSTR_warning, + MP_QSTR_memcpy, + MP_QSTR_race, + MP_QSTR_sleep, + MP_QSTR_send_cmd, + MP_QSTR_write, + MP_QSTR_POLL_WRITE, + MP_QSTR_send_cmd_sync, + MP_QSTR_write_blocking, + MP_QSTR_handle_reports, + MP_QSTR_allow_cid, + MP_QSTR_exception, + MP_QSTR_verify_user, + MP_QSTR_trezor_dot_pin, + MP_QSTR_PinCancelled, + MP_QSTR_PinInvalid, + MP_QSTR_trezor_dot_wire, + MP_QSTR_verify_user_pin, + MP_QSTR_apps_dot_common_dot_request_pin, + MP_QSTR_pin, + MP_QSTR_keepalive_callback, + MP_QSTR_cache_time_ms, + MP_QSTR__confirm_fido_choose, + MP_QSTR_confirm_fido, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_fido, + MP_QSTR_knownapps, + MP_QSTR_app_name, + MP_QSTR_by_rp_id_hash, + MP_QSTR_rp_id_hash, + MP_QSTR_icon_name, + MP_QSTR__confirm_fido, + MP_QSTR_ActionCancelled, + MP_QSTR__confirm_bogus_app, + MP_QSTR_timeout_ms, + MP_QSTR__dispatch_cmd, + MP_QSTR_debug, + MP_QSTR_to_msg, + MP_QSTR_ins, + MP_QSTR_cla, + MP_QSTR_lc, + MP_QSTR_result, + MP_QSTR_reset, + MP_QSTR_cmd_init, + MP_QSTR_random, + MP_QSTR_uniform, + MP_QSTR_versionInterface, + MP_QSTR_versionMajor, + MP_QSTR_versionMinor, + MP_QSTR_versionBuild, + MP_QSTR__cmd_wink, + MP_QSTR_ui, + MP_QSTR_alert, + MP_QSTR__msg_register, + MP_QSTR_U2fCredential, + MP_QSTR_is_unlocked, + MP_QSTR_iface, + MP_QSTR_set_state, + MP_QSTR_is_initialized, + MP_QSTR_generate_key_handle, + MP_QSTR_basic_attestation_sign, + MP_QSTR_der, + MP_QSTR_sha256, + MP_QSTR_update, + MP_QSTR_sign, + MP_QSTR_digest, + MP_QSTR_encode_seq, + MP_QSTR__msg_register_sign, + MP_QSTR_id, + MP_QSTR_public_key, + MP_QSTR_keyHandleLen, + MP_QSTR__msg_authenticate, + MP_QSTR_info, + MP_QSTR_from_bytes, + MP_QSTR_p1, + MP_QSTR__msg_authenticate_sign, + MP_QSTR_next_signature_counter, + MP_QSTR_pack, + MP_QSTR__gt_L, + MP_QSTR_msg_error, + MP_QSTR__gt_H, + MP_QSTR_cmd_error, + MP_QSTR__gt_B, + MP_QSTR_cbor_error, + MP_QSTR_credentials_from_descriptor_list, + MP_QSTR_type, + MP_QSTR_public_hyphen_key, + MP_QSTR__distinguishable_cred_list, + MP_QSTR_account_name, + MP_QSTR_append, + MP_QSTR__algorithms_from_pub_key_cred_params, + MP_QSTR_alg, + MP_QSTR__cbor_make_credential, + MP_QSTR__cbor_make_credential_process, + MP_QSTR_decode, + MP_QSTR_offset, + MP_QSTR_rp_id, + MP_QSTR_get, + MP_QSTR_name, + MP_QSTR_rp_name, + MP_QSTR_user_id, + MP_QSTR_user_name, + MP_QSTR_user_display_name, + MP_QSTR_truncate_names, + MP_QSTR_is_empty_iterator, + MP_QSTR_COSE_ALG_ES256, + MP_QSTR_algorithm, + MP_QSTR_COSE_CURVE_P256, + MP_QSTR_curve, + MP_QSTR_COSE_ALG_EDDSA, + MP_QSTR_COSE_CURVE_ED25519, + MP_QSTR_rk, + MP_QSTR_uv, + MP_QSTR_hmac_secret, + MP_QSTR_use_sign_count, + MP_QSTR_use_compact, + MP_QSTR_check_data_types, + MP_QSTR_icon, + MP_QSTR_up, + MP_QSTR_has_pin, + MP_QSTR__cbor_make_credential_sign, + MP_QSTR_to_bytes, + MP_QSTR_big, + MP_QSTR_encode, + MP_QSTR_use_self_attestation, + MP_QSTR_x5c, + MP_QSTR_packed, + MP_QSTR__cbor_get_assertion, + MP_QSTR__cbor_get_assertion_process, + MP_QSTR_find_by_rp_id_hash, + MP_QSTR_resident_credentials, + MP_QSTR_sort, + MP_QSTR__cbor_get_assertion_hmac_secret, + MP_QSTR_KEY_AGREEMENT_PRIVKEY, + MP_QSTR_storage_dot_fido2, + MP_QSTR_aes, + MP_QSTR_hmac, + MP_QSTR_COSE_KEY_KTY, + MP_QSTR_COSE_KEYTYPE_EC2, + MP_QSTR_COSE_KEY_CRV, + MP_QSTR_COSE_KEY_X, + MP_QSTR_COSE_KEY_Y, + MP_QSTR_multiply, + MP_QSTR_SHA256, + MP_QSTR_consteq, + MP_QSTR_CBC, + MP_QSTR_decrypt, + MP_QSTR_hmac_secret_key, + MP_QSTR_encrypt, + MP_QSTR_cbor_get_assertion_sign, + MP_QSTR_bogus_signature, + MP_QSTR__cbor_get_info, + MP_QSTR_CRED_ID_MAX_LENGTH, + MP_QSTR_U2F_V2, + MP_QSTR_FIDO_2_0, + MP_QSTR__cbor_client_pin, + MP_QSTR_KEY_AGREEMENT_PUBKEY, + MP_QSTR_COSE_ALG_ECDH_ES_HKDF_256, + MP_QSTR_COSE_KEY_ALG, + MP_QSTR__cbor_reset, + MP_QSTR_cmd_keepalive, + MP_QSTR___init__, + MP_QSTR_code, + MP_QSTR_p2, + MP_QSTR___call__, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_finished, + MP_QSTR_keepalive_status, + MP_QSTR_confirm_dialog, + MP_QSTR_on_confirm, + MP_QSTR_on_decline, + MP_QSTR_on_timeout, + MP_QSTR_on_cancel, + MP_QSTR__cred, + MP_QSTR__req_data, + MP_QSTR_U2F, + MP_QSTR___eq__, + MP_QSTR_process_func, + MP_QSTR_req, + MP_QSTR_resp, + MP_QSTR_dialog_mgr, + MP_QSTR__client_data_hash, + MP_QSTR__resident, + MP_QSTR__user_verification, + MP_QSTR_FIDO2, + MP_QSTR_store_resident_credential, + MP_QSTR_generate_id, + MP_QSTR_resident, + MP_QSTR_user_verification, + MP_QSTR__creds, + MP_QSTR__hmac_secret, + MP_QSTR__selected_cred, + MP_QSTR_confirm_fido_reset, + MP_QSTR_storage_dot_resident_credentials, + MP_QSTR_delete_all, + MP_QSTR__clear, + MP_QSTR_state, + MP_QSTR_deadline, + MP_QSTR_keepalive, + MP_QSTR__workflow_is_running, + MP_QSTR_reset_timeout, + MP_QSTR_ticks_ms, + MP_QSTR_close, + MP_QSTR_is_busy, + MP_QSTR_tasks, + MP_QSTR_keepalive_loop, + MP_QSTR_schedule, + MP_QSTR_spawn, + MP_QSTR_dialog_workflow, + MP_QSTR_storage_device, + MP_QSTR__FIDO_ATT_PRIV_KEY, + MP_QSTR__FIDO_ATT_CERT, + MP_QSTR__BOGUS_RP_ID, + MP_QSTR__BOGUS_APPID_CHROME, + MP_QSTR__BOGUS_APPID_FIREFOX, + MP_QSTR__BOGUS_APPIDS, + MP_QSTR__AAGUID, + MP_QSTR__last_wink_cid, + MP_QSTR__last_auth_valid, + MP_QSTR_Exception, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_khlen, + MP_QSTR_certlen, + MP_QSTR_siglen, + MP_QSTR_buf, + MP_QSTR_desc, + MP_QSTR_len, + MP_QSTR_ValueError, + MP_QSTR_bytearray, + MP_QSTR_isinstance, + MP_QSTR_bytes, + MP_QSTR_TimeoutError, + MP_QSTR_title, + MP_QSTR_credentials, + MP_QSTR_IndexError, + MP_QSTR_challenge, + MP_QSTR_cred, + MP_QSTR_descriptor_list, + MP_QSTR_str, + MP_QSTR_TypeError, + MP_QSTR_enumerate, + MP_QSTR_pub_key_cred_params, + MP_QSTR_int, + MP_QSTR_KeyError, + MP_QSTR_bool, + MP_QSTR_client_data_hash, + MP_QSTR_list, + MP_QSTR_dict, + MP_QSTR_user_presence, + MP_QSTR__star_, + MP_QSTR_self, + MP_QSTR_super, + MP_QSTR_NotImplementedError, + MP_QSTR_req_data, + MP_QSTR_other, + MP_QSTR_creds, +}; + +// constants +static const mp_obj_str_t const_obj_apps_webauthn_fido2_0 = {{&mp_type_bytes}, 16330, 32, (const byte*)"\x71\x26\xac\x2b\xf6\x44\xdc\x61\x86\xad\x83\xef\x1f\xcd\xf1\x2a\x57\xb5\xcf\xa2\x00\x0b\x8a\xd0\x27\xe9\x56\xe8\x54\xc5\x0a\x8b"}; +static const mp_obj_str_t const_obj_apps_webauthn_fido2_1 = {{&mp_type_bytes}, 51815, 465, (const byte*)"\x30\x82\x01\xcd\x30\x82\x01\x73\xa0\x03\x02\x01\x02\x02\x04\x03\x45\x60\xc4\x30\x0a\x06\x08\x2a\x86\x48\xce\x3d\x04\x03\x02\x30\x2e\x31\x2c\x30\x2a\x06\x03\x55\x04\x03\x0c\x23\x54\x72\x65\x7a\x6f\x72\x20\x46\x49\x44\x4f\x20\x52\x6f\x6f\x74\x20\x43\x41\x20\x53\x65\x72\x69\x61\x6c\x20\x38\x34\x31\x35\x31\x33\x35\x36\x30\x20\x17\x0d\x32\x30\x30\x34\x30\x36\x31\x30\x30\x34\x31\x37\x5a\x18\x0f\x32\x30\x35\x30\x30\x34\x30\x36\x31\x30\x30\x34\x31\x37\x5a\x30\x78\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x5a\x31\x1c\x30\x1a\x06\x03\x55\x04\x0a\x0c\x13\x53\x61\x74\x6f\x73\x68\x69\x4c\x61\x62\x73\x2c\x20\x73\x2e\x72\x2e\x6f\x2e\x31\x22\x30\x20\x06\x03\x55\x04\x0b\x0c\x19\x41\x75\x74\x68\x65\x6e\x74\x69\x63\x61\x74\x6f\x72\x20\x41\x74\x74\x65\x73\x74\x61\x74\x69\x6f\x6e\x31\x27\x30\x25\x06\x03\x55\x04\x03\x0c\x1e\x54\x72\x65\x7a\x6f\x72\x20\x46\x49\x44\x4f\x20\x45\x45\x20\x53\x65\x72\x69\x61\x6c\x20\x35\x34\x38\x37\x38\x34\x30\x34\x30\x59\x30\x13\x06\x07\x2a\x86\x48\xce\x3d\x02\x01\x06\x08\x2a\x86\x48\xce\x3d\x03\x01\x07\x03\x42\x00\x04\xd9\x18\xbd\xfa\x8a\x54\xac\x92\xe9\x0d\xa9\x1f\xca\x7a\xa2\x64\x54\xc0\xd1\x73\x36\x31\x4d\xde\x83\xa5\x4b\x86\xb5\xdf\x4e\xf0\x52\x65\x9a\x1d\x6f\xfc\xb7\x46\x7f\x1a\xcd\xdb\x8a\x33\x08\x0b\x5e\xed\x91\x89\x13\xf4\x43\xa5\x26\x1b\xc7\x7b\x68\x60\x6f\xc1\xa3\x33\x30\x31\x30\x21\x06\x0b\x2b\x06\x01\x04\x01\x82\xe5\x1c\x01\x01\x04\x04\x12\x04\x10\xd6\xd0\xbd\xc3\x62\xee\xc4\xdb\xde\x8d\x7a\x65\x6e\x4a\x44\x87\x30\x0c\x06\x03\x55\x1d\x13\x01\x01\xff\x04\x02\x30\x00\x30\x0a\x06\x08\x2a\x86\x48\xce\x3d\x04\x03\x02\x03\x48\x00\x30\x45\x02\x20\x0b\xce\xc4\x52\xc3\x0a\x11\x27\xe5\xd5\xf5\xfc\xf5\xd6\x57\x79\x11\x2b\xe5\x30\xad\x9d\x2d\x54\x58\x4a\xbe\x45\x86\xda\x93\xc6\x02\x21\x00\xaf\xca\x3d\xcf\xd8\x41\xb0\xad\x7a\x9e\x24\x7d\x0f\x66\xf4\x4c\x2c\x83\xf9\x54\xab\x95\x4f\x89\x36\xc1\x35\x08\x7f\x58\xf1\x95"}; +static const mp_obj_str_t const_obj_apps_webauthn_fido2_2 = {{&mp_type_bytes}, 46564, 1, (const byte*)"\x41"}; +static const mp_obj_str_t const_obj_apps_webauthn_fido2_3 = {{&mp_type_bytes}, 46501, 1, (const byte*)"\x00"}; +static const mp_obj_str_t const_obj_apps_webauthn_fido2_4 = {{&mp_type_bytes}, 48677, 16, (const byte*)"\xd6\xd0\xbd\xc3\x62\xee\xc4\xdb\xde\x8d\x7a\x65\x6e\x4a\x44\x87"}; +static const mp_obj_str_t const_obj_apps_webauthn_fido2_10 = {{&mp_type_str}, 36905, 25, (const byte*)"\x64\x65\x73\x63\x20\x69\x73\x20\x74\x6f\x6f\x20\x62\x69\x67\x20\x28\x7b\x7d\x20\x3e\x20\x7b\x7d\x29"}; +static const mp_obj_int_t const_obj_apps_webauthn_fido2_11 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xffff,0xffff}}}; +static const mp_obj_str_t const_obj_apps_webauthn_fido2_12 = {{&mp_type_str}, 9791, 56, (const byte*)"\x54\x68\x69\x73\x20\x64\x65\x76\x69\x63\x65\x20\x69\x73\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x72\x65\x67\x69\x73\x74\x65\x72\x65\x64\x20\x77\x69\x74\x68\x20\x74\x68\x69\x73\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_webauthn_fido2_14 = {{&mp_type_str}, 6956, 52, (const byte*)"\x54\x68\x69\x73\x20\x64\x65\x76\x69\x63\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x72\x65\x67\x69\x73\x74\x65\x72\x65\x64\x20\x77\x69\x74\x68\x20\x74\x68\x69\x73\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_webauthn_fido2_16 = {{&mp_type_bytes}, 26543, 8, (const byte*)"\x55\x32\x46\x5f\x56\x32\x90\x00"}; +static const mp_obj_int_t const_obj_apps_webauthn_fido2_17 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xfffe,0xffff}}}; +static const mp_rom_obj_tuple_t const_obj_apps_webauthn_fido2_21 = {{&mp_type_tuple}, 2, { + MP_ROM_INT(32), + MP_ROM_INT(64), +}}; +static const mp_obj_str_t const_obj_apps_webauthn_fido2_22 = {{&mp_type_bytes}, 46497, 1, (const byte*)"\x04"}; +static const mp_obj_str_t const_obj_apps_webauthn_fido2_26 = {{&mp_type_str}, 31717, 42, (const byte*)"\x54\x68\x69\x73\x20\x64\x65\x76\x69\x63\x65\x20\x69\x73\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x72\x65\x67\x69\x73\x74\x65\x72\x65\x64\x20\x77\x69\x74\x68\x20\x7b\x7d\x2e"}; +static const mp_obj_str_t const_obj_apps_webauthn_fido2_29 = {{&mp_type_str}, 27760, 29, (const byte*)"\x50\x6c\x65\x61\x73\x65\x20\x65\x6e\x61\x62\x6c\x65\x20\x50\x49\x4e\x20\x70\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_webauthn_fido2_31 = {{&mp_type_str}, 2396, 38, (const byte*)"\x54\x68\x69\x73\x20\x64\x65\x76\x69\x63\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x72\x65\x67\x69\x73\x74\x65\x72\x65\x64\x20\x77\x69\x74\x68\x0a\x7b\x7d\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_webauthn_fido2[32] = { + MP_ROM_PTR(&const_obj_apps_webauthn_fido2_0), + MP_ROM_PTR(&const_obj_apps_webauthn_fido2_1), + MP_ROM_PTR(&const_obj_apps_webauthn_fido2_2), + MP_ROM_PTR(&const_obj_apps_webauthn_fido2_3), + MP_ROM_PTR(&const_obj_apps_webauthn_fido2_4), + MP_ROM_QSTR(MP_QSTR_versionInterface), + MP_ROM_QSTR(MP_QSTR_versionMajor), + MP_ROM_QSTR(MP_QSTR_versionMinor), + MP_ROM_QSTR(MP_QSTR_versionBuild), + MP_ROM_QSTR(MP_QSTR_keyHandleLen), + MP_ROM_PTR(&const_obj_apps_webauthn_fido2_10), + MP_ROM_PTR(&const_obj_apps_webauthn_fido2_11), + MP_ROM_PTR(&const_obj_apps_webauthn_fido2_12), + MP_ROM_QSTR(MP_QSTR_Already_space_registered_dot_), + MP_ROM_PTR(&const_obj_apps_webauthn_fido2_14), + MP_ROM_QSTR(MP_QSTR_Not_space_registered_dot_), + MP_ROM_PTR(&const_obj_apps_webauthn_fido2_16), + MP_ROM_PTR(&const_obj_apps_webauthn_fido2_17), + MP_ROM_QSTR(MP_QSTR_displayName), + MP_ROM_QSTR(MP_QSTR_hmac_hyphen_secret), + MP_ROM_PTR(&mp_const_empty_bytes_obj), + MP_ROM_PTR(&const_obj_apps_webauthn_fido2_21), + MP_ROM_PTR(&const_obj_apps_webauthn_fido2_22), + MP_ROM_QSTR(MP_QSTR_U2F_space_Register), + MP_ROM_QSTR(MP_QSTR_U2F_space_Authenticate), + MP_ROM_QSTR(MP_QSTR_FIDO2_space_Register), + MP_ROM_PTR(&const_obj_apps_webauthn_fido2_26), + MP_ROM_QSTR(MP_QSTR_FIDO2_space_Authenticate), + MP_ROM_QSTR(MP_QSTR_FIDO2_space_Verify_space_User), + MP_ROM_PTR(&const_obj_apps_webauthn_fido2_29), + MP_ROM_QSTR(MP_QSTR_Unable_space_to_space_verify_space_user_dot_), + MP_ROM_PTR(&const_obj_apps_webauthn_fido2_31), +}; + +static const mp_frozen_module_t frozen_module_apps_webauthn_fido2 = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_webauthn_fido2, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_webauthn_fido2, + }, + .rc = &raw_code_apps_webauthn_fido2__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_webauthn_knownapps +// - original source file: build/firmware/src/apps/webauthn/knownapps.mpy +// - frozen file name: apps/webauthn/knownapps.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/webauthn/knownapps.py, scope apps_webauthn_knownapps__lt_module_gt_ +static const byte fun_data_apps_webauthn_knownapps__lt_module_gt_[22] = { + 0x10,0x0a, // prelude + 0x01, // names: + 0x80,0x07,0x89,0x11, // code info + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x02, // LOAD_CONST_STRING 'FIDOApp' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x02, // STORE_NAME 'FIDOApp' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x03, // STORE_NAME 'by_rp_id_hash' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_knownapps__lt_module_gt_ +// frozen bytecode for file apps/webauthn/knownapps.py, scope apps_webauthn_knownapps_FIDOApp +static const byte fun_data_apps_webauthn_knownapps_FIDOApp[19] = { + 0x00,0x06, // prelude + 0x02, // names: FIDOApp + 0x88,0x08, // code info + 0x11,0x33, // LOAD_NAME '__name__' + 0x16,0x34, // STORE_NAME '__module__' + 0x10,0x02, // LOAD_CONST_STRING 'FIDOApp' + 0x16,0x35, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x2d, // STORE_NAME '__init__' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_knownapps_FIDOApp +// frozen bytecode for file apps/webauthn/knownapps.py, scope apps_webauthn_knownapps_FIDOApp___init__ +static const byte fun_data_apps_webauthn_knownapps_FIDOApp___init__[38] = { + 0xba,0x04,0x1a, // prelude + 0x2d,0x37,0x2e,0x2f,0x30,0x31,0x32, // names: __init__, self, label, icon_name, use_sign_count, use_self_attestation, use_compact + 0x80,0x10,0x24,0x24,0x24,0x24, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x2e, // STORE_ATTR 'label' + 0xb2, // LOAD_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x18,0x2f, // STORE_ATTR 'icon_name' + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x18,0x30, // STORE_ATTR 'use_sign_count' + 0xb4, // LOAD_FAST 4 + 0xb0, // LOAD_FAST 0 + 0x18,0x31, // STORE_ATTR 'use_self_attestation' + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x18,0x32, // STORE_ATTR 'use_compact' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_knownapps_FIDOApp___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 6, + .fun_data = fun_data_apps_webauthn_knownapps_FIDOApp___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_webauthn_knownapps_FIDOApp___init__ + 10, + .line_info_top = fun_data_apps_webauthn_knownapps_FIDOApp___init__ + 16, + .opcodes = fun_data_apps_webauthn_knownapps_FIDOApp___init__ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_knownapps_FIDOApp[] = { + &raw_code_apps_webauthn_knownapps_FIDOApp___init__, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_knownapps_FIDOApp = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_knownapps_FIDOApp, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = (void *)&children_apps_webauthn_knownapps_FIDOApp, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_webauthn_knownapps_FIDOApp + 3, + .line_info_top = fun_data_apps_webauthn_knownapps_FIDOApp + 5, + .opcodes = fun_data_apps_webauthn_knownapps_FIDOApp + 5, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_knownapps__lt_module_gt_ +// frozen bytecode for file apps/webauthn/knownapps.py, scope apps_webauthn_knownapps_by_rp_id_hash +static const byte fun_data_apps_webauthn_knownapps_by_rp_id_hash[936] = { + 0x31,0xc4,0x04, // prelude + 0x03,0x36, // names: by_rp_id_hash, rp_id_hash + 0x80,0x19,0x46,0x8c,0x07,0x46,0x22,0x6a,0x60,0x46,0x22,0x6a,0x60,0x46,0x22,0x6a,0x60,0x46,0x22,0x6a,0x60,0x46,0x22,0x6a,0x60,0x46,0x22,0x6a,0x60,0x46,0x22,0x6a,0x60,0x46,0x22,0x6a,0x60,0x46,0x22,0x6a,0x60,0x46,0x22,0x6a,0x60,0x46,0x22,0x6a,0x60,0x46,0x22,0x6a,0x60,0x46,0x22,0x6a,0x60,0x46,0x22,0x6a,0x60,0x46,0x22,0x6a,0x60,0x46,0x22,0x6a,0x60,0x46,0x8c,0x07,0x46,0x8c,0x07,0x46,0x8c,0x07,0x46,0x8c,0x07,0x46,0x8c,0x07,0x46,0x8c,0x07,0x46,0x8c,0x07,0x46,0x8c,0x07,0x46,0x8c,0x07,0x46,0x22,0x6a,0x60,0x46,0x22,0x6a,0x60,0x46,0x8c,0x07,0x46,0x22,0x6a,0x60,0x46,0x22,0x6a,0x60,0x46,0x8c,0x07,0x46,0x22,0x6a,0x60,0x46,0x8c,0x07,0x46,0x22,0x6a,0x60,0x46,0x22,0x6a,0x60,0x46,0x8c,0x07,0x46,0x22,0x6a,0x60,0x46,0x22,0x69,0x60,0x46,0x22,0x69,0x60,0x46,0x22,0x69,0x60,0x46,0x22,0x69,0x60,0x46,0x22,0x89,0x07, // code info + 0xb0, // LOAD_FAST 0 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x10,0x04, // LOAD_CONST_STRING 'apple.com' + 0x10,0x05, // LOAD_CONST_STRING 'apple' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x52, // LOAD_CONST_TRUE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x10,0x06, // LOAD_CONST_STRING 'aws' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x10,0x07, // LOAD_CONST_STRING 'binance' + 0x50, // LOAD_CONST_FALSE + 0x52, // LOAD_CONST_TRUE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x10,0x07, // LOAD_CONST_STRING 'binance' + 0x50, // LOAD_CONST_FALSE + 0x52, // LOAD_CONST_TRUE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x10,0x08, // LOAD_CONST_STRING 'bitbucket' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x10,0x09, // LOAD_CONST_STRING 'bitfinex' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x10,0x0a, // LOAD_CONST_STRING 'bitwarden' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x0d, // LOAD_CONST_OBJ 13 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x0e, // LOAD_CONST_OBJ 14 + 0x10,0x0b, // LOAD_CONST_STRING 'cloudflare' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x0f, // LOAD_CONST_OBJ 15 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x10, // LOAD_CONST_OBJ 16 + 0x10,0x0c, // LOAD_CONST_STRING 'coinbase' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x11, // LOAD_CONST_OBJ 17 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x12, // LOAD_CONST_OBJ 18 + 0x10,0x0d, // LOAD_CONST_STRING 'dashlane' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x13, // LOAD_CONST_OBJ 19 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0x10,0x0e, // LOAD_CONST_STRING 'dropbox' + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x15, // LOAD_CONST_OBJ 21 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x14, // LOAD_CONST_OBJ 20 + 0x10,0x0e, // LOAD_CONST_STRING 'dropbox' + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x16, // LOAD_CONST_OBJ 22 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x17, // LOAD_CONST_OBJ 23 + 0x10,0x0f, // LOAD_CONST_STRING 'duo' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x18, // LOAD_CONST_OBJ 24 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x19, // LOAD_CONST_OBJ 25 + 0x10,0x10, // LOAD_CONST_STRING 'facebook' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x1a, // LOAD_CONST_OBJ 26 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x1b, // LOAD_CONST_OBJ 27 + 0x10,0x11, // LOAD_CONST_STRING 'fastmail' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x1c, // LOAD_CONST_OBJ 28 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x1d, // LOAD_CONST_OBJ 29 + 0x10,0x11, // LOAD_CONST_STRING 'fastmail' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x1e, // LOAD_CONST_OBJ 30 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x1f, // LOAD_CONST_OBJ 31 + 0x10,0x12, // LOAD_CONST_STRING 'fedora' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x20, // LOAD_CONST_OBJ 32 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x10,0x13, // LOAD_CONST_STRING 'gandi.net' + 0x10,0x14, // LOAD_CONST_STRING 'gandi' + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x21, // LOAD_CONST_OBJ 33 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x10,0x13, // LOAD_CONST_STRING 'gandi.net' + 0x10,0x14, // LOAD_CONST_STRING 'gandi' + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x22, // LOAD_CONST_OBJ 34 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x10,0x15, // LOAD_CONST_STRING 'gemini.com' + 0x10,0x16, // LOAD_CONST_STRING 'gemini' + 0x50, // LOAD_CONST_FALSE + 0x52, // LOAD_CONST_TRUE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x23, // LOAD_CONST_OBJ 35 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x10,0x17, // LOAD_CONST_STRING 'github.com' + 0x10,0x18, // LOAD_CONST_STRING 'github' + 0x52, // LOAD_CONST_TRUE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x24, // LOAD_CONST_OBJ 36 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x10,0x17, // LOAD_CONST_STRING 'github.com' + 0x10,0x18, // LOAD_CONST_STRING 'github' + 0x52, // LOAD_CONST_TRUE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x25, // LOAD_CONST_OBJ 37 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x10,0x19, // LOAD_CONST_STRING 'gitlab.com' + 0x10,0x1a, // LOAD_CONST_STRING 'gitlab' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x26, // LOAD_CONST_OBJ 38 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x10,0x1b, // LOAD_CONST_STRING 'google.com' + 0x10,0x1c, // LOAD_CONST_STRING 'google' + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x27, // LOAD_CONST_OBJ 39 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x10,0x1b, // LOAD_CONST_STRING 'google.com' + 0x10,0x1c, // LOAD_CONST_STRING 'google' + 0x51, // LOAD_CONST_NONE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x28, // LOAD_CONST_OBJ 40 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x10,0x1d, // LOAD_CONST_STRING 'invity.io' + 0x10,0x1e, // LOAD_CONST_STRING 'invity' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x29, // LOAD_CONST_OBJ 41 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x2a, // LOAD_CONST_OBJ 42 + 0x10,0x1f, // LOAD_CONST_STRING 'keeper' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x2b, // LOAD_CONST_OBJ 43 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x2c, // LOAD_CONST_OBJ 44 + 0x10,0x1f, // LOAD_CONST_STRING 'keeper' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x2d, // LOAD_CONST_OBJ 45 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x10,0x20, // LOAD_CONST_STRING 'kraken.com' + 0x10,0x21, // LOAD_CONST_STRING 'kraken' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x2e, // LOAD_CONST_OBJ 46 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x2f, // LOAD_CONST_OBJ 47 + 0x10,0x22, // LOAD_CONST_STRING 'login.gov' + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x30, // LOAD_CONST_OBJ 48 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x31, // LOAD_CONST_OBJ 49 + 0x10,0x23, // LOAD_CONST_STRING 'microsoft' + 0x50, // LOAD_CONST_FALSE + 0x50, // LOAD_CONST_FALSE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x32, // LOAD_CONST_OBJ 50 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x10,0x24, // LOAD_CONST_STRING 'mojeid.cz' + 0x10,0x25, // LOAD_CONST_STRING 'mojeid' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x33, // LOAD_CONST_OBJ 51 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x34, // LOAD_CONST_OBJ 52 + 0x10,0x26, // LOAD_CONST_STRING 'namecheap' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x35, // LOAD_CONST_OBJ 53 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x10,0x27, // LOAD_CONST_STRING 'proton.me' + 0x10,0x28, // LOAD_CONST_STRING 'proton' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x36, // LOAD_CONST_OBJ 54 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x37, // LOAD_CONST_OBJ 55 + 0x10,0x29, // LOAD_CONST_STRING 'slushpool' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x38, // LOAD_CONST_OBJ 56 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x37, // LOAD_CONST_OBJ 55 + 0x10,0x29, // LOAD_CONST_STRING 'slushpool' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x39, // LOAD_CONST_OBJ 57 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x10,0x2a, // LOAD_CONST_STRING 'stripe.com' + 0x10,0x2b, // LOAD_CONST_STRING 'stripe' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x3a, // LOAD_CONST_OBJ 58 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x3b, // LOAD_CONST_OBJ 59 + 0x10,0x2c, // LOAD_CONST_STRING 'tutanota' + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x3c, // LOAD_CONST_OBJ 60 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x3d, // LOAD_CONST_OBJ 61 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x3e, // LOAD_CONST_OBJ 62 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x3f, // LOAD_CONST_OBJ 63 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x40, // LOAD_CONST_OBJ 64 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x41, // LOAD_CONST_OBJ 65 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x42, // LOAD_CONST_OBJ 66 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x43, // LOAD_CONST_OBJ 67 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x23,0x44, // LOAD_CONST_OBJ 68 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x02, // LOAD_GLOBAL 'FIDOApp' + 0x23,0x45, // LOAD_CONST_OBJ 69 + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x51, // LOAD_CONST_NONE + 0x34,0x05, // CALL_FUNCTION 5 + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_knownapps_by_rp_id_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_knownapps_by_rp_id_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 936, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 3, + .line_info = fun_data_apps_webauthn_knownapps_by_rp_id_hash + 5, + .line_info_top = fun_data_apps_webauthn_knownapps_by_rp_id_hash + 165, + .opcodes = fun_data_apps_webauthn_knownapps_by_rp_id_hash + 165, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_knownapps__lt_module_gt_[] = { + &raw_code_apps_webauthn_knownapps_FIDOApp, + &raw_code_apps_webauthn_knownapps_by_rp_id_hash, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_knownapps__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_knownapps__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 22, + #endif + .children = (void *)&children_apps_webauthn_knownapps__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_webauthn_knownapps__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_webauthn_knownapps__lt_module_gt_ + 7, + .opcodes = fun_data_apps_webauthn_knownapps__lt_module_gt_ + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_webauthn_knownapps[56] = { + MP_QSTR_apps_slash_webauthn_slash_knownapps_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_FIDOApp, + MP_QSTR_by_rp_id_hash, + MP_QSTR_apple_dot_com, + MP_QSTR_apple, + MP_QSTR_aws, + MP_QSTR_binance, + MP_QSTR_bitbucket, + MP_QSTR_bitfinex, + MP_QSTR_bitwarden, + MP_QSTR_cloudflare, + MP_QSTR_coinbase, + MP_QSTR_dashlane, + MP_QSTR_dropbox, + MP_QSTR_duo, + MP_QSTR_facebook, + MP_QSTR_fastmail, + MP_QSTR_fedora, + MP_QSTR_gandi_dot_net, + MP_QSTR_gandi, + MP_QSTR_gemini_dot_com, + MP_QSTR_gemini, + MP_QSTR_github_dot_com, + MP_QSTR_github, + MP_QSTR_gitlab_dot_com, + MP_QSTR_gitlab, + MP_QSTR_google_dot_com, + MP_QSTR_google, + MP_QSTR_invity_dot_io, + MP_QSTR_invity, + MP_QSTR_keeper, + MP_QSTR_kraken_dot_com, + MP_QSTR_kraken, + MP_QSTR_login_dot_gov, + MP_QSTR_microsoft, + MP_QSTR_mojeid_dot_cz, + MP_QSTR_mojeid, + MP_QSTR_namecheap, + MP_QSTR_proton_dot_me, + MP_QSTR_proton, + MP_QSTR_slushpool, + MP_QSTR_stripe_dot_com, + MP_QSTR_stripe, + MP_QSTR_tutanota, + MP_QSTR___init__, + MP_QSTR_label, + MP_QSTR_icon_name, + MP_QSTR_use_sign_count, + MP_QSTR_use_self_attestation, + MP_QSTR_use_compact, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_rp_id_hash, + MP_QSTR_self, +}; + +// constants +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_0 = {{&mp_type_bytes}, 34311, 32, (const byte*)"\x22\x65\xcb\xcc\x3e\xf2\x41\x06\xc9\xe0\xed\xdb\xd0\x4f\x3c\xca\x0d\x03\x22\x5d\xa3\xfc\xca\x8e\x2d\x86\xf7\xa3\x94\xaf\x92\x83"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_1 = {{&mp_type_bytes}, 33309, 32, (const byte*)"\x96\x89\x78\xa2\x99\x53\xde\x52\xd3\xef\x0f\x0c\x71\xb7\xb7\xb6\xb1\xaf\x9f\x08\xe2\x57\x89\x6a\x8d\x81\x26\x91\x85\x30\x29\x3b"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_3 = {{&mp_type_bytes}, 27711, 32, (const byte*)"\xc3\x40\x8c\x04\x47\x88\xae\xa5\xb3\xdf\x30\x89\x52\xfd\x8c\xa3\xc7\x0e\x21\xfe\xf4\xf6\xc1\xc2\x37\x4c\xaa\x1d\xf9\xb2\x8d\xdd"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_5 = {{&mp_type_bytes}, 41029, 32, (const byte*)"\x20\xf6\x61\xb1\x94\x0c\x34\x70\xac\x54\xfa\x2e\xb4\x99\x90\xfd\x33\xb5\x6d\xe8\xde\x60\x18\x70\xff\x02\xa8\x06\x0f\x3b\x7c\x58"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_7 = {{&mp_type_bytes}, 59054, 32, (const byte*)"\x12\x74\x3b\x92\x12\x97\xb7\x7f\x11\x35\xe4\x1f\xde\xdd\x4a\x84\x6a\xfe\x82\xe1\xf3\x69\x32\xa9\x91\x2f\x3b\x0d\x8d\xfb\x7d\x0e"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_9 = {{&mp_type_bytes}, 50869, 32, (const byte*)"\x30\x2f\xd5\xb4\x49\x2a\x07\xb9\xfe\xbb\x30\xe7\x32\x69\xec\xa5\x01\x20\x5c\xcf\xe0\xc2\x0b\xf7\xb4\x72\xfa\x2d\x31\xe2\x1e\x63"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_11 = {{&mp_type_bytes}, 16786, 32, (const byte*)"\xa3\x4d\x30\x9f\xfa\x28\xc1\x24\x14\xb8\xba\x6c\x07\xee\x1e\xfa\xe1\xa8\x5e\x8a\x04\x61\x48\x59\xa6\x7c\x04\x93\xb6\x95\x61\x90"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_13 = {{&mp_type_bytes}, 3988, 32, (const byte*)"\x19\x81\x5c\xb9\xa5\xfb\x25\xd8\x05\xde\xbd\x7b\x32\x53\x7e\xd5\x78\x63\x9b\x3e\xd1\x08\xec\x7c\x5b\xb9\xe8\xf0\xdf\xb1\x68\x73"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_15 = {{&mp_type_bytes}, 40558, 32, (const byte*)"\xe2\x7d\x61\xb4\xe9\x9d\xe0\xed\x98\x16\x3c\xb3\x8b\x7a\xf9\x33\xc6\x66\x5e\x55\x09\xe8\x49\x08\x37\x05\x58\x13\x77\x8e\x23\x6a"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_17 = {{&mp_type_bytes}, 59853, 32, (const byte*)"\x68\x20\x19\x15\xd7\x4c\xb4\x2a\xf5\xb3\xcc\x5c\x95\xb9\x55\x3e\x3e\x3a\x83\xb4\xd2\xa9\x3b\x45\xfb\xad\xaa\x84\x69\xff\x8e\x6e"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_19 = {{&mp_type_bytes}, 64190, 32, (const byte*)"\xc5\x0f\x8a\x7b\x70\x8e\x92\xf8\x2e\x7a\x50\xe2\xbd\xc5\x5d\x8f\xd9\x1a\x22\xfe\x6b\x29\xc0\xcd\xf7\x80\x55\x30\x84\x2a\xf5\x81"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_21 = {{&mp_type_bytes}, 22839, 32, (const byte*)"\x82\xf4\xa8\xc9\x5f\xec\x94\xb2\x6b\xaf\x9e\x37\x25\x0e\x95\x63\xd9\xa3\x66\xc7\xbe\x26\x1c\xa4\xdd\x01\x01\xf4\xd5\xef\xcb\x83"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_22 = {{&mp_type_bytes}, 45841, 32, (const byte*)"\xf3\xe2\x04\x2f\x94\x60\x7d\xa0\xa9\xc1\xf3\xb9\x5e\x0d\x2f\x2b\xb2\xe0\x69\xc5\xbb\x4f\xa7\x64\xaf\xfa\x64\x7d\x84\x7b\x7e\xd6"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_24 = {{&mp_type_bytes}, 2222, 32, (const byte*)"\x31\x19\x33\x28\xf8\xe2\x1d\xfb\x6c\x99\xf3\x22\xd2\x2d\x7b\x0b\x50\x87\x78\xe6\x4f\xfb\xba\x86\xe5\x22\x93\x37\x90\x31\xb8\x74"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_26 = {{&mp_type_bytes}, 49632, 32, (const byte*)"\x69\x66\xab\xe3\x67\x4e\xa2\xf5\x30\x79\xeb\x71\x01\x97\x84\x8c\x9b\xe6\xf3\x63\x99\x2f\xd0\x29\xe9\x89\x84\x47\xcb\x9f\x00\x84"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_28 = {{&mp_type_bytes}, 29282, 32, (const byte*)"\x3f\xcb\x82\x82\xb8\x46\x76\xeb\xee\x71\x40\xe3\x9e\xca\xe1\x6e\xeb\x19\x90\x64\xc7\xc7\xe4\x43\x2e\x28\xc9\xb5\x7e\x4b\x60\x39"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_30 = {{&mp_type_bytes}, 43962, 32, (const byte*)"\x9d\x61\x44\x2f\x5c\xe1\x33\xbd\x46\x54\x4f\xc4\x2f\x0a\x6d\x54\xc0\xde\xb8\x88\x40\xca\xc2\xb6\xae\xfa\x65\x14\xf8\x93\x49\xe9"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_32 = {{&mp_type_bytes}, 59850, 32, (const byte*)"\xa4\xe2\x2d\xca\xfe\xa7\xe9\x0e\x12\x89\x50\x11\x39\x89\xfc\x45\x97\x8d\xc9\xfb\x87\x76\x75\x60\x51\x6c\x1c\x69\xdf\xdf\xd1\x96"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_33 = {{&mp_type_bytes}, 36466, 32, (const byte*)"\x54\xce\x65\x1e\xd7\x15\xb4\xaa\xa7\x55\xee\xce\xbd\x4e\xa0\x95\x08\x15\xb3\x34\xbd\x07\xd1\x09\x89\x3e\x96\x30\x18\xcd\xdb\xd9"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_34 = {{&mp_type_bytes}, 2737, 32, (const byte*)"\x86\x06\xc1\x68\xe5\x1f\xc1\x31\xe5\x46\xad\x57\xa1\x9f\x32\x97\xb1\x1e\x0e\x5c\xe8\x3e\x8e\x89\x31\xb2\x85\x08\x11\xcf\xa8\x81"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_35 = {{&mp_type_bytes}, 2252, 32, (const byte*)"\x70\x61\x7d\xfe\xd0\x65\x86\x3a\xf4\x7c\x15\x55\x6c\x91\x79\x88\x80\x82\x8c\xc4\x07\xfd\xf7\x0a\xe8\x50\x11\x56\x94\x65\xa0\x75"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_36 = {{&mp_type_bytes}, 47175, 32, (const byte*)"\x3a\xeb\x00\x24\x60\x38\x1c\x6f\x25\x8e\x83\x95\xd3\x02\x6f\x57\x1f\x0d\x9a\x76\x48\x8d\xcd\x83\x76\x39\xb1\x3a\xed\x31\x65\x60"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_37 = {{&mp_type_bytes}, 18287, 32, (const byte*)"\xe7\xbe\x96\xa5\x1b\xd0\x19\x2a\x72\x84\x0d\x2e\x59\x09\xf7\x2b\xa8\x2a\x2f\xe9\x3f\xaa\x62\x4f\x03\x39\x6b\x30\xe4\x94\xc8\x04"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_38 = {{&mp_type_bytes}, 36139, 32, (const byte*)"\xa5\x46\x72\xb2\x22\xc4\xcf\x95\xe1\x51\xed\x8d\x4d\x3c\x76\x7a\x6c\xc3\x49\x43\x59\x43\x79\x4e\x88\x4f\x3d\x02\x3a\x82\x29\xfd"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_39 = {{&mp_type_bytes}, 61725, 32, (const byte*)"\xd4\xc9\xd9\x02\x73\x26\x27\x1a\x89\xce\x51\xfc\xaf\x32\x8e\xd6\x73\xf1\x7b\xe3\x34\x69\xff\x97\x9e\x8a\xb8\xdd\x50\x1e\x66\x4f"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_40 = {{&mp_type_bytes}, 52326, 32, (const byte*)"\x9c\x2e\x02\xc4\xff\xf7\x76\x62\xe1\xde\x80\x3b\x43\x9e\x11\xc0\xdd\x0c\x3f\x66\x42\xce\xc4\xe6\x84\xd6\x49\x87\x0a\xd1\xbb\x59"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_41 = {{&mp_type_bytes}, 52628, 32, (const byte*)"\x53\xa1\x5b\xa4\x2a\x7c\x03\x25\xb8\xdb\xee\x28\x96\x34\xa4\x8f\x58\xae\xa3\x24\x66\x45\xd5\xff\x41\x8f\x9b\xb8\x81\x98\x85\xa9"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_43 = {{&mp_type_bytes}, 56716, 32, (const byte*)"\xd6\x5f\x00\x5e\xf4\xde\xa9\x32\x0c\x99\x73\x05\x3c\x95\xff\x60\x20\x11\x5d\x5f\xec\x1b\x7f\xee\x41\xa5\x78\xe1\x8d\xf9\xca\x8c"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_45 = {{&mp_type_bytes}, 36211, 32, (const byte*)"\x3f\x37\x50\x85\x33\x2c\xac\x4f\xad\xf9\xe5\xdd\x28\xcd\x54\x69\x8f\xab\x98\x4b\x75\xd9\xc3\x6a\x07\x2c\xb1\x60\x77\x3f\x91\x52"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_46 = {{&mp_type_bytes}, 56136, 32, (const byte*)"\xf8\x3f\xc3\xa1\xb2\x89\xa0\xde\xc5\xc1\xc8\xaa\x07\xe9\xb5\xdd\x9c\xbb\x76\xf6\xb2\xf5\x60\x60\x17\x66\x72\x68\xe5\xb9\xc4\x5e"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_48 = {{&mp_type_bytes}, 29556, 32, (const byte*)"\x35\x6c\x9e\xd4\xa0\x93\x21\xb9\x69\x5f\x1e\xaf\x91\x82\x03\xf1\xb5\x5f\x68\x9d\xa6\x1f\xbc\x96\x18\x4c\x15\x7d\xda\x68\x0c\x81"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_50 = {{&mp_type_bytes}, 45488, 32, (const byte*)"\xab\x2d\xaf\x07\x43\xde\x78\x2a\x70\x18\x9a\x0f\x5e\xfc\x30\x90\x2f\x92\x5b\x9f\x9a\x18\xc5\xd7\x14\x1b\x7b\x12\xf8\xa0\x10\x0c"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_51 = {{&mp_type_bytes}, 63977, 32, (const byte*)"\x85\x71\x01\x36\x1b\x20\xa9\x54\x4c\xdb\x9b\xef\x65\x85\x8b\x6b\xac\x70\x13\x55\x0d\x8f\x84\xf7\xef\xee\x25\x2b\x96\xfa\x7c\x1e"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_53 = {{&mp_type_bytes}, 41201, 32, (const byte*)"\xa2\x59\xc2\xb5\x0d\x78\x50\x80\xf8\xbe\x7f\x17\xca\xf8\x15\x6c\x8d\x18\xf4\x7e\xdb\xaf\x51\x8f\xa6\xf5\x9f\x29\xcd\x28\xf1\x5c"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_54 = {{&mp_type_bytes}, 17326, 32, (const byte*)"\x08\xb2\xa3\xd4\x19\x39\xaa\x31\x66\x84\x93\xcb\x36\xcd\xcc\x4f\x16\xc4\xd9\xb4\xc8\x23\x8b\x73\xc2\xf6\x72\xc0\x33\x00\x71\x97"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_56 = {{&mp_type_bytes}, 32889, 32, (const byte*)"\x38\x80\x4f\x2e\xff\x74\xf2\x28\xb7\x41\x51\xc2\x01\xaa\x82\xe7\xe8\xee\xfc\xac\xfe\xcf\x23\xfa\x14\x6b\x13\xa3\x76\x66\x31\x4f"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_57 = {{&mp_type_bytes}, 21157, 32, (const byte*)"\x2a\xc6\xad\x09\xa6\xd0\x77\x2c\x44\xda\x73\xa6\x07\x2f\x9d\x24\x0f\xc6\x85\x4a\x70\xd7\x9c\x10\x24\xff\x7c\x75\x59\x59\x32\x92"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_58 = {{&mp_type_bytes}, 19194, 32, (const byte*)"\xfa\xbe\xec\xe3\x98\x2f\xad\x9d\xdc\xc9\x8f\x91\xbd\x2e\x75\xaf\xc7\xd1\xf4\xca\x54\x49\x29\xb2\xd0\xd0\x42\x12\xdf\xfa\x30\xfa"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_60 = {{&mp_type_bytes}, 20314, 32, (const byte*)"\x1b\x3c\x16\xdd\x2f\x7c\x46\xe2\xb4\xc2\x89\xdc\x16\x74\x6b\xcc\x60\xdf\xcf\x0f\xb8\x18\xe1\x32\x15\x52\x6e\x14\x08\xe7\xf4\x68"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_62 = {{&mp_type_bytes}, 30082, 32, (const byte*)"\xa6\x42\xd2\x1b\x7c\x6d\x55\xe1\xce\x23\xc5\x39\x98\x28\xd2\xc7\x49\xbf\x6a\x6e\xf2\xfe\x03\xcc\x9e\x10\xcd\xf4\xed\x53\x08\x8b"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_64 = {{&mp_type_bytes}, 59681, 32, (const byte*)"\x74\xa6\xea\x92\x13\xc9\x9c\x2f\x74\xb2\x24\x92\xb3\x20\xcf\x40\x26\x2a\x94\xc1\xa9\x50\xa0\x39\x7f\x29\x25\x0b\x60\x84\x1e\xf0"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_66 = {{&mp_type_bytes}, 13049, 32, (const byte*)"\xf9\x5b\xc7\x38\x28\xee\x21\x0f\x9f\xd3\xbb\xe7\x2d\x97\x90\x80\x13\xb0\xa3\x75\x9e\x9a\xea\x3d\x0a\xe3\x18\x76\x6c\xd2\xe1\xad"}; +static const mp_obj_str_t const_obj_apps_webauthn_knownapps_68 = {{&mp_type_bytes}, 51471, 32, (const byte*)"\xc4\x6c\xef\x82\xad\x1b\x54\x64\x77\x59\x1d\x00\x8b\x08\x75\x9e\xc3\xe6\xd2\xec\xb4\xf3\x94\x74\xbf\xea\x69\x69\x92\x5d\x03\xb7"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_webauthn_knownapps[70] = { + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_0), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_1), + MP_ROM_QSTR(MP_QSTR_aws_dot_amazon_dot_com), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_3), + MP_ROM_QSTR(MP_QSTR_www_dot_binance_dot_com), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_5), + MP_ROM_QSTR(MP_QSTR_binance_dot_com), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_7), + MP_ROM_QSTR(MP_QSTR_bitbucket_dot_org), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_9), + MP_ROM_QSTR(MP_QSTR_www_dot_bitfinex_dot_com), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_11), + MP_ROM_QSTR(MP_QSTR_vault_dot_bitwarden_dot_com), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_13), + MP_ROM_QSTR(MP_QSTR_dash_dot_cloudflare_dot_com), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_15), + MP_ROM_QSTR(MP_QSTR_coinbase_dot_com), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_17), + MP_ROM_QSTR(MP_QSTR_www_dot_dashlane_dot_com), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_19), + MP_ROM_QSTR(MP_QSTR_www_dot_dropbox_dot_com), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_21), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_22), + MP_ROM_QSTR(MP_QSTR_duosecurity_dot_com), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_24), + MP_ROM_QSTR(MP_QSTR_facebook_dot_com), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_26), + MP_ROM_QSTR(MP_QSTR_www_dot_fastmail_dot_com), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_28), + MP_ROM_QSTR(MP_QSTR_fastmail_dot_com), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_30), + MP_ROM_QSTR(MP_QSTR_fedoraproject_dot_org), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_32), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_33), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_34), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_35), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_36), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_37), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_38), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_39), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_40), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_41), + MP_ROM_QSTR(MP_QSTR_keepersecurity_dot_com), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_43), + MP_ROM_QSTR(MP_QSTR_keepersecurity_dot_eu), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_45), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_46), + MP_ROM_QSTR(MP_QSTR_secure_dot_login_dot_gov), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_48), + MP_ROM_QSTR(MP_QSTR_login_dot_microsoft_dot_com), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_50), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_51), + MP_ROM_QSTR(MP_QSTR_www_dot_namecheap_dot_com), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_53), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_54), + MP_ROM_QSTR(MP_QSTR_slushpool_dot_com), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_56), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_57), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_58), + MP_ROM_QSTR(MP_QSTR_tutanota_dot_com), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_60), + MP_ROM_QSTR(MP_QSTR_u2f_dot_bin_dot_coffee), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_62), + MP_ROM_QSTR(MP_QSTR_webauthn_dot_bin_dot_coffee), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_64), + MP_ROM_QSTR(MP_QSTR_webauthn_dot_io), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_66), + MP_ROM_QSTR(MP_QSTR_webauthn_dot_me), + MP_ROM_PTR(&const_obj_apps_webauthn_knownapps_68), + MP_ROM_QSTR(MP_QSTR_demo_dot_yubico_dot_com), +}; + +static const mp_frozen_module_t frozen_module_apps_webauthn_knownapps = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_webauthn_knownapps, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_webauthn_knownapps, + }, + .rc = &raw_code_apps_webauthn_knownapps__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_webauthn_list_resident_credentials +// - original source file: build/firmware/src/apps/webauthn/list_resident_credentials.mpy +// - frozen file name: apps/webauthn/list_resident_credentials.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/webauthn/list_resident_credentials.py, scope apps_webauthn_list_resident_credentials__lt_module_gt_ +static const byte fun_data_apps_webauthn_list_resident_credentials__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'list_resident_credentials' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_list_resident_credentials__lt_module_gt_ +// frozen bytecode for file apps/webauthn/list_resident_credentials.py, scope apps_webauthn_list_resident_credentials_list_resident_credentials +static const byte fun_data_apps_webauthn_list_resident_credentials_list_resident_credentials[97] = { + 0xe1,0x40,0x1d, // prelude + 0x02,0x1c, // names: list_resident_credentials, msg + 0x80,0x09,0x31,0x4b,0x4b,0x21,0x22,0x24,0x6d,0x84,0x0f,0x48,0x05, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x03, // LOAD_CONST_STRING 'WebAuthnCredential' + 0x10,0x04, // LOAD_CONST_STRING 'WebAuthnCredentials' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x05, // IMPORT_NAME 'trezor.messages' + 0x1c,0x03, // IMPORT_FROM 'WebAuthnCredential' + 0x27,0x05, // STORE_DEREF 5 + 0x1c,0x04, // IMPORT_FROM 'WebAuthnCredentials' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'confirm_action' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.ui.layouts' + 0x1c,0x06, // IMPORT_FROM 'confirm_action' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x08, // LOAD_CONST_STRING 'resident_credentials' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME '' + 0x1c,0x08, // IMPORT_FROM 'resident_credentials' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x10,0x0a, // LOAD_CONST_STRING 'description' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x10,0x0b, // LOAD_CONST_STRING 'verb' + 0x10,0x0c, // LOAD_CONST_STRING 'EXPORT' + 0x34,0x84,0x02, // CALL_FUNCTION 514 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0xb3, // LOAD_FAST 3 + 0x14,0x0d, // LOAD_METHOD 'find_all' + 0x36,0x00, // CALL_METHOD 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x10,0x0e, // LOAD_CONST_STRING 'credentials' + 0xb4, // LOAD_FAST 4 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_list_resident_credentials_list_resident_credentials +// frozen bytecode for file apps/webauthn/list_resident_credentials.py, scope apps_webauthn_list_resident_credentials_list_resident_credentials__lt_listcomp_gt_ +static const byte fun_data_apps_webauthn_list_resident_credentials_list_resident_credentials__lt_listcomp_gt_[98] = { + 0x82,0x20,0x22, // prelude + 0x0f,0x1d,0x1d, // names: , *, * + 0x80,0x15,0x2b,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25, // code info + 0x2b,0x00, // BUILD_LIST 0 + 0xb1, // LOAD_FAST 1 + 0x5f, // GET_ITER_STACK + 0x4b,0x47, // FOR_ITER 71 + 0xc2, // STORE_FAST 2 + 0x25,0x00, // LOAD_DEREF 0 + 0x10,0x10, // LOAD_CONST_STRING 'index' + 0xb2, // LOAD_FAST 2 + 0x13,0x10, // LOAD_ATTR 'index' + 0x10,0x11, // LOAD_CONST_STRING 'id' + 0xb2, // LOAD_FAST 2 + 0x13,0x11, // LOAD_ATTR 'id' + 0x10,0x12, // LOAD_CONST_STRING 'rp_id' + 0xb2, // LOAD_FAST 2 + 0x13,0x12, // LOAD_ATTR 'rp_id' + 0x10,0x13, // LOAD_CONST_STRING 'rp_name' + 0xb2, // LOAD_FAST 2 + 0x13,0x13, // LOAD_ATTR 'rp_name' + 0x10,0x14, // LOAD_CONST_STRING 'user_id' + 0xb2, // LOAD_FAST 2 + 0x13,0x14, // LOAD_ATTR 'user_id' + 0x10,0x15, // LOAD_CONST_STRING 'user_name' + 0xb2, // LOAD_FAST 2 + 0x13,0x15, // LOAD_ATTR 'user_name' + 0x10,0x16, // LOAD_CONST_STRING 'user_display_name' + 0xb2, // LOAD_FAST 2 + 0x13,0x16, // LOAD_ATTR 'user_display_name' + 0x10,0x17, // LOAD_CONST_STRING 'creation_time' + 0xb2, // LOAD_FAST 2 + 0x13,0x17, // LOAD_ATTR 'creation_time' + 0x10,0x18, // LOAD_CONST_STRING 'hmac_secret' + 0xb2, // LOAD_FAST 2 + 0x13,0x18, // LOAD_ATTR 'hmac_secret' + 0x10,0x19, // LOAD_CONST_STRING 'use_sign_count' + 0xb2, // LOAD_FAST 2 + 0x13,0x19, // LOAD_ATTR 'use_sign_count' + 0x10,0x1a, // LOAD_CONST_STRING 'algorithm' + 0xb2, // LOAD_FAST 2 + 0x13,0x1a, // LOAD_ATTR 'algorithm' + 0x10,0x1b, // LOAD_CONST_STRING 'curve' + 0xb2, // LOAD_FAST 2 + 0x13,0x1b, // LOAD_ATTR 'curve' + 0x34,0x98,0x00, // CALL_FUNCTION 3072 + 0x2f,0x14, // STORE_COMP 20 + 0x42,0xb7,0x7f, // JUMP -73 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_list_resident_credentials_list_resident_credentials__lt_listcomp_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_list_resident_credentials_list_resident_credentials__lt_listcomp_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 98, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 33, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_webauthn_list_resident_credentials_list_resident_credentials__lt_listcomp_gt_ + 6, + .line_info_top = fun_data_apps_webauthn_list_resident_credentials_list_resident_credentials__lt_listcomp_gt_ + 20, + .opcodes = fun_data_apps_webauthn_list_resident_credentials_list_resident_credentials__lt_listcomp_gt_ + 20, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_list_resident_credentials_list_resident_credentials[] = { + &raw_code_apps_webauthn_list_resident_credentials_list_resident_credentials__lt_listcomp_gt_, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_list_resident_credentials_list_resident_credentials = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_list_resident_credentials_list_resident_credentials, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 97, + #endif + .children = (void *)&children_apps_webauthn_list_resident_credentials_list_resident_credentials, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_webauthn_list_resident_credentials_list_resident_credentials + 5, + .line_info_top = fun_data_apps_webauthn_list_resident_credentials_list_resident_credentials + 17, + .opcodes = fun_data_apps_webauthn_list_resident_credentials_list_resident_credentials + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_list_resident_credentials__lt_module_gt_[] = { + &raw_code_apps_webauthn_list_resident_credentials_list_resident_credentials, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_list_resident_credentials__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_list_resident_credentials__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_webauthn_list_resident_credentials__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_webauthn_list_resident_credentials__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_webauthn_list_resident_credentials__lt_module_gt_ + 6, + .opcodes = fun_data_apps_webauthn_list_resident_credentials__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_webauthn_list_resident_credentials[30] = { + MP_QSTR_apps_slash_webauthn_slash_list_resident_credentials_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_list_resident_credentials, + MP_QSTR_WebAuthnCredential, + MP_QSTR_WebAuthnCredentials, + MP_QSTR_trezor_dot_messages, + MP_QSTR_confirm_action, + MP_QSTR_trezor_dot_ui_dot_layouts, + MP_QSTR_resident_credentials, + MP_QSTR_, + MP_QSTR_description, + MP_QSTR_verb, + MP_QSTR_EXPORT, + MP_QSTR_find_all, + MP_QSTR_credentials, + MP_QSTR__lt_listcomp_gt_, + MP_QSTR_index, + MP_QSTR_id, + MP_QSTR_rp_id, + MP_QSTR_rp_name, + MP_QSTR_user_id, + MP_QSTR_user_name, + MP_QSTR_user_display_name, + MP_QSTR_creation_time, + MP_QSTR_hmac_secret, + MP_QSTR_use_sign_count, + MP_QSTR_algorithm, + MP_QSTR_curve, + MP_QSTR_msg, + MP_QSTR__star_, +}; + +// constants +static const mp_obj_str_t const_obj_apps_webauthn_list_resident_credentials_2 = {{&mp_type_str}, 25434, 63, (const byte*)"\x45\x78\x70\x6f\x72\x74\x20\x69\x6e\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x20\x61\x62\x6f\x75\x74\x20\x74\x68\x65\x20\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x73\x20\x73\x74\x6f\x72\x65\x64\x20\x6f\x6e\x20\x74\x68\x69\x73\x20\x64\x65\x76\x69\x63\x65\x3f"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_webauthn_list_resident_credentials[3] = { + MP_ROM_QSTR(MP_QSTR_credentials_list), + MP_ROM_QSTR(MP_QSTR_List_space_credentials), + MP_ROM_PTR(&const_obj_apps_webauthn_list_resident_credentials_2), +}; + +static const mp_frozen_module_t frozen_module_apps_webauthn_list_resident_credentials = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_webauthn_list_resident_credentials, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_webauthn_list_resident_credentials, + }, + .rc = &raw_code_apps_webauthn_list_resident_credentials__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_webauthn_remove_resident_credential +// - original source file: build/firmware/src/apps/webauthn/remove_resident_credential.mpy +// - frozen file name: apps/webauthn/remove_resident_credential.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/webauthn/remove_resident_credential.py, scope apps_webauthn_remove_resident_credential__lt_module_gt_ +static const byte fun_data_apps_webauthn_remove_resident_credential__lt_module_gt_[12] = { + 0x00,0x08, // prelude + 0x01, // names: + 0x40,0x60,0x20, // code info + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x02, // STORE_NAME 'remove_resident_credential' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_remove_resident_credential__lt_module_gt_ +// frozen bytecode for file apps/webauthn/remove_resident_credential.py, scope apps_webauthn_remove_resident_credential_remove_resident_credential +static const byte fun_data_apps_webauthn_remove_resident_credential_remove_resident_credential[179] = { + 0xe1,0x40,0x30, // prelude + 0x02,0x17, // names: remove_resident_credential, msg + 0x80,0x07,0x25,0x25,0x2b,0x2b,0x4b,0x4b,0x29,0x28,0x27,0x48,0x27,0x25,0x48,0x21,0x22,0x25,0x25,0x6d,0x20,0x2b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x03, // IMPORT_NAME 'storage.device' + 0xc1, // STORE_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x04, // IMPORT_NAME 'storage.resident_credentials' + 0xc1, // STORE_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x05, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'trezor' + 0x1c,0x05, // IMPORT_FROM 'wire' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x07, // LOAD_CONST_STRING 'Success' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x08, // IMPORT_NAME 'trezor.messages' + 0x1c,0x07, // IMPORT_FROM 'Success' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'confirm_fido' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor.ui.layouts.fido' + 0x1c,0x09, // IMPORT_FROM 'confirm_fido' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0b, // LOAD_CONST_STRING 'get_resident_credential' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0c, // IMPORT_NAME 'resident_credentials' + 0x1c,0x0b, // IMPORT_FROM 'get_resident_credential' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x0d, // LOAD_ATTR 'device' + 0x14,0x0e, // LOAD_METHOD 'is_initialized' + 0x36,0x00, // CALL_METHOD 0 + 0x43,0x48, // POP_JUMP_IF_TRUE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x0f, // LOAD_METHOD 'NotInitialized' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'index' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x11, // LOAD_METHOD 'ProcessError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb5, // LOAD_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'index' + 0x34,0x01, // CALL_FUNCTION 1 + 0xc6, // STORE_FAST 6 + 0xb6, // LOAD_FAST 6 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x11, // LOAD_METHOD 'ProcessError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xb6, // LOAD_FAST 6 + 0x14,0x12, // LOAD_METHOD 'app_name' + 0x36,0x00, // CALL_METHOD 0 + 0xb6, // LOAD_FAST 6 + 0x14,0x13, // LOAD_METHOD 'icon_name' + 0x36,0x00, // CALL_METHOD 0 + 0xb6, // LOAD_FAST 6 + 0x14,0x14, // LOAD_METHOD 'account_name' + 0x36,0x00, // CALL_METHOD 0 + 0x2b,0x01, // BUILD_LIST 1 + 0x34,0x04, // CALL_FUNCTION 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x0c, // LOAD_ATTR 'resident_credentials' + 0x14,0x15, // LOAD_METHOD 'delete' + 0xb6, // LOAD_FAST 6 + 0x13,0x10, // LOAD_ATTR 'index' + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x10,0x16, // LOAD_CONST_STRING 'message' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x82,0x00, // CALL_FUNCTION 256 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_remove_resident_credential_remove_resident_credential = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_remove_resident_credential_remove_resident_credential, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 179, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 2, + .line_info = fun_data_apps_webauthn_remove_resident_credential_remove_resident_credential + 5, + .line_info_top = fun_data_apps_webauthn_remove_resident_credential_remove_resident_credential + 27, + .opcodes = fun_data_apps_webauthn_remove_resident_credential_remove_resident_credential + 27, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_remove_resident_credential__lt_module_gt_[] = { + &raw_code_apps_webauthn_remove_resident_credential_remove_resident_credential, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_remove_resident_credential__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_remove_resident_credential__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 12, + #endif + .children = (void *)&children_apps_webauthn_remove_resident_credential__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_webauthn_remove_resident_credential__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_webauthn_remove_resident_credential__lt_module_gt_ + 6, + .opcodes = fun_data_apps_webauthn_remove_resident_credential__lt_module_gt_ + 6, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_webauthn_remove_resident_credential[24] = { + MP_QSTR_apps_slash_webauthn_slash_remove_resident_credential_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_remove_resident_credential, + MP_QSTR_storage_dot_device, + MP_QSTR_storage_dot_resident_credentials, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_Success, + MP_QSTR_trezor_dot_messages, + MP_QSTR_confirm_fido, + MP_QSTR_trezor_dot_ui_dot_layouts_dot_fido, + MP_QSTR_get_resident_credential, + MP_QSTR_resident_credentials, + MP_QSTR_device, + MP_QSTR_is_initialized, + MP_QSTR_NotInitialized, + MP_QSTR_index, + MP_QSTR_ProcessError, + MP_QSTR_app_name, + MP_QSTR_icon_name, + MP_QSTR_account_name, + MP_QSTR_delete, + MP_QSTR_message, + MP_QSTR_msg, +}; + +// constants +static const mp_obj_str_t const_obj_apps_webauthn_remove_resident_credential_0 = {{&mp_type_str}, 4478, 25, (const byte*)"\x44\x65\x76\x69\x63\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64"}; +static const mp_obj_str_t const_obj_apps_webauthn_remove_resident_credential_1 = {{&mp_type_str}, 57171, 35, (const byte*)"\x4d\x69\x73\x73\x69\x6e\x67\x20\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x20\x69\x6e\x64\x65\x78\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x2e"}; +static const mp_obj_str_t const_obj_apps_webauthn_remove_resident_credential_2 = {{&mp_type_str}, 1199, 25, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x20\x69\x6e\x64\x65\x78\x2e"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_webauthn_remove_resident_credential[5] = { + MP_ROM_PTR(&const_obj_apps_webauthn_remove_resident_credential_0), + MP_ROM_PTR(&const_obj_apps_webauthn_remove_resident_credential_1), + MP_ROM_PTR(&const_obj_apps_webauthn_remove_resident_credential_2), + MP_ROM_QSTR(MP_QSTR_Remove_space_credential), + MP_ROM_QSTR(MP_QSTR_Credential_space_removed), +}; + +static const mp_frozen_module_t frozen_module_apps_webauthn_remove_resident_credential = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_webauthn_remove_resident_credential, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_webauthn_remove_resident_credential, + }, + .rc = &raw_code_apps_webauthn_remove_resident_credential__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_webauthn_resident_credentials +// - original source file: build/firmware/src/apps/webauthn/resident_credentials.mpy +// - frozen file name: apps/webauthn/resident_credentials.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/webauthn/resident_credentials.py, scope apps_webauthn_resident_credentials__lt_module_gt_ +static const byte fun_data_apps_webauthn_resident_credentials__lt_module_gt_[70] = { + 0x08,0x1c, // prelude + 0x01, // names: + 0x6c,0x28,0x4c,0x80,0x09,0x84,0x0a,0x84,0x07,0x84,0x0f,0x84,0x0b, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x04, // IMPORT_NAME 'storage.resident_credentials' + 0x13,0x05, // LOAD_ATTR 'resident_credentials' + 0x16,0x15, // STORE_NAME 'storage_resident_credentials' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'MAX_RESIDENT_CREDENTIALS' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x04, // IMPORT_NAME 'storage.resident_credentials' + 0x1c,0x06, // IMPORT_FROM 'MAX_RESIDENT_CREDENTIALS' + 0x16,0x06, // STORE_NAME 'MAX_RESIDENT_CREDENTIALS' + 0x59, // POP_TOP + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x07, // STORE_NAME '_credential_from_data' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x0c, // STORE_NAME 'find_all' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x0e, // STORE_NAME 'find_by_rp_id_hash' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x0f, // STORE_NAME 'get_resident_credential' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x10, // STORE_NAME 'store_resident_credential' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_webauthn_resident_credentials__lt_module_gt_ +// frozen bytecode for file apps/webauthn/resident_credentials.py, scope apps_webauthn_resident_credentials__credential_from_data +static const byte fun_data_apps_webauthn_resident_credentials__credential_from_data[51] = { + 0x4a,0x14, // prelude + 0x07,0x0b,0x16, // names: _credential_from_data, index, data + 0x80,0x10,0x4b,0x27,0x27,0x28,0x24, // code info + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x08, // LOAD_CONST_STRING 'Fido2Credential' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'credential' + 0x1c,0x08, // IMPORT_FROM 'Fido2Credential' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc3, // STORE_FAST 3 + 0xb1, // LOAD_FAST 1 + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x51, // LOAD_CONST_NONE + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xc4, // STORE_FAST 4 + 0xb2, // LOAD_FAST 2 + 0x14,0x0a, // LOAD_METHOD 'from_cred_id' + 0xb4, // LOAD_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0xb5, // LOAD_FAST 5 + 0x18,0x0b, // STORE_ATTR 'index' + 0xb5, // LOAD_FAST 5 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_resident_credentials__credential_from_data = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_webauthn_resident_credentials__credential_from_data, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_webauthn_resident_credentials__credential_from_data + 5, + .line_info_top = fun_data_apps_webauthn_resident_credentials__credential_from_data + 12, + .opcodes = fun_data_apps_webauthn_resident_credentials__credential_from_data + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_resident_credentials__lt_module_gt_ +// frozen bytecode for file apps/webauthn/resident_credentials.py, scope apps_webauthn_resident_credentials_find_all +static const byte fun_data_apps_webauthn_resident_credentials_find_all[49] = { + 0xb0,0x40,0x0c, // prelude + 0x0c, // names: find_all + 0x80,0x1a,0x27,0x28,0x26, // code info + 0x12,0x06, // LOAD_GLOBAL 'MAX_RESIDENT_CREDENTIALS' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x5a, // JUMP 26 + 0x57, // DUP_TOP + 0xc0, // STORE_FAST 0 + 0x12,0x15, // LOAD_GLOBAL 'storage_resident_credentials' + 0x14,0x0d, // LOAD_METHOD 'get' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0x12,0x07, // LOAD_GLOBAL '_credential_from_data' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x21, // POP_JUMP_IF_TRUE -31 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_resident_credentials_find_all = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_resident_credentials_find_all, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 12, + .line_info = fun_data_apps_webauthn_resident_credentials_find_all + 4, + .line_info_top = fun_data_apps_webauthn_resident_credentials_find_all + 9, + .opcodes = fun_data_apps_webauthn_resident_credentials_find_all + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_resident_credentials__lt_module_gt_ +// frozen bytecode for file apps/webauthn/resident_credentials.py, scope apps_webauthn_resident_credentials_find_by_rp_id_hash +static const byte fun_data_apps_webauthn_resident_credentials_find_by_rp_id_hash[66] = { + 0xb9,0x40,0x14, // prelude + 0x0e,0x11, // names: find_by_rp_id_hash, rp_id_hash + 0x80,0x21,0x27,0x48,0x45,0x42,0x4a,0x42, // code info + 0x12,0x06, // LOAD_GLOBAL 'MAX_RESIDENT_CREDENTIALS' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x67, // JUMP 39 + 0x57, // DUP_TOP + 0xc1, // STORE_FAST 1 + 0x12,0x15, // LOAD_GLOBAL 'storage_resident_credentials' + 0x14,0x0d, // LOAD_METHOD 'get' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x54, // JUMP 20 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xb0, // LOAD_FAST 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x48, // JUMP 8 + 0x12,0x07, // LOAD_GLOBAL '_credential_from_data' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x02, // CALL_FUNCTION 2 + 0x67, // YIELD_VALUE + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x14, // POP_JUMP_IF_TRUE -44 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_resident_credentials_find_by_rp_id_hash = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_resident_credentials_find_by_rp_id_hash, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 66, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 14, + .line_info = fun_data_apps_webauthn_resident_credentials_find_by_rp_id_hash + 5, + .line_info_top = fun_data_apps_webauthn_resident_credentials_find_by_rp_id_hash + 13, + .opcodes = fun_data_apps_webauthn_resident_credentials_find_by_rp_id_hash + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_resident_credentials__lt_module_gt_ +// frozen bytecode for file apps/webauthn/resident_credentials.py, scope apps_webauthn_resident_credentials_get_resident_credential +static const byte fun_data_apps_webauthn_resident_credentials_get_resident_credential[51] = { + 0x21,0x12, // prelude + 0x0f,0x0b, // names: get_resident_credential, index + 0x80,0x30,0x30,0x42,0x28,0x25,0x42, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x5b, // ROT_THREE + 0xda, // BINARY_OP 3 __le__ + 0x46,0x05, // JUMP_IF_FALSE_OR_POP 5 + 0x12,0x06, // LOAD_GLOBAL 'MAX_RESIDENT_CREDENTIALS' + 0xd7, // BINARY_OP 0 __lt__ + 0x42,0x42, // JUMP 2 + 0x5a, // ROT_TWO + 0x59, // POP_TOP + 0x43,0x42, // POP_JUMP_IF_TRUE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x15, // LOAD_GLOBAL 'storage_resident_credentials' + 0x14,0x0d, // LOAD_METHOD 'get' + 0xb0, // LOAD_FAST 0 + 0x36,0x01, // CALL_METHOD 1 + 0xc1, // STORE_FAST 1 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE + 0x12,0x07, // LOAD_GLOBAL '_credential_from_data' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_resident_credentials_get_resident_credential = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_resident_credentials_get_resident_credential, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 15, + .line_info = fun_data_apps_webauthn_resident_credentials_get_resident_credential + 4, + .line_info_top = fun_data_apps_webauthn_resident_credentials_get_resident_credential + 11, + .opcodes = fun_data_apps_webauthn_resident_credentials_get_resident_credential + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_webauthn_resident_credentials__lt_module_gt_ +// frozen bytecode for file apps/webauthn/resident_credentials.py, scope apps_webauthn_resident_credentials_store_resident_credential +static const byte fun_data_apps_webauthn_resident_credentials_store_resident_credential[124] = { + 0x59,0x2a, // prelude + 0x10,0x17, // names: store_resident_credential, cred + 0x80,0x3b,0x22,0x27,0x28,0x45,0x25,0x22,0x42,0x4c,0x42,0x47,0x29,0x22,0x4c,0x25,0x42,0x28,0x29, // code info + 0x51, // LOAD_CONST_NONE + 0xc1, // STORE_FAST 1 + 0x12,0x06, // LOAD_GLOBAL 'MAX_RESIDENT_CREDENTIALS' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x7c, // JUMP 60 + 0x57, // DUP_TOP + 0xc2, // STORE_FAST 2 + 0x12,0x15, // LOAD_GLOBAL 'storage_resident_credentials' + 0x14,0x0d, // LOAD_METHOD 'get' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0xb2, // LOAD_FAST 2 + 0xc1, // STORE_FAST 1 + 0x42,0x62, // JUMP 34 + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'rp_id_hash' + 0xb3, // LOAD_FAST 3 + 0x51, // LOAD_CONST_NONE + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x2e,0x02, // BUILD_SLICE 2 + 0x55, // LOAD_SUBSCR + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x42,0x54, // JUMP 20 + 0x12,0x07, // LOAD_GLOBAL '_credential_from_data' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x13,0x12, // LOAD_ATTR 'user_id' + 0xb0, // LOAD_FAST 0 + 0x13,0x12, // LOAD_ATTR 'user_id' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb2, // LOAD_FAST 2 + 0xc1, // STORE_FAST 1 + 0x42,0x48, // JUMP 8 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xbe,0x7f, // POP_JUMP_IF_TRUE -66 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x42, // POP_JUMP_IF_FALSE 2 + 0x50, // LOAD_CONST_FALSE + 0x63, // RETURN_VALUE + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'rp_id_hash' + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'id' + 0xf2, // BINARY_OP 27 __add__ + 0xc5, // STORE_FAST 5 + 0x12,0x15, // LOAD_GLOBAL 'storage_resident_credentials' + 0x14,0x14, // LOAD_METHOD 'set' + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x52, // LOAD_CONST_TRUE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_webauthn_resident_credentials_store_resident_credential = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_webauthn_resident_credentials_store_resident_credential, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 124, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 12, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 16, + .line_info = fun_data_apps_webauthn_resident_credentials_store_resident_credential + 4, + .line_info_top = fun_data_apps_webauthn_resident_credentials_store_resident_credential + 23, + .opcodes = fun_data_apps_webauthn_resident_credentials_store_resident_credential + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_webauthn_resident_credentials__lt_module_gt_[] = { + &raw_code_apps_webauthn_resident_credentials__credential_from_data, + &raw_code_apps_webauthn_resident_credentials_find_all, + &raw_code_apps_webauthn_resident_credentials_find_by_rp_id_hash, + &raw_code_apps_webauthn_resident_credentials_get_resident_credential, + &raw_code_apps_webauthn_resident_credentials_store_resident_credential, +}; + +static const mp_raw_code_t raw_code_apps_webauthn_resident_credentials__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_webauthn_resident_credentials__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = (void *)&children_apps_webauthn_resident_credentials__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 5, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_webauthn_resident_credentials__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_webauthn_resident_credentials__lt_module_gt_ + 16, + .opcodes = fun_data_apps_webauthn_resident_credentials__lt_module_gt_ + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_webauthn_resident_credentials[24] = { + MP_QSTR_apps_slash_webauthn_slash_resident_credentials_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_storage_dot_resident_credentials, + MP_QSTR_resident_credentials, + MP_QSTR_MAX_RESIDENT_CREDENTIALS, + MP_QSTR__credential_from_data, + MP_QSTR_Fido2Credential, + MP_QSTR_credential, + MP_QSTR_from_cred_id, + MP_QSTR_index, + MP_QSTR_find_all, + MP_QSTR_get, + MP_QSTR_find_by_rp_id_hash, + MP_QSTR_get_resident_credential, + MP_QSTR_store_resident_credential, + MP_QSTR_rp_id_hash, + MP_QSTR_user_id, + MP_QSTR_id, + MP_QSTR_set, + MP_QSTR_storage_resident_credentials, + MP_QSTR_data, + MP_QSTR_cred, +}; + +static const mp_frozen_module_t frozen_module_apps_webauthn_resident_credentials = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_webauthn_resident_credentials, + .obj_table = NULL, + }, + .rc = &raw_code_apps_webauthn_resident_credentials__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_sign_tx_decred +// - original source file: build/firmware/src/apps/bitcoin/sign_tx/decred.mpy +// - frozen file name: apps/bitcoin/sign_tx/decred.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred__lt_module_gt_ +static const byte fun_data_apps_bitcoin_sign_tx_decred__lt_module_gt_[257] = { + 0x18,0x34, // prelude + 0x01, // names: + 0x6c,0x2c,0x2c,0x2c,0x52,0x2c,0x4c,0x32,0x2c,0x2c,0x2c,0x2c,0x2c,0x6c,0x60,0x20,0x65,0x80,0x1c,0x8b,0x1d,0x8b,0x0e,0x89,0x25, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'blake256' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x04, // IMPORT_FROM 'blake256' + 0x16,0x04, // STORE_NAME 'blake256' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'InputScriptType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.enums' + 0x1c,0x06, // IMPORT_FROM 'InputScriptType' + 0x16,0x06, // STORE_NAME 'InputScriptType' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'HashWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.utils' + 0x1c,0x08, // IMPORT_FROM 'HashWriter' + 0x16,0x08, // STORE_NAME 'HashWriter' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0a, // LOAD_CONST_STRING 'DataError' + 0x10,0x0b, // LOAD_CONST_STRING 'ProcessError' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0c, // IMPORT_NAME 'trezor.wire' + 0x1c,0x0a, // IMPORT_FROM 'DataError' + 0x16,0x0a, // STORE_NAME 'DataError' + 0x1c,0x0b, // IMPORT_FROM 'ProcessError' + 0x16,0x0b, // STORE_NAME 'ProcessError' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0d, // LOAD_CONST_STRING 'TxWeightCalculator' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'apps.bitcoin.sign_tx.tx_weight' + 0x1c,0x0d, // IMPORT_FROM 'TxWeightCalculator' + 0x16,0x0d, // STORE_NAME 'TxWeightCalculator' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x0f, // LOAD_CONST_STRING 'write_compact_size' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'apps.common.writers' + 0x1c,0x0f, // IMPORT_FROM 'write_compact_size' + 0x16,0x0f, // STORE_NAME 'write_compact_size' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x11, // LOAD_CONST_STRING 'scripts_decred' + 0x10,0x12, // LOAD_CONST_STRING 'writers' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x13, // IMPORT_NAME '' + 0x1c,0x11, // IMPORT_FROM 'scripts_decred' + 0x16,0x11, // STORE_NAME 'scripts_decred' + 0x1c,0x12, // IMPORT_FROM 'writers' + 0x16,0x12, // STORE_NAME 'writers' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x14, // LOAD_CONST_STRING 'ecdsa_hash_pubkey' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x15, // IMPORT_NAME 'common' + 0x1c,0x14, // IMPORT_FROM 'ecdsa_hash_pubkey' + 0x16,0x14, // STORE_NAME 'ecdsa_hash_pubkey' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x16, // LOAD_CONST_STRING 'write_uint32' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x12, // IMPORT_NAME 'writers' + 0x1c,0x16, // IMPORT_FROM 'write_uint32' + 0x16,0x16, // STORE_NAME 'write_uint32' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x17, // LOAD_CONST_STRING 'helpers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME '' + 0x1c,0x17, // IMPORT_FROM 'helpers' + 0x16,0x17, // STORE_NAME 'helpers' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x18, // LOAD_CONST_STRING 'BasicApprover' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x19, // IMPORT_NAME 'approvers' + 0x1c,0x18, // IMPORT_FROM 'BasicApprover' + 0x16,0x18, // STORE_NAME 'BasicApprover' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1a, // LOAD_CONST_STRING 'Bitcoin' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1b, // IMPORT_NAME 'bitcoin' + 0x1c,0x1a, // IMPORT_FROM 'Bitcoin' + 0x16,0x1a, // STORE_NAME 'Bitcoin' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1c, // LOAD_CONST_STRING 'progress' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1c, // IMPORT_NAME 'progress' + 0x1c,0x1c, // IMPORT_FROM 'progress' + 0x16,0x1c, // STORE_NAME 'progress' + 0x59, // POP_TOP + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x16,0x81,0x10, // STORE_NAME 'OUTPUT_SCRIPT_NULL_SSTXCHANGE' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x1d, // LOAD_CONST_STRING 'DecredTxWeightCalculator' + 0x11,0x0d, // LOAD_NAME 'TxWeightCalculator' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x1d, // STORE_NAME 'DecredTxWeightCalculator' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x1e, // LOAD_CONST_STRING 'DecredApprover' + 0x11,0x18, // LOAD_NAME 'BasicApprover' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x1e, // STORE_NAME 'DecredApprover' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x02, // MAKE_FUNCTION 2 + 0x10,0x1f, // LOAD_CONST_STRING 'DecredSigHasher' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x1f, // STORE_NAME 'DecredSigHasher' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x03, // MAKE_FUNCTION 3 + 0x10,0x20, // LOAD_CONST_STRING 'Decred' + 0x11,0x1a, // LOAD_NAME 'Bitcoin' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x20, // STORE_NAME 'Decred' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_decred__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator +static const byte fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator[39] = { + 0x08,0x0f, // prelude + 0x1d, // names: DecredTxWeightCalculator + 0x8b,0x38,0x86,0x07,0x84,0x10,0x00, // code info + 0x11,0x81,0x11, // LOAD_NAME '__name__' + 0x16,0x81,0x12, // STORE_NAME '__module__' + 0x10,0x1d, // LOAD_CONST_STRING 'DecredTxWeightCalculator' + 0x16,0x81,0x13, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x21, // STORE_NAME 'get_base_weight' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x24, // STORE_NAME 'add_input' + 0xb0, // LOAD_FAST 0 + 0x20,0x02,0x01, // MAKE_CLOSURE 2 + 0x16,0x29, // STORE_NAME 'add_output' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_get_base_weight +static const byte fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_get_base_weight[42] = { + 0x3a,0x14, // prelude + 0x21,0x81,0x15,0x81,0x16, // names: get_base_weight, *, self + 0x80,0x39,0x2b,0x44,0x2d, // code info + 0x12,0x81,0x17, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x21, // LOAD_SUPER_METHOD 'get_base_weight' + 0x36,0x00, // CALL_METHOD 0 + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x90, // LOAD_CONST_SMALL_INT 16 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xb1, // LOAD_FAST 1 + 0x14,0x22, // LOAD_METHOD 'compact_size_len' + 0xb1, // LOAD_FAST 1 + 0x13,0x23, // LOAD_ATTR 'inputs_count' + 0x36,0x01, // CALL_METHOD 1 + 0xf4, // BINARY_OP 29 __mul__ + 0xe5, // BINARY_OP 14 __iadd__ + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_get_base_weight = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_get_base_weight, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 42, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 33, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_get_base_weight + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_get_base_weight + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_get_base_weight + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_add_input +static const byte fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_add_input[97] = { + 0x42,0x1c, // prelude + 0x24,0x81,0x16,0x81,0x18, // names: add_input, self, i + 0x80,0x40,0x69,0x6b,0x27,0x4a,0x44,0x2b,0x30, // code info + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x23, // LOAD_ATTR 'inputs_count' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x23, // STORE_ATTR 'inputs_count' + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x25, // LOAD_ATTR 'counter' + 0x22,0x81,0x24, // LOAD_CONST_SMALL_INT 164 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x25, // STORE_ATTR 'counter' + 0xb0, // LOAD_FAST 0 + 0x14,0x26, // LOAD_METHOD 'input_script_size' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x27, // LOAD_ATTR 'script_type' + 0x12,0x06, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x28, // LOAD_ATTR 'SPENDMULTISIG' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x44, // POP_JUMP_IF_FALSE 4 + 0xb2, // LOAD_FAST 2 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe6, // BINARY_OP 15 __isub__ + 0xc2, // STORE_FAST 2 + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x25, // LOAD_ATTR 'counter' + 0x22,0x80,0x40, // LOAD_CONST_SMALL_INT 64 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x25, // STORE_ATTR 'counter' + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x25, // LOAD_ATTR 'counter' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xb0, // LOAD_FAST 0 + 0x14,0x22, // LOAD_METHOD 'compact_size_len' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xf4, // BINARY_OP 29 __mul__ + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x25, // STORE_ATTR 'counter' + 0xb0, // LOAD_FAST 0 + 0x57, // DUP_TOP + 0x13,0x25, // LOAD_ATTR 'counter' + 0x84, // LOAD_CONST_SMALL_INT 4 + 0xb2, // LOAD_FAST 2 + 0xf4, // BINARY_OP 29 __mul__ + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x25, // STORE_ATTR 'counter' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_add_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_add_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 97, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_add_input + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_add_input + 16, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_add_input + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_add_output +static const byte fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_add_output[35] = { + 0x2b,0x14, // prelude + 0x29,0x81,0x15,0x81,0x16,0x81,0x19, // names: add_output, *, self, script + 0x80,0x50,0x2c, // code info + 0x12,0x81,0x17, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x29, // LOAD_SUPER_METHOD 'add_output' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x57, // DUP_TOP + 0x13,0x25, // LOAD_ATTR 'counter' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xe5, // BINARY_OP 14 __iadd__ + 0x5a, // ROT_TWO + 0x18,0x25, // STORE_ATTR 'counter' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_add_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_add_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_add_output + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_add_output + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_add_output + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator[] = { + &raw_code_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_get_base_weight, + &raw_code_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_add_input, + &raw_code_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator_add_output, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 39, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 3, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_DecredApprover +static const byte fun_data_apps_bitcoin_sign_tx_decred_DecredApprover[31] = { + 0x08,0x0b, // prelude + 0x1e, // names: DecredApprover + 0x8b,0x55,0x66,0x20,0x00, // code info + 0x11,0x81,0x11, // LOAD_NAME '__name__' + 0x16,0x81,0x12, // STORE_NAME '__module__' + 0x10,0x1e, // LOAD_CONST_STRING 'DecredApprover' + 0x16,0x81,0x13, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x2a, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x2c, // STORE_NAME 'add_decred_sstx_submission' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_decred_DecredApprover +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_DecredApprover___init__ +static const byte fun_data_apps_bitcoin_sign_tx_decred_DecredApprover___init__[35] = { + 0xb8,0x04,0x14, // prelude + 0x2a,0x81,0x15,0x81,0x16,0x3a,0x2f, // names: __init__, *, self, tx, coin + 0x80,0x56,0x2d, // code info + 0x12,0x81,0x17, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x2a, // LOAD_SUPER_METHOD '__init__' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x1d, // LOAD_GLOBAL 'DecredTxWeightCalculator' + 0x34,0x00, // CALL_FUNCTION 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x2b, // STORE_ATTR 'weight' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_DecredApprover___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_DecredApprover___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 35, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_DecredApprover___init__ + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_DecredApprover___init__ + 13, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_DecredApprover___init__ + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_DecredApprover +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_DecredApprover_add_decred_sstx_submission +static const byte fun_data_apps_bitcoin_sign_tx_decred_DecredApprover_add_decred_sstx_submission[51] = { + 0xbb,0x40,0x14, // prelude + 0x2c,0x81,0x16,0x81,0x1a,0x81,0x1b, // names: add_decred_sstx_submission, self, txo, script_pubkey + 0x80,0x5e,0x33, // code info + 0x12,0x81,0x17, // LOAD_GLOBAL 'super' + 0x12,0x18, // LOAD_GLOBAL 'BasicApprover' + 0xb0, // LOAD_FAST 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x14,0x2d, // LOAD_METHOD 'add_external_output' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x51, // LOAD_CONST_NONE + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x2e, // LOAD_METHOD 'confirm_decred_sstx_submission' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'coin' + 0xb0, // LOAD_FAST 0 + 0x13,0x30, // LOAD_ATTR 'amount_unit' + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_DecredApprover_add_decred_sstx_submission = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_DecredApprover_add_decred_sstx_submission, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 51, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 44, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_DecredApprover_add_decred_sstx_submission + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_DecredApprover_add_decred_sstx_submission + 13, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_DecredApprover_add_decred_sstx_submission + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_decred_DecredApprover[] = { + &raw_code_apps_bitcoin_sign_tx_decred_DecredApprover___init__, + &raw_code_apps_bitcoin_sign_tx_decred_DecredApprover_add_decred_sstx_submission, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_DecredApprover = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_DecredApprover, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_decred_DecredApprover, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 30, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_DecredApprover + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_DecredApprover + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_DecredApprover + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_DecredSigHasher +static const byte fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher[49] = { + 0x00,0x14, // prelude + 0x1f, // names: DecredSigHasher + 0x8b,0x63,0x64,0x64,0x64,0x84,0x0b,0x84,0x08, // code info + 0x11,0x81,0x11, // LOAD_NAME '__name__' + 0x16,0x81,0x12, // STORE_NAME '__module__' + 0x10,0x1f, // LOAD_CONST_STRING 'DecredSigHasher' + 0x16,0x81,0x13, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x2a, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x24, // STORE_NAME 'add_input' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x29, // STORE_NAME 'add_output' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x34, // STORE_NAME 'hash143' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x35, // STORE_NAME 'hash341' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x36, // STORE_NAME 'hash_zip244' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_decred_DecredSigHasher +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_DecredSigHasher___init__ +static const byte fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher___init__[14] = { + 0x1a,0x0c, // prelude + 0x2a,0x81,0x16,0x31, // names: __init__, self, h_prefix + 0x80,0x64, // code info + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x31, // STORE_ATTR 'h_prefix' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_DecredSigHasher___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 14, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher___init__ + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher___init__ + 8, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher___init__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_DecredSigHasher +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_DecredSigHasher_add_input +static const byte fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_add_input[29] = { + 0x3b,0x12, // prelude + 0x24,0x81,0x16,0x81,0x1c,0x81,0x1b, // names: add_input, self, txi, script_pubkey + 0x80,0x67, // code info + 0x12,0x20, // LOAD_GLOBAL 'Decred' + 0x14,0x32, // LOAD_METHOD 'write_tx_input' + 0xb0, // LOAD_FAST 0 + 0x13,0x31, // LOAD_ATTR 'h_prefix' + 0xb1, // LOAD_FAST 1 + 0x12,0x81,0x1d, // LOAD_GLOBAL 'bytes' + 0x34,0x00, // CALL_FUNCTION 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_DecredSigHasher_add_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_add_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 29, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 36, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_add_input + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_add_input + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_add_input + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_DecredSigHasher +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_DecredSigHasher_add_output +static const byte fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_add_output[25] = { + 0x3b,0x12, // prelude + 0x29,0x81,0x16,0x81,0x1a,0x81,0x1b, // names: add_output, self, txo, script_pubkey + 0x80,0x6a, // code info + 0x12,0x20, // LOAD_GLOBAL 'Decred' + 0x14,0x33, // LOAD_METHOD 'write_tx_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x31, // LOAD_ATTR 'h_prefix' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_DecredSigHasher_add_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_add_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 25, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 41, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_add_output + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_add_output + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_add_output + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_DecredSigHasher +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_DecredSigHasher_hash143 +static const byte fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash143[24] = { + 0xbb,0x04,0x1e, // prelude + 0x34,0x81,0x16,0x81,0x1c,0x81,0x1e,0x81,0x1f,0x3a,0x2f,0x81,0x20, // names: hash143, self, txi, public_keys, threshold, tx, coin, hash_type + 0x80,0x75, // code info + 0x12,0x81,0x21, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash143 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 7, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash143, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 7, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 52, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash143 + 16, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash143 + 18, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash143 + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_DecredSigHasher +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_DecredSigHasher_hash341 +static const byte fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash341[19] = { + 0xa0,0x04,0x14, // prelude + 0x35,0x81,0x16,0x81,0x18,0x3a,0x81,0x22, // names: hash341, self, i, tx, sighash_type + 0x80,0x7d, // code info + 0x12,0x81,0x21, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash341 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash341, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 53, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash341 + 11, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash341 + 13, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash341 + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_DecredSigHasher +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_DecredSigHasher_hash_zip244 +static const byte fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash_zip244[17] = { + 0x1b,0x12, // prelude + 0x36,0x81,0x16,0x81,0x1c,0x81,0x1b, // names: hash_zip244, self, txi, script_pubkey + 0x80,0x84, // code info + 0x12,0x81,0x21, // LOAD_GLOBAL 'NotImplementedError' + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash_zip244 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash_zip244, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 17, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 54, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash_zip244 + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash_zip244 + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash_zip244 + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_decred_DecredSigHasher[] = { + &raw_code_apps_bitcoin_sign_tx_decred_DecredSigHasher___init__, + &raw_code_apps_bitcoin_sign_tx_decred_DecredSigHasher_add_input, + &raw_code_apps_bitcoin_sign_tx_decred_DecredSigHasher_add_output, + &raw_code_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash143, + &raw_code_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash341, + &raw_code_apps_bitcoin_sign_tx_decred_DecredSigHasher_hash_zip244, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_DecredSigHasher = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 49, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_decred_DecredSigHasher, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 1, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_DecredSigHasher + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred[150] = { + 0x10,0x47, // prelude + 0x20, // names: Decred + 0x8b,0x88,0x86,0x19,0x64,0x64,0x86,0x10,0x86,0x07,0x64,0x64,0x86,0x0a,0x84,0x4f,0x64,0x64,0x64,0x60,0x64,0x20,0x89,0x0b,0x89,0x11,0x85,0x09,0x84,0x32,0x84,0x0f,0x64,0x40,0x00, // code info + 0x11,0x81,0x11, // LOAD_NAME '__name__' + 0x16,0x81,0x12, // STORE_NAME '__module__' + 0x10,0x20, // LOAD_CONST_STRING 'Decred' + 0x16,0x81,0x13, // STORE_NAME '__qualname__' + 0xb0, // LOAD_FAST 0 + 0x20,0x00,0x01, // MAKE_CLOSURE 0 + 0x16,0x2a, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x40, // STORE_NAME 'create_hash_writer' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x41, // STORE_NAME 'create_sig_hasher' + 0xb0, // LOAD_FAST 0 + 0x20,0x03,0x01, // MAKE_CLOSURE 3 + 0x16,0x42, // STORE_NAME 'step2_approve_outputs' + 0xb0, // LOAD_FAST 0 + 0x20,0x04,0x01, // MAKE_CLOSURE 4 + 0x16,0x47, // STORE_NAME 'process_internal_input' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x48, // STORE_NAME 'process_external_input' + 0x32,0x06, // MAKE_FUNCTION 6 + 0x16,0x49, // STORE_NAME 'process_original_input' + 0xb0, // LOAD_FAST 0 + 0x20,0x07,0x01, // MAKE_CLOSURE 7 + 0x16,0x4a, // STORE_NAME 'approve_output' + 0x32,0x08, // MAKE_FUNCTION 8 + 0x16,0x4b, // STORE_NAME 'step4_serialize_inputs' + 0x32,0x09, // MAKE_FUNCTION 9 + 0x16,0x6d, // STORE_NAME 'step5_serialize_outputs' + 0x32,0x0a, // MAKE_FUNCTION 10 + 0x16,0x6e, // STORE_NAME 'step6_sign_segwit_inputs' + 0x32,0x0b, // MAKE_FUNCTION 11 + 0x16,0x6f, // STORE_NAME 'step7_finish' + 0x32,0x0c, // MAKE_FUNCTION 12 + 0x16,0x71, // STORE_NAME 'check_prevtx_output' + 0x11,0x81,0x14, // LOAD_NAME 'staticmethod' + 0x32,0x0d, // MAKE_FUNCTION 13 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x32, // STORE_NAME 'write_tx_input' + 0x11,0x81,0x14, // LOAD_NAME 'staticmethod' + 0x32,0x0e, // MAKE_FUNCTION 14 + 0x34,0x01, // CALL_FUNCTION 1 + 0x16,0x33, // STORE_NAME 'write_tx_output' + 0x32,0x0f, // MAKE_FUNCTION 15 + 0x16,0x81,0x00, // STORE_NAME 'process_sstx_commitment_owned' + 0x32,0x10, // MAKE_FUNCTION 16 + 0x16,0x45, // STORE_NAME 'approve_staking_ticket' + 0x32,0x11, // MAKE_FUNCTION 17 + 0x16,0x3c, // STORE_NAME 'write_tx_header' + 0x32,0x12, // MAKE_FUNCTION 18 + 0x16,0x46, // STORE_NAME 'write_tx_footer' + 0x32,0x13, // MAKE_FUNCTION 19 + 0x16,0x6c, // STORE_NAME 'write_tx_input_witness' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred___init__ +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred___init__[149] = { + 0xe2,0x04,0x2e, // prelude + 0x2a,0x81,0x15,0x81,0x16,0x3a,0x55,0x2f,0x81,0x04, // names: __init__, *, self, tx, keychain, coin, approver + 0x80,0x8f,0x4b,0x27,0x4b,0x27,0x27,0x4f,0x46,0x25,0x2e,0x4b,0x30, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x37, // LOAD_CONST_STRING 'ensure' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.utils' + 0x1c,0x37, // IMPORT_FROM 'ensure' + 0xc6, // STORE_FAST 6 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x13,0x38, // LOAD_ATTR 'decred' + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x08, // LOAD_GLOBAL 'HashWriter' + 0x12,0x04, // LOAD_GLOBAL 'blake256' + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb1, // LOAD_FAST 1 + 0x18,0x31, // STORE_ATTR 'h_prefix' + 0xb6, // LOAD_FAST 6 + 0xb5, // LOAD_FAST 5 + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x59, // POP_TOP + 0x12,0x1e, // LOAD_GLOBAL 'DecredApprover' + 0xb2, // LOAD_FAST 2 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0xc5, // STORE_FAST 5 + 0x12,0x81,0x17, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x2a, // LOAD_SUPER_METHOD '__init__' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x39, // LOAD_ATTR 'tx_info' + 0x13,0x3a, // LOAD_ATTR 'tx' + 0xc2, // STORE_FAST 2 + 0xb1, // LOAD_FAST 1 + 0x13,0x3b, // LOAD_ATTR 'serialize' + 0x44,0x59, // POP_JUMP_IF_FALSE 25 + 0xb1, // LOAD_FAST 1 + 0x14,0x3c, // LOAD_METHOD 'write_tx_header' + 0xb1, // LOAD_FAST 1 + 0x13,0x3d, // LOAD_ATTR 'serialized_tx' + 0xb2, // LOAD_FAST 2 + 0x10,0x3e, // LOAD_CONST_STRING 'witness_marker' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x02, // CALL_METHOD 258 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'write_compact_size' + 0xb1, // LOAD_FAST 1 + 0x13,0x3d, // LOAD_ATTR 'serialized_tx' + 0xb2, // LOAD_FAST 2 + 0x13,0x23, // LOAD_ATTR 'inputs_count' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'write_uint32' + 0xb1, // LOAD_FAST 1 + 0x13,0x31, // LOAD_ATTR 'h_prefix' + 0xb2, // LOAD_FAST 2 + 0x13,0x3f, // LOAD_ATTR 'version' + 0x22,0x84,0x80,0x00, // LOAD_CONST_SMALL_INT 65536 + 0xed, // BINARY_OP 22 __or__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'write_compact_size' + 0xb1, // LOAD_FAST 1 + 0x13,0x31, // LOAD_ATTR 'h_prefix' + 0xb2, // LOAD_FAST 2 + 0x13,0x23, // LOAD_ATTR 'inputs_count' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 6, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 149, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 13, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 6, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 42, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred___init__ + 13, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred___init__ + 26, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred___init__ + 26, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred_create_hash_writer +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred_create_hash_writer[16] = { + 0x11,0x0a, // prelude + 0x40,0x81,0x16, // names: create_hash_writer, self + 0x80,0xa2, // code info + 0x12,0x08, // LOAD_GLOBAL 'HashWriter' + 0x12,0x04, // LOAD_GLOBAL 'blake256' + 0x34,0x00, // CALL_FUNCTION 0 + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred_create_hash_writer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred_create_hash_writer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 64, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred_create_hash_writer + 5, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred_create_hash_writer + 7, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred_create_hash_writer + 7, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred_create_sig_hasher +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred_create_sig_hasher[16] = { + 0x1a,0x0c, // prelude + 0x41,0x81,0x16,0x3a, // names: create_sig_hasher, self, tx + 0x80,0xa5, // code info + 0x12,0x1f, // LOAD_GLOBAL 'DecredSigHasher' + 0xb0, // LOAD_FAST 0 + 0x13,0x31, // LOAD_ATTR 'h_prefix' + 0x34,0x01, // CALL_FUNCTION 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred_create_sig_hasher = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred_create_sig_hasher, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 16, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 65, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred_create_sig_hasher + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred_create_sig_hasher + 8, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred_create_sig_hasher + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred_step2_approve_outputs +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred_step2_approve_outputs[109] = { + 0xb2,0x40,0x20, // prelude + 0x42,0x81,0x15,0x81,0x16, // names: step2_approve_outputs, *, self + 0x80,0xa8,0x46,0x2b,0x25,0x4b,0x25,0x4b,0x4e,0x2a,0x25, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x39, // LOAD_ATTR 'tx_info' + 0x13,0x3a, // LOAD_ATTR 'tx' + 0xc2, // STORE_FAST 2 + 0x12,0x0f, // LOAD_GLOBAL 'write_compact_size' + 0xb1, // LOAD_FAST 1 + 0x13,0x31, // LOAD_ATTR 'h_prefix' + 0xb2, // LOAD_FAST 2 + 0x13,0x43, // LOAD_ATTR 'outputs_count' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x3b, // LOAD_ATTR 'serialize' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x0f, // LOAD_GLOBAL 'write_compact_size' + 0xb1, // LOAD_FAST 1 + 0x13,0x3d, // LOAD_ATTR 'serialized_tx' + 0xb2, // LOAD_FAST 2 + 0x13,0x43, // LOAD_ATTR 'outputs_count' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x44, // LOAD_ATTR 'decred_staking_ticket' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb1, // LOAD_FAST 1 + 0x14,0x45, // LOAD_METHOD 'approve_staking_ticket' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x4e, // JUMP 14 + 0x12,0x81,0x17, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x42, // LOAD_SUPER_METHOD 'step2_approve_outputs' + 0x36,0x00, // CALL_METHOD 0 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x14,0x46, // LOAD_METHOD 'write_tx_footer' + 0xb1, // LOAD_FAST 1 + 0x13,0x31, // LOAD_ATTR 'h_prefix' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x3b, // LOAD_ATTR 'serialize' + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb1, // LOAD_FAST 1 + 0x14,0x46, // LOAD_METHOD 'write_tx_footer' + 0xb1, // LOAD_FAST 1 + 0x13,0x3d, // LOAD_ATTR 'serialized_tx' + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred_step2_approve_outputs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred_step2_approve_outputs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 109, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 66, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred_step2_approve_outputs + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred_step2_approve_outputs + 19, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred_step2_approve_outputs + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred_process_internal_input +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred_process_internal_input[54] = { + 0xc0,0x44,0x1a, // prelude + 0x47,0x81,0x15,0x81,0x16,0x81,0x1c,0x81,0x23, // names: process_internal_input, *, self, txi, node + 0x80,0xb8,0x70,0x25, // code info + 0x12,0x81,0x17, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x47, // LOAD_SUPER_METHOD 'process_internal_input' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x3b, // LOAD_ATTR 'serialize' + 0x44,0x4f, // POP_JUMP_IF_FALSE 15 + 0xb1, // LOAD_FAST 1 + 0x14,0x32, // LOAD_METHOD 'write_tx_input' + 0xb1, // LOAD_FAST 1 + 0x13,0x3d, // LOAD_ATTR 'serialized_tx' + 0xb2, // LOAD_FAST 2 + 0x12,0x81,0x1d, // LOAD_GLOBAL 'bytes' + 0x34,0x00, // CALL_FUNCTION 0 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred_process_internal_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred_process_internal_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 54, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 71, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred_process_internal_input + 12, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred_process_internal_input + 16, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred_process_internal_input + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred_process_external_input +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred_process_external_input[19] = { + 0x9a,0x40,0x0e, // prelude + 0x48,0x81,0x16,0x81,0x1c, // names: process_external_input, self, txi + 0x80,0xbf, // code info + 0x12,0x0a, // LOAD_GLOBAL 'DataError' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred_process_external_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred_process_external_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 19, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 72, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred_process_external_input + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred_process_external_input + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred_process_external_input + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred_process_original_input +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred_process_original_input[21] = { + 0xa3,0x40,0x12, // prelude + 0x49,0x81,0x16,0x81,0x1c,0x81,0x1b, // names: process_original_input, self, txi, script_pubkey + 0x80,0xc2, // code info + 0x12,0x0a, // LOAD_GLOBAL 'DataError' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred_process_original_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred_process_original_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 21, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 73, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred_process_original_input + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred_process_original_input + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred_process_original_input + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred_approve_output +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred_approve_output[53] = { + 0xc9,0x44,0x1e, // prelude + 0x4a,0x81,0x15,0x81,0x16,0x81,0x1a,0x81,0x1b,0x81,0x24, // names: approve_output, *, self, txo, script_pubkey, orig_txo + 0x80,0xca,0x31,0x25, // code info + 0x12,0x81,0x17, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x4a, // LOAD_SUPER_METHOD 'approve_output' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x3b, // LOAD_ATTR 'serialize' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb1, // LOAD_FAST 1 + 0x14,0x33, // LOAD_METHOD 'write_tx_output' + 0xb1, // LOAD_FAST 1 + 0x13,0x3d, // LOAD_ATTR 'serialized_tx' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred_approve_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred_approve_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 53, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 74, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred_approve_output + 14, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred_approve_output + 18, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred_approve_output + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred_step4_serialize_inputs +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred_step4_serialize_inputs[508] = { + 0xe9,0x50,0x6c, // prelude + 0x4b,0x81,0x16, // names: step4_serialize_inputs, self + 0x80,0xcf,0x4b,0x2b,0x30,0x4b,0x28,0x44,0x25,0x49,0x48,0x27,0x46,0x4f,0x49,0x2b,0x46,0x26,0x23,0x4f,0x47,0x27,0x26,0x29,0x25,0x4c,0x29,0x25,0x4c,0x2a,0x20,0x45,0x28,0x6e,0x2a,0x45,0x6f,0x20,0x49,0x51,0x27,0x6a,0x27,0x2a,0x2e,0x4e,0x30,0x68,0x29,0x25,0x23, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x4c, // LOAD_CONST_STRING 'DecredStakingSpendType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.enums' + 0x1c,0x4c, // IMPORT_FROM 'DecredStakingSpendType' + 0xc1, // STORE_FAST 1 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x4d, // LOAD_CONST_STRING 'multisig' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x13, // IMPORT_NAME '' + 0x1c,0x4d, // IMPORT_FROM 'multisig' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x4e, // LOAD_CONST_STRING 'SigHashType' + 0x10,0x4f, // LOAD_CONST_STRING 'ecdsa_sign' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x15, // IMPORT_NAME 'common' + 0x1c,0x4e, // IMPORT_FROM 'SigHashType' + 0xc3, // STORE_FAST 3 + 0x1c,0x4f, // IMPORT_FROM 'ecdsa_sign' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x1c, // LOAD_CONST_STRING 'progress' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x1c, // IMPORT_NAME 'progress' + 0x1c,0x1c, // IMPORT_FROM 'progress' + 0xc5, // STORE_FAST 5 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'tx_info' + 0x13,0x3a, // LOAD_ATTR 'tx' + 0x13,0x23, // LOAD_ATTR 'inputs_count' + 0xc6, // STORE_FAST 6 + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'coin' + 0xc7, // STORE_FAST 7 + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'serialize' + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x0f, // LOAD_GLOBAL 'write_compact_size' + 0xb0, // LOAD_FAST 0 + 0x13,0x3d, // LOAD_ATTR 'serialized_tx' + 0xb6, // LOAD_FAST 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x31, // LOAD_ATTR 'h_prefix' + 0x14,0x50, // LOAD_METHOD 'get_digest' + 0x36,0x00, // CALL_METHOD 0 + 0xc8, // STORE_FAST 8 + 0xb6, // LOAD_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0xe1,0x82, // JUMP 353 + 0x57, // DUP_TOP + 0xc9, // STORE_FAST 9 + 0xb5, // LOAD_FAST 5 + 0x14,0x51, // LOAD_METHOD 'advance' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x52, // LOAD_METHOD 'request_tx_input' + 0xb0, // LOAD_FAST 0 + 0x13,0x53, // LOAD_ATTR 'tx_req' + 0xb9, // LOAD_FAST 9 + 0xb7, // LOAD_FAST 7 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xca, // STORE_FAST 10 + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'tx_info' + 0x14,0x54, // LOAD_METHOD 'check_input' + 0xba, // LOAD_FAST 10 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x55, // LOAD_ATTR 'keychain' + 0x14,0x56, // LOAD_METHOD 'derive' + 0xba, // LOAD_FAST 10 + 0x13,0x57, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xcb, // STORE_FAST 11 + 0xbb, // LOAD_FAST 11 + 0x14,0x58, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0xcc, // STORE_FAST 12 + 0xb0, // LOAD_FAST 0 + 0x14,0x40, // LOAD_METHOD 'create_hash_writer' + 0x36,0x00, // CALL_METHOD 0 + 0xcd, // STORE_FAST 13 + 0x12,0x16, // LOAD_GLOBAL 'write_uint32' + 0xbd, // LOAD_FAST 13 + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'tx_info' + 0x13,0x3a, // LOAD_ATTR 'tx' + 0x13,0x3f, // LOAD_ATTR 'version' + 0x22,0x8c,0x80,0x00, // LOAD_CONST_SMALL_INT 196608 + 0xed, // BINARY_OP 22 __or__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0f, // LOAD_GLOBAL 'write_compact_size' + 0xbd, // LOAD_FAST 13 + 0xb6, // LOAD_FAST 6 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb6, // LOAD_FAST 6 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x42,0x91,0x81, // JUMP 145 + 0x57, // DUP_TOP + 0xce, // STORE_FAST 14 + 0xbe, // LOAD_FAST 14 + 0xb9, // LOAD_FAST 9 + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x80,0x81, // POP_JUMP_IF_FALSE 128 + 0xba, // LOAD_FAST 10 + 0x13,0x59, // LOAD_ATTR 'decred_staking_spend' + 0xb1, // LOAD_FAST 1 + 0x13,0x5a, // LOAD_ATTR 'SSRTX' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x12,0x11, // LOAD_GLOBAL 'scripts_decred' + 0x14,0x5b, // LOAD_METHOD 'write_output_script_ssrtx_prefixed' + 0xbd, // LOAD_FAST 13 + 0x12,0x14, // LOAD_GLOBAL 'ecdsa_hash_pubkey' + 0xbc, // LOAD_FAST 12 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xe4,0x80, // JUMP 100 + 0xba, // LOAD_FAST 10 + 0x13,0x59, // LOAD_ATTR 'decred_staking_spend' + 0xb1, // LOAD_FAST 1 + 0x13,0x5c, // LOAD_ATTR 'SSGen' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x51, // POP_JUMP_IF_FALSE 17 + 0x12,0x11, // LOAD_GLOBAL 'scripts_decred' + 0x14,0x5d, // LOAD_METHOD 'write_output_script_ssgen_prefixed' + 0xbd, // LOAD_FAST 13 + 0x12,0x14, // LOAD_GLOBAL 'ecdsa_hash_pubkey' + 0xbc, // LOAD_FAST 12 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0xca,0x80, // JUMP 74 + 0xba, // LOAD_FAST 10 + 0x13,0x27, // LOAD_ATTR 'script_type' + 0x12,0x06, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x28, // LOAD_ATTR 'SPENDMULTISIG' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x5b, // POP_JUMP_IF_FALSE 27 + 0x12,0x11, // LOAD_GLOBAL 'scripts_decred' + 0x14,0x5e, // LOAD_METHOD 'write_output_script_multisig' + 0xbd, // LOAD_FAST 13 + 0xb2, // LOAD_FAST 2 + 0x14,0x5f, // LOAD_METHOD 'multisig_get_pubkeys' + 0xba, // LOAD_FAST 10 + 0x13,0x4d, // LOAD_ATTR 'multisig' + 0x36,0x01, // CALL_METHOD 1 + 0xba, // LOAD_FAST 10 + 0x13,0x4d, // LOAD_ATTR 'multisig' + 0x13,0x60, // LOAD_ATTR 'm' + 0x10,0x61, // LOAD_CONST_STRING 'prefixed' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x03, // CALL_METHOD 259 + 0x59, // POP_TOP + 0x42,0x65, // JUMP 37 + 0xba, // LOAD_FAST 10 + 0x13,0x27, // LOAD_ATTR 'script_type' + 0x12,0x06, // LOAD_GLOBAL 'InputScriptType' + 0x13,0x62, // LOAD_ATTR 'SPENDADDRESS' + 0xd9, // BINARY_OP 2 __eq__ + 0x44,0x54, // POP_JUMP_IF_FALSE 20 + 0x12,0x11, // LOAD_GLOBAL 'scripts_decred' + 0x14,0x63, // LOAD_METHOD 'write_output_script_p2pkh' + 0xbd, // LOAD_FAST 13 + 0x12,0x14, // LOAD_GLOBAL 'ecdsa_hash_pubkey' + 0xbc, // LOAD_FAST 12 + 0xb7, // LOAD_FAST 7 + 0x34,0x02, // CALL_FUNCTION 2 + 0x10,0x61, // LOAD_CONST_STRING 'prefixed' + 0x52, // LOAD_CONST_TRUE + 0x36,0x82,0x02, // CALL_METHOD 258 + 0x59, // POP_TOP + 0x42,0x47, // JUMP 7 + 0x12,0x0a, // LOAD_GLOBAL 'DataError' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x42,0x47, // JUMP 7 + 0x12,0x0f, // LOAD_GLOBAL 'write_compact_size' + 0xbd, // LOAD_FAST 13 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0xe9,0x7e, // POP_JUMP_IF_TRUE -151 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'writers' + 0x14,0x64, // LOAD_METHOD 'get_tx_hash' + 0xbd, // LOAD_FAST 13 + 0x10,0x65, // LOAD_CONST_STRING 'double' + 0xb7, // LOAD_FAST 7 + 0x13,0x66, // LOAD_ATTR 'sign_hash_double' + 0x10,0x67, // LOAD_CONST_STRING 'reverse' + 0x50, // LOAD_CONST_FALSE + 0x36,0x84,0x01, // CALL_METHOD 513 + 0xcf, // STORE_FAST 15 + 0xb0, // LOAD_FAST 0 + 0x14,0x40, // LOAD_METHOD 'create_hash_writer' + 0x36,0x00, // CALL_METHOD 0 + 0x26,0x10, // STORE_FAST_N 16 + 0x12,0x16, // LOAD_GLOBAL 'write_uint32' + 0x24,0x10, // LOAD_FAST_N 16 + 0xb3, // LOAD_FAST 3 + 0x13,0x68, // LOAD_ATTR 'SIGHASH_ALL' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'writers' + 0x14,0x69, // LOAD_METHOD 'write_bytes_fixed' + 0x24,0x10, // LOAD_FAST_N 16 + 0xb8, // LOAD_FAST 8 + 0x12,0x12, // LOAD_GLOBAL 'writers' + 0x13,0x6a, // LOAD_ATTR 'TX_HASH_SIZE' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'writers' + 0x14,0x69, // LOAD_METHOD 'write_bytes_fixed' + 0x24,0x10, // LOAD_FAST_N 16 + 0xbf, // LOAD_FAST 15 + 0x12,0x12, // LOAD_GLOBAL 'writers' + 0x13,0x6a, // LOAD_ATTR 'TX_HASH_SIZE' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'writers' + 0x14,0x64, // LOAD_METHOD 'get_tx_hash' + 0x24,0x10, // LOAD_FAST_N 16 + 0x10,0x65, // LOAD_CONST_STRING 'double' + 0xb7, // LOAD_FAST 7 + 0x13,0x66, // LOAD_ATTR 'sign_hash_double' + 0x36,0x82,0x01, // CALL_METHOD 257 + 0x26,0x11, // STORE_FAST_N 17 + 0xb4, // LOAD_FAST 4 + 0xbb, // LOAD_FAST 11 + 0x24,0x11, // LOAD_FAST_N 17 + 0x34,0x02, // CALL_FUNCTION 2 + 0x26,0x12, // STORE_FAST_N 18 + 0xb0, // LOAD_FAST 0 + 0x14,0x6b, // LOAD_METHOD 'set_serialized_signature' + 0xb9, // LOAD_FAST 9 + 0x24,0x12, // LOAD_FAST_N 18 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'serialize' + 0x44,0x4d, // POP_JUMP_IF_FALSE 13 + 0xb0, // LOAD_FAST 0 + 0x14,0x6c, // LOAD_METHOD 'write_tx_input_witness' + 0xb0, // LOAD_FAST 0 + 0x13,0x3d, // LOAD_ATTR 'serialized_tx' + 0xba, // LOAD_FAST 10 + 0xbc, // LOAD_FAST 12 + 0x24,0x12, // LOAD_FAST_N 18 + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0x58, // DUP_TOP_TWO + 0x5a, // ROT_TWO + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x99,0x7d, // POP_JUMP_IF_TRUE -359 + 0x59, // POP_TOP + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred_step4_serialize_inputs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred_step4_serialize_inputs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 508, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 30, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 75, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred_step4_serialize_inputs + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred_step4_serialize_inputs + 57, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred_step4_serialize_inputs + 57, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred_step5_serialize_outputs +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred_step5_serialize_outputs[10] = { + 0x89,0x40,0x0a, // prelude + 0x6d,0x81,0x16, // names: step5_serialize_outputs, self + 0x90,0x1e, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred_step5_serialize_outputs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred_step5_serialize_outputs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 10, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 109, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred_step5_serialize_outputs + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred_step5_serialize_outputs + 8, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred_step5_serialize_outputs + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred_step6_sign_segwit_inputs +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred_step6_sign_segwit_inputs[10] = { + 0x89,0x40,0x0a, // prelude + 0x6e,0x81,0x16, // names: step6_sign_segwit_inputs, self + 0x90,0x21, // code info + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred_step6_sign_segwit_inputs = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred_step6_sign_segwit_inputs, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 10, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 110, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred_step6_sign_segwit_inputs + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred_step6_sign_segwit_inputs + 8, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred_step6_sign_segwit_inputs + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred_step7_finish +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred_step7_finish[24] = { + 0x99,0x40,0x0c, // prelude + 0x6f,0x81,0x16, // names: step7_finish, self + 0x90,0x24,0x60, // code info + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x70, // LOAD_METHOD 'request_tx_finish' + 0xb0, // LOAD_FAST 0 + 0x13,0x53, // LOAD_ATTR 'tx_req' + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred_step7_finish = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred_step7_finish, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 24, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 111, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred_step7_finish + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred_step7_finish + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred_step7_finish + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred_check_prevtx_output +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred_check_prevtx_output[26] = { + 0x1a,0x10, // prelude + 0x71,0x81,0x16,0x81,0x25, // names: check_prevtx_output, self, txo_bin + 0x90,0x2a,0x27, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x72, // LOAD_ATTR 'decred_script_version' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0b, // LOAD_GLOBAL 'ProcessError' + 0x23,0x04, // LOAD_CONST_OBJ 4 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred_check_prevtx_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred_check_prevtx_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 26, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 113, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred_check_prevtx_output + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred_check_prevtx_output + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred_check_prevtx_output + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred_write_tx_input +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_input[66] = { + 0x3b,0x18, // prelude + 0x32,0x81,0x26,0x81,0x1c,0x81,0x19, // names: write_tx_input, w, txi, script + 0x90,0x33,0x2f,0x2c,0x2e, // code info + 0x12,0x12, // LOAD_GLOBAL 'writers' + 0x14,0x73, // LOAD_METHOD 'write_bytes_reversed' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x74, // LOAD_ATTR 'prev_hash' + 0x12,0x12, // LOAD_GLOBAL 'writers' + 0x13,0x6a, // LOAD_ATTR 'TX_HASH_SIZE' + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x75, // LOAD_ATTR 'prev_index' + 0x45,0x01, // JUMP_IF_TRUE_OR_POP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'writers' + 0x14,0x76, // LOAD_METHOD 'write_uint8' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x77, // LOAD_ATTR 'decred_tree' + 0x45,0x01, // JUMP_IF_TRUE_OR_POP 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x78, // LOAD_ATTR 'sequence' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred_write_tx_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 66, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 50, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_input + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_input + 14, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_input + 14, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred_write_tx_output +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_output[95] = { + 0x3b,0x20, // prelude + 0x33,0x81,0x26,0x81,0x1a,0x81,0x1b, // names: write_tx_output, w, txo, script_pubkey + 0x90,0x3e,0x4b,0x2b,0x28,0x27,0x27,0x4d,0x29, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x79, // LOAD_CONST_STRING 'PrevOutput' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x7a, // IMPORT_NAME 'trezor.messages' + 0x1c,0x79, // IMPORT_FROM 'PrevOutput' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'writers' + 0x14,0x7b, // LOAD_METHOD 'write_uint64' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x7c, // LOAD_ATTR 'amount' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x14,0x7d, // LOAD_METHOD 'is_type_of' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x44,0x5b, // POP_JUMP_IF_FALSE 27 + 0xb1, // LOAD_FAST 1 + 0x13,0x72, // LOAD_ATTR 'decred_script_version' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0a, // LOAD_GLOBAL 'DataError' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x12, // LOAD_GLOBAL 'writers' + 0x14,0x7e, // LOAD_METHOD 'write_uint16' + 0xb0, // LOAD_FAST 0 + 0xb1, // LOAD_FAST 1 + 0x13,0x72, // LOAD_ATTR 'decred_script_version' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x42,0x49, // JUMP 9 + 0x12,0x12, // LOAD_GLOBAL 'writers' + 0x14,0x7e, // LOAD_METHOD 'write_uint16' + 0xb0, // LOAD_FAST 0 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x12, // LOAD_GLOBAL 'writers' + 0x14,0x7f, // LOAD_METHOD 'write_bytes_prefixed' + 0xb0, // LOAD_FAST 0 + 0xb2, // LOAD_FAST 2 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred_write_tx_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 95, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 51, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_output + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_output + 18, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_output + 18, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred_process_sstx_commitment_owned +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred_process_sstx_commitment_owned[83] = { + 0x42,0x1c, // prelude + 0x81,0x00,0x81,0x16,0x81,0x1a, // names: process_sstx_commitment_owned, self, txo + 0x90,0x4a,0x2b,0x27,0x2b,0x2d,0x2c,0x24, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'tx_info' + 0x14,0x81,0x01, // LOAD_METHOD 'output_is_change' + 0xb1, // LOAD_FAST 1 + 0x36,0x01, // CALL_METHOD 1 + 0x43,0x47, // POP_JUMP_IF_TRUE 7 + 0x12,0x0a, // LOAD_GLOBAL 'DataError' + 0x23,0x06, // LOAD_CONST_OBJ 6 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x13,0x55, // LOAD_ATTR 'keychain' + 0x14,0x56, // LOAD_METHOD 'derive' + 0xb1, // LOAD_FAST 1 + 0x13,0x57, // LOAD_ATTR 'address_n' + 0x36,0x01, // CALL_METHOD 1 + 0xc2, // STORE_FAST 2 + 0x12,0x14, // LOAD_GLOBAL 'ecdsa_hash_pubkey' + 0xb2, // LOAD_FAST 2 + 0x14,0x58, // LOAD_METHOD 'public_key' + 0x36,0x00, // CALL_METHOD 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'coin' + 0x34,0x02, // CALL_FUNCTION 2 + 0xc3, // STORE_FAST 3 + 0x12,0x11, // LOAD_GLOBAL 'scripts_decred' + 0x14,0x81,0x02, // LOAD_METHOD 'sstxcommitment_pkh' + 0xb3, // LOAD_FAST 3 + 0xb1, // LOAD_FAST 1 + 0x13,0x7c, // LOAD_ATTR 'amount' + 0x36,0x02, // CALL_METHOD 2 + 0xc4, // STORE_FAST 4 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb1, // LOAD_FAST 1 + 0x18,0x7c, // STORE_ATTR 'amount' + 0x12,0x11, // LOAD_GLOBAL 'scripts_decred' + 0x14,0x81,0x03, // LOAD_METHOD 'output_script_paytoopreturn' + 0xb4, // LOAD_FAST 4 + 0x36,0x01, // CALL_METHOD 1 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred_process_sstx_commitment_owned = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred_process_sstx_commitment_owned, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 83, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 128, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred_process_sstx_commitment_owned + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred_process_sstx_commitment_owned + 16, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred_process_sstx_commitment_owned + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred_approve_staking_ticket +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred_approve_staking_ticket[360] = { + 0xc9,0x40,0x52, // prelude + 0x45,0x81,0x16, // names: approve_staking_ticket, self + 0x90,0x53,0x25,0x44,0x40,0x29,0x67,0x27,0x32,0x28,0x27,0x2c,0x2b,0x28,0x25,0x6b,0x27,0x32,0x2a,0x27,0x28,0x2c,0x28,0x25,0x6b,0x27,0x32,0x28,0x27,0x6c,0x20,0x27,0x27,0x27,0x47,0x2c,0x28,0x25, // code info + 0xb0, // LOAD_FAST 0 + 0x13,0x81,0x04, // LOAD_ATTR 'approver' + 0xc1, // STORE_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x39, // LOAD_ATTR 'tx_info' + 0xc2, // STORE_FAST 2 + 0xb2, // LOAD_FAST 2 + 0x13,0x3a, // LOAD_ATTR 'tx' + 0x13,0x43, // LOAD_ATTR 'outputs_count' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0a, // LOAD_GLOBAL 'DataError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x1c, // LOAD_GLOBAL 'progress' + 0x14,0x51, // LOAD_METHOD 'advance' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x81,0x05, // LOAD_METHOD 'request_tx_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x53, // LOAD_ATTR 'tx_req' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'coin' + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x13,0x81,0x06, // LOAD_ATTR 'address' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0a, // LOAD_GLOBAL 'DataError' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x11, // LOAD_GLOBAL 'scripts_decred' + 0x14,0x81,0x07, // LOAD_METHOD 'output_script_sstxsubmissionpkh' + 0xb3, // LOAD_FAST 3 + 0x13,0x81,0x06, // LOAD_ATTR 'address' + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x14,0x2c, // LOAD_METHOD 'add_decred_sstx_submission' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x29, // LOAD_METHOD 'add_output' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'serialize' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x14,0x33, // LOAD_METHOD 'write_tx_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x3d, // LOAD_ATTR 'serialized_tx' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x1c, // LOAD_GLOBAL 'progress' + 0x14,0x51, // LOAD_METHOD 'advance' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x81,0x05, // LOAD_METHOD 'request_tx_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x53, // LOAD_ATTR 'tx_req' + 0x81, // LOAD_CONST_SMALL_INT 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'coin' + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x13,0x7c, // LOAD_ATTR 'amount' + 0xb1, // LOAD_FAST 1 + 0x13,0x81,0x08, // LOAD_ATTR 'total_in' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0a, // LOAD_GLOBAL 'DataError' + 0x23,0x09, // LOAD_CONST_OBJ 9 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x00, // LOAD_METHOD 'process_sstx_commitment_owned' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x09, // LOAD_METHOD 'add_change_output' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x29, // LOAD_METHOD 'add_output' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'serialize' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x14,0x33, // LOAD_METHOD 'write_tx_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x3d, // LOAD_ATTR 'serialized_tx' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x12,0x1c, // LOAD_GLOBAL 'progress' + 0x14,0x51, // LOAD_METHOD 'advance' + 0x36,0x00, // CALL_METHOD 0 + 0x59, // POP_TOP + 0x12,0x17, // LOAD_GLOBAL 'helpers' + 0x14,0x81,0x05, // LOAD_METHOD 'request_tx_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x53, // LOAD_ATTR 'tx_req' + 0x82, // LOAD_CONST_SMALL_INT 2 + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'coin' + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc3, // STORE_FAST 3 + 0xb3, // LOAD_FAST 3 + 0x13,0x81,0x06, // LOAD_ATTR 'address' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0a, // LOAD_GLOBAL 'DataError' + 0x23,0x08, // LOAD_CONST_OBJ 8 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x11, // LOAD_GLOBAL 'scripts_decred' + 0x14,0x81,0x0a, // LOAD_METHOD 'output_script_sstxchange' + 0xb3, // LOAD_FAST 3 + 0x13,0x81,0x06, // LOAD_ATTR 'address' + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb3, // LOAD_FAST 3 + 0x13,0x7c, // LOAD_ATTR 'amount' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0a, // LOAD_GLOBAL 'DataError' + 0x23,0x0a, // LOAD_CONST_OBJ 10 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb4, // LOAD_FAST 4 + 0x12,0x81,0x10, // LOAD_GLOBAL 'OUTPUT_SCRIPT_NULL_SSTXCHANGE' + 0xdc, // BINARY_OP 5 __ne__ + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x0a, // LOAD_GLOBAL 'DataError' + 0x23,0x0b, // LOAD_CONST_OBJ 11 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0xb1, // LOAD_FAST 1 + 0x14,0x81,0x0b, // LOAD_METHOD '_add_output' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x14,0x29, // LOAD_METHOD 'add_output' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x3b, // LOAD_ATTR 'serialize' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0xb0, // LOAD_FAST 0 + 0x14,0x33, // LOAD_METHOD 'write_tx_output' + 0xb0, // LOAD_FAST 0 + 0x13,0x3d, // LOAD_ATTR 'serialized_tx' + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x03, // CALL_METHOD 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred_approve_staking_ticket = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred_approve_staking_ticket, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 360, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 10, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 69, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred_approve_staking_ticket + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred_approve_staking_ticket + 44, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred_approve_staking_ticket + 44, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred_write_tx_header +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_header[44] = { + 0xb8,0x04,0x18, // prelude + 0x3c,0x81,0x16,0x81,0x26,0x3a,0x3e, // names: write_tx_header, self, w, tx, witness_marker + 0x90,0x8c,0x23,0x48,0x49, // code info + 0xb3, // LOAD_FAST 3 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x13,0x3f, // LOAD_ATTR 'version' + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xed, // BINARY_OP 22 __or__ + 0xc4, // STORE_FAST 4 + 0x42,0x49, // JUMP 9 + 0xb2, // LOAD_FAST 2 + 0x13,0x3f, // LOAD_ATTR 'version' + 0x22,0x84,0x80,0x00, // LOAD_CONST_SMALL_INT 65536 + 0xed, // BINARY_OP 22 __or__ + 0xc4, // STORE_FAST 4 + 0x12,0x16, // LOAD_GLOBAL 'write_uint32' + 0xb1, // LOAD_FAST 1 + 0xb4, // LOAD_FAST 4 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred_write_tx_header = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_header, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 44, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 60, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_header + 10, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_header + 15, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_header + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred_write_tx_footer +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_footer[34] = { + 0x2b,0x14, // prelude + 0x46,0x81,0x16,0x81,0x26,0x3a, // names: write_tx_footer, self, w, tx + 0x90,0x94,0x20,0x2a, // code info + 0x12,0x16, // LOAD_GLOBAL 'write_uint32' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x81,0x0c, // LOAD_ATTR 'lock_time' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'write_uint32' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x81,0x0d, // LOAD_ATTR 'expiry' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred_write_tx_footer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_footer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 34, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 70, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_footer + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_footer + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_footer + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_decred_Decred +// frozen bytecode for file apps/bitcoin/sign_tx/decred.py, scope apps_bitcoin_sign_tx_decred_Decred_write_tx_input_witness +static const byte fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_input_witness[78] = { + 0xe9,0x04,0x28, // prelude + 0x6c,0x81,0x16,0x81,0x26,0x81,0x1c,0x81,0x27,0x81,0x28, // names: write_tx_input_witness, self, w, txi, pubkey, signature + 0x90,0x9b,0x2b,0x27,0x28,0x46,0x23,0x23,0x23, // code info + 0x12,0x12, // LOAD_GLOBAL 'writers' + 0x14,0x7b, // LOAD_METHOD 'write_uint64' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x7c, // LOAD_ATTR 'amount' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'write_uint32' + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x16, // LOAD_GLOBAL 'write_uint32' + 0xb1, // LOAD_FAST 1 + 0x23,0x0c, // LOAD_CONST_OBJ 12 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x11, // LOAD_GLOBAL 'scripts_decred' + 0x14,0x81,0x0e, // LOAD_METHOD 'write_input_script_prefixed' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x27, // LOAD_ATTR 'script_type' + 0xb2, // LOAD_FAST 2 + 0x13,0x4d, // LOAD_ATTR 'multisig' + 0xb0, // LOAD_FAST 0 + 0x13,0x2f, // LOAD_ATTR 'coin' + 0xb0, // LOAD_FAST 0 + 0x14,0x81,0x0f, // LOAD_METHOD 'get_sighash_type' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x07, // CALL_METHOD 7 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred_write_tx_input_witness = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 5, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_input_witness, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 78, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 108, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_input_witness + 14, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_input_witness + 23, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred_write_tx_input_witness + 23, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_decred_Decred[] = { + &raw_code_apps_bitcoin_sign_tx_decred_Decred___init__, + &raw_code_apps_bitcoin_sign_tx_decred_Decred_create_hash_writer, + &raw_code_apps_bitcoin_sign_tx_decred_Decred_create_sig_hasher, + &raw_code_apps_bitcoin_sign_tx_decred_Decred_step2_approve_outputs, + &raw_code_apps_bitcoin_sign_tx_decred_Decred_process_internal_input, + &raw_code_apps_bitcoin_sign_tx_decred_Decred_process_external_input, + &raw_code_apps_bitcoin_sign_tx_decred_Decred_process_original_input, + &raw_code_apps_bitcoin_sign_tx_decred_Decred_approve_output, + &raw_code_apps_bitcoin_sign_tx_decred_Decred_step4_serialize_inputs, + &raw_code_apps_bitcoin_sign_tx_decred_Decred_step5_serialize_outputs, + &raw_code_apps_bitcoin_sign_tx_decred_Decred_step6_sign_segwit_inputs, + &raw_code_apps_bitcoin_sign_tx_decred_Decred_step7_finish, + &raw_code_apps_bitcoin_sign_tx_decred_Decred_check_prevtx_output, + &raw_code_apps_bitcoin_sign_tx_decred_Decred_write_tx_input, + &raw_code_apps_bitcoin_sign_tx_decred_Decred_write_tx_output, + &raw_code_apps_bitcoin_sign_tx_decred_Decred_process_sstx_commitment_owned, + &raw_code_apps_bitcoin_sign_tx_decred_Decred_approve_staking_ticket, + &raw_code_apps_bitcoin_sign_tx_decred_Decred_write_tx_header, + &raw_code_apps_bitcoin_sign_tx_decred_Decred_write_tx_footer, + &raw_code_apps_bitcoin_sign_tx_decred_Decred_write_tx_input_witness, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred_Decred = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred_Decred, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 150, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_decred_Decred, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 20, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 32, + .line_info = fun_data_apps_bitcoin_sign_tx_decred_Decred + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred_Decred + 37, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred_Decred + 38, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_decred__lt_module_gt_[] = { + &raw_code_apps_bitcoin_sign_tx_decred_DecredTxWeightCalculator, + &raw_code_apps_bitcoin_sign_tx_decred_DecredApprover, + &raw_code_apps_bitcoin_sign_tx_decred_DecredSigHasher, + &raw_code_apps_bitcoin_sign_tx_decred_Decred, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_decred__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_decred__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 257, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_decred__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 4, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_sign_tx_decred__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_decred__lt_module_gt_ + 28, + .opcodes = fun_data_apps_bitcoin_sign_tx_decred__lt_module_gt_ + 28, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_sign_tx_decred[169] = { + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_decred_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_blake256, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_InputScriptType, + MP_QSTR_trezor_dot_enums, + MP_QSTR_HashWriter, + MP_QSTR_trezor_dot_utils, + MP_QSTR_DataError, + MP_QSTR_ProcessError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_TxWeightCalculator, + MP_QSTR_apps_dot_bitcoin_dot_sign_tx_dot_tx_weight, + MP_QSTR_write_compact_size, + MP_QSTR_apps_dot_common_dot_writers, + MP_QSTR_scripts_decred, + MP_QSTR_writers, + MP_QSTR_, + MP_QSTR_ecdsa_hash_pubkey, + MP_QSTR_common, + MP_QSTR_write_uint32, + MP_QSTR_helpers, + MP_QSTR_BasicApprover, + MP_QSTR_approvers, + MP_QSTR_Bitcoin, + MP_QSTR_bitcoin, + MP_QSTR_progress, + MP_QSTR_DecredTxWeightCalculator, + MP_QSTR_DecredApprover, + MP_QSTR_DecredSigHasher, + MP_QSTR_Decred, + MP_QSTR_get_base_weight, + MP_QSTR_compact_size_len, + MP_QSTR_inputs_count, + MP_QSTR_add_input, + MP_QSTR_counter, + MP_QSTR_input_script_size, + MP_QSTR_script_type, + MP_QSTR_SPENDMULTISIG, + MP_QSTR_add_output, + MP_QSTR___init__, + MP_QSTR_weight, + MP_QSTR_add_decred_sstx_submission, + MP_QSTR_add_external_output, + MP_QSTR_confirm_decred_sstx_submission, + MP_QSTR_coin, + MP_QSTR_amount_unit, + MP_QSTR_h_prefix, + MP_QSTR_write_tx_input, + MP_QSTR_write_tx_output, + MP_QSTR_hash143, + MP_QSTR_hash341, + MP_QSTR_hash_zip244, + MP_QSTR_ensure, + MP_QSTR_decred, + MP_QSTR_tx_info, + MP_QSTR_tx, + MP_QSTR_serialize, + MP_QSTR_write_tx_header, + MP_QSTR_serialized_tx, + MP_QSTR_witness_marker, + MP_QSTR_version, + MP_QSTR_create_hash_writer, + MP_QSTR_create_sig_hasher, + MP_QSTR_step2_approve_outputs, + MP_QSTR_outputs_count, + MP_QSTR_decred_staking_ticket, + MP_QSTR_approve_staking_ticket, + MP_QSTR_write_tx_footer, + MP_QSTR_process_internal_input, + MP_QSTR_process_external_input, + MP_QSTR_process_original_input, + MP_QSTR_approve_output, + MP_QSTR_step4_serialize_inputs, + MP_QSTR_DecredStakingSpendType, + MP_QSTR_multisig, + MP_QSTR_SigHashType, + MP_QSTR_ecdsa_sign, + MP_QSTR_get_digest, + MP_QSTR_advance, + MP_QSTR_request_tx_input, + MP_QSTR_tx_req, + MP_QSTR_check_input, + MP_QSTR_keychain, + MP_QSTR_derive, + MP_QSTR_address_n, + MP_QSTR_public_key, + MP_QSTR_decred_staking_spend, + MP_QSTR_SSRTX, + MP_QSTR_write_output_script_ssrtx_prefixed, + MP_QSTR_SSGen, + MP_QSTR_write_output_script_ssgen_prefixed, + MP_QSTR_write_output_script_multisig, + MP_QSTR_multisig_get_pubkeys, + MP_QSTR_m, + MP_QSTR_prefixed, + MP_QSTR_SPENDADDRESS, + MP_QSTR_write_output_script_p2pkh, + MP_QSTR_get_tx_hash, + MP_QSTR_double, + MP_QSTR_sign_hash_double, + MP_QSTR_reverse, + MP_QSTR_SIGHASH_ALL, + MP_QSTR_write_bytes_fixed, + MP_QSTR_TX_HASH_SIZE, + MP_QSTR_set_serialized_signature, + MP_QSTR_write_tx_input_witness, + MP_QSTR_step5_serialize_outputs, + MP_QSTR_step6_sign_segwit_inputs, + MP_QSTR_step7_finish, + MP_QSTR_request_tx_finish, + MP_QSTR_check_prevtx_output, + MP_QSTR_decred_script_version, + MP_QSTR_write_bytes_reversed, + MP_QSTR_prev_hash, + MP_QSTR_prev_index, + MP_QSTR_write_uint8, + MP_QSTR_decred_tree, + MP_QSTR_sequence, + MP_QSTR_PrevOutput, + MP_QSTR_trezor_dot_messages, + MP_QSTR_write_uint64, + MP_QSTR_amount, + MP_QSTR_is_type_of, + MP_QSTR_write_uint16, + MP_QSTR_write_bytes_prefixed, + MP_QSTR_process_sstx_commitment_owned, + MP_QSTR_output_is_change, + MP_QSTR_sstxcommitment_pkh, + MP_QSTR_output_script_paytoopreturn, + MP_QSTR_approver, + MP_QSTR_request_tx_output, + MP_QSTR_address, + MP_QSTR_output_script_sstxsubmissionpkh, + MP_QSTR_total_in, + MP_QSTR_add_change_output, + MP_QSTR_output_script_sstxchange, + MP_QSTR__add_output, + MP_QSTR_lock_time, + MP_QSTR_expiry, + MP_QSTR_write_input_script_prefixed, + MP_QSTR_get_sighash_type, + MP_QSTR_OUTPUT_SCRIPT_NULL_SSTXCHANGE, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_staticmethod, + MP_QSTR__star_, + MP_QSTR_self, + MP_QSTR_super, + MP_QSTR_i, + MP_QSTR_script, + MP_QSTR_txo, + MP_QSTR_script_pubkey, + MP_QSTR_txi, + MP_QSTR_bytes, + MP_QSTR_public_keys, + MP_QSTR_threshold, + MP_QSTR_hash_type, + MP_QSTR_NotImplementedError, + MP_QSTR_sighash_type, + MP_QSTR_node, + MP_QSTR_orig_txo, + MP_QSTR_txo_bin, + MP_QSTR_w, + MP_QSTR_pubkey, + MP_QSTR_signature, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_decred_0 = {{&mp_type_bytes}, 55703, 26, (const byte*)"\xbd\x76\xa9\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\xac"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_decred_1 = {{&mp_type_str}, 13958, 29, (const byte*)"\x45\x78\x74\x65\x72\x6e\x61\x6c\x20\x69\x6e\x70\x75\x74\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_decred_2 = {{&mp_type_str}, 42743, 38, (const byte*)"\x52\x65\x70\x6c\x61\x63\x65\x6d\x65\x6e\x74\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_decred_3 = {{&mp_type_str}, 3729, 29, (const byte*)"\x55\x6e\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x69\x6e\x70\x75\x74\x20\x73\x63\x72\x69\x70\x74\x20\x74\x79\x70\x65"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_decred_4 = {{&mp_type_str}, 57628, 44, (const byte*)"\x43\x61\x6e\x6e\x6f\x74\x20\x75\x73\x65\x20\x75\x74\x78\x6f\x20\x74\x68\x61\x74\x20\x68\x61\x73\x20\x73\x63\x72\x69\x70\x74\x5f\x76\x65\x72\x73\x69\x6f\x6e\x20\x21\x3d\x20\x30"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_decred_5 = {{&mp_type_str}, 55199, 31, (const byte*)"\x53\x63\x72\x69\x70\x74\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x64"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_decred_6 = {{&mp_type_str}, 39960, 28, (const byte*)"\x49\x6e\x76\x61\x6c\x69\x64\x20\x73\x73\x74\x78\x63\x6f\x6d\x6d\x69\x74\x6d\x65\x6e\x74\x20\x70\x61\x74\x68\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_decred_7 = {{&mp_type_str}, 19664, 35, (const byte*)"\x54\x69\x63\x6b\x65\x74\x20\x68\x61\x73\x20\x77\x72\x6f\x6e\x67\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x6f\x75\x74\x70\x75\x74\x73\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_decred_9 = {{&mp_type_str}, 64555, 28, (const byte*)"\x57\x72\x6f\x6e\x67\x20\x73\x73\x74\x78\x63\x6f\x6d\x6d\x69\x74\x6d\x65\x6e\x74\x20\x61\x6d\x6f\x75\x6e\x74\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_decred_10 = {{&mp_type_str}, 41156, 40, (const byte*)"\x4f\x6e\x6c\x79\x20\x76\x61\x6c\x75\x65\x20\x6f\x66\x20\x30\x20\x61\x6c\x6c\x6f\x77\x65\x64\x20\x66\x6f\x72\x20\x73\x73\x74\x78\x20\x63\x68\x61\x6e\x67\x65\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_decred_11 = {{&mp_type_str}, 6828, 47, (const byte*)"\x4f\x6e\x6c\x79\x20\x7a\x65\x72\x6f\x65\x64\x20\x61\x64\x64\x72\x65\x73\x73\x65\x73\x20\x61\x63\x63\x65\x70\x74\x65\x64\x20\x66\x6f\x72\x20\x73\x73\x74\x78\x20\x63\x68\x61\x6e\x67\x65\x2e"}; +static const mp_obj_int_t const_obj_apps_bitcoin_sign_tx_decred_12 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0xffff,0xffff}}}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_sign_tx_decred[13] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_decred_0), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_decred_1), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_decred_2), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_decred_3), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_decred_4), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_decred_5), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_decred_6), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_decred_7), + MP_ROM_QSTR(MP_QSTR_Missing_space_address_dot_), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_decred_9), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_decred_10), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_decred_11), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_decred_12), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_sign_tx_decred = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_sign_tx_decred, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_sign_tx_decred, + }, + .rc = &raw_code_apps_bitcoin_sign_tx_decred__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_sign_tx_bitcoinlike +// - original source file: build/firmware/src/apps/bitcoin/sign_tx/bitcoinlike.mpy +// - frozen file name: apps/bitcoin/sign_tx/bitcoinlike.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoinlike.py, scope apps_bitcoin_sign_tx_bitcoinlike__lt_module_gt_ +static const byte fun_data_apps_bitcoin_sign_tx_bitcoinlike__lt_module_gt_[58] = { + 0x18,0x0e, // prelude + 0x01, // names: + 0x40,0x2c,0x2c,0x4c,0x80,0x08, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x02, // LOAD_CONST_STRING 'writers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME '' + 0x1c,0x02, // IMPORT_FROM 'writers' + 0x16,0x02, // STORE_NAME 'writers' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x04, // LOAD_CONST_STRING 'helpers' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME '' + 0x1c,0x04, // IMPORT_FROM 'helpers' + 0x16,0x04, // STORE_NAME 'helpers' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x05, // LOAD_CONST_STRING 'Bitcoin' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x06, // IMPORT_NAME 'bitcoin' + 0x1c,0x05, // IMPORT_FROM 'Bitcoin' + 0x16,0x05, // STORE_NAME 'Bitcoin' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x07, // LOAD_CONST_STRING 'Bitcoinlike' + 0x11,0x05, // LOAD_NAME 'Bitcoin' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x07, // STORE_NAME 'Bitcoinlike' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_bitcoinlike__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoinlike.py, scope apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike +static const byte fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike[58] = { + 0x08,0x1b, // prelude + 0x07, // names: Bitcoinlike + 0x88,0x0f,0x84,0x17,0x66,0x60,0x86,0x17,0x86,0x08,0x84,0x10,0x00, // code info + 0x11,0x32, // LOAD_NAME '__name__' + 0x16,0x33, // STORE_NAME '__module__' + 0x10,0x07, // LOAD_CONST_STRING 'Bitcoinlike' + 0x16,0x34, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x08, // STORE_NAME 'sign_nonsegwit_bip143_input' + 0xb0, // LOAD_FAST 0 + 0x20,0x01,0x01, // MAKE_CLOSURE 1 + 0x16,0x1d, // STORE_NAME 'sign_nonsegwit_input' + 0xb0, // LOAD_FAST 0 + 0x20,0x02,0x01, // MAKE_CLOSURE 2 + 0x16,0x1f, // STORE_NAME 'get_tx_digest' + 0xb0, // LOAD_FAST 0 + 0x20,0x03,0x01, // MAKE_CLOSURE 3 + 0x16,0x23, // STORE_NAME 'get_hash_type' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x27, // STORE_NAME 'write_tx_header' + 0xb0, // LOAD_FAST 0 + 0x20,0x05,0x01, // MAKE_CLOSURE 5 + 0x16,0x2d, // STORE_NAME 'write_prev_tx_footer' + 0xb0, // LOAD_FAST 0 + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoinlike.py, scope apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_sign_nonsegwit_bip143_input +static const byte fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_sign_nonsegwit_bip143_input[158] = { + 0xea,0x40,0x24, // prelude + 0x08,0x35,0x36, // names: sign_nonsegwit_bip143_input, self, i_sign + 0x80,0x10,0x4b,0x2b,0x4b,0x31,0x29,0x49,0x28,0x28,0x6b,0x25,0x6a,0x25,0x2c, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x09, // LOAD_CONST_STRING 'wire' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0a, // IMPORT_NAME 'trezor' + 0x1c,0x09, // IMPORT_FROM 'wire' + 0xc2, // STORE_FAST 2 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x0b, // LOAD_CONST_STRING 'multisig' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME '' + 0x1c,0x0b, // IMPORT_FROM 'multisig' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x0c, // LOAD_CONST_STRING 'NONSEGWIT_INPUT_SCRIPT_TYPES' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'common' + 0x1c,0x0c, // IMPORT_FROM 'NONSEGWIT_INPUT_SCRIPT_TYPES' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x12,0x04, // LOAD_GLOBAL 'helpers' + 0x14,0x0e, // LOAD_METHOD 'request_tx_input' + 0xb0, // LOAD_FAST 0 + 0x13,0x0f, // LOAD_ATTR 'tx_req' + 0xb1, // LOAD_FAST 1 + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'coin' + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc5, // STORE_FAST 5 + 0xb0, // LOAD_FAST 0 + 0x13,0x11, // LOAD_ATTR 'tx_info' + 0x14,0x12, // LOAD_METHOD 'check_input' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x13, // LOAD_ATTR 'approver' + 0x14,0x14, // LOAD_METHOD 'check_internal_input' + 0xb5, // LOAD_FAST 5 + 0x36,0x01, // CALL_METHOD 1 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x13,0x15, // LOAD_ATTR 'script_type' + 0xb4, // LOAD_FAST 4 + 0xdd, // BINARY_OP 6 + 0xd3, // UNARY_OP 3 + 0x44,0x48, // POP_JUMP_IF_FALSE 8 + 0xb2, // LOAD_FAST 2 + 0x14,0x16, // LOAD_METHOD 'ProcessError' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x36,0x01, // CALL_METHOD 1 + 0x65, // RAISE_OBJ + 0xb0, // LOAD_FAST 0 + 0x14,0x17, // LOAD_METHOD 'sign_bip143_input' + 0xb1, // LOAD_FAST 1 + 0xb5, // LOAD_FAST 5 + 0x36,0x02, // CALL_METHOD 2 + 0x30,0x02, // UNPACK_SEQUENCE 2 + 0xc6, // STORE_FAST 6 + 0xc7, // STORE_FAST 7 + 0xb5, // LOAD_FAST 5 + 0x13,0x0b, // LOAD_ATTR 'multisig' + 0x44,0x4a, // POP_JUMP_IF_FALSE 10 + 0xb3, // LOAD_FAST 3 + 0x14,0x18, // LOAD_METHOD 'multisig_pubkey_index' + 0xb5, // LOAD_FAST 5 + 0x13,0x0b, // LOAD_ATTR 'multisig' + 0xb6, // LOAD_FAST 6 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x19, // LOAD_ATTR 'serialize' + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb0, // LOAD_FAST 0 + 0x14,0x1a, // LOAD_METHOD 'write_tx_input_derived' + 0xb0, // LOAD_FAST 0 + 0x13,0x1b, // LOAD_ATTR 'serialized_tx' + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x36,0x04, // CALL_METHOD 4 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x14,0x1c, // LOAD_METHOD 'set_serialized_signature' + 0xb1, // LOAD_FAST 1 + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_sign_nonsegwit_bip143_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 2, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_sign_nonsegwit_bip143_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 158, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 2, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 8, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_sign_nonsegwit_bip143_input + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_sign_nonsegwit_bip143_input + 21, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_sign_nonsegwit_bip143_input + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoinlike.py, scope apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_sign_nonsegwit_input +static const byte fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_sign_nonsegwit_input[46] = { + 0xab,0x40,0x10, // prelude + 0x1d,0x37,0x35,0x36, // names: sign_nonsegwit_input, *, self, i_sign + 0x80,0x27,0x27,0x4c, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x10, // LOAD_ATTR 'coin' + 0x13,0x1e, // LOAD_ATTR 'force_bip143' + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb1, // LOAD_FAST 1 + 0x14,0x08, // LOAD_METHOD 'sign_nonsegwit_bip143_input' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x42,0x4e, // JUMP 14 + 0x12,0x38, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x1d, // LOAD_SUPER_METHOD 'sign_nonsegwit_input' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_sign_nonsegwit_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_sign_nonsegwit_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 46, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_sign_nonsegwit_input + 7, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_sign_nonsegwit_input + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_sign_nonsegwit_input + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoinlike.py, scope apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_get_tx_digest +static const byte fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_get_tx_digest[72] = { + 0x88,0xd0,0x04,0x22, // prelude + 0x1f,0x37,0x35,0x39,0x3a,0x11,0x3b,0x3c,0x3d, // names: get_tx_digest, *, self, i, txi, tx_info, public_keys, threshold, script_pubkey + 0x80,0x35,0x27,0x68,0x20,0x23,0x23,0x69, // code info + 0xb1, // LOAD_FAST 1 + 0x13,0x10, // LOAD_ATTR 'coin' + 0x13,0x1e, // LOAD_ATTR 'force_bip143' + 0x44,0x57, // POP_JUMP_IF_FALSE 23 + 0xb4, // LOAD_FAST 4 + 0x13,0x20, // LOAD_ATTR 'sig_hasher' + 0x14,0x21, // LOAD_METHOD 'hash143' + 0xb3, // LOAD_FAST 3 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x13,0x22, // LOAD_ATTR 'tx' + 0xb1, // LOAD_FAST 1 + 0x13,0x10, // LOAD_ATTR 'coin' + 0xb1, // LOAD_FAST 1 + 0x14,0x23, // LOAD_METHOD 'get_hash_type' + 0xb3, // LOAD_FAST 3 + 0x36,0x01, // CALL_METHOD 1 + 0x36,0x06, // CALL_METHOD 6 + 0x63, // RETURN_VALUE + 0x12,0x38, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x1f, // LOAD_SUPER_METHOD 'get_tx_digest' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0xb7, // LOAD_FAST 7 + 0x36,0x06, // CALL_METHOD 6 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x63, // RETURN_VALUE + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_get_tx_digest = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 8, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_get_tx_digest, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 72, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 18, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 8, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 31, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_get_tx_digest + 13, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_get_tx_digest + 21, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_get_tx_digest + 21, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoinlike.py, scope apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_get_hash_type +static const byte fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_get_hash_type[60] = { + 0x3b,0x14, // prelude + 0x23,0x37,0x35,0x3a, // names: get_hash_type, *, self, txi + 0x80,0x44,0x4b,0x2b,0x2a,0x2e, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x24, // LOAD_CONST_STRING 'SigHashType' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0d, // IMPORT_NAME 'common' + 0x1c,0x24, // IMPORT_FROM 'SigHashType' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0x12,0x38, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x23, // LOAD_SUPER_METHOD 'get_hash_type' + 0xb2, // LOAD_FAST 2 + 0x36,0x01, // CALL_METHOD 1 + 0xc4, // STORE_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x10, // LOAD_ATTR 'coin' + 0x13,0x25, // LOAD_ATTR 'fork_id' + 0x51, // LOAD_CONST_NONE + 0xde, // BINARY_OP 7 + 0xd3, // UNARY_OP 3 + 0x44,0x4e, // POP_JUMP_IF_FALSE 14 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x13,0x10, // LOAD_ATTR 'coin' + 0x13,0x25, // LOAD_ATTR 'fork_id' + 0x88, // LOAD_CONST_SMALL_INT 8 + 0xf0, // BINARY_OP 25 __lshift__ + 0xb3, // LOAD_FAST 3 + 0x13,0x26, // LOAD_ATTR 'SIGHASH_FORKID' + 0xed, // BINARY_OP 22 __or__ + 0xe0, // BINARY_OP 9 __ior__ + 0xc4, // STORE_FAST 4 + 0xb4, // LOAD_FAST 4 + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_get_hash_type = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_get_hash_type, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 60, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 35, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_get_hash_type + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_get_hash_type + 12, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_get_hash_type + 12, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoinlike.py, scope apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_write_tx_header +static const byte fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_write_tx_header[74] = { + 0xc0,0x04,0x1c, // prelude + 0x27,0x35,0x3e,0x22,0x3f, // names: write_tx_header, self, w, tx, witness_marker + 0x80,0x51,0x4b,0x2b,0x27,0x20,0x2b,0x23,0x26, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x28, // LOAD_CONST_STRING 'write_compact_size' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x29, // IMPORT_NAME 'apps.common.writers' + 0x1c,0x28, // IMPORT_FROM 'write_compact_size' + 0xc4, // STORE_FAST 4 + 0x59, // POP_TOP + 0x12,0x02, // LOAD_GLOBAL 'writers' + 0x14,0x2a, // LOAD_METHOD 'write_uint32' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x2b, // LOAD_ATTR 'version' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb0, // LOAD_FAST 0 + 0x13,0x10, // LOAD_ATTR 'coin' + 0x13,0x2c, // LOAD_ATTR 'timestamp' + 0x44,0x4b, // POP_JUMP_IF_FALSE 11 + 0x12,0x02, // LOAD_GLOBAL 'writers' + 0x14,0x2a, // LOAD_METHOD 'write_uint32' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x2c, // LOAD_ATTR 'timestamp' + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0x44,0x4c, // POP_JUMP_IF_FALSE 12 + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb4, // LOAD_FAST 4 + 0xb1, // LOAD_FAST 1 + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_write_tx_header = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_write_tx_header, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 74, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 9, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 39, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_write_tx_header + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_write_tx_header + 17, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_write_tx_header + 17, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike +// frozen bytecode for file apps/bitcoin/sign_tx/bitcoinlike.py, scope apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_write_prev_tx_footer +static const byte fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_write_prev_tx_footer[101] = { + 0xe9,0x44,0x20, // prelude + 0x2d,0x37,0x35,0x3e,0x22,0x40, // names: write_prev_tx_footer, *, self, w, tx, prev_hash + 0x80,0x5e,0x50,0x27,0x22,0x22,0x2d,0x24,0x4c,0x29, // code info + 0x12,0x38, // LOAD_GLOBAL 'super' + 0x25,0x00, // LOAD_DEREF 0 + 0xb1, // LOAD_FAST 1 + 0x15,0x2d, // LOAD_SUPER_METHOD 'write_prev_tx_footer' + 0xb2, // LOAD_FAST 2 + 0xb3, // LOAD_FAST 3 + 0xb4, // LOAD_FAST 4 + 0x36,0x03, // CALL_METHOD 3 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0x59, // POP_TOP + 0xb1, // LOAD_FAST 1 + 0x13,0x10, // LOAD_ATTR 'coin' + 0x13,0x2e, // LOAD_ATTR 'extra_data' + 0x44,0x79, // POP_JUMP_IF_FALSE 57 + 0x80, // LOAD_CONST_SMALL_INT 0 + 0xc5, // STORE_FAST 5 + 0x42,0x6e, // JUMP 46 + 0x12,0x41, // LOAD_GLOBAL 'min' + 0x22,0x88,0x00, // LOAD_CONST_SMALL_INT 1024 + 0xb3, // LOAD_FAST 3 + 0x13,0x2f, // LOAD_ATTR 'extra_data_len' + 0xb5, // LOAD_FAST 5 + 0xf3, // BINARY_OP 28 __sub__ + 0x34,0x02, // CALL_FUNCTION 2 + 0xc6, // STORE_FAST 6 + 0x12,0x04, // LOAD_GLOBAL 'helpers' + 0x14,0x30, // LOAD_METHOD 'request_tx_extra_data' + 0xb1, // LOAD_FAST 1 + 0x13,0x0f, // LOAD_ATTR 'tx_req' + 0xb5, // LOAD_FAST 5 + 0xb6, // LOAD_FAST 6 + 0xb4, // LOAD_FAST 4 + 0x36,0x04, // CALL_METHOD 4 + 0x5e, // GET_ITER + 0x51, // LOAD_CONST_NONE + 0x68, // YIELD_FROM + 0xc7, // STORE_FAST 7 + 0x12,0x02, // LOAD_GLOBAL 'writers' + 0x14,0x31, // LOAD_METHOD 'write_bytes_unchecked' + 0xb2, // LOAD_FAST 2 + 0xb7, // LOAD_FAST 7 + 0x36,0x02, // CALL_METHOD 2 + 0x59, // POP_TOP + 0xb5, // LOAD_FAST 5 + 0x12,0x42, // LOAD_GLOBAL 'len' + 0xb7, // LOAD_FAST 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0xe5, // BINARY_OP 14 __iadd__ + 0xc5, // STORE_FAST 5 + 0xb5, // LOAD_FAST 5 + 0xb3, // LOAD_FAST 3 + 0x13,0x2f, // LOAD_ATTR 'extra_data_len' + 0xd7, // BINARY_OP 0 __lt__ + 0x43,0x0b, // POP_JUMP_IF_TRUE -53 + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_write_prev_tx_footer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x01, + .n_pos_args = 5, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_write_prev_tx_footer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 101, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 14, + .n_exc_stack = 0, + .scope_flags = 1, + .n_pos_args = 5, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 45, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_write_prev_tx_footer + 9, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_write_prev_tx_footer + 19, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_write_prev_tx_footer + 19, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike[] = { + &raw_code_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_sign_nonsegwit_bip143_input, + &raw_code_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_sign_nonsegwit_input, + &raw_code_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_get_tx_digest, + &raw_code_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_get_hash_type, + &raw_code_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_write_tx_header, + &raw_code_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike_write_prev_tx_footer, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 58, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 6, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 2, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 7, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike + 15, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_bitcoinlike__lt_module_gt_[] = { + &raw_code_apps_bitcoin_sign_tx_bitcoinlike_Bitcoinlike, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_bitcoinlike__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_bitcoinlike__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 58, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_bitcoinlike__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 1, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 4, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_sign_tx_bitcoinlike__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_bitcoinlike__lt_module_gt_ + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_bitcoinlike__lt_module_gt_ + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_sign_tx_bitcoinlike[67] = { + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_bitcoinlike_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_writers, + MP_QSTR_, + MP_QSTR_helpers, + MP_QSTR_Bitcoin, + MP_QSTR_bitcoin, + MP_QSTR_Bitcoinlike, + MP_QSTR_sign_nonsegwit_bip143_input, + MP_QSTR_wire, + MP_QSTR_trezor, + MP_QSTR_multisig, + MP_QSTR_NONSEGWIT_INPUT_SCRIPT_TYPES, + MP_QSTR_common, + MP_QSTR_request_tx_input, + MP_QSTR_tx_req, + MP_QSTR_coin, + MP_QSTR_tx_info, + MP_QSTR_check_input, + MP_QSTR_approver, + MP_QSTR_check_internal_input, + MP_QSTR_script_type, + MP_QSTR_ProcessError, + MP_QSTR_sign_bip143_input, + MP_QSTR_multisig_pubkey_index, + MP_QSTR_serialize, + MP_QSTR_write_tx_input_derived, + MP_QSTR_serialized_tx, + MP_QSTR_set_serialized_signature, + MP_QSTR_sign_nonsegwit_input, + MP_QSTR_force_bip143, + MP_QSTR_get_tx_digest, + MP_QSTR_sig_hasher, + MP_QSTR_hash143, + MP_QSTR_tx, + MP_QSTR_get_hash_type, + MP_QSTR_SigHashType, + MP_QSTR_fork_id, + MP_QSTR_SIGHASH_FORKID, + MP_QSTR_write_tx_header, + MP_QSTR_write_compact_size, + MP_QSTR_apps_dot_common_dot_writers, + MP_QSTR_write_uint32, + MP_QSTR_version, + MP_QSTR_timestamp, + MP_QSTR_write_prev_tx_footer, + MP_QSTR_extra_data, + MP_QSTR_extra_data_len, + MP_QSTR_request_tx_extra_data, + MP_QSTR_write_bytes_unchecked, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_self, + MP_QSTR_i_sign, + MP_QSTR__star_, + MP_QSTR_super, + MP_QSTR_i, + MP_QSTR_txi, + MP_QSTR_public_keys, + MP_QSTR_threshold, + MP_QSTR_script_pubkey, + MP_QSTR_w, + MP_QSTR_witness_marker, + MP_QSTR_prev_hash, + MP_QSTR_min, + MP_QSTR_len, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_bitcoinlike_0 = {{&mp_type_str}, 4745, 38, (const byte*)"\x54\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x68\x61\x73\x20\x63\x68\x61\x6e\x67\x65\x64\x20\x64\x75\x72\x69\x6e\x67\x20\x73\x69\x67\x6e\x69\x6e\x67"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_sign_tx_bitcoinlike[1] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_bitcoinlike_0), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_sign_tx_bitcoinlike = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_sign_tx_bitcoinlike, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_sign_tx_bitcoinlike, + }, + .rc = &raw_code_apps_bitcoin_sign_tx_bitcoinlike__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// frozen module apps_bitcoin_sign_tx_zcash_v4 +// - original source file: build/firmware/src/apps/bitcoin/sign_tx/zcash_v4.mpy +// - frozen file name: apps/bitcoin/sign_tx/zcash_v4.py +// - .mpy header: 4d:06:00:1f + +// frozen bytecode for file apps/bitcoin/sign_tx/zcash_v4.py, scope apps_bitcoin_sign_tx_zcash_v4__lt_module_gt_ +static const byte fun_data_apps_bitcoin_sign_tx_zcash_v4__lt_module_gt_[125] = { + 0x20,0x16, // prelude + 0x01, // names: + 0x6c,0x2c,0x2c,0x4c,0x3e,0x4c,0x80,0x11,0x89,0x5d, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x02, // LOAD_CONST_STRING 'const' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x03, // IMPORT_NAME 'micropython' + 0x1c,0x02, // IMPORT_FROM 'const' + 0x16,0x02, // STORE_NAME 'const' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x04, // LOAD_CONST_STRING 'blake2b' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x05, // IMPORT_NAME 'trezor.crypto.hashlib' + 0x1c,0x04, // IMPORT_FROM 'blake2b' + 0x16,0x04, // STORE_NAME 'blake2b' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x06, // LOAD_CONST_STRING 'HashWriter' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x07, // IMPORT_NAME 'trezor.utils' + 0x1c,0x06, // IMPORT_FROM 'HashWriter' + 0x16,0x06, // STORE_NAME 'HashWriter' + 0x59, // POP_TOP + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x10,0x08, // LOAD_CONST_STRING 'DataError' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x09, // IMPORT_NAME 'trezor.wire' + 0x1c,0x08, // IMPORT_FROM 'DataError' + 0x16,0x08, // STORE_NAME 'DataError' + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x0a, // LOAD_CONST_STRING 'TX_HASH_SIZE' + 0x10,0x0b, // LOAD_CONST_STRING 'write_bytes_reversed' + 0x10,0x0c, // LOAD_CONST_STRING 'write_uint32' + 0x10,0x0d, // LOAD_CONST_STRING 'write_uint64' + 0x2a,0x04, // BUILD_TUPLE 4 + 0x1b,0x0e, // IMPORT_NAME 'writers' + 0x1c,0x0a, // IMPORT_FROM 'TX_HASH_SIZE' + 0x16,0x0a, // STORE_NAME 'TX_HASH_SIZE' + 0x1c,0x0b, // IMPORT_FROM 'write_bytes_reversed' + 0x16,0x0b, // STORE_NAME 'write_bytes_reversed' + 0x1c,0x0c, // IMPORT_FROM 'write_uint32' + 0x16,0x0c, // STORE_NAME 'write_uint32' + 0x1c,0x0d, // IMPORT_FROM 'write_uint64' + 0x16,0x0d, // STORE_NAME 'write_uint64' + 0x59, // POP_TOP + 0x81, // LOAD_CONST_SMALL_INT 1 + 0x10,0x0f, // LOAD_CONST_STRING 'Bitcoinlike' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x10, // IMPORT_NAME 'bitcoinlike' + 0x1c,0x0f, // IMPORT_FROM 'Bitcoinlike' + 0x16,0x0f, // STORE_NAME 'Bitcoinlike' + 0x59, // POP_TOP + 0x54, // LOAD_BUILD_CLASS + 0x32,0x00, // MAKE_FUNCTION 0 + 0x10,0x11, // LOAD_CONST_STRING 'Zip243SigHasher' + 0x34,0x02, // CALL_FUNCTION 2 + 0x16,0x11, // STORE_NAME 'Zip243SigHasher' + 0x54, // LOAD_BUILD_CLASS + 0x32,0x01, // MAKE_FUNCTION 1 + 0x10,0x12, // LOAD_CONST_STRING 'ZcashV4' + 0x11,0x0f, // LOAD_NAME 'Bitcoinlike' + 0x34,0x03, // CALL_FUNCTION 3 + 0x16,0x12, // STORE_NAME 'ZcashV4' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_zcash_v4__lt_module_gt_ +// frozen bytecode for file apps/bitcoin/sign_tx/zcash_v4.py, scope apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher +static const byte fun_data_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher[49] = { + 0x00,0x1a, // prelude + 0x11, // names: Zip243SigHasher + 0x88,0x1c,0x64,0x40,0x64,0x40,0x64,0x40,0x84,0x3d,0x84,0x08, // code info + 0x11,0x45, // LOAD_NAME '__name__' + 0x16,0x46, // STORE_NAME '__module__' + 0x10,0x11, // LOAD_CONST_STRING 'Zip243SigHasher' + 0x16,0x47, // STORE_NAME '__qualname__' + 0x32,0x00, // MAKE_FUNCTION 0 + 0x16,0x13, // STORE_NAME '__init__' + 0x32,0x01, // MAKE_FUNCTION 1 + 0x16,0x19, // STORE_NAME 'add_input' + 0x32,0x02, // MAKE_FUNCTION 2 + 0x16,0x1d, // STORE_NAME 'add_output' + 0x32,0x03, // MAKE_FUNCTION 3 + 0x16,0x1f, // STORE_NAME 'hash143' + 0x32,0x04, // MAKE_FUNCTION 4 + 0x16,0x2d, // STORE_NAME 'hash341' + 0x32,0x05, // MAKE_FUNCTION 5 + 0x16,0x2e, // STORE_NAME 'hash_zip244' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +// child of apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher +// frozen bytecode for file apps/bitcoin/sign_tx/zcash_v4.py, scope apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher___init__ +static const byte fun_data_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher___init__[67] = { + 0x31,0x0c, // prelude + 0x13,0x48, // names: __init__, self + 0x80,0x1d,0x33,0x33, // code info + 0x12,0x06, // LOAD_GLOBAL 'HashWriter' + 0x12,0x04, // LOAD_GLOBAL 'blake2b' + 0x10,0x14, // LOAD_CONST_STRING 'outlen' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x10,0x15, // LOAD_CONST_STRING 'personal' + 0x23,0x00, // LOAD_CONST_OBJ 0 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x16, // STORE_ATTR 'h_prevouts' + 0x12,0x06, // LOAD_GLOBAL 'HashWriter' + 0x12,0x04, // LOAD_GLOBAL 'blake2b' + 0x10,0x14, // LOAD_CONST_STRING 'outlen' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x10,0x15, // LOAD_CONST_STRING 'personal' + 0x23,0x01, // LOAD_CONST_OBJ 1 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x17, // STORE_ATTR 'h_sequence' + 0x12,0x06, // LOAD_GLOBAL 'HashWriter' + 0x12,0x04, // LOAD_GLOBAL 'blake2b' + 0x10,0x14, // LOAD_CONST_STRING 'outlen' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x10,0x15, // LOAD_CONST_STRING 'personal' + 0x23,0x02, // LOAD_CONST_OBJ 2 + 0x34,0x84,0x00, // CALL_FUNCTION 512 + 0x34,0x01, // CALL_FUNCTION 1 + 0xb0, // LOAD_FAST 0 + 0x18,0x18, // STORE_ATTR 'h_outputs' + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher___init__ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 1, + .fun_data = fun_data_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher___init__, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 67, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 1, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 19, + .line_info = fun_data_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher___init__ + 4, + .line_info_top = fun_data_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher___init__ + 8, + .opcodes = fun_data_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher___init__ + 8, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher +// frozen bytecode for file apps/bitcoin/sign_tx/zcash_v4.py, scope apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher_add_input +static const byte fun_data_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher_add_input[47] = { + 0x33,0x10, // prelude + 0x19,0x48,0x49,0x4a, // names: add_input, self, txi, script_pubkey + 0x80,0x22,0x2d,0x2b, // code info + 0x12,0x0b, // LOAD_GLOBAL 'write_bytes_reversed' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_prevouts' + 0xb1, // LOAD_FAST 1 + 0x13,0x1a, // LOAD_ATTR 'prev_hash' + 0x12,0x0a, // LOAD_GLOBAL 'TX_HASH_SIZE' + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0x13,0x16, // LOAD_ATTR 'h_prevouts' + 0xb1, // LOAD_FAST 1 + 0x13,0x1b, // LOAD_ATTR 'prev_index' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'write_uint32' + 0xb0, // LOAD_FAST 0 + 0x13,0x17, // LOAD_ATTR 'h_sequence' + 0xb1, // LOAD_FAST 1 + 0x13,0x1c, // LOAD_ATTR 'sequence' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher_add_input = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher_add_input, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 47, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 7, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 25, + .line_info = fun_data_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher_add_input + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher_add_input + 10, + .opcodes = fun_data_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher_add_input + 10, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher +// frozen bytecode for file apps/bitcoin/sign_tx/zcash_v4.py, scope apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher_add_output +static const byte fun_data_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher_add_output[31] = { + 0x3b,0x0e, // prelude + 0x1d,0x48,0x4b,0x4a, // names: add_output, self, txo, script_pubkey + 0x80,0x27,0x4b, // code info + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x1e, // LOAD_CONST_STRING 'write_tx_output' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x0e, // IMPORT_NAME 'writers' + 0x1c,0x1e, // IMPORT_FROM 'write_tx_output' + 0xc3, // STORE_FAST 3 + 0x59, // POP_TOP + 0xb3, // LOAD_FAST 3 + 0xb0, // LOAD_FAST 0 + 0x13,0x18, // LOAD_ATTR 'h_outputs' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x34,0x03, // CALL_FUNCTION 3 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher_add_output = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher_add_output, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 31, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 29, + .line_info = fun_data_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher_add_output + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher_add_output + 9, + .opcodes = fun_data_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher_add_output + 9, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher +// frozen bytecode for file apps/bitcoin/sign_tx/zcash_v4.py, scope apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher_hash143 +static const byte fun_data_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher_hash143[274] = { + 0xb3,0x14,0x4a, // prelude + 0x1f,0x48,0x49,0x4c,0x4d,0x3b,0x42,0x4e, // names: hash143, self, txi, public_keys, threshold, tx, coin, hash_type + 0x80,0x34,0x45,0x2b,0x50,0x22,0x47,0x73,0x20,0x20,0x20,0x66,0x4c,0x49,0x4d,0x4d,0x4d,0x48,0x48,0x48,0x49,0x49,0x47,0x47,0x2b,0x49,0x49,0x49,0x49, // code info + 0x80, // LOAD_CONST_SMALL_INT 0 + 0x51, // LOAD_CONST_NONE + 0x1b,0x20, // IMPORT_NAME 'ustruct' + 0xc7, // STORE_FAST 7 + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x21, // LOAD_CONST_STRING 'write_bip143_script_code_prefixed' + 0x2a,0x01, // BUILD_TUPLE 1 + 0x1b,0x22, // IMPORT_NAME 'scripts' + 0x1c,0x21, // IMPORT_FROM 'write_bip143_script_code_prefixed' + 0xc8, // STORE_FAST 8 + 0x59, // POP_TOP + 0x82, // LOAD_CONST_SMALL_INT 2 + 0x10,0x23, // LOAD_CONST_STRING 'get_tx_hash' + 0x10,0x24, // LOAD_CONST_STRING 'write_bytes_fixed' + 0x2a,0x02, // BUILD_TUPLE 2 + 0x1b,0x0e, // IMPORT_NAME 'writers' + 0x1c,0x23, // IMPORT_FROM 'get_tx_hash' + 0xc9, // STORE_FAST 9 + 0x1c,0x24, // IMPORT_FROM 'write_bytes_fixed' + 0xca, // STORE_FAST 10 + 0x59, // POP_TOP + 0x12,0x06, // LOAD_GLOBAL 'HashWriter' + 0x12,0x04, // LOAD_GLOBAL 'blake2b' + 0x10,0x14, // LOAD_CONST_STRING 'outlen' + 0xa0, // LOAD_CONST_SMALL_INT 32 + 0x10,0x15, // LOAD_CONST_STRING 'personal' + 0x23,0x03, // LOAD_CONST_OBJ 3 + 0xb7, // LOAD_FAST 7 + 0x14,0x25, // LOAD_METHOD 'pack' + 0x10,0x26, // LOAD_CONST_STRING ' + 0x44,0x47, // POP_JUMP_IF_FALSE 7 + 0x12,0x08, // LOAD_GLOBAL 'DataError' + 0x23,0x07, // LOAD_CONST_OBJ 7 + 0x34,0x01, // CALL_FUNCTION 1 + 0x65, // RAISE_OBJ + 0x12,0x0c, // LOAD_GLOBAL 'write_uint32' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x28, // LOAD_ATTR 'version' + 0x23,0x05, // LOAD_CONST_OBJ 5 + 0xed, // BINARY_OP 22 __or__ + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x12,0x0c, // LOAD_GLOBAL 'write_uint32' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x29, // LOAD_ATTR 'version_group_id' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_zcash_v4_ZcashV4_write_tx_header = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 4, + .fun_data = fun_data_apps_bitcoin_sign_tx_zcash_v4_ZcashV4_write_tx_header, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 70, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 8, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 4, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 68, + .line_info = fun_data_apps_bitcoin_sign_tx_zcash_v4_ZcashV4_write_tx_header + 8, + .line_info_top = fun_data_apps_bitcoin_sign_tx_zcash_v4_ZcashV4_write_tx_header + 15, + .opcodes = fun_data_apps_bitcoin_sign_tx_zcash_v4_ZcashV4_write_tx_header + 15, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +// child of apps_bitcoin_sign_tx_zcash_v4_ZcashV4 +// frozen bytecode for file apps/bitcoin/sign_tx/zcash_v4.py, scope apps_bitcoin_sign_tx_zcash_v4_ZcashV4_write_tx_footer +static const byte fun_data_apps_bitcoin_sign_tx_zcash_v4_ZcashV4_write_tx_footer[38] = { + 0x2b,0x12, // prelude + 0x39,0x48,0x58,0x3b, // names: write_tx_footer, self, w, tx + 0x80,0xc0,0x20,0x29,0x27, // code info + 0x12,0x0c, // LOAD_GLOBAL 'write_uint32' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x2a, // LOAD_ATTR 'lock_time' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0xb2, // LOAD_FAST 2 + 0x13,0x28, // LOAD_ATTR 'version' + 0x83, // LOAD_CONST_SMALL_INT 3 + 0xdb, // BINARY_OP 4 __ge__ + 0x44,0x49, // POP_JUMP_IF_FALSE 9 + 0x12,0x0c, // LOAD_GLOBAL 'write_uint32' + 0xb1, // LOAD_FAST 1 + 0xb2, // LOAD_FAST 2 + 0x13,0x2b, // LOAD_ATTR 'expiry' + 0x34,0x02, // CALL_FUNCTION 2 + 0x59, // POP_TOP + 0x51, // LOAD_CONST_NONE + 0x63, // RETURN_VALUE +}; +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_zcash_v4_ZcashV4_write_tx_footer = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 3, + .fun_data = fun_data_apps_bitcoin_sign_tx_zcash_v4_ZcashV4_write_tx_footer, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 38, + #endif + .children = NULL, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 0, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 6, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 3, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 57, + .line_info = fun_data_apps_bitcoin_sign_tx_zcash_v4_ZcashV4_write_tx_footer + 6, + .line_info_top = fun_data_apps_bitcoin_sign_tx_zcash_v4_ZcashV4_write_tx_footer + 11, + .opcodes = fun_data_apps_bitcoin_sign_tx_zcash_v4_ZcashV4_write_tx_footer + 11, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_zcash_v4_ZcashV4[] = { + &raw_code_apps_bitcoin_sign_tx_zcash_v4_ZcashV4___init__, + &raw_code_apps_bitcoin_sign_tx_zcash_v4_ZcashV4_create_sig_hasher, + &raw_code_apps_bitcoin_sign_tx_zcash_v4_ZcashV4_step7_finish, + &raw_code_apps_bitcoin_sign_tx_zcash_v4_ZcashV4_sign_nonsegwit_input, + &raw_code_apps_bitcoin_sign_tx_zcash_v4_ZcashV4_get_tx_digest, + &raw_code_apps_bitcoin_sign_tx_zcash_v4_ZcashV4_write_tx_header, + &raw_code_apps_bitcoin_sign_tx_zcash_v4_ZcashV4_write_tx_footer, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_zcash_v4_ZcashV4 = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_zcash_v4_ZcashV4, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 60, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_zcash_v4_ZcashV4, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 7, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 3, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 18, + .line_info = fun_data_apps_bitcoin_sign_tx_zcash_v4_ZcashV4 + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_zcash_v4_ZcashV4 + 15, + .opcodes = fun_data_apps_bitcoin_sign_tx_zcash_v4_ZcashV4 + 16, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const mp_raw_code_t *const children_apps_bitcoin_sign_tx_zcash_v4__lt_module_gt_[] = { + &raw_code_apps_bitcoin_sign_tx_zcash_v4_Zip243SigHasher, + &raw_code_apps_bitcoin_sign_tx_zcash_v4_ZcashV4, +}; + +static const mp_raw_code_t raw_code_apps_bitcoin_sign_tx_zcash_v4__lt_module_gt_ = { + .kind = MP_CODE_BYTECODE, + .scope_flags = 0x00, + .n_pos_args = 0, + .fun_data = fun_data_apps_bitcoin_sign_tx_zcash_v4__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS + .fun_data_len = 125, + #endif + .children = (void *)&children_apps_bitcoin_sign_tx_zcash_v4__lt_module_gt_, + #if MICROPY_PERSISTENT_CODE_SAVE + .n_children = 2, + #if MICROPY_PY_SYS_SETTRACE + .prelude = { + .n_state = 5, + .n_exc_stack = 0, + .scope_flags = 0, + .n_pos_args = 0, + .n_kwonly_args = 0, + .n_def_pos_args = 0, + .qstr_block_name_idx = 1, + .line_info = fun_data_apps_bitcoin_sign_tx_zcash_v4__lt_module_gt_ + 3, + .line_info_top = fun_data_apps_bitcoin_sign_tx_zcash_v4__lt_module_gt_ + 13, + .opcodes = fun_data_apps_bitcoin_sign_tx_zcash_v4__lt_module_gt_ + 13, + }, + .line_of_definition = 0, + #endif + #if MICROPY_EMIT_MACHINE_CODE + .prelude_offset = 0, + #endif + #endif + #if MICROPY_EMIT_MACHINE_CODE + .type_sig = 0, + #endif +}; + +static const qstr_short_t const_qstr_table_data_apps_bitcoin_sign_tx_zcash_v4[90] = { + MP_QSTR_apps_slash_bitcoin_slash_sign_tx_slash_zcash_v4_dot_py, + MP_QSTR__lt_module_gt_, + MP_QSTR_const, + MP_QSTR_micropython, + MP_QSTR_blake2b, + MP_QSTR_trezor_dot_crypto_dot_hashlib, + MP_QSTR_HashWriter, + MP_QSTR_trezor_dot_utils, + MP_QSTR_DataError, + MP_QSTR_trezor_dot_wire, + MP_QSTR_TX_HASH_SIZE, + MP_QSTR_write_bytes_reversed, + MP_QSTR_write_uint32, + MP_QSTR_write_uint64, + MP_QSTR_writers, + MP_QSTR_Bitcoinlike, + MP_QSTR_bitcoinlike, + MP_QSTR_Zip243SigHasher, + MP_QSTR_ZcashV4, + MP_QSTR___init__, + MP_QSTR_outlen, + MP_QSTR_personal, + MP_QSTR_h_prevouts, + MP_QSTR_h_sequence, + MP_QSTR_h_outputs, + MP_QSTR_add_input, + MP_QSTR_prev_hash, + MP_QSTR_prev_index, + MP_QSTR_sequence, + MP_QSTR_add_output, + MP_QSTR_write_tx_output, + MP_QSTR_hash143, + MP_QSTR_ustruct, + MP_QSTR_write_bip143_script_code_prefixed, + MP_QSTR_scripts, + MP_QSTR_get_tx_hash, + MP_QSTR_write_bytes_fixed, + MP_QSTR_pack, + MP_QSTR__lt_I, + MP_QSTR_branch_id, + MP_QSTR_version, + MP_QSTR_version_group_id, + MP_QSTR_lock_time, + MP_QSTR_expiry, + MP_QSTR_amount, + MP_QSTR_hash341, + MP_QSTR_hash_zip244, + MP_QSTR_ensure, + MP_QSTR_overwintered, + MP_QSTR_create_sig_hasher, + MP_QSTR_step7_finish, + MP_QSTR_write_compact_size, + MP_QSTR_apps_dot_common_dot_writers, + MP_QSTR_helpers, + MP_QSTR_, + MP_QSTR_serialized_tx, + MP_QSTR_serialize, + MP_QSTR_write_tx_footer, + MP_QSTR_tx_info, + MP_QSTR_tx, + MP_QSTR_request_tx_finish, + MP_QSTR_tx_req, + MP_QSTR_sign_nonsegwit_input, + MP_QSTR_sign_nonsegwit_bip143_input, + MP_QSTR_get_tx_digest, + MP_QSTR_sig_hasher, + MP_QSTR_coin, + MP_QSTR_get_sighash_type, + MP_QSTR_write_tx_header, + MP_QSTR___name__, + MP_QSTR___module__, + MP_QSTR___qualname__, + MP_QSTR_self, + MP_QSTR_txi, + MP_QSTR_script_pubkey, + MP_QSTR_txo, + MP_QSTR_public_keys, + MP_QSTR_threshold, + MP_QSTR_hash_type, + MP_QSTR_i, + MP_QSTR_sighash_type, + MP_QSTR_NotImplementedError, + MP_QSTR__star_, + MP_QSTR_keychain, + MP_QSTR_approver, + MP_QSTR_super, + MP_QSTR_i_sign, + MP_QSTR_tx_hash, + MP_QSTR_w, + MP_QSTR_witness_marker, +}; + +// constants +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_zcash_v4_0 = {{&mp_type_bytes}, 16651, 16, (const byte*)"\x5a\x63\x61\x73\x68\x50\x72\x65\x76\x6f\x75\x74\x48\x61\x73\x68"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_zcash_v4_1 = {{&mp_type_bytes}, 42478, 16, (const byte*)"\x5a\x63\x61\x73\x68\x53\x65\x71\x75\x65\x6e\x63\x48\x61\x73\x68"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_zcash_v4_2 = {{&mp_type_bytes}, 35928, 16, (const byte*)"\x5a\x63\x61\x73\x68\x4f\x75\x74\x70\x75\x74\x73\x48\x61\x73\x68"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_zcash_v4_3 = {{&mp_type_bytes}, 48329, 12, (const byte*)"\x5a\x63\x61\x73\x68\x53\x69\x67\x48\x61\x73\x68"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_zcash_v4_4 = {{&mp_type_bytes}, 46501, 1, (const byte*)"\x00"}; +static const mp_obj_int_t const_obj_apps_bitcoin_sign_tx_zcash_v4_5 = {{&mp_type_int}, {.neg=0, .fixed_dig=1, .alloc=2, .len=2, .dig=(uint16_t*)(const uint16_t[]){0x0,0x8000}}}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_zcash_v4_6 = {{&mp_type_str}, 25440, 32, (const byte*)"\x55\x6e\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x74\x72\x61\x6e\x73\x61\x63\x74\x69\x6f\x6e\x20\x76\x65\x72\x73\x69\x6f\x6e\x2e"}; +static const mp_obj_str_t const_obj_apps_bitcoin_sign_tx_zcash_v4_7 = {{&mp_type_str}, 47571, 27, (const byte*)"\x56\x65\x72\x73\x69\x6f\x6e\x20\x67\x72\x6f\x75\x70\x20\x49\x44\x20\x69\x73\x20\x6d\x69\x73\x73\x69\x6e\x67"}; + +// constant table +static const mp_rom_obj_t const_obj_table_data_apps_bitcoin_sign_tx_zcash_v4[8] = { + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_zcash_v4_0), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_zcash_v4_1), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_zcash_v4_2), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_zcash_v4_3), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_zcash_v4_4), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_zcash_v4_5), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_zcash_v4_6), + MP_ROM_PTR(&const_obj_apps_bitcoin_sign_tx_zcash_v4_7), +}; + +static const mp_frozen_module_t frozen_module_apps_bitcoin_sign_tx_zcash_v4 = { + .constants = { + .qstr_table = (qstr_short_t *)&const_qstr_table_data_apps_bitcoin_sign_tx_zcash_v4, + .obj_table = (mp_obj_t *)&const_obj_table_data_apps_bitcoin_sign_tx_zcash_v4, + }, + .rc = &raw_code_apps_bitcoin_sign_tx_zcash_v4__lt_module_gt_, +}; + +//////////////////////////////////////////////////////////////////////////////// +// collection of all frozen modules + +const char mp_frozen_names[] = { + #ifdef MP_FROZEN_STR_NAMES + MP_FROZEN_STR_NAMES + #endif + "all_modules.py\0" + "boot.py\0" + "main.py\0" + "session.py\0" + "typing.py\0" + "usb.py\0" + "trezor/__init__.py\0" + "trezor/errors.py\0" + "trezor/log.py\0" + "trezor/loop.py\0" + "trezor/messages.py\0" + "trezor/pin.py\0" + "trezor/protobuf.py\0" + "trezor/sdcard.py\0" + "trezor/strings.py\0" + "trezor/utils.py\0" + "trezor/workflow.py\0" + "trezor/crypto/__init__.py\0" + "trezor/crypto/base32.py\0" + "trezor/crypto/base58.py\0" + "trezor/crypto/bech32.py\0" + "trezor/crypto/cashaddr.py\0" + "trezor/crypto/cosi.py\0" + "trezor/crypto/curve.py\0" + "trezor/crypto/der.py\0" + "trezor/crypto/hashlib.py\0" + "trezor/crypto/rlp.py\0" + "trezor/crypto/scripts.py\0" + "trezor/crypto/slip39.py\0" + "trezor/ui/__init__.py\0" + "trezor/ui/style.py\0" + "trezor/ui/layouts/__init__.py\0" + "trezor/ui/layouts/common.py\0" + "trezor/ui/layouts/fido.py\0" + "trezor/ui/layouts/homescreen.py\0" + "trezor/ui/layouts/progress.py\0" + "trezor/ui/layouts/recovery.py\0" + "trezor/ui/layouts/reset.py\0" + "trezor/ui/layouts/tt/__init__.py\0" + "trezor/ui/layouts/tt/fido.py\0" + "trezor/ui/layouts/tt/homescreen.py\0" + "trezor/ui/layouts/tt/progress.py\0" + "trezor/ui/layouts/tt/recovery.py\0" + "trezor/ui/layouts/tt/reset.py\0" + "trezor/wire/__init__.py\0" + "trezor/wire/codec_v1.py\0" + "trezor/wire/context.py\0" + "trezor/wire/errors.py\0" + "storage/__init__.py\0" + "storage/cache.py\0" + "storage/common.py\0" + "storage/debug.py\0" + "storage/device.py\0" + "storage/fido2.py\0" + "storage/recovery.py\0" + "storage/recovery_shares.py\0" + "storage/resident_credentials.py\0" + "storage/sd_salt.py\0" + "trezor/enums/AmountUnit.py\0" + "trezor/enums/BackupType.py\0" + "trezor/enums/ButtonRequestType.py\0" + "trezor/enums/Capability.py\0" + "trezor/enums/DebugButton.py\0" + "trezor/enums/DebugPhysicalButton.py\0" + "trezor/enums/DebugSwipeDirection.py\0" + "trezor/enums/DecredStakingSpendType.py\0" + "trezor/enums/FailureType.py\0" + "trezor/enums/HomescreenFormat.py\0" + "trezor/enums/InputScriptType.py\0" + "trezor/enums/MessageType.py\0" + "trezor/enums/OutputScriptType.py\0" + "trezor/enums/PinMatrixRequestType.py\0" + "trezor/enums/RecoveryDeviceType.py\0" + "trezor/enums/RequestType.py\0" + "trezor/enums/SafetyCheckLevel.py\0" + "trezor/enums/SdProtectOperationType.py\0" + "trezor/enums/WordRequestType.py\0" + "trezor/enums/__init__.py\0" + "apps/__init__.py\0" + "apps/base.py\0" + "apps/workflow_handlers.py\0" + "apps/common/__init__.py\0" + "apps/common/address_mac.py\0" + "apps/common/address_type.py\0" + "apps/common/authorization.py\0" + "apps/common/cbor.py\0" + "apps/common/coininfo.py\0" + "apps/common/coins.py\0" + "apps/common/keychain.py\0" + "apps/common/mnemonic.py\0" + "apps/common/passphrase.py\0" + "apps/common/paths.py\0" + "apps/common/readers.py\0" + "apps/common/request_pin.py\0" + "apps/common/safety_checks.py\0" + "apps/common/sdcard.py\0" + "apps/common/seed.py\0" + "apps/common/signverify.py\0" + "apps/common/writers.py\0" + "apps/debug/__init__.py\0" + "apps/debug/load_device.py\0" + "apps/homescreen/__init__.py\0" + "apps/management/apply_flags.py\0" + "apps/management/apply_settings.py\0" + "apps/management/authenticate_device.py\0" + "apps/management/backup_device.py\0" + "apps/management/backup_types.py\0" + "apps/management/change_pin.py\0" + "apps/management/change_wipe_code.py\0" + "apps/management/get_next_u2f_counter.py\0" + "apps/management/get_nonce.py\0" + "apps/management/reboot_to_bootloader.py\0" + "apps/management/sd_protect.py\0" + "apps/management/set_u2f_counter.py\0" + "apps/management/show_tutorial.py\0" + "apps/management/wipe_device.py\0" + "apps/management/recovery_device/__init__.py\0" + "apps/management/recovery_device/homescreen.py\0" + "apps/management/recovery_device/layout.py\0" + "apps/management/recovery_device/recover.py\0" + "apps/management/recovery_device/word_validity.py\0" + "apps/management/reset_device/__init__.py\0" + "apps/management/reset_device/layout.py\0" + "apps/misc/__init__.py\0" + "apps/misc/cipher_key_value.py\0" + "apps/misc/cosi_commit.py\0" + "apps/misc/get_ecdh_session_key.py\0" + "apps/misc/get_entropy.py\0" + "apps/misc/get_firmware_hash.py\0" + "apps/misc/sign_identity.py\0" + "apps/bitcoin/__init__.py\0" + "apps/bitcoin/addresses.py\0" + "apps/bitcoin/authorization.py\0" + "apps/bitcoin/authorize_coinjoin.py\0" + "apps/bitcoin/common.py\0" + "apps/bitcoin/get_address.py\0" + "apps/bitcoin/get_ownership_id.py\0" + "apps/bitcoin/get_ownership_proof.py\0" + "apps/bitcoin/get_public_key.py\0" + "apps/bitcoin/keychain.py\0" + "apps/bitcoin/multisig.py\0" + "apps/bitcoin/ownership.py\0" + "apps/bitcoin/readers.py\0" + "apps/bitcoin/scripts.py\0" + "apps/bitcoin/scripts_decred.py\0" + "apps/bitcoin/sign_message.py\0" + "apps/bitcoin/verification.py\0" + "apps/bitcoin/verify_message.py\0" + "apps/bitcoin/writers.py\0" + "apps/bitcoin/sign_tx/__init__.py\0" + "apps/bitcoin/sign_tx/approvers.py\0" + "apps/bitcoin/sign_tx/bitcoin.py\0" + "apps/bitcoin/sign_tx/helpers.py\0" + "apps/bitcoin/sign_tx/layout.py\0" + "apps/bitcoin/sign_tx/matchcheck.py\0" + "apps/bitcoin/sign_tx/omni.py\0" + "apps/bitcoin/sign_tx/payment_request.py\0" + "apps/bitcoin/sign_tx/progress.py\0" + "apps/bitcoin/sign_tx/sig_hasher.py\0" + "apps/bitcoin/sign_tx/tx_info.py\0" + "apps/bitcoin/sign_tx/tx_weight.py\0" + "apps/binance/__init__.py\0" + "apps/binance/get_address.py\0" + "apps/binance/get_public_key.py\0" + "apps/binance/helpers.py\0" + "apps/binance/layout.py\0" + "apps/binance/sign_tx.py\0" + "trezor/enums/BinanceOrderSide.py\0" + "trezor/enums/BinanceOrderType.py\0" + "trezor/enums/BinanceTimeInForce.py\0" + "apps/cardano/__init__.py\0" + "apps/cardano/addresses.py\0" + "apps/cardano/auxiliary_data.py\0" + "apps/cardano/byron_addresses.py\0" + "apps/cardano/certificates.py\0" + "apps/cardano/get_address.py\0" + "apps/cardano/get_native_script_hash.py\0" + "apps/cardano/get_public_key.py\0" + "apps/cardano/layout.py\0" + "apps/cardano/native_script.py\0" + "apps/cardano/seed.py\0" + "apps/cardano/helpers/__init__.py\0" + "apps/cardano/helpers/account_path_check.py\0" + "apps/cardano/helpers/bech32.py\0" + "apps/cardano/helpers/credential.py\0" + "apps/cardano/helpers/hash_builder_collection.py\0" + "apps/cardano/helpers/network_ids.py\0" + "apps/cardano/helpers/paths.py\0" + "apps/cardano/helpers/protocol_magics.py\0" + "apps/cardano/helpers/utils.py\0" + "apps/cardano/sign_tx/__init__.py\0" + "apps/cardano/sign_tx/multisig_signer.py\0" + "apps/cardano/sign_tx/ordinary_signer.py\0" + "apps/cardano/sign_tx/plutus_signer.py\0" + "apps/cardano/sign_tx/pool_owner_signer.py\0" + "apps/cardano/sign_tx/signer.py\0" + "trezor/enums/CardanoAddressType.py\0" + "trezor/enums/CardanoCVoteRegistrationFormat.py\0" + "trezor/enums/CardanoCertificateType.py\0" + "trezor/enums/CardanoDerivationType.py\0" + "trezor/enums/CardanoNativeScriptHashDisplayFormat.py\0" + "trezor/enums/CardanoNativeScriptType.py\0" + "trezor/enums/CardanoPoolRelayType.py\0" + "trezor/enums/CardanoTxAuxiliaryDataSupplementType.py\0" + "trezor/enums/CardanoTxOutputSerializationFormat.py\0" + "trezor/enums/CardanoTxSigningMode.py\0" + "trezor/enums/CardanoTxWitnessType.py\0" + "apps/eos/__init__.py\0" + "apps/eos/get_public_key.py\0" + "apps/eos/helpers.py\0" + "apps/eos/layout.py\0" + "apps/eos/sign_tx.py\0" + "apps/eos/writers.py\0" + "apps/eos/actions/__init__.py\0" + "apps/eos/actions/layout.py\0" + "apps/ethereum/__init__.py\0" + "apps/ethereum/definitions.py\0" + "apps/ethereum/definitions_constants.py\0" + "apps/ethereum/get_address.py\0" + "apps/ethereum/get_public_key.py\0" + "apps/ethereum/helpers.py\0" + "apps/ethereum/keychain.py\0" + "apps/ethereum/layout.py\0" + "apps/ethereum/networks.py\0" + "apps/ethereum/sign_message.py\0" + "apps/ethereum/sign_tx.py\0" + "apps/ethereum/sign_tx_eip1559.py\0" + "apps/ethereum/sign_typed_data.py\0" + "apps/ethereum/tokens.py\0" + "apps/ethereum/verify_message.py\0" + "trezor/enums/EthereumDataType.py\0" + "trezor/enums/EthereumDefinitionType.py\0" + "apps/monero/__init__.py\0" + "apps/monero/diag.py\0" + "apps/monero/get_address.py\0" + "apps/monero/get_tx_keys.py\0" + "apps/monero/get_watch_only.py\0" + "apps/monero/key_image_sync.py\0" + "apps/monero/layout.py\0" + "apps/monero/live_refresh.py\0" + "apps/monero/misc.py\0" + "apps/monero/sign_tx.py\0" + "apps/monero/signing/__init__.py\0" + "apps/monero/signing/offloading_keys.py\0" + "apps/monero/signing/state.py\0" + "apps/monero/signing/step_01_init_transaction.py\0" + "apps/monero/signing/step_02_set_input.py\0" + "apps/monero/signing/step_04_input_vini.py\0" + "apps/monero/signing/step_05_all_inputs_set.py\0" + "apps/monero/signing/step_06_set_output.py\0" + "apps/monero/signing/step_07_all_outputs_set.py\0" + "apps/monero/signing/step_09_sign_input.py\0" + "apps/monero/signing/step_10_sign_final.py\0" + "apps/monero/xmr/__init__.py\0" + "apps/monero/xmr/addresses.py\0" + "apps/monero/xmr/bulletproof.py\0" + "apps/monero/xmr/chacha_poly.py\0" + "apps/monero/xmr/clsag.py\0" + "apps/monero/xmr/credentials.py\0" + "apps/monero/xmr/crypto_helpers.py\0" + "apps/monero/xmr/keccak_hasher.py\0" + "apps/monero/xmr/key_image.py\0" + "apps/monero/xmr/mlsag_hasher.py\0" + "apps/monero/xmr/monero.py\0" + "apps/monero/xmr/networks.py\0" + "apps/monero/xmr/range_signatures.py\0" + "apps/monero/xmr/serialize/__init__.py\0" + "apps/monero/xmr/serialize/base_types.py\0" + "apps/monero/xmr/serialize/int_serialize.py\0" + "apps/monero/xmr/serialize/message_types.py\0" + "apps/monero/xmr/serialize/readwriter.py\0" + "apps/monero/xmr/serialize_messages/base.py\0" + "apps/monero/xmr/serialize_messages/tx_ct_key.py\0" + "apps/monero/xmr/serialize_messages/tx_ecdh.py\0" + "apps/monero/xmr/serialize_messages/tx_prefix.py\0" + "apps/monero/xmr/serialize_messages/tx_rsig_bulletproof.py\0" + "trezor/enums/MoneroNetworkType.py\0" + "apps/nem/__init__.py\0" + "apps/nem/get_address.py\0" + "apps/nem/helpers.py\0" + "apps/nem/layout.py\0" + "apps/nem/sign_tx.py\0" + "apps/nem/validators.py\0" + "apps/nem/writers.py\0" + "apps/nem/mosaic/__init__.py\0" + "apps/nem/mosaic/helpers.py\0" + "apps/nem/mosaic/layout.py\0" + "apps/nem/mosaic/nem_mosaics.py\0" + "apps/nem/mosaic/serialize.py\0" + "apps/nem/multisig/__init__.py\0" + "apps/nem/multisig/layout.py\0" + "apps/nem/multisig/serialize.py\0" + "apps/nem/namespace/__init__.py\0" + "apps/nem/namespace/layout.py\0" + "apps/nem/namespace/serialize.py\0" + "apps/nem/transfer/__init__.py\0" + "apps/nem/transfer/layout.py\0" + "apps/nem/transfer/serialize.py\0" + "trezor/enums/NEMImportanceTransferMode.py\0" + "trezor/enums/NEMModificationType.py\0" + "trezor/enums/NEMMosaicLevy.py\0" + "trezor/enums/NEMSupplyChangeType.py\0" + "apps/ripple/__init__.py\0" + "apps/ripple/base58_ripple.py\0" + "apps/ripple/get_address.py\0" + "apps/ripple/helpers.py\0" + "apps/ripple/layout.py\0" + "apps/ripple/serialize.py\0" + "apps/ripple/sign_tx.py\0" + "apps/stellar/__init__.py\0" + "apps/stellar/consts.py\0" + "apps/stellar/get_address.py\0" + "apps/stellar/helpers.py\0" + "apps/stellar/layout.py\0" + "apps/stellar/sign_tx.py\0" + "apps/stellar/writers.py\0" + "apps/stellar/operations/__init__.py\0" + "apps/stellar/operations/layout.py\0" + "apps/stellar/operations/serialize.py\0" + "trezor/enums/StellarAssetType.py\0" + "trezor/enums/StellarMemoType.py\0" + "trezor/enums/StellarSignerType.py\0" + "apps/tezos/__init__.py\0" + "apps/tezos/get_address.py\0" + "apps/tezos/get_public_key.py\0" + "apps/tezos/helpers.py\0" + "apps/tezos/layout.py\0" + "apps/tezos/sign_tx.py\0" + "trezor/enums/TezosBallotType.py\0" + "trezor/enums/TezosContractType.py\0" + "apps/zcash/__init__.py\0" + "apps/zcash/f4jumble.py\0" + "apps/zcash/hasher.py\0" + "apps/zcash/signer.py\0" + "apps/zcash/unified_addresses.py\0" + "apps/webauthn/__init__.py\0" + "apps/webauthn/add_resident_credential.py\0" + "apps/webauthn/common.py\0" + "apps/webauthn/credential.py\0" + "apps/webauthn/fido2.py\0" + "apps/webauthn/knownapps.py\0" + "apps/webauthn/list_resident_credentials.py\0" + "apps/webauthn/remove_resident_credential.py\0" + "apps/webauthn/resident_credentials.py\0" + "apps/bitcoin/sign_tx/decred.py\0" + "apps/bitcoin/sign_tx/bitcoinlike.py\0" + "apps/bitcoin/sign_tx/zcash_v4.py\0" + "\0" +}; + +const mp_frozen_module_t *const mp_frozen_mpy_content[] = { + &frozen_module_all_modules, + &frozen_module_boot, + &frozen_module_main, + &frozen_module_session, + &frozen_module_typing, + &frozen_module_usb, + &frozen_module_trezor___init__, + &frozen_module_trezor_errors, + &frozen_module_trezor_log, + &frozen_module_trezor_loop, + &frozen_module_trezor_messages, + &frozen_module_trezor_pin, + &frozen_module_trezor_protobuf, + &frozen_module_trezor_sdcard, + &frozen_module_trezor_strings, + &frozen_module_trezor_utils, + &frozen_module_trezor_workflow, + &frozen_module_trezor_crypto___init__, + &frozen_module_trezor_crypto_base32, + &frozen_module_trezor_crypto_base58, + &frozen_module_trezor_crypto_bech32, + &frozen_module_trezor_crypto_cashaddr, + &frozen_module_trezor_crypto_cosi, + &frozen_module_trezor_crypto_curve, + &frozen_module_trezor_crypto_der, + &frozen_module_trezor_crypto_hashlib, + &frozen_module_trezor_crypto_rlp, + &frozen_module_trezor_crypto_scripts, + &frozen_module_trezor_crypto_slip39, + &frozen_module_trezor_ui___init__, + &frozen_module_trezor_ui_style, + &frozen_module_trezor_ui_layouts___init__, + &frozen_module_trezor_ui_layouts_common, + &frozen_module_trezor_ui_layouts_fido, + &frozen_module_trezor_ui_layouts_homescreen, + &frozen_module_trezor_ui_layouts_progress, + &frozen_module_trezor_ui_layouts_recovery, + &frozen_module_trezor_ui_layouts_reset, + &frozen_module_trezor_ui_layouts_tt___init__, + &frozen_module_trezor_ui_layouts_tt_fido, + &frozen_module_trezor_ui_layouts_tt_homescreen, + &frozen_module_trezor_ui_layouts_tt_progress, + &frozen_module_trezor_ui_layouts_tt_recovery, + &frozen_module_trezor_ui_layouts_tt_reset, + &frozen_module_trezor_wire___init__, + &frozen_module_trezor_wire_codec_v1, + &frozen_module_trezor_wire_context, + &frozen_module_trezor_wire_errors, + &frozen_module_storage___init__, + &frozen_module_storage_cache, + &frozen_module_storage_common, + &frozen_module_storage_debug, + &frozen_module_storage_device, + &frozen_module_storage_fido2, + &frozen_module_storage_recovery, + &frozen_module_storage_recovery_shares, + &frozen_module_storage_resident_credentials, + &frozen_module_storage_sd_salt, + &frozen_module_trezor_enums_AmountUnit, + &frozen_module_trezor_enums_BackupType, + &frozen_module_trezor_enums_ButtonRequestType, + &frozen_module_trezor_enums_Capability, + &frozen_module_trezor_enums_DebugButton, + &frozen_module_trezor_enums_DebugPhysicalButton, + &frozen_module_trezor_enums_DebugSwipeDirection, + &frozen_module_trezor_enums_DecredStakingSpendType, + &frozen_module_trezor_enums_FailureType, + &frozen_module_trezor_enums_HomescreenFormat, + &frozen_module_trezor_enums_InputScriptType, + &frozen_module_trezor_enums_MessageType, + &frozen_module_trezor_enums_OutputScriptType, + &frozen_module_trezor_enums_PinMatrixRequestType, + &frozen_module_trezor_enums_RecoveryDeviceType, + &frozen_module_trezor_enums_RequestType, + &frozen_module_trezor_enums_SafetyCheckLevel, + &frozen_module_trezor_enums_SdProtectOperationType, + &frozen_module_trezor_enums_WordRequestType, + &frozen_module_trezor_enums___init__, + &frozen_module_apps___init__, + &frozen_module_apps_base, + &frozen_module_apps_workflow_handlers, + &frozen_module_apps_common___init__, + &frozen_module_apps_common_address_mac, + &frozen_module_apps_common_address_type, + &frozen_module_apps_common_authorization, + &frozen_module_apps_common_cbor, + &frozen_module_apps_common_coininfo, + &frozen_module_apps_common_coins, + &frozen_module_apps_common_keychain, + &frozen_module_apps_common_mnemonic, + &frozen_module_apps_common_passphrase, + &frozen_module_apps_common_paths, + &frozen_module_apps_common_readers, + &frozen_module_apps_common_request_pin, + &frozen_module_apps_common_safety_checks, + &frozen_module_apps_common_sdcard, + &frozen_module_apps_common_seed, + &frozen_module_apps_common_signverify, + &frozen_module_apps_common_writers, + &frozen_module_apps_debug___init__, + &frozen_module_apps_debug_load_device, + &frozen_module_apps_homescreen___init__, + &frozen_module_apps_management_apply_flags, + &frozen_module_apps_management_apply_settings, + &frozen_module_apps_management_authenticate_device, + &frozen_module_apps_management_backup_device, + &frozen_module_apps_management_backup_types, + &frozen_module_apps_management_change_pin, + &frozen_module_apps_management_change_wipe_code, + &frozen_module_apps_management_get_next_u2f_counter, + &frozen_module_apps_management_get_nonce, + &frozen_module_apps_management_reboot_to_bootloader, + &frozen_module_apps_management_sd_protect, + &frozen_module_apps_management_set_u2f_counter, + &frozen_module_apps_management_show_tutorial, + &frozen_module_apps_management_wipe_device, + &frozen_module_apps_management_recovery_device___init__, + &frozen_module_apps_management_recovery_device_homescreen, + &frozen_module_apps_management_recovery_device_layout, + &frozen_module_apps_management_recovery_device_recover, + &frozen_module_apps_management_recovery_device_word_validity, + &frozen_module_apps_management_reset_device___init__, + &frozen_module_apps_management_reset_device_layout, + &frozen_module_apps_misc___init__, + &frozen_module_apps_misc_cipher_key_value, + &frozen_module_apps_misc_cosi_commit, + &frozen_module_apps_misc_get_ecdh_session_key, + &frozen_module_apps_misc_get_entropy, + &frozen_module_apps_misc_get_firmware_hash, + &frozen_module_apps_misc_sign_identity, + &frozen_module_apps_bitcoin___init__, + &frozen_module_apps_bitcoin_addresses, + &frozen_module_apps_bitcoin_authorization, + &frozen_module_apps_bitcoin_authorize_coinjoin, + &frozen_module_apps_bitcoin_common, + &frozen_module_apps_bitcoin_get_address, + &frozen_module_apps_bitcoin_get_ownership_id, + &frozen_module_apps_bitcoin_get_ownership_proof, + &frozen_module_apps_bitcoin_get_public_key, + &frozen_module_apps_bitcoin_keychain, + &frozen_module_apps_bitcoin_multisig, + &frozen_module_apps_bitcoin_ownership, + &frozen_module_apps_bitcoin_readers, + &frozen_module_apps_bitcoin_scripts, + &frozen_module_apps_bitcoin_scripts_decred, + &frozen_module_apps_bitcoin_sign_message, + &frozen_module_apps_bitcoin_verification, + &frozen_module_apps_bitcoin_verify_message, + &frozen_module_apps_bitcoin_writers, + &frozen_module_apps_bitcoin_sign_tx___init__, + &frozen_module_apps_bitcoin_sign_tx_approvers, + &frozen_module_apps_bitcoin_sign_tx_bitcoin, + &frozen_module_apps_bitcoin_sign_tx_helpers, + &frozen_module_apps_bitcoin_sign_tx_layout, + &frozen_module_apps_bitcoin_sign_tx_matchcheck, + &frozen_module_apps_bitcoin_sign_tx_omni, + &frozen_module_apps_bitcoin_sign_tx_payment_request, + &frozen_module_apps_bitcoin_sign_tx_progress, + &frozen_module_apps_bitcoin_sign_tx_sig_hasher, + &frozen_module_apps_bitcoin_sign_tx_tx_info, + &frozen_module_apps_bitcoin_sign_tx_tx_weight, + &frozen_module_apps_binance___init__, + &frozen_module_apps_binance_get_address, + &frozen_module_apps_binance_get_public_key, + &frozen_module_apps_binance_helpers, + &frozen_module_apps_binance_layout, + &frozen_module_apps_binance_sign_tx, + &frozen_module_trezor_enums_BinanceOrderSide, + &frozen_module_trezor_enums_BinanceOrderType, + &frozen_module_trezor_enums_BinanceTimeInForce, + &frozen_module_apps_cardano___init__, + &frozen_module_apps_cardano_addresses, + &frozen_module_apps_cardano_auxiliary_data, + &frozen_module_apps_cardano_byron_addresses, + &frozen_module_apps_cardano_certificates, + &frozen_module_apps_cardano_get_address, + &frozen_module_apps_cardano_get_native_script_hash, + &frozen_module_apps_cardano_get_public_key, + &frozen_module_apps_cardano_layout, + &frozen_module_apps_cardano_native_script, + &frozen_module_apps_cardano_seed, + &frozen_module_apps_cardano_helpers___init__, + &frozen_module_apps_cardano_helpers_account_path_check, + &frozen_module_apps_cardano_helpers_bech32, + &frozen_module_apps_cardano_helpers_credential, + &frozen_module_apps_cardano_helpers_hash_builder_collection, + &frozen_module_apps_cardano_helpers_network_ids, + &frozen_module_apps_cardano_helpers_paths, + &frozen_module_apps_cardano_helpers_protocol_magics, + &frozen_module_apps_cardano_helpers_utils, + &frozen_module_apps_cardano_sign_tx___init__, + &frozen_module_apps_cardano_sign_tx_multisig_signer, + &frozen_module_apps_cardano_sign_tx_ordinary_signer, + &frozen_module_apps_cardano_sign_tx_plutus_signer, + &frozen_module_apps_cardano_sign_tx_pool_owner_signer, + &frozen_module_apps_cardano_sign_tx_signer, + &frozen_module_trezor_enums_CardanoAddressType, + &frozen_module_trezor_enums_CardanoCVoteRegistrationFormat, + &frozen_module_trezor_enums_CardanoCertificateType, + &frozen_module_trezor_enums_CardanoDerivationType, + &frozen_module_trezor_enums_CardanoNativeScriptHashDisplayFormat, + &frozen_module_trezor_enums_CardanoNativeScriptType, + &frozen_module_trezor_enums_CardanoPoolRelayType, + &frozen_module_trezor_enums_CardanoTxAuxiliaryDataSupplementType, + &frozen_module_trezor_enums_CardanoTxOutputSerializationFormat, + &frozen_module_trezor_enums_CardanoTxSigningMode, + &frozen_module_trezor_enums_CardanoTxWitnessType, + &frozen_module_apps_eos___init__, + &frozen_module_apps_eos_get_public_key, + &frozen_module_apps_eos_helpers, + &frozen_module_apps_eos_layout, + &frozen_module_apps_eos_sign_tx, + &frozen_module_apps_eos_writers, + &frozen_module_apps_eos_actions___init__, + &frozen_module_apps_eos_actions_layout, + &frozen_module_apps_ethereum___init__, + &frozen_module_apps_ethereum_definitions, + &frozen_module_apps_ethereum_definitions_constants, + &frozen_module_apps_ethereum_get_address, + &frozen_module_apps_ethereum_get_public_key, + &frozen_module_apps_ethereum_helpers, + &frozen_module_apps_ethereum_keychain, + &frozen_module_apps_ethereum_layout, + &frozen_module_apps_ethereum_networks, + &frozen_module_apps_ethereum_sign_message, + &frozen_module_apps_ethereum_sign_tx, + &frozen_module_apps_ethereum_sign_tx_eip1559, + &frozen_module_apps_ethereum_sign_typed_data, + &frozen_module_apps_ethereum_tokens, + &frozen_module_apps_ethereum_verify_message, + &frozen_module_trezor_enums_EthereumDataType, + &frozen_module_trezor_enums_EthereumDefinitionType, + &frozen_module_apps_monero___init__, + &frozen_module_apps_monero_diag, + &frozen_module_apps_monero_get_address, + &frozen_module_apps_monero_get_tx_keys, + &frozen_module_apps_monero_get_watch_only, + &frozen_module_apps_monero_key_image_sync, + &frozen_module_apps_monero_layout, + &frozen_module_apps_monero_live_refresh, + &frozen_module_apps_monero_misc, + &frozen_module_apps_monero_sign_tx, + &frozen_module_apps_monero_signing___init__, + &frozen_module_apps_monero_signing_offloading_keys, + &frozen_module_apps_monero_signing_state, + &frozen_module_apps_monero_signing_step_01_init_transaction, + &frozen_module_apps_monero_signing_step_02_set_input, + &frozen_module_apps_monero_signing_step_04_input_vini, + &frozen_module_apps_monero_signing_step_05_all_inputs_set, + &frozen_module_apps_monero_signing_step_06_set_output, + &frozen_module_apps_monero_signing_step_07_all_outputs_set, + &frozen_module_apps_monero_signing_step_09_sign_input, + &frozen_module_apps_monero_signing_step_10_sign_final, + &frozen_module_apps_monero_xmr___init__, + &frozen_module_apps_monero_xmr_addresses, + &frozen_module_apps_monero_xmr_bulletproof, + &frozen_module_apps_monero_xmr_chacha_poly, + &frozen_module_apps_monero_xmr_clsag, + &frozen_module_apps_monero_xmr_credentials, + &frozen_module_apps_monero_xmr_crypto_helpers, + &frozen_module_apps_monero_xmr_keccak_hasher, + &frozen_module_apps_monero_xmr_key_image, + &frozen_module_apps_monero_xmr_mlsag_hasher, + &frozen_module_apps_monero_xmr_monero, + &frozen_module_apps_monero_xmr_networks, + &frozen_module_apps_monero_xmr_range_signatures, + &frozen_module_apps_monero_xmr_serialize___init__, + &frozen_module_apps_monero_xmr_serialize_base_types, + &frozen_module_apps_monero_xmr_serialize_int_serialize, + &frozen_module_apps_monero_xmr_serialize_message_types, + &frozen_module_apps_monero_xmr_serialize_readwriter, + &frozen_module_apps_monero_xmr_serialize_messages_base, + &frozen_module_apps_monero_xmr_serialize_messages_tx_ct_key, + &frozen_module_apps_monero_xmr_serialize_messages_tx_ecdh, + &frozen_module_apps_monero_xmr_serialize_messages_tx_prefix, + &frozen_module_apps_monero_xmr_serialize_messages_tx_rsig_bulletproof, + &frozen_module_trezor_enums_MoneroNetworkType, + &frozen_module_apps_nem___init__, + &frozen_module_apps_nem_get_address, + &frozen_module_apps_nem_helpers, + &frozen_module_apps_nem_layout, + &frozen_module_apps_nem_sign_tx, + &frozen_module_apps_nem_validators, + &frozen_module_apps_nem_writers, + &frozen_module_apps_nem_mosaic___init__, + &frozen_module_apps_nem_mosaic_helpers, + &frozen_module_apps_nem_mosaic_layout, + &frozen_module_apps_nem_mosaic_nem_mosaics, + &frozen_module_apps_nem_mosaic_serialize, + &frozen_module_apps_nem_multisig___init__, + &frozen_module_apps_nem_multisig_layout, + &frozen_module_apps_nem_multisig_serialize, + &frozen_module_apps_nem_namespace___init__, + &frozen_module_apps_nem_namespace_layout, + &frozen_module_apps_nem_namespace_serialize, + &frozen_module_apps_nem_transfer___init__, + &frozen_module_apps_nem_transfer_layout, + &frozen_module_apps_nem_transfer_serialize, + &frozen_module_trezor_enums_NEMImportanceTransferMode, + &frozen_module_trezor_enums_NEMModificationType, + &frozen_module_trezor_enums_NEMMosaicLevy, + &frozen_module_trezor_enums_NEMSupplyChangeType, + &frozen_module_apps_ripple___init__, + &frozen_module_apps_ripple_base58_ripple, + &frozen_module_apps_ripple_get_address, + &frozen_module_apps_ripple_helpers, + &frozen_module_apps_ripple_layout, + &frozen_module_apps_ripple_serialize, + &frozen_module_apps_ripple_sign_tx, + &frozen_module_apps_stellar___init__, + &frozen_module_apps_stellar_consts, + &frozen_module_apps_stellar_get_address, + &frozen_module_apps_stellar_helpers, + &frozen_module_apps_stellar_layout, + &frozen_module_apps_stellar_sign_tx, + &frozen_module_apps_stellar_writers, + &frozen_module_apps_stellar_operations___init__, + &frozen_module_apps_stellar_operations_layout, + &frozen_module_apps_stellar_operations_serialize, + &frozen_module_trezor_enums_StellarAssetType, + &frozen_module_trezor_enums_StellarMemoType, + &frozen_module_trezor_enums_StellarSignerType, + &frozen_module_apps_tezos___init__, + &frozen_module_apps_tezos_get_address, + &frozen_module_apps_tezos_get_public_key, + &frozen_module_apps_tezos_helpers, + &frozen_module_apps_tezos_layout, + &frozen_module_apps_tezos_sign_tx, + &frozen_module_trezor_enums_TezosBallotType, + &frozen_module_trezor_enums_TezosContractType, + &frozen_module_apps_zcash___init__, + &frozen_module_apps_zcash_f4jumble, + &frozen_module_apps_zcash_hasher, + &frozen_module_apps_zcash_signer, + &frozen_module_apps_zcash_unified_addresses, + &frozen_module_apps_webauthn___init__, + &frozen_module_apps_webauthn_add_resident_credential, + &frozen_module_apps_webauthn_common, + &frozen_module_apps_webauthn_credential, + &frozen_module_apps_webauthn_fido2, + &frozen_module_apps_webauthn_knownapps, + &frozen_module_apps_webauthn_list_resident_credentials, + &frozen_module_apps_webauthn_remove_resident_credential, + &frozen_module_apps_webauthn_resident_credentials, + &frozen_module_apps_bitcoin_sign_tx_decred, + &frozen_module_apps_bitcoin_sign_tx_bitcoinlike, + &frozen_module_apps_bitcoin_sign_tx_zcash_v4, +}; + +#ifdef MICROPY_FROZEN_LIST_ITEM +MICROPY_FROZEN_LIST_ITEM("all_modules", "all_modules.py") +MICROPY_FROZEN_LIST_ITEM("boot", "boot.py") +MICROPY_FROZEN_LIST_ITEM("main", "main.py") +MICROPY_FROZEN_LIST_ITEM("session", "session.py") +MICROPY_FROZEN_LIST_ITEM("typing", "typing.py") +MICROPY_FROZEN_LIST_ITEM("usb", "usb.py") +MICROPY_FROZEN_LIST_ITEM("trezor", "trezor/__init__.py") +MICROPY_FROZEN_LIST_ITEM("trezor/errors", "trezor/errors.py") +MICROPY_FROZEN_LIST_ITEM("trezor/log", "trezor/log.py") +MICROPY_FROZEN_LIST_ITEM("trezor/loop", "trezor/loop.py") +MICROPY_FROZEN_LIST_ITEM("trezor/messages", "trezor/messages.py") +MICROPY_FROZEN_LIST_ITEM("trezor/pin", "trezor/pin.py") +MICROPY_FROZEN_LIST_ITEM("trezor/protobuf", "trezor/protobuf.py") +MICROPY_FROZEN_LIST_ITEM("trezor/sdcard", "trezor/sdcard.py") +MICROPY_FROZEN_LIST_ITEM("trezor/strings", "trezor/strings.py") +MICROPY_FROZEN_LIST_ITEM("trezor/utils", "trezor/utils.py") +MICROPY_FROZEN_LIST_ITEM("trezor/workflow", "trezor/workflow.py") +MICROPY_FROZEN_LIST_ITEM("trezor/crypto", "trezor/crypto/__init__.py") +MICROPY_FROZEN_LIST_ITEM("trezor/crypto/base32", "trezor/crypto/base32.py") +MICROPY_FROZEN_LIST_ITEM("trezor/crypto/base58", "trezor/crypto/base58.py") +MICROPY_FROZEN_LIST_ITEM("trezor/crypto/bech32", "trezor/crypto/bech32.py") +MICROPY_FROZEN_LIST_ITEM("trezor/crypto/cashaddr", "trezor/crypto/cashaddr.py") +MICROPY_FROZEN_LIST_ITEM("trezor/crypto/cosi", "trezor/crypto/cosi.py") +MICROPY_FROZEN_LIST_ITEM("trezor/crypto/curve", "trezor/crypto/curve.py") +MICROPY_FROZEN_LIST_ITEM("trezor/crypto/der", "trezor/crypto/der.py") +MICROPY_FROZEN_LIST_ITEM("trezor/crypto/hashlib", "trezor/crypto/hashlib.py") +MICROPY_FROZEN_LIST_ITEM("trezor/crypto/rlp", "trezor/crypto/rlp.py") +MICROPY_FROZEN_LIST_ITEM("trezor/crypto/scripts", "trezor/crypto/scripts.py") +MICROPY_FROZEN_LIST_ITEM("trezor/crypto/slip39", "trezor/crypto/slip39.py") +MICROPY_FROZEN_LIST_ITEM("trezor/ui", "trezor/ui/__init__.py") +MICROPY_FROZEN_LIST_ITEM("trezor/ui/style", "trezor/ui/style.py") +MICROPY_FROZEN_LIST_ITEM("trezor/ui/layouts", "trezor/ui/layouts/__init__.py") +MICROPY_FROZEN_LIST_ITEM("trezor/ui/layouts/common", "trezor/ui/layouts/common.py") +MICROPY_FROZEN_LIST_ITEM("trezor/ui/layouts/fido", "trezor/ui/layouts/fido.py") +MICROPY_FROZEN_LIST_ITEM("trezor/ui/layouts/homescreen", "trezor/ui/layouts/homescreen.py") +MICROPY_FROZEN_LIST_ITEM("trezor/ui/layouts/progress", "trezor/ui/layouts/progress.py") +MICROPY_FROZEN_LIST_ITEM("trezor/ui/layouts/recovery", "trezor/ui/layouts/recovery.py") +MICROPY_FROZEN_LIST_ITEM("trezor/ui/layouts/reset", "trezor/ui/layouts/reset.py") +MICROPY_FROZEN_LIST_ITEM("trezor/ui/layouts/tt", "trezor/ui/layouts/tt/__init__.py") +MICROPY_FROZEN_LIST_ITEM("trezor/ui/layouts/tt/fido", "trezor/ui/layouts/tt/fido.py") +MICROPY_FROZEN_LIST_ITEM("trezor/ui/layouts/tt/homescreen", "trezor/ui/layouts/tt/homescreen.py") +MICROPY_FROZEN_LIST_ITEM("trezor/ui/layouts/tt/progress", "trezor/ui/layouts/tt/progress.py") +MICROPY_FROZEN_LIST_ITEM("trezor/ui/layouts/tt/recovery", "trezor/ui/layouts/tt/recovery.py") +MICROPY_FROZEN_LIST_ITEM("trezor/ui/layouts/tt/reset", "trezor/ui/layouts/tt/reset.py") +MICROPY_FROZEN_LIST_ITEM("trezor/wire", "trezor/wire/__init__.py") +MICROPY_FROZEN_LIST_ITEM("trezor/wire/codec_v1", "trezor/wire/codec_v1.py") +MICROPY_FROZEN_LIST_ITEM("trezor/wire/context", "trezor/wire/context.py") +MICROPY_FROZEN_LIST_ITEM("trezor/wire/errors", "trezor/wire/errors.py") +MICROPY_FROZEN_LIST_ITEM("storage", "storage/__init__.py") +MICROPY_FROZEN_LIST_ITEM("storage/cache", "storage/cache.py") +MICROPY_FROZEN_LIST_ITEM("storage/common", "storage/common.py") +MICROPY_FROZEN_LIST_ITEM("storage/debug", "storage/debug.py") +MICROPY_FROZEN_LIST_ITEM("storage/device", "storage/device.py") +MICROPY_FROZEN_LIST_ITEM("storage/fido2", "storage/fido2.py") +MICROPY_FROZEN_LIST_ITEM("storage/recovery", "storage/recovery.py") +MICROPY_FROZEN_LIST_ITEM("storage/recovery_shares", "storage/recovery_shares.py") +MICROPY_FROZEN_LIST_ITEM("storage/resident_credentials", "storage/resident_credentials.py") +MICROPY_FROZEN_LIST_ITEM("storage/sd_salt", "storage/sd_salt.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/AmountUnit", "trezor/enums/AmountUnit.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/BackupType", "trezor/enums/BackupType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/ButtonRequestType", "trezor/enums/ButtonRequestType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/Capability", "trezor/enums/Capability.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/DebugButton", "trezor/enums/DebugButton.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/DebugPhysicalButton", "trezor/enums/DebugPhysicalButton.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/DebugSwipeDirection", "trezor/enums/DebugSwipeDirection.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/DecredStakingSpendType", "trezor/enums/DecredStakingSpendType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/FailureType", "trezor/enums/FailureType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/HomescreenFormat", "trezor/enums/HomescreenFormat.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/InputScriptType", "trezor/enums/InputScriptType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/MessageType", "trezor/enums/MessageType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/OutputScriptType", "trezor/enums/OutputScriptType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/PinMatrixRequestType", "trezor/enums/PinMatrixRequestType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/RecoveryDeviceType", "trezor/enums/RecoveryDeviceType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/RequestType", "trezor/enums/RequestType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/SafetyCheckLevel", "trezor/enums/SafetyCheckLevel.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/SdProtectOperationType", "trezor/enums/SdProtectOperationType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/WordRequestType", "trezor/enums/WordRequestType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums", "trezor/enums/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps", "apps/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/base", "apps/base.py") +MICROPY_FROZEN_LIST_ITEM("apps/workflow_handlers", "apps/workflow_handlers.py") +MICROPY_FROZEN_LIST_ITEM("apps/common", "apps/common/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/common/address_mac", "apps/common/address_mac.py") +MICROPY_FROZEN_LIST_ITEM("apps/common/address_type", "apps/common/address_type.py") +MICROPY_FROZEN_LIST_ITEM("apps/common/authorization", "apps/common/authorization.py") +MICROPY_FROZEN_LIST_ITEM("apps/common/cbor", "apps/common/cbor.py") +MICROPY_FROZEN_LIST_ITEM("apps/common/coininfo", "apps/common/coininfo.py") +MICROPY_FROZEN_LIST_ITEM("apps/common/coins", "apps/common/coins.py") +MICROPY_FROZEN_LIST_ITEM("apps/common/keychain", "apps/common/keychain.py") +MICROPY_FROZEN_LIST_ITEM("apps/common/mnemonic", "apps/common/mnemonic.py") +MICROPY_FROZEN_LIST_ITEM("apps/common/passphrase", "apps/common/passphrase.py") +MICROPY_FROZEN_LIST_ITEM("apps/common/paths", "apps/common/paths.py") +MICROPY_FROZEN_LIST_ITEM("apps/common/readers", "apps/common/readers.py") +MICROPY_FROZEN_LIST_ITEM("apps/common/request_pin", "apps/common/request_pin.py") +MICROPY_FROZEN_LIST_ITEM("apps/common/safety_checks", "apps/common/safety_checks.py") +MICROPY_FROZEN_LIST_ITEM("apps/common/sdcard", "apps/common/sdcard.py") +MICROPY_FROZEN_LIST_ITEM("apps/common/seed", "apps/common/seed.py") +MICROPY_FROZEN_LIST_ITEM("apps/common/signverify", "apps/common/signverify.py") +MICROPY_FROZEN_LIST_ITEM("apps/common/writers", "apps/common/writers.py") +MICROPY_FROZEN_LIST_ITEM("apps/debug", "apps/debug/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/debug/load_device", "apps/debug/load_device.py") +MICROPY_FROZEN_LIST_ITEM("apps/homescreen", "apps/homescreen/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/apply_flags", "apps/management/apply_flags.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/apply_settings", "apps/management/apply_settings.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/authenticate_device", "apps/management/authenticate_device.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/backup_device", "apps/management/backup_device.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/backup_types", "apps/management/backup_types.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/change_pin", "apps/management/change_pin.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/change_wipe_code", "apps/management/change_wipe_code.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/get_next_u2f_counter", "apps/management/get_next_u2f_counter.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/get_nonce", "apps/management/get_nonce.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/reboot_to_bootloader", "apps/management/reboot_to_bootloader.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/sd_protect", "apps/management/sd_protect.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/set_u2f_counter", "apps/management/set_u2f_counter.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/show_tutorial", "apps/management/show_tutorial.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/wipe_device", "apps/management/wipe_device.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/recovery_device", "apps/management/recovery_device/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/recovery_device/homescreen", "apps/management/recovery_device/homescreen.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/recovery_device/layout", "apps/management/recovery_device/layout.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/recovery_device/recover", "apps/management/recovery_device/recover.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/recovery_device/word_validity", "apps/management/recovery_device/word_validity.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/reset_device", "apps/management/reset_device/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/management/reset_device/layout", "apps/management/reset_device/layout.py") +MICROPY_FROZEN_LIST_ITEM("apps/misc", "apps/misc/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/misc/cipher_key_value", "apps/misc/cipher_key_value.py") +MICROPY_FROZEN_LIST_ITEM("apps/misc/cosi_commit", "apps/misc/cosi_commit.py") +MICROPY_FROZEN_LIST_ITEM("apps/misc/get_ecdh_session_key", "apps/misc/get_ecdh_session_key.py") +MICROPY_FROZEN_LIST_ITEM("apps/misc/get_entropy", "apps/misc/get_entropy.py") +MICROPY_FROZEN_LIST_ITEM("apps/misc/get_firmware_hash", "apps/misc/get_firmware_hash.py") +MICROPY_FROZEN_LIST_ITEM("apps/misc/sign_identity", "apps/misc/sign_identity.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin", "apps/bitcoin/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/addresses", "apps/bitcoin/addresses.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/authorization", "apps/bitcoin/authorization.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/authorize_coinjoin", "apps/bitcoin/authorize_coinjoin.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/common", "apps/bitcoin/common.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/get_address", "apps/bitcoin/get_address.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/get_ownership_id", "apps/bitcoin/get_ownership_id.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/get_ownership_proof", "apps/bitcoin/get_ownership_proof.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/get_public_key", "apps/bitcoin/get_public_key.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/keychain", "apps/bitcoin/keychain.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/multisig", "apps/bitcoin/multisig.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/ownership", "apps/bitcoin/ownership.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/readers", "apps/bitcoin/readers.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/scripts", "apps/bitcoin/scripts.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/scripts_decred", "apps/bitcoin/scripts_decred.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/sign_message", "apps/bitcoin/sign_message.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/verification", "apps/bitcoin/verification.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/verify_message", "apps/bitcoin/verify_message.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/writers", "apps/bitcoin/writers.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/sign_tx", "apps/bitcoin/sign_tx/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/sign_tx/approvers", "apps/bitcoin/sign_tx/approvers.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/sign_tx/bitcoin", "apps/bitcoin/sign_tx/bitcoin.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/sign_tx/helpers", "apps/bitcoin/sign_tx/helpers.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/sign_tx/layout", "apps/bitcoin/sign_tx/layout.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/sign_tx/matchcheck", "apps/bitcoin/sign_tx/matchcheck.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/sign_tx/omni", "apps/bitcoin/sign_tx/omni.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/sign_tx/payment_request", "apps/bitcoin/sign_tx/payment_request.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/sign_tx/progress", "apps/bitcoin/sign_tx/progress.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/sign_tx/sig_hasher", "apps/bitcoin/sign_tx/sig_hasher.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/sign_tx/tx_info", "apps/bitcoin/sign_tx/tx_info.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/sign_tx/tx_weight", "apps/bitcoin/sign_tx/tx_weight.py") +MICROPY_FROZEN_LIST_ITEM("apps/binance", "apps/binance/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/binance/get_address", "apps/binance/get_address.py") +MICROPY_FROZEN_LIST_ITEM("apps/binance/get_public_key", "apps/binance/get_public_key.py") +MICROPY_FROZEN_LIST_ITEM("apps/binance/helpers", "apps/binance/helpers.py") +MICROPY_FROZEN_LIST_ITEM("apps/binance/layout", "apps/binance/layout.py") +MICROPY_FROZEN_LIST_ITEM("apps/binance/sign_tx", "apps/binance/sign_tx.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/BinanceOrderSide", "trezor/enums/BinanceOrderSide.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/BinanceOrderType", "trezor/enums/BinanceOrderType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/BinanceTimeInForce", "trezor/enums/BinanceTimeInForce.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano", "apps/cardano/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/addresses", "apps/cardano/addresses.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/auxiliary_data", "apps/cardano/auxiliary_data.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/byron_addresses", "apps/cardano/byron_addresses.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/certificates", "apps/cardano/certificates.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/get_address", "apps/cardano/get_address.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/get_native_script_hash", "apps/cardano/get_native_script_hash.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/get_public_key", "apps/cardano/get_public_key.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/layout", "apps/cardano/layout.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/native_script", "apps/cardano/native_script.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/seed", "apps/cardano/seed.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/helpers", "apps/cardano/helpers/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/helpers/account_path_check", "apps/cardano/helpers/account_path_check.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/helpers/bech32", "apps/cardano/helpers/bech32.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/helpers/credential", "apps/cardano/helpers/credential.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/helpers/hash_builder_collection", "apps/cardano/helpers/hash_builder_collection.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/helpers/network_ids", "apps/cardano/helpers/network_ids.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/helpers/paths", "apps/cardano/helpers/paths.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/helpers/protocol_magics", "apps/cardano/helpers/protocol_magics.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/helpers/utils", "apps/cardano/helpers/utils.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/sign_tx", "apps/cardano/sign_tx/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/sign_tx/multisig_signer", "apps/cardano/sign_tx/multisig_signer.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/sign_tx/ordinary_signer", "apps/cardano/sign_tx/ordinary_signer.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/sign_tx/plutus_signer", "apps/cardano/sign_tx/plutus_signer.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/sign_tx/pool_owner_signer", "apps/cardano/sign_tx/pool_owner_signer.py") +MICROPY_FROZEN_LIST_ITEM("apps/cardano/sign_tx/signer", "apps/cardano/sign_tx/signer.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/CardanoAddressType", "trezor/enums/CardanoAddressType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/CardanoCVoteRegistrationFormat", "trezor/enums/CardanoCVoteRegistrationFormat.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/CardanoCertificateType", "trezor/enums/CardanoCertificateType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/CardanoDerivationType", "trezor/enums/CardanoDerivationType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/CardanoNativeScriptHashDisplayFormat", "trezor/enums/CardanoNativeScriptHashDisplayFormat.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/CardanoNativeScriptType", "trezor/enums/CardanoNativeScriptType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/CardanoPoolRelayType", "trezor/enums/CardanoPoolRelayType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/CardanoTxAuxiliaryDataSupplementType", "trezor/enums/CardanoTxAuxiliaryDataSupplementType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/CardanoTxOutputSerializationFormat", "trezor/enums/CardanoTxOutputSerializationFormat.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/CardanoTxSigningMode", "trezor/enums/CardanoTxSigningMode.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/CardanoTxWitnessType", "trezor/enums/CardanoTxWitnessType.py") +MICROPY_FROZEN_LIST_ITEM("apps/eos", "apps/eos/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/eos/get_public_key", "apps/eos/get_public_key.py") +MICROPY_FROZEN_LIST_ITEM("apps/eos/helpers", "apps/eos/helpers.py") +MICROPY_FROZEN_LIST_ITEM("apps/eos/layout", "apps/eos/layout.py") +MICROPY_FROZEN_LIST_ITEM("apps/eos/sign_tx", "apps/eos/sign_tx.py") +MICROPY_FROZEN_LIST_ITEM("apps/eos/writers", "apps/eos/writers.py") +MICROPY_FROZEN_LIST_ITEM("apps/eos/actions", "apps/eos/actions/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/eos/actions/layout", "apps/eos/actions/layout.py") +MICROPY_FROZEN_LIST_ITEM("apps/ethereum", "apps/ethereum/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/ethereum/definitions", "apps/ethereum/definitions.py") +MICROPY_FROZEN_LIST_ITEM("apps/ethereum/definitions_constants", "apps/ethereum/definitions_constants.py") +MICROPY_FROZEN_LIST_ITEM("apps/ethereum/get_address", "apps/ethereum/get_address.py") +MICROPY_FROZEN_LIST_ITEM("apps/ethereum/get_public_key", "apps/ethereum/get_public_key.py") +MICROPY_FROZEN_LIST_ITEM("apps/ethereum/helpers", "apps/ethereum/helpers.py") +MICROPY_FROZEN_LIST_ITEM("apps/ethereum/keychain", "apps/ethereum/keychain.py") +MICROPY_FROZEN_LIST_ITEM("apps/ethereum/layout", "apps/ethereum/layout.py") +MICROPY_FROZEN_LIST_ITEM("apps/ethereum/networks", "apps/ethereum/networks.py") +MICROPY_FROZEN_LIST_ITEM("apps/ethereum/sign_message", "apps/ethereum/sign_message.py") +MICROPY_FROZEN_LIST_ITEM("apps/ethereum/sign_tx", "apps/ethereum/sign_tx.py") +MICROPY_FROZEN_LIST_ITEM("apps/ethereum/sign_tx_eip1559", "apps/ethereum/sign_tx_eip1559.py") +MICROPY_FROZEN_LIST_ITEM("apps/ethereum/sign_typed_data", "apps/ethereum/sign_typed_data.py") +MICROPY_FROZEN_LIST_ITEM("apps/ethereum/tokens", "apps/ethereum/tokens.py") +MICROPY_FROZEN_LIST_ITEM("apps/ethereum/verify_message", "apps/ethereum/verify_message.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/EthereumDataType", "trezor/enums/EthereumDataType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/EthereumDefinitionType", "trezor/enums/EthereumDefinitionType.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero", "apps/monero/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/diag", "apps/monero/diag.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/get_address", "apps/monero/get_address.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/get_tx_keys", "apps/monero/get_tx_keys.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/get_watch_only", "apps/monero/get_watch_only.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/key_image_sync", "apps/monero/key_image_sync.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/layout", "apps/monero/layout.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/live_refresh", "apps/monero/live_refresh.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/misc", "apps/monero/misc.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/sign_tx", "apps/monero/sign_tx.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/signing", "apps/monero/signing/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/signing/offloading_keys", "apps/monero/signing/offloading_keys.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/signing/state", "apps/monero/signing/state.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/signing/step_01_init_transaction", "apps/monero/signing/step_01_init_transaction.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/signing/step_02_set_input", "apps/monero/signing/step_02_set_input.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/signing/step_04_input_vini", "apps/monero/signing/step_04_input_vini.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/signing/step_05_all_inputs_set", "apps/monero/signing/step_05_all_inputs_set.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/signing/step_06_set_output", "apps/monero/signing/step_06_set_output.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/signing/step_07_all_outputs_set", "apps/monero/signing/step_07_all_outputs_set.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/signing/step_09_sign_input", "apps/monero/signing/step_09_sign_input.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/signing/step_10_sign_final", "apps/monero/signing/step_10_sign_final.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr", "apps/monero/xmr/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/addresses", "apps/monero/xmr/addresses.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/bulletproof", "apps/monero/xmr/bulletproof.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/chacha_poly", "apps/monero/xmr/chacha_poly.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/clsag", "apps/monero/xmr/clsag.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/credentials", "apps/monero/xmr/credentials.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/crypto_helpers", "apps/monero/xmr/crypto_helpers.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/keccak_hasher", "apps/monero/xmr/keccak_hasher.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/key_image", "apps/monero/xmr/key_image.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/mlsag_hasher", "apps/monero/xmr/mlsag_hasher.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/monero", "apps/monero/xmr/monero.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/networks", "apps/monero/xmr/networks.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/range_signatures", "apps/monero/xmr/range_signatures.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/serialize", "apps/monero/xmr/serialize/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/serialize/base_types", "apps/monero/xmr/serialize/base_types.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/serialize/int_serialize", "apps/monero/xmr/serialize/int_serialize.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/serialize/message_types", "apps/monero/xmr/serialize/message_types.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/serialize/readwriter", "apps/monero/xmr/serialize/readwriter.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/serialize_messages/base", "apps/monero/xmr/serialize_messages/base.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/serialize_messages/tx_ct_key", "apps/monero/xmr/serialize_messages/tx_ct_key.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/serialize_messages/tx_ecdh", "apps/monero/xmr/serialize_messages/tx_ecdh.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/serialize_messages/tx_prefix", "apps/monero/xmr/serialize_messages/tx_prefix.py") +MICROPY_FROZEN_LIST_ITEM("apps/monero/xmr/serialize_messages/tx_rsig_bulletproof", "apps/monero/xmr/serialize_messages/tx_rsig_bulletproof.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/MoneroNetworkType", "trezor/enums/MoneroNetworkType.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem", "apps/nem/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/get_address", "apps/nem/get_address.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/helpers", "apps/nem/helpers.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/layout", "apps/nem/layout.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/sign_tx", "apps/nem/sign_tx.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/validators", "apps/nem/validators.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/writers", "apps/nem/writers.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/mosaic", "apps/nem/mosaic/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/mosaic/helpers", "apps/nem/mosaic/helpers.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/mosaic/layout", "apps/nem/mosaic/layout.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/mosaic/nem_mosaics", "apps/nem/mosaic/nem_mosaics.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/mosaic/serialize", "apps/nem/mosaic/serialize.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/multisig", "apps/nem/multisig/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/multisig/layout", "apps/nem/multisig/layout.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/multisig/serialize", "apps/nem/multisig/serialize.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/namespace", "apps/nem/namespace/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/namespace/layout", "apps/nem/namespace/layout.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/namespace/serialize", "apps/nem/namespace/serialize.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/transfer", "apps/nem/transfer/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/transfer/layout", "apps/nem/transfer/layout.py") +MICROPY_FROZEN_LIST_ITEM("apps/nem/transfer/serialize", "apps/nem/transfer/serialize.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/NEMImportanceTransferMode", "trezor/enums/NEMImportanceTransferMode.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/NEMModificationType", "trezor/enums/NEMModificationType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/NEMMosaicLevy", "trezor/enums/NEMMosaicLevy.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/NEMSupplyChangeType", "trezor/enums/NEMSupplyChangeType.py") +MICROPY_FROZEN_LIST_ITEM("apps/ripple", "apps/ripple/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/ripple/base58_ripple", "apps/ripple/base58_ripple.py") +MICROPY_FROZEN_LIST_ITEM("apps/ripple/get_address", "apps/ripple/get_address.py") +MICROPY_FROZEN_LIST_ITEM("apps/ripple/helpers", "apps/ripple/helpers.py") +MICROPY_FROZEN_LIST_ITEM("apps/ripple/layout", "apps/ripple/layout.py") +MICROPY_FROZEN_LIST_ITEM("apps/ripple/serialize", "apps/ripple/serialize.py") +MICROPY_FROZEN_LIST_ITEM("apps/ripple/sign_tx", "apps/ripple/sign_tx.py") +MICROPY_FROZEN_LIST_ITEM("apps/stellar", "apps/stellar/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/stellar/consts", "apps/stellar/consts.py") +MICROPY_FROZEN_LIST_ITEM("apps/stellar/get_address", "apps/stellar/get_address.py") +MICROPY_FROZEN_LIST_ITEM("apps/stellar/helpers", "apps/stellar/helpers.py") +MICROPY_FROZEN_LIST_ITEM("apps/stellar/layout", "apps/stellar/layout.py") +MICROPY_FROZEN_LIST_ITEM("apps/stellar/sign_tx", "apps/stellar/sign_tx.py") +MICROPY_FROZEN_LIST_ITEM("apps/stellar/writers", "apps/stellar/writers.py") +MICROPY_FROZEN_LIST_ITEM("apps/stellar/operations", "apps/stellar/operations/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/stellar/operations/layout", "apps/stellar/operations/layout.py") +MICROPY_FROZEN_LIST_ITEM("apps/stellar/operations/serialize", "apps/stellar/operations/serialize.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/StellarAssetType", "trezor/enums/StellarAssetType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/StellarMemoType", "trezor/enums/StellarMemoType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/StellarSignerType", "trezor/enums/StellarSignerType.py") +MICROPY_FROZEN_LIST_ITEM("apps/tezos", "apps/tezos/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/tezos/get_address", "apps/tezos/get_address.py") +MICROPY_FROZEN_LIST_ITEM("apps/tezos/get_public_key", "apps/tezos/get_public_key.py") +MICROPY_FROZEN_LIST_ITEM("apps/tezos/helpers", "apps/tezos/helpers.py") +MICROPY_FROZEN_LIST_ITEM("apps/tezos/layout", "apps/tezos/layout.py") +MICROPY_FROZEN_LIST_ITEM("apps/tezos/sign_tx", "apps/tezos/sign_tx.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/TezosBallotType", "trezor/enums/TezosBallotType.py") +MICROPY_FROZEN_LIST_ITEM("trezor/enums/TezosContractType", "trezor/enums/TezosContractType.py") +MICROPY_FROZEN_LIST_ITEM("apps/zcash", "apps/zcash/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/zcash/f4jumble", "apps/zcash/f4jumble.py") +MICROPY_FROZEN_LIST_ITEM("apps/zcash/hasher", "apps/zcash/hasher.py") +MICROPY_FROZEN_LIST_ITEM("apps/zcash/signer", "apps/zcash/signer.py") +MICROPY_FROZEN_LIST_ITEM("apps/zcash/unified_addresses", "apps/zcash/unified_addresses.py") +MICROPY_FROZEN_LIST_ITEM("apps/webauthn", "apps/webauthn/__init__.py") +MICROPY_FROZEN_LIST_ITEM("apps/webauthn/add_resident_credential", "apps/webauthn/add_resident_credential.py") +MICROPY_FROZEN_LIST_ITEM("apps/webauthn/common", "apps/webauthn/common.py") +MICROPY_FROZEN_LIST_ITEM("apps/webauthn/credential", "apps/webauthn/credential.py") +MICROPY_FROZEN_LIST_ITEM("apps/webauthn/fido2", "apps/webauthn/fido2.py") +MICROPY_FROZEN_LIST_ITEM("apps/webauthn/knownapps", "apps/webauthn/knownapps.py") +MICROPY_FROZEN_LIST_ITEM("apps/webauthn/list_resident_credentials", "apps/webauthn/list_resident_credentials.py") +MICROPY_FROZEN_LIST_ITEM("apps/webauthn/remove_resident_credential", "apps/webauthn/remove_resident_credential.py") +MICROPY_FROZEN_LIST_ITEM("apps/webauthn/resident_credentials", "apps/webauthn/resident_credentials.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/sign_tx/decred", "apps/bitcoin/sign_tx/decred.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/sign_tx/bitcoinlike", "apps/bitcoin/sign_tx/bitcoinlike.py") +MICROPY_FROZEN_LIST_ITEM("apps/bitcoin/sign_tx/zcash_v4", "apps/bitcoin/sign_tx/zcash_v4.py") +#endif + +/* +byte sizes: +qstr content: 5280 unique, 102225 bytes +bc content: 232362 +const str content: 25972 +const int content: 374 +const obj content: 13688 +const table qstr content: 0 entries, 0 bytes +const table ptr content: 1899 entries, 7596 bytes +raw code content: 2720 * 4 = 43520 +mp_frozen_mpy_names_content: 10207 +mp_frozen_mpy_content_size: 1388 +total: 437332 +*/ diff --git a/core/embed/firmware/main.c b/core/embed/firmware/main.c index 304699f88..d6eaf3f85 100644 --- a/core/embed/firmware/main.c +++ b/core/embed/firmware/main.c @@ -100,7 +100,7 @@ int main(void) { // reinitialize HAL for Trezor One #if defined TREZOR_MODEL_1 - HAL_Init(); + HAL_Init(); #endif collect_hw_entropy(); diff --git a/core/embed/firmware/memory_T.ld b/core/embed/firmware/memory_T.ld index 82008aaad..ead64485b 100644 --- a/core/embed/firmware/memory_T.ld +++ b/core/embed/firmware/memory_T.ld @@ -47,11 +47,17 @@ SECTIONS { } >FLASH AT>FLASH .flash2 : ALIGN(512) { - build/firmware/frozen_mpy.o(.rodata*); + *libfrozen_mpy.a(.rodata*); + *secp256k1c.o(.rodata*); + *precomputed_ecmult.o(.rodata*); + *precomputed_ecmult_gen.o(.rodata*); + *aestab.o(.rodata*); + + /*build/firmware/frozen_mpy.o(.rodata*); build/firmware/vendor/secp256k1-zkp/src/secp256k1.o(.rodata*); build/firmware/vendor/secp256k1-zkp/src/precomputed_ecmult.o(.rodata*); build/firmware/vendor/secp256k1-zkp/src/precomputed_ecmult_gen.o(.rodata*); - build/firmware/vendor/trezor-crypto/aes/aestab.o(.rodata*); + build/firmware/vendor/trezor-crypto/aes/aestab.o(.rodata*);*/ . = ALIGN(4); */libtrezor_lib.a:(.text*); . = ALIGN(4); @@ -71,6 +77,14 @@ SECTIONS { . = ALIGN(512); } >FLASH AT>FLASH + /* For C++ exception handling */ + .ARM : + { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } >FLASH + .stack : ALIGN(8) { . = 16K; /* Exactly 16K allocated for stack. Overflow causes MemManage fault (when using MPU). */ } >SRAM diff --git a/core/embed/lib/CMakeLists.txt b/core/embed/lib/CMakeLists.txt new file mode 100644 index 000000000..60a246b44 --- /dev/null +++ b/core/embed/lib/CMakeLists.txt @@ -0,0 +1,19 @@ +add_library(trezor-lib + mini_printf.c + unit_variant.c + buffers.c + colors.c + display.c + fonts/fonts.c + fonts/font_bitmap.c + image.c + fonts/font_tthoves_regular_21.c + fonts/font_tthoves_bold_17.c + fonts/font_tthoves_demibold_21.c + fonts/font_robotomono_medium_20.c + touch.c +) + +target_include_directories(trezor-lib PUBLIC .) + +target_link_libraries(trezor-lib stm32cube-f4 trezor-crypto trezor-storage models) \ No newline at end of file diff --git a/core/embed/models/CMakeLists.txt b/core/embed/models/CMakeLists.txt new file mode 100644 index 000000000..415615263 --- /dev/null +++ b/core/embed/models/CMakeLists.txt @@ -0,0 +1,7 @@ +add_library(models + model_T2T1_layout.c +) + +target_include_directories(models PUBLIC .) + +target_link_libraries(models trezor-hal) \ No newline at end of file diff --git a/core/embed/rust/CMakeLists.txt b/core/embed/rust/CMakeLists.txt new file mode 100644 index 000000000..4d35c83d7 --- /dev/null +++ b/core/embed/rust/CMakeLists.txt @@ -0,0 +1,18 @@ +include(FetchContent) + +FetchContent_Declare( + Corrosion + GIT_REPOSITORY https://github.com/corrosion-rs/corrosion.git + GIT_TAG v0.4 # Optionally specify a commit hash, version tag or branch here +) + +FetchContent_MakeAvailable(Corrosion) + +corrosion_import_crate( + MANIFEST_PATH Cargo.toml + NO_DEFAULT_FEATURES + FEATURES model_tt ui bootloader bitcoin_only touch micropython protobuf model_tt dma2d + FLAGS -Z build-std=core -Z build-std-features=panic_immediate_abort +) + +# input", "rgb_led", "consumption_mask", "usb", "optiga" \ No newline at end of file diff --git a/core/embed/rust/build.rs b/core/embed/rust/build.rs index ccc22b346..2c80e1b1a 100644 --- a/core/embed/rust/build.rs +++ b/core/embed/rust/build.rs @@ -94,7 +94,9 @@ fn prepare_bindings() -> bindgen::Builder { if is_firmware() { let mut clang_args: Vec<&str> = Vec::new(); - let includes = env::var("RUST_INCLUDES").unwrap(); + //let includes = //env::var("RUST_INCLUDES").unwrap(); + let includes = "-I../trezorhal/stm32f4;-I../../vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Inc;-I../../vendor/micropython/lib/stm32lib/CMSIS/STM32F4xx/Include;-DSTM32_HAL_H="; + let args = includes.split(';'); for arg in args { @@ -381,8 +383,9 @@ fn generate_trezorhal_bindings() { } fn is_firmware() -> bool { - let target = env::var("TARGET").unwrap(); - target.starts_with("thumbv7") + true + //let target = env::var("TARGET").unwrap(); + //target.starts_with("thumbv7") } #[cfg(feature = "test")] diff --git a/core/embed/rust/src/micropython/obj.rs b/core/embed/rust/src/micropython/obj.rs index ef75de97d..d6ab7da36 100644 --- a/core/embed/rust/src/micropython/obj.rs +++ b/core/embed/rust/src/micropython/obj.rs @@ -156,18 +156,19 @@ impl TryFrom for i32 { impl TryFrom for i64 { type Error = Error; - fn try_from(obj: Obj) -> Result { - let mut ll: cty::c_longlong = 0; + fn try_from(_obj: Obj) -> Result { + /*let mut ll: cty::c_longlong = 0; // SAFETY: // - `ll` is a mutable variable of the right type. // - `obj` can be anything uPy understands. // EXCEPTION: Does not raise. - if unsafe { ffi::trezor_obj_get_ll_checked(obj, &mut ll) } { + if unsafe { ffi::trezor_obj_get_ll_checked(obj, &mut ll) } { Ok(ll) } else { Err(Error::TypeError) - } + }*/ + Err(Error::TypeError) } } @@ -273,16 +274,18 @@ impl TryFrom<&str> for Obj { impl TryFrom<&'static CStr> for Obj { type Error = Error; - fn try_from(val: &'static CStr) -> Result { + fn try_from(_val: &'static CStr) -> Result { // SAFETY: // - `CStr` is guaranteed to be null-terminated UTF-8. // - the argument is static so it will remain valid for the lifetime of result. - let obj = unsafe { ffi::trezor_obj_str_from_rom_text(val.as_ptr()) }; + /*let obj = unsafe { ffi::trezor_obj_str_from_rom_text(val.as_ptr()) }; if obj.is_null() { Err(Error::AllocationFailed) } else { Ok(obj) - } + }*/ + + Err(Error::AllocationFailed) } } diff --git a/core/embed/rust/src/micropython/runtime.rs b/core/embed/rust/src/micropython/runtime.rs index c33bb40b5..0aa796c3a 100644 --- a/core/embed/rust/src/micropython/runtime.rs +++ b/core/embed/rust/src/micropython/runtime.rs @@ -42,13 +42,15 @@ where // function pointer, and a user-data pointer. // `ffi::trezor_obj_call_protected` then calls the `callback` with the // `argument`. - let (callback, argument) = split_func_into_callback_and_argument(&mut wrapper); - let exception = ffi::trezor_obj_call_protected(Some(callback), argument); - if exception.is_null() { + let (_callback, _argument) = split_func_into_callback_and_argument(&mut wrapper); + /*let exception = ffi::trezor_obj_call_protected(Some(callback), argument); + if *exception.is_null() { Ok(result.assume_init()) } else { Err(Error::CaughtException(exception)) - } + }*/ + + Ok(result.assume_init()) } } diff --git a/core/embed/trezorhal/CMakeLists.txt b/core/embed/trezorhal/CMakeLists.txt new file mode 100644 index 000000000..3ffc3a11e --- /dev/null +++ b/core/embed/trezorhal/CMakeLists.txt @@ -0,0 +1,38 @@ +add_library(trezor-hal + stm32f4/board_capabilities.c + stm32f4/common.c + stm32f4/flash.c + stm32f4/lowlevel.c + stm32f4/mpu.c + stm32f4/platform.c + stm32f4/systick.c + stm32f4/random_delays.c + stm32f4/rng.c + stm32f4/vectortable.s + stm32f4/util.s + stm32f4/displays/st7789v.c + stm32f4/backlight_pwm.c + stm32f4/displays/panels/tf15411a.c + stm32f4/displays/panels/154a.c + stm32f4/displays/panels/lx154a2411.c + stm32f4/displays/panels/lx154a2422.c + stm32f4/i2c.c + stm32f4/touch/ft6x36.c + stm32f4/sdcard.c + stm32f4/sbu.c + stm32f4/usb.c + stm32f4/usbd_conf.c + stm32f4/usbd_core.c + stm32f4/usbd_ctlreq.c + stm32f4/usbd_ioreq.c + stm32f4/dma2d.c +) + +target_include_directories(trezor-hal PUBLIC .) +target_include_directories(trezor-hal PRIVATE stm32f4) + +target_include_directories(trezor-hal PRIVATE ../rust) + +target_link_libraries(trezor-hal stm32cube-f4 trezor-lib trezor-storage models) + + diff --git a/core/genhdr/CMakeLists.txt b/core/genhdr/CMakeLists.txt new file mode 100644 index 000000000..2f0a98c6f --- /dev/null +++ b/core/genhdr/CMakeLists.txt @@ -0,0 +1,234 @@ + +set(QSTR_SOURCES +../vendor/micropython/extmod/modubinascii.c +../vendor/micropython/extmod/moductypes.c +../vendor/micropython/extmod/moduheapq.c +../vendor/micropython/extmod/modutimeq.c +../vendor/micropython/extmod/utime_mphal.c +../vendor/micropython/shared/libc/abort_.c +../vendor/micropython/shared/libc/printf.c +../vendor/micropython/shared/runtime/gchelper_m3.s +../vendor/micropython/shared/runtime/gchelper_native.c +../vendor/micropython/shared/runtime/interrupt_char.c +../vendor/micropython/shared/runtime/pyexec.c +../vendor/micropython/shared/runtime/stdout_helpers.c +../vendor/micropython/shared/timeutils/timeutils.c +../vendor/micropython/ports/stm32/gccollect.c +../vendor/micropython/ports/stm32/pendsv.c +../vendor/micropython/py/argcheck.c +../vendor/micropython/py/asmarm.c +../vendor/micropython/py/asmbase.c +../vendor/micropython/py/asmthumb.c +../vendor/micropython/py/asmx64.c +../vendor/micropython/py/asmx86.c +../vendor/micropython/py/asmxtensa.c +../vendor/micropython/py/bc.c +../vendor/micropython/py/binary.c +../vendor/micropython/py/builtinevex.c +../vendor/micropython/py/builtinhelp.c +../vendor/micropython/py/builtinimport.c +../vendor/micropython/py/compile.c +../vendor/micropython/py/emitbc.c +../vendor/micropython/py/emitcommon.c +../vendor/micropython/py/emitglue.c +../vendor/micropython/py/emitinlinethumb.c +../vendor/micropython/py/emitinlinextensa.c +../vendor/micropython/py/formatfloat.c +../vendor/micropython/py/frozenmod.c +../vendor/micropython/py/lexer.c +../vendor/micropython/py/malloc.c +../vendor/micropython/py/map.c +../vendor/micropython/py/modarray.c +../vendor/micropython/py/modbuiltins.c +../vendor/micropython/py/modgc.c +../vendor/micropython/py/modmath.c +../vendor/micropython/py/modmicropython.c +../vendor/micropython/py/modstruct.c +../vendor/micropython/py/modsys.c +../vendor/micropython/py/mpprint.c +../vendor/micropython/py/mpstate.c +../vendor/micropython/py/mpz.c +../vendor/micropython/py/nativeglue.c +../vendor/micropython/py/obj.c +../vendor/micropython/py/objarray.c +../vendor/micropython/py/objattrtuple.c +../vendor/micropython/py/objbool.c +../vendor/micropython/py/objboundmeth.c +../vendor/micropython/py/objcell.c +../vendor/micropython/py/objclosure.c +../vendor/micropython/py/objcomplex.c +../vendor/micropython/py/objdict.c +../vendor/micropython/py/objenumerate.c +../vendor/micropython/py/objexcept.c +../vendor/micropython/py/objfilter.c +../vendor/micropython/py/objfloat.c +../vendor/micropython/py/objfun.c +../vendor/micropython/py/objgenerator.c +../vendor/micropython/py/objgetitemiter.c +../vendor/micropython/py/objint.c +../vendor/micropython/py/objint_longlong.c +../vendor/micropython/py/objint_mpz.c +../vendor/micropython/py/objlist.c +../vendor/micropython/py/objmap.c +../vendor/micropython/py/objmodule.c +../vendor/micropython/py/objnamedtuple.c +../vendor/micropython/py/objnone.c +../vendor/micropython/py/objobject.c +../vendor/micropython/py/objpolyiter.c +../vendor/micropython/py/objproperty.c +../vendor/micropython/py/objrange.c +../vendor/micropython/py/objreversed.c +../vendor/micropython/py/objset.c +../vendor/micropython/py/objsingleton.c +../vendor/micropython/py/objslice.c +../vendor/micropython/py/objstr.c +../vendor/micropython/py/objstringio.c +../vendor/micropython/py/objstrunicode.c +../vendor/micropython/py/objtuple.c +../vendor/micropython/py/objtype.c +../vendor/micropython/py/objzip.c +../vendor/micropython/py/opmethods.c +../vendor/micropython/py/pairheap.c +../vendor/micropython/py/parse.c +../vendor/micropython/py/parsenum.c +../vendor/micropython/py/parsenumbase.c +../vendor/micropython/py/persistentcode.c +../vendor/micropython/py/qstr.c +../vendor/micropython/py/reader.c +../vendor/micropython/py/repl.c +../vendor/micropython/py/runtime.c +../vendor/micropython/py/runtime_utils.c +../vendor/micropython/py/scheduler.c +../vendor/micropython/py/scope.c +../vendor/micropython/py/sequence.c +../vendor/micropython/py/showbc.c +../vendor/micropython/py/smallint.c +../vendor/micropython/py/stackctrl.c +../vendor/micropython/py/stream.c +../vendor/micropython/py/unicode.c +../vendor/micropython/py/vstr.c +../vendor/micropython/py/warning.c +../vendor/micropython/py/gc.c +../vendor/micropython/py/pystack.c +../vendor/micropython/py/vm.c +../vendor/micropython/lib/uzlib/adler32.c +../vendor/micropython/lib/uzlib/crc32.c +../vendor/micropython/lib/uzlib/tinflate.c + + +../embed/extmod/modtrezorconfig/modtrezorconfig.c +../embed/extmod/modtrezorcrypto/crc.c +../embed/extmod/modtrezorcrypto/modtrezorcrypto.c +../embed/extmod/modtrezorcrypto/rand.c +../embed/extmod/modtrezorio/modtrezorio.c +../embed/extmod/modtrezorui/modtrezorui.c +../embed/extmod/modtrezorutils/modtrezorutils.c +../embed/extmod/modtrezorio/ff.c +../embed/extmod/modtrezorio/ffunicode.c +../embed/extmod/modutime.c +../embed/extmod/rustmods.c + +../embed/extmod/trezorobj.c +) + +list(TRANSFORM QSTR_SOURCES PREPEND ${CMAKE_CURRENT_SOURCE_DIR}/) + + +add_custom_target(qstr + SOURCES + ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.generated.h + ${CMAKE_CURRENT_BINARY_DIR}/moduledefs.h + ${CMAKE_CURRENT_BINARY_DIR}/mpversion.h + +) + + +get_target_property(MAIN_CFLAGS micropython COMPILE_OPTIONS) + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.collected_in.h + DEPENDS ${QSTR_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/mpversion.h + COMMAND ${CMAKE_C_COMPILER} + ${MAIN_CFLAGS} + "-D$,;-D>" + "-DNO_QSTR;-DN_X64;-DN_X86;-DN_THUMB" + "-I../..;-I../../embed/rust" + "-I$,;-I>" + -I ${CMAKE_BINARY_DIR} + -E ${QSTR_SOURCES} > ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.collected_in.h + COMMAND_EXPAND_LISTS VERBATIM +) + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.collected.h + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.collected_in.h + COMMAND + grep -o MP_QSTR_[a-zA-Z0-9_]* ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.collected_in.h | + sed -n "'s/.*MP_QSTR_\\([_a-zA-Z0-9]\\+\\).*/Q(\\1)/p'" + > ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.collected.h +) + + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.preprocessed_1.h + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.collected.h + COMMAND + cat ../../vendor/micropython/py/qstrdefs.h ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.collected.h | + sed "'s/^Q(.*)/\\\"&\\\"/'" + > ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.preprocessed_1.h +) + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.preprocessed_2.h + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.preprocessed_1.h + COMMAND + ${CMAKE_C_COMPILER} + ${MAIN_CFLAGS} + "-D$,;-D>" + "-DNO_QSTR;-DN_X64;-DN_X86;-DN_THUMB" + "-I../..;-I../../embed/rust" + "-I$,;-I>" + -E ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.preprocessed_1.h + > ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.preprocessed_2.h + COMMAND_EXPAND_LISTS VERBATIM +) + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.preprocessed.h + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.preprocessed_2.h + COMMAND + sed "'s/^\\\"\\(Q(.*)\\)\\\"/\\1/'" ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.preprocessed_2.h + > ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.preprocessed.h +) + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.generated.h + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.preprocessed.h + COMMAND python3 ../../vendor/micropython/py/makeqstrdata.py + ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.preprocessed.h + > ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.generated.h +) + + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/modules.collected.h + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.collected_in.h + COMMAND sed -n "'s/\\(MP_REGISTER_MODULE(.*,.*);.*\\)/\\1/p'" + ${CMAKE_CURRENT_BINARY_DIR}/qstrdefs.collected_in.h + > ${CMAKE_CURRENT_BINARY_DIR}/modules.collected.h +) + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/moduledefs.h + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/modules.collected.h + COMMAND python3 ../../vendor/micropython/py/makemoduledefs.py + ${CMAKE_CURRENT_BINARY_DIR}/modules.collected.h + > ${CMAKE_CURRENT_BINARY_DIR}/moduledefs.h +) + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/mpversion.h + COMMAND python3 ../../vendor/micropython/py/makeversionhdr.py + ${CMAKE_CURRENT_BINARY_DIR}/mpversion.h +) + diff --git a/core/src/CMakeLists.txt b/core/src/CMakeLists.txt new file mode 100644 index 000000000..1d4eab036 --- /dev/null +++ b/core/src/CMakeLists.txt @@ -0,0 +1,98 @@ + +set(MPY_CROSS ../../vendor/micropython/mpy-cross/mpy-cross) +set(MPY_TOOL ../../vendor/micropython/tools/mpy-tool.py) + + +set(PY_FILES main.py session.py usb.py) +#file(GLOB_RECURSE PY_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*.py ) + + +list(TRANSFORM PY_FILES PREPEND ${CMAKE_CURRENT_BINARY_DIR}/ OUTPUT_VARIABLE MPY_FILES) +list(TRANSFORM MPY_FILES REPLACE "[.]py$" ".mpy") + +add_library(frozen_mpy + ${CMAKE_CURRENT_BINARY_DIR}/frozen_mpy.c +) + +target_include_directories(frozen_mpy PRIVATE ../embed/firmware) + +target_link_libraries(frozen_mpy micropython trezor-lib) + + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/frozen_mpy.c + DEPENDS "${MPY_FILES}" ${CMAKE_BINARY_DIR}/genhdr/qstrdefs.preprocessed.h + COMMAND ${MPY_TOOL} -f -q ${CMAKE_BINARY_DIR}/genhdr/qstrdefs.preprocessed.h ${MPY_FILES} > ${CMAKE_CURRENT_BINARY_DIR}/frozen_mpy.c +) + +#COMMAND ${MPY_TOOL} -f -q ${qstr_header} ${MPY_FILES} > ${CMAKE_CURRENT_BINARY_DIR}/frozen_mpy.c", + + +function(add_mpy target_file source_file) + cmake_path(RELATIVE_PATH source_file BASE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} OUTPUT_VARIABLE source_name) + cmake_path(REMOVE_EXTENSION source_name LAST_ONLY) + + add_custom_command( + OUTPUT ${target_file} + DEPENDS ${source_file} + COMMAND ${MPY_CROSS} -o ${target_file} -s ${source_name} ${source_file} + ) +endfunction() + + +#[[foreach(file IN LISTS PY_FILES) + string(REGEX REPLACE "[.]py$" ".mpy" mpy_file ${file}) + add_mpy(${CMAKE_CURRENT_BINARY_DIR}/${mpy_file} ${CMAKE_CURRENT_SOURCE_DIR}/${file} ) +endforeach() +]] + + +#[[ +sed_scripts = " ".join( + [ + rf"-e 's/utils\.MODEL_IS_T2B1/{is_t2b1}/g'", + rf"-e 's/utils\.BITCOIN_ONLY/{btc_only}/g'", + rf"-e 's/utils\.USE_BACKLIGHT/{backlight}/g'", + rf"-e 's/utils\.USE_OPTIGA/{optiga}/g'", + rf"-e 's/utils\.UI_LAYOUT == \"TT\"/{layout_tt}/g'", + rf"-e 's/utils\.UI_LAYOUT == \"TR\"/{layout_tr}/g'", + r"-e 's/if TYPE_CHECKING/if False/'", + r"-e 's/import typing/# \0/'", + r"-e '/from typing import (/,/^\s*)/ {s/^/# /}'", + r"-e 's/from typing import/# \0/'", + ] +) +]] + +set(sed_script + "-e 's/if TYPE_CHECKING/if False/'" +) + + +function(add_i_file target_file source_file) + add_custom_command( + OUTPUT ${target_file} + DEPENDS ${source_file} + COMMAND sed ${sed_script} ${source_file} > ${target_file} + ) +endfunction() + + +foreach(file IN LISTS PY_FILES) + add_i_file(${CMAKE_CURRENT_BINARY_DIR}/${file}.i ${CMAKE_CURRENT_SOURCE_DIR}/${file} ) +endforeach() + +foreach(file IN LISTS PY_FILES) + string(REGEX REPLACE "[.]py$" ".mpy" mpy_file ${file}) + add_mpy(${CMAKE_CURRENT_BINARY_DIR}/${mpy_file} ${CMAKE_CURRENT_BINARY_DIR}/${file}.i ) +endforeach() + + + + + + + + + + diff --git a/core/vendor/CMakeLists.txt b/core/vendor/CMakeLists.txt new file mode 100644 index 000000000..da1ef637c --- /dev/null +++ b/core/vendor/CMakeLists.txt @@ -0,0 +1,6 @@ +include(secp256k1-zkp.cmake) +include(micropython.cmake) +include(stm32cube-f4.cmake) +include(trezor-crypto.cmake) +include(trezor-storage.cmake) +include(nanopb.cmake) diff --git a/core/vendor/micropython.cmake b/core/vendor/micropython.cmake new file mode 100644 index 000000000..d86e67547 --- /dev/null +++ b/core/vendor/micropython.cmake @@ -0,0 +1,124 @@ +add_library(micropython + micropython/extmod/modubinascii.c + micropython/extmod/moductypes.c + micropython/extmod/moduheapq.c + micropython/extmod/modutimeq.c + micropython/extmod/utime_mphal.c + micropython/shared/libc/abort_.c + micropython/shared/libc/printf.c + micropython/shared/runtime/gchelper_m3.s + micropython/shared/runtime/gchelper_native.c + micropython/shared/runtime/interrupt_char.c + micropython/shared/runtime/pyexec.c + micropython/shared/runtime/stdout_helpers.c + micropython/shared/timeutils/timeutils.c + micropython/ports/stm32/gccollect.c + micropython/ports/stm32/pendsv.c + micropython/py/argcheck.c + micropython/py/asmarm.c + micropython/py/asmbase.c + micropython/py/asmthumb.c + micropython/py/asmx64.c + micropython/py/asmx86.c + micropython/py/asmxtensa.c + micropython/py/bc.c + micropython/py/binary.c + micropython/py/builtinevex.c + micropython/py/builtinhelp.c + micropython/py/builtinimport.c + micropython/py/compile.c + micropython/py/emitbc.c + micropython/py/emitcommon.c + micropython/py/emitglue.c + micropython/py/emitinlinethumb.c + micropython/py/emitinlinextensa.c + micropython/py/formatfloat.c + micropython/py/frozenmod.c + micropython/py/lexer.c + micropython/py/malloc.c + micropython/py/map.c + micropython/py/modarray.c + micropython/py/modbuiltins.c + micropython/py/modgc.c + micropython/py/modmath.c + micropython/py/modmicropython.c + micropython/py/modstruct.c + micropython/py/modsys.c + micropython/py/mpprint.c + micropython/py/mpstate.c + micropython/py/mpz.c + micropython/py/nativeglue.c + micropython/py/obj.c + micropython/py/objarray.c + micropython/py/objattrtuple.c + micropython/py/objbool.c + micropython/py/objboundmeth.c + micropython/py/objcell.c + micropython/py/objclosure.c + micropython/py/objcomplex.c + micropython/py/objdict.c + micropython/py/objenumerate.c + micropython/py/objexcept.c + micropython/py/objfilter.c + micropython/py/objfloat.c + micropython/py/objfun.c + micropython/py/objgenerator.c + micropython/py/objgetitemiter.c + micropython/py/objint.c + micropython/py/objint_longlong.c + micropython/py/objint_mpz.c + micropython/py/objlist.c + micropython/py/objmap.c + micropython/py/objmodule.c + micropython/py/objnamedtuple.c + micropython/py/objnone.c + micropython/py/objobject.c + micropython/py/objpolyiter.c + micropython/py/objproperty.c + micropython/py/objrange.c + micropython/py/objreversed.c + micropython/py/objset.c + micropython/py/objsingleton.c + micropython/py/objslice.c + micropython/py/objstr.c + micropython/py/objstringio.c + micropython/py/objstrunicode.c + micropython/py/objtuple.c + micropython/py/objtype.c + micropython/py/objzip.c + micropython/py/opmethods.c + micropython/py/pairheap.c + micropython/py/parse.c + micropython/py/parsenum.c + micropython/py/parsenumbase.c + micropython/py/persistentcode.c + micropython/py/qstr.c + micropython/py/reader.c + micropython/py/repl.c + micropython/py/runtime.c + micropython/py/runtime_utils.c + micropython/py/scheduler.c + micropython/py/scope.c + micropython/py/sequence.c + micropython/py/showbc.c + micropython/py/smallint.c + micropython/py/stackctrl.c + micropython/py/stream.c + micropython/py/unicode.c + micropython/py/vstr.c + micropython/py/warning.c + micropython/py/gc.c + micropython/py/pystack.c + micropython/py/vm.c + + micropython/lib/uzlib/adler32.c + micropython/lib/uzlib/crc32.c + micropython/lib/uzlib/tinflate.c +) + +target_include_directories(micropython PUBLIC micropython) +target_include_directories(micropython PRIVATE ../embed/firmware) + +target_link_libraries(micropython PRIVATE trezor-hal) + +add_dependencies(micropython qstr) \ No newline at end of file diff --git a/core/vendor/nanopb.cmake b/core/vendor/nanopb.cmake new file mode 100644 index 000000000..b012dae21 --- /dev/null +++ b/core/vendor/nanopb.cmake @@ -0,0 +1,7 @@ +add_library(nanopb + nanopb/pb_common.c + nanopb/pb_decode.c + nanopb/pb_encode.c +) + +target_include_directories(trezor-storage PUBLIC nanopb) diff --git a/core/vendor/secp256k1-zkp.cmake b/core/vendor/secp256k1-zkp.cmake new file mode 100644 index 000000000..682d0ee49 --- /dev/null +++ b/core/vendor/secp256k1-zkp.cmake @@ -0,0 +1,12 @@ +add_library(secp256k1-zkp + secp256k1-zkp/src/secp256k1.c + secp256k1-zkp/src/precomputed_ecmult.c + secp256k1-zkp/src/precomputed_ecmult_gen.c + secp256k1-zkp/src/asm/field_10x26_arm.s +) + +target_compile_definitions(secp256k1-zkp PUBLIC SECP256K1_CONTEXT_SIZE=180) + +target_include_directories(secp256k1-zkp PUBLIC secp256k1-zkp/include ) + +target_link_libraries(secp256k1-zkp PUBLIC -lc_nano -lm -lgcc) \ No newline at end of file diff --git a/core/vendor/stm32cube-f4.cmake b/core/vendor/stm32cube-f4.cmake new file mode 100644 index 000000000..b72a77fd4 --- /dev/null +++ b/core/vendor/stm32cube-f4.cmake @@ -0,0 +1,30 @@ +add_library(stm32cube-f4 + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fmc.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_sdmmc.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c + micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.c +) + +target_include_directories(stm32cube-f4 PUBLIC micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Inc) +target_include_directories(stm32cube-f4 PUBLIC micropython/lib/stm32lib/CMSIS/STM32F4xx/Include) +target_include_directories(stm32cube-f4 PUBLIC micropython/lib/cmsis/inc) +target_include_directories(stm32cube-f4 PUBLIC ../embed/trezorhal/stm32f4) # kvuli stm32f4xx_hal_conf.h diff --git a/core/vendor/trezor-crypto.cmake b/core/vendor/trezor-crypto.cmake new file mode 100644 index 000000000..cb6570057 --- /dev/null +++ b/core/vendor/trezor-crypto.cmake @@ -0,0 +1,63 @@ +add_library(trezor-crypto + trezor-crypto/address.c + trezor-crypto/aes/aes_modes.c + trezor-crypto/aes/aesccm.c + trezor-crypto/aes/aescrypt.c + trezor-crypto/aes/aeskey.c + trezor-crypto/aes/aestab.c + trezor-crypto/base32.c + trezor-crypto/base58.c + trezor-crypto/bignum.c + trezor-crypto/bip32.c + trezor-crypto/bip39.c + trezor-crypto/bip39_english.c + trezor-crypto/blake256.c + trezor-crypto/blake2b.c + trezor-crypto/blake2s.c + trezor-crypto/chacha20poly1305/chacha20poly1305.c + trezor-crypto/chacha20poly1305/chacha_merged.c + trezor-crypto/chacha20poly1305/poly1305-donna.c + trezor-crypto/chacha20poly1305/rfc7539.c + trezor-crypto/chacha_drbg.c + trezor-crypto/curves.c + trezor-crypto/ecdsa.c + trezor-crypto/ed25519-donna/curve25519-donna-32bit.c + trezor-crypto/ed25519-donna/curve25519-donna-helpers.c + trezor-crypto/ed25519-donna/curve25519-donna-scalarmult-base.c + trezor-crypto/ed25519-donna/ed25519-donna-32bit-tables.c + trezor-crypto/ed25519-donna/ed25519-donna-basepoint-table.c + trezor-crypto/ed25519-donna/ed25519-donna-impl-base.c + trezor-crypto/ed25519-donna/ed25519-keccak.c + trezor-crypto/ed25519-donna/ed25519-sha3.c + trezor-crypto/ed25519-donna/ed25519.c + trezor-crypto/ed25519-donna/modm-donna-32bit.c + trezor-crypto/groestl.c + trezor-crypto/hasher.c + trezor-crypto/hmac.c + trezor-crypto/hmac_drbg.c + trezor-crypto/memzero.c + trezor-crypto/nem.c + trezor-crypto/nist256p1.c + trezor-crypto/pbkdf2.c + trezor-crypto/rand.c + trezor-crypto/rfc6979.c + trezor-crypto/ripemd160.c + trezor-crypto/secp256k1.c + trezor-crypto/segwit_addr.c + trezor-crypto/sha2.c + trezor-crypto/sha3.c + trezor-crypto/shamir.c + trezor-crypto/slip39.c + trezor-crypto/slip39_english.c + trezor-crypto/tls_prf.c + trezor-crypto/cardano.c + trezor-crypto/monero/base58.c + trezor-crypto/monero/serialize.c + trezor-crypto/monero/xmr.c + trezor-crypto/zkp_context.c + trezor-crypto/zkp_ecdsa.c + trezor-crypto/zkp_bip340.c +) + +target_include_directories(trezor-crypto PUBLIC trezor-crypto) +target_link_libraries(trezor-crypto secp256k1-zkp) diff --git a/core/vendor/trezor-storage.cmake b/core/vendor/trezor-storage.cmake new file mode 100644 index 000000000..e1cb26a2b --- /dev/null +++ b/core/vendor/trezor-storage.cmake @@ -0,0 +1,8 @@ +add_library(trezor-storage + trezor-storage/norcow.c + trezor-storage/storage.c + trezor-storage/flash_common.c +) + +target_include_directories(trezor-storage PUBLIC trezor-storage models) +target_link_libraries(trezor-storage trezor-lib) diff --git a/core/xxxxxxxxCMakeLists.txt b/core/xxxxxxxxCMakeLists.txt new file mode 100644 index 000000000..2acd0f28f --- /dev/null +++ b/core/xxxxxxxxCMakeLists.txt @@ -0,0 +1,337 @@ +cmake_minimum_required(VERSION 3.20) +project(core) + +set(CMAKE_CXX_STANDARD 14) + + +add_definitions( + -DFIRMWARE + -DTREZOR_MODEL_DISC2 + -DUSE_HAL_DRIVER + -DUI_LAYOUT_TT + -DAES_128 + -DAES_192 + -DUSE_BIP32_CACHE=0 + -DUSE_KECCAK=1 + -DUSE_ETHEREUM=0 + -DUSE_MONERO=0 + -DUSE_CARDANO=0 + -DUSE_NEM=0 + -DUSE_EOS=0 + -DUSE_SECP256K1_ZKP + -DUSE_SECP256K1_ZKP_ECDSA + -DSECP256K1_CONTEXT_SIZE=180 + -DUSE_ASM_ARM + -DUSE_EXTERNAL_ASM + -DUSE_EXTERNAL_DEFAULT_CALLBACKS + -DECMULT_GEN_PREC_BITS=2 + -DECMULT_WINDOW_SIZE=8 + -DENABLE_MODULE_GENERATOR + -DENABLE_MODULE_RECOVERY + -DENABLE_MODULE_SCHNORRSIG + -DENABLE_MODULE_EXTRAKEYS + -DTREZOR_UI2 + -DFANCY_FATAL_ERROR + -DUSE_SVC_SHUTDOWN + -DRDI + -DTREZOR_FONT_NORMAL_ENABLE=Font_TTHoves_Regular_21 + -DTREZOR_FONT_NORMAL_INCLUDE="font_tthoves_regular_21.h" + -DTREZOR_FONT_BOLD_ENABLE=Font_TTHoves_Bold_17 + -DTREZOR_FONT_BOLD_INCLUDE="font_tthoves_bold_17.h" + -DTREZOR_FONT_DEMIBOLD_ENABLE=Font_TTHoves_DemiBold_21 + -DTREZOR_FONT_DEMIBOLD_INCLUDE="font_tthoves_demibold_21.h" + -DTREZOR_FONT_MONO_ENABLE=Font_RobotoMono_Medium_20 + -DTREZOR_FONT_MONO_INCLUDE="font_robotomono_medium_20.h" + -DSTM32_HAL_H= + -DSTM32U5A9xx + -DTREZOR_BOARD="boards/stm32u5a9j-dk.h" + -DHW_MODEL=842018884 + -DHW_REVISION=0 + -DUSE_DMA2D + -DFRAMEBUFFERFRAMEBUFFER32BIT + -DPRODUCTION=0 + -DBOOTLOADER_QA=0 + -DPYOPT=0 + -DBITCOIN_ONLY=1 +) + + +include_directories(.) +include_directories(embed/rust) +include_directories(embed/firmware) +include_directories(embed/lib) +include_directories(embed/models) +include_directories(embed/trezorhal) +include_directories(embed/extmod/modtrezorui) +include_directories(vendor/micropython) +include_directories(embed/extmod/modtrezorconfig) +include_directories(vendor/trezor-storage) +include_directories(vendor/trezor-crypto) +include_directories(vendor/secp256k1-zkp) +include_directories(vendor/secp256k1-zkp/src) +include_directories(vendor/secp256k1-zkp/include) +include_directories(vendor/micropython/lib/uzlib) +include_directories(embed/trezorhal/stm32u5) +include_directories(vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Inc) +include_directories(vendor/stm32cube-u5/Drivers/CMSIS/Device/ST/STM32U5xx/Include) +include_directories(vendor/stm32cube-u5/Drivers/CMSIS/Core/Include) + + +add_executable(core + embed/extmod/modtrezorconfig/modtrezorconfig.c + vendor/trezor-storage/norcow.c + vendor/trezor-storage/storage.c + embed/extmod/trezorobj.c + embed/extmod/modtrezorcrypto/crc.c + embed/extmod/modtrezorcrypto/modtrezorcrypto.c + embed/extmod/modtrezorcrypto/rand.c + vendor/trezor-crypto/address.c + vendor/trezor-crypto/aes/aes_modes.c + vendor/trezor-crypto/aes/aesccm.c + vendor/trezor-crypto/aes/aescrypt.c + vendor/trezor-crypto/aes/aeskey.c + vendor/trezor-crypto/aes/aestab.c + vendor/trezor-crypto/base32.c + vendor/trezor-crypto/base58.c + vendor/trezor-crypto/bignum.c + vendor/trezor-crypto/bip32.c + vendor/trezor-crypto/bip39.c + vendor/trezor-crypto/bip39_english.c + vendor/trezor-crypto/blake256.c + vendor/trezor-crypto/blake2b.c + vendor/trezor-crypto/blake2s.c + vendor/trezor-crypto/chacha20poly1305/chacha20poly1305.c + vendor/trezor-crypto/chacha20poly1305/chacha_merged.c + vendor/trezor-crypto/chacha20poly1305/poly1305-donna.c + vendor/trezor-crypto/chacha20poly1305/rfc7539.c + vendor/trezor-crypto/chacha_drbg.c + vendor/trezor-crypto/curves.c + vendor/trezor-crypto/ecdsa.c + vendor/trezor-crypto/ed25519-donna/curve25519-donna-32bit.c + vendor/trezor-crypto/ed25519-donna/curve25519-donna-helpers.c + vendor/trezor-crypto/ed25519-donna/curve25519-donna-scalarmult-base.c + vendor/trezor-crypto/ed25519-donna/ed25519-donna-32bit-tables.c + vendor/trezor-crypto/ed25519-donna/ed25519-donna-basepoint-table.c + vendor/trezor-crypto/ed25519-donna/ed25519-donna-impl-base.c + vendor/trezor-crypto/ed25519-donna/ed25519-keccak.c + vendor/trezor-crypto/ed25519-donna/ed25519-sha3.c + vendor/trezor-crypto/ed25519-donna/ed25519.c + vendor/trezor-crypto/ed25519-donna/modm-donna-32bit.c + vendor/trezor-crypto/groestl.c + vendor/trezor-crypto/hasher.c + vendor/trezor-crypto/hmac.c + vendor/trezor-crypto/hmac_drbg.c + vendor/trezor-crypto/memzero.c + vendor/trezor-crypto/nem.c + vendor/trezor-crypto/nist256p1.c + vendor/trezor-crypto/pbkdf2.c + vendor/trezor-crypto/rand.c + vendor/trezor-crypto/rfc6979.c + vendor/trezor-crypto/ripemd160.c + vendor/trezor-crypto/secp256k1.c + vendor/trezor-crypto/segwit_addr.c + vendor/trezor-crypto/sha2.c + vendor/trezor-crypto/sha3.c + vendor/trezor-crypto/shamir.c + vendor/trezor-crypto/slip39.c + vendor/trezor-crypto/slip39_english.c + vendor/trezor-crypto/tls_prf.c + vendor/trezor-crypto/zkp_context.c + vendor/trezor-crypto/zkp_ecdsa.c + vendor/trezor-crypto/zkp_bip340.c + embed/extmod/modtrezorio/modtrezorio.c + embed/lib/mini_printf.c + embed/lib/unit_variant.c + embed/lib/buffers.c + embed/lib/colors.c + embed/lib/display.c + embed/lib/fonts/fonts.c + embed/lib/fonts/font_bitmap.c + embed/lib/image.c + embed/extmod/modtrezorui/modtrezorui.c + vendor/micropython/lib/uzlib/adler32.c + vendor/micropython/lib/uzlib/crc32.c + vendor/micropython/lib/uzlib/tinflate.c + embed/extmod/modtrezorutils/modtrezorutils.c + embed/extmod/rustmods.c + embed/extmod/modutime.c + embed/lib/fonts/font_tthoves_regular_21.c + embed/lib/fonts/font_tthoves_bold_17.c + embed/lib/fonts/font_tthoves_demibold_21.c + embed/lib/fonts/font_robotomono_medium_20.c + embed/firmware/bl_check.c + embed/firmware/delay.c + embed/firmware/header.S + embed/firmware/main.c + embed/firmware/mphalport.c + embed/firmware/nlrthumb.c + embed/firmware/startup_stm32u5.S + vendor/micropython/extmod/modubinascii.c + vendor/micropython/extmod/moductypes.c + vendor/micropython/extmod/moduheapq.c + vendor/micropython/extmod/modutimeq.c + vendor/micropython/extmod/utime_mphal.c + vendor/micropython/shared/libc/abort_.c + vendor/micropython/shared/libc/printf.c + vendor/micropython/shared/runtime/gchelper_m3.s + vendor/micropython/shared/runtime/gchelper_native.c + vendor/micropython/shared/runtime/interrupt_char.c + vendor/micropython/shared/runtime/pyexec.c + vendor/micropython/shared/runtime/stdout_helpers.c + vendor/micropython/shared/timeutils/timeutils.c + vendor/micropython/ports/stm32/gccollect.c + vendor/micropython/ports/stm32/pendsv.c + vendor/micropython/py/argcheck.c + vendor/micropython/py/asmarm.c + vendor/micropython/py/asmbase.c + vendor/micropython/py/asmthumb.c + vendor/micropython/py/asmx64.c + vendor/micropython/py/asmx86.c + vendor/micropython/py/asmxtensa.c + vendor/micropython/py/bc.c + vendor/micropython/py/binary.c + vendor/micropython/py/builtinevex.c + vendor/micropython/py/builtinhelp.c + vendor/micropython/py/builtinimport.c + vendor/micropython/py/compile.c + vendor/micropython/py/emitbc.c + vendor/micropython/py/emitcommon.c + vendor/micropython/py/emitglue.c + vendor/micropython/py/emitinlinethumb.c + vendor/micropython/py/emitinlinextensa.c + vendor/micropython/py/formatfloat.c + vendor/micropython/py/frozenmod.c + vendor/micropython/py/lexer.c + vendor/micropython/py/malloc.c + vendor/micropython/py/map.c + vendor/micropython/py/modarray.c + vendor/micropython/py/modbuiltins.c + vendor/micropython/py/modgc.c + vendor/micropython/py/modmath.c + vendor/micropython/py/modmicropython.c + vendor/micropython/py/modstruct.c + vendor/micropython/py/modsys.c + vendor/micropython/py/mpprint.c + vendor/micropython/py/mpstate.c + vendor/micropython/py/mpz.c + vendor/micropython/py/nativeglue.c + vendor/micropython/py/obj.c + vendor/micropython/py/objarray.c + vendor/micropython/py/objattrtuple.c + vendor/micropython/py/objbool.c + vendor/micropython/py/objboundmeth.c + vendor/micropython/py/objcell.c + vendor/micropython/py/objclosure.c + vendor/micropython/py/objcomplex.c + vendor/micropython/py/objdict.c + vendor/micropython/py/objenumerate.c + vendor/micropython/py/objexcept.c + vendor/micropython/py/objfilter.c + vendor/micropython/py/objfloat.c + vendor/micropython/py/objfun.c + vendor/micropython/py/objgenerator.c + vendor/micropython/py/objgetitemiter.c + vendor/micropython/py/objint.c + vendor/micropython/py/objint_longlong.c + vendor/micropython/py/objint_mpz.c + vendor/micropython/py/objlist.c + vendor/micropython/py/objmap.c + vendor/micropython/py/objmodule.c + vendor/micropython/py/objnamedtuple.c + vendor/micropython/py/objnone.c + vendor/micropython/py/objobject.c + vendor/micropython/py/objpolyiter.c + vendor/micropython/py/objproperty.c + vendor/micropython/py/objrange.c + vendor/micropython/py/objreversed.c + vendor/micropython/py/objset.c + vendor/micropython/py/objsingleton.c + vendor/micropython/py/objslice.c + vendor/micropython/py/objstr.c + vendor/micropython/py/objstringio.c + vendor/micropython/py/objstrunicode.c + vendor/micropython/py/objtuple.c + vendor/micropython/py/objtype.c + vendor/micropython/py/objzip.c + vendor/micropython/py/opmethods.c + vendor/micropython/py/pairheap.c + vendor/micropython/py/parse.c + vendor/micropython/py/parsenum.c + vendor/micropython/py/parsenumbase.c + vendor/micropython/py/persistentcode.c + vendor/micropython/py/qstr.c + vendor/micropython/py/reader.c + vendor/micropython/py/repl.c + vendor/micropython/py/runtime.c + vendor/micropython/py/runtime_utils.c + vendor/micropython/py/scheduler.c + vendor/micropython/py/scope.c + vendor/micropython/py/sequence.c + vendor/micropython/py/showbc.c + vendor/micropython/py/smallint.c + vendor/micropython/py/stackctrl.c + vendor/micropython/py/stream.c + vendor/micropython/py/unicode.c + vendor/micropython/py/vstr.c + vendor/micropython/py/warning.c + vendor/micropython/py/gc.c + vendor/micropython/py/pystack.c + vendor/micropython/py/vm.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_cortex.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_cryp.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_dma.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_dma2d.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_dsi.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_flash.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_flash_ex.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_gfxmmu.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_gpio.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_i2c.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_i2c_ex.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_icache.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_ltdc.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_ltdc_ex.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_pcd.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_pcd_ex.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_pwr.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_pwr_ex.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_rcc.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_rcc_ex.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_sd.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_spi.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_sram.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_tim.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal_tim_ex.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_ll_fmc.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_ll_sdmmc.c + embed/trezorhal/stm32u5/board_capabilities.c + embed/trezorhal/stm32u5/common.c + embed/trezorhal/stm32u5/flash.c + embed/trezorhal/stm32u5/lowlevel.c + embed/trezorhal/stm32u5/mpu.c + embed/trezorhal/stm32u5/platform.c + embed/trezorhal/stm32u5/secure_aes.c + embed/trezorhal/stm32u5/systick.c + embed/trezorhal/stm32u5/random_delays.c + embed/trezorhal/stm32u5/rng.c + embed/trezorhal/stm32u5/vectortable.s + embed/trezorhal/stm32u5/util.s + embed/models/model_D002_layout.c + embed/trezorhal/stm32u5/displays/dsi.c + embed/lib/touch.c + embed/trezorhal/stm32u5/touch/sitronix.c + embed/trezorhal/stm32u5/sbu.c + embed/trezorhal/stm32u5/usb.c + embed/trezorhal/stm32u5/usbd_conf.c + embed/trezorhal/stm32u5/usbd_core.c + embed/trezorhal/stm32u5/usbd_ctlreq.c + embed/trezorhal/stm32u5/usbd_ioreq.c + vendor/stm32cube-u5/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_ll_usb.c + embed/trezorhal/stm32u5/dma2d.c + vendor/secp256k1-zkp/src/secp256k1.c + vendor/secp256k1-zkp/src/precomputed_ecmult.c + vendor/secp256k1-zkp/src/precomputed_ecmult_gen.c + vendor/secp256k1-zkp/src/asm/field_10x26_arm.s +) + diff --git a/core/yyyyyyyyyCMakeLists.txt b/core/yyyyyyyyyCMakeLists.txt new file mode 100644 index 000000000..27aa87efe --- /dev/null +++ b/core/yyyyyyyyyCMakeLists.txt @@ -0,0 +1,343 @@ +cmake_minimum_required(VERSION 3.20) +project(core) + +set(CMAKE_CXX_STANDARD 14) + + +add_definitions( + -DFIRMWARE + -DTREZOR_MODEL_T + -DUSE_HAL_DRIVER + -DUI_LAYOUT_TT + -DAES_128 + -DAES_192 + -DUSE_BIP32_CACHE=0 + -DUSE_KECCAK=1 + -DUSE_ETHEREUM=1 + -DUSE_MONERO=1 + -DUSE_CARDANO=1 + -DUSE_NEM=1 + -DUSE_EOS=1 + -DUSE_SECP256K1_ZKP + -DUSE_SECP256K1_ZKP_ECDSA + -DSECP256K1_CONTEXT_SIZE=180 + -DUSE_ASM_ARM + -DUSE_EXTERNAL_ASM + -DUSE_EXTERNAL_DEFAULT_CALLBACKS + -DECMULT_GEN_PREC_BITS=2 + -DECMULT_WINDOW_SIZE=8 + -DENABLE_MODULE_GENERATOR + -DENABLE_MODULE_RECOVERY + -DENABLE_MODULE_SCHNORRSIG + -DENABLE_MODULE_EXTRAKEYS + -DTREZOR_UI2 + -DFANCY_FATAL_ERROR + -DUSE_SVC_SHUTDOWN + -DRDI + -DTREZOR_FONT_NORMAL_ENABLE=Font_TTHoves_Regular_21 + -DTREZOR_FONT_NORMAL_INCLUDE="font_tthoves_regular_21.h" + -DTREZOR_FONT_BOLD_ENABLE=Font_TTHoves_Bold_17 + -DTREZOR_FONT_BOLD_INCLUDE="font_tthoves_bold_17.h" + -DTREZOR_FONT_DEMIBOLD_ENABLE=Font_TTHoves_DemiBold_21 + -DTREZOR_FONT_DEMIBOLD_INCLUDE="font_tthoves_demibold_21.h" + -DTREZOR_FONT_MONO_ENABLE=Font_RobotoMono_Medium_20 + -DTREZOR_FONT_MONO_INCLUDE="font_robotomono_medium_20.h" + -DSTM32_HAL_H= + -DSTM32F427xx + -DTREZOR_BOARD="boards/trezor_t.h" + -DHW_MODEL=827601492 + -DHW_REVISION=0 + -DUSE_DMA2D + -DPRODUCTION=0 + -DBOOTLOADER_QA=0 + -DPYOPT=1 + -DBITCOIN_ONLY=0 +) + + +include_directories(.) +include_directories(embed/rust) +include_directories(embed/firmware) +include_directories(embed/lib) +include_directories(embed/models) +include_directories(embed/trezorhal) +include_directories(embed/extmod/modtrezorui) +include_directories(vendor/micropython) +include_directories(vendor/micropython/lib/cmsis/inc) +include_directories(embed/extmod/modtrezorconfig) +include_directories(vendor/trezor-storage) +include_directories(vendor/trezor-crypto) +include_directories(vendor/secp256k1-zkp) +include_directories(vendor/secp256k1-zkp/src) +include_directories(vendor/secp256k1-zkp/include) +include_directories(vendor/micropython/lib/uzlib) +include_directories(embed/trezorhal/stm32f4) +include_directories(vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Inc) +include_directories(vendor/micropython/lib/stm32lib/CMSIS/STM32F4xx/Include) + + +add_executable(core + embed/extmod/modtrezorconfig/modtrezorconfig.c + vendor/trezor-storage/norcow.c + vendor/trezor-storage/storage.c + vendor/trezor-storage/flash_common.c + embed/extmod/trezorobj.c + embed/extmod/modtrezorcrypto/crc.c + embed/extmod/modtrezorcrypto/modtrezorcrypto.c + embed/extmod/modtrezorcrypto/rand.c + vendor/trezor-crypto/address.c + vendor/trezor-crypto/aes/aes_modes.c + vendor/trezor-crypto/aes/aesccm.c + vendor/trezor-crypto/aes/aescrypt.c + vendor/trezor-crypto/aes/aeskey.c + vendor/trezor-crypto/aes/aestab.c + vendor/trezor-crypto/base32.c + vendor/trezor-crypto/base58.c + vendor/trezor-crypto/bignum.c + vendor/trezor-crypto/bip32.c + vendor/trezor-crypto/bip39.c + vendor/trezor-crypto/bip39_english.c + vendor/trezor-crypto/blake256.c + vendor/trezor-crypto/blake2b.c + vendor/trezor-crypto/blake2s.c + vendor/trezor-crypto/chacha20poly1305/chacha20poly1305.c + vendor/trezor-crypto/chacha20poly1305/chacha_merged.c + vendor/trezor-crypto/chacha20poly1305/poly1305-donna.c + vendor/trezor-crypto/chacha20poly1305/rfc7539.c + vendor/trezor-crypto/chacha_drbg.c + vendor/trezor-crypto/curves.c + vendor/trezor-crypto/ecdsa.c + vendor/trezor-crypto/ed25519-donna/curve25519-donna-32bit.c + vendor/trezor-crypto/ed25519-donna/curve25519-donna-helpers.c + vendor/trezor-crypto/ed25519-donna/curve25519-donna-scalarmult-base.c + vendor/trezor-crypto/ed25519-donna/ed25519-donna-32bit-tables.c + vendor/trezor-crypto/ed25519-donna/ed25519-donna-basepoint-table.c + vendor/trezor-crypto/ed25519-donna/ed25519-donna-impl-base.c + vendor/trezor-crypto/ed25519-donna/ed25519-keccak.c + vendor/trezor-crypto/ed25519-donna/ed25519-sha3.c + vendor/trezor-crypto/ed25519-donna/ed25519.c + vendor/trezor-crypto/ed25519-donna/modm-donna-32bit.c + vendor/trezor-crypto/groestl.c + vendor/trezor-crypto/hasher.c + vendor/trezor-crypto/hmac.c + vendor/trezor-crypto/hmac_drbg.c + vendor/trezor-crypto/memzero.c + vendor/trezor-crypto/nem.c + vendor/trezor-crypto/nist256p1.c + vendor/trezor-crypto/pbkdf2.c + vendor/trezor-crypto/rand.c + vendor/trezor-crypto/rfc6979.c + vendor/trezor-crypto/ripemd160.c + vendor/trezor-crypto/secp256k1.c + vendor/trezor-crypto/segwit_addr.c + vendor/trezor-crypto/sha2.c + vendor/trezor-crypto/sha3.c + vendor/trezor-crypto/shamir.c + vendor/trezor-crypto/slip39.c + vendor/trezor-crypto/slip39_english.c + vendor/trezor-crypto/tls_prf.c + vendor/trezor-crypto/cardano.c + vendor/trezor-crypto/monero/base58.c + vendor/trezor-crypto/monero/serialize.c + vendor/trezor-crypto/monero/xmr.c + vendor/trezor-crypto/zkp_context.c + vendor/trezor-crypto/zkp_ecdsa.c + vendor/trezor-crypto/zkp_bip340.c + embed/extmod/modtrezorio/modtrezorio.c + embed/lib/mini_printf.c + embed/lib/unit_variant.c + embed/lib/buffers.c + embed/lib/colors.c + embed/lib/display.c + embed/lib/fonts/fonts.c + embed/lib/fonts/font_bitmap.c + embed/lib/image.c + embed/extmod/modtrezorui/modtrezorui.c + vendor/micropython/lib/uzlib/adler32.c + vendor/micropython/lib/uzlib/crc32.c + vendor/micropython/lib/uzlib/tinflate.c + embed/extmod/modtrezorutils/modtrezorutils.c + embed/extmod/rustmods.c + embed/extmod/modutime.c + embed/lib/fonts/font_tthoves_regular_21.c + embed/lib/fonts/font_tthoves_bold_17.c + embed/lib/fonts/font_tthoves_demibold_21.c + embed/lib/fonts/font_robotomono_medium_20.c + embed/firmware/bl_check.c + embed/firmware/delay.c + embed/firmware/header.S + embed/firmware/main.c + embed/firmware/mphalport.c + embed/firmware/nlrthumb.c + embed/firmware/startup.S + vendor/micropython/extmod/modubinascii.c + vendor/micropython/extmod/moductypes.c + vendor/micropython/extmod/moduheapq.c + vendor/micropython/extmod/modutimeq.c + vendor/micropython/extmod/utime_mphal.c + vendor/micropython/shared/libc/abort_.c + vendor/micropython/shared/libc/printf.c + vendor/micropython/shared/runtime/gchelper_m3.s + vendor/micropython/shared/runtime/gchelper_native.c + vendor/micropython/shared/runtime/interrupt_char.c + vendor/micropython/shared/runtime/pyexec.c + vendor/micropython/shared/runtime/stdout_helpers.c + vendor/micropython/shared/timeutils/timeutils.c + vendor/micropython/ports/stm32/gccollect.c + vendor/micropython/ports/stm32/pendsv.c + vendor/micropython/py/argcheck.c + vendor/micropython/py/asmarm.c + vendor/micropython/py/asmbase.c + vendor/micropython/py/asmthumb.c + vendor/micropython/py/asmx64.c + vendor/micropython/py/asmx86.c + vendor/micropython/py/asmxtensa.c + vendor/micropython/py/bc.c + vendor/micropython/py/binary.c + vendor/micropython/py/builtinevex.c + vendor/micropython/py/builtinhelp.c + vendor/micropython/py/builtinimport.c + vendor/micropython/py/compile.c + vendor/micropython/py/emitbc.c + vendor/micropython/py/emitcommon.c + vendor/micropython/py/emitglue.c + vendor/micropython/py/emitinlinethumb.c + vendor/micropython/py/emitinlinextensa.c + vendor/micropython/py/formatfloat.c + vendor/micropython/py/frozenmod.c + vendor/micropython/py/lexer.c + vendor/micropython/py/malloc.c + vendor/micropython/py/map.c + vendor/micropython/py/modarray.c + vendor/micropython/py/modbuiltins.c + vendor/micropython/py/modgc.c + vendor/micropython/py/modmath.c + vendor/micropython/py/modmicropython.c + vendor/micropython/py/modstruct.c + vendor/micropython/py/modsys.c + vendor/micropython/py/mpprint.c + vendor/micropython/py/mpstate.c + vendor/micropython/py/mpz.c + vendor/micropython/py/nativeglue.c + vendor/micropython/py/obj.c + vendor/micropython/py/objarray.c + vendor/micropython/py/objattrtuple.c + vendor/micropython/py/objbool.c + vendor/micropython/py/objboundmeth.c + vendor/micropython/py/objcell.c + vendor/micropython/py/objclosure.c + vendor/micropython/py/objcomplex.c + vendor/micropython/py/objdict.c + vendor/micropython/py/objenumerate.c + vendor/micropython/py/objexcept.c + vendor/micropython/py/objfilter.c + vendor/micropython/py/objfloat.c + vendor/micropython/py/objfun.c + vendor/micropython/py/objgenerator.c + vendor/micropython/py/objgetitemiter.c + vendor/micropython/py/objint.c + vendor/micropython/py/objint_longlong.c + vendor/micropython/py/objint_mpz.c + vendor/micropython/py/objlist.c + vendor/micropython/py/objmap.c + vendor/micropython/py/objmodule.c + vendor/micropython/py/objnamedtuple.c + vendor/micropython/py/objnone.c + vendor/micropython/py/objobject.c + vendor/micropython/py/objpolyiter.c + vendor/micropython/py/objproperty.c + vendor/micropython/py/objrange.c + vendor/micropython/py/objreversed.c + vendor/micropython/py/objset.c + vendor/micropython/py/objsingleton.c + vendor/micropython/py/objslice.c + vendor/micropython/py/objstr.c + vendor/micropython/py/objstringio.c + vendor/micropython/py/objstrunicode.c + vendor/micropython/py/objtuple.c + vendor/micropython/py/objtype.c + vendor/micropython/py/objzip.c + vendor/micropython/py/opmethods.c + vendor/micropython/py/pairheap.c + vendor/micropython/py/parse.c + vendor/micropython/py/parsenum.c + vendor/micropython/py/parsenumbase.c + vendor/micropython/py/persistentcode.c + vendor/micropython/py/qstr.c + vendor/micropython/py/reader.c + vendor/micropython/py/repl.c + vendor/micropython/py/runtime.c + vendor/micropython/py/runtime_utils.c + vendor/micropython/py/scheduler.c + vendor/micropython/py/scope.c + vendor/micropython/py/sequence.c + vendor/micropython/py/showbc.c + vendor/micropython/py/smallint.c + vendor/micropython/py/stackctrl.c + vendor/micropython/py/stream.c + vendor/micropython/py/unicode.c + vendor/micropython/py/vstr.c + vendor/micropython/py/warning.c + vendor/micropython/py/gc.c + vendor/micropython/py/pystack.c + vendor/micropython/py/vm.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fmc.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_sdmmc.c + embed/trezorhal/stm32f4/board_capabilities.c + embed/trezorhal/stm32f4/common.c + embed/trezorhal/stm32f4/flash.c + embed/trezorhal/stm32f4/lowlevel.c + embed/trezorhal/stm32f4/mpu.c + embed/trezorhal/stm32f4/platform.c + embed/trezorhal/stm32f4/systick.c + embed/trezorhal/stm32f4/random_delays.c + embed/trezorhal/stm32f4/rng.c + embed/trezorhal/stm32f4/vectortable.s + embed/trezorhal/stm32f4/util.s + embed/models/model_T2T1_layout.c + embed/trezorhal/stm32f4/displays/st7789v.c + embed/trezorhal/stm32f4/backlight_pwm.c + embed/trezorhal/stm32f4/displays/panels/tf15411a.c + embed/trezorhal/stm32f4/displays/panels/154a.c + embed/trezorhal/stm32f4/displays/panels/lx154a2411.c + embed/trezorhal/stm32f4/displays/panels/lx154a2422.c + embed/trezorhal/stm32f4/i2c.c + embed/trezorhal/stm32f4/touch/ft6x36.c + embed/lib/touch.c + embed/trezorhal/stm32f4/sdcard.c + embed/extmod/modtrezorio/ff.c + embed/extmod/modtrezorio/ffunicode.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c + embed/trezorhal/stm32f4/sbu.c + embed/trezorhal/stm32f4/usb.c + embed/trezorhal/stm32f4/usbd_conf.c + embed/trezorhal/stm32f4/usbd_core.c + embed/trezorhal/stm32f4/usbd_ctlreq.c + embed/trezorhal/stm32f4/usbd_ioreq.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c + embed/trezorhal/stm32f4/dma2d.c + vendor/micropython/lib/stm32lib/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.c + vendor/secp256k1-zkp/src/secp256k1.c + vendor/secp256k1-zkp/src/precomputed_ecmult.c + vendor/secp256k1-zkp/src/precomputed_ecmult_gen.c + vendor/secp256k1-zkp/src/asm/field_10x26_arm.s +) + diff --git a/crypto/zkp_bip340.c b/crypto/zkp_bip340.c index fd87086a2..d128cb39e 100644 --- a/crypto/zkp_bip340.c +++ b/crypto/zkp_bip340.c @@ -27,9 +27,9 @@ #include "sha2.h" #include "zkp_context.h" -#include "vendor/secp256k1-zkp/include/secp256k1.h" -#include "vendor/secp256k1-zkp/include/secp256k1_extrakeys.h" -#include "vendor/secp256k1-zkp/include/secp256k1_schnorrsig.h" +#include "secp256k1.h" +#include "secp256k1_extrakeys.h" +#include "secp256k1_schnorrsig.h" #include "zkp_bip340.h" diff --git a/crypto/zkp_context.c b/crypto/zkp_context.c index 964140f06..37472e3ad 100644 --- a/crypto/zkp_context.c +++ b/crypto/zkp_context.c @@ -28,7 +28,7 @@ #include "rand.h" #include "zkp_context.h" -#include "vendor/secp256k1-zkp/include/secp256k1.h" +#include "secp256k1.h" static uint8_t context_buffer[SECP256K1_CONTEXT_SIZE]; static secp256k1_context *context; diff --git a/crypto/zkp_context.h b/crypto/zkp_context.h index 769e26a09..8be1acc5c 100644 --- a/crypto/zkp_context.h +++ b/crypto/zkp_context.h @@ -3,7 +3,7 @@ #include -#include "vendor/secp256k1-zkp/include/secp256k1_preallocated.h" +#include "secp256k1_preallocated.h" int secp256k1_context_writable_randomize(secp256k1_context *context); bool zkp_context_is_initialized(void); diff --git a/crypto/zkp_ecdsa.c b/crypto/zkp_ecdsa.c index 7ae018773..b2cf5fc8c 100644 --- a/crypto/zkp_ecdsa.c +++ b/crypto/zkp_ecdsa.c @@ -28,10 +28,10 @@ #include "secp256k1.h" #include "zkp_context.h" -#include "vendor/secp256k1-zkp/include/secp256k1.h" -#include "vendor/secp256k1-zkp/include/secp256k1_extrakeys.h" -#include "vendor/secp256k1-zkp/include/secp256k1_preallocated.h" -#include "vendor/secp256k1-zkp/include/secp256k1_recovery.h" +#include "secp256k1.h" +#include "secp256k1_extrakeys.h" +#include "secp256k1_preallocated.h" +#include "secp256k1_recovery.h" #include "zkp_ecdsa.h"